Mật mã đối xứng
Information security, PTITHCM, 2012
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ố khóa:
Đối xứng (một khóa)
Bất đối xứng (hai khóa)
Cách xử lý thông tin 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 thác
Dò khóa (brute-force)
Thử khóa tuần tự
Nếu tổng số khóa có thể có là n, số khóa trung bình
phải thử để dò được khóa đúng 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ự, 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:
Information security, PTITHCM, 2012
Mã hóa cổ điển
Thay thế (substitution): tổng quá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
y z
=> : hoán vị ngẫu nhiên của 26 ký tự
26! khóa (≈ 4*10
26
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
x h a
Ciphertext = ???
Information security, PTITHCM, 2012
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
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ị: ghi vào theo dòng, đọc ra theo
cột sau khi hoá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ụ
e=000 h=001 i=010 k=011 l=100 r=101 s=110 t=111
h e i l h i t l e r
001 000 010 100 001 010 111 100 000 101
111 101 110 101 111 100 000 101 110 000
110 101 100 001 110 110 111 001 110 101
s r l h s s t h s r
Mã hóa: Plaintext ⊕ Key = Ciphertext
Plaintext:
Key:
Ciphertext:
Tập 8 ký tự được mã hóa dùng 3 bit nhị phân
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
s r l h s s t h s r
110 101 100 001 110 110 111 001 110 101
111 101 110 101 111 100 000 101 110 000
001 000 010 100 001 010 111 100 000 101
h e i l h i t l e r
Gi i mã:ả Ciphertext ⊕ Key = Plaintext
Ciphertext:
Key:
Plaintext:
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
s r l h s s t h s r
110 101 100 001 110 110 111 001 110 101
101 111 000 101 111 100 000 101 110 000
011 010 100 100 001 010 111 100 000 101
k i l l h i t l e r
Ciphertext:
“key”:
“Plaintext”:
Nhi u khóa khác nhau cho ra nhi u k t qu ề ề ế ả
“đúng” khác nhau
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
s r l h s s t h s r
110 101 100 001 110 110 111 001 110 101
111 101 000 011 101 110 001 011 101 101
001 000 100 010 011 000 110 010 011 000
h e l i k e s i k e
Ciphertext:
“Key”:
“Plaintext”:
Nhiều khóa khác nhau cho ra nhiều kết quả
“đúng” khác nhau
Information security, PTITHCM, 2012
Mã hóa cổ điển
Steganography: Giấu thông tin vào một
message khác
Hidden message:
Your package ready
Friday 21
st
room
three. Please destroy
this immediately
Information security, PTITHCM, 2012
Mã hóa cổ điển
Steganography:
Cách biến đổi: Xóa tất cả các bit của từng điểm ảnh, chỉ chừa
lại 2 bit có trọng số thấp nhất, tăng độ sáng của ảnh lên 85 lần
Information security, PTITHCM, 2012
Mã 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ọ
Ch ng thà đ ng k t duyên đôiẳ ừ ế
Có cho sum h p đ r i xa nhauọ ể ồ
Tính năm tính tháng thêm s uầ
y hai con én ngang l u bay bayẤ ầ
Nguy n Bínhễ
Nhi u công c cho ề ụ
phép gi u d li u vào ấ ữ ệ
t p tin hình nhậ ả
Information security, PTITHCM, 2012
Mật mã đối xứng
Information security, PTITHCM, 2012
Cấu trúc mã khối Feistel
IBM xây dựng năm 1973
Làm cơ sở cho nhiều thuật tóan mã
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