Bài giảng An toàn và bảo mật thông tin

BỘ GIÁO DỤC VÀ ĐÀO TẠO  
TRƢỜNG ĐẠI HỌC NHA TRANG  
KHOA CÔNG NGHỆ THÔNG TIN  
----- -----  
BÀI GIẢNG  
AN TOÀN VÀ BẢO MẬT  
THÔNG TIN  
(Lưu hành nội bộ)  
Nha Trang, tháng 6 năm 2008  
1
BÀI GIẢNG  
AN TOÀN VÀ BẢO MẬT  
THÔNG TIN  
Biên soạn: Trần Minh Văn  
(Tài liệu tham khảo chính: Cryptography and Network Security Principles and Practices,  
4th Edition William Stallings Prentice Hall 2005)  
2
MỤC LỤC  
3
4
5
9.3 Số học đa thức và trường hữu hạn GF(2n)...........................................................132  
9.3.2 Đa thức định nghĩa trên tập Zp .....................................................................133  
9.3.4 Trường hữu hạn GF(2n)................................................................................134  
9.3.5 Ứng dụng GF(2n) trong mã hóa ...................................................................136  
9.3.6 Tính toán trong GF(2n).................................................................................137  
10.2 Đường cong Elliptic trên trường Zp. ...................................................................152  
6
10.3 Đường cong Elliptic trên trường GF(2m). ........................................................... 155  
7
CHƢƠNG 1. GIỚI THIỆU VỀ AN TOÀN VÀ BẢO MẬT THÔNG TIN  
1.1 Giới thiệu  
Trước đây khi công nghệ máy tính chưa phát triển, khi nói đến vấn đề an toàn bảo  
mật thông tin (Information Security), chúng ta thường hay nghĩ đến các biện pháp nhằm  
đảm bảo cho thông tin được trao đổi hay cất giữ một cách an toàn và bí mật. Chẳng hạn là  
các biện pháp như:  
Đóng dấu và ký niêm phong một bức thư để biết rằng lá thư có được chuyển  
nguyên vẹn đến người nhận hay không.  
Dùng mật mã mã hóa thông điệp để chỉ có người gửi và người nhận hiểu được  
thông điệp. Phương pháp này thường được sử dụng trong chính trị và quân sự  
(xem chương 2).  
Lưu giữ tài liệu mật trong các két sắt có khóa, tại các nơi được bảo vệ nghiêm  
ngặt, chỉ có những người được cấp quyền mới có thể xem tài liệu.  
Với sự phát triển mạnh mẽ của công nghệ thông tin, đặt biệt là sự phát triển của  
mạng Internet, ngày càng có nhiều thông tin được lưu giữ trên máy vi tính và gửi đi trên  
mạng Internet. Và do đó xuất hiện nhu cầu về an toàn và bảo mật thông tin trên máy tính.  
Có thể phân loại mô hình an toàn bảo mật thông tin trên máy tính theo hai hướng chính  
như sau:  
1) Bảo vệ thông tin trong quá trình truyền thông tin trên mạng (Network Security)  
2) Bảo vệ hệ thống máy tính, và mạng máy tính, khỏi sự xâm nhập phá hoại từ bên  
ngoài (System Security)  
Phần tiếp theo sau sẽ lần lượt trình bày các đặc điểm chính của hai mô hình trên.  
1.2 Bảo vệ thông tin trong quá trình truyền thông tin trên mạng  
1.2.1 Các loại hình tấn công  
Để xem xét những vấn đề bảo mật liên quan đến truyền thông trên mạng, chúng ta  
hãy lấy một bối cảnh sau: có ba nhân vật tên là Alice, Bob và Trudy, trong đó Alice và Bob  
thực hiện trao đổi thông tin với nhau, còn Trudy là kẻ xấu, đặt thiết bị can thiệp vào kênh  
truyền tin giữa Alice và Bob. Sau đây là các loại hành động tấn công của Trudy mà ảnh  
hưởng đến quá trình truyền tin giữa Alice và Bob:  
1) Xem trộm thông tin (Release of Message Content)  
Trong trường hợp này Trudy chặn các thông điệp Alice gửi cho Bob, và xem được  
nội dung của thông điệp.  
8
       
Trudy  
Đọc nội dung thông  
điệp của Alice  
Network  
Alice  
Bob  
Hình 1-1. Xem trộm thông điệp  
2) Thay đổi thông điệp (Modification of Message)  
Trudy chặn các thông điệp Alice gửi cho Bob và ngăn không cho các thông điệp này  
đến đích. Sau đó Trudy thay đổi nội dung của thông điệp và gửi tiếp cho Bob. Bob nghĩ  
rằng nhận được thông điệp nguyên bản ban đầu của Alice mà không biết rằng chúng đã bị  
sửa đổi.  
Trudy  
Sửa thông điệp của  
Alice gửi cho Bob  
Network  
Alice  
Bob  
Hình 1-2. Sửa thông điệp  
3) Mạo danh (Masquerade)  
Trong trường hợp này Trudy giả là Alice gửi thông điệp cho Bob. Bob không biết  
điều này và nghĩ rằng thông điệp là của Alice.  
Trudy  
Trudy giả là Alice gởi  
thông điệp cho Bob  
Network  
Alice  
Bob  
Hình 1-3. Mạo danh  
9
4) Phát lại thông điệp (Replay)  
Trudy sao chép lại thông điệp Alice gửi cho Bob. Sau đó một thời gian Trudy gửi  
bản sao chép này cho Bob. Bob tin rằng thông điệp thứ hai vẫn là từ Alice, nội dung hai  
thông điệp là giống nhau. Thoạt đầu có thể nghĩ rằng việc phát lại này là vô hại, tuy nhiên  
trong nhiều trường hợp cũng gây ra tác hại không kém so với việc giả mạo thông điệp. Xét  
tình huống sau: giả sử Bob là ngân hàng còn Alice là một khách hàng. Alice gửi thông điệp  
đề nghị Bob chuyển cho Trudy 1000$. Alice có áp dụng các biện pháp như chữ ký điện tử  
với mục đích không cho Trudy mạo danh cũng như sửa thông điệp. Tuy nhiên nếu Trudy  
sao chép và phát lại thông điệp thì các biện pháp bảo vệ này không có ý nghĩa. Bob tin  
rằng Alice gửi tiếp một thông điệp mới để chuyển thêm cho Trudy 1000$ nữa.  
Trudy  
Sao chép thông điệp của  
Alice và gửi lại sau cho Bob  
Network  
Alice  
Bob  
Hình 1-4. Phát lại thông điệp  
1.2.2 Yêu cầu của một hệ truyền thông tin an toàn và bảo mật  
Phần trên đã trình bày các hình thức tấn công, một hệ truyền tin được gọi là an toàn  
và bảo mật thì phải có khả năng chống lại được các hình thức tấn công trên. Như vậy hệ  
truyền tin phải có các đặt tính sau:  
1) Tính bảo mật (Confidentiality): Ngăn chặn được vấn đề xem trộm thông điệp.  
2) Tính chứng thực (Authentication): Nhằm đảm bảo cho Bob rằng thông điệp mà  
Bob nhận được thực sự được gửi đi từ Alice, và không bị thay đổi trong quá trình  
truyền tin. Như vậy tính chứng thực ngăn chặn các hình thức tấn công sửa thông  
điệp, mạo danh, và phát lại thông điệp.  
3) Tính không từ chối (Nonrepudiation): xét tình huống sau:  
Giả sử Bob là nhân viên môi giới chứng khoán của Alice. Alice gởi thông điệp yêu  
cầu Bob mua cổ phiếu của công ty Z. Ngày hôm sau, giá cổ phiếu công ty này giảm hơn  
50%. Thấy bị thiệt hại, Alice nói rằng Alice không gửi thông điệp nào cả và quy trách  
nhiệm cho Bob. Bob phải có cơ chế để xác định rằng chính Alice là người gởi mà Alice  
không thể từ chối trách nhiệm được.  
Khái niệm chữ ký trên giấy mà con người đang sử dụng ngày nay là một cơ chế để  
bảo đảm tính chứng thực và tính không từ chối. Và trong lĩnh vực máy tính, người ta cũng  
thiết lập một cơ chế như vậy, cơ chế này được gọi là chữ ký điện tử.  
10  
 
chuyển đổi  
liên quan đến  
an toàn  
chuyển đổi  
liên quan đến  
an toàn  
kênh thông tin  
Bên gửi  
thông tin  
bí mật  
thông tin  
bí mật  
Bên nhận  
Đối thủ  
Hình 1-5. Mô hình bảo mật truyền thông tin trên mạng  
1.2.3 Vai trò của mật mã trong việc bảo mật thông tin trên mạng  
Mật mã hay mã hóa dữ liệu (cryptography), là một công cụ cơ bản thiết yếu của bảo  
mật thông tin. Mật mã đáp ứng được các nhu cầu về tính bảo mật (confidentiality), tính  
chứng thực (authentication) và tính không từ chối (non-repudiation) của một hệ truyền tin.  
Tài liệu này trước tiên trình bày về mật mã cổ điển. Những hệ mật mã cổ điển này  
tuy ngày nay tuy ít được sử dụng, nhưng chúng thể hiện những nguyên lý cơ bản được ứng  
dụng trong mật mã hiện đại. Dựa trên nền tảng đó, chúng ta sẽ tìm hiểu về mã hóa đối  
xứng và mã hóa bất đối xứng, chúng đóng vai trò quan trọng trong mật mã hiện đại. Bên  
cạnh đó chúng ta cũng sẽ tìm hiểu về hàm Hash, cũng là một công cụ bảo mật quan trọng  
mà có nhiều ứng dụng lý thú, trong đó có chữ ký điện tử.  
Các chương 2, 3, 4, 5 sẽ lần lượt trình bày những nội dung liên quan đến mật mã.  
1.2.4 Các giao thức (protocol) thực hiện bảo mật.  
Sau khi tìm hiểu về mật mã, chúng ta sẽ tìm hiểu về cách ứng dụng chúng vào thực tế  
thông qua một số giao thức bảo mật phổ biến hiện nay là:  
Keberos: là giao thức dùng để chứng thực dựa trên mã hóa đối xứng.  
Chuẩn chứng thực X509: dùng trong mã hóa khóa công khai.  
Secure Socket Layer (SSL): là giao thức bảo mật Web, được sử dụng phổ biến  
trong Web và thương mại điện tử.  
PGP và S/MIME: bảo mật thư điện tử email.  
Mô hình lý thuyết và nội dung các giao thức trên được trình bày trong chương 6 và  
chương 7.  
1.3 Bảo vệ hệ thống khỏi sự xâm nhập phá hoại từ bên ngoài  
Ngày nay, khi mạng Internet đã kết nối các máy tính ở khắp nơi trên thế giới lại với  
nhau, thì vấn đề bảo vệ máy tính khỏi sự thâm nhập phá hoại từ bên ngoài là một điều cần  
thiết. Thông qua mạng Internet, các hacker có thể truy cập vào các máy tính trong một tổ  
chức (dùng telnet chẳng hạn), lấy trộm các dữ liệu quan trọng như mật khẩu, thẻ tín dụng,  
tài liệu… Hoặc đơn giản chỉ là phá hoại, gây trục trặc hệ thống mà tổ chức đó phải tốn  
nhiều chi phí để khôi phục lại tình trạng hoạt động bình thường.  
11  
     
Để thực hiện việc bảo vệ này, người ta dùng khái niệm “kiểm soát truy cập”  
(Access Control). Khái niệm kiểm soát truy cập này có hai yếu tố sau:  
Chứng thực truy cập (Authentication): xác nhận rằng đối tượng (con người hay  
chương trình máy tính) được cấp phép truy cập vào hệ thống. Ví dụ: để sử dụng  
máy tính thì trước tiên đối tượng phải logon vào máy tính bằng username và  
password. Ngoài ra, còn có các phương pháp chứng thực khác như sinh trắc học  
(dấu vân tay, mống mắt…) hay dùng thẻ (thẻ ATM…).  
Phân quyền (Authorization): các hành động được phép thực hiện sau khi đã truy  
cập vào hệ thống. Ví dụ: bạn được cấp username và password để logon vào hệ  
điều hành, tuy nhiên bạn chỉ được cấp quyền để đọc một file nào đó. Hoặc bạn chỉ  
có quyền đọc file mà không có quyền xóa file.  
Với nguyên tắc như vậy thì một máy tính hoặc một mạng máy tính được bảo vệ khỏi  
sự thâm nhập của các đối tượng không được phép. Tuy nhiên thực tế chúng ta vẫn nghe nói  
đến các vụ tấn công phá hoại. Để thực hiện điều đó, kẻ phá hoại tìm cách phá bỏ cơ chế  
Authentication và Authorization bằng các cách thức sau:  
Dùng các đoạn mã phá hoại (Malware): như virus, worm, trojan, backdoor…  
những đoạn mã độc này phát tán lan truyền từ máy tính này qua máy tính khác  
dựa trên sự bất cẩn của người sử dụng, hay dựa trên các lỗi của phần mềm. Lợi  
dụng các quyền được cấp cho người sử dụng (chẳng hạn rất nhiều người login vào  
máy tính với quyền administrator), các đoạn mã này thực hiện các lệnh phá hoại  
hoặc dò tìm password của quản trị hệ thống để gửi cho hacker, cài đặt các cổng  
hậu để hacker bên ngoài xâm nhập.  
Thực hiện các hành vi xâm phạm (Intrusion): việc thiết kế các phần mềm có nhiểu  
lỗ hổng, dẫn đến các hacker lợi dụng để thực hiện những lệnh phá hoại. Những  
lệnh này thường là không được phép đối với người bên ngoài, nhưng lỗ hổng của  
phần mềm dẫn đến được phép. Trong những trường hợp đặc biệt, lỗ hổng phần  
mềm cho phép thực hiện những lệnh phá hoại mà ngay cả người thiết kế chương  
trình không ngờ tới. Hoặc hacker có thể sử dụng các cổng hậu do các backdoor  
tạo ra để xâm nhập.  
Để khắc phục các hành động phá hoại này, người ta dùng các chương trình có chức  
năng gác cổng, phòng chống. Những chương trình này dò tìm virus hoặc dò tìm các hành  
vi xâm phạm đển ngăn chặn chúng, không cho chúng thực hiện hoặc xâm nhập. Đó là các  
chương trình chống virus, chương trình firewall… Ngoài ra các nhà phát triển phần mềm  
cần có quy trình xây dựng và kiểm lỗi phần mềm nhằm hạn chế tối đa những lỗ hổng bảo  
mật có thể có.  
12  
Hệ Thống Thông Tin  
- Các tài nguyên tính toán  
(bộ nhớ, chíp xử lý…)  
Kênh truy cập  
- Dữ liệu  
- Các tiến trình  
- Phần mềm  
Chức năng  
gác cổng  
- Các tài nguyên mạng  
Con người: hacker.  
Phần mềm: virus, worm…  
Hình 1-6.Mô hình phòng chống xâm nhập và phá hoại hệ thống  
Trong khuôn khổ của tài liệu này chỉ đề cập các nội dung về an toàn và bảo mật  
truyền tin trên mạng. Các bạn có thể tìm hiểu cụ thể hơn các nội dung liên quan đến bảo vệ  
chống xâm nhập trong [3].  
1.4 Câu hỏi ôn tập  
1) Nêu các hình thức tấn công trong quá trình truyền tin trên mạng.  
2) Bảo vệ thông tin trong quá trình truyền đi trên mạng là gì?  
3) Bảo vệ hệ thống khỏi sự tấn công bên ngoài là gì?  
13  
 
CHƢƠNG 2. MÃ HÓA ĐỐI XỨNG CĂN BẢN  
Trong chương này chúng ta sẽ tìm hiểu một số khái niệm cơ bản về phương pháp mã  
hóa đối xứng. Đây là phương pháp chủ yếu trong việc bảo đảm tính bảo mật  
(confidentiality) của một hệ truyền tin. Trước tiên, chúng ta sẽ tìm hiểu phương pháp mã  
hóa Ceasar và sau đó là mô hình tổng quát của phương pháp mã hóa đối xứng cùng một số  
tính chất liên quan. Phần còn lại của chương trình bày một số phương pháp mã hóa cổ điển  
phổ biến khác.  
2.1 Mã hóa Ceasar  
Thế kỷ thứ 3 trước công nguyên, nhà quân sự người La Mã Julius Ceasar đã nghĩ ra  
phương pháp mã hóa một bản tin như sau: thay thế mỗi chữ trong bản tin bằng chữ đứ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 như sau:  
Chữ ban đầu: 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  
Chữ thay thế: 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  
(sau Zsẽ vòng lại là A, do đó xA, yBvà zC)  
Giả sử có bản tin gốc (bản rõ):  
meet me after the toga party  
PHHW PH DIWHU WKH WRJD SDUWB  
Như vậy bản tin mã hóa (bản mã) sẽ là:  
Thay vì gửi trực tiếp bản rõ cho các cấp dưới, Ceasar gửi bản mã. Khi cấp dưới nhận  
được bản mã, tiến hành giải mã theo quy trình ngược lại để có được bản rõ. Như vậy nếu  
đối thủ của Ceasar có lấy được bản mã, thì cũng không hiểu được ý nghĩa của bản mã.  
Chúng ta hãy gán cho mỗi chữ cái một con số nguyên từ 0 đến 25:  
A
0
B
1
C
2
D
3
E
4
F
5
G
6
H
7
I
8
J
9
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25  
Phương pháp Ceasar được biểu diễn như sau: với mỗi chữ cái p thay bằng chữ mã  
hóa C, trong đó:  
C = (p + k) mod 26  
(trong đó mod là 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. Dĩ nhiên là Ceasar và cấp dưới phải cùng dùng chung một giá trị  
khóa k, nếu không bản tin giải mã sẽ không giống bản rõ ban đầu.  
Ngày nay phương pháp mã hóa của Ceasar không được xem là an toàn. Giả sử đối  
thủ của Ceasar có được bản mã PHHW PH DIWHU WKH WRJD SDUWB và biết được  
phương pháp mã hóa và giải mã là phép cộng trừ modulo 26. Đối thủ có thể thử tất cả 25  
trường hợp của k như sau:  
14  
   
KEY PHHW PH DIWHU WKH WRJD SDUWB  
1
2
3
4
5
6
7
8
9
oggv og chvgt vjg vqic rctva  
nffu nf bgufs uif uphb qbsuz  
meet me after the toga party  
ldds ld zesdq sgd snfz ozqsx  
kccr kc ydrcp rfc rmey nyprw  
jbbq jb xcqbo qeb qldx mxoqv  
iaap ia wbpan pda pkcw lwnpu  
hzzo hz vaozm ocz ojbv kvmot  
gyyn gy uznyl nby niau julns  
10 fxxm fx tymxk max mhzt itkmr  
11 ewwl ew sxlwj lzw lgys hsjlq  
12 dvvk dv rwkvi kyv kfxr grikp  
13 cuuj cu qvjuh jxu jewq fqhjo  
14 btti bt puitg iwt idvp epgin  
15 assh as othsf hvs hcuo dofhm  
16 zrrg zr nsgre gur gbtn cnegl  
17 yqqf yq mrfqd ftq fasm bmdfk  
18 xppe xp lqepc esp ezrl alcej  
19 wood wo kpdob dro dyqk zkbdi  
20 vnnc vn jocna cqn cxpj yjach  
21 ummb um inbmz bpm bwoi xizbg  
22 tlla tl hmaly aol avnh whyaf  
23 skkz sk glzkx znk zumg vgxze  
24 rjjy rj fkyjw ymj ytlf ufwyd  
25 qiix qi ejxiv xli xske tevxc  
Trong 25 trường hợp trên, chỉ có trường hợp k=3 thì bản giải mã tương ứng là có ý  
nghĩa. Do đó đối thủ có thể chắc chắn rằng „meet me after the toga party„ là bản  
rõ ban đầu.  
2.2 Mô hình mã hóa đối xứng (Symmetric Ciphers)  
Phương pháp Ceasar là phương pháp mã hóa đơn giản nhất của mã hóa đối xứng. Về  
mặt khái niệm, phương pháp mã hóa đối xứng tổng quát được biểu diễn bằng mô hình sau:  
bộ sinh khóa  
kênh an toàn  
K
kênh thường  
P
P
Mã hóa  
Giải mã  
nơi gởi  
nơi nhận  
C
̂
̂
 
 
Phá mã  
Hình 2-1. Mô hình mã hóa đối xứng  
Mô hình trên gồm 5 yếu tố:  
15  
 
Bản rõ P (plaintext)  
Thuật toán mã hóa E (encrypt algorithm)  
Khóa bí mật K (secret key)  
Bản mã C (ciphertext)  
Thuật toán giải mã D (decrypt algorithm)  
Trong đó:  
C = E (P, K)  
P = D (C, K)  
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 (trong mã hóa Ceasar, E là phép cộng còn D là phép trừ).  
Vì vậy mô hình trên được gọi là phương pháp mã hóa đối xứng.  
Bản mã C được gởi đi trên kênh truyền. Do bản mã C đã được biến đổi so với bản rõ  
P, cho nên những người thứ ba can thiệp vào kênh truyền để lấy được bản mã C, thì không  
hiểu được ý nghĩa của bản mã. Đây chính là đặc điểm quan trọng của mã hóa, cho phép  
đảm bảo tính bảo mật (confidentiality) của một hệ truyền tin đã đề cập trong chương 1.  
Một đặc tính quan trọng của mã hóa đối xứng là khóa phải được giữ bí mật giữa  
người gởi và người nhận, hay nói cách khác khóa phải được chuyển một cách an toàn từ  
người gởi đến người nhận. Có thể đặt ra câu hỏi là nếu đã có một kênh an toàn để chuyển  
khóa như vậy thì tại sao không dùng kênh đó để chuyển bản tin, tại sao cần đến chuyện mã  
hóa? Câu trả lời là nội dung bản tin thì có thể rất dài, còn khóa thì thường là ngắn. Ngoài ra  
một khóa còn có thể áp dụng để truyền tin nhiều lần. Do đó nếu chỉ chuyển khóa trên kênh  
an toàn thì đỡ tốn kém chi phí.  
Đặc tính quan trọng thứ hai của một hệ mã hóa đối xứng là tính an toàn của hệ mã.  
Như đã thấy ở phần mã hóa Ceasar, từ một bản mã có thể dễ dàng suy ra được bản rõ ban  
đầu mà không cần biết khóa bí mật. Hành động đi tìm bản rõ từ bản mã mà không cần  
khóa như vậy được gọi là hành động phá mã (cryptanalysis). Do đó một hệ mã hóa đối  
xứng được gọi là 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.  
Trong phương pháp Ceasar, lý do mà phương pháp này kém an toàn là ở chỗ khóa k  
chỉ có 25 giá trị, do đó kẻ phá mã có thể thử được hết tất cả các trường hợp của khóa rất  
nhanh chóng. Phương pháp tấn công này được gọi là phương pháp vét cạn khóa (brute-  
force attack). Chỉ cần nới rộng miền giá trị của khóa thì có thể tăng thời gian phá mã đến  
một mức độ được coi là bất khả thi. Bảng dưới đây liệt kê một số ví dụ về thời gian phá mã  
trung bình tương ứng với kích thước của khóa.  
Kích thƣớc khóa Số lƣợng khóa  
Thời gian thực hiện  
Thời gian thực hiện  
(tốc độ thử: 103 khóa/giây) (tốc độ thử: 109 khóa/giây)  
(bít)  
232 ≈ 4.3 x 109  
35.8 phút  
32  
2.15 mili giây  
10.01 giờ  
256 ≈ 7.2 x 1016  
1142 năm  
56  
2128 ≈ 3.4 x 1038  
128  
5.4 x 1024 năm  
5.4 x 1018 năm  
5.9 x 1030 năm  
6.4 x 106 năm  
168  
2
168 ≈ 3. 7 x 1050 5.9 x 1036 năm  
26! ≈ 4 x 1026 6.4 x 1012 năm  
hoán vị 26 ký tự  
16  
(tốc độ CPU hiện nay khoảng 3x109 Hz, tuổi vũ trụ vào khoảng ≈ 1010 năm)  
Bảng 2-1. Thời gian vét cạn khóa theo kích thước khóa  
Phần 2.3 sẽ trình bày phương pháp mã hóa đơn bảng, đây là phương pháp mà miền  
giá trị của khóa là 26!. Do đó mã hóa đơn bảng an toàn đối với phương pháp tấn công vét  
cạn trên khóa.  
Phần 2.6 trình bày phương pháp mã hóa One-Time Pad, phương pháp này có đặt tính  
là tồn tại rất nhiều khóa mà mỗi khóa khi đưa vào giải mã đều cho ra bản tin có ý nghĩa  
(phương pháp Ceasar chỉ tồn tại một khóa giải mã cho ra bản tin có ý nghĩa). Do đó việc  
vét cạn khóa không có ý nghĩa đối với mã hóa One-Time Pad. Về mặt lý thuyết, phương  
pháp này được chứng minh là an toàn tuyệt đối.  
Hiện nay, ngoài phương pháp One-Time Pad, người ta chưa tìm ra phương pháp mã  
hóa đối xứng an toàn tuyệt đối nào khác. Do đó chúng ta chấp nhận rằng một phương pháp  
mã hóa đối xứng là an toàn nếu phương pháp đó có điều kiện sau:  
Không tồn tại kỹ thuật tấn công tắt nào khác tốt hơn phương pháp vét cạn khóa  
Miền giá trị khóa đủ lớn để việc vét cạn khóa là bất khả thi.  
2.3 Mã hóa thay thế đơn bảng (Monoalphabetic Substitution Cipher)  
Xét lại phương pháp Ceasar với k=3:  
Chữ ban đầu: 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  
Chữ thay thế: 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  
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. Giả sử có hoán vị  
sau:  
Chữ ban đầu: 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  
Khóa  
: Z P B Y J R S K F L X Q N W V D H M G U T O I A E C  
Như vậy bản rõ  
meet me after the toga party  
NJJU NJ ZRUJM UKJ UVSZ DZMUE  
được mã hóa thành:  
Quá trình giải mã được tiến hành ngược lại để cho ra bản rõ ban đầu.  
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ế. Số lượng  
hoán vị của 26 chữ cái là 26!, đây cũng chính là số lượng khóa của phương pháp này. Vì  
26! là một con số khá lớn nên việc 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). Vì vậy mã hóa đơn bảng đã đượ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.  
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  
17  
 
đối với cụm 2 chữ cái (digram), cụm chữ TH được sử dụng nhiều nhất. Bảng sau thống kê  
tần suất sử dụng của các chữ cái, cụm 2 chữ, cụm 3 chữ (trigram) trong tiếng Anh:  
Chữ cái (%)  
Cụm 2 chữ (%)  
Cụm 3 chữ (%)  
Từ (%)  
6.42  
E
T
13.05  
TH  
IN  
3.16  
1.54  
1.33  
1.30  
1.08  
1.08  
1.02  
1.02  
1.02  
0.98  
0.88  
0.84  
0.84  
0.72  
0.71  
0.69  
0.68  
0.68  
0.67  
0.66  
0.64  
0.64  
0.59  
0.55  
0.55  
0.55  
THE  
ING  
AND  
ION  
ENT  
FOR  
TIO  
4.72  
1.42  
1.13  
1.00  
0.98  
0.76  
0.75  
0.69  
0.68  
0.66  
0.63  
0.62  
0.62  
0.59  
0.55  
0.54  
0.52  
0.50  
0.47  
0.46  
0.45  
0.45  
0.44  
0.44  
0.44  
0.44  
THE  
OF  
9.02  
8.21  
7.81  
7.28  
6.77  
6.64  
6.46  
5.85  
4.11  
3.60  
2.93  
2.88  
2.77  
2.62  
2.15  
1.51  
1.49  
1.39  
1.28  
1.00  
0.42  
0.30  
0.23  
0.14  
0.09  
4.02  
3.15  
2.36  
2.09  
1.77  
1.25  
1.03  
0.94  
0.93  
0.77  
0.76  
0.76  
0.72  
0.71  
0.71  
0.63  
0.61  
0.57  
0.56  
0.55  
0.55  
0.53  
0.50  
0.47  
0.45  
O
A
N
I
R
S
H
D
L
C
F
ER  
RE  
AN  
HE  
AR  
EN  
TI  
AND  
TO  
A
IN  
THAT  
IS  
ERE  
HER  
ATE  
VER  
TER  
THA  
ATI  
I
IT  
TE  
AT  
ON  
HA  
OU  
IT  
FOR  
AS  
WITH  
WAS  
HIS  
HE  
U
M
P
Y
W
G
B
V
K
X
J
HAT  
ERS  
HIS  
RES  
ILL  
ES  
ST  
OR  
NT  
HI  
BE  
NOT  
BY  
ARE  
CON  
NCE  
ALL  
EVE  
ITH  
BUT  
HAVE  
YOU  
WHICH  
ARE  
ON  
EA  
VE  
CO  
DE  
RA  
RO  
Q
Z
TED  
OR  
Bảng 2-2. Bảng liệt kê tần suất chữ cái tiếng Anh  
Phương pháp mã hóa đơn bảng ánh xạ một chữ cái trong bản rõ thành một chữ cái  
khác trong bản mã. Do đó các chữ cái trong bản mã cũng sẽ tuân theo luật phân bố tần suất  
trên. 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ã.  
Xét bản mã sau:  
UZQSOVUOHXMOPVGPOZPEVSGZWSZOPFPESXUDBMETSXAIZ  
VUEPHZHMDZSHZOWSFPAPPDTSVPQUZWYMXUZUHSX  
EPYEPOPDZSZUFPOMBZWPPDPTGUDTMOHMQ  
Số lần xuất hiện của các chữ cái là:  
A 2  
B 2  
C 0  
D 6  
E 6  
F 3  
G 3  
H 6  
I 1  
J 0  
K 0  
L 0  
M 7  
N 0  
O 9  
P 17  
U
V
W
X
Y
9
5
4
5
2
Q
R
3
0
S 10  
T
4
18  
Z 13  
Số lần xuất hiện của các digram (xuất hiện từ 2 lần trở lên) là:  
DT 2  
DZ 2  
EP 3  
FP 3  
HM 2  
HZ 2  
MO 2  
OH 2  
OP 3  
PD 3  
PE 2  
PO 3  
PP 2  
SX 3  
SZ 2  
TS 2  
UD 2  
UZ 3  
VU 2  
WS 2  
XU 2  
ZO 2  
ZS 2  
ZU 2  
ZW 3  
Do đó ta có thể đoán P là mã hóa của e, Z là mã hóa của t. Vì TH có tần suất cao nhất  
trong các digram nên trong 4 digram ZO, ZS, ZU, ZW có thể đoán ZW là th. Chú ý rằng  
trong dòng thứ nhất có cụm ZWSZ, nếu giả thiết rằng 4 chữ trên thuộc một từ thì từ đó có  
dạng th_t, từ đó có thể kết luận rằng S là mã hóa của a (vì từ THAT có tần suất xuất hiện  
cao). Như vậy đến bước này, ta đã phá mã được như sau:  
UZQSOVUOHXMOPVGPOZPEVSGZWSZOPFPESXUDBMETSXAIZ  
t a  
VUEPHZHMDZSHZOWSFPAPPDTSVPQUZWYMXUZUHSX  
e t ta t ha e ee a e th  
EPYEPOPDZSZUFPOMBZWPPDPTGUDTMOHMQ  
e e tat thee e  
e
e te a that e e a  
a
t
a
e
e
Cứ tiếp tục như vậy, dĩ nhiên việc thử không phải lúc nào cũng suôn sẻ, có những lúc  
phải thử và sai nhiều lần. Cuối cùng ta có được bản giải mã sau khi đã tách từ như sau:  
it was disclosed yesterday that several informal but  
direct contacts have been made with political  
representatives of the enemy in moscow  
Như vậy việc phá mã dựa trên tần suất chữ cái tốn thời gian ít hơn nhiều so với con  
số 6400 thiên niên kỷ. Lý do là ứng một chữ cái trong bản gốc thì cũng là một chữ cái  
trong bản mã nên vẫn bảo toàn quy tắc phân bố tần suất của các chữ cái. Để khắc phục  
điểm yếu này, có hai phương pháp. Phương pháp thứ nhất là mã hóa nhiều chữ cái cùng  
lúc. Phương pháp thứ hai là làm sao để một chữ cái trong bản rõ thì có tương ứng nhiều  
chữ cái khác nhau trong bản mã. Hai phương án trên sẽ lần lượt được trình bày trong phần  
tiếp theo.  
2.4 Mã hóa thay thế đa ký tự  
2.4.1 Mã 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. Playfair dùng một ma trận 5x5 các ký tự như  
sau:  
19  
   
M
C
O
H
F
N
Y
A
B
R
D
K
T
Z
E
G
Q
W
I/J  
S
L
P
V
U
X
Trong bảng 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 điền tiếp theo. Riêng hai chữ I, J được điền vào cùng một ô vì trong  
tiếng Anh, ít khi nhầm lẫn giữa chữ I và chữ J. Ví dụ, nếu gặp đoạn ký tự CL_MATE, ta sẽ  
biết đó là từ CLIMATEchứ không phải là từ CLJMATE.  
Trước khi mã hóa, bản rõ được tách ra thành các cặp ký tự. Nếu hai ký tự trong một  
cặp giống nhau thì sẽ được tách bằng chữ X (trong tiếng Anh ít khi có 2 ký tự X sát nhau).  
Ví dụ: từ balloonđược tách thành ba lx lo on. Việc mã hóa từng cặp được thực hiện  
theo quy tắc:  
. Nếu hai ký tự trong cặp thuộc cùng một hàng, thì được thay bằng hai ký tự tiếp  
theo trong hàng. Nếu đến cuối hàng thì quay về đầu hàng. Ví dụ cặp arđược mã  
hóa thành RM.  
. Nếu hai ký tự trong cặp thuộc cùng một cột, thì được thay bằng hai ký tự tiếp theo  
trong cột. Nếu đến cuối cột thì quay về đầu cột. Ví dụ cặp ovđược mã hóa thành  
HO.  
. Trong các trường hợp còn lại, hai ký tự được mã hóa sẽ tạo thành đường chéo của  
một hình chữ nhật và được thay bằng 2 ký tự trên đường chéo kia. Ví dụ: hstrở  
thành BP(Bcùng dòng với Hvà Pcùng dòng với S); eatrở thành IM(hoặc JM)  
Như vậy nếu chỉ xét trên 26 chữ cái thì mã khóa Playfair có 26x26=676 cặp chữ cái,  
do đó các cặp chữ cái 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 chữ cái. Ngoài ra số lượng các cặp chữ cái nhiều hơn cũng làm cho việc phá mã tần  
suấ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.  
2.4.2 Mã Hill  
Trong mã Hill, mỗi chữ cái được gán cho một con số nguyên từ 0 đến 25:  
A
0
B
1
C
2
D
3
E
4
F
5
G
6
H
7
I
8
J
9
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25  
Mã Hill thực hiện mã hóa một lần m ký tự bản rõ (ký hiệu p1, p2,…,pm), thay thế  
thành m ký tự trong bản mã (ký hiệu c1, c2,…,cm). Việc thay thế này được thực hiện bằng m  
phương trình tuyến tính. Giả sử m = 3, chúng ta minh họa m phương trình đó như sau:  
                        26  
 
    
 
   
 
     
                        26  
 
   
 
    
 
     
                        26  
 
   
 
   
 
     
20  
 
Tải về để xem bản đầy đủ
pdf 184 trang myanh 24180 Free
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng An toàn và bảo mật thông tin", để 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_va_bao_mat_thong_tin.pdf