Câu hỏi: CRY303c Mật mã ứng dụng – Bộ ôn tập thi lại số 1
47 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 đề. Trang 3/3 — câu 41–47.
Danh sách câu hỏi
47/47 câuHết danh sách
AE
BV
CY
DF
ER
Lời giải
Mở trang câu hỏi này →Đáp án đúng gồm hai ý: "V" và "F". Vigenère với khoá hai chữ dùng xen kẽ hai bảng Caesar: chữ ở vị trí lẻ dịch theo chữ khoá thứ nhất, chữ ở vị trí chẵn dịch theo chữ khoá thứ hai. Trong mỗi nửa văn bản, e vẫn là chữ nhiều nhất, nên e bị biến thành đúng hai chữ bản mã khác nhau, mỗi chữ chiếm khoảng một nửa số lần xuất hiện của e, và hai chữ đó phải đứng đầu bảng tần suất. Bảng đã sắp giảm dần mở đầu bằng hai chữ này nên chọn chúng. Cần nói thẳng: bảng in có chữ lặp (năm chữ xuất hiện hai lần) và khoá XO không khớp chính xác, vì X dịch 23 và O dịch 14 sẽ biến e (vị trí 4) thành (4 + 23) mod 26 = 1 là b, và (4 + 14) mod 26 = 18 là s; do đó câu chỉ giải được bằng lập luận tần suất. "E" sai vì e chỉ giữ nguyên khi chữ khoá là a (dịch 0), và trong bảng nó chỉ đứng thứ 19. "Y" không có mặt trong bảng tần suất. "R" chỉ đứng giữa bảng, ở vị trí thứ 12, không phải chữ nhiều nhất.
A26
B52
C676
D1352
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "676". Khoá Vigenère dài cố định 2 ký tự, mỗi ký tự là một trong 26 chữ cái tiếng Anh và được chọn độc lập, nên theo quy tắc nhân số khoá khác nhau là 26 × 26 = 26^2 = 676 (từ AA tới ZZ, trong đó XO chỉ là một khoá). Với khoá dài k thì số khoá là 26^k, tăng theo cấp số mũ. "26" là số khoá khi khoá dài 1, tương đương mã Caesar. "52" = 26 × 2, cộng số lựa chọn của hai vị trí thay vì nhân. "1352" = 676 × 2, nhân đôi không có cơ sở, như thể đếm thêm một biến thể cho mỗi khoá.
43____ a non-linear substitution step where each byte is replaced with another according to a lookup table.4 lựa chọn
A
SubBytesB
ShiftRowsC
MixColumnsD
AddRoundKeyLời giải
Mở trang câu hỏi này →Đáp án đúng: "SubBytes". SubBytes là bước thay thế phi tuyến duy nhất của AES: mỗi byte trong trạng thái được thay bằng một byte khác tra từ bảng 16 × 16 gọi là hộp S (S-box), dùng 4 bit cao làm hàng và 4 bit thấp làm cột; hộp S xây từ nghịch đảo nhân trong GF(2^8) rồi qua phép biến đổi affine, nên chống được phân tích tuyến tính và vi sai. "ShiftRows" chỉ dịch vòng các hàng của ma trận trạng thái, là hoán vị vị trí chứ không thay giá trị byte. "MixColumns" nhân từng cột với một ma trận hằng trên GF(2^8), là phép tuyến tính dùng để khuếch tán chứ không tra bảng. "AddRoundKey" XOR trạng thái với khoá vòng, cũng là phép tuyến tính và không dùng bảng tra.
ATrue
BFalse
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "True". Trong tấn công chỉ biết bản mã (ciphertext-only), kẻ tấn công chỉ có bản mã và phải dựa vào thống kê ngôn ngữ như phân tích tần suất, hoặc thử khoá rồi đoán xem đầu ra có giống văn bản có nghĩa không. Trong tấn công biết bản rõ (known-plaintext), kẻ tấn công có thêm các cặp bản rõ và bản mã tương ứng, nên kiểm một khoá ứng viên chỉ cần mã hoá bản rõ đã biết và so với bản mã; với nhiều hệ cổ điển, cặp này còn cho tính thẳng khoá, ví dụ một cặp chữ là đủ suy ra độ dịch Caesar, hay XOR bản rõ với bản mã của mã dòng ra ngay dòng khoá. Có nhiều thông tin hơn nên đây là mô hình kẻ tấn công mạnh hơn, và hệ an toàn trước nó thì cũng an toàn trước tấn công chỉ biết bản mã. Chọn "False" là đánh giá thấp lượng thông tin mà các cặp bản rõ và bản mã mang lại.
AStream cipher
BBlock cipher
CAsymmetric cipher
DSymmetric cipher
Lời giải
Mở trang câu hỏi này →Đáp án đúng gồm hai ý: "Stream cipher" và "Symmetric cipher". Câu dẫn mô tả thuật toán mã đối xứng tạo bản mã từng bit hoặc từng byte từ dòng bản rõ: đó chính là định nghĩa mã dòng (stream cipher), sinh dòng khoá từ khoá bí mật rồi XOR với bản rõ. Phải nói rõ: chỗ trống chỉ khớp trọn với "Stream cipher"; "Symmetric cipher" được tính vì câu hỏi yêu cầu chọn hai và câu dẫn tự viết "is a symmetric encryption algorithm", tức mã dòng thuộc lớp mã đối xứng dùng chung một khoá cho mã hoá và giải mã. "Block cipher" xử lý cả khối cố định, 64 bit với DES hay 128 bit với AES, không theo từng bit. "Asymmetric cipher" dùng cặp khoá công khai và khoá riêng, mâu thuẫn với chữ symmetric trong câu dẫn.
A128/128/10
B128/128/12
C128/128/14
D128/256/10
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "128/128/10". AES (chuẩn Rijndael) luôn có kích thước khối cố định 128 bit; độ dài khoá có ba lựa chọn 128, 192 hoặc 256 bit, và số vòng gắn chặt với độ dài khoá: khoá 128 bit chạy 10 vòng, 192 bit chạy 12 vòng, 256 bit chạy 14 vòng. Mỗi vòng gồm SubBytes, ShiftRows, MixColumns và AddRoundKey, riêng vòng cuối bỏ MixColumns. Bộ ba khối 128, khoá 128, 10 vòng chính là cấu hình AES-128 hợp lệ. "128/128/12" ghép khoá 128 bit với 12 vòng, trong khi 12 vòng dành cho khoá 192 bit. "128/128/14" ghép khoá 128 bit với 14 vòng của AES-256. "128/256/10" dùng khoá 256 bit nhưng chỉ 10 vòng, thiếu 4 vòng so với chuẩn 14 vòng cho khoá 256 bit.
47AES is not based on Feistel cipher.2 lựa chọn
ATrue
BFalse
Lời giải
Mở trang câu hỏi này →Đá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.