int1471 2 symmetric encryption
DESCRIPTION
Symmetric EncryptionTRANSCRIPT
8/14/2015
1
Giảng viên: Lê Phúc, Khoa CNTT
Email: [email protected]
Website: http://is.ptithcm.edu.vn/~lephuc
Symmetric Encryption
INT1471 Cryptography and Applications, PTITHCM, 2015
Nội dung
INT1471 Cryptography and Applications, PTITHCM, 2015
2
Mã quy ước
Mã đối xứng hiện đại
Feistel
DES
8/14/2015
2
Tổng quan về mật mã học
INT1471 Cryptography and Applications, PTITHCM, 2015
3
Cryptology
Cryptography Cryptanalysis
Symmetric Asymmetric
Block ciphers Stream ciphers
Mật mã quy ước
INT1471 Cryptography and Applications, PTITHCM, 2015
4
Hackers
8/14/2015
3
Phương trình mật mã
INT1471 Cryptography and Applications, PTITHCM, 2015
5
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)
Phân loại hệ thống mật mã
INT1471 Cryptography and Applications, PTITHCM, 2015
6
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)
8/14/2015
4
Tấn công hệ thống mật mã
INT1471 Cryptography and Applications, PTITHCM, 2015
7
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.
Thời gian dò khóa
INT1471 Cryptography and Applications, PTITHCM, 2015
8
8/14/2015
5
Các kiểu tấn công mật mã
INT1471 Cryptography and Applications, PTITHCM, 2015
9
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
Mã hóa cổ điển
INT1471 Cryptography and Applications, PTITHCM, 2015
10
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:
8/14/2015
6
Mã hóa cổ điển
INT1471 Cryptography and Applications, PTITHCM, 2015
11
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 = ???
Mã hóa cổ điển
INT1471 Cryptography and Applications, PTITHCM, 2015
12
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*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 x h a
Ciphertext = ???
8/14/2015
7
Mã hóa cổ điển
INT1471 Cryptography and Applications, PTITHCM, 2015
13
Thay thế (substitution): hạn chế: thiếu tính
khuếch tán (diffusion)
Dựa vào tần suất xuất hiện ký tự để dò khóa
Mã hóa cổ điển
INT1471 Cryptography and Applications, PTITHCM, 2015
14
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
…
8/14/2015
8
Mã hóa cổ điển
INT1471 Cryptography and Applications, PTITHCM, 2015
15
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
Mã hóa cổ điển: One-time-pad
INT1471 Cryptography and Applications, PTITHCM, 2015
16
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
8/14/2015
9
One-time-pad: Ví dụ
INT1471 Cryptography and Applications, PTITHCM, 2015
17
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:
One-time-pad: ví dụ
INT1471 Cryptography and Applications, PTITHCM, 2015
18
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:
8/14/2015
10
One-time-pad: ví dụ
INT1471 Cryptography and Applications, PTITHCM, 2015
19
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
One-time-pad: ví dụ
INT1471 Cryptography and Applications, PTITHCM, 2015
20
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
8/14/2015
11
Mã hóa cổ điển: steganography
INT1471 Cryptography and Applications, PTITHCM, 2015
21
Giấu thông tin vào một message khác
Hidden message: Your package ready Friday 21st room three. Please destroy this immediately
Mã hóa cổ điển: steganography
INT1471 Cryptography and Applications, PTITHCM, 2015
22
8/14/2015
12
Mã hóa cổ điển: steganography
INT1471 Cryptography and Applications, PTITHCM, 2015
23
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ơnHôn hoàng nay lại hoàng hôn mai ngàyMôi khô vóc liễu thêm gầyAnh 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ầmAi làm sum họp ai làm chia phôiChẳng thà đừng kết duyên đôiCó cho sum họp để rồi xa nhauTí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
Mã đối xứng hiện đại
INT1471 Cryptography and Applications, PTITHCM, 2015
24
8/14/2015
13
Cấu trúc mã khối Feistel
INT1471 Cryptography and Applications, PTITHCM, 2015
25
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
Diffusion và confusion
INT1471 Cryptography and Applications, PTITHCM, 2015
26
Claude Shannon đề xuất năm 1949. 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
Thực hiện: chuyển vị, thực hiện nhiều vòng
Confusion (xáo trộn): ciphertext và key
Thực hiện: thay thế
Cấu trúc Feistel thỏa mãn cả 2 thuộc tính này.
8/14/2015
14
Cấu trúc Feistel
INT1471 Cryptography and Applications, PTITHCM, 2015
27
•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
Feistel: mã hóa và giải mã
InfSec, PTIT 2013
28
8/14/2015
15
Feistel
INT1471 Cryptography and Applications, PTITHCM, 2015
29
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)
Feistel
INT1471 Cryptography and Applications, PTITHCM, 2015
30
Đưa thông tin mật vào khối giải mã:
LD0 = LEout = RE16
RD0 = REout = LE16 (2)
Xét vòng thứ nhất của giải mã:
LD1 = RD0
RD1 = LD0 F(RD0, K16) (3)
8/14/2015
16
Feistel
INT1471 Cryptography and Applications, PTITHCM, 2015
31
Kết hợp (1), (2) và (3) ta có:
LD1 = RE15
RD1 = RE16 F(LE16, K16)
= [LE15 F(RE15, K16)] F(RE15, K16) =
LE15
Thuật tóan Feistel
INT1471 Cryptography and Applications, PTITHCM, 2015
Một cách tổng quát, tại vòng thứ i của quá trìnhmã hoá:
LEi = REi-1
REi = LEi-1 F(REi-1, Ki)
Hay có thể viết:
REi-1 = LEi
LEi-1 = REi F(REi-1, Ki) = REi F(LEi, Ki)
8/14/2015
17
Xây dựng thuật tóan mã dựa trên
cấu trúc Feistel
INT1471 Cryptography and Applications, PTITHCM, 2015
Xác định các thông số:
Kích thước khối dữ liệu đầu vào (block size)
Chiều dài khoá (key size)
Số vòng lặp (number of rounds)
Thuật toán sinh khoá phụ (subkey generation
algorithm)
Hàm F thực hiện tại mỗi vòng (round function)
Chuẩn mật mã DES
INT1471 Cryptography and Applications, PTITHCM, 2015
Data Encryption Standard (DES) được 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)
DES được dùng trong nhiều ứng dụng bảo
mật như Kerberos, SSL, IPSec, …
8/14/2015
18
Thông số kỹ thuật DES
INT1471 Cryptography and Applications, PTITHCM, 2015
Kích thước khối: 64 bit
Chiều dài khoá: 56 bit
Số vòng mã: 16 vòng
Thuật toán sinh khoá phụ: kết hợp phép dịch
trái và hoán vị
Hàm F: kết hợp các phép XOR, hoán vị và
thay thế (S-box).
Thuật tóan mã hóa DES
INT1471 Cryptography and Applications, PTITHCM, 2015
8/14/2015
19
Hóan vị khởi đầu (IP)
INT1471 Cryptography and Applications, PTITHCM, 2015
Input (hex): 0123456789ABCDEF
Output: ???
Hóan vị khởi đầu (IP)
INT1471 Cryptography and Applications, PTITHCM, 2015
8/14/2015
20
Hóan vị cuối cùng (IP-1)
INT1471 Cryptography and Applications, PTITHCM, 2015
Chứng minh rằng IP-1 là nghịch đảo của IP?
Hóan vị cuối cùng (IP-1)
INT1471 Cryptography and Applications, PTITHCM, 2015
8/14/2015
21
Hàm F
INT1471 Cryptography and Applications, PTITHCM, 2015
E table (Expansion/Permutation)
INT1471 Cryptography and Applications, PTITHCM, 2015
Mở rộng 32 bit 48 bit
8/14/2015
22
E table (Expansion/Permutation)
INT1471 Cryptography and Applications, PTITHCM, 2015
S-box
INT1471 Cryptography and Applications, PTITHCM, 2015
•Gồm 8 S-box đánh số từ 1 đến 8
•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ố thập phân thành 4
bit nhị phân.
8/14/2015
23
Ma trận hóan vị (P)
INT1471 Cryptography and Applications, PTITHCM, 2015
Hoán vị 32 32
Ma trận hóan vị (P)
Information security, PTITHCM, 2012
8/14/2015
24
Ma trận hóan vị PC-1
INT1471 Cryptography and Applications, PTITHCM, 2015
Khóa đầu vào 64 bit, mỗi byte bỏ đi bit cuối cùng 56 bit
Ma trận hóan vị PC-1
INT1471 Cryptography and Applications, PTITHCM, 2015
8/14/2015
25
Thuật tóan sinh khóa phụ
INT1471 Cryptography and Applications, PTITHCM, 2015
Ma trận hóan vị PC-2
INT1471 Cryptography and Applications, PTITHCM, 2015
Chuyển 56 bit 48 bit
8/14/2015
26
Ma trận hóan vị PC-2
INT1471 Cryptography and Applications, PTITHCM, 2015
Dịch trái
INT1471 Cryptography and Applications, PTITHCM, 2015
Tại mỗi vòng, số bit dịch (xoay) trái là khác nhau
Vòng
Bit dịch
8/14/2015
27
Nhận xét
INT1471 Cryptography and Applications, PTITHCM, 2015
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.
Cải tiến DES
INT1471 Cryptography and Applications, PTITHCM, 2015
Hướng 1: Giữ nguyên thuật tóan để đảm bảo
tương thích, tăng chiều dài khóa dùng DES
bội hai, bội ba
Hướng 2: xây dựng thuật tóan mới (AES) và
bỏ hẳn DES.
8/14/2015
28
DES bội hai (double DES)
INT1471 Cryptography and Applications, PTITHCM, 2015
C = E (E(P, K1), K2)
P = D (D (C, K2), K1)
DES bội ba (Triple DES)
INT1471 Cryptography and Applications, PTITHCM, 2015
C = E (D (E (P, K1), K2), K1)
P = D (E ( D (C, K1), K2, K1 )