You are on page 1of 4

Bài tập 41

Câu hỏi 1

Một kẻ tấn công bắt được bản mã sau (hex encoded):


20814804c1767293b99f1d9cab3bc3e7 ac1e37bfb15599e5f40eef805488281d
Anh ta biết rằng bản rõ là thông điệp “Pay Bob 100$” (ở dạng ASCII, bỏ quả nháy kép). Anh ta
cũng biết rằng hệ mã được dùng là CBC với IV ngẫu nhiên cùng với hệ mã khối AES. Hãy chỉ ra
rằng kẻ tấn công có thể thay đổi bản mã để khi giải mã trở thành “Pay Bob 500$”. Bản mã (ở
dạng hexa) là gì ? Điều này chỉ ra rằng CBC không đảm bảo tính toàn vẹn.

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).

Đây có là tweakable block cipher an toàn?


1. có, ta đã giả sử rằng E là mã khối an toàn.
2. không vì với t 6= t 0 ta có
M M
E 0 ((k1 , k2 ), t, 0) E 0 ((k1 , k2 ), t 0 , 1) = E 0 ((k1 , k2 ), t 0 , 1) E 0 ((k1 , k2 ), t 0 , 0)

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 ?

1. 2128 3. 2128 /1016 ≈ 3.4 × 1022


2. 1016 /2128 4. 4

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

You might also like