INT1471 2 Symmetric Encryption

28
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 đối xứng hiện đại Feistel DES

description

Symmetric Encryption

Transcript of INT1471 2 Symmetric Encryption

Page 1: INT1471 2 Symmetric Encryption

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

Page 2: INT1471 2 Symmetric Encryption

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

Page 3: INT1471 2 Symmetric Encryption

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)

Page 4: INT1471 2 Symmetric Encryption

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

Page 5: INT1471 2 Symmetric Encryption

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:

Page 6: INT1471 2 Symmetric Encryption

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 = ???

Page 7: INT1471 2 Symmetric Encryption

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

Page 8: INT1471 2 Symmetric Encryption

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

Page 9: INT1471 2 Symmetric Encryption

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:

Page 10: INT1471 2 Symmetric Encryption

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

Page 11: INT1471 2 Symmetric Encryption

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

Page 12: INT1471 2 Symmetric Encryption

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

Page 13: INT1471 2 Symmetric Encryption

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.

Page 14: INT1471 2 Symmetric Encryption

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

Page 15: INT1471 2 Symmetric Encryption

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)

Page 16: INT1471 2 Symmetric Encryption

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)

Page 17: INT1471 2 Symmetric Encryption

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, …

Page 18: INT1471 2 Symmetric Encryption

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

Page 19: INT1471 2 Symmetric Encryption

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

Page 20: INT1471 2 Symmetric Encryption

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

Page 21: INT1471 2 Symmetric Encryption

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

Page 22: INT1471 2 Symmetric Encryption

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.

Page 23: INT1471 2 Symmetric Encryption

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

Page 24: INT1471 2 Symmetric Encryption

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

Page 25: INT1471 2 Symmetric Encryption

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

Page 26: INT1471 2 Symmetric Encryption

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

Page 27: INT1471 2 Symmetric Encryption

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.

Page 28: INT1471 2 Symmetric Encryption

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 )