Tất cả câu hỏi

Ngân hàng câu hỏi trắc nghiệm có giải thích chi tiết.

3.180/19.477 câuCòn 16.297
3161DES is an ideal block cipher.2 lựa chọn
ATrue
BFalse
Lời giải
Đáp án đúng: "False". Mã khối lý tưởng (ideal block cipher) với khối n bit cho phép khoá chọn bất kỳ phép hoán vị nào trong (2^n)! hoán vị của 2^n đầu vào; với n = 64, chỉ riêng việc ghi bảng ánh xạ đã cần khoá dài 64 × 2^64 bit, quá lớn để dùng. DES vì vậy chỉ là một xấp xỉ thực tế theo hướng mật mã tích của Feistel: khoá 56 bit chỉ chọn được 2^56 trong số (2^64)! hoán vị, xây từ 16 vòng thế và hoán vị. Không gian khoá 2^56 ấy còn nhỏ đến mức đã bị vét cạn bằng máy chuyên dụng, và DES được thay bằng Triple DES rồi AES. Do đó phát biểu sai, chọn "True" là nhầm mã khối thực tế dùng được với mã khối lý tưởng chỉ tồn tại trên lý thuyết.
Mở trang câu hỏi này →
31623DES is an ideal block cipher.2 lựa chọn
ATrue
BFalse
Lời giải
Đáp án đúng: "False". Mã khối lý tưởng (ideal block cipher) với khối n bit cho phép chọn bất kỳ hoán vị nào trong (2^n)! hoán vị của 2^n giá trị đầu vào, nên khoá phải mô tả cả bảng ánh xạ, dài cỡ n × 2^n bit. Với khối 64 bit như 3DES, con số này là 64 × 2^64 bit, quá lớn để lưu hay dùng thực tế. 3DES chỉ có khoá 112 hoặc 168 bit, tức chọn được tối đa 2^168 ánh xạ trong số (2^64)! hoán vị khả dĩ, một phần cực nhỏ. Vì vậy 3DES, cũng như DES hay AES, là một xấp xỉ thực tế của mã khối lý tưởng theo kiểu Feistel đề xuất, dùng khoá ngắn để sinh một tập con hoán vị trông ngẫu nhiên, chứ không phải mã khối lý tưởng. Phát biểu sai, nên "True" bị loại.
Mở trang câu hỏi này →
A0
B8
C16
D32
Lời giải
Đáp án đúng: "8". Khoá dài 4 bit có 2^4 = 16 giá trị có thể. Kẻ tấn công vét cạn thử lần lượt từng khoá; khoá đúng có thể nằm ở bất kỳ vị trí nào với xác suất như nhau, nên số lần thử trung bình là khoảng một nửa không gian khoá: 16 / 2 = 8 (chính xác là (16 + 1) / 2 = 8.5, thường làm tròn theo quy ước 2^(n−1) = 2^3 = 8). "16" là số lần thử trong trường hợp xấu nhất, khi khoá đúng là khoá cuối cùng được thử. "32" = 2^5, ứng với khoá 5 bit hoặc gấp đôi không gian khoá, không có cơ sở. "0" sai vì kẻ tấn công không biết khoá thì phải thử ít nhất một lần.
Mở trang câu hỏi này →
AError occurs on C2 for ECB Mode.
BError occurs on P2 for CFB Mode.
CError occurs on C2 for CFB Mode.
DError occurs on C2 for CTR Mode.
EError occurs on P1 for CBC Mode.
FError occurs on C2 for OFB Mode
Lời giải
Đáp án đúng gồm hai ý: "Error occurs on P2 for CFB Mode." và "Error occurs on P1 for CBC Mode.". Câu hỏi xét lỗi có làm hỏng C3, bản mã khối 3 mà bên nhận nhận được, nên chỉ chế độ nào tính C3 từ dữ liệu bị lỗi mới bị ảnh hưởng. Ở CFB, C2 = P2 ⊕ E(C1) và C3 = P3 ⊕ E(C2), nên P2 sai thì C2 sai, kéo C3 sai. Ở CBC, C1 = E(P1 ⊕ IV), C2 = E(P2 ⊕ C1), C3 = E(P3 ⊕ C2), nên P1 sai lan qua C1, C2 tới C3 và mọi khối sau. Các tình huống sau không chạm C3: "Error occurs on C2 for ECB Mode." vì mỗi khối ECB mã độc lập, lỗi C2 chỉ hỏng P2 khi giải mã. "Error occurs on C2 for CFB Mode." làm hỏng P2 và P3 lúc giải mã, nhưng C3 đã phát ra từ trước và truyền riêng nên vẫn nguyên. "Error occurs on C2 for CTR Mode." chỉ hỏng P2 vì dòng khoá sinh từ bộ đếm. "Error occurs on C2 for OFB Mode" chỉ hỏng các bit tương ứng của P2 vì dòng khoá OFB độc lập với bản mã.
Mở trang câu hỏi này →
AAFXULB
BROODCK
CRFOUCB
DAOXDLK
Lời giải
Đáp án đúng: "AFXULB". Mã Vigenère cộng từng chữ cái bản rõ với chữ cái khoá lặp lại, theo modulo 26 với A = 0. Khoá XO cho các độ dịch 23, 14 luân phiên. Tính lại: D(3) + 23 = 26 mod 26 = 0 ra chữ A; R(17) + 14 = 31 mod 26 = 5 ra F; A(0) + 23 = 23 ra X; G(6) + 14 = 20 ra U; O(14) + 23 = 37 mod 26 = 11 ra L; N(13) + 14 = 27 mod 26 = 1 ra B, được AFXULB. "RFOUCB" là kết quả khi dịch mọi chữ 14 vị trí, tức dùng khoá chỉ có chữ O, nên đúng ở vị trí chẵn nhưng sai ở vị trí lẻ, ví dụ chữ đầu ra R thay vì chữ A. "AOXDLK" là khi dịch mọi chữ 23 vị trí, tức khoá chỉ có chữ X, nên đúng vị trí lẻ nhưng sai vị trí chẵn. "ROODCK" là khi dùng khoá đảo thứ tự thành OX, nên sai ở mọi vị trí.
Mở trang câu hỏi này →
AStream cipher
BBlock cipher
CAsymmetric cipher
DSymmetric cipher
Lời giải
Đáp án đúng: "Stream cipher". Mã dòng (stream cipher) là thuật toán mã đối xứng sinh ra dòng khoá (keystream) từ khoá bí mật rồi kết hợp từng bit hoặc từng byte của bản rõ với dòng khoá, thường bằng XOR, để cho ra bản mã cũng từng bit hoặc từng byte; ví dụ RC4, ChaCha20. "Block cipher" xử lý cả khối cố định một lúc, như 64 bit với DES hay 128 bit với AES, không phải từng bit. "Asymmetric cipher" dùng cặp khoá công khai và khoá riêng, không thuộc nhóm thuật toán đối xứng mà câu dẫn nói tới. "Symmetric cipher" là lớp rộng chứa cả mã dòng lẫn mã khối, nên không đặc trưng cho cách xử lý từng bit mà định nghĩa mô tả; chỗ trống cần đúng tên khái niệm hẹp.
Mở trang câu hỏi này →
ATrue
BFalse
Lời giải
Đáp án đúng: "False". Ưu điểm lớn của cấu trúc Feistel là mã hoá và giải mã dùng cùng một mạch. Mỗi vòng chia khối thành hai nửa L và R rồi tính L_i = R_(i−1), R_i = L_(i−1) ⊕ F(R_(i−1), K_i); phép XOR tự triệt tiêu nên giải mã chỉ cần chạy lại đúng các vòng đó với khoá con theo thứ tự ngược K_n, …, K_1, và hàm vòng F thậm chí không cần khả nghịch. Nhờ vậy DES chỉ cần một bản cài đặt phần cứng hoặc phần mềm cho cả hai chiều, khác nhau duy nhất ở thứ tự khoá con. Chọn "True" là nhầm Feistel với các mã không dùng Feistel như AES, vốn phải cài đặt riêng các phép nghịch đảo InvSubBytes, InvShiftRows, InvMixColumns cho chiều giải mã.
Mở trang câu hỏi này →
ATrue
BFalse
Lời giải
Đáp án đúng: "True". Bước AddRoundKey của AES XOR từng bit của trạng thái 128 bit với khoá vòng tương ứng. XOR có tính chất tự nghịch đảo: (x ⊕ k) ⊕ k = x ⊕ (k ⊕ k) = x ⊕ 0 = x, nên muốn huỷ tác dụng của AddRoundKey chỉ cần XOR lại với đúng khoá vòng đó, tức là chính phép AddRoundKey. Đây là điểm khác với ba bước còn lại của vòng AES, vốn cần phép nghịch đảo riêng khi giải mã: InvSubBytes dùng hộp S nghịch đảo, InvShiftRows dịch hàng theo chiều ngược, InvMixColumns nhân với ma trận nghịch đảo trên trường GF(2^8). Khi giải mã, các khoá vòng chỉ được dùng theo thứ tự ngược lại. Vì vậy phát biểu đúng, và "False" bị loại.
Mở trang câu hỏi này →
ASubBytes
BShiftRows
CMixColumns
DAddRoundKey
Lời giải
Đáp án đúng: "ShiftRows". Trong AES, trạng thái (state) là ma trận 4 × 4 byte; ShiftRows xoay vòng sang trái hàng 0, 1, 2, 3 lần lượt 0, 1, 2, 3 byte, tức chỉ đổi vị trí byte mà không đổi giá trị byte nào, nên đó là phép hoán vị (transposition) thuần, tạo khuếch tán giữa các cột. "SubBytes" thay từng byte bằng giá trị khác qua hộp S (S-box) dựa trên nghịch đảo nhân trong GF(2^8), là phép thay thế. "MixColumns" nhân mỗi cột với một ma trận cố định trên GF(2^8), làm thay đổi giá trị các byte chứ không chỉ đổi chỗ. "AddRoundKey" XOR trạng thái với khoá vòng, làm thay đổi giá trị byte theo khoá, cũng không phải hoán vị.
Mở trang câu hỏi này →
A5
B24
C32
D120
Lời giải
Đáp án đúng: "120". Mật mã hoán vị với khoá độ dài 5 sắp lại vị trí năm ký tự trong mỗi khối theo một hoán vị như [3 2 1 4 5], trong đó mỗi số từ 1 đến 5 dùng đúng một lần. Số khoá là số hoán vị của 5 phần tử: 5! = 5 × 4 × 3 × 2 × 1 = 120, vì vị trí đầu có 5 cách chọn, vị trí thứ hai còn 4, rồi 3, 2 và 1. "5" chỉ là độ dài khoá, giống như chỉ đếm các phép dịch vòng chứ không phải mọi cách sắp xếp. "24" là 4! = 24, quên mất một vị trí. "32" là 2^5, cách đếm khoá nhị phân 5 bit, không áp dụng cho khoá là hoán vị. Với 120 khoá, kẻ tấn công vét cạn trong chớp mắt, nên hoán vị chỉ có ích khi kết hợp với phép thế trong mật mã tích.
Mở trang câu hỏi này →
A64/112 or 144/48
B64/112 or 132/16
C64/112 or 156/10
D64/112 or 168/48
ENone of the above
Lời giải
Đáp án đúng: "64/112 or 168/48". Triple DES (3DES) dùng DES ba lần theo dạng mã hoá, giải mã, mã hoá, nên kích thước khối vẫn là 64 bit như DES. Khoá có hai biến thể: hai khoá DES 56 bit với K1 dùng lại ở lần thứ ba, cho 2 × 56 = 112 bit, hoặc ba khoá độc lập cho 3 × 56 = 168 bit. Mỗi lần DES có 16 vòng nên tổng là 3 × 16 = 48 vòng. "64/112 or 144/48" sai vì 144 không phải bội số tạo từ các khoá 56 bit (144 ≠ 3 × 56). "64/112 or 132/16" sai cả độ dài khoá thứ hai lẫn số vòng, vì 16 chỉ là số vòng của một lần DES. "64/112 or 156/10" sai cả hai, và 10 là số vòng của AES-128 chứ không phải 3DES. "None of the above" sai vì đã có một phương án khớp đủ ba thông số.
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 →
ADigital signature is based on asymmetric/public-key cryptography
BDigital signature is typically smaller than the data size.
CDigital signature protects the confidentiality of the data
DDigital signature tends to require more computational resources than message authentication
Lời giải
Đáp án đúng: "Digital signature protects the confidentiality of the data". Câu hỏi tìm phát biểu sai. Chữ ký số chỉ bảo đảm xác thực nguồn gốc, toàn vẹn và chống chối bỏ: người gửi ký giá trị băm của dữ liệu bằng khoá riêng, ai có khoá công khai cũng kiểm được, và dữ liệu vẫn gửi ở dạng rõ, nên chữ ký không che giấu nội dung; muốn bí mật phải mã hoá thêm. Các phát biểu sau đều đúng nên không được chọn: "Digital signature is based on asymmetric/public-key cryptography" đúng vì ký bằng khoá riêng, kiểm bằng khoá công khai (RSA, DSA, ECDSA). "Digital signature is typically smaller than the data size." đúng vì chỉ ký giá trị băm, chữ ký RSA 2048 bit dài 256 byte dù tệp lớn bao nhiêu. "Digital signature tends to require more computational resources than message authentication" đúng vì luỹ thừa modulo số lớn tốn hơn nhiều so với HMAC chỉ dùng hàm băm và khoá đối xứng.
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: "Weak collision resistance". Kháng va chạm yếu (weak collision resistance), còn gọi là kháng tiền ảnh thứ hai, nói rằng cho trước một đầu vào x, không tính được trong thời gian khả thi một đầu vào y khác x sao cho H(y) = H(x); đúng như câu hỏi mô tả, vì đầu vào được cho sẵn. "Strong collision resistance" (kháng va chạm mạnh) đòi hỏi không tìm được bất kỳ cặp x khác y nào có cùng giá trị băm, kẻ tấn công được tự chọn cả hai, nên mạnh hơn và chỉ cần cỡ 2^(n/2) phép thử theo nghịch lý ngày sinh. "One-way property" và "Pre-image resistance" là cùng một tính chất: cho trước giá trị băm h, không tìm được đầu vào nào băm ra h; ở đó thứ được cho là đầu ra, không phải một đầu vào.
Mở trang câu hỏi này →
A2^127 x
B2^128 x
C2^64 x
D1x
E2^63 x
F2^256 x
Lời giải
Đáp án đúng: "2^127 x". Câu hỏi viết "256-bit-long key" nhưng ý là giá trị băm dài n = 256 bit. Phá kháng va chạm mạnh (tìm một cặp bất kỳ trùng băm) nhờ nghịch lý ngày sinh cần cỡ 2^(n/2) = 2^128 phép băm, nên x = 2^128. Phá kháng va chạm yếu (cho trước một đầu vào, tìm đầu vào thứ hai cùng băm) không tận 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^256 giá trị băm và trúng sau một nửa, tức 2^(n−1) = 2^255 lần. Tỉ số là 2^255 / 2^128 = 2^127. Chỗ tranh cãi: "2^128 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^(−256) thì số lần thử kỳ vọng là 2^256 và tỉ số là 2^256 / 2^128 = 2^128; đáp án in kèm câu hỏi theo cách tính này, còn ở đây chọn theo quy ước khoá học và chữ "on average". "2^256 x" lấy số lần tuyệt đối của va chạm yếu làm tỉ số. "2^64 x" và "2^63 x" là tỉ số của hàm băm 128 bit (2^128 / 2^64 và 2^127 / 2^64), không phải 256 bit. "1x" coi hai tấn công tốn như nhau, trong khi va chạm yếu khó hơn rất nhiều.
Mở trang câu hỏi này →
AMAC code is uniformly distributed
BAvalanche effect
CLarge key size
DCollision resistance
EIndependence across bits
Lời giải
Đáp án đúng: "Independence across bits". Câu hỏi tìm thứ không phải yêu cầu an toàn của MAC. Yêu cầu chuẩn gồm: thấy M và MAC(K, M) thì không tạo được thông điệp khác cùng MAC, tức "Collision resistance" theo nghĩa khó giả mạo; MAC phân bố đều để mỗi lần đoán bừa thẻ n bit chỉ trúng với xác suất 2^(−n), tức "MAC code is uniformly distributed"; mỗi bit thẻ phụ thuộc mọi bit thông điệp, đổi một bit vào thì khoảng nửa số bit ra đổi theo, tức "Avalanche effect". "Large key size" cũng là yêu cầu thật: kẻ tấn công vét khoá k bit tốn cỡ 2^k phép thử, đoán thẻ tốn cỡ 2^n lần, nên công phá MAC cỡ min(2^k, 2^n); khoá 40 bit thì hàm MAC tốt đến đâu cũng bị vét khoá. "Independence across bits" không có trong danh sách đó; nó dễ bị nhầm với lở tuyết, nhưng lở tuyết là quan hệ giữa bit vào và bit ra chứ không phải giữa các bit ra với nhau. Nói thẳng: đáp án in kèm câu hỏi chọn "Large key size", coi độ dài khoá là tham số chứ không phải tính chất của hàm; lời giải này không theo vì thiếu khoá đủ dài thì các tính chất kia không chặn được vét cạn.
Mở trang câu hỏi này →
APlaintext, ciphertext
BCiphertext, plaintext
CPlaintext, secret key
DCiphertext, secret key
Lời giải
Đáp án đúng: "Plaintext, ciphertext". Trong mô hình mã hoá, thông điệp gốc đọc hiểu được, được đưa vào thuật toán làm đầu vào, gọi là bản rõ (plaintext); thông điệp đã mã hoá, do thuật toán sinh ra làm đầu ra, gọi là bản mã (ciphertext). Thuật toán nhận thêm khoá bí mật (secret key) như một tham số, và cùng một bản rõ với khoá khác nhau sẽ cho bản mã khác nhau. "Ciphertext, plaintext" đảo ngược đầu vào và đầu ra. "Plaintext, secret key" đúng chỗ đầu nhưng khoá không phải là đầu ra, nó là đầu vào độc lập với thông điệp và thường do hai bên thoả thuận trước. "Ciphertext, secret key" sai cả hai chỗ, vì đầu vào đọc hiểu được không thể là bản mã và đầu ra không phải khoá.
Mở trang câu hỏi này →
ATrue
BFalse
Lời giải
Đáp án đúng: "True". Entropy thông tin của Shannon đo độ ngẫu nhiên (độ bất định) của một biến: H = −Σ p(x) · log2 p(x), tính bằng bit. Ví dụ đồng xu cân đối có hai kết quả xác suất 0.5, nên H = −2 × 0.5 × log2(0.5) = 1 bit; một khoá 8 bit chọn đều ngẫu nhiên có 2^8 = 256 giá trị, H = log2(256) = 8 bit; phân bố càng đều, càng nhiều khả năng thì entropy càng lớn. Khi kết quả là tất định, một giá trị có xác suất 1, ta có H = −1 × log2(1) = 0. Vì thế cả ba vế của phát biểu đều đúng, và entropy được dùng để đánh giá độ mạnh của khoá hay mật khẩu. "False" sai vì phát biểu khớp đúng định nghĩa.
Mở trang câu hỏi này →
APlaintext
BCiphertext
CSecret key
DEncryption algorithm
EDecryption Algorithm
Lời giải
Đáp án đúng: "Secret key". Khoá bí mật là một mẩu thông tin thường ngắn (ví dụ 128 hay 256 bit) đưa vào thuật toán mã cùng bản rõ, và chỉ Alice và Bob biết; theo nguyên lý Kerckhoffs, toàn bộ an toàn của hệ dồn vào việc giữ kín khoá này. "Plaintext" là thông điệp gốc cần bảo vệ, là dữ liệu đầu vào được mã hoá, có thể dài tuỳ ý, không phải tham số bí mật hai bên thoả thuận từ trước. "Ciphertext" là đầu ra của phép mã, truyền trên kênh công khai nên Eve cũng thấy. "Encryption algorithm" và "Decryption Algorithm" là các thuật toán mã và giải mã, được giả định công khai, ai cũng biết, chẳng hạn AES; chúng không phải mẩu thông tin chỉ riêng Alice và Bob nắm.
Mở trang câu hỏi này →
ACiphertext c
BKey k
CThe XOR-based encryption algorithm
DPlaintext b
Lời giải
Đáp án đúng gồm hai ý: "Ciphertext c" và "The XOR-based encryption algorithm". Nguyên lý Kerckhoffs nói hệ mật phải an toàn ngay cả khi kẻ tấn công biết mọi thứ trừ khoá, nên người thiết kế phải giả định thuật toán, ở đây là XOR từng bit, đã công khai. Bản mã đi trên kênh truyền nên cũng mặc định bị nghe được; ví dụ p = 1101 XOR k = 0110 cho từng bit 1⊕0 = 1, 1⊕1 = 0, 0⊕1 = 1, 1⊕0 = 1, tức c = 1011, và kẻ tấn công thấy được chuỗi 1011 này. "Key k" là thứ duy nhất phải giữ bí mật; nếu lộ khoá thì chỉ cần XOR c với k là ra bản rõ, nên không thể giả định kẻ tấn công đã biết. "Plaintext b" là chính thứ kẻ tấn công muốn tìm; nếu đã biết sẵn bản rõ thì việc mã hoá không còn ý nghĩa, nên nó không thuộc giả định của Kerckhoffs.
Mở trang câu hỏi này →