Download as pdf or txt
Download as pdf or txt
You are on page 1of 4

Homework 21

Câu hỏi 1

Xét năm sự kiện sau. Hãy liệt kê các sự kiện này theo thứ tự từ sự kiện có xác suất xuất hiện
nhiều nhất đến ít nhất?
1. Chọn một khóa ngẫu nhiên AES 128-bit đúng ngay lần đầu tiên.
2. Thắng sổ xô với 1 triệu người chơi (xác suất là 1/106 ).
3. Xác suất thắng sổ xố với 1 triệu người chơi những 5 lần liên tiếp (xác suất là (1/106 )5 ).
4. Xác suất thắng sổ xố với 1 triệu người chơi những 6 lần liên tiếp.
5. Xác suất thắng sổ xố với 1 triệu người chơi những 7 lần liên tiếp.

Câu hỏi 2

Giả sử rằng bằng cách sử dụng phần cứng rẻ tiền, bạn có thể xây dựng một máy tính khoảng
$200 mà có thể tính toán vét cạn khoảng 1 tỷ khóa AES mỗi giây. Giả sử một tổ chức muốn tấn
công tìm kiếm vén cạn để tìm một khóa AES 128-bit và sẵn sàng chi 4 nghìn tỷ đô la ($4 ∗ 1012 )
để mua các máy này (đây là ngân sách hàng năm của Hoa Kỳ). Với các máy tính này, tổ chức này
mất bao lâu thì có thể tìm được một khóa AES 128-bit bằng cách vét cạn? Bỏ qua các chi phí bổ
sung như điện và bảo trì.
1. Nhiều hơn một triệu năm nhưng ít hơn một tỷ (109 ) năm.
2. Nhiều hơn một tháng nhưng chưa đầy một năm.
3. Nhiều hơn 100 năm nhưng chưa đầy một triệu năm.
4. Nhiều hơn một ngày nhưng ít hơn một tuần.
5. Nhiều hơn một tỷ (109 ) năm.

Câu hỏi 3

Xét PRF an toàn F : {0, 1}n × {0, 1}n → {0, 1}n (cụ thể, một PRF với không gian khóa, không gian
đầu vào, không gian đầu ra đều là {0, 1}n và giả sử n = 128. PRF nào dưới đây là an toàn (có thể
có nhiều hơn một câu trả lời đúng):
1. F 0 (k, x) = k
L
x
2. F 0 (k, x) = reverse(F (k, x)) với reverse( y) là ảnh gương của xâu y, tức là bit đầu của y là bit
cuối của của reverse( y), bit thứ hai của y là bit thứ hai tính từ cuối của reverse( y), và v.v.
3. F 0 (k, x) = F (k, x) F (k, x ⊕ 1n ).
L

4. F 0 (k, x) = F (k, x) 0 (ở đây ký hiệu phép ghép)

5. F 0 ((k1 , k2 ), x) = F (k1 , x) F (k2 , x) (ở đây ký hiệu phép ghép)


1
https://class.coursera.org/crypto-012/

1
6. F 0 (k, x) = F (k, x)[0, . . . , n − 2] (i.e., F 0 (k, x) đạt được bằng cách bỏ đi bit cuối của F (k, x))

Câu hỏi 4

Nhắc lại rằng định lý Luby-Rackoff thảo luận trong Lecture 3.2 khẳng định rằng việc áp dụng
mạng Feistel ba vòng cho một PRF an toàn cho ta một hệ mã khối an toàn. Ta cùng xem chuyện
gì xảy ra nếu ta chỉ sử dụng mạng Feistel hai vòng. Xét F : K × {0, 1}32 → {0, 1}32 là một PRF an
toàn. Nhắc lại rằng mạng Feistel 2-vòng được định nghĩa bởi PRP F2 : K 2 × {0, 1}64 → {0, 1}64 . Ở
đây R0 là 32 bits phải của 64-bit đầu vào và L0 là 32 bit trái.

Một trong các dòng dưới đây là output của PRP F2 này dùng một khóa ngẫu nhiên, trong khi ba
output khác là output của một hoán vị ngẫu nhiên thật f : {0, 1}64 → {0, 1}64 . Mọi dãy 64-bit
outputs đều được mã hóa như các xâu hex độ dài 16. Bạn có thể chỉ ra output của PRP này
không? Chú ý rằng, vì bạn có thể phân biệt được ouput của F2 với ngẫu nhiên, nên F2 không phải
là mã khối an toàn. Đây chính là cái mà chúng tôi muốn chỉ ra.
Gợi ý: Đầu tiên ta nên tìm cách nhận biết được mẫu có phải là xor của F2 (·, 064 ) và F2 (·, 132 032 ).
Sau đó cố gắng nhận biết mẫu này trong output.
1. Với input 064 thì output là "5f67abaf 5210722b". Với input 132 032 thì output là "bbe033c0
0bc9330e".
2. Với input 064 thì output là "2d1cfa42 c0b1d266". Với input 132 032 thì output là "eea6e3dd
b2146dd0".
3. Với input 064 thì output là "e86d2de2 e1387ae9". Với input 132 032 thì output là "1792d21d
b645c008".
4. Với input 064 thì output là "4af53267 1351e2e1". Với input 132 032 thì output là "87a40cfa
8dd39154".

Câu hỏi 5

Nonce-based CBC. Nhắc lại rằng trong lecture 4.4 chúng ta đã nói rằng nếu người ta muôn dùng
mã hóa CBC với nonce không ngẫu nhiên duy nhất thì nonce đầu tiên phải được mã hóa với một
khóa PRP độc lập và kết quả sau đó được dùng như CBC IV. Ta cùng xem chuyện gì xảy ra nếu ta
mã hóa nonce với cùng khóa PRP như khóa dùng cho mã hóa CBC.

2
Xét F : K × {0, 1}` → {0, 1}` là một PRP an toàn, ví dụ, ` = 128. Xét n là một nonce và giả sử
người ta mã hóa thông điệp m bằng cách: đầu tiên tính I V = F (k, n) và sau đó dùng IV này trong
mã hóa CBC dùng F (k, ·). Để ý rằng cùng khóa k được dùng cho tính IV và cho mã hóa CBC. Ta
chứng minh rằng kết quả là hệ thống không phải là một nonce-based CPA an toàn.
Kẻ tấn công bắt đầu bằng cách hỏi mã hóa của hai khối m = (0` , 0` ) với nonce n = 0` . Anh
ta nhận lại được hai khối bản mã (c0 , c1 ). Quan sát rằng, theo định nghĩa của CBC
L ta biết rằng
c1 = F (k, c0 ). Tiếp theo, kẻ tấn công hỏi mã hóa của một khối thông điệp m1 = c0 c1 với nonce
n = c0 . Anh ta nhận lại được một khối bản mã c00 .

Quan hệ nào dưới đây là đúng với c0 , c1 , c 0 0 ? Để ý rằng quan hệ này giúp kẻ tấn công thắng trong
nonce-based CPA game với lợi thế 1.
1. c1 = 0`
2. c1 = c0 c00
L

3. c1 = c00
4. c0 = c1 c00
L

Câu hỏi 6

Xét thông điệp m gồm ` khối AES (ví dụ ` = 100). Alice mã hóa m dùng CBC mode và truyền
bản mã kết quả tới Bob. Do mạng lỗi, khối bản mã số `/2 bị mất trong khi truyền. Mọi bản mã
khác được truyền và nhận đúng. Khi Bob giải mã bản mã nhận được, bao nhiêu khối bản rõ sẽ bị
mất?

Câu hỏi 7

Xét thông điệp m bao gồm ` khối AES (ví dụ ` = 100). Alice mã hóa m dùng randomized counter
mode và truyền bản mã kết quả tới Bob. Do mạng lỗi, bản mã số `/2 bị mất trong khi truyền.
Mọi khối bản mã khác được truyền và nhận đúng. Khi Bob giải mã bản mã nhận được, bao nhiêu
khối bản rõ bị mất?

Câu hỏi 8

Nhắc lại rằng hệ mã không giấu đầy đủ thông tin về độ dài của thông điệp truyền. Lộ thông tin
về độ dài của web requests được dùng để nghe trộm thông tin trên traffic HTTPS tới một số trang
web, như thông tin chuẩn bị thuế, Google searches, và trang sức khỏe. Giả sử rằng kẻ tấn công
nhận được một gói tin mà anh ta biết rằng phần nội dung gói tin được mã hóa dùng AES trong
CBC mode với IV ngẫu nhiên. Nội dung gói tin được mã hóa là 128 bytes. Thông điệp nào dưới
đây có thể đoán là giải mã của nội dung gói tin:
1. ’The most direct computation would be for the enemy to try all 2^r possible
keys, one by one.’
2. ’If qualified opinions incline to believe in the exponential conjecture, then
I think we cannot afford not to make use of it.’

3
3. ’We see immediately that one needs little information to begin to break down
the process.’
4. ’In this letter I make some remarks on a general principle relevant to enciphering
in general and my machine.’

Câu hỏi 9

Xét R := {0, 1}4 và xét PRF F : R5 × R → R được định nghĩa như sau:

t = k[0]


for i = 1 to 4 do

F (k, x) :=
 if (x[i − 1] == 1) t = t ⊕ k[i]

output t

Có nghĩa rằng, khóa là k = (k[0], k[1], k[2], k[3], k[4]) trong R5 và giá trị của hàm tại, ví dụ,
0101 được định nghĩa bởi F (k, 0101) = k[0] ⊕ k[2] ⊕ k[4].
Với một khóa ngẫu nhiên k mà bạn không biết, bạn nhận ra rằng

F (k, 0110) = 0011 and F (k, 0101) = 1010 and F (k, 1110) = 0110.

Giá trị của F (k, 1101) là gì? Để ý rằng vì bạn có thể dự đoán hàm tại một điểm mới, hàm này
không phải là PRF an toàn.

You might also like