Bài giảng An toàn hệ thống thông tin - Chương 2: Symmetric ciphers (Mã hóa đối xứng) - Nguyễn Thị Hạnh

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  
( Cryptography and Network Security: Principles and  
Practices (3rd Ed.) – Chapter 2, 3, 5, 6)  
Nguyễn Thị Hạnh  
2
1
07/01/2018  
1. Mã cổ điển (Classical Encryption)  
1.1 Khái niệm về Mã đối xứng (Symmetric Cipher)  
1.2 Một số mã đối xứng nổi tiếng  
Nguyễn Thị Hạnh  
3
1.1 Khái niệm mã đối xứng  
˗ Mô hình mã hóa đối xứng  
Nguyễn Thị Hạnh  
4
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  
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)  
Nguyễn Thị Hạnh  
5
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.  
˗ Người gửi/Người nhận (Sender/recipient): Người  
gửi/Người nhận dữ liệu  
Nguyễn Thị Hạnh  
6
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:  
° 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.  
° 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.  
Nguyễn Thị Hạnh  
8
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õ  
đượ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).  
Nguyễn Thị Hạnh  
9
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.  
° 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)  
° 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)  
Nguyễn Thị Hạnh  
10  
5
07/01/2018  
Kỹ thuật mã hóa (Cryptography)  
˗ Cách mà bản rõ được xử lý:  
° 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.  
° 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.  
Nguyễn Thị Hạnh  
11  
Phá mã (Cryptanalysis)  
˗ Hai cách tiếp cận tấn công mã đối xứng:  
° 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.  
° Tấn công vén cạn (Brute-force attack): Kẻ tấn  
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.  
Nguyễn Thị Hạnh  
12  
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ã  
° Biết thuật toán và bản mã ‰ xác định bản rõ.  
° Biết thuật toán, biết được bản mã/bản rõ ‰ tìm  
khóa.  
° Chọn bản rõ và nhận được bản mã, biết thuật toán  
‰ tìm khóa.  
° Chọn bản mã và có được bản rõ tương ứng, biết  
thuật toán ‰ tìm khóa  
Nguyễn Thị Hạnh  
13  
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  
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õ.  
Nguyễn Thị Hạnh  
14  
7
07/01/2018  
Vét cạn (Brute-force)  
˗ Thời gian trung bình cần để tìm kiếm toàn bộ  
Nguyễn Thị Hạnh  
15  
1.2 Một số mã đối xứng nổi tiếng  
˗ Một số mã áp dụng phép thay thế:  
° Mã Caesar (Caesar Cipher)  
° Mã hóa đơn bản (Monoalphabetic Ciphers)  
° Mã Playfair (Playfair Cipher)  
° Mã One-Time Pad (OTP)  
˗ Một số mã áp dụng phép hoán vị  
Nguyễn Thị Hạnh  
16  
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  
sau nó k vị trí trong bảng chữ cái. Giả sử chọn k=3,  
ta có bảng chuyển đổi:  
° 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  
° 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  
C
˗ Ví dụ:  
° Bản rõ: meet me after the toga party  
° Bản mã: PHHW PH DIWHU WKH WRJD SDUWB  
Nguyễn Thị Hạnh  
17  
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:  
đó:  
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  
˗ k được gọi là khóa.  
˗ Hiện nay, mã Ceasar không được xem là an toàn.  
Nguyễn Thị Hạnh  
18  
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.  
˗ 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  
Nguyễn Thị Hạnh  
19  
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 ‰ 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).  
˗ ‰ phương pháp này được xem là một phương pháp  
mã hóa an toàn trong suốt 1000 năm sau công  
nguyên.  
Nguyễn Thị Hạnh  
20  
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:  
° Trong ngôn ngữ tiếng Anh, tần suất sử dụng của  
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.  
° 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ã.  
Nguyễn Thị Hạnh  
21  
1.2.2 Monoalphabetic Ciphers  
Tần suất của chữ tiếng anh  
Nguyễn Thị Hạnh  
22  
11  
07/01/2018  
Ví dụ khám mã  
˗ Cho bản mã:  
˗ Đế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”  
Nguyễn Thị Hạnh  
23  
Ví dụ khám mã  
Suy luận tiếp tục ta có được bản rõ  
Nguyễn Thị Hạnh  
24  
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  
˗ 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.  
Nguyễn Thị Hạnh  
25  
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)  
˗ 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 ô  
Nguyễn Thị Hạnh  
26  
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”.  
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”  
Nguyễn Thị Hạnh  
27  
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  
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”  
Nguyễn Thị Hạnh  
28  
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ự.  
‰ 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  
trăm chữ, vì bản mã vẫn còn chứa nhiều cấu trúc của  
bản rõ.  
Nguyễn Thị Hạnh  
29  
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”  
° Bản tin P: wearediscoveredsaveyourself  
° Khóa K1: FHWYKLVMKVKXCVKDJSFSAPXZCVP  
° Bản mã C: LWPOODEMJFBTZNVJNJQOJORGGU  
° Dùng K1 để giải mã thì ta được:  
“wearediscoveredsaveyourself”  
Nguyễn Thị Hạnh  
30  
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:  
° Bản mã C: LWPOODEMJFBTZNVJNJQOJORGGU  
° Khóa K2: IESRLKBWJFCIFZUCJLZXAXAAPSY  
° Bản giải mã: theydecidedtoattacktomorrow  
(they decided to attack tomorrow)  
˗Trường hợp 2:  
° Bản mã C: LWPOODEMJFBTZNVJNJQOJORGGU  
° Khóa K3: FHAHDDRAIQFIASJGJWQSVVBJAZB  
° Bản giải mã: wewillmeetatthepartytonight  
(we will meet at the party tonight)  
Nguyễn Thị Hạnh  
31  
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.  
˗ Đơn giản nhất của mã hóa kiểu này là mã rail fence  
cipher  
Nguyễn Thị Hạnh  
32  
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  
° 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  
° Cho bản mã  
MEMATRHTGPRYETEFETEOAAT  
Nguyễn Thị Hạnh  
33  
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ị.  
˗ 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.  
Nguyễn Thị Hạnh  
34  
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.  
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)  
Nguyễn Thị Hạnh  
35  
2. Mã dòng (Stream Block) và Mã  
khối (Block Ciphers)  
2.1 Khái niệm  
2.2 Mã Feistel (Feistel Cipher)  
Nguyễn Thị Hạnh  
36  
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.  
˗ 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.  
Nguyễn Thị Hạnh  
37  
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:  
P = (L0, R0) ;Ci = (Li, Ri) i = 1, 2, …n  
Nguyễn Thị Hạnh  
39  
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)  
°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 ‰ K1 ‰ K2 ‰ … ‰  
Kn  
°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:  
C = Cn = (Ln, Rn)  
Nguyễn Thị Hạnh  
40  
20  
Tải về để xem bản đầy đủ
pdf 34 trang baolam 20220 Free
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng An toàn hệ thống thông tin - Chương 2: Symmetric ciphers (Mã hóa đối xứng) - Nguyễn Thị Hạnh", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfbai_giang_an_toan_he_thong_thong_tin_chuong_2_symmetric_ciph.pdf