07/01/2018

Chương 2: SYMMETRIC CIPHERS (Mã hóa đối xứng)

Giáo viên: Nguyễn Thị Hạnh

1

Nguyễn Thị Hạnh

Contents

1. Mã cổ điển (Classical Encryption)

2. Mã dòng (Stream Ciphers) và Mã khối (Block Ciphers)

3. Mã DES (Data Encryption Standard)

4. Mã hiện đại AES (Advanced Encryption Standard)

5. Các mô hình ứng dụng mã khối

Nguyễn Thị Hạnh

2

( Cryptography and Network Security: Principles and Practices (3rd Ed.) – Chapter 2, 3, 5, 6)

1

07/01/2018

1. Mã cổ điển (Classical Encryption)

1.1 Khái niệm về Mã đối xứng (Symmetric Cipher)

Nguyễn Thị Hạnh

3

1.2 Một số mã đối xứng nổi tiếng

1.1 Khái niệm mã đối xứng

Nguyễn Thị Hạnh

4

˗ Mô hình mã hóa đối xứng

2

07/01/2018

1.1 Khái niệm mã đối xứng

˗ Bản rõ X (Plaintext): được gọi là bản tin gốc. Đây là dữ liệu ban đầu ở dạng rõ. Bản rõ có thể được chia nhỏ có kích thước phù hợp.

˗ Thuật toán mã hóa (Encryption algorithm): là thuật toán được sử dụng để mã hóa (thay thế hoặc biến đổi) bản rõ

˗ Khóa bí mật (Secret key): Khóa bí mật được đưa

Nguyễn Thị Hạnh

5

vào thuật toán mã hóa. Khóa này là giá trị độc lập với bản rõ và thuật toán mã hóa. Thuật toán sẽ tạo ra đầu ra (input) khác nhau tùy thuộc vào khóa đặc biệt được dùng tại thời điểm đó. Các kỹ thuật thay thế (substitution) và hoán vị (transformation) được thực hiện bởi thuật toán tùy thuộc vào khóa (key)

1.1 Khái niệm mã đối xứng

˗ Bản mã (Ciphertext): Thông tin, dữ liệu đã được mã hoá ở dạng mờ. Nó tùy thuộc vào plain text và secret key. Cho trước một thông điệp, 2 khóa khác nhau thì sẽ tạo ra được hai bản mã khác nhau. Bản mã là một dòng dữ liệu ngẫu nhiên và nó bền vững và khó hiểu.

˗ Thuật tóa giải mã (Decryption algorithm): Thuật

toán giải mã (Decryption algorithm): đây là thực chất là thuật toán mã hóa chạy theo chiều ngược lại. Nó lấy ciphertext và secret key để tạo ra plaintext gốc.

Nguyễn Thị Hạnh

6

˗ Người gửi/Người nhận (Sender/recipient): Người gửi/Người nhận dữ liệu

3

07/01/2018

Mô hình mã đối đối xứng

Nguyễn Thị Hạnh

7

Đặc tính của mã đối xứng

˗ Thuật toán mã hóa và giải mã sử dụng chung một

khóa, thuật toán giải mã là phép toán ngược của thuật toán mã hóa. Vì vậy mô hình trên được gọi là phương pháp mã hóa đối xứng. ˗ Đặc tính của mã đối xứng:

(cid:1) Khóa phải được giữ bí mật giữa người gởi và

người nhận, khóa phải được chuyển một cách an toàn từ người gởi đến người nhận.

Nguyễn Thị Hạnh

8

(cid:1) Một hệ mã hóa đối xứng phải có tính an toàn. An toàn khi và chỉ khi nó không thể bị phá mã (điều kiện lý tưởng) hoặc thời gian phá mã là bất khả thi.

4

07/01/2018

Kỹ thuật mã hóa (Cryptography)

Hệ thống mã hóa được đặc trưng bởi: ˗Kỹ thuật được sử dụng để chuyển đổi bản rõ thành bản mã. Tất cả các thuật toán được dựa vào 2 kỹ thuật cơ bản:

(a)Phép thế (substitution): dùng từng ký tự (hay

từng nhóm ký tự) trong bản rõ được thay thế bằng một ký tự (hay một nhóm ký tự) khác để tạo ra bản mã. Bên nhận chỉ cần đảo ngược trình tự thay thế trên bản mã để có được bản rõ ban đầu.

(b)Hoán vị (transposition): Các ký tự trong bản rõ

Nguyễn Thị Hạnh

9

được giữ nguyên, chúng chỉ được sắp xếp lại vị trí để tạo ra bản mã. Yêu cầu cơ bản là không có thông tn nào bị mất (có nghĩa là tất cả các thao thác có thể đảo ngược).

Kỹ thuật mã hóa (Cryptography)

˗ Số khóa được người gửi và người nhận dùng khi mã hóa.

(cid:1) Một khóa duy nhất: Mã đối xứng/ Mã khóa đơn/ Mã khóa bí mật khóa/ Mã hóa thông thường (symmetric, single-key, secret-key, or conventional encryption)

Nguyễn Thị Hạnh

10

(cid:1) Hai khóa: Mã hóa bất đối xứng/ mã hóa hai khóa/ Mã hóa khóa công khai (asymmetric, two-key, or public-key encryption)

5

07/01/2018

Kỹ thuật mã hóa (Cryptography)

˗ Cách mà bản rõ được xử lý:

(cid:1) Khối (block cipher): dữ liệu được chia thành

từng khối có kích thước xác định và áp dụng thuật toán mã hóa với tham số cho từng khối.

Nguyễn Thị Hạnh

11

(cid:1) Dòng (stream cipher): từng phần tử ở đầu vào được xử lý liên tục tạo phần tử đầu ra tương ứng.

Phá mã (Cryptanalysis)

˗ Hai cách tiếp cận tấn công mã đối xứng:

(cid:1) Phân tích mật mã (cryptanalysis attack) hay còn gọi “tấn công dùng thuật toán”: dựa trên thuật thoán và một số đặc trưng chung về bản rõ hoặc vài cặp mậu bản rõ – bản mã. Kiểu tấn công này khai thác các đặc trưng của thuật toán để tìm bản rõ cụ thể hoặc tìm kiếm khóa.

(cid:1) Tấn công vén cạn (Brute-force attack): Kẻ tấn

Nguyễn Thị Hạnh

12

công tìm cách thử mọi khóa có thể trên bản mã cho đến khi nhận được bản rõ. Trung bình cần thử một nữa số khóa.

6

07/01/2018

Phân tích mật mã (Cryptanalysis)

˗ Các kiểu tấn công phân tích mật mã

(cid:1) Biết thuật toán và bản mã (cid:2) xác định bản rõ. (cid:1) Biết thuật toán, biết được bản mã/bản rõ (cid:2) tìm khóa.

(cid:1) Chọn bản rõ và nhận được bản mã, biết thuật toán (cid:2) tìm khóa.

Nguyễn Thị Hạnh

13

(cid:1) Chọn bản mã và có được bản rõ tương ứng, biết thuật toán (cid:2) tìm khóa

Vét cạn (Brute-force)

˗ Về mặt lý thuyết phương pháp này luôn thực hiện

được, do có thể tiến hành thử từng khóa, mà số khóa là hữu hạn.

˗ Phần lớn công sức của các tấn công đều tỷ lệ thuận

Nguyễn Thị Hạnh

14

˗ với kích thước khoá. Khóa càng dài thời gian tìm kiếm càng lâu và thường tăng theo hàm mũ. Ta có thể giả thiết là kẻ thám mã có thể dựa vào đặc trưng về ngữ cảnh để nhận biết được bản rõ.

7

07/01/2018

Vét cạn (Brute-force)

Nguyễn Thị Hạnh

15

˗ Thời gian trung bình cần để tìm kiếm toàn bộ

1.2 Một số mã đối xứng nổi tiếng

Nguyễn Thị Hạnh

16

˗ Một số mã áp dụng phép thay thế: (cid:1) Mã Caesar (Caesar Cipher) (cid:1) Mã hóa đơn bản (Monoalphabetic Ciphers) (cid:1) Mã Playfair (Playfair Cipher) (cid:1) Mã One-Time Pad (OTP) ˗ Một số mã áp dụng phép hoán vị

8

07/01/2018

1.2.1 Caesar Cipher

˗ Thế kỷ thứ 3 trước công nguyên, Julius Ceasar đưa ra phương pháp mã hóa này.

˗ Thay thế mỗi ký tự trong bản rõ bằng ký tự đứng

C

sau nó k vị trí trong bảng chữ cái. Giả sử chọn k=3, ta có bảng chuyển đổi: (cid:1) Bản rõ: 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 (cid:1) Bản mã: D E F G H I J K L M N O P Q R S T U V W X Y Z A B

(cid:1) Bản rõ: meet me after the toga party (cid:1) Bản mã: PHHW PH DIWHU WKH WRJD SDUWB

Nguyễn Thị Hạnh

17

˗ Ví dụ:

1.2.1 Caesar Cipher

˗ Chúng ta hãy gán cho mỗi chữ cái một con số nguyên từ 0 đến 25:

˗ Với mỗi ký tự trong P thay bằng chữ mã hóa C, trong

đó: C = (P + k) mod 26 (mod: phép chia lấy số dư)

˗ Và quá trình giải mã đơn giản là:

P = (C – k) mod 26

Nguyễn Thị Hạnh

18

˗ k được gọi là khóa. ˗ Hiện nay, mã Ceasar không được xem là an toàn.

9

07/01/2018

1.2.2 Mã hóa đơn bản (Monoalphabetic

Ciphers)

˗ Phương pháp đơn bảng tổng quát hóa phương pháp Ceasar bằng cách dòng mã hóa không phải là một dịch chuyển k vị trí của các chữ cái A, B, C, … nữa mà là một hoán vị của 26 chữ cái này. Lúc này mỗi hoán vị được xem như là một khóa.

Nguyễn Thị Hạnh

19

˗ Việc mã hóa được tiến hành bằng cách thay thế một chữ cái trong bản rõ thành một chữ cái trong bản mã, nên phương pháp này được gọi là phương pháp thay thế. Plain: abcdefghijklmnopqrstuvwxyz Cipher: DKVQFIBJWPESCXHTMYAUOLRGZN Plaintext: ifwewishtoreplaceletters Ciphertext: WIRFRWAJUHYFTSDVFSFUUFYA

1.2.2 Monoalphabetic Ciphers

˗ Số lượng hoán vị của 26 chữ cái là 26! (tương đương với số khóa).

˗ Vì 26! là một con số khá lớn (cid:2) tấn công phá mã vét cạn khóa là bất khả thi (6400 thiên niên kỷ với tốc độ thử khóa là 109 khóa/giây).

˗ (cid:2) phương pháp này được xem là một phương pháp

Nguyễn Thị Hạnh

20

mã hóa an toàn trong suốt 1000 năm sau công nguyên.

10

07/01/2018

1.2.2 Monoalphabetic Ciphers

˗ Tuy nhiên vào thế kỷ thứ 9, một nhà hiền triết người Ả Rập tên là Al-Kindi đã phát hiện ra một phương pháp phá mã khả thi khác. Phương pháp phá mã này dựa trên nhận xét sau: (cid:1) Trong ngôn ngữ tiếng Anh, tần suất sử dụng của

Nguyễn Thị Hạnh

21

các chữ cái không đều nhau, chữ E được sử dụng nhiều nhất, còn các chữ ít được sử dụng thường là Z, Q, J. Tương tự như vậy, đối với cụm 2 chữ cái (digram), cụm chữ TH được sử dụng nhiều nhất. (cid:1) Nếu chữ E được thay bằng chữ K thì tần suất xuất hiện của chữ K trong bản mã là 13.05%. Đây chính là cơ sở để thực hiện phá mã.

1.2.2 Monoalphabetic Ciphers

Nguyễn Thị Hạnh

22

Tần suất của chữ tiếng anh

11

07/01/2018

Ví dụ khám mã

˗ Cho bản mã:

Nguyễn Thị Hạnh

23

˗ Đếm tần suất ký tự ˗ Đoán P & Z là “e” và “t” ˗ Đoán ZW là “th” và vì vậy ZWP là “the”

Ví dụ khám mã

Nguyễn Thị Hạnh

24

Suy luận tiếp tục ta có được bản rõ

12

07/01/2018

1.2.3 Mã Playfair

˗ Được biết như là mã thay thế đa ký tự

˗ Được đề xuất bởi Charles Wheatstone, được mang tên của người bạn Baron Playfair

Nguyễn Thị Hạnh

25

˗ Mã hóa Playfair xem hai ký tự đứng sát nhau là một đơn vị mã hóa, hai ký tự này được thay thế cùng lúc bằng hai ký tự khác.

1.2.3 Playfair Cipher

˗ Dựa trên ma trận 5 ×5 của các ký tự được xây dựng bằng từ khóa (keyword)

Nguyễn Thị Hạnh

26

˗ Trong ma trận trên, khóa là từ MONARCHY được điền vào các dòng đầu của bảng, các chữ cái còn lại của bảng chữ cái được điền tiếp theo một cách tuần tự. Riêng hai chữ I, J được điền vào cùng một ô

13

07/01/2018

1.2.3 Mã Playfair

˗ Bản rõ được mã hóa một lần 2 ký tự theo quy tắc sau:

1. Cặp hai ký tự giống nhau xuất hiện trong bản rõ sẽ

được tách ra bởi 1 ký tự lọc, chẳng hạn như x. Ví dụ trước khi mã hóa “balloon” sẽ được biến đổi thành “balxloxon”.

Nguyễn Thị Hạnh

27

2. Hai ký tự trong cặp đều rơi vào cùng một hàng, thì mã mỗi ký tự bằng ký tự bên phải nó trong cùng hàng của ma trận khóa, nếu nó là phần tử cuối của hàng thì vòng sang ký tự đầu cùng của hàng, chẳng hạn “ar” mã hóa thành “rm”

1.2.3 Mã Playfair

˗ Bản rõ được mã hóa một lần 2 ký tự theo quy tắc sau:

3. Hai ký tự mà rơi vào cùng một cột thì nó được mã bằng ký tự ngay dưới, nếu nó ở cuối cột thì vòng sang ký tự ở đầu cột, chẳng hạn “mu” được mã hóa thành “CM”.

4. Trong trường hợp khác, mỗi ký tự của bản rõ trong

Nguyễn Thị Hạnh

28

một cặp được thay bởi ký tự nằm cùng hàng với nó và cột là cùng cột với ký tự cùng cặp. Chẳng hạn, “hs”mã thành “bp”, và“ea”mã thành “im”hoặc “jm”

14

07/01/2018

1.2.3 Playfair Cipher

˗ An toàn được cải tiếng hơn với mã hóa đơn bản (simple monoalphabetic ciphers)

˗ Chỉ xét trên 26 ký tự thì mã khóa Playfair có

26x26=676 cặp ký tự. (cid:2) các cặp ký tự này ít bị chênh lệch về tần suất hơn so với sự chênh lệnh tần suất của từng ký tự. Ngoài ra số lượng các cặp ký tự nhiều hơn cũng làm cho việc phá mã tầnsuất khó khăn hơn. Đây chính là lý do mà người ta tin rằng mã hóa Playfair không thể bị phá và được quân đội Anh sử dụng trong chiến tranh thế giới lần thứ nhất.

˗ Tuy nhiên, nó có thể bị bẻ khoá nếu cho trước vài

Nguyễn Thị Hạnh

29

trăm chữ, vì bản mã vẫn còn chứa nhiều cấu trúc của bản rõ.

1.2.4 One-Time Pad (OTP)

˗ One-Time Pad – bộ đệm một lần, Được đề xuất bởi Joseph Mauborgne

˗ Một khóa ngẫu nhiên có chiều dài bằng chiều dài của bản rõ, mỗi khóa dùng một lần

˗ Khó bẻ khóa vì không có quan hệ nào giữa bản rõ và bản mã.

˗ Ví dụ mã hóa bản tin “wearediscoveredsaveyourself”

Nguyễn Thị Hạnh

30

(cid:1) Bản tin P: wearediscoveredsaveyourself (cid:1) Khóa K1: FHWYKLVMKVKXCVKDJSFSAPXZCVP (cid:1) Bản mã C: LWPOODEMJFBTZNVJNJQOJORGGU (cid:1) Dùng K1 để giải mã thì ta được: “wearediscoveredsaveyourself”

15

07/01/2018

1.2.4 One-Time Pad (OTP)

Xét hai trường hợp giải mã bản mã trên với 2 khóa khác nhau ˗Trường hợp 1:

(cid:1) Bản mã C: LWPOODEMJFBTZNVJNJQOJORGGU (cid:1) Khóa K2: IESRLKBWJFCIFZUCJLZXAXAAPSY (cid:1) Bản giải mã: theydecidedtoattacktomorrow (they decided to attack tomorrow)

˗Trường hợp 2:

(cid:1) Bản mã C: LWPOODEMJFBTZNVJNJQOJORGGU (cid:1) Khóa K3: FHAHDDRAIQFIASJGJWQSVVBJAZB (cid:1) Bản giải mã: wewillmeetatthepartytonight

Nguyễn Thị Hạnh

31

(we will meet at the party tonight)

1.2.5 Mã hàng rào sắt (rail fence cipher)

˗ Đây là một mã dung phép hoán vị hoặc chuyển vị, vì vậy gọi là mã hoán vị hoặc mã chuyển vị (classical transposition or permutation ciphers)

˗ Thực hiện xáo trộn thứ tự các ký tự trong bản rõ. Do thứ tự của các ký tự bị mất đi nên người đọc không thể hiểu được ý nghĩa của bản tin dù các chữ đó không thay đổi.

Nguyễn Thị Hạnh

32

˗ Đơn giản nhất của mã hóa kiểu này là mã rail fence cipher

16

07/01/2018

1.2.5 Rail Fence Cipher

˗ Ghi các ký tự trong bản rõ theo từng hàng rào, sau đó kết xuất bản mã dựa trên cột.

˗ Ví dụ: bản rõ “meet me after the toga party” với hành

rào sắt độ sâu là 2 (cid:1) Viết bản rõ như sau:

m e m a t r h t g p r y e t e f e t e o a a t

(cid:1) Cho bản mã

Nguyễn Thị Hạnh

33

MEMATRHTGPRYETEFETEOAAT

1.2.5 Rail Fence cipher

˗ Để an toàn hơn nữa, có thể áp dụng phương pháp

hoán vị 2 lần (double transposition), tức sau khi hoán vị lần 1, ta lại lấy kết quả đó hoán vị thêm một lần nữa.

˗ Để phá mã phương pháp hoán vị 2 lần không phải là

chuyện dễ dàng vì rất khó đoán ra được quy luật hoán vị.

Nguyễn Thị Hạnh

34

˗ Ngoài ra không thể áp dụng được phương pháp phân tích tần suất chữ cái giống như phương pháp thay thế vì tần suất chữ cái của bản rõ và bản mã là giống nhau.

17

07/01/2018

Tóm tắt

˗ Các phương pháp mã hóa cổ điển thường dựa trên

hai phương thức. 1. Dùng phương pháp thay thế một chữ cái trong bản rõ thành một chữ cái khác trong bản mã (substitution). Các mã hóa dùng phương thức này là mã hóa Ceasar, mã hóa thay thế đơn bảng, đa bảng, one-time pad.

Nguyễn Thị Hạnh

35

2. Dùng phương pháp hoán vị để thay đổi thứ tự ban đầu của các chữ cái trong bản rõ (Rail Fence)

2. Mã dòng (Stream Block) và Mã

khối (Block Ciphers)

2.1 Khái niệm

Nguyễn Thị Hạnh

36

2.2 Mã Feistel (Feistel Cipher)

18

07/01/2018

2.1 Khái niệm

˗ Mã dòng (stream cipher) là một kỹ thuật mã hóa mà mã hóa một dòng dữ liệu số một bit hoặc một byte tại một thời điểm.

Nguyễn Thị Hạnh

37

˗ Mã khối (block cipher) là một cơ chế mã hóa/giải mã mà trong đó một khối của bản rõ được xử lý như một thổng thể và dùng để tạo ra khối bản mã có độ dài bằng nhau. Thông thường kích cở khổi là 64 hoặc 128 bit được sử dụng.

Stream Ciphers và Block Ciphers

Nguyễn Thị Hạnh

38

19

07/01/2018

2.2 Mã Feistel (Feistel Cipher)

˗ Được đề xuất bởi Horst Feistel ˗ Bản rõ sẽ được biến đổi qua một số vòng để cho ra bản mã cuối cùng

˗ Trong đó bản rõ P và các bản mã Ci được chia thành nửa trái và nửa phải:

Nguyễn Thị Hạnh

39

P = (L0, R0) ; Ci = (Li, Ri) i = 1, 2, …n

2.2 Mã Feistel (Feistel Cipher)

˗ Quy tắc biến đổi các nửa trái phải này qua các vòng

được thực hiện như sau: Li = Ri-1 ; Ri = Li-1 ¯ F(Ri-1, Ki)

(cid:2) K2

(cid:1)Ki là một khóa con cho vòng thứ i. Khóa con này được sinh ra từ khóa K ban đầu theo một thuật toán sinh khóa con (key schedule): K (cid:2) K1 (cid:2) … (cid:2) Kn (cid:1)F là một hàm mã hóa dùng chung cho tất cả các vòng. Hàm F đóng vai trò như là phép thay thế còn việc hoán đổi các nửa trái phải có vai trò hoán vị. ˗ Bản mã C được tính từ kết xuất của vòng cuối cùng:

Nguyễn Thị Hạnh

40

C = Cn = (Ln, Rn)

20

07/01/2018

2.2 Mã Feistel (Feistel Cipher)

Nguyễn Thị Hạnh

41

˗ Sơ đồ tính toán của hệ mã Feistel

2.2 Feistel Cipher

˗ Để giải mã quá trình được thực hiện qua các vòng theo thứ tự ngược lại:

(theo mã hóa Li = Ri-1 )

¯ F(Ri-1, Ki)

C(cid:2)Ln,Rn Ri-1= Li Li-1 = Ri (theo mã hóa Ri = Li-1 ¯ F(Ri-1, Ki) )

Sơ đồ tính toán của hệ mã Feistel

Nguyễn Thị Hạnh

42

Và cuối cùng bản rõ là P = (L0, R0).

21

07/01/2018

2.2 Feistel Cipher

Việc thực hiện chính xác một mã Feistel tùy thuộc vào:

Nguyễn Thị Hạnh

43

˗ Kích cở khối (Block size): Kích cở khối càng lớn có nghĩa là bảo mật càng cao, nhưng tốc độ mã hóa/giải mã (encryption/decryption) giảm (block size: 64 bits). ˗ Kích cở của khóa (Key size): Khóa càng dài thì bảo mật càng cao nhưng cũng giảm tốc độ mã hóa/giải mã. Bảo mật cao có nghĩa là kháng cự lại được tấn công vét cạn (brute-force attacks) và sự hổn độn (Key size: 128 bits).

2.2 Feistel Cipher

˗ Số dòng (Number of rounds): Bản chất thuật toán mã Feistel là một dòng duy nhất là đã cung cấp đầy đủ tính an toàn nhưng nếu số vòng càng tang thì tính an toàn càng cao. (thông thường 16 vòng). ˗ Thuật toán pháp sinh khóa con (Subkey

generation algorithm): Thuật toán càng phức tạp thì sẽ khó khan hơn trong việc khám mã.

Nguyễn Thị Hạnh

44

˗ Hàm vòng F (Round function F): Càng phức tạp thì đề kháng càng cao đối với khám mã..

22

07/01/2018

3. Mã DES (Data Encryption

Standard)

˗ Phát hành 1977, chuẩn hóa 1979. ˗ Là mã thuộc hệ mã Feistel gồm 16 vòng, ngoài ra

DES có thêm một hoán vị khởi tạo trước khi vào vòng 1 và một hoán vị khởi tạo sau vòng 16

˗ Kích thước của khối là 64 bít. ˗ Ví dụ bản tin “meetmeafterthetogaparty” biểu diễn

theo mã ASCII thì mã DES sẽ mã hóa làm 3 lần, mỗi lần 8 chữ cái (64 bít): meetmeaf - tertheto - gaparty.

Nguyễn Thị Hạnh

45

˗ Kích thước khóa là 56 bít ˗ Mỗi vòng của DES dùng khóa con có kích thước 48 bít được trích ra từ khóa chính.

3. Mã DES (Data Encryption

Standard)

64 bit M 64 bit C DES Encryption

Nguyễn Thị Hạnh

46

56 bits

23

07/01/2018

Các vòng Feistel của mã DES

Key 56 bit

Plaintext (64 bit)

giao hoán

giao hoán thuận

K1

vòng 1

giao hoán

dịch vòng trái

K2

giao hoán

vòng 2

dịch vòng trái

. . .

. . .

Kn

vòng n

giao hoán

dịch vòng trái

hoán đổi 32 bit

giao hoán nghịch

Cipher (64 bit)

Nguyễn Thị Hạnh

47

Cấu trúc một vòng của mã DES

<-----32 bit------>

<-----32 bit------> Ri-1

mở rộng g/hoán

--- 48 bit

Li-1

Ki

x

--- 48 bit

hộp S

--- 32 bit

giao hoán

--- 32 bit

x Ri

Nguyễn Thị Hạnh

48

Li

24

07/01/2018

Độ an toàn của DES

˗ Tấn công vét cạn khóa (Brute Force Attack)

(cid:1) Khóa của DES: 56 bít nên để tiến hành vét cạn khóa cần kiểm tra 256 khóa khác nhau.(cid:2) rất lớn (cid:1) 1998, tổ chức Electronic Frontier Foundation (EFF) thông báo đã xây dựng được một thiết bị phá mã DES gồm nhiều máy tính chạy song song, trị giá khoảng 250.000$. Thời gian thử khóa là 3 ngày. (cid:1) Hiện nay mã DES vẫn còn được sử dụng trong

Nguyễn Thị Hạnh

49

thương mại, tuy nhiên người ta đã bắt đầu áp dụng những phương pháp mã hóa khác có chiều dài khóa lớn hơn (128 bít hay 256 bít) như TripleDES hoặc AES.

Độ an toàn của DES

˗ Phá mã DES theo phương pháp vi sai (differential

Nguyễn Thị Hạnh

50

cryptanalysis): (cid:1) Năm 1990 Biham và Shamir đã giới thiệu phương pháp phá mã vi sai. Phương pháp vi sai tìm khóa ít tốn thời gian hơn brute-force. Tuy nhiên phương pháp phá mã này lại đòi hỏi phải có 247 cặp bản rõ - bản mã được lựa chọn (chosen-plaintext). Vì vậy phương pháp này là bất khả thi dù rằng số lần thử có thể ít hơn phương pháp brute-force.

25

07/01/2018

Độ an toàn của DES

˗ Phá mã DES theo phương pháp thử tuyến tính

(linear cryptanalysis) (cid:1) Năm 1997 Matsui đưa ra phương pháp phá mã

Nguyễn Thị Hạnh

51

tuyến tính. Trong phương pháp này, cần phải biết trước 243 cặp bản rõ-bản mã (known-plaintext). Tuy nhiên 243 cũng là một con số lớn nên phá mã tuyến tính cũng không phải là một phương pháp khả thi.

Mã Triple DES

˗ Một trong những cách để khắc phục yếu điểm kích

thước khóa ngắn của mã hóa DES là sử dụng mã hóa DES nhiều lần với các khóa khác nhau cho cùng một bản tin. Đơn giản nhất là dùng DES hai lần với hai khóa khác nhau, cách thức này được gọi là Double DES

C=E(E(P, K1),K2) ˗ Điều này giống như là Double DES dùng một khóa có kích thước là 112 byte, chỉ có một hạn chế là tốc độ chậm hơn DES vì phải dùng DES hai lần. Tuy nhiên người ta đã tìm

Nguyễn Thị Hạnh

52

˗ Một phương pháp tấn công Double DES có tên gọi là gặp-nhau-ở-giữa (meet-in-the middle).Đây là một phương pháp tấn công chosen-plaintext.

26

07/01/2018

Mã Triple DES

˗ Nếu dùng DES ba lần với ba khóa khác nhau, cách thức này được gọi là Triple DES:

C=E(E(E(P, K1),K2),K3) ˗ Chiều dài khóa là 168 bít sẽ gây phức tạp hơn nhiều cho việc phá mã bằng phương pháp tấn công gặp- nhau-ở-giữa. Trong thực tế người ta chỉ dùng Triple DES với hai khóa K1, K2 mà vẫn đảm bảo độ an toàn cần thiết.

Nguyễn Thị Hạnh

53

C=E(E(E(P, K1),K2),K1)

4. Mã AES (Advanced Encryption

Standard)

Nguyễn Thị Hạnh

54

˗ Thập niên 90, nhận thấy nguy cơ của mã hóa DES là kích thước khóa ngắn, có thể bị phá mã trong tương lai gần, Cục tiêu chuẩn quốc gia Hoa Kỳ đã kêu gọi xây dựng một phương pháp mã hóa mới. Cuối cùng một thuật toán có tên là Rijndael được chọn và đổi tên thành Andvanced Encryption Standard hay AES. ˗ Khóa có kích thước 256 bít là “an toàn mãi mãi” bất kể những tiến bộ trong ngành kỹ thuật máy tính.

27

07/01/2018

4. Mã AES (Advanced Encryption

Standard)

˗ Như DES, mã AES là mã khối, nhiều vòng, nhưng mã AES không phải là một mã Feistel. Thuật toán AES khá phức tạp.

˗ Đặc điểm chính của AES:

(cid:1) Cho phép lựa chọn kích thước khối mã hóa là 128, 192 hay 256 bít.

(cid:1) Cho phép lựa chọn kích thước của khóa một cách độc lập với kích thước khối: là 128, 192 hay 256 bít.

Nguyễn Thị Hạnh

55

(cid:1) Số lượng vòng có thể thay đổi từ 10 đến 14 vòng tùy thuộc vào kích thước khóa.

4. Mã AES (Advanced Encryption

Standard)

Nguyễn Thị Hạnh

56

˗ Độ an toàn của AES làm cho AES được sử dụng ngày càng nhiều và trong tương lai sẽ chiếm vai trò của DES và Triple DES.

28

07/01/2018

5. Các mô hình ứng dụng mã khối

Nguyễn Thị Hạnh

57

˗ Mã khối (như mã DES) được áp dụng để mã hóa một khối dữ liệu có kích thước xác định. Để mã hóa một bản tin dài, bản tin được chia ra thành nhiều khối (P=P0P1P2...Pn-1) và áp dụng mã khối cho từng khối một. Có nhiều mô hình áp dụng mã khối là (cid:1) Electronic Code Book (ECB) (cid:1) Cipher Block Chaining Mode (CBC) (cid:1) Cipher Feedback Mode (CTR) (cid:1) Output Feedback Mode (OFB) (cid:1) Counter Mode

5.1 Electronic Code Book (ECB)

Nguyễn Thị Hạnh

58

˗ Mã hóa từng khối riêng lẻ, dùng chung 1 khóa K

29

07/01/2018

5.1 Electronic Code Book (ECB)

Nguyễn Thị Hạnh

59

˗ Mã hóa từng khối riêng lẻ, dùng chung một khóa K

5.2 Cipher Block Chaining Mode

Nguyễn Thị Hạnh

60

˗ Sử dụng đoạn mã hoá của block trước, trong quá trình mã hoá

30

07/01/2018

5.2 Cipher Block Chaining Mode

Nguyễn Thị Hạnh

61

˗ Sử dụng đoạn mã hoá của block trước, trong quá trình mã hoá

5.3 Cipher Feedback Mode

Nguyễn Thị Hạnh

62

˗ Chế độ mã phản hồi: s bit mã hóa trước được đưa vào thanh ghi đầu vào hiện thời

31

07/01/2018

5.4 Cipher Feedback Mode

Nguyễn Thị Hạnh

63

5.5 Output Feedback Mode

Nguyễn Thị Hạnh

64

˗ Chế độ mã phản hồi đầu ra: s bit trái đầu ra trước được đưa vào thanh ghi đầu vào hiện thời

32

07/01/2018

5.6 Counter Mode (CTR)

Nguyễn Thị Hạnh

65

˗ XOR mỗi khối nguyên bản với 1 giá trị thanh đếm mã hóa

5.6 Counter Mode

Nguyễn Thị Hạnh

66

33

07/01/2018

Câu hỏi và bài tập

1. Khái niệm mã hóa, tại sao phải mã hóa thông tin khi truyền tin trên mạng?

2. Khái niệm mã hóa đối xứng, cơ chế, các thành phần của hệ mã hóa đối xứng.

3. Tại sao gửi bản mã (cipher) trên kê truyền thì không sợ bị lộ thông tin?

4. Khóa là gì? Tại sao cần giữ bí mật khóa chỉ có người gửi và người nhận biết?

Nguyễn Thị Hạnh

67

5. Khám mã khác giải mã ở điểm nào? 6. Khám mã theo hình thức vét cạn khóa thực hiện như thể nào? Cần làm gì để chống lại hình thức khám mã theo kiểu vét cạn khóa?

Câu hỏi và bài tập

7. Các phương pháp Ceasar, mã hóa đơn bảng, đa bảng, one-time pad dùng nguyên tắc gì để mã hóa?

8. Mã hóa bản rõ “DAI HOC CONG NGHIEP”, dùng phương pháp mã hóa Ceasar với k=3

9. Giải mã bản mã sau, giả sử mã hóa Ceasar được sử dụng để mã hóa với k=3

IRXUVFRUHDQGVHYHQBHDUVDJR 7. Mã hóa bản rõ “DAI HOC CONG NGHIEP”, dùng

phương pháp mã hóa thay thể đơn bản (Monoalphabetic Ciphers) với khóa hoán vị K là: IAUTMOCSNREBDLHVWYFPZJXKGQ

Nguyễn Thị Hạnh

8. Mã hóa bản rõ “DAI HOC CONG NGHIEP”, dùng

68

phương pháp mã hóa Playfair với khóa k là “monarchy”.

34