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

Câu hỏi: CRY303c Mật mã ứng dụng – Bộ ôn tập thi lại số 2

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
ATrue
BFalse
Lời giải
Đáp án đúng: "True". Trong mã Feistel, mỗi vòng tính L_i = R_(i−1) và R_i = XOR(L_(i−1), F(R_(i−1), K_i)). Để đảo ngược, từ L_i và R_i ta có ngay R_(i−1) = L_i, rồi L_(i−1) = XOR(R_i, F(L_i, K_i)); ở cả hai chiều hàm F chỉ được tính xuôi trên một nửa đã biết, và XOR với cùng một giá trị hai lần thì triệt tiêu, nên F không cần khả nghịch. Vì vậy giải mã dùng đúng cấu trúc mã hoá với khoá con theo thứ tự ngược lại, và người thiết kế được tự do chọn F phi tuyến phức tạp như hàm F của DES dùng các hộp S nén 6 bit thành 4 bit. "False" sai vì tính khả nghịch của cả vòng đến từ cấu trúc XOR và hoán đổi hai nửa, không đến từ F.
Mở trang câu hỏi này →
ACTR
BOFB
CCBC
DCFB
EECB
Lời giải
Đáp án đúng: "CTR". Chế độ đếm (counter mode) mã hoá giá trị bộ đếm T_i bằng E rồi XOR với bản rõ; hai bên phải dùng cùng giá trị bộ đếm cho từng khối, và bộ đếm thường khởi tạo từ nonce hay dấu thời gian. Khi Alice và Bob không đồng bộ thời gian và tần số đồng hồ khác nhau, bộ đếm của hai bên lệch nhau, dòng khoá sai và giải mã hỏng, nên CTR bị ảnh hưởng. "OFB" sinh dòng khoá chỉ từ IV bằng cách mã hoá lặp đầu ra trước, không dựa vào giá trị đếm hay đồng hồ bên ngoài. "CBC" xích mỗi khối với khối bản mã trước đã truyền kèm, bên nhận có đủ dữ liệu. "CFB" lấy khối bản mã trước làm đầu vào, cũng tự đồng bộ theo bản mã. "ECB" mã hoá độc lập từng khối, không có trạng thái chung nào cần đồng bộ.
Mở trang câu hỏi này →
43What is CBC stand for?4 lựa chọn
ACipher block chaining
BCyclic Binary Code
CCode of Backchannel Conduct
DComplement Block Coding
Lời giải
Đáp án đúng: "Cipher block chaining". CBC là viết tắt của Cipher Block Chaining (chế độ mã khối móc xích), một chế độ hoạt động của mã khối: mỗi khối bản rõ được XOR với khối bản mã ngay trước rồi mới mã hoá, Ci = E(K, Pi XOR C(i−1)), còn khối đầu dùng vectơ khởi tạo IV. Nhờ móc xích, hai khối bản rõ giống nhau vẫn cho bản mã khác nhau, khắc phục điểm yếu lộ mẫu của ECB; đổi lại việc mã hoá phải tuần tự. "Cyclic Binary Code" là tên một loại mã nhị phân dùng trong mã sửa lỗi hay mã hoá vị trí, không phải chế độ mật mã. "Code of Backchannel Conduct" là cụm từ không có nghĩa trong mật mã học. "Complement Block Coding" cũng không phải tên chế độ mã khối nào.
Mở trang câu hỏi này →
AC2 = XOR(E(C1),K)
BC2 = E(K,XOR(C1,P1))
CC2 = XOR(P2,E(K,XOR(C1,P2)))
DC2 = E(K,XOR(C1,P2))
EC2 = XOR(P2,E(K,XOR(C1,P1)))
FC2 = XOR(P1,E(K,XOR(C1,P1)))
Lời giải
Đáp án đúng: "C2 = XOR(P2,E(K,XOR(C1,P1)))". Ở chế độ OFB (Output Feedback), mã khối chỉ sinh dòng khoá: O1 = E(K, IV), O2 = E(K, O1)…, rồi Ci = Pi XOR Oi. Vì C1 = P1 XOR O1 nên O1 = XOR(C1,P1), suy ra O2 = E(K,XOR(C1,P1)) và C2 = XOR(P2, O2). "C2 = E(K,XOR(C1,P2))" là công thức CBC, nơi bản rõ đi qua hàm mã hoá. "C2 = XOR(P2,E(K,XOR(C1,P2)))" đưa P2 vào sinh dòng khoá, trái với OFB vốn sinh dòng khoá độc lập với bản rõ. "C2 = XOR(P1,E(K,XOR(C1,P1)))" XOR dòng khoá với P1 thay vì P2, nên không chứa khối bản rõ thứ hai. "C2 = E(K,XOR(C1,P1))" chỉ là O2, thiếu bước XOR với P2. "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ế độ nào.
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 →
ASubBytes
BShiftRows
CMixColumns
DAddRoundKey
Lời giải
Đáp án đúng: "AddRoundKey". Mỗi vòng AES gồm bốn phép biến đổi, và chỉ AddRoundKey dùng khoá: nó XOR trạng thái 128 bit với khoá vòng sinh ra từ lịch khoá. "SubBytes" thay từng byte qua một hộp S cố định, xây từ nghịch đảo trong GF(2^8) và một phép biến đổi affine, giống nhau cho mọi khoá. "ShiftRows" dịch vòng hàng thứ i của ma trận trạng thái sang trái i byte, chỉ là hoán vị vị trí cố định. "MixColumns" nhân mỗi cột với một ma trận hằng trên GF(2^8) để khuếch tán, cũng không liên quan tới khoá. Ba phép này tạo tính hỗn loạn và khuếch tán nhưng ai cũng tính được; chính AddRoundKey ở đầu, giữa các vòng và cuối cùng mới đưa bí mật vào, nên thiếu nó thì AES chỉ là phép biến đổi công khai.
Mở trang câu hỏi này →
ADigest
BMessage
CCache
DHash value
EFingerprint
Lời giải
Đáp án đúng gồm ba ý: "Digest", "Hash value" và "Fingerprint". Hàm băm nhận đầu vào độ dài tuỳ ý và cho ra một chuỗi độ dài cố định, ví dụ 256 bit với SHA-256. Đầu ra này được gọi là giá trị băm (hash value), là bản tóm lược thông điệp (message digest, nên gọi tắt là digest), và cũng được gọi là dấu vân tay (fingerprint) vì nó đại diện gần như duy nhất cho dữ liệu: đổi một bit đầu vào thì đầu ra đổi hẳn, như vân tay nhận diện một người. "Message" là đầu vào của hàm băm, thứ được băm, chứ không phải đầu ra. "Cache" là vùng nhớ đệm lưu dữ liệu để truy cập nhanh; bảng băm có thể dùng làm bộ đệm nhưng đó không phải tên gọi đầu ra của hàm băm mật mã.
Mở trang câu hỏi này →