-Ổ Khắc phục: dùng một bộ sinh số ngẫu nhiên để tạo khóa dài, gia lap ma hoa One-Time pad.. fos Ma dong Stream Cipher — Giai ma => thuc hién ngugc lại = Banma C được XOR với dãy số ngẫu
Trang 1BAO MAT THONG TIN
- Ẩ? 2 NA HÓA ĐÓI XỨNG
HIỆN ĐẠI
Trang 2Of yee
TinyA5S/1 A5/1
TinyRC4 RC4
Trang 3ra ăăằă=
— Mã hóa cô điển
= ban tin ngôn ngữ,
= mot don v1 ma hoa 1a chi cai,
= phuong thirc thay thé hay phương thức hoán vị
— Thong tin ngay ngay nay
= HTML, hinh anh, video, am thanh
=> Biéu dién trén may vi tính dưới dạng một dãy các số nhị
phân
= Trong máy tính: chữ cái được biểu diễn bang ma ASCII
Trang 5OH Nem TT E10 606i
Vi du ma hoa đôi xứng hiện đại
— Bản rõ là các chữ cái của một ngôn ngữ gôm có 8 chữ cái A,
B,C, D,E,EF,G, H trong đó môi chữ cái được biêu diên băng 3
Trang 6
— Đơn vị mã hóa không phải là một khôi 4 bít
— Đê giải mã, lây bản mã XOR một lần nữa với khóa thì có lại
bản rõ ban đâu
Trang 7
Of Nentonecbent steer
— Mã hóa bang phép XOR:
s Khóa được lặp lại:
« => điểm yếu giống như mã hóa Vigenere
-Ổ Khắc phục: dùng một bộ sinh số ngẫu nhiên để tạo khóa dài,
gia lap ma hoa One-Time pad
= Một khối được mã hóa băng phép XOR với khóa:
° => Không an toàn vì chỉ cần biết một cặp khối bản rõ - bản mã
(vd: 1111 và 1010) => dễ dàng tính được khóa
° Khắc phục: tìm các phép mã hóa phức tạp hơn phép XOR
Trang 8fos Ma dong (Stream Cipher)
— Ma dong co cac dac tinh sau:
e Kich thuéc mét đơn vị mã hóa: gôm k bít Bản rõ được chia thành các don
vị mã hóa: P —> PạØ1P; Pn—1 (P; : k bít)
e_ Một bộ sinh dãy số ngẫu nhiên: dùng một khóa K ban đầu đề sinh ra các số
ngẫu nhiên có kích thước bằng kích thước đơn vị mã hóa:
StreamCipher(K) —> S = saS4S2 Sn_+ - (S¡: k bít)
e Moi so ngau nhién được XOR với đơn vị mã hóa của bản rõ để có được
bản mã
Co = Po €® Sọ, C¡ = Pìị Đ5ị Ồ ;C = CoC1C¿ Cn—1
Trang 9fos Ma dong (Stream Cipher)
— Giai ma => thuc hién ngugc lại
= Banma C được XOR với dãy số ngẫu nhiên S để cho ra lại bản rõ ban đâu:
— Vi du nay khong phai la ma dong vi sO, s1, s2 lặp lại khóa K
— Về phương diện khóa, ví dụ này giỗng ma Vigenere ©
Trang 10fos Ma dong (Stream Cipher)
— Với mã dòng, các sô s, được sinh ra phải đảm bảo một độ
ngau nhiên nào đó (chu ky tuần hoàn đài)
— Khóa có chiều dài ngăn: Vigenere => không bảo đảm an toàn
— Khóa có chiêu dài băng chiều dài bản tin: One-Time Pad => không thực tê
— Mã dòng cân băng giữa hai điêm này => khóa ngắn nhưng dãy
sô sinh ra bảo đảm một độ ngâu nhiên cân thiệt như khóa của One-time Pad, dùng răng không hoàn toàn thực sự ngâu ie
Trang 11
6s em ae
— A5/1 được dùng trong mạng điện thoại GSM, dé bao mat dit
liệu trong quá trình liên lạc giữa máy điện thoại và trạm thu
phát sóng võ tuyên
— Đơn vị mã hóa của A5/1 là một bít
— Bộ sinh số mỗi lần sẽ sinh ra hoặc bít 0 hoặc bít 1 để sử dụng
trong phép XOR
Trang 125 Se
— Mô hình thu nhỏ của A5/1 gọi là TinyA5/1
— Cơ chế thực hiện của bộ sinh số TinyA5/1 là như sau:
— Bộ sinh số gom 3 thanh ghi X, Y, Z
= Thanh ghi X gom 6 bit, ky hiéu 1a (Xp, Xj, ., X‹)
= Thanh ghi Y gôm 8 bit (Yo Yq: ., Y2)
= Thanh ghi Z lưu 9 bit (Zo, Z¿, , Zạ)
— Khóa K ban đầu có chiêu dài 23 bít và lần lượt được phân bố
vào các thanh ghi: K -> XYZ
Trang 14= If x, =m then thuc hién quay X
= Iƒ ya=m then thực hiện quay Y
= If z,=m then thực hiện quay Z
— Và bít được sinh ra là: $S¡Z xs ® y7Œ Ze
— Bít s; được XOR với bít thứ ¡ trong bản rõ để có được bít thứ i
trong bản mã theo quy tặc của mã dòng
Trang 15VỊ dụ: mã hóa bản rõ P=III (chữ h) với khóa K là 100101 01001110.100110000
Ban đâu giá trị của các thanh phi X, Y, Z lả:
X= 100101
Y = 01001110
Z = 100110000 Bước 0: x;= 0, y;=0, z;= Ì —> m = 0 — quay X, quay Y
X = 110010
Y = 10100111 —> So= 001890 = 1
Z = 100110000 Buoe 1: x;= 1, y3=0, z3= 1 > m=1- quay X, quay Z
Trang 166mm ae
— A5/1 hoạt động giỗng như TinyA5/1
— Kích thước thanh ghi X, Y, Z lân lượt là 19, 22 và 23 bít
Trang 18— RC4 được dùng trong giao thức SSL để bảo mật dữ liệu trong quá trình truyền đữ liệu giữa Web Server và trình duyệt Web
— RC4 còn được sử dụng trong mã hóa WEP của mạng WIreless LAN
Trang 195 Sco
— Là mô hình thu nhỏ của RC4
— Đơn vị mã hóa của TinyRC4 la 3 bit
— TinyRC4 dung 2 mang S va T mỗi mảng gôm § số nguyên 3 bít (từ 0 đên 7)
— Khóa là một dãy gồm N sô nguyên 3 bít với N có thể lấy giá trị
từ I đên 8 Bộ sinh sô môi lân sinh ra 3 bít đê sử dụng trong phép XOR
— Quá trình sinh số của TinyRC4 gồm hai giai đoạn:
Trang 21- - Khởi tạo § và T - Hoán vị S
Trang 22— Cac phan tử của S tiếp tục được hoán vị
—_ Tại mỗi bước sinh sô, hai phân tử của dãy S được chọn đê tính
ra số k 3 bít là số được dùng để XOR với đơn vị mã hóa của
bản rõ
Trang 23- Tiếp tục ví dụ trên, quá trình sinh số mã hóa bản rõ “bag” thuc hiện:
Trang 24public static int[] cryptRC4(int S[], int T[], int K[], int N) {
// Giai đoạn khởi tạo
for (int i = 0; i < 8; i++) {
Trang 25System.out.printLn("Giai doan sinh sé: ");
Trang 26— Cơ chế hoạt động của RC4 cũng giông như TinyRC4 với các đặc tính sau:
= Don vi ma hoa của RC4 là một byte 8 bít
= Mang S va T gồm 256 so nguyên 8 bit
s Khóa K là một dãy gom N so nguyén 8 bit voi N có thé lay
gia tri ty 1 dén 256
= Bộ sinh số mỗi lần sinh ra một byte để sử dụng trong phép XOR
Trang 27Bi naaaaa=n
— Hai giai doan cua RC4 la:
a) Giai doan khoi tao:
— Quá trình sinh số của RC4 cũng sinh ra dãy số ngẫu nhiên, khó