Kỹ thuật mật mã là kỹ thuật xử lý thông tin, có chức năng biển đổi thông tin từ dạng này qua dạng khác bằng hai mục đích che dấu thông tin và xác thực thông tin.
Nội dung trích xuất từ tài liệu:
Chương 2 " Mật mã đối xứng"
Mật mã đối xứng
Tổng quan về mật mã học
Cryptology
Cryptography Cryptanalysis
Symmetric Asymmetric
Block ciphers Stream ciphers
Information security, PTITHCM, 2012
Lịch sử phát triển
Mật mã cổ điển (2000 BC)
Mật mã đối xứng (trước 1976)
Mật mã bất đối xứng (sau 1976)
Cá hệ thống ghép
Information security, PTITHCM, 2012
Mật mã quy ước
Hackers
Information security, PTITHCM, 2012
Phương trình mật mã
Ký hiệu:
P: thông tin gốc (plaintext)
C: thông tin mật (ciphertext)
K: khóa (key)
Quá trình mã hóa:
C = E(P, K)
Quá trình giải mã:
P = D(C, K)
Information security, PTITHCM, 2012
Đặc trưng của hệ thống mã
Phương pháp mã:
Thay thế (substitution)
Chuyển vị (transposition).
S ố k h ó a :
Đối xứng (một khóa)
Bất đối xứng (hai khóa)
Cá c h x ử lý t h ô n g t in g ốc :
Xử lý theo khối (block cipher)
Xử lý theo dòng (stream cipher)
Information security, PTITHCM, 2012
Kỹ thuật bẻ khóa
Phân tích mã (Cryptanalysis)
Tìm những điểm yếu của thuật toán mã để khai
t h ác
Dò khóa (brute-force)
Th ử k h óa t u ần t ự
N ế u t ổn g s ố k h óa có t h ể có là n , s ố k h óa
t ru n g b ìn h p h ải t h ử đ ể d ò đ ược k h óa đ ú n g
là n /2 .
Information security, PTITHCM, 2012
Thời gian thực hiện dò khóa
Information security, PTITHCM, 2012
Các kiểu tấn công mật mã
Ciphertext only:
C → P
Known plaintext:
C + nhiều cặp (P-C) → P
Chosen plaintext:
C + nhiều cặp (P-C) chọn trước → P
Chosen ciphertext:
C + nhiều cặp (C-P) chọn trước → P
Chosen text:
C + nhiều cặp (P-C) và (C-P) chọn trước → P
Information security, PTITHCM, 2012
Mã hóa cổ điển
Thay thế (substitution): thay thế 1 đơn vị mã
(t ừ, k ý t ự, b it , … ) b ởi 1 đ ơn v ị m ã k h ác
Caesar Cipher:
plaintext: m m after the toga party
eet e
ciphertext: phhw ph diwhu wkh wrjd sduwb
Key:
Information security, PTITHCM, 2012
Mã hóa cổ điển
Thay thế (substitution): t ổn g q u át
C = E(P, k) = (P + k) mod 26
P = D(C, k) = (C - k) mod 26
Plaintext = “Go to the canteen after class”, k =5
Ciphertext = ???
Information security, PTITHCM, 2012
Mã hóa cổ điển
Thay thế (substitution):
Monoalphabetic cipher: tương tự Ceasar,
với:
Key: a b c d e f g h i j k l m n o p q r s t u v w x
yz
=> : hoán vị ngẫu nhiên của 26 ký tự
26! khóa (≈ 4*1026 khóa)
VD: Plaintext = “Hello”
Key = z b c d y f g r i j k t m n u p q l s e o v w
xha
Information security, PTITHCM, 2012
Ciphertext = ???
Mã 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
0, 14
0, 12
0, 10
0, 08
0, 06
0, 04
0, 02
0, 00
A C E G I K M O Q S U W Y
Information security, PTITHCM, 2012
Mã hóa cổ điển
Thay thế (substitution): Các thuật
toán thay thế khác:
Playfair Cipher
Hill Cipher
Vigenère Cipher
Vernam Cipher
One-Time Pad
…
Information security, PTITHCM, 2012
Mã hóa cổ điển
Chuyển vị (transposition):
Plaintext: attackpostponeduntiltwoamxyz
Thực hiện chuyển vị: g h i v ào t h e o d òn g , đ ọc
ra t h e o c ột s au k h i h oán v ị c ột
Ciphertext:
TTNAAPTMTSUOAODWCOIXKNLYPETZ
Information security, PTITHCM, 2012
One-time Pad
Mã hóa với khóa chỉ dùng một lần
Khóa dài bằng thông tin gốc và được
sinh ra ngẫu nhiên
Information security, PTITHCM, 2012
One-time Pad: Ví dụ
Tập 8 ký tự được mã hóa dùng 3 bit nhị phân
h=001 i=010 k=011 l=100 r=101 s=110 t=111
Mã hóa: Plaintext ⊕ Key = Ciphertext
h e i l h i t l e r
P la in te xt:
Ke y: 001 000 010 100 001 010 111 100 000 101
111 101 110 101 111 100 000 101 110 000
C ip h e rte xt:
110 101 100 001 110 110 111 001 110 101
s r l h s s t h s r
Information security, PTITHCM, 2012
One-time Pad: Ví dụ
e=000 h=001 i=010 k=011 l=100 r=101 s=110 t=111
Giải mã: C ip h e rte xt ⊕ Ke y = P la inte xt
s r l h s s t h s r
C ip h e rte xt:
110 101 100 001 110 110 111 001 110 101
Ke y: 111 101 110 101 111 100 000 101 110 000
P la inte xt:
001 000 010 100 001 010 111 100 000 101
h e i l h i t l e r
Information security, PTITHCM, 2012
One-time Pad: Ví dụ
Nh iề u kh ó a kh á c nh a u c h o ra nh iề u kế t q u ả
“đ úng ” kh á c nh a u
s r l h s s t h s r
C ip h e rte xt:
110 101 100 001 110 110 111 001 110 101
“key”: 101 111 000 101 111 100 000 101 110 000
“P la in te xt”:
011 010 100 100 001 010 111 100 000 101
k i l l h i t l e r
h=001 i=010 k=011 l=100 r=101 s=110 t=111
Information security, PTITHCM, 2012
One-time Pad: Ví dụ
Nhiều khóa khác nhau cho ra nhiều kết quả
“đúng” khác nhau
s r l h s s t h s r
C ip h e rte
xt: “Ke y 110 101 100 001 110 110 111 001 110 101
111 101 000 011 101 110 001 011 101 101
”:
“P la inte xt
001 000 100 010 011 000 110 010 011 000
”:
h e ...