CHƢƠNG 3 : BẺ KHĨA MẠNG KHƠNG DÂY
3.1. Bẻ khóa mạng khơng dây sử dụng giao thức bảo mật WEP
3.1.4. Cuộc tấn công thứ hai: Korek A_s13:
Xác suất thành công là: (254
256)256-p ≈ 13.75% (p = 3)
Trong cuộc tấn công thứ hai này, một thủ thuật đƣợc sử dụng trong PRGA. Nếu kết thúc sau KSA với một trạng thái trong là: S[1] = p và S[p] = 0, PRGA sẽ đổi chỗ những giá trị này dẫn tới kết quả o1 = p. Để đạt đƣợc
điều này thì cần những điều kiện sau:
1. S[1] = p. Điều kiện này cho phép PRGA nhắm mục tiêu cho phần tử
thứ p trong trạng thái trong có giá trị bằng p. 2. o1 = p.
Giả sử rằng byte kết quả đầu tiên là p, giả định rằng sau khi PRGA trao đổi giá trị p sẽ đƣợc ở vị trí p, và jp =0.
Xét ví dụ cụ thể sau: Giả sử IV:
Với K[3] là mục tiêu (trong ví dụ này K[3] = Si[0] – S[p] – jp-1 = 63). Sau
đó theo KSA ta có: Khởi tạo: i0 = 0, j0 = 6 Bƣớc 1: 6 252 193 0 1 2 3 4 5 6 ….. 0 1 2 3 4 5 6 ….. 0 1 2 3 4 5 6 ….. 6 1 2 3 4 5 0 …..
i1 = 1, j1 = 3 (nhớ rằng 6+252+1 = 3)
Bƣớc 2:
i2 = 2, j2 = 198
Bƣớc 3:
i3 = 3, j3 = 199 + K[3]
(chú ý rằng ta đang đi tìm giá trị của K[3])
Trƣớc khi kiểm tra xem bƣớc 4 làm gì ta đi phân tích hành vi của PRGA. Biết rằng sau KSA ta có S[1] = p (=3), nên để có o1 = p (=3) ta phải có S[p] = 0:
i= 1 và j = S[1] = 3
Bƣớc 1 của PRGA: nhắc lại rằng trƣớc khi byte kết quả đƣợc đƣa ra thì một trao đổi đƣợc thực hiện.
Điều kiện này sẽ thiết lập o1 là: S[S[1] + S[3]] = S[0+3] = S[3] = 3 = p.
Do đó ta biết rằng j3 = Si[0] – là chỉ số của phần tử thứ 0 tại bƣớc thứ 3
của KSA (do S[3] = 0) và tổng quát hơn jp = Si[0], điều này dẫn tới giá trị của
0 1 2 3 4 5 6 ….. 6 3 2 1 4 5 0 ….. 0 1 2 3 4 5 6 ….. 6 3 198 1 4 5 0 ….. 0 1 2 3 4 5 6 ….. 6 3 198 0 4 5 1 ….. 0 1 2 3 4 5 6 ….. 6 0 198 3 4 5 1 …..
K[3] = Si[0] – S[3] – j2 = 6-1-198 = 63 (vì -193 = 62 module 256), có thể tổng
quát lên K[p] = Si[0] – S[p] – jp-1.[12]