Danh sách câu hỏi của đề

Câu hỏi: CRY303c Mật mã ứng dụng – Bộ ôn tập cuối kỳ số 1

50 câu trắc nghiệm kèm lời giải của môn CRY303c - Mật mã ứng dụng, xếp đúng thứ tự trong đề.

Danh sách câu hỏi

20/50 câuCòn 30
A2^127 x
B2^128 x
C2^64 x
D1x
E2^63 x
F2^256 x
Lời giải
Đáp án đúng: "2^63 x". Câu hỏi viết "128-bit-long key" nhưng ý là giá trị băm dài n = 128 bit. Phá kháng va chạm mạnh (strong collision resistance, tìm một cặp bất kỳ trùng băm) dùng tấn công ngày sinh (birthday attack), cần cỡ 2^(n/2) = 2^64 lần băm, nên x = 2^64. Phá kháng va chạm yếu (weak collision resistance, cho trước một đầu vào, tìm đầu vào khác cùng băm) không dùng được nghịch lý ngày sinh; theo quy ước của khoá học cho tấn công tiền ảnh thứ hai "trung bình", ta coi như vét cạn 2^128 giá trị băm và trúng sau một nửa, tức 2^(128−1) = 2^127 lần. Tỉ số là 2^127 / 2^64 = 2^63. Chỗ tranh cãi: "2^64 x" có cơ sở theo quy ước khác, vì nếu mỗi lần thử ngẫu nhiên trúng với xác suất 2^(−128) thì số lần thử kỳ vọng là 2^128 và tỉ số là 2^128 / 2^64 = 2^64; ở đây chọn theo quy ước khoá học và chữ "on average". "2^127 x" lấy số lần tuyệt đối của va chạm yếu làm tỉ số, nhân thêm x sẽ ra 2^191. "2^128 x" cũng nhầm số lần tuyệt đối (kỳ vọng của phép thử ngẫu nhiên) với tỉ số. "1x" coi hai việc khó ngang nhau, trái với nghịch lý ngày sinh. "2^256 x" vượt xa cả không gian 2^128 giá trị băm.
Mở trang câu hỏi này →
AH
BE
CL
DO
Lời giải
Đáp án đúng: "E". Mã thay thế đơn bảng (monoalphabetic cipher) thay mỗi chữ của bản rõ bằng đúng một chữ cố định của bản mã, nên tần suất của từng chữ được giữ nguyên, chỉ bị đổi tên. Trong văn bản tiếng Anh, chữ e là chữ xuất hiện nhiều nhất (khoảng 12–13% số chữ), vì vậy chữ w xuất hiện nhiều nhất trong bản mã của cả một cuốn sách gần như chắc chắn là ảnh của e; đây là nền tảng của thám mã tần suất (frequency analysis). "H" là chữ khá phổ biến nhưng đứng sau e, t, a, o nên không phải ứng viên đầu tiên. "L" chỉ thuộc nhóm tần suất trung bình, thấp hơn e rất nhiều. "O" thuộc nhóm phổ biến cùng t và a nhưng vẫn kém e, nên chỉ là ứng viên thử tiếp khi giả thuyết e không khớp. Văn bản càng dài thì phân bố tần suất càng sát phân bố chuẩn, nên phép đoán w ứng với e càng đáng tin.
Mở trang câu hỏi này →
AC2 = XOR(P2,E(K,XOR(C1,P2)))
BC2 = XOR(P2,E(K,XOR(C1,P1)))
CC2 = XOR(P1,E(K,XOR(C1,P1)))
DC2 = E(K,XOR(C1,P1))
EC2 = XOR(E(C1),K)
FC2 = E(K,XOR(C1,P2))
Lời giải
Đáp án đúng: "C2 = E(K,XOR(C1,P2))". Ở chế độ CBC (Cipher Block Chaining, mã khối móc xích), trước khi mã hoá một khối bản rõ người ta XOR nó với khối bản mã ngay trước, rồi đưa kết quả vào hàm mã hoá với khoá K; vì vậy khối thứ hai là E(K, P2 XOR C1), còn khối đầu dùng IV thay cho C1. Công thức "C2 = XOR(P2,E(K,XOR(C1,P2)))" XOR thêm P2 lần nữa ở đầu ra, không phải cấu trúc CBC. Công thức "C2 = XOR(P2,E(K,XOR(C1,P1)))" chính là OFB: khối đầu ra thứ nhất bằng C1 XOR P1, mã hoá nó ra dòng khoá thứ hai rồi XOR với P2. Công thức "C2 = XOR(P1,E(K,XOR(C1,P1)))" không hề có P2 nên không thể là bản mã của khối thứ hai. Công thức "C2 = E(K,XOR(C1,P1))" cũng thiếu P2, đây chỉ là dòng khoá thứ hai của OFB. Còn "C2 = XOR(E(C1),K)" gọi hàm mã hoá không có khoá rồi XOR với khoá, không ứng với chế độ chuẩn nào.
Mở trang câu hỏi này →
A1
B3
C5
D7
E9
Lời giải
Đáp án đúng: "3". Trong Diffie-Hellman, Y_A = a^X_A mod p và khoá chung K = (Y_B)^X_A mod p = (Y_A)^X_B mod p. Tìm X_A bằng các luỹ thừa của 2 theo modulo 11: 2^1 = 2, 2^2 = 4, 2^3 = 8, 2^4 = 16 mod 11 = 5, 2^5 = 10, 2^6 = 20 mod 11 = 9, nên X_A = 6. Khi đó K = 3^6 mod 11: 3^2 = 9, 3^3 = 27 mod 11 = 5, 3^6 = 5^2 = 25 mod 11 = 3. Kiểm từ phía Bob: 2^7 mod 11 = 7, 2^8 mod 11 = 14 mod 11 = 3 nên X_B = 8, và 9^8 mod 11 tính qua 9^2 = 81 mod 11 = 4, 9^4 = 16 mod 11 = 5, 9^8 = 25 mod 11 = 3, khớp. "9" chính là khoá công khai Y_A chứ không phải khoá chung. "5" là 3^3 mod 11, tức dùng sai số mũ. "7" là 2^7 mod 11, chỉ là một luỹ thừa trung gian. "1" là phần tử đơn vị, chỉ ra khi số mũ là bội của bậc phần tử (chẳng hạn 3^5 = 243 mod 11 = 1), mà 6 không phải bội của 5.
Mở trang câu hỏi này →
AWeak collision resistance
BPre-image resistance
CStrong collision resistance
Lời giải
Đáp án đúng: "Pre-image resistance". Kháng tiền ảnh (pre-image resistance, còn gọi là tính một chiều) đòi hỏi: cho một giá trị băm h bất kỳ, không thể tìm được một cách khả thi đầu vào x nào sao cho H(x) = h; với hàm băm đầu ra n bit, vét cạn cần cỡ 2^n lần thử. "Weak collision resistance" (kháng va chạm yếu, hay kháng tiền ảnh thứ hai) là tính chất khác: cho trước một đầu vào x cụ thể, khó tìm x' khác x có cùng giá trị băm; kẻ tấn công được biết cả đầu vào chứ không chỉ đầu ra. "Strong collision resistance" (kháng va chạm mạnh) đòi hỏi khó tìm bất kỳ cặp đầu vào khác nhau nào cho cùng giá trị băm; kẻ tấn công tự chọn cả hai đầu vào nên tấn công ngày sinh (birthday attack) chỉ cần cỡ 2^(n/2) lần. Câu hỏi chỉ nói "cho đầu ra, tìm lại đầu vào", đúng định nghĩa tiền ảnh.
Mở trang câu hỏi này →
AMeet-in-the-middle attack
BMan-in-the-middle attack
CChosen-ciphertext attack
DChosen-plaintext attack
Lời giải
Đáp án đúng: "Meet-in-the-middle attack". Tấn công gặp nhau ở giữa áp dụng cho mọi phép mã hoá nhiều lần nối tiếp như Double DES: kẻ tấn công có một cặp bản rõ và bản mã, mã hoá bản rõ với mọi khoá K1 và lưu bảng, rồi giải mã bản mã với mọi khoá K2 và tìm giá trị trùng ở giữa; công sức chỉ cỡ 2 × 2^56 = 2^57 thay vì 2^112, và nó không dựa vào tính chất riêng nào của thuật toán, chỉ dựa vào việc hai lần mã hoá chạy tuần tự. "Man-in-the-middle attack" (kẻ đứng giữa) là tấn công vào giao thức truyền thông hay trao đổi khoá như Diffie-Hellman, chen vào giữa hai bên, không phải tấn công lên cấu trúc mã khối. "Chosen-ciphertext attack" và "Chosen-plaintext attack" là các mô hình năng lực của kẻ tấn công (được chọn bản mã để giải, hay chọn bản rõ để mã hoá), không phải một kỹ thuật cụ thể khai thác việc mã hoá nối tiếp.
Mở trang câu hỏi này →
A1 & 5 only
B1, 3 & 5 only
C1, 3, 4, & 5 only
DAll above
Lời giải
Đáp án đúng: "All above". Hạ tầng khoá công khai PKI (Public Key Infrastructure) là tập hợp phần cứng, phần mềm, con người, chính sách và thủ tục để tạo, quản lý, lưu trữ, phân phối và thu hồi chứng chỉ số dựa trên mật mã khoá công khai. Cơ quan chứng thực CA tạo và ký chứng chỉ X.509, kho chứng chỉ (repository) lưu và phân phối chúng cho người cần xác minh khoá, còn danh sách thu hồi CRL công bố chứng chỉ bị thu hồi khi khoá riêng lộ hoặc mất hiệu lực; toàn bộ vòng đời ấy là việc quản lý. Vì cả năm việc đều thuộc PKI, "1 & 5 only" thiếu lưu trữ, thu hồi và quản lý; "1, 3 & 5 only" bỏ sót lưu trữ và quản lý chứng chỉ; "1, 3, 4, & 5 only" chỉ thiếu lưu trữ, nhưng lưu chứng chỉ trong kho để người khác tra cứu cũng là trách nhiệm của PKI.
Mở trang câu hỏi này →
ATrue
BFalse
Lời giải
Đáp án đúng: "False". Giải mã (decryption) là quá trình ngược: đưa bản mã (ciphertext) trở lại bản rõ (plaintext) bằng thuật toán giải mã và khoá, viết là P = D(K, C). Quá trình biến bản rõ thành bản mã, C = E(K, P), mới là mã hoá (encryption). Ví dụ với mã Caesar khoá 3, mã hoá biến chữ a thành chữ d, còn giải mã đưa chữ d về lại chữ a. Phát biểu đã đảo hai khái niệm nên sai. "True" chỉ đúng nếu câu nói về encryption; với decryption thì chiều biến đổi là từ bản mã sang bản rõ, và người nhận hợp lệ thực hiện nó nhờ nắm khoá giải mã.
Mở trang câu hỏi này →
9AES is not based on Feistel cipher.2 lựa chọn
ATrue
BFalse
Lời giải
Đáp án đúng: "True". AES (Rijndael) được xây dựng theo mạng thay thế hoán vị SPN (Substitution-Permutation Network): mỗi vòng xử lý toàn bộ trạng thái 128 bit qua SubBytes, ShiftRows, MixColumns và AddRoundKey, và giải mã dùng các phép nghịch đảo riêng như InvSubBytes, InvMixColumns. Cấu trúc Feistel thì khác hẳn: chia khối làm hai nửa trái phải, mỗi vòng chỉ biến đổi một nửa bằng hàm vòng F rồi XOR vào nửa kia và đổi chỗ, nhờ vậy giải mã chỉ cần chạy lại cùng mạch với khoá con theo thứ tự ngược mà F không cần khả nghịch; DES là ví dụ điển hình. Vì AES không chia đôi khối và không có bước đổi chỗ hai nửa, phát biểu AES không dựa trên Feistel là đúng, nên "False" bị loại.
Mở trang câu hỏi này →
ADigital signature
BAuthenticator
CTag
DCryptographic checksum
EKeyed hash
Lời giải
Đáp án đúng: "Digital signature". MAC (message authentication code, mã xác thực thông điệp) là một khối dữ liệu ngắn có độ dài cố định, tính từ thông điệp và một khoá bí mật chung K của hai bên; bên nhận tính lại MAC bằng cùng K để kiểm tra toàn vẹn và nguồn gốc. Vì thế nó còn được gọi là "Authenticator" (bộ xác thực), "Tag" (thẻ gắn kèm thông điệp), "Cryptographic checksum" (tổng kiểm tra mật mã, khác checksum thường ở chỗ có khoá) và "Keyed hash" (băm có khoá, như HMAC). Chữ ký số khác về bản chất: nó dùng cặp khoá bất đối xứng, ký bằng khoá riêng và ai có khoá công khai cũng kiểm được, nên cho thêm tính chống chối bỏ (non-repudiation), điều MAC với khoá dùng chung không làm được vì bên nhận cũng tạo ra được đúng MAC đó.
Mở trang câu hỏi này →
ATrue
BFalse
Lời giải
Đáp án đúng: "True". Trong mật mã bất đối xứng (asymmetric cryptography), khoá công khai được công bố cho mọi người, nên toàn bộ an toàn dựa vào việc không thể suy ra khoá riêng (private key) từ khoá công khai trong thời gian khả thi. Nếu suy ra được, bất kỳ ai cũng giải mã được thư gửi cho chủ khoá hoặc giả mạo chữ ký của họ. Ví dụ với RSA, khoá công khai là (n, e) và khoá riêng d; tính d đòi hỏi biết phi(n) = (p − 1)(q − 1), tức phải phân tích n thành thừa số nguyên tố, việc này không khả thi với n đủ lớn (2048 bit trở lên). "False" sai vì nếu bỏ yêu cầu này thì hệ bất đối xứng mất hết ý nghĩa bảo mật.
Mở trang câu hỏi này →
A3
B5
C7
D9
Lời giải
Đáp án đúng: "3". Với mã dịch vòng (Caesar) trên bảng 26 chữ cái, dịch k vị trí và dịch k mod 26 vị trí cho cùng kết quả, vì cứ dịch đủ 26 lần là chữ cái quay về chính nó. Tính lại: 26 × 20 = 520, 523 − 520 = 3, nên 523 mod 26 = 3; ngoài ra dịch 3 vị trí sang phải tương đương dịch 26 − 3 = 23 vị trí sang trái, nên số lần dịch tối thiểu là 3. Phương án "5" ứng với khoá 525 (525 − 520 = 5), không phải 523. Phương án "7" ứng với khoá 527 (527 − 520 = 7). Phương án "9" ứng với khoá 529 (529 − 520 = 9). Bài học chính là khoá lớn hơn 26 không làm mã dịch vòng mạnh hơn: không gian khoá thật sự chỉ có 26 giá trị, nên vét cạn rất dễ.
Mở trang câu hỏi này →
AAlice
BBob
CEve
Lời giải
Đáp án đúng gồm hai ý: "Alice" và "Bob". Trong thuật ngữ mật mã, Alice và Bob là hai bên hợp lệ muốn trao đổi bí mật: Alice dùng khoá để mã hoá bản rõ (plaintext) thành bản mã (ciphertext), Bob dùng khoá tương ứng để giải mã; với mật mã đối xứng cả hai cùng giữ một khoá bí mật chung, với mật mã bất đối xứng thì mỗi bên giữ khoá riêng của mình. "Eve" (từ eavesdropper, kẻ nghe lén) là kẻ tấn công thụ động trên kênh truyền: theo nguyên lý Kerckhoffs, Eve được giả định biết thuật toán và thấy bản mã nhưng không có khoá, nên toàn bộ an toàn của hệ dựa vào việc khoá chỉ nằm trong tay Alice và Bob. Nếu Eve có khoá thì Eve đọc được mọi thông điệp và hệ mật coi như đã bị phá.
Mở trang câu hỏi này →
AE
BT
CY
DZ
EG
FR
Lời giải
Đáp án đúng gồm hai ý: "G" và "R". Mã Vigenère với khoá hai ký tự dùng xen kẽ hai phép dịch Caesar: chữ ở vị trí lẻ dịch theo ký tự khoá thứ nhất, chữ ở vị trí chẵn dịch theo ký tự khoá thứ hai, nên chữ e phổ biến nhất của bản rõ bị mã thành hai chữ bản mã khác nhau tuỳ vị trí chẵn lẻ, mỗi chữ gánh khoảng nửa số lần xuất hiện của e. Vì vậy hai chữ đứng đầu bảng tần suất bản mã, "R" rồi "G", là ứng viên cho e. Cần nói thẳng: dữ kiện khoá XO không khớp chính xác với bảng tần suất, vì X = 23 biến e = 4 thành (4 + 23) mod 26 = 1, tức chữ b, còn O = 14 biến e thành (4 + 14) mod 26 = 18, tức chữ s; câu này chỉ giải được bằng lập luận tần suất, và theo lập luận đó hai chữ nhiều nhất là đáp án. "Z" đứng thứ ba, hợp làm ảnh của một chữ phổ biến khác như t hay a. "Y" đứng thứ 18, là chữ hiếm trong bản mã. "E" và "T" là chữ bản rõ phổ biến, còn trong bảng bản mã chúng chỉ đứng thứ 11 và 16.
Mở trang câu hỏi này →
AConfidentiality protection
BApplication requirement
CPerformance
DFlexibility
ELonger protection
Lời giải
Đáp án đúng: "Confidentiality protection". MAC (Message Authentication Code, mã xác thực thông điệp) là giá trị ngắn tính từ thông điệp và khoá bí mật, gửi kèm thông điệp ở dạng rõ; nó chứng minh nguồn gốc và tính toàn vẹn nhưng không che giấu nội dung, nên bảo vệ tính bí mật không thể là lý do chọn MAC thay cho mã hoá. "Application requirement" là lý do thật: có ứng dụng phát cùng một thông điệp tới nhiều nơi, hoặc chỉ cần xác thực mà không cần giấu nội dung. "Performance" cũng đúng: bên nhận chịu tải lớn có thể chỉ kiểm tra MAC một cách chọn lọc thay vì giải mã mọi thứ. "Flexibility" đúng vì tách xác thực khỏi bảo mật cho phép áp dụng hai cơ chế ở hai tầng khác nhau. "Longer protection" đúng vì MAC có thể lưu cùng thông điệp để kiểm tra toàn vẹn về sau, còn bản đã giải mã thì mất bảo vệ ngay sau khi nhận.
Mở trang câu hỏi này →
A460
B1080
C720
D2048
Lời giải
Đáp án đúng: "720". Mật mã hoán vị (Permutation Cipher) với khoá độ dài 6 chia bản rõ thành từng khối 6 ký tự rồi sắp lại vị trí theo khoá; khoá là một hoán vị của sáu vị trí, chẳng hạn [3 2 6 1 4 5], nên mỗi số từ 1 đến 6 xuất hiện đúng một lần. Số hoán vị của 6 phần tử là 6! = 1 × 2 × 3 × 4 × 5 × 6 = 720: vị trí đầu có 6 cách chọn, vị trí thứ hai còn 5, rồi 4, 3, 2, 1. "460" không phải giai thừa của số nào và không ứng với cách đếm nào. "1080" lớn hơn 6! nên đã đếm thừa các dãy có số lặp lại, vốn không phải hoán vị hợp lệ. "2048" là 2^11, kiểu đếm số khoá nhị phân 11 bit, không áp dụng cho khoá là hoán vị. Không gian 720 khoá nhỏ đến mức vét cạn tức thời, nên mật mã hoán vị đứng một mình không an toàn.
Mở trang câu hỏi này →
AThe cipher is equivalent to the Vigenère cipher using a key of length 3 and of value "YYY"
BThe cipher can be expressed as c = (p-2) mod 26, where c is each ciphertext letter and p is each plaintext letter
CThis cipher transforms a plaintext alphabet to distinct ciphertext alphabets with long enough plaintext inputs
DThe cipher can be expressed as c = (p+24) mod 26, where c is each ciphertext letter and p is each plaintext letter
EThe cipher is equivalent to a Caesar Cipher
Lời giải
Đáp án đúng: "This cipher transforms a plaintext alphabet to distinct ciphertext alphabets with long enough plaintext inputs". Câu hỏi tìm phát biểu SAI. Khoá Vigenère dài 1 nghĩa là mọi chữ đều dịch cùng một lượng 24, nên chỉ có một bảng chữ bản mã duy nhất: đây là mã đơn bảng, bản rõ dài bao nhiêu thì mỗi chữ vẫn chỉ ứng với một chữ cố định và tần suất không bị san phẳng; nói nó tạo ra nhiều bảng chữ bản mã khác nhau (đặc trưng của mã đa bảng) là sai. Các phát biểu kia đều đúng nên không được chọn: "c = (p+24) mod 26" là định nghĩa trực tiếp với Y = 24; "c = (p-2) mod 26" tương đương vì 24 ≡ −2 (mod 26), ví dụ p = 0 (chữ a) cho (0 + 24) mod 26 = 24 và (0 − 2) mod 26 = 24, đều là chữ y; khoá YYY lặp lại cùng phép dịch 24 ở mọi vị trí nên "equivalent to the Vigenère cipher using a key of length 3" đúng; và một phép dịch cố định chính là "The cipher is equivalent to a Caesar Cipher".
Mở trang câu hỏi này →
ATrue
BFalse
Lời giải
Đáp án đúng: "True". Trong mật mã khoá công khai, mỗi người có một cặp khoá: khoá công khai ai cũng biết và khoá riêng chỉ chủ sở hữu giữ. Khi người gửi mã hoá bằng khoá công khai của người nhận, chỉ ai nắm khoá riêng tương ứng mới giải mã được, và đó chính là người nhận, nên kẻ nghe lén trên đường truyền không đọc được nội dung; đây là cách dùng mã hoá bất đối xứng để bảo vệ tính bí mật (confidentiality). Ngược lại, nếu người gửi dùng khoá riêng của chính mình thì ai cũng giải được bằng khoá công khai của họ, nên cách đó chỉ phục vụ xác thực và chữ ký số chứ không giữ bí mật. Vì phát biểu mô tả đúng chiều bảo mật, "False" bị loại.
Mở trang câu hỏi này →
A1
B512
C1024
D2048
Lời giải
Đáp án đúng: "512". Khoá dài 10 bit tạo không gian 2^10 = 1024 khoá. Kẻ tấn công vét cạn (brute-force) thử lần lượt từng khoá và dừng khi giải mã ra bản rõ có nghĩa; khoá đúng nằm ở vị trí ngẫu nhiên đều trong danh sách, nên trung bình phải thử một nửa không gian, tức 2^(10−1) = 1024 / 2 = 512 lần giải mã. "1" là trường hợp may mắn nhất, thử trúng ngay lần đầu, không phải giá trị trung bình. "1024" là trường hợp xấu nhất với kẻ tấn công, khi khoá đúng nằm ở cuối danh sách. "2048" bằng 2^11, vượt cả số khoá có thể có nên không bao giờ phải thử tới chừng ấy. Công thức chung: khoá n bit cần tối đa 2^n và trung bình 2^(n−1) lần thử.
Mở trang câu hỏi này →
A31
B15
C19
D23
E27
Lời giải
Đáp án đúng: "15". Cây băm (hash tree, cây Merkle) giữ giá trị băm của từng khối ở lá và băm của hai con ở mỗi nút trong, nên một khối lỗi làm lệch đúng một đường từ lá lên gốc. Để khoanh vùng, ta kiểm gốc thấy lệch, rồi ở mỗi tầng kiểm cả hai nút con của nút lệch để biết nhánh nào chứa lỗi. Cây 256 khối có log2(256) = 8 tầng dưới gốc nên cách đếm này cho 1 + 2 × 8 = 17 lần kiểm; cùng cách đếm, cây 16 khối ra 1 + 2 × 4 = 9 và cây 128 khối ra 1 + 2 × 7 = 15. Nói thẳng: 17 không có trong các phương án, nên không lựa chọn nào khớp đúng. "15" (cây 128 khối) và "19" = 1 + 2 × 9 (cây 512 khối) cùng lệch đúng một tầng so với 17; chọn "15" vì nó trùng kết quả của cùng câu hỏi với cây 128 khối, nhiều khả năng số khối đã đổi mà phương án giữ nguyên, chứ không phải vì "19" sai hơn về lập luận. "23" = 1 + 2 × 11 ứng với cây 2048 khối, "27" = 1 + 2 × 13 ứng với 8192 khối, "31" = 1 + 2 × 15 ứng với 32768 khối, đều lệch từ ba tầng trở lên.
Mở trang câu hỏi này →