Beruflich Dokumente
Kultur Dokumente
Mã khóa đối xứng được dùng để chỉ các hệ mã mà trong đó, khi biết
khóa lập mã ta có thể tìm được khóa giải mã một cách dễ dàng (vì vậy
người ta thường coi chúng là một), đồng thời việc giải mã cũng đòi hỏi
thời gian như việc lập mã. Các hệ mã thuộc loại này có thời gian lập mã
và giải mã tương đối nhanh vì thế các hệ mã đối xứng thường được sử
dụng để mã hóa những dữ liệu lớn. Nhưng các hệ mã đối xứng yêu cầu
phải giữ bí mật hoàn toàn về khóa lập mã.
Hiện nay tin học đã được áp dụng vào hầu hết các lĩnh vực
trong cuộc sống và có một ảnh hưởng rất lớn đối với sự tồn tại và phát
triển của các ngành khoa học khác. Trong mọi hệ thống tin học, thông
tin luôn là thành phần cơ bản nhất và quan trọng nhất. Chúng ta không
ai mà không gặp phải những trường hợp khi máy tính bị mất hết
những thông tin quan trọng do nhiều nguyên nhân khác nhau như bị
virus, bị hư hỏng thiết bị, do không biết sử dụng, bị đánh cắp hay xoá
thông tin… Nói chung vấn đề an toàn và bảo mật thông tin rất đa dạng
và phụ thuộc vào nhiều yếu tố chủ quan và khách quan khác nhau
như: con người, môi trường, công nghệ… Hiện nay có rất nhiều công
cụ và phần mềm hỗ trợ an toàn cho hệ thống máy tính. Tuy nhiên vấn
đề đánh giá và chọn lựa một hệ thống an toàn rất phức tạp và chỉ
mang tính tương đối bởi vì một hệ thống được đánh giá là rất an toàn
hôm nay có thể không còn an toàn nữa vào ngày mai. Nếu chúng ta
thường xuyên theo dõi các thông tin bảo mật trên Internet, chúng ta có
thể thấy thông tin về những lỗ hổng bảo mật của các hệ điều hành, các
phần mềm bảo mật, các dịch vụ… Vì vậy an toàn và bảo mật thông tin
là một trong những thành phần quan trọng nhất cần được quan tâm
trong việc duy trì và phát triển của hệ thống.
Lê Thụy 2
Chương 2 - Lý thuyết Mật mã và An toàn thông tin
Lê Thụy 3
Trường Đại học Dân lập Hải Phòng
M’
Phân tích mật mã
C/
- Các hệ mật mã cổ điển thực hiện việc bảo mật đó đều dùng
một khoá chung cho việc lập mã và giải mã, các bản rõ và bản mã
thường dùng cơ sở là bảng chữ trong ngôn ngữ tự nhiên. Trong phần
này, để tiện trình bầy ta dùng bảng chữ cái tiếng Anh làm ví dụ, và
dùng các số liệu thống kê của tiếng Anh để minh hoạ.
Lê Thụy 4
Chương 2 - Lý thuyết Mật mã và An toàn thông tin
Trong thực tế, P và C thường là bảng chữ cái (hoặc tập các
dãy chữ cái có độ dài cố định)
Nếu bản rõ là (một xâu chữ cái):
y = y1y2y3…yn (yi ∈ C )
Trong đó yi = ek(xi) (1 ≤ i ≤ n). Nhận được bản mã y, biết khoá
k, sẽ tìm được bản rõ x, vì xi = dk(yi)
Sau đây thay cho bảng chữ cái A, B, C,…,X, Y, Z ta sẽ dùng các
con số 0, 1, 2,…, 24, 25 và dùng các phép toán số học theo modulo 26
để diễn tả các phép biến đổi trên bảng chữ cái.
A B C D E F G H I J K L M N
0 1 2 3 4 5 6 7 8 9 10 11 12 13
O P Q R S T U V W X Y Z
14 15 16 17 18 19 20 21 22 23 24 25
2. Mã dịch chuyển (Shift Cipher).
Kí hiệu ] m là tập các số nguyên từ 0 đến (m-1), ký hiệu đó
cũng dùng cho vành các số nguyên từ 0 đến (m-1) với các phép cộng
Lê Thụy 5
Trường Đại học Dân lập Hải Phòng
và nhân với modulo m. Như vậy, bảng chữ cái tiếng Anh có thể xem là
một vành ] 26 với sự tương ứng kể trên.
h e n t o i t h u b a y
7 4 13 19 14 8 19 7 20 1 0 24
16 13 22 2 23 17 2 16 3 10 9 7
q n w c x r c q d k j h
bản mã sẽ là:
“qnwcxrcqdkjh”
Nhận được bản mã đó, dùng d9 để nhận được bản rõ.
Cách đây 2000 năm mã dịch chuyển đã được Julius Ceasar sử
dụng, với khoá k=3 mã địch chuyển được gọi là mã Ceasar.
Tập khoá phụ thuộc vào ] m với m là số khoá có thể.
Trong tiếng Anh tập khoá chỉ có 26 khoá có thể, việc thám mã
có thể được thực hiện bằng cách duyệt tuần tự 26 khoá đó, vì vậy độ
an toàn của mã dịch chuyển rất thấp.
Lê Thụy 6
Chương 2 - Lý thuyết Mật mã và An toàn thông tin
P = C = ] 26, K = S ( ] 26)
Với mỗi л ∈ K, tức là một hoán vị trên ] 26, ta xác định
eл(x) = л(x)
dл(y) = л-1(y)
với x, y ∈ ] 26, л-1 là nghịch đảo của л
Ví dụ: л được cho bởi (ở đây ta viết chữ cái thay cho các con số
thuộc ] 26):
a b c d e f g h i j k l m n
x n y a h p o g z q w b t s
o p q r s t u v w x y z
f l r c v m u e k j d i
bản rõ:
“hentoithubay”
sẽ được mã hoá thành bản mã (với khoá л):
“ghsmfzmgunxd”
Dễ xác định được л-1, và do đó từ bản mã ta tìm được bản rõ.
Mã thay thế có tập hợp khoá khá lớn - bằng số các hoán vị trên
bảng chữ cái, tức số các hoán vị trên ] 26, hay là 26!, lớn hơn 4.1026.
Việc duyệt toàn bộ các hoán vị để thám mã là rất khó, ngay cả đối với
máy tính. Tuy nhiên, ta sẽ thấy có những phương pháp thám mã khác
dễ dàng thực hiện, và do đó mã thay thế cũng không thể được xem là
an toàn.
Lê Thụy 7
Trường Đại học Dân lập Hải Phòng
ek(x) = ax + b mod 26
dk(y) = a-1(y – b) mod 26
trong đó x, y ∈ ] 26
Lê Thụy 8
Chương 2 - Lý thuyết Mật mã và An toàn thông tin
Có những thuật toán để thử tính chất (a, m) = 1, và tính a-1 mod
m khi (a, m) = 1, ta sẽ trình bầy trong phần sau. Tuy nhiên, với m =
26, ta dễ thử rằng các số a sao cho (a, 26) = 1 là:
a 1 3 5 7 9 11 15 17 19 21 23 25
a-1 1 9 21 15 3 19 7 23 11 5 17 25
h e n t o i t h u b a y
x 7 4 13 19 14 8 19 7 20 1 0 24
y = 5x + 6 mod 26
y 15 0 19 23 24 20 23 15 2 11 6 22
p a t x y u x p c l g w
Bản mã:
“patxyuxpclgw”
Thuật toán giải mã trong trường hợp này có dạng:
dk(y) = 21(y − 6) mod 26
Với mã Apphin, số các khoá có thể có bằng (số các số ≤ 26 và
nguyên tố với 26) × 26, tức là 12 × 26 = 312. Việc thử tất cả các khoá
để thám mã trong trường hợp này tuy khá mất thì giờ nếu tính bằng
Lê Thụy 9
Trường Đại học Dân lập Hải Phòng
tay, nhưng không khó khăn gì nếu dùng máy tính. Do vậy, mã Apphin
cũng không phải là mã an toàn.
h e n t o i t h u b a y
x 7 4 13 19 14 8 19 7 20 1 0 24
k 2 8 15 7 4 17 2 8 15 7 4 17
y 9 12 2 0 18 25 21 15 9 8 4 15
j m c a s z v p j i e p
Bản mã:
Lê Thụy 10
Chương 2 - Lý thuyết Mật mã và An toàn thông tin
“jmcaszvpjiep”
Từ bản mã đó, dùng phép giải mã dk tương ứng, ta lại thu được
bản rõ.
Chú ý: Mã Vigenēre với m = 1 sẽ trở thành mã Dịch chuyển.
Tập hợp các khoá trong mã Vigenēre mới m ≥ 1 có tất cả là 26m
khoá có thể có. Với m = 6, số khoá đó là 308.915.776, duyệt toàn bộ
chừng ấy khoá để thám mã bằng tính tay thì khó, nhưng với máy tính
thì vẫn là điều dễ dàng.
m×m
K={k∈ ] 26 : (det(k), 26) = 1 }
Lê Thụy 11
Trường Đại học Dân lập Hải Phòng
⎛ 11 8 ⎞
Ví dụ: Lấy m = 2, và k = ⎜ ⎟
⎝ 3 7⎠
⎛ d −b ⎞
⎛ a b ⎞ ⎛ a b ⎞ ⎜ ad − bc ad − bc ⎟ ⎛ a b ⎞ ⎛ 1 0 ⎞
−1
⎜ c d ⎟ ⎜ c d ⎟ = ⎜ −c ⎟ =
a ⎟ ⎝⎜ c d ⎠⎟ ⎜⎝ 0 1 ⎟⎠
⎝ ⎠ ⎝ ⎠ ⎜
⎜ ⎟
⎝ ad − bc ad − bc ⎠
Ví dụ:
Lê Thụy 12
Chương 2 - Lý thuyết Mật mã và An toàn thông tin
⎛ 11 8 ⎞
Định thức của ⎜ ⎟ là 11 × 7 – 8 × 3 = 1 ≡ 1 mod 26
⎝ 3 7⎠
−1
⎛ 11 8 ⎞ ⎛ 7 −8 ⎞ ⎛ 7 18 ⎞
Khi đó : ⎜
3 7 ⎟ =⎜
−3 11 ⎟ ≡ ⎜ 23 11 ⎟ mod 26
⎝ ⎠ ⎝ ⎠ ⎝ ⎠
⎛9 4⎞
Định thức của ⎜ ⎟ là 9 × 7 – 4 × 5 = 43 ≡ 17 mod 26
⎝5 7 ⎠
⎛ 7 −4 ⎞
⎛9 4⎞ ⎜ 17
−1
17 ⎟
Khi đó : ⎜ ⎟ = ⎜ ⎟ mod 26
⎝5 7 ⎠ ⎜ −5 9 ⎟
⎜ ⎟
⎝ 17 17 ⎠
Theo một tính chất toán học ta có: phép chia cho 17 mod 26 sẽ
tương đương với phép nhân với phần tử nghịch đảo của 17 mod 26.
Với thuật toán trình bầy trong chương một ta có thể tính được phần tử
nghịch đảo của 17 trong ] 26 là 23. Do đó :
⎛ 7 −4 ⎞
⎜ 17 17 ⎟ ⎛ 7 × 23 −4 × 23 ⎞
⎜ ⎟ mod 26 ≡ ⎜ ⎟ mod 26
⎜ −5 9 ⎟ ⎝ −5 × 23 9 × 23 ⎠
⎜ ⎟
⎝ 17 17 ⎠
⎛ 161 −92 ⎞ ⎛ 5 12 ⎞
≡⎜
−115 207 ⎟ mod 26 ≡ ⎜ 15 25 ⎟ mod 26
⎝ ⎠ ⎝ ⎠
−1
⎛9 4⎞ ⎛ 5 12 ⎞
Kết quả : ⎜ ⎟ = ⎜ 15 25 ⎟
⎝5 7 ⎠ ⎝ ⎠
Lê Thụy 13
Trường Đại học Dân lập Hải Phòng
với mỗi k = π ∈ Sm , ta có
Bản rõ:
“hentoithubay”
Lê Thụy 14
Chương 2 - Lý thuyết Mật mã và An toàn thông tin
h e n t o i t h u b a y
vt 1 2 3 4 5 6 1 2 3 4 5 6
π 1→3 2→5 3→1 4→6 5→4 6→2 1→3 2→5 3→1 4→6 5→4 6→2
vt 3 5 1 6 4 2 3 5 1 6 4 2
n o h i t e u a t y b h
Bản mã:
“nohiteuatybh”
Dùng hoán vị nghịch đảo, từ bản mật mã ta lại thu được bản rõ.
Chú ý:
Mã hoán vị là một trường hợp riêng của mã Hill. Thực vậy, cho
phép hoán vị π của {1, 2,…, m}, ta có thể xác định ma trận Kπ=(kij),
với
⎧1 nÕu i = π (j )
kij = ⎨
⎩0 nÕu ng−îc l¹i
thì dễ thấy rằng mã Hill với khoá Kπ trùng với mã hoán vị với khoá π.
Với m cho trước, số các khoá có thể có của mã hoán vị là m!
Dễ nhận thấy với m = 26 ta có số khóa 26! (mã Thay thế)
Lê Thụy 15
Trường Đại học Dân lập Hải Phòng
0.14
0.12
0.1
Xắc suất
0.08
0.06
0.04
0.02
0
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ảng xắc suất xuất hiện của các k ý tự trong tiếng Anh
Từ bảng trên có thể phân 26 chữ cái thành 5 nhóm như sau:
Lê Thụy 16
Chương 2 - Lý thuyết Mật mã và An toàn thông tin
Việc xem xét các dãy gồm 2 hoặc 3 ký tự liên tiếp (được gọi là
bộ đôi - Diagrams và bộ ba - Trigrams) cũng rất hữu ích.
Có 30 bộ đôi thông dụng nhất (theo hứ tự giảm dần) là: TH,
HE, IN, ER, AN, RE, ED, ON, ES, ST, EN, AT, TO, NT, HA, ND,
OU, EA, NG, AS, OR, TI, IS, ET, IT, AR, TE, SE, HI và OF.
Có 12 bộ ba thông dụng nhất (theo thứ tự giảm dần) là: THE,
ING, AND, HER, ERE, ENT, THA, NTH, WAS, ETH, FOR và DTH.
Tuy nhiên việc thám mã nói chung đều thực hiện qua 4 bước:
- Xác định ngôn ngữ được sử dụng. (bản rõ – bản mã).
- Xác định hệ thống nói chung được sử dụng.
- Xây dựng lại khoá của mật mã sử dụng trong hệ thống.
- Xây dựng lại bản gốc. (bản rõ)
Các hình thức tấn công vào hệ mã:
- Chỉ biết bản mã: Kẻ thám mã chỉ có trong tay bản mã.
- Biết bản rõ: Kẻ thám mã biết được một mẫu của bản rõ
và phần mã tương ứng của bản rõ đó.
- Chọn bản rõ: Kẻ thám mã có thể tạm thời tước quyền
điều khiển hệ thống, rồi chọn bản rõ và xây dựng bản mã
tương ứng.
- Chọn bản mã: Kẻ thám mã tạm thời điều khiển hệ thống,
rồi chọn bản mã và xây dựng lại bản rõ tương ứng.
Lê Thụy 17
Trường Đại học Dân lập Hải Phòng
Lê Thụy 18
Chương 2 - Lý thuyết Mật mã và An toàn thông tin
Ví dụ: Một loại mã dòng thường được sử dụng khi dòng khoá
được sinh ra bởi một hệ thức truy toán. Trong trường hợp này, k = (k1,
m
k2,…, km) ∈ Z 2 , và dòng khoá được xác định bởi:
zi = ki (1 ≤ i ≤ m)
zi = c1zi-m + … + cmzi-1 mod 2 (i > m)
Nếu khéo chọn, ta có thể thu được dòng khoá tuần hoàn với chu
kỳ lớn nhất là 2m – 1.
Chẳng hạn, với m = 4 và dòng khoá sinh ra bởi luật:
zi = zi-4 + zi-3 mod 2 ( i > 4)
ta sẽ được, với mọi k = (z1, z2, z3, z4) ≠ (0, 0, 0, 0) là khoá chính, một
dòng khoá có chu kỳ 15. Với k = (1, 0, 0, 0) ta sẽ được dòng khoá:
100010011010111100010…
Mã dòng sinh ra bởi hệ thức truy toán có thể được thực hiện
bằng phần cứng khi dùng một thanh ghi chuyển dịch liên hệ ngược
tuyến tính. Thanh ghi tương ứng với hệ mã cụ thể nói trên có sơ đồ là:
k1 k2 k3 k4
P = C = K = L = ] 26
Dòng khoá sinh bởi:
Lê Thụy 19
Trường Đại học Dân lập Hải Phòng
r e n d e z v o u s
x 17 4 13 3 4 25 21 14 20 18
8 17 4 13 3 4 25 21 14 20 18
y 25 21 17 16 7 3 20 9 8 12
z v r q h d u j i m
Lê Thụy 20
Chương 2 - Lý thuyết Mật mã và An toàn thông tin
Lê Thụy 21
Trường Đại học Dân lập Hải Phòng
Hệ mật mã chuẩn DES được xây dựng tại Mỹ trong những năm
70, theo yêu cầu của văn phòng quốc gia về chuẩn (NBS) và được sự
thẩm định của cục an ninh quốc gia Mỹ (NASA).
Ngày 15/05/1973, NBS công bố một yêu cầu công khai về một
thuật toán mật mã chuẩn, mà các đòi hỏi chính là:
- Thuật toán phải có độ an toàn cao.
- Thuật toán phải được định nghĩa đầy đủ và hoàn toàn dễ hiểu.
- Độ an toàn phải nằm ở khoá, độ an toàn phải không phụ
thuộc vào sự bí mật của thuật toán.
- Thuật toán phải sẵn sàng cung cấp cho mọi người dùng.
- Thuật toán phải thích nghi được với việc dùng cho các ứng
dụng khác nhau.
- Thuật toán phải cài đặt được một cách tiết kiệm trong các
thiết bị điện tử.
- Thuật toán phải được sử dụng được có hiệu quả.
- Thuật toán phải có khả năng được hợp thức hoá.
- Thuật toán phải xuất khẩu được.
Hồi đó, không có cơ quan nào đáp ứng được yêu cầu đó. Năm
sau, ngày 27/04/1974 yêu cầu đó lại được nhắc lại. Và lần này, IBM
chấp nhận dự tuyển với sản phẩm sẽ được đệ trình dựa trên một thuật
toán mà IBM đã phát triển trước đó là LUCIPHER. DES được công
bố lần đầu tiên vào 17/03/1975. Sau nhiều tranh luận, DES được chấp
nhận như một chuẩn liên bang vào 23/11/1976 và được công bố ngày
15/01/1977. Sau đó, vào năm 1980 công bố “Các cách dùng DES”.
DES được cài đặt cả với tư cách như một thiết bị cứng, cả với tư cách
như một phần mềm, và được sử dụng rộng rãi trong khu vực hành
chính, kinh tế, đặc biệt trong các hệ thống ngân hàng. NBS về nguyên
tắc cứ khoảng 5 năm lại xét lại hệ mã một lần, do vậy các hệ mã chuẩn
của Mỹ luôn được nâng cấp.
Lê Thụy 22
Chương 2 - Lý thuyết Mật mã và An toàn thông tin
DES là một hệ mật mã khóa đối xứng được sử dụng rộng rãi
nhất do tính an toàn cao của nó. Như đã biết hệ mật mã khóa đối xứng
là hệ mã mà quá trình tạo mã và giải mã đều sử dụng chung một khoá.
Thuật toán DES là sự kết hợp được lựa chọn cẩn thận của hai quá
trình cơ bản của mật mã là thay thế và hoán vị.
Lê Thụy 23
Trường Đại học Dân lập Hải Phòng
Lê Thụy 24
Chương 2 - Lý thuyết Mật mã và An toàn thông tin
Li-1 Ri-1
(32 bit) (32 bit)
Ki (48 bit)
Li Ri
(32 bit) (32 bit)
Kết quả của 16 lần lặp liên tiếp là một khối 64 bits (R16L16)
được gọi là dữ liệu tiền kết quả (preoutput), khối 64 bits này được cho
qua một hoán vị nghịch đảo IP-1. Trong đó bit thứ 40 của khối dữ liệu
tiền kết quả là bit đầu tiên, bit thứ 8 của khối dữ liệu tiền kết quả là bit
thứ 2,… và bit cuối cùng sau khi hoán vị là bit thứ 25 của khối dữ liệu
tiền kết quả trên. Cuối cùng sau phép hoán vị nghịch đảo ta nhận được
bản mã.
Lê Thụy 25
Trường Đại học Dân lập Hải Phòng
Lê Thụy 26
Chương 2 - Lý thuyết Mật mã và An toàn thông tin
Sau đó tính E(R) ⊕K với K là khóa 48 bits. Kết quả của phép
cộng modulo 2 này sẽ được viết thành 8 nhóm, mỗi nhóm 6 bits dạng
B = B1B2B3B4B5B6B7B8. Mỗi nhóm Br 6 bits (1 ≤ r ≤ 8) đó được đưa
B B B B B B B B
qua một hộp đen Sr (S1 S2 … S8) để nhận được Sr(Br) 4 bits đầu ra.
Mỗi hộp Sr là một ma trận 4 x 16 trong đó mỗi phần tử của Sr là một
số nguyên nằm trong khoảng 0 → 15 (có thể biểu diễn tối đa bởi 4 bit
nhị phân).
Với mỗi Br = b1b2b3b4b5b6 là các bit của Br , ta tính Sr(Br) như
B B
sau: b1b6 là biểu diễn nhị phân của số hiệu hàng i trong Sr , b2b3b4b5 là
biểu diễn nhị phân của số hiệu cột j trong Sr . Cr = Sr(Br) là phần tử tại
hàng i và cột j của Sr . Ví dụ ta tính S1(B) với B = 011011(2) thì hàng i
= 01(b) = 1(d), cột j = 1011(b) = 13(d) . Xác định tại hộp S1 giá trị tại
hàng 1, cột 13 có giá trị là 5 do đó C = 5(d) = 0101(b).
C = C1C2C3C4C5C6C7C8 (32 bits) được cho qua một hoán vị P
và nhận được kết quả của hàm ƒ: ƒ = P(C)
Lê Thụy 27
Trường Đại học Dân lập Hải Phòng
Lê Thụy 28
Chương 2 - Lý thuyết Mật mã và An toàn thông tin
PC1
C0 D0
LeftShift LeftShift
C1 D1
K1
PC2
LeftShifts LeftShifts
Ci Di
Ki
PC2
LeftShifts LeftShifts
C16 D16
K16
PC2
Lê Thụy 29
Trường Đại học Dân lập Hải Phòng
I k1 k2 k3 O
Xác định bộ khóa (k1, k2, k3) có thể có các lựa chọn sau:
• Lựa chọn 1: khóa k1, k2 và k3 là các khóa độc lập.
• Lựa chọn 2: khóa k1, k2 độc lập và k3 = k1.
• Lựa chọn 3: k1 = k2 = k3
Lê Thụy 30