04.10.2019 MẬT MÃ ƯD TRONG ATTT Bài 02 Mật mã đối xứng Cấu trúc, đặc điểm mã dòng Mã dòng RC4 Cấu trúc, đặc điểm mã khối Chế độ hoạt động mã khối Khái niệm Cấu trúc, đặc điểm mã dòng Mã dòng RC4 Cấu trúc, đặc điểm mã khối Chế độ hoạt động mã khối Hệ mật Vernam (One-Time Pad) ki Nguồn khóa ngẫu nhiên Nguồn khóa ngẫu nhiên ci = mi + ki ki ci Bản mã Nguồn tin mi = ci − ki mi Bản rõ Ví dụ hệ mật Vernam Ví dụ hệ mật Vernam Bộ kí tự: chữ latin Khóa ngẫu nhiên: PWKAX Thơng điệp: HELLO MÃ HĨA Rõ H Khóa P Mã W E (7) (15) (22) L (4) W (11) K (22) A (21) O (11) A (10) V (0) L (14) X (0) ? (23) ? (?) Bộ kí tự: chữ latin Khóa ngẫu nhiên: PWKAX Bản mã: WAVLL GIẢI MÃ (?) Mã W Khóa P Rõ H A (22) V (0) W (15) K (22) E (7) (21) (11) L (11) A (10) L (4) L (11) X (0) L (11) (23) O (14) 04.10.2019 Mã dòng – Thường gặp ðặc trưng hệ mật Vernam K Có độ mật hồn thiện P ( m / c) = P ( m) K Mở rộng khóa Nguồn tin zi ci = mi ⊕ zi E Kích thước khóa kích thước rõ Mở rộng khóa zi Bản mã ci mi = ci ⊕ zi mi Bản rõ mi , zi , ci ∈ {0,1} ðịnh nghĩa mã dòng D Mã dòng – Trường hợp tổng quát - Một hệ mật mã dòng hệ mật đối xứng, kí tự rõ kết hợp với dịng kí tự khóa giả ngẫu nhiên - Trong mã dịng, kí tự rõ mã hóa riêng rẽ kí tự tương ứng dịng khóa kí tự mã K K Mở rộng khóa E Nguồn tin Mở rộng khóa zi zi ci = ezi ( mi ) Bản mã D mi = d zi ( ci ) mi mi , ci , zi ∈ A ci Bản rõ 10 Khái niệm mó dũng Mó dũng ã Khi ôm rng khúaằ L sinh số giả ngẫu nhiên (PRNG) –Là quan trọng –Quyết định độ an tồn mã dịng Mã khối Mã đồng Mã dòng Mật mã đối xứng Mã tự đồng • Phân loại –zi phụ thuộc K: «mã dịng đồng bộ» –zi phụ thuộc ci-n, ci-n+1, , ci-1: «mã dịng tự đồng bộ» 11 Mã đồng (OFB, Counter) Mã kết hợp Mã tự đồng (CFB) 12 04.10.2019 ðặc điểm mã dịng Ứng dụng mã dịng • Mã dịng có tốc độ cao chế sinh dịng khóa mã hóa đơn giản so với mã khối • Mã dịng mã hóa lượng liệu bất kì, khơng cần phải chờ đợi kích thước đầu vào đạt đến giá trị định mã khối Mỗi phần tử đầu vào mã hóa phần tử riêng biệt dịng khóa Kết biến đổi phần tử đầu vào phụ thuộc vào vị trí phần tử chuỗi Tốc độ cao, mã hóa/giải mã gần với thời gian thực Có thể cài đặt hiệu phần cứng và/hoặc phần mềm Mã hóa liệu yêu cầu độ trễ thấp: voice, video conference Mã hóa liệu từ nguồn sinh liên tục, tốc độ không ổn định 13 14 Thông tin chung RC4 Cấu trúc, đặc điểm mã dòng Mã dòng RC4 Cấu trúc, đặc điểm mã khối Chế độ hoạt động mã khối RC4 thiết kế để đạt hiệu cao cài đặt phần mềm Xây dựng Ron Rivest năm 1987 đến năm 1994 tiết lộ Được ứng dụng rộng rãi Kích thước khóa: 40-2048 bít [4] 16 Sơ đồ chung RC4 Khởi tạo S-box Key Khóa K 40-2048 bít Khởi tạo S-box S-box 256*8 bít Tạo dịng khóa S Dịng khóa 17 KeyLen-1 ∙∙∙∙∙∙∙∙ 252 253 254 255 ∙∙∙∙∙∙∙∙ for i = 255 KeyLen = 256 (bytes) S[i]:= i; Key[i] = byte j:=0; for i = 255 j:=(j+S[i]+Key[i mod KeyLen]) mod 256; swap (S[i], S[j]); 18 04.10.2019 Thông tin thêm RC4 Tạo dịng khóa Thuật tốn đơn giản, rõ ràng i:=0; j:=0; while GeneratingOutput: i:=(i+1) mod 256; j:= (j+S[i]) mod 256; swap (S[i], S[j]); z:= S[(S[i] + S[j]) mod 256]; Output z; //dịng khóa sinh byte end while Kích thước từ thay đổi (ví dụ, sử dụng bít thay bít) Dùng khóa để mã thơng điệp??? 20 19 Thông tin thêm RC4 Ứng dụng RC4 WEP BitTorrent protocol encryption Microsoft Point-to-Point Encryption Opera Mini Secure Sockets Layer* Secure shell* Remote Desktop Protocol Kerberos* SASL Mechanism Digest-MD5* PDF Skype Cấu trúc, đặc điểm mã dòng Mã dòng RC4 Cấu trúc, đặc điểm mã khối Chế độ hoạt động mã khối 21 Nguyên lý thiết kế mã khối Nguyên lý thiết kế mã khối Nguyên tắc Kerckhoffs • "A cryptosystem should be secure even if everything about the system, except the key, is public knowledge" • "The enemy knows the system" (Shannon) Cấu trúc lưới Feistel (Feistel network) Nguyên lý «Khuếch tán xáo trộn» • Khuếch tán • Xáo trộn • http://en.wikipedia.org/wiki/Confusion_and_diffusion Cấu trúc SPN (Substitution-permutation network) Sử dụng hàm hợp • Hàm mã hóa phức tạp = Hàm hợp nhiều hàm mã hóa đơn giản khơng giao hốn 23 24 04.10.2019 Cấu trúc lưới Feistel Cấu trúc lưới Feistel (Feistel network) F: round function Ki: round key Li: left half Ri: right half Horst Feistel Mã hóa: o Born in Germany o January 30, 1915 o Died November 14, 1990 o Moved to US in 1934 Li +1 = Ri Ri +1 = Li ⊕ F ( Ri , K i ) Giải mã Ri = Li +1 Li = Ri +1 ⊕ F ( Ri , K i ) 25 ðặc ñiểm mạng Feistel 26 Các hệ mật sử dụng mạng Feistel Tại vòng, nửa khối mã hóa cần nhiều vịng giảm hiệu Việc mã hóa giải mã giống hệt nhau, khác trật tự sử dụng khóa vịng cần hàm/1 mạch điện tử để thực mã hóa giải mã Hàm F() khơng cần phải có hàm ngược F-1() Blowfish Camellia CAST-128 DES FEAL GOST 28147-89 ICE KASUMI LOKI97 Lucifer MARS MAGENTA MISTY1 RC5 Simon TEA Triple DES Twofish XTEA 27 Ứng dụng khác mạng Feistel 28 Nguyên lý thiết kế mã khối Cấu trúc SPN (Substitution-permutation network) Một số hệ mật sử dụng biến thể mạng Feistel (CAST-256, CLEFIA, MacGuffin, RC2, RC6, Skipjack, SMS4) Một số hệ mật khơng có cấu trúc mạng Feistel chứa mạng Feistel thành phần (MISTY1, Threefish) Rijndael, Square, Shark, BKSQ Mạng Feistel cịn sử dụng cho mục đích khác với xây dựng mã khối, ví dụ, sử dụng lược đồ OAEP (Optimal Asymmetric Encryption Padding) 29 30 04.10.2019 Cấu trúc SPN Cấu trúc, đặc điểm mã dòng Mã dòng RC4 Cấu trúc, đặc điểm mã khối Chế độ hoạt động mã khối 31 Chế ñộ hoạt ñộngcủa mã khối Confidentiality modes • ECB, CBC, OFB, CFB, CTR Chế ñộ hoạt ñộng mã khối ECB: Electronic Codebook Mode CBC: Cipher Bock Chaining Mode OFB: Output Feedback Mode CFB: Cipher Feedback Mode CTR: Counter Mode Authenticated Encryption modes • CCM, GCM, CWC, EAX 33 34 ECB: Electronic Codebook Mode ECB: Electronic Codebook Mode ECB: Encrypt C j = CIPH K ( Pj ) j = n ECB: Decrypt Pj = CIPH K−1 ( C j ) 35 j = n 36 04.10.2019 ECB: Electronic Codebook Mode CBC: Cipher Bock Chaining Mode ECB: Đặc điểm - Đầu vào giống dẫn đến đầu giống - Một bít lỗi khối mã dẫn đến khối tương ứng giải mã - Có thể xử lý khối song song 37 38 CBC: Cipher Bock Chaining Mode CBC: Cipher Bock Chaining Mode CBC: Encrypt CBC: Đặc điểm CBC: Decrypt - Khi khối rõ giống khối mã khác - Một bít lỗi khối mã thứ j dẫn đến khối j j+1 giải mã - Khơng thể mã hóa song song khối, giải mã song song 39 40 CFB: Cipher Feedback Mode CFB: Cipher Feedback Mode CFB: Encrypt CFB: Decrypt I1 = IV I1 = IV I j = LSBb− s ( I j −1 ) | C # j −1 O j = CIPH K ( I j ) # j # j C = P ⊕ MSBs (O j ) 41 I j = LSBb−s ( I j −1 ) | C #j −1 j = n O j = CIPH K ( I j ) j = n # j # j P = C ⊕ MSBs (O j ) j = n − 42 04.10.2019 CFB: Cipher Feedback Mode OFB: Output Feedback Mode CFB: Đặc điểm - Khi rõ giống mã khác - Một bít lỗi mã dẫn đến b/s khối (s bit) giải mã - Là mã dòng tự đồng bộ, chịu lỗi thêm kí tự 43 44 OFB: Output Feedback Mode OFB: Encrypt OFB: Output Feedback Mode OFB: Đặc điểm OFB: Decrypt I1 = IV I1 = IV I j = O j −1 I j = O j −1 j = n O j = CIPH K ( I j ) O j = CIPH K ( I j ) j = n C j = Pj ⊕ O j Pj = C j ⊕ O j j = n − Cn# = Pn# ⊕ MSBu ( On ) Pn# = Cn# ⊕ MSBu ( On ) - Khi rõ giống mã khác - Một bít lỗi mã dẫn đến bít lỗi tương ứng giải mã - Bản rõ khơng chẵn kích thước khối khơng cần đệm - Là mã dòng đồng 45 46 CTR: Counter Mode CTR: Counter Mode CTR: Encrypt 47 CTR: Decrypt O j = CIPH K (T j ) O j = CIPH K (T j ) j = n C j = Pj ⊕ O j Pj = C j ⊕ O j j = n − Cn# = Pn ⊕ MSBu ( On ) Pn# = Pn ⊕ MSBu ( On ) 48 04.10.2019 CTR: Counter Mode CTR: Đặc điểm - Khi rõ giống mã khác - Một bít lỗi mã dẫn đến bít lỗi tương ứng giải mã - Bản rõ khơng chẵn kích thước khối khơng cần đệm - Là mã dịng đồng - Có thể cài đặt song song 49 ... bộ» 11 Mã đồng (OFB, Counter) Mã kết hợp Mã tự đồng (CFB) 12 04.10.2019 ðặc điểm mã dịng Ứng dụng mã dịng • Mã dịng có tốc độ cao chế sinh dịng khóa mã hóa đơn giản so với mã khối • Mã dịng mã hóa... (PRNG) –Là quan trọng –Quyết định độ an tồn mã dịng Mã khối Mã đồng Mã dòng Mật mã đối xứng Mã tự đồng b ã Phõn loi zi ch ph thuc K: ômó dòng đồng bộ» –zi phụ thuộc ci-n, ci-n+1, , ci-1: ? ?mã dòng... nghĩa mã dòng D Mã dòng – Trường hợp tổng quát - Một hệ mật mã dòng hệ mật đối xứng, kí tự rõ kết hợp với dịng kí tự khóa giả ngẫu nhiên - Trong mã dịng, kí tự rõ mã hóa riêng rẽ kí tự tương ứng