Professional Documents
Culture Documents
Câu hỏi 1
Câu hỏi 2
Xét (E, D) là một hệ mã với không gian khóa K, không gian thông điệp {0, 1}n và không gian bản
mã {0, 1}s . Giả sử (E, D) là hệ mã có xác thực. Hệ mã nào sau đây cũng có xác thực: (như thông
thường, ta sử dụng k để ký hiệu phép ghép xâu)
1. E 0 (k1 , k2 ), m = E(k2 , E(k1 , m)) và
¨
D(k1 , D(k2 , c)) nếu D(k2 , c) 6= ⊥
D0 (k1 , k2 ), c =
⊥ ngược lại
2. E 0 (k, m) = c ← E(k, m), output (c, c) và
¨
D(k, c1 ) nếu c1 = c2
D0 (k, (c1 , c2 ) ) =
⊥ ngược lại
3. E 0 (k, m) = E(k, m), 0 và D0 (k, (c, b) ) = D(k, c)
4. E 0 (k, m) = E(k, m), E(k, m) và D0 (k, (c1 , c2 ) ) = D(k, c1 )
Câu hỏi 3
Giả sử chúng ta cần xây dựng một ứng dụng để mã hóa nhiều thông điệp với cùng một khóa. Hệ
mã nào chúng ta nên sử dụng? (ta tạm thời bỏ quả vấn đề sinh và quản lý khóa)
1. sử dụng cài đặt chuẩn của một trong các hệ mã xác thực GCM, CCM, EAX or OCB.
2. tự cài đặt OCB
3. tự cài Encrypt-and-MAC
4. dùng cài đặt chuẩn của randomized counter mode.
1
https://class.coursera.org/crypto-012/
1
Câu hỏi 4
Xét (E, D) là hệ mã đối xứng với không gian thông điệp M (xem M chỉ bao gồm các thông điệp
ngắn, ví dụ 32 bytes). Ta định nghĩa hệ MAC (S, V ) cho các thông điệp trong M như sau:
¨
1 nếu D(k, t) = m
S(k, m) := E(k, m) ; V (k, m, t) :=
0 ngược lại
Hệ mã (E, D) cần tính chất nào dưới đây để thỏa mãn hệ MAC trên an toàn?
1. an toàn ngữ nghĩa (semantic security) dưới chosen plaintext attack (CPA)
2. hệ mã xác thực
3. bí mật tuyệt đối
4. an toàn ngữ nghĩa
Câu hỏi 5
Trong lecture 8.1 chúng ta đã thảo luận cách dẫn xuất các khóa phiên từ khóa bí mật. Vấn đề nảy
sinh khi khóa bí mật không phải ngẫu nhiên đều. Trong câu hỏi này chúng ta chứng minh rằng
dùng một PRF với một khóa ngẫu nhiên không đều có thể tạo ra giá trị ngẫu nhiên không đều.
Điều này chỉ ra rằng khóa phiên không thể dẫn xuất trực tiếp dùng khóa bí mật không đều làm
khóa trong PRF. Vì vậy người ta phải sử dụng hàm dẫn xuất khóa như HKDF.
Giả sử k là một khóa bí mật không đều được lấy mẫu từ không gian khóa {0, 1}256 . Đặc biệt, k
được lấy mẫu từ tập mọi khóa ở đó cả 128 bit cao nhất đều bằng 0. Nói cách khác, k được chọn
ngẫu nhiên đều từ một tập con không gian khóa. Chính xác hơn,
¨
1/2128 if MSB128 (c) = 0128
for all c ∈ {0, 1}256 : Pr[k = c] =
0 ngược lại
Xét F (k, x) là một PRF an toàn với không gian đầu vào {0, 1}256 . Hàm nào dưới đây là PRF an
toàn khi k ngẫu nhiên đều trong {0, 1}256 nhưng không an toàn khi khóa được lấy mẫu từ phân
phối không đều như ở trên?
¨
F (k, x) nếu MSB128 (k) = 0128
1. F 0 (k, x) =
0256 ngược lại
2. F 0 (k, x) = F (k, x)
¨
F (k, x) nếu MSB128 (k) 6= 1128
3. F 0 (k, x) =
0256 ngược lại
¨
F (k, x) nếu MSB128 (k) 6= 0128
4. F 0 (k, x) =
1256 ngược lại
Câu hỏi 6
Kịch bản nào dưới đây có thể chấp nhận để sử dụng hệ mã có xác thực đơn định(DAE) như SIV?
2
1. để mã hóa nhiều bản ghi trong một cơ sở dữ liệu với cùng một khóa khi cùng một bản ghi có
thể lặp lại nhiều lần.
2. khi các thông điệp có cấu trúc đủ đảm bảo rằng mọi thông điệp được mã hóa là duy nhất.
3. khi một thông điệp cố định được mã lặp lại dùng cùng một khóa.
4. để mã hóa riêng nhiều gói tin trong một hội thoại (voice conversation) với cùng một khóa.
Câu hỏi 7
Xét E(k, x) là một hệ mã khối an toàn. Xét hệ mã tweakable block cipher sau đây:
M
E 0 (k1 , k2 ), t, x = E(k1 , x) E(k2 , t).
3. không vì với x 6= x 0 ta có
M M
E 0 ((k1 , k2 ), 0, x) E 0 ((k1 , k2 ), 0, x) = E 0 ((k1 , k2 ), 0, x 0 ) E 0 ((k1 , k2 ), 0, x 0 )
4. không vì với x 6= x 0 ta có
M M
E 0 ((k1 , k2 ), 0, x) E 0 ((k1 , k2 ), 1, x) = E 0 ((k1 , k2 ), 0, x 0 ) E 0 ((k1 , k2 ), 1, x 0 )
5. không vì với x 6= x 0 và t 6= t 0 ta có
M M
E 0 ((k1 , k2 ), t, x) E 0 ((k1 , k2 ), t 0 , x) = E 0 ((k1 , k2 ), t, x 0 ) E 0 ((k1 , k2 ), t 0 , x)
Câu hỏi 8
Trong lecture 8.5 chúng ta đã thảo luận về mã hóa bảo toàn định dạng (format preserving
encryption): một PRP trên miền {0, . . . , s − 1} với một số giá trị xác định trước của s. Nhắc lại
rằng cách xây dựng mà ta trình bày thực hiện trên hai bước, ở đó bước thứ hai hoạt động lặp lại
PRP cho đến khi output thuộc vào tập {0, . . . , s − 1}.
Giả sử ta cố gắng xây dựng một hệ mã bảo toàn định dạng cho credit card từ AES chỉ dùng bước
thứ hai. Có nghĩa rằng, ta bắt đầu với một PRP trên miền {0, 1}128 từ đó ta muốn xây dựng một
PRP trên miền1016 . Nếu ta chỉ dùng bước (2), ta cần lặp (trung bình) AES bao nhiêu lần cho mỗi
lần tính PRP với trên 1016 ?
3
Câu hỏi 9
Xét (E, D) là một tweakable block cipher an toàn. Ta định nghĩa MAC (S, V ) sau:
¨
1 nếu E(k, m, 0) = tag
S(k, m) := E(k, m, 0) ; V (k, m, tag) :=
0 ngược lại
Nói cách khác, thông điệp m được dùng như tweak và bản rõ đưa vào E luôn được đặt bằng 0.
Đây có phải là MAC an toàn?
1. có
2. phụ thuộc vào tweakable block cipher.
3. không
Câu hỏi 9
Trong Lecture 7.6 chúng ta đã thảo luận về padding oracle attacks. Kiểu tấn công chọn bản mã
(chosen-ciphertext attacks) này có thể phá các cài đặt sai của sơ đồ MAC-then-encrypt. Xét hệ
thống cài đặt MAC-then-encrypt với mã hóa dùng CBC với random IV và AES như hệ mã khối.
Giả sử hệ thống bị tấn công bởi padding oracle attack. Một kẻ tấn công lấy được bản mã 64-byte c
(16 bytes đầu tiên của c là IV và 48 bytes còn lại là nội dung được mã). Kẻ tấn công cần chọn
bao nhiêu queries (trong trường hợp tồi nhất) để có thể giải mã toàn bộ 48 byte nội dung này?
Nhắc lại rằng padding oracle attacks chỉ giải mã một byte nội dung mỗi lần.
1. 12288 3. 12240
2. 256 4. 65536