Mã hóa cổ điển Thay thế substitution: thay thế 1 đơn vị mã từ, ký tự, bit, … bởi 1 đơn vị mã khác Caesar Cipher: plaintext: meet me after the toga party ciphertext: phhw ph diwh
Trang 1Mật mã đối xứng
Trang 4Mật mã quy ước
Hackers
Trang 5Phương trình mật mã
Ký hiệu:
P: thông tin gốc (plaintext)
C: thông tin mật (ciphertext)
Trang 8Thời gian thực hiện dò khóa
Trang 10Mã hóa cổ điển
Thay thế (substitution): thay thế 1 đơn vị mã
(từ, ký tự, bit, …) bởi 1 đơn vị mã khác
Caesar Cipher:
plaintext: meet me after the toga party
ciphertext: phhw ph diwhu wkh wrjd sduwb
Key:
Trang 13Mã hóa cổ điển
Thay thế (substitution): hạn chế
Dựa vào tần suất xuất hiện ký tự để dò khóa
Trang 15Mã hóa cổ điển
Chuyển vị (transposition):
Plaintext: attackpostponeduntiltwoamxyz
Thực hiện chuyển vị: ghi vào theo dòng, đọc ra theo
cột sau khi hoán vị cột
Ciphertext:
TTNAAPTMTSUOAODWCOIXKNLYPETZ
Trang 16One-time Pad
sinh ra ngẫu nhiên
Trang 22Mã hóa cổ điển
Steganography :
Trang 23Mã hóa cổ điển
Steganography : Anh đi không h n ngày v ẹ ề
Ch th ai bu c tóc th ai chôn? ỉ ề ộ ề
Mu n gì, anh mu n gì h n ố ố ơ
Hôn hoàng nay l i hoàng hôn mai ngày ạ
Môi khô vóc li u thêm g y ễ ầ
Anh xa em k lông mày v i ai? ẻ ớ
Th không làm tr n m t bài ơ ọ ộ
Đàn không g y đ c m t vài khúc ả ượ ộ
ngâm Ông t già quá nên nh m ơ ầ
Ai làm sum h p ai làm chia phôi ọ
Trang 24Mật mã đối xứng
Trang 25Cấu trúc mã khối Feistel
hóa đối xứng hiện đại.
Dựa trên các thao tác thay thế
(substitution) và hoán vị
(permutation) nhiều lần
Trang 26Diffusion và confusion
Mục đích: triệt tiêu tính thống kê của plaintext và key trong ciphertext.
Diffusion (khuếch tán): plaintext và
ciphertext
Chuy n v , th c hi n nhi u vòng ể ị ự ệ ề
Confusion (xáo trộn): ciphertext và key
Thay thế
Trang 27Cấu trúc Feistel
•Thông tin gốc được chia thành
từng khối có kích thước 2w bit,
mỗi khối lại được chia thành 2
phần L và R
•Từng phần L và R được đưa
qua n vòng xử lý giống nhau.
•Thao tác xử lý tại mỗi vòng:
hóan vị L và R, đưa R vào hàm
F cùng với khóa Ki, XOR kết quả
hàm F với L.
•Hóan vị lần cuối cùng
Trang 28Mã hóa và giải mã Feistel
mã
Trang 29Thuật tóan Feistel
Giả sử hệ thống dùng 16 vòng mã hóa, xét vòng cuối cùng:
LE16 = RE15
RE16 = LE15 ⊕ F(RE15, K16) (1)
Trang 30Thuật tóan Feistel
Đưa thông tin mật vào khối giải mã:
Trang 31Thuật tóan Feistel
Trang 32Thuật tóan Feistel
Một cách tổng quát, tại vòng thứ i của quá trình mã hoá:
Trang 33Information security, PTITHCM, 2012
Xây dựng thuật tóan mã dựa trên cấu trúc Feistel
Trang 34Chuẩn mật mã DES
chuẩn hóa năm 1977 bởi Viện tiêu
chuẩn và công nghệ quốc gia Hoa kỳ (NIST)
bảo mật như Kerberos, SSL, IPSec, …
Trang 35Thông số kỹ thuật DES
Kích thước khối: 64 bit
Chiều dài khoá: 56 bit
Trang 36Thuật tóan mã hóa DES
Trang 37Hóan vị khởi đầu (IP)
Input (hex): 0123456789ABCDEF
Output: ???
Trang 38Hóan vị cuối cùng (IP-1)
Ch ng minh r ng IP-1 là ngh ch đ o ứ ằ ị ả
Trang 39Hóan vị cuối cùng (IP-1)
Trang 40Hàm F
Trang 41E table (Expansion/Permutation)
M r ng 32 bit ở ộ → 48 bit
Trang 42E table (Expansion/Permutation)
Trang 43•M i S-box nh n vào 6 bit: bit đ u và bit cu i ch n dòng, ỗ ậ ầ ố ọ
4 bit gi a ch n c t đ ch n ra 1 s th p phân Chuy n s ữ ọ ộ ể ọ ố ậ ể ố
Trang 44Ma trận hóan vị (P)
Hoán v 32 ị → 32
Trang 45Ma trận hóan vị (P)
Trang 46Ma trận hóan vị PC-1
Khóa đ u vào 64 bit, m i byte b đi bit cu i ầ ỗ ỏ ố cùng → 56 bit
Trang 47Ma trận hóan vị PC-1
Trang 48Thuật tóan sinh khóa phụ
Trang 49Ma trận hóan vị PC-2
Chuy n 56 bit ể → 48 bit
Trang 50Ma trận hóan vị PC-2
Trang 52Nhận xét
DES dựa hòan tòan trên cấu trúc Feistel.
Thích hợp với thực thi bằng phần cứng
(XOR, dịch, hóan vị) → tốc độ mã cao.
Chiều dài khóa 56 bit không an toàn với kỹ thuật dò khóa.
Có thể bị tấn công bằng các phương pháp phân tích tuyến tính và vi phân.
Trang 53Cải tiến DES
đảm bảo tương thích, tăng chiều dài khóa dùng DES bội hai, bội ba
(AES) và bỏ hẳn DES.
Trang 54DES bội hai (double DES)
C = E (E(P, K1), K2)
P = D (D (C, K2), K1)
Trang 55DES bội ba (Triple DES)
C = E (D (E (P, K1), K2), K1)
P = D (E ( D (C, K1), K2, K1 )