Slide 1 Mật mã cổ điển và hệ mã đối xứng Classical and Symmetric Cryptography Mô hình trao đổi thông điệp mật Mã hoá Giải mã Đường truyền an toàn KG khoá Alice Bob Oscar cp p K Mã dịch chuyển – Shift[.]
Mật mã cổ điển hệ mã đối xứng Classical and Symmetric Cryptography Mơ hình trao đổi thơng điệp mật Oscar Alice p Mã hoá K KG khoá c Đường truyền an toàn Giải mã p Bob Mã dịch chuyển – Shift Cipher • Phép đồng dư ĐN: a ≡ b (mod m) m ước b – a • Giao thức mã hố/giải mã – Mã hố/giải mã chữ – {A, B, C, …, X, Y, Z} = Z26 = {0, 1, …, 25} – Khoá K, ≤ K ≤ 25 – Mã hoá: y = eK(x) = (x + K) mod 26 – Giải mã: dK(y) = (y – K) mod 26 Ví dụ K = 3: mã Caesar (50 TCN) • • • • • ABCDEFGHIJKLMNOPQRSTUVWXYZ DEFGHIJKLMNOPQRSTUVWXYZABC p = “NGUYENTHANHNHUT” c = “QJXBHQWKDQKQKXW” Phá mã: – Chỉ cần duyệt trường hợp K, < K < 26 Mã thay - Substitution Cipher • Chọn hốn vị p: Z26 Z26 làm khố • VD: – Mã hoá ep(a)=X – Giải mã dp(A)=d “nguyenthanhnhut” “SOUDHSMGXSGSGUM” Độ an tồn mã thay • Một khố hốn vị 26 chữ • Có 26! (≈ 4.1026) hốn vị (khố) • Phá mã: – Khơng thể duyệt khoá – Cách khác? Mã tuyến tính – Affine Cipher • Mã tuyến tính mã thay có dạng e(x) = ax + b (mod 26), a, b Z26 Trường hợp a = mã dịch chuyển • Giải mã: Tìm x? y = ax + b (mod 26) ax = y – b (mod 26) x = a-1(y – b) (mod 26) • Vấn đề: Tính a-1 Để có a-1, địi hỏi (a,26)=1 Tính a-1: Thuật tốn Euclide mở rộng VD: tập • a = 5, b = 3: y = 5x + (mod 26) • Mã hố: NGUYENTHANHNHUT ? Mã Vigenère (1553) • Khố K gồm nhiều khoá K = (k1, k2, …, km) • Mã hố: eK(x1, x2, …, xm) = (x1 + k1, x2 + k2, …, xm + km) • Giải mã: dK(y1, y2, …, ym) = (y1 – k1, y2 – k2, …, ym – km) (cộng, trừ theo modulo 26) “MÃ KHỐI” (block cipher) VD mã Vigenère • {A, B, C, …, X, Y, Z} = Z26={0, 1, …, 25} • K = (2, 8, 15, 7, 4, 17) (“CIPHER”) • p = “thiscryptosy” • c = “VPXZGIAXIVWP” Mã Hill (1929) • Mã hoá giải mã lúc m chữ • Khố K GLm(Z26) (nhóm ma trận khả nghịch Z26) • Mã hoá: eK(x) = xK (nhân vector với ma trận) • Giải mã: dK(y) = yK-1 (các phép tốn tính theo modulo 26) VD: mã hố “JULY” “DELW” • Khố • Mã hố • Giải mã Mã chuyển vị - Permutation Cipher • Chuyển đổi vị trí thân chữ văn gốc khối m chữ • Mã hố: – e(x1, …, xm) = (x(1), …, x(m)) • Giải mã: – d(y1, …, ym) = (y’(1), …, y’(m)) • Trong đó, : Z26 Z26 hoán vị, ’ :=-1 nghịch đảo VD • Hốn vị • “shesellsseashellsbytheseashore” • shesel | lsseas | hellsb | ythese | ashore • EESLSH | SALSES | LSHBLE | HSYEET | HRAEOS • “EESLSHSALSESLSHBLEHSYEETHRAEOS” Thám mã - Cryptanalysis Kiểu công Đối phương nắm ciphertext only attack Chỉ văn mã c known plaintext attack Cả văn nguồn p văn mã c chosen plaintext attack Đột nhập vào máy mã hoá Tự chọn văn p mã hoá lấy văn mã c tương ứng chosen ciphertext attack Đột nhập vào máy giải mã Tự chọn văn mã c giải mã lấy văn p tương ứng Phương pháp phá mã cổ điển • Dựa vào: – Đặc điểm ngôn ngữ – Tần suất xuất chữ Mật mã đại • Thường mã khối, kết hợp phép hốn vị thay • Việc biến đổi văn thực nhiều lần số vịng lặp • Khố vịng lặp khác nhau, sinh từ khố ban đầu • DES, AES Data Encryption Standard (DES, 1975-1999) ... Vigenère (15 53) • Khố K gồm nhiều khố K = (k1, k2, …, km) • Mã hoá: eK(x1, x2, …, xm) = (x1 + k1, x2 + k2, …, xm + km) • Giải mã: dK(y1, y2, …, ym) = (y1 – k1, y2 – k2, …, ym – km) (cộng, trừ theo... a -1( y – b) (mod 26) • Vấn đề: Tính a -1 Để có a -1, địi hỏi (a,26) =1 Tính a -1: Thuật tốn Euclide mở rộng VD: tập • a = 5, b = 3: y = 5x + (mod 26) • Mã hố: NGUYENTHANHNHUT ? Mã Vigenère (15 53)... chữ văn gốc khối m chữ • Mã hố: – e(x1, …, xm) = (x (1) , …, x(m)) • Giải mã: – d(y1, …, ym) = (y’ (1) , …, y’(m)) • Trong đó, : Z26 Z26 hoán vị, ’ := -1 nghịch đảo VD • Hốn vị • “shesellsseashellsbytheseashore”