Chapter2_KhoaBDXddddddddddddddddddddddddddddd.pptxd

Hongng95291 0 views 142 slides Sep 20, 2025
Slide 1
Slide 1 of 142
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35
Slide 36
36
Slide 37
37
Slide 38
38
Slide 39
39
Slide 40
40
Slide 41
41
Slide 42
42
Slide 43
43
Slide 44
44
Slide 45
45
Slide 46
46
Slide 47
47
Slide 48
48
Slide 49
49
Slide 50
50
Slide 51
51
Slide 52
52
Slide 53
53
Slide 54
54
Slide 55
55
Slide 56
56
Slide 57
57
Slide 58
58
Slide 59
59
Slide 60
60
Slide 61
61
Slide 62
62
Slide 63
63
Slide 64
64
Slide 65
65
Slide 66
66
Slide 67
67
Slide 68
68
Slide 69
69
Slide 70
70
Slide 71
71
Slide 72
72
Slide 73
73
Slide 74
74
Slide 75
75
Slide 76
76
Slide 77
77
Slide 78
78
Slide 79
79
Slide 80
80
Slide 81
81
Slide 82
82
Slide 83
83
Slide 84
84
Slide 85
85
Slide 86
86
Slide 87
87
Slide 88
88
Slide 89
89
Slide 90
90
Slide 91
91
Slide 92
92
Slide 93
93
Slide 94
94
Slide 95
95
Slide 96
96
Slide 97
97
Slide 98
98
Slide 99
99
Slide 100
100
Slide 101
101
Slide 102
102
Slide 103
103
Slide 104
104
Slide 105
105
Slide 106
106
Slide 107
107
Slide 108
108
Slide 109
109
Slide 110
110
Slide 111
111
Slide 112
112
Slide 113
113
Slide 114
114
Slide 115
115
Slide 116
116
Slide 117
117
Slide 118
118
Slide 119
119
Slide 120
120
Slide 121
121
Slide 122
122
Slide 123
123
Slide 124
124
Slide 125
125
Slide 126
126
Slide 127
127
Slide 128
128
Slide 129
129
Slide 130
130
Slide 131
131
Slide 132
132
Slide 133
133
Slide 134
134
Slide 135
135
Slide 136
136
Slide 137
137
Slide 138
138
Slide 139
139
Slide 140
140
Slide 141
141
Slide 142
142

About This Presentation

cyber security


Slide Content

Chương 2 C ác khái niệm cơ sở Các h ệ m ã khóa đối xứng ( khóa bí mật ) Sơ đồ khối chung Các hệ mã cổ điển Các hệ mã khối và DES Hệ mã AES Các chế độ sử dụng mã khối 1

Chương 2 C ác khái niệm cơ sở Các h ệ m ã khóa đối xứng (khóa bí mật) Sơ đồ khối chung Các hệ mã cổ điển Các hệ mã khối và DES Hệ mã AES Các chế độ sử dụng mã khối 2

Chương 2 Các khái niệm cơ sở 3 1. Plaintext – Bản rõ:   2. Ciphertext – Bản mã: C   3. Key – Khóa: K   4. Encipher (encrypt) – Phép mã hóa: E C = E(P, K) 5. Decipher (decrypt) – Phép giải mã: D P = D(C, K)

Chương 2 Các khái niệm cơ sở 4 6. Cryptography – Mật mã: nghiên cứu các phương pháp/nguyên tắc mã hóa. 7. Cryptanalysis (codebreaking) – Mã thám: nghiên cứu nguyên tắc/phương pháp giải mã không biết khóa. 8. Cryptology – Mật mã học nghiên cứu cả mật mã và thám mã.

Chương 2 Các khái niệm cơ sở 5 Hệ mã 1. Plaintext – Bản rõ:   2. Ciphertext – Bản mã: C   3. Key – Khóa: K   4. Encipher (encrypt) – Phép mã hóa: E C = E(P, K) 5. Decipher (decrypt) – Phép giải mã: D D(C, K) = P An toàn của hệ mã phụ thuộc vào việc giữ bí mật khóa, không phụ thuộc vào việc giữ bí mật giải thuật mã hóa/giải mã.

Chương 2 Phân loại hệ mã K hóa mã hóa/giải mã Không dùng khóa Các hàm băm (Hash Functions): Sử dụng khóa giống nhau cho mã hóa và giải mã Hệ mã khóa bí mật (Secret key cryptography) hay hệ mã khóa đối xứng (Symmetric Cipher) Sử dụng khóa khác nhau cho mã hóa và giải mã (khóa bí mật, khóa công khai) Hệ mã khóa công khai (Public key cryptography) hay hệ mã khóa bất đối xứng (Asymmetric Cipher) 6

Chương 2 Phân loại hệ mã Phương pháp mã hóa Mã thay thế (Substitution) Mã chuyển vị (Transposition) Mã kết hợp thay thế và chuyển vị (Product) Cách thức xử lý bản rõ Mã khối (Block) Mã dòng (Stream) 7

Chương 2 Tấn công thám mã và tấn công vét cạn Thám mã (Cryptanalysis) D ựa vào bản chất của thuật toán cộng với một số kiến thức về các đặc điểm chung của bản rõ hoặc thậm chí một số cặp bản rõ - bản mã. Kiểu tấn công này khai thác các đặc điểm của thuật toán để cố gắng tìm ra một bản rõ cụ thể hoặc để tìm ra khóa đang được sử dụng. Vét cạn (Brute-force attack) Kẻ tấn công thử mọi khóa có thể có trên một đoạn mã cho đến khi thu được bản dịch dễ hiểu ( bản rõ ) . Trung bình, phải thử ½ trong số tất cả các khóa 8

Chương 2 Các kiểu tấn công thám mã dựa trên thông tin mà mã thám có được Chỉ biết bản mã (Ciphertext Only) Mã thám biết bản mã và thuật toán mã hóa Biết bản rõ (Known Plaintext) Mã thám có được một hoặc nhiều bản rõ và bản mã tương ứng Mã thám biết một số thành phần nhất định sẽ xuất hiện trong bản rõ Các tệp tin được mã hóa ở định dạng Postcript luôn bắt đầu cùng một thành phần Phần tiêu đề hoặc banner chuẩn hóa sử dụng trong thông báo chuyển tiền điện tử. 9

Chương 2 Các kiểu tấn công thám mã Bản rõ chọn sẵn (Chosen Plaintext) Mã thám biết bản mã và thuật toán mã hóa Mã thám lựa chọn bản rõ và tạo bản mã tương ứng sử dụng khóa bí mật. Ví dụ thực tế Mỹ thu được bản mã của Nhật và giải mã được một phần bản mã này Mỹ mã hóa một tin giả có nội dung: “Nguồn nước cấp cho đảo Midway sắp cạn”. Nhật chặn được thông điệp này, nhanh chóng báo cho cấp trên là “AF sắp hết nước” 10 Nhật Bản đang lập kế hoạch tấn công vào AF ?

Chương 2 Các kiểu tấn công thám mã Bản mã chọn sẵn (Chosen Ciphertext) Kẻ tấn công khiến nạn nhân (người biết khóa bí mật) giải mã bất kỳ bản mã nào do anh ta tạo ra và gửi lại kết quả cho anh ta. Bằng cách phân tích bản mã đã chọn và bản rõ nhận được tương ứng, kẻ tấn công đoán khóa bí mật đã được nạn nhân sử dụng. Thường xảy ra với hệ mã hóa khóa công khai. Ví dụ, các phiên bản đầu tiên của hệ mã RSA rất dễ bị tấn công. 11

Chương 2 Hệ mã an toàn tuyệt đối (unconditionally secure) Thám mã không thể tìm ra bản rõ từ các bản mã dù có thời gian và năng lực tính toán không hạn chế Ví dụ hệ mã an toàn tuyệt đối: one-time pad Mục tiêu thiết kế hệ mã Chi phí phá mã vượt quá giá trị thông tin được mã hóa Thời gian phá mã vượt quá thời gian tồn tại hữu ích của thông tin. 12

Chương 2 Hệ mã an toàn về mặt tính toán (computationally secure) Thoải mãn 1 trong 2 tiêu chí Chi phí phá mã vượt quá giá trị thông tin được mã hóa Thời gian phá mã vượt quá thời gian tồn tại hữu ích của thông tin. 13

??? ??? 1976 Cổ điển Hiện đại Ai cập CĐ Hy lạp CĐ La mã CĐ Vigenere Enigma RSA ECC Chương 2 Lịch sử phát triển mật mã DES 3DES

Chương 2 C ác khái niệm cơ sở Các h ệ m ã khóa đối xứng (khóa bí mật) Sơ đồ khối chung Các hệ mã cổ điển Các hệ mã khối và DES Hệ mã AES 15

Chương 2 Hệ mã khóa bí mật (hệ mã khóa đối xứng) Sơ đồ khối chung 16

Chương 2 C ác khái niệm cơ sở Các h ệ m ã khóa đối xứng (khóa bí mật) Sơ đồ khối chung Các hệ mã cổ điển Các hệ mã khối và DES Hệ mã AES Các chế độ sử dụng mã khối 17

Chương 2 Các hệ mã cổ điển Các hệ mã thay thế Các hệ mã chuyển vị 18

Chương 2 Các hệ mã cổ điển Các hệ mã thay thế Các hệ mã chuyển vị 19

Chương 2 Các hệ mã thay thế Chữ cái/bit của bản rõ được thay thế bởi chữ cái khác/số/ký hiệu/bit mã Hệ mã thay thế đơn biểu (monoalphabetic substitution cipher) Mỗi phần từ rõ được ánh xạ thành một phần tử mã cố định . Quan hệ rõ-mã là 1-1 Hệ mã thay thế đa biểu (polyalphabetic substitution cipher) Mỗi phần từ rõ có thể ánh xạ thành nhiều phần tử mã. Quan hệ rõ-mã là 1-nhiều 20

Chương 2 Các hệ mã thay thế Chữ cái/bit của bản rõ được thay thế bởi chữ cái khác/số/ký hiệu/bit mã Hệ mã thay thế đơn biểu (monoalphabetic substitution cipher) Hệ mã Caesar Hệ mã thay thế đa biểu (polyalphabetic substitution cipher) Hệ mã Playfair Hệ mã Hill Hệ mã Vigenère 21 Hệ mã Vernam Hệ mã One-time pad

Chương 2 Các hệ mã thay thế Chữ cái/bit của bản rõ được thay thế bởi chữ cái khác/số/ký hiệu/bit mã Hệ mã thay thế đơn biểu (monoalphabetic substitution cipher) Hệ mã Caesar Hệ mã thay thế đa biểu (polyalphabetic substitution cipher) Hệ mã Playfair Hệ mã Hill Hệ mã Vigenère 22 Hệ mã Vernam Hệ mã One-time pad

Chương 2 Hệ mã Caesar 23 Vòng ngoài: phần tử rõ Vòng trong: phần tử mã a b c d e f g h i j k l m 1 2 3 4 5 6 7 8 9 10 11 12 n o p q r s t u v w x y z 13 14 15 16 17 18 19 20 21 22 23 24 25 Mã hóa: C = (P + k) mod 26 Giải mã: P = (C – k) mod 26

Chương 2 Hệ mã Caesar 24 n o p q r s t u v w x y z Q R S T U V W X Y Z A B C Mã hóa: C = (P + 3 ) mod 26 Giải mã: P = (C – 3 ) mod 26 a b c d e f g h i j k l m D E F G H I J K L M N O P a b c d e f g h i j k l m 1 2 3 4 5 6 7 8 9 10 11 12 n o p q r s t u v w x y z 13 14 15 16 17 18 19 20 21 22 23 24 25

Chương 2 Hệ mã Caesar 25 Mã hóa: C = (P + 12 ) mod 26 a b c d e f g h i j k l m 1 2 3 4 5 6 7 8 9 10 11 12 n o p q r s t u v w x y z 13 14 15 16 17 18 19 20 21 22 23 24 25 w e m e e t t o m o r r o w I Q Y Q Q F F A Y A D D A I

Chương 2 Hệ mã Caesar 26 Giải mã : P = (C – 20 ) mod 26 a b c d e f g h i j k l m 1 2 3 4 5 6 7 8 9 10 11 12 n o p q r s t u v w x y z 13 14 15 16 17 18 19 20 21 22 23 24 25 B I W X Y F U G P C Y W P U F U G H A O I C h o c d e l a m v i e c v a l a m n g u o i

Chương 2 Tấn công hệ mã Caesar 27 Giải mã: P = (C – ) mod 26 a b c d e f g h i j k l m 1 2 3 4 5 6 7 8 9 10 11 12 n o p q r s t u v w x y z 13 14 15 16 17 18 19 20 21 22 23 24 25 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? U C J A M K C R M N F C L G I Y Y k

Chương 2 Tấn công hệ mã Caesar 28 w e l c o m e t o p h e n i k a a U C J A M K C R M N F C L G I Y Y k=24

Chương 2 Hệ mã Caesar Thám mã 29 ZQZMTOCDIBDNBJDIBRZGGDIVA Khóa? Bản rõ? Khóa ? Bản rõ ? RWJCVIDXAPRWXTCHXRDCVPC

Chương 2 Các hệ mã cổ điển Tấn công hệ mã Caesar Số lượng khóa thử cho thám mã: 25 Biết giải thuật mã hóa/giải mã Dễ dàng tìm ra bản rõ từ bản mã khi biết ngôn ngữ sử dụng trong bản rõ 30 brute-force attack

Chương 2 Các hệ mã cổ điển Tăng không gian khóa 31 Mỗi một phần tử rõ được thay thế ngẫu nhiên bất kỳ bởi một phần tử mã Phép hoán vị:   abc, acb, bac, bca, cab, cba B ảng chữ cái là một tập K với 26 phần tử, từ đó ta có 26! h oán vị của K Không gian khóa: 26! > 4 x 10 26 Hệ mã thay thế đa biểu

Chương 2 Các hệ mã cổ điển Tấn công (relative frequency) Phân tích tần số xuất h iện của các chữ mã 32 Chương 2

Chương 2 Các hệ mã thay thế Chữ cái/bit của bản rõ được thay thế bởi chữ cái khác/số/ký hiệu/bit mã Hệ mã thay thế đơn biểu (monoalphabetic substitution cipher) Hệ mã Caesar Hệ mã thay thế đa biểu (polyalphabetic substitution cipher) Hệ mã Playfair Hệ mã Hill Hệ mã Vigenère 33 Hệ mã Vernam Hệ mã One-time pad

Chương 2 Hệ mã Playfair Bản rõ? Bản mã? Khóa? Phép mã hóa? Phép giải mã? 34 - Hai ký tự đứng cạnh nhau - Nếu hai ký tự trong một cặp giống nhau thì sẽ được tách bằng chữ x . Hai ký tự mã tương ứng từ hai ký tự rõ Ma trận K 5x5 M O N A R C H Y B D E F G I/J K L P Q S T U V W X Z balloon → ba lx lo on IB SU PM NA - 2 ký tự trong cặp thuộc cùng một hàng? - 2 ký tự trong cặp thuộc cùng một cột? - 2 ký tự trong cặp thuộc đường chéo?

Chương 2 Hệ mã Playfair – Ví dụ? Bản rõ? Bản mã? Khóa? Phép mã hóa? Phép giải mã? 35

Chương 2 Các hệ mã thay thế Chữ cái/bit của bản rõ được thay thế bởi chữ cái khác/số/ký hiệu/bit mã Hệ mã thay thế đơn biểu (monoalphabetic substitution cipher) Hệ mã Caesar Hệ mã thay thế đa biểu (polyalphabetic substitution cipher) Hệ mã Playfair Hệ mã Hill Hệ mã Vigenère 36 Hệ mã Vernam Hệ mã One-time pad

Chương 2 Hệ mã Hill Bản rõ Bản mã? Khóa? Phép mã hóa? Phép giải mã? 37 m ký tự rõ { p 1 , p 2 ,…,p m } m ký tự mã { c 1 , c 2 ,…,c m } Ma trận K mxm C = K * P mod 26 P = K -1 * C mod 26 ( K -1 * K mod 26 = I )

Chương 2 Hệ mã Hill Bản rõ Bản mã? Khóa? Phép mã hóa? Phép giải mã? 38 pay moremoney (15, 0, 24) LNS HDLEWMTRW     mod 26   = = LNS       mod 26   = = PAY  

Chương 2 Hệ mã Hill Ma trận nghịch đảo của ma trận vuông Điều kiện cần và đủ để ma trận vuông khả nghịch là det[A] ≠ 0. Khi đó là ma trận phụ hợp của A với   39 là phần bù đại số của phần từ của ma trận : định thức con  

Chương 2 Hệ mã Hill Ví dụ 40   0*2*4-0*1*3-0*2*(-1)-1*0*4 = -1   = = 1*(-1) - 4*0 = -1   = = 0*(-1) - 4*0 = 0              

Chương 2 Hệ mã Hill 41 P = thetargetisidentified m=2   C = ? K -1 = ?

Chương 2 Các hệ mã thay thế Chữ cái/bit của bản rõ được thay thế bởi chữ cái khác/số/ký hiệu/bit mã Hệ mã thay thế đơn biểu (monoalphabetic substitution cipher) Hệ mã Caesar Hệ mã thay thế đa biểu (polyalphabetic substitution cipher) Hệ mã Playfair Hệ mã Hill Hệ mã Vigenère 42 Hệ mã Vernam Hệ mã One-time pad

Chương 2 Hệ mã Vigenère 43 - Mỗi dòng của bảng Vigenere là một mã hóa đơn biểu . - Cả bảng mã Vigenere là mã hóa đa biểu .

Chương 2 Hệ mã Vigenère 44 Bản rõ: Bản mã : Khóa : Phép mã hóa : Phép giải mã : P = {p , p 1 , p 2 ,.., p n-1 } C = {c , c 1 , c 2 ,..,c n-1 } K = {k , k 1 , k 2 ,..,k m-1 } (m<n) c i = (p i + k i mod m ) mod 26 p i = (c i - k i mod m ) mod 26

Chương 2 Hệ mã Vigenère 45 Bản rõ: Bản mã : Khóa : Phép mã hóa : Phép giải mã : wea red iscove red saveyourself deceptive deceptivedeceptive c i = (p i + k i mod m ) mod 26 p i = (c i - k i mod m ) mod 26 ZIC VTW QNGRZG VTW AVZHCQYGLMGJ

Chương 2 Hệ mã Vigenère 46 Bản rõ: ? Bản mã : ? Khóa : ? Phép mã hóa : Phép giải mã : c i = (p i + k i mod m ) mod 26 p i = (c i - k i mod m ) mod 26

Chương 2 Các hệ mã thay thế Chữ cái/bit của bản rõ được thay thế bởi chữ cái khác/số/ký hiệu/bit mã Hệ mã thay thế đơn biểu (monoalphabetic substitution cipher) Hệ mã Caesar Hệ mã thay thế đa biểu (polyalphabetic substitution cipher) Hệ mã Playfair Hệ mã Hill Hệ mã Vigenère 47 Hệ mã Vernam Hệ mã One-time pad

Chương 2 Hệ mã Vernam Xử lý bít nhị phân (0,1) 48    

Chương 2 Các hệ mã thay thế Chữ cái/bit của bản rõ được thay thế bởi chữ cái khác/số/ký hiệu/bit mã Hệ mã thay thế đơn biểu (monoalphabetic substitution cipher) Hệ mã Caesar Hệ mã thay thế đa biểu (polyalphabetic substitution cipher) Hệ mã Playfair Hệ mã Hill Hệ mã Vigenère 49 Hệ mã Vernam Hệ mã One-time pad

Chương 2 Hệ mã One-time pad Khóa ngẫu nhiên, sử dụng một lần Bản mã được tạo ra không có bất kỳ mối quan hệ thống kê nào với bản rõ 50 P 1 = wewillmeetatthepartytonight C = BLWPOODEMJFBTZNVJNJQOJORGGU K 1 = FHWYKLVMKVKXCVKDJSFSAPXZCVP K 2 = IESRLKBWJFCIFZUCJLZXAXAAPSY P 2 = theydecidedtoattacktomorrow - Tạo khóa? - Quản lý và phân phối khóa?

Chương 2 Các hệ mã cổ điển Các hệ mã thay thế Các hệ mã chuyển vị 51

Chương 2 Mã chuyển vị 52 P = attackpostponeduntilthisnoon C = AODHTSUITTNSAPTNCOIOKNLOPETN C = APTNKNLOPETNAODHTTNSTSUICOIO

Chương 2 C ác khái niệm cơ sở Các h ệ m ã khóa đối xứng (khóa bí mật) Sơ đồ khối chung Các hệ mã cổ điển Mã khối và DES Hệ mã AES Các chế độ sử dụng mã khối 53

Chương 2 Mã khối và DES Cấu trúc mã khối truyền thống Mã dòng và mã khối Hệ mã DES Các nguyên tắc thiết kế mã khối 54

Chương 2 Mã khối và DES Cấu trúc mã khối truyền thống Mã dòng và mã khối Hệ mã DES Các nguyên tắc thiết kế mã khối 55

Chương 2 Cấu trúc mã khối truyền thống Mã dòng – Stream cipher Bản rõ: Bản mã Khóa: Phép mã hóa : Phép giải mã : 56 P = {p , p 1 , p 2 ,.., p n-1 } C= {c , c 1 , c 2 ,..,c n-1 } S= {s , s 1 , s 2 ,..,s n-1 } S = StreamCipher(K) C = P   P = C   A5/1 RC4

Chương 2 Cấu trúc mã khối truyền thống Mã khối 57

Chương 2 Cấu trúc mã khối truyền thống Mã khối Mã hóa Giải mã 58 c i = p i i   p i = c i i   Known Plaintext (Choosen-Plaintext) Attack P = 1111 0000 0011 K = 0101 0101 0101 C = 1010 0101 0110 Ví dụ:

Chương 2 Cấu trúc mã khối truyền thống Mã khối 59 SP N : Substitution-Permutation Network - Tính khuếch tán ( diffusion) : S+P 1 bít rõ tác động tới tất cả các bít mã. giảm tối đa liên quan rõ-mã => ngăn tìm ra khóa - Tính gây lẫn ( confusion) : S Làm phức tạp hóa mối quan hệ mã-khóa => ngăn tìm ra khóa

Chương 2 Cấu trúc mã khối truyền thống Hệ mã Feistel 60 P  C 1  C 2  C 3 …  C n K 1 K 2 K n K 3 Bản rõ P và các bản mã C i được chia thành nửa trái và nửa phải: P = (L , R ) = ( , ) = 1, 2, …n   là một khóa con cho vòng thứ được sinh ra từ khóa K   Mã hóa :   Giải mã :  

Chương 2 Cấu trúc mã khối truyền thống Ví dụ mã Feistel Mã hóa Giả sử tại vòng mã hóa 14 ta có C 14 = DE7F03A6 => LE 14 = DE7F và RE 14 c K 15 = 12DE52 Sau vòng 15 ta có LE 15 = 03A6 RE 15 = LE 14 DE7F F(03A6, 12DE52)   61 Mã hóa :  

Chương 2 Cấu trúc mã khối truyền thống Ví dụ mã Feistel Giải mã Giả sử LD 1 = RE 15 và RD 1 = LE 15 = 03A6 Cần chứng minh LD 2 = RE 14 và RD 2 = LE 14 LD 1 = F(03A6, 12DE52) DE7F Và RD 1 = 03A6 => LD 2 = 03A6 = RE 14 và RD 2 = F(03A6,12DE52) [F(03A6, 12DE52) DE7F] = DE7F = LE 14   62 Giải mã :  

Chương 2 Cấu trúc mã khối truyền thống Hệ mã Feistel 63 1. Kích cỡ khối : 128 bít 2 . Kích cỡ khóa : 128 bít 3 . Số vòng : 16 vòng 4 . Thuật toán sinh khóa K i 5 . Hàm F

Chương 2 Cấu trúc mã khối truyền thống Hệ mã Feistel Các mã khối hiện đại đều dựa trên cơ sở mã Feistel. Hàm F thực hiện phép thay thế, không cần khả nghịch, do đó mã hóa/giải mã đều dùng chiều thuận của hàm F. Hàm F và thuật toán sinh khóa con càng phức tạp thì càng khó phá mã. Với các hàm F và thuật toán sinh khóa con khác nhau sẽ có các phương pháp mã hóa khác nhau. 64

Chương 2 Mã khối và DES Cấu trúc mã khối truyền thống Mã dòng và mã khối Hệ mã DES Các nguyên tắc thiết kế mã khối 65

Chương 2 Hệ mã DES 66 P, C: khối 64 bít K : - Khóa chính: 56 bít. - Mỗi vòng dùng khóa con 48 bít được trích ra từ khóa chính. - Có 16 vòng; 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ị kết thúc sau vòng 16 Mã hóa – giải mã???

Chương 2 Hệ mã DES Mã hóa – giải mã Hoán vị khởi tạo và hoán vị kết thúc 16 vòng DES Thuật toán sinh khóa con 67

Chương 2 Hệ mã DES Mã hóa – giải mã Hoán vị khởi tạo và hoán vị kết thúc 68

Chương 2 Hệ mã DES Mã hóa – giải mã 16 vòng DES 69 = P-box ( S-boxes ( Expand ( , ))   - Expand : mở rộng và hoán vị R i-1 từ 32 lên 48 b it - Sboxes : nén 48 thành 32 bit - P-box : hoán vị 32 b i t

Chương 2 Hệ mã DES Mã hóa – giải mã Thuật toán sinh khóa con 70 64 bít thành 56 bít 56 bít chia thành 2 nửa 28 bít Tại vòng thứ i (i = 1, 2, 3,…,16), KL i-1 và KR i-1 được dịch vòng trái bít thành KL i và KR i , với r i được xác định như sau :   Hoán vị và nén 56 bít của KL i và KR i thành 48 bít

Chương 2 Hệ mã DES 71 Key Size (bits) Number of Alternative Keys Time Required at 10 9 Decryptions/s Time Required at 1013 Decryptions/s 56 (DES) 2 56 = 7.2 x 10 16 1.125 years 1 hour 168 (3DES) 2 168 = 3.7 x 10 50 5.8 x 10 33 years 5.8 x 10 29 years Deep Crack 7/1998 TripleDES 1999 AES 26/5/2002

Chương 2 Mã khối và DES Cấu trúc mã khối truyền thống Mã dòng và mã khối Hệ mã DES Các nguyên tắc thiết kế mã khối 72

Chương 2 Các nguyên tắc thiết kế mã khối Số vòng (number of rounds) Số vòng càng lớn thì thám mã càng khó khăn hơn, ngay khi hàm F tương đối yếu. Hàm F F là hàm phi tuyến, càng phi tuyến càng khó thám mã Một thay đổi của một bit đầu vào sẽ tạo ra sự thay đổi ở nhiều bit đầu ra. C ác bit đầu ra nên thay đổi độc lập khi có b it đầu vào duy nhất bị đảo. Tạo khóa (key scheduling) Khó đoán các khóa con và khóa chính Đảm bảo 2 tiêu chí khóa/bản mã 73

Chương 2 C ác khái niệm cơ sở Các h ệ m ã khóa đối xứng (khóa bí mật) Sơ đồ khối chung Các hệ mã cổ điển Mã khối và DES Hệ mã AES Các chế độ sử dụng mã khối 74

Chương 2 Hệ mã AES Bản rõ Các khối rõ 128 bít hay 16 bytes được biểu diễn dưới dạng các ma trận vuông 4x4 (bytes) hay gọi là mảng trạng thái (state) Dữ liệu đầu vào được đọc vào ma trận state theo từng cột, theo thứ tự từ trên xuống dưới, từ trái qua phải. Dữ liệu đầu ra được đọc từ ma trận cũng theo quy tắc trên.

Chương 2 Hệ mã AES Bản mã Các khối rõ 128 bít hay 16 bytes dưới dạng các ma trận vuông 4x4 (bytes) Khóa 128, 192, 256 b it hay 16, 24, 32 bytes 76   = 4, 6, 8 tùy theo khóa 128, 192, 256  

Chương 2 Hệ mã AES Mã hóa/giải mã 77

Chương 2 Hệ mã AES Mã hóa 78 Pre-round transformation Round 1 (4 transformations) Round 2 (4 transformations) … Round (3 transformations)   128-bit paintext Key expansion Round keys (128 bits)         Cipher key (128, 192, 256 bits) R Key size 10 128 12 192 14 256 Quan hệ giữa số vòng và kích cỡ khóa 128-bit ciphertext Round 0 SubBytes Shiftrows Mixcolumns Addroundkey Add round key SubBytes Shift rows Add round key

Chương 2 Hệ mã AES Giải mã 79 Inverse subbytes Inverse shiftrows Inverse mixcols Addroundkey

Chương 2 Hệ mã AES SubBytes Shiftrows Mixcolumns Addroundkey 80

Chương 2 Hệ mã AES SubBytes Shiftrows Mixcolumns Addroundkey 81

Chương 2 Hệ mã AES SubBytes Mã hóa 82 Input Output

Chương 2 Hệ mã AES SubBytes Mã hóa: S_box 83 Ma trận 16x16 bytes {95} => {2A}

Chương 2 Hệ mã AES SubBytes Giải mã: S_box 84 Ma trận 16x16 bytes {2A} => {95}

Chương 2 Hệ mã AES SubBytes Ví dụ mã hóa 85

Chương 2 Hệ mã AES Tạo S-box mã hóa B1: Khởi tạo S-box với các giá trị byte tăng dần theo hàng => Giá trị byte ở hàng y , cột x là {yx} 86 1 2 3 4 5 6 7 8 9 A B C D E F 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 1 10 11 12 13 15 15 16 17 18 19 1A 1B 1C 1D 1E 1F 2 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F …. F F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF

Chương 2 Hệ mã AES Tạo S-box mã hóa B2: Ánh xạ từng byte trong S-box thành giá trị nghịch đảo của nó trong trường hữu hạn GF(2 8 ) Giá trị {00} ánh xạ thành chính nó 87

Chương 2 Hệ mã AES Tạo S-box mã hóa B3: Biến đổi Affine các giá trị nghịch đảo ở B2 88

Chương 2 Hệ mã AES Tạo S-box mã hóa Ví dụ Đầu vào: {95} Nghịch đảo trong GF(2 8 ) của {95}: {8A} = 10001010 Biến đổi affine của {8A} = {2A} 89

Chương 2 Hệ mã AES Tạo S-box giải mã (Inverse S-box) 90 {2A} => {95}

Chương 2 Hệ mã AES Tạo S-box giải mã (Inverse S-box) B1: Khởi tạo S-box với các giá trị byte tăng dần theo hàng => Giá trị byte ở hàng y , cột x là {yx} B2: Ánh xạ từng byte trong S-box thành giá trị nghịch đảo của nó trong trường hữu hạn GF(2 8 ) B3: Biến đổi ngược của B3 trong S-box mã hóa 91

Chương 2 Hệ mã AES Tạo S-box giải mã (Inverse S-box) B3: Biến đổi ngược của B3 trong S-box mã hóa 92

Chương 2 Hệ mã AES S-box Được thiết kế để chống lại known cryptanalytic attacks Tương quan giữa các bit đầu vào và đầu ra là nhỏ  đầu ra không là hàm tuyến tính của đầu vào. Tính phi tuyến là do sử dụng phép nghịch đảo. 93

Hệ mã AES Trường hữu hạn GF(2 8 ) Gồm 256 phần tử Các phép toán được sử dụng là phép cộng, nhân đa thức với hệ số theo mod 2 Biểu diễn một số nguyên a dưới dạng đa thức trong trường GF(2 8 ) , sẽ tương đương với đa thức có dạng:   Chương 2 94

Hệ mã AES Trường hữu hạn GF(2 8 ) Phép cộng đa thức ( Phép nhân ( Đa thức tối giản   Chương 2 95

Hệ mã AES Trường hữu hạn GF(2 8 ) Ví dụ thực hiện phép cộng và phép nhân {57} và {83} trong GF(2 8 ) {57} = 0101.0111  {83} = 1000.0011  {57} + {83} = + = + + = 1101.0100 = {D4}   Chương 2 96

Hệ mã AES Trường hữu hạn GF(2 8 ) Ví dụ thực hiện phép cộng và phép nhân {57} và {83} trong GF(2 8 ) {57} = 0101.0111  {83} = 1000.0011  {57} {83} = ( = + + + + = + + + {57} {83} = + + + ) ) = +   Chương 2 97

Hệ mã AES Trường hữu hạn GF(2 8 ) Ví dụ thực hiện phép cộng và phép nhân {57} và {83} trong GF(2 8 ) {57} {83} = + + + ) ) = + = 1100.0001 = {C1}   Chương 2 98

Chương 2 Hệ mã AES SubBytes Shiftrows Mixcolumns Addroundkey 99

Chương 2 Hệ mã AES Shiftrows cho mã hóa: Dịch trái Inverse Shift rows: 100 Dòng 1: giữ nguyên Dòng 2: dịch trái 1 byte Dòng 3: dịch trái 2 byte Dòng 4: dịch trái 3 byte Dòng 1: giữ nguyên Dòng 2: dịch phải 1 byte Dòng 3: dịch phải 2 byte Dòng 4: dịch phải 3 byte Xáo trộn các byte để tạo các cột khác nhau trước khi sử dụng cột cho MixColumns.

Chương 2 Hệ mã AES Shiftrows cho mã hóa Ví dụ 101

Chương 2 Hệ mã AES SubBytes Shiftrows Mixcolumns Addroundkey 102

Hệ mã AES Mixcolumns Ví dụ: = {47}   Chương 2 103

Chương 2 Hệ mã AES Inverse Mixcolumns 104 Ví dụ: = {87}  

Chương 2 Hệ mã AES Ý nghĩa của Mixcolumns Làm cho mỗi byte trong cột kết quả đều phụ thuộc vào bốn byte trong cột ban đầu. MixColumns kết hợp với ShiftRows đảm bảo sau một vài vòng biến đổi, 128 bit trong kết quả đều phụ thuộc vào tất cả 128 bit ban đầu  tính khuếch tán (diffusion) 105

Chương 2 Hệ mã AES SubBytes Shiftrows Mixcolumns Addroundkey 106

Chương 2 Hệ mã AES Addroundkey Inverser Addroundkey 107 State ⊕ = round key

Chương 2 Hệ mã AES SubBytes State matrix ShiftRows MixColumns AddRoundKey Round key State matrix MixColumns matrix Các biến đổi trong một vòng

Chương 2 Hệ mã AES Mở rộng khóa (ExpandKey) Tạo N+1 khóa vòng từ khóa chính K Mỗi khóa vòng gồm N k từ 32 bit (với AES thì N k =4) Các phép biến đổi để tạo khóa vòng trong ExpandKey là khác nhau đối với các kích thước khóa K khác nhau 109

Chương 2 Hệ mã AES Mở rộng khóa (ExpandKey) Khóa chính K = 128 bít  16 bytes  4 words Số vòng: 11 vòng (1 vòng khởi tạo + 10 vòng chính) Sinh ra một mảng khóa vòng là 11x4 = 44 words hay 176 bytes. 44 words này được sử dụng cho 11 vòng mã hóa/giải mã của AES. Mỗi khóa vòng gồm 4 words 110

Chương 2 Hệ mã AES Mở rộng khóa 111         g         1. RotWord Dịch trái 1 byte của word Input word [ ] => [ ] 2. SubWord Phép thế dùng S-box [ ] => [ ] 3. Các kết quả của (1) và (2) XOR với Rcon[j] (Rcon tại vòng thứ j)   j 1 2 3 4 5 6 7 8 9 10 RC[j] 01 02 04 08 10 20 40 80 1B 36 RC[j] = 2  

Chương 2 Hệ mã AES Mở rộng khóa 112

Chương 2 Hệ mã AES Ví dụ Khóa vòng ở vòng 8: EA D2 73 21 B5 8D BA D2 31 2B F5 60 7F 8D 29 2F Cột đầu tiên của khóa vòng ở vòng 9: 113

Chương 2 Hệ mã AES Mục đích ExpandKey Chống lại known-plaintext attack Biết một số bit của khóa hay khóa con cũng không thể tính các bit còn lại. Không thể tính ngược: biết một khóa con cũng không thể tính lại các khóa con trước đó. Tính khuếch tán: một bit của khóa chính tác động lên tất cả các bit của các khóa con. 114

Chương 2 Chương 2 115

Chương 2 Hệ mã AES Ví dụ 116 Round 0

Chương 2 Hệ mã AES Ví dụ 117 Round 0 Round 1

Chương 2 Hệ mã AES Ví dụ 118 Round 1 Round 2

Chương 2 Hệ mã AES Ví dụ 119 Round 2 Round 3

Chương 2 Hệ mã AES Ví dụ 120 Round 3 Round 4

Chương 2 Hệ mã AES Ví dụ 121 Round 4 Round 5

Chương 2 Hệ mã AES Ví dụ 122 Round 5 Round 6

Chương 2 Hệ mã AES Ví dụ 123 Round 6 Round 7

Chương 2 Hệ mã AES Ví dụ 124 Round 7 Round 8

Chương 2 Hệ mã AES Ví dụ 125 Round 8 Round 9

Chương 2 Hệ mã AES Ví dụ 126 Round 9 Round 10

Chương 2 Hệ mã AES Ví dụ 127 Round 10 Bản mã

Chương 2 C ác khái niệm cơ sở Các h ệ m ã khóa đối xứng (khóa bí mật) Sơ đồ khối chung Các hệ mã cổ điển Mã khối và DES Hệ mã AES Các chế độ sử dụng mã khối 128

Chương 2 129 Các chế độ sử dụng mã khối K ỹ thuật nâng cao hiệu quả thuật toán mật mã hoặc điều chỉnh thuật toán cho phù hợp với một ứng dụng cụ thể 5 chế độ sử dụng mã khối ECB - Electronic codebook mode CBC - Cipher block chaining mode CFB - Cipher Feedback mode OFB - Output feedback mode CTR - Counter mode Chuyển mã khối sang mã dòng

Chương 2 130 Các chế độ sử dụng mã khối ECB - Electronic codebook mode Bản rõ : p 1 , p 2 ,..,p i Bản mã : c 1 , c 2 ,..,c i K dùng chung Mã hóa: m ỗi khối rõ được mã hóa độc lập c i = E K (p i ) Decryption: p i = D K (c i ) Nhược điểm Nếu khối rõ giống nhau sẽ tạo ra khối mã giống nhau Có thể tìm ra khối rõ từ khối mã nếu mã hóa lặp đi lặp lại khối rõ. Ứng dụng Truyền tin với dung lượng nhỏ (khóa mã h óa tạm thời)

Chương 2 131 Các chế độ sử dụng mã khối CBC - Cipher block chaining mode The plaintext : p 1 , p 2 , ..., p N The ciphertext : c 1 , c 2 , ..., c N Encryption: Decryption K dùng chung C i = E K (C i-1 P i )   C = IV (initial vector) P i = C i-1 D K (C i )  

Chương 2 Các chế độ sử dụng mã khối CBC - Cipher block chaining mode Vector khởi tạo IV 2 đầu gửi, nhận phải biết IV tuy nhiên đối phương không thể đoán được IV Để đảm bảo an toàn nhất có thể, IV cần được bảo vệ trước những thay đổi trái phép, ví dụ sử dụng ECB để gửi IV tới hai đầu gửi nhận tin Để IV khó đoán ta có thể sử dụng Nonce: khối bit dữ liệu sử dụng một lần duy nhất cho mỗi phép mã hóa. Ví dụ: counter, timestamp, message number Tạo khối dữ liệu ngẫu nhiên sử dụng bộ tạo số ngẫu nhiên (random number generator) 132

Chương 2 Các chế độ sử dụng mã khối CBC - Cipher block chaining mode Thích hợp sử dụng để mã hóa các thông điệp có độ dài > b bit Ngoài việc sử dụng để đạt được tính bí mật, CBC còn dùng để xác thực . 133

Chương 2 Các chế độ sử dụng mã khối Cipher Feedback (CFB) Mode Bản rõ: chia thành các đoạn s bits: P 1 , P 2 , P 3 ,.., P N Bản mã: C 1 , C 2 , C 3 ,.., C N Mã hóa: C i = P i MSB s [ E (K, IV)] Đầu vào của hàm mã hóa là thanh ghi dịch b bít được khởi tạo với IV. s bít bên trái của đầu ra của hàm mã hóa được XOR với phân đoạn đầu tiên của bản rõ P1 để tạo đơn vị mã đầu tiên C1. C ác giá trị của thanh ghi dịch được dịch trái s bít, và C1 được thay thế bởi s bít phải nhất của thanh ghi dịch này. Lặp lại các bước trên đến khi mã hóa hết các phần tử của bản rõ. Giải mã : P i = C i MSB s [ E (K, IV)]   134

Chương 2 Các chế độ sử dụng mã khối Cipher Feedback (CFB) Mode 135 Mã hóa : C i = P i MSB s [ E (K, IV)]  

Chương 2 Các chế độ sử dụng mã khối Cipher Feedback (CFB) Mode 136 Gi ải mã : P i = C i MSB s [ E (K, IV)]  

Chương 2 Các chế độ sử dụng mã khối Output Feedback – OFB 137 Bản rõ: chia thành các đoạn b bits: P 1 , P 2 , P 3 ,.., P N Bản mã : C 1 , C 2 , C 3 ,.., C N Mã hóa : -1  

Chương 2 Các chế độ sử dụng mã khối Output Feedback – OFB 138 Bản rõ: chia thành các đoạn b bits: P 1 , P 2 , P 3 ,.., P N Bản mã : C 1 , C 2 , C 3 ,.., C N Gi ải mã : -1  

Chương 2 Các chế độ sử dụng mã khối Output Feedback – OFB Ưu điểm Vector khởi tạo là Nonce L ỗi bit trong quá trình truyền không lan truyền N ếu một lỗi bit xảy ra ở C1 thì chỉ giá trị P1 bị ảnh hưởng; các giá trị P tiếp theo không bị ảnh hưởng . Nhược điểm Dễ bị tấn công thay đổi nội dung tin hơn CFB 139

Chương 2 Các chế độ sử dụng mã khối Counter Mode (CTR) 140 Bản rõ : Bản mã: Khóa : Mã hóa:   - - - ( ) -  

Chương 2 Các chế độ sử dụng mã khối Counter Mode (CTR) 141 Bản rõ: Bản mã: Khóa : Giải mã:   - - - ( ) -  

Chương 2 Các chế độ sử dụng mã khối Counter Mode (CTR) Ưu điểm Hiệu quả về phần cứng Hiệu quả về phần mềm Tiền xử lý Truy cập ngẫu nhiên An toàn Đơn giản 142
Tags