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 2/3 — câu 21–40.

Danh sách câu hỏi

40/47 câuCòn 7
AAcross varying inputs, the output of the hash function needs to be uniformly distributed.
BThe output size is fixed.
CGiven an input, a hash function can produce multiple outputs.
DThe input size can vary.
Lời giải
Đáp án đúng: "Given an input, a hash function can produce multiple outputs.". Câu hỏi tìm phát biểu SAI. Hàm băm là hàm tất định: cùng một đầu vào luôn cho đúng một giá trị băm, nếu không bên nhận không thể tính lại để kiểm toàn vẹn hay xác minh chữ ký. Các phát biểu kia đều đúng nên không được chọn: "Across varying inputs, the output of the hash function needs to be uniformly distributed." đúng vì đầu ra phải trải đều, trông như ngẫu nhiên, để khó đoán và khó tìm va chạm; "The output size is fixed." đúng, ví dụ SHA-256 luôn ra 256 bit; "The input size can vary." đúng vì hàm băm nhận đầu vào độ dài tuỳ ý.
Mở trang câu hỏi này →
AEasy to produce
BDepends on the message being signed
CDifficult to forge
DUses information unique to the sender
EVerifiable by a trusted third party
Lời giải
Đáp án đúng: "Verifiable by a trusted third party". Các yêu cầu của chữ ký số là: chữ ký phụ thuộc vào thông điệp được ký, dùng thông tin riêng của người gửi để chống giả mạo và chối bỏ, dễ tạo, dễ nhận ra và kiểm tra, và không thể giả mạo trong thời gian khả thi. Việc kiểm tra được thực hiện bởi bất kỳ ai có khoá công khai của người ký, không cần một bên thứ ba tin cậy đứng giữa; sơ đồ cần bên trọng tài là dạng chữ ký có trọng tài, không phải yêu cầu chung. "Easy to produce" là yêu cầu để người ký dùng được trong thực tế. "Depends on the message being signed" giúp chữ ký không bị bóc ra gắn sang thông điệp khác. "Difficult to forge" là yêu cầu an toàn cốt lõi. "Uses information unique to the sender" là khoá riêng, đảm bảo chỉ người gửi tạo được chữ ký và không chối bỏ được.
Mở trang câu hỏi này →
AH
Bx (which is the original input of the hash chain)
CH^n
DH^{n+1}
EH^2
FH^{n-1}
Lời giải
Đáp án đúng: "H^{n-1}". Trong sơ đồ mật khẩu dùng một lần theo chuỗi băm của Lamport, người dùng chọn giá trị gốc x rồi băm liên tiếp n lần; máy chủ chỉ lưu H^n(x). Lần đăng nhập kế tiếp, người dùng gửi H^{n-1}(x); máy chủ băm thêm một lần và so: H(H^{n-1}(x)) = H^n(x) thì chấp nhận, rồi thay giá trị lưu bằng H^{n-1}(x) cho lần sau. An toàn vì hàm băm một chiều: biết H^n không lùi được về H^{n-1}. "H^n" đã nằm ở máy chủ và đã lộ, gửi lại chỉ là phát lại. "H^{n+1}" thì ai biết H^n cũng tự tính được. "H^2" và "H" là các mắt xích dùng gần cuối chuỗi, không phải lần kế tiếp. "x (which is the original input of the hash chain)" là gốc bí mật, lộ nó thì cả chuỗi bị tính ra.
Mở trang câu hỏi này →
ATrue
BFalse
Lời giải
Đáp án đúng: "True". Một sơ đồ chữ ký số (digital signature scheme) thường gồm ba thuật toán. Thứ nhất là sinh khoá (key generation), tạo cặp khoá riêng để ký và khoá công khai để kiểm. Thứ hai là ký (signing), nhận thông điệp, thường là giá trị băm của nó, cùng khoá riêng và cho ra chữ ký. Thứ ba là kiểm tra (verification), nhận thông điệp, chữ ký và khoá công khai rồi trả về chấp nhận hay từ chối. Ví dụ với RSA, chữ ký là S = H(M)^d mod n và người kiểm tính S^e mod n rồi so với H(M). Yêu cầu an toàn là không ai thiếu khoá riêng tạo được chữ ký hợp lệ cho thông điệp mới. Câu hỏi bỏ lửng sau dấu hai chấm nhưng mệnh đề ba thuật toán là đúng, nên "False" bị loại.
Mở trang câu hỏi này →
ATrue
BFalse
Lời giải
Đáp án đúng: "True". Hàm băm (hash function) nhận đầu vào có độ dài tuỳ ý và luôn trả về giá trị băm (digest) có độ dài cố định; ví dụ SHA-256 cho ra đúng 256 bit dù đầu vào là một byte hay một tệp vài gigabyte, MD5 luôn cho 128 bit, SHA-1 luôn cho 160 bit. Tính chất này giúp giá trị băm dùng được như dấu vân tay ngắn gọn của dữ liệu để kiểm toàn vẹn hay ký số. Cũng vì nén vô hạn đầu vào về hữu hạn đầu ra nên va chạm luôn tồn tại, và an toàn của hàm băm nằm ở chỗ khó tìm va chạm chứ không phải không có. "False" sai vì cả hai vế của phát biểu đúng là định nghĩa cơ bản của hàm băm.
Mở trang câu hỏi này →
AWeak collision resistance
BOne-way property
CPre-image resistance
DStrong collision resistance
Lời giải
Đáp án đúng: "Pre-image resistance". Định nghĩa trong câu là: cho một phần tử h trong miền giá trị của hàm băm, không thể tìm được, bằng tính toán khả thi, đầu vào x nào có H(x) = h; nghĩa là hàm khó đảo ngược. Tên chuẩn của tính chất này là kháng tiền ảnh (pre-image resistance), vì x là tiền ảnh của h. Cần nói thẳng: "One-way property" (tính một chiều) là tên gọi khác của cùng tính chất đó, nên xét về nội dung nó không sai; nhưng câu chỉ cho chọn một, và định nghĩa nêu theo ngôn ngữ miền giá trị và tiền ảnh nên tên chuẩn được chọn là kháng tiền ảnh. "Weak collision resistance" là kháng tiền ảnh thứ hai: cho trước một đầu vào x, không tìm được y ≠ x cùng giá trị băm; điểm xuất phát là một đầu vào chứ không phải một giá trị băm. "Strong collision resistance" đòi không tìm được bất kỳ cặp đầu vào nào trùng băm, không gắn với giá trị cho trước nào.
Mở trang câu hỏi này →
A0
B16
C32
D64
Lời giải
Đáp án đúng: "32". Mã khối (block cipher) chỉ mã hoá được trọn từng khối có kích thước cố định, ở đây 64 bit; dữ liệu 32 bit chưa đủ một khối nên phải đệm (padding) thêm 64 − 32 = 32 bit, ví dụ theo PKCS#7 hay đệm bit 1 rồi các bit 0, để có đúng một khối 64 bit rồi mới đưa vào hàm mã hoá. "0" là đáp án cho mã dòng, vốn XOR từng bit với dòng khoá dài bằng dữ liệu nên không cần đệm, không phải trường hợp mã khối. "16" không ứng với phép tính nào, chỉ đưa dữ liệu lên 48 bit, vẫn thiếu một khối. "64" đệm thêm trọn một khối, khiến tổng thành 96 bit, không phải bội của 64.
Mở trang câu hỏi này →
ASymmetric cipher
BAsymmetric cipher
CBlock cipher operation modes
DClassical cipher
Lời giải
Đáp án đúng: "Block cipher operation modes". Mã khối chỉ mã hoá được đúng một khối cố định (64 bit với DES, 128 bit với AES); các chế độ hoạt động của mã khối (ECB, CBC, CFB, OFB, CTR) quy định cách áp dụng mã khối lên nhiều khối liên tiếp, có liên kết giữa các khối hay dùng vector khởi tạo, để thông điệp dài được mã hoá an toàn, ví dụ CBC giúp hai khối bản rõ giống nhau không cho ra hai khối bản mã giống nhau. "Symmetric cipher" là cả lớp mã dùng chung khoá, không phải cơ chế xử lý thông điệp dài. "Asymmetric cipher" dùng cặp khoá và thường chỉ mã hoá dữ liệu ngắn như khoá phiên. "Classical cipher" là các mã cổ điển như Caesar, Vigenère, không giải quyết vấn đề an toàn khi ghép nhiều khối.
Mở trang câu hỏi này →
ACTR
BOFB
CCBC
DCFB
EECB
Lời giải
Đáp án đúng: "CTR". Ở chế độ CTR (Counter), mã khối mã hoá các giá trị bộ đếm nonce‖i để sinh dòng khoá, rồi XOR với bản rõ; giống OFB ở chỗ mã khối chỉ sinh dòng khoá, lỗi một bit bản mã chỉ hỏng đúng bit đó và có thể chuẩn bị dòng khoá trước. Khác biệt là khối thứ i chỉ cần E(K, nonce‖i) nên giải mã được bất kỳ khối nào ngay mà không cần các khối trước, tức truy cập ngẫu nhiên, và chạy song song được. "OFB" chính là chế độ đang được so sánh, mỗi khối dòng khoá phụ thuộc khối trước nên phải tính tuần tự. "CBC" XOR bản rõ với bản mã trước rồi mới mã hoá, không phải kiểu dòng khoá như OFB. "CFB" đưa bản mã trước vào sinh dòng khoá, nên giống mã dòng hơn nhưng vẫn móc xích. "ECB" mã từng khối độc lập, truy cập ngẫu nhiên được nhưng không hề giống OFB và lộ mẫu lặp.
Mở trang câu hỏi này →
A1
B13
C26
D52
Lời giải
Đáp án đúng: "26". Bản mã QNGWFWD thuộc mật mã Caesar (mã dịch), chỉ có 26 khoá dịch từ 0 đến 25. Quên khoá thì phải vét cạn: thử dịch ngược bản mã theo từng khoá rồi xem kết quả nào thành từ có nghĩa. Trong trường hợp xấu nhất, khoá đúng là khoá thử sau cùng, nên phải giải mã đủ 26 lần (nếu bỏ khoá 0 vì giữ nguyên bản rõ thì còn 25 lần, vẫn gần nhất với 26). "1" là trường hợp may mắn nhất, trúng ngay lần đầu. "13" là số lần thử trung bình 26 / 2, không phải trường hợp xấu nhất. "52" gấp đôi số khoá, có thể do tính riêng chữ hoa và chữ thường, nhưng Caesar trên bảng 26 chữ cái chỉ có 26 phép dịch. Không gian khoá nhỏ như vậy là lý do Caesar bị phá tức thời bằng vét cạn.
Mở trang câu hỏi này →
AThe letter-pair/digram AX appeared the most in the ciphertext, so they must be TH. In other words, A is mapped from the letter T, and X is mapped from H.
BIf we replace the Caesar Cipher with a Monoalphabetic Cipher, then it becomes harder to crack by an attacker (who does not know the key).
CThe ordering between the Caesar and the Permutation does not matter within the product cipher, so we can decrypt it in any order.
DIf we another Caesar Cipher encryption in the product cipher (so that there are two Caesar Cipher operations and a Permutation Cipher operation), then it becomes harder to crack by an attacker (who does not know the key)
ELetter Z appeared the most in the ciphertext, so it must be mapped from the latter E
Lời giải
Đáp án đúng gồm ba ý: "If we replace the Caesar Cipher with a Monoalphabetic Cipher, then it becomes harder to crack by an attacker (who does not know the key).", "The ordering between the Caesar and the Permutation does not matter within the product cipher, so we can decrypt it in any order." và "Letter Z appeared the most in the ciphertext, so it must be mapped from the latter E". Mã tích ở đây gồm phép thay thế (Caesar, đổi từng chữ) và phép hoán vị (đổi chỗ trong khối 5 chữ). Thay Caesar bằng mã đơn bảng nâng không gian khoá thay thế từ 26 lên 26! ≈ 4 × 10^26 nên khó phá hơn. Thay thế tác động lên giá trị từng chữ, hoán vị chỉ tác động lên vị trí, hai phép giao hoán nên thứ tự áp dụng và giải mã không quan trọng. Hoán vị không đổi số lần xuất hiện của mỗi chữ và Caesar chỉ đổi tên chữ, nên chữ nhiều nhất trong bản mã là ảnh của e. Ngược lại, câu "AX appeared the most in the ciphertext, so they must be TH" sai vì hoán vị đã phá vỡ các cặp chữ liền kề nên tần suất chữ ghép không còn giữ. Câu "two Caesar Cipher operations and a Permutation Cipher operation" sai vì hai lần dịch Caesar gộp lại vẫn chỉ là một lần dịch, ví dụ dịch 3 rồi dịch 5 bằng dịch 8, không thêm an toàn.
Mở trang câu hỏi này →
ABlock size
BKey size
CNumber of rounds
DSubkey generation
ERound function
FAll the other choices
Lời giải
Đáp án đúng: "All the other choices". Khi thiết kế một mã Feistel phải chọn các tham số sau, mỗi cái đánh đổi giữa an toàn và tốc độ. "Block size": khối lớn hơn an toàn hơn nhưng chậm hơn, ví dụ DES dùng 64 bit. "Key size": khoá dài hơn chống vét cạn tốt hơn, DES dùng 56 bit, ngày nay cần ít nhất 128 bit. "Number of rounds": một vòng Feistel không đủ an toàn, nhiều vòng tăng độ hỗn loạn, DES dùng 16 vòng. "Subkey generation": thuật toán sinh khoá con cho từng vòng càng phức tạp thì phân tích càng khó. "Round function": hàm vòng F càng phi tuyến và phức tạp thì càng chống được phân tích vi sai và tuyến tính. Ngoài ra còn hai cân nhắc là mã hoá giải mã nhanh trên phần mềm và dễ phân tích. Cả năm thứ đều là tham số thiết kế, nên chọn phương án gộp.
Mở trang câu hỏi này →
AStream cipher
BBlock cipher
CAsymmetric cipher
DSymmetric cipher
Lời giải
Đáp án đúng: "Block cipher". Mã khối xử lý bản rõ theo từng khối có độ dài cố định, coi cả khối là một đơn vị và sinh ra khối bản mã cùng độ dài, ví dụ DES dùng khối 64 bit, AES dùng khối 128 bit; mỗi bit đầu ra phụ thuộc toàn bộ khối đầu vào và khoá. "Stream cipher" (mã dòng) thì mã từng bit hoặc từng byte một, thường bằng cách XOR với dòng khoá giả ngẫu nhiên như RC4, không gom thành khối. "Asymmetric cipher" là mật mã khoá công khai dùng cặp khoá riêng và công khai, như RSA; tiêu chí phân loại của nó là cách dùng khoá chứ không phải xử lý theo khối. "Symmetric cipher" là nhóm rộng gồm mọi hệ dùng chung một khoá, bao gồm cả mã khối lẫn mã dòng, nên không khớp định nghĩa cụ thể về khối trong câu.
Mở trang câu hỏi này →
A128/128/10
B128/128/12
C128/128/14
D128/256/10
Lời giải
Đá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.
Mở trang câu hỏi này →
ASubBytes
BShiftRows
CMixColumns
DAddRoundKey
Lời giải
Đáp án đúng: "MixColumns". Mỗi vòng thông thường của AES gồm bốn bước: SubBytes thế từng byte qua hộp S, ShiftRows dịch vòng các hàng của ma trận trạng thái, MixColumns trộn từng cột bằng phép nhân ma trận trên GF(2^8), và AddRoundKey XOR trạng thái với khoá vòng. Vòng cuối cùng (vòng 10 với AES-128) bỏ MixColumns, vì ở vị trí cuối bước này không tăng an toàn mà chỉ thêm chi phí, và bỏ nó giúp mạch giải mã có cấu trúc đối xứng với mạch mã hoá. Câu hỏi tìm bước không có trong vòng cuối, nên các bước có mặt không được chọn: "SubBytes" vẫn có để giữ tính phi tuyến (confusion); "ShiftRows" vẫn có để khuếch tán byte giữa các cột; "AddRoundKey" vẫn có và còn bắt buộc, vì không có khoá vòng cuối thì kẻ tấn công tự đảo ngược được các bước không khoá phía trước.
Mở trang câu hỏi này →
AStream cipher
BBlock cipher
CAsymmetric cipher
DSymmetric cipher
Lời giải
Đáp án đúng: "Block cipher". Cấu trúc Feistel chia khối đầu vào thành hai nửa trái phải, mỗi vòng thay nửa trái bằng nửa phải và nửa phải bằng XOR của nửa trái với F(nửa phải, khoá con); cấu trúc này dùng để xây mã khối, tiêu biểu là DES với khối 64 bit và 16 vòng. "Stream cipher" sinh dòng khoá rồi XOR từng bit hay byte, không chia khối thành hai nửa qua nhiều vòng. "Asymmetric cipher" như RSA dựa trên bài toán số học với cặp khoá, không dùng mạng Feistel. "Symmetric cipher" đúng là lớp chứa mã khối nhưng quá rộng, gồm cả mã dòng không dùng Feistel, nên chỗ trống cần đúng loại mã khối.
Mở trang câu hỏi này →
ATrue
BFalse
Lời giải
Đáp án đúng: "True". AES không dùng cấu trúc Feistel nên giải mã không thể chạy lại đúng mạch mã hoá với khoá con đảo thứ tự như DES. Mỗi vòng mã hoá gồm SubBytes, ShiftRows, MixColumns, AddRoundKey; giải mã phải dùng các phép nghịch đảo riêng: InvSubBytes với hộp S nghịch đảo, InvShiftRows dịch vòng các hàng sang phải thay vì sang trái, InvMixColumns nhân với ma trận nghịch đảo trên GF(2^8) có hệ số 0E, 0B, 0D, 09 thay cho 02, 03, 01, 01, và khoá vòng dùng theo thứ tự ngược. Vì thế phần cứng hay phần mềm AES cần cài đặt riêng cho chiều giải mã, và InvMixColumns còn tốn kém hơn MixColumns. Chọn "False" là nhầm AES với mã Feistel; ngay cả dạng equivalent inverse cipher có cùng trình tự vòng thì các phép biến đổi bên trong vẫn khác.
Mở trang câu hỏi này →
A5
B24
C32
D120
Lời giải
Đáp án đúng: "120". Mã đơn bảng (monoalphabetic cipher) ánh xạ mỗi ký hiệu bản rõ sang một ký hiệu bản mã sao cho không có hai ký hiệu nào trùng đích, tức mỗi khoá là một hoán vị của bảng chữ. Với 5 ký hiệu, ký hiệu đầu có 5 lựa chọn đích, ký hiệu thứ hai còn 4, rồi 3, 2, 1, nên số khoá là 5! = 5 × 4 × 3 × 2 × 1 = 120; với 26 chữ cái thì là 26!, cỡ 4 × 10^26. "5" chỉ là số khoá của mã dịch vòng trên 5 ký hiệu, nơi khoá là một độ dịch từ 0 tới 4. "24" là 4!, tức số hoán vị của chỉ 4 ký hiệu. "32" là 2^5, số tập con của 5 ký hiệu, không phải số cách gán một đổi một.
Mở trang câu hỏi này →
ATransposition cipher
BSubstitution cipher
CAsymmetric cipher
DSymmetric cipher
Lời giải
Đáp án đúng: "Substitution cipher". Mã thay thế thay mỗi chữ cái (hoặc nhóm chữ) của bản rõ bằng một chữ cái hay ký hiệu khác theo khoá, vị trí các chữ giữ nguyên; ví dụ Caesar dịch mỗi chữ đi k vị trí, mã thế đơn bảng dùng một hoán vị bất kỳ của 26 chữ, Vigenère dùng nhiều bảng thế xen kẽ. "Transposition cipher" (mã chuyển vị) ngược lại giữ nguyên các chữ mà chỉ đổi chỗ chúng, như rail fence hay mật mã hoán vị, nên tần suất từng chữ không đổi. "Asymmetric cipher" phân loại theo cách dùng cặp khoá công khai và khoá riêng, như RSA, vốn làm việc trên số chứ không phải thay chữ. "Symmetric cipher" là nhóm rộng gồm mọi hệ dùng chung một khoá, chứa cả mã thay thế lẫn chuyển vị, nên không phải tên đúng cho hành vi thay chữ mà câu mô tả.
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 →