Tải bản đầy đủ (.pdf) (11 trang)

Hướng dẫn cách giữ thông tin an toàn và bí mật phần 5 ppt

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (344.96 KB, 11 trang )


45
và xét việc mã hoá y
j
bảng e
0
,e
1
,e
2
. . . Ta kí hiệu các kết quả bằng y
j
0
,y
j
1
,. . . Dễ
dàng dùng các chỉ số MI
c
(y
i
,y
j
g
), 0 ≤ g ≤ 25 theo công thức sau:
Khi g = l thì MI
c
phải gần với giá trị 0,065 vì độ dịch tương đối của y
i
và y
j



bằng 0. Tuy nhiên, với các giá trị g ≠ l thì MI
c
sẽ thay đổi giữa 0,031 và 0,045.
Bằng kỹ thuật này, có thể thu được các độ dịch tương đối của hai xâu con y
i

bất kỳ. Vấn đề còn lại chỉ là 26 từ khoá có thể và điều này dễ dàng tìm được
bằng phương pháp tìm kiếm vét cạn.
Trở lại ví dụ trên để minh hoạ.
Ở trên đã giả định rằng, độ dài từ khoá là 5. Bây giờ ta sẽ thử tính các độ
dịch tương đối. Nhờ máy tính, dễ dàng tính 260 giá trị MI
c
(y
i
,y
j
g
), trong đó 1 ≤ i
≤ j ≤ 5; 0 ≤ g ≤ 25. Các giá trị này được cho trên bảng. Với mỗi cặp ( i,j), ta tìm
các giá trị của MI
c
(y
i
,y
j
g
) nào gần với 0,065. Nếu có một giá trị duy nhất như vậy
(Đối với mỗi cặp (i,j) cho trước), thì có thể phán đoán đó chính là giá trị độ dịch
tương đối.

Trong bảng dưới có 6 giá trị như vậy được đóng khung. Chúng chứng tỏ
khá rõ ràng là độ dịch tương đối của y
1
và y
2
bằng 9; độ dịch tương đối của y
2

y
3
bằng 13; độ dịch tương đối của y
2
và y
5
bằng 7; độ dịch tương đối của y
3

y
5
bằng 20; của y
4
và y
5
bằng 11. Từ đây có các phương trình theo 5 ẩn số K
1
,
K
2
, K
3

, K
4
, K
5
như sau:
K
1
- K
2
= 9
K
1
- K
2
= 16
K
2
- K
3
= 13
K
2
- K
5
= 17
K
3
- K
5
= 20

K
4
- K
5
= 11
Điều này cho phép biểu thị các K
i
theo K
1
;
K
2
= K
1
+ 17

46
K
3
= K
1
+ 4
K
4
= K
1
+ 21
K
5
= K

1
+ 10
Như vậy khoá có khả năng là ( K
1
, K
1
+17, K
1
+4, K
1
+21, K
1
+10) với giá
trị K
1
nào đó ∈ Z
26
. Từ đây ta hy vọng rằng, từ khoá là một dịch vòng nào đó
của AREVK. Bây giờ, không tốn nhiều công sức lắm cũng có thể xác định được
từ khoá là JANET. Giải mã bản mã theo khoá này, ta thu được bản rõ sau:
The almond tree was in tentative blossom. The days were longer often
ending with magnificient evenings of corrugated pink skies. The hunting seasun
was over, with hounds and guns put away for six months. The vineyards were
busy again as the well-organized farmers treated their vinesand the more
lackadaisical neighbors hurried to do the pruning they have done in November.
. Các chỉ số trùng hợp tương hỗ quan sát được.

Giá trị của MI
c
(y

j
,y
j
g
)
0,028 0,027 0,028 0,034 0,039 0,037
0,026 0,025 0,052
0,068 0,044 0,026 0,037 0,043 0,037
0,043 0,037 0,028
0,041 0,041 0,041 0,034 0,037 0,051
0,045 0,042 0,036
0,039 0,033 0,040 0,034 0,028 0,053
0,048 0,033 0,029
0,056 0,050 0,045 0,039 0,040 0,036
0,037 0,032 0,027
0,037 0,047 0,032 0,027 0,039 0,037
0,039 0,035

47
0,034 0,043 0,025 0,027 0,038 0,049
0,040 0,032 0,029
0,034 0,039 0,044 0,044 0,034 0,039
0,045 0,044 0,037
0,055 0,047 0,032 0,027 0,039 0,037
0,039 0,035
0,043 0,033 0,028 0,046 0,043 0,044
0,039 0,031 0,026
0,030 0,036 0,040 0,041 0,024 0,019
0,048 0,070
0,044

0,028 0,038 0,044 0,043 0,047 0,033
0,026
0,046 0,048 0,041 0,032 0,036 0,035
0,036 0,020 0,024
0,039 0,034 0,029 0,040 0,067
0,061
0,033 0,037 0,045
0,033 0,033 0,027 0,033 0,045 0,052
0,042 0,030
0,046 0,034 0,043 0,044 0,034 0,031
0,040 0,045 0,040
0,048 0,044 0,033 0,024 0,028 0,042
0,039 0,026 0,034
0,050 0,035 0,032 0,040 0,056 0,043
0,028 0,028
0,033 0,033 0,036 0,046 0,026 0,018
0,043 0,080
0,050
0,029 0,031 0,045 0,039 0,037 0,027

48
0,026 0,031 0,039
0,040 0,037 0,041 0,046 0,045 0,043
0,035 0,030
0,038 0,036 0,040 0,033 0,036 0,060
0,035 0,041 0,029
0,058 0,035 0,035 0,034 0,053 0,030
0,032 0,035 0,036
0,036 0,028 0,043 0,032 0,051 0,032
0,034 0,030

0,035 0,038 0,034 0,036 0,030 0,043
0,043 0,050 0,025
0,041 0,051 0,050 0,035 0,032 0,033
0,033 0,052 0,031
0,027 0,030 0,072
0,035 0,034 0,032
0,043 0,027
0,052 0,038 0,033 0,038 0,041 0,043
0,037 0,048 0,028
0,028 0,036 0,061
0,033 0,033 0,032
0,052 0,034 0,027
0,039 0,043 0,033 0,027 0,030 0,039
0,048 0,035

2.2.4.Tấn công với bản rõ đã biết trên hệ mật Hill.
Hệ mã Hill là một hệ mật khó pha hơn nếu tấn công chỉ với bản mã. Tuy
nhiên hệ mật này dễ bị phá nếu tấn công bằng bản rõ đã biết. Trước tiên, giả sử
rằng, thám mã đã biết được giá trị m đang sử dụng. Giả sử thám mã có ít nhất m
cặp véc tơ khác nhau xj = (x
1,j
, x
2,j
, , . . ., x
m,j
) và y
j
= (y
1,j
, y

2,j
, ,y
m,j
) (1 ≤ j ≤ m)

49
sao cho y
j
= e
K
(x
j
), 1 ≤ j ≤ m. Nếu xác định hai ma trận: X = (x
i,j
) Y = (y
i,j
) cấp
m×m thì ta có phương trình ma trận Y = XK, trong đó ma trận K cấp m×m là
khoá chưa biết. Với điều kiện ma trận Y là khả nghịch. Oscar có thể tính K = X
-
1
Y và nhờ vậy phá được hệ mật. (Nếu Y không khả nghịch thì cấn phải thử các
tập khác gồm m cặp rõ - mã).
Ví dụ
Giả sử bản rõ Friday được mã hoá bằng mã Hill với m = 2, bản mã nhận
được là PQCFKU.
Ta có e
K
(5,17) = (15,16), e
K

(8,3) = (2,5) và e
K
(0,24) = (10,20). Từ hai cặp
rõ - mã đầu tiên, ta nhận được phương trình ma trận:
Dùng định lý dễ dàng tính được:
Bởi vậy:
Ta có thể dùng cặp rõ - mã thứ 3 để kiểm tra kết quả này.
Vấn đề ở đây là thám mã phải làm gì nếu không biết m?. Giả sử rằng m
không quá lớn, khi đó thám má có thể thử với m = 2,3,. . . cho tới khi tìm được
khoá. Nếu một giá trị giả định của m không đúng thì mà trận m×m tìm được
theo thu
ật toán đã mô tả ở trên sẽ không tương thích với các cặp rõ - mã khác.
Phương pháp này, có thể xác định giá trị m nếu chưa biết.
2.2.5. Thám mã hệ mã dòng xây dựng trên LFSR.
Ta nhớ lại rằng, bản mã là tổng theo modulo 2 của bản rõ và dòng khoá, tức
y
i
= x
i
+ z
i
mod 2. Dòng khóa được tạo từ (z
1
,z
2
,. . .,z
m
) theo quan hệ đệ quy
tuyến tính:
K









=








3 8
17 5
5 2
16 15








=










15 2
1 9
3 8
17 5
1








=

















=
3 8
19 7
5 2
16 15
15 2
1 9
K

50
trong đó c
0
,. . .,c
m
∈ Z
2
(và c
0
= 1)
Vì tất cả các phép toán này là tuyến tính nên có thể hy vọng rằng, hệ mật
này có thể bị phá theo phương pháp tấn công với bản rõ đã biết như trường hợp

mật mã Hill. Giả sử rằng, Oscar có một xâu bản rõ x
1
x
2
. . .x
n
và xâu bản mã
tương ứng y
1
y
2
. . .y
n
. Sau đó anh ta tính các bít dòng khoá z
i
= x
i
+y
i
mod 2, 1 ≤ i
≤ n. Ta cũng giả thiết rằng Oscar cũng đã biết giá trị của m. Khi đó Oscar chỉ
cần tính c
0
, . . ., c
m-1
để có thể tái tạo lại toàn bộ dòng khoá. Nói cách khác,
Oscar cần phải có khả năng để xác định các giá trị của m ẩn số.
Với i ≥ 1 bất kì ta có :
là một phương trình tuyến tính n ẩn. Nếu n ≥ 2n thì có m phương trình
tuyến tính m ẩn có thể giải được.

Hệ m phương trình tuyến tính có thể viết dưới dạng ma trận như sau:
Nếu ma trận hệ số có nghịch đảo ( theo modulo 2 )thì ta nhận được nghi
ệm:
Trên thực tế, ma trận sẽ có nghịch đảo nếu bậc của phép đệ quy được dùng
để tạo dòng khoá là m.(xem bài tập). Minh hoạ điều này qua một ví dụ.
Ví dụ :
Giả sử Oscar thu được xâu bản mã
101101011110010
2
1
1
0
1
modzcz
i
m
j
jm +

=
+

=
2
1
0
1
modzcz
ji
m

j
jm +

=
+

=
()()












=
+
+
−++
z . . . z z
. . . . .
z . . . z z
z . . . z
1-2m1mm
1m32

m21
110221
.
z
c, ,c,cz, ,z,z
mmmm
()( )
1
1-2m1mm
1m32
m21
221110
z . . . z z
. . . . .
z . . . z z
z . . . z

+
+
++−













=
.
z
z, ,z,zc, ,c,c
mmmm

51
tương ứng với xâu bản rõ
011001111111001
Khi đó anh ta có thể tính được các bít của dòng khoá:
110100100001010
Ta cũng giả sử rằng, Oscar biết dòng khoá được tạo từ một thanh ghi dịch
phản hồi (LFSR) có 5 tầng. Khi đó, anh ta sẽ giải phương trình mà trận sau (
nhận được từ 10 bít đầu tiên của dòng khoá):
Có thể kiểm tra được rằng:
Từ đó ta có:

= (1, 0, 0, 1, 0)
Như vậy phép đệ quy được dùng để tạo dòng khoá là:
z
i+5
= z
i
+ z
i+3
mod 2
()( )

















=
0 0 1 0 0
0 1 0 0 1
1 0 0 1 0
0 0 1 0 1
0 1 0 1 1
00010
43210
c,c,c,c,c,,,,

















=

















0 1 1 0 1
1 1 0 1 0

1 0 0 0 0
0 1 0 0 1
1 0 0 1 0
0 0 1 0 0
0 1 0 0 1
1 0 0 1 0
0 0 1 0 1
0 1 0 1 1
1
()()
















=
0 1 1 0 1
1 1 0 1 0
1 0 0 0 0

0 1 0 0 1
1 0 0 1 0
00010
43210
,,,,c,c,c,c,c

52
Các chú giải và tài liệu dẫn
Nhiều tài liệu về mật mã cổ điển đã có trong các giáo trình, chẳng hạn như
giáo trình của Beker và Piper [BP82] và Denning [DE82]. Xác suất đánh giá
cho 26 kí tự được lấy của Beker và Piper. Cũng vậy, việc phân tích mã Vigenère
được sửa đổi theo mô tả của Beker và Piper. Rosen [Ro93] là một tài liệu tham
khảo tốt về lý thuyết số. Cơ sở của Đại số tuyến tính sơ cấp có thể tìm thấy trong
sách của Anton [AN91]. Cu
ốn " Những người mã thám " của Kahn [KA67] là
một cấu chuyện hấp dẫn và phong phú về mật mã cho tới năm 1967, trong đó
Kahn khẳng định rằng mật mã Vigenère thực sự không phải là phát minh của
Vigenère.
Mật mã Hill lần đầu tiên được mô tả trong [HI29]. Các thông tin về mật
mã dòng có thể tìm được trong sách của Rueppel [RU86].

53
Chương 3: Chuẩn mã dữ liệu DES
(Data Encryption Standard)

3.1. Giới thiệu chung về DES
Chuẩn mã hoá dữ liệu DES được Văn phòng tiêu chuẩn của Mỹ (U.S
National Bureau for Standards) công bố năm 1971 để sử dụng trong các cơ
quan chính phủ liên bang. Giải thuật được phát triển tại Công ty IBM dựa trên
hệ mã hoá LUCIFER của Feistel.

DES là thuật toán mã hoá khối (block algrithm), với cỡ của một khối là
64 bít. Một khối 64 bít bản rõ được đưa vào, sau khi mã hoá dữ liệu đư
a ra là
một khối bản mã 64 bít. Cả mã hoá và giải mã đều sử dụng cùng một thuật
toán và khoá.
Khoá mã có độ dài 64 bít, trong đó có 8 bít chẵn lẻ được sử dụng để
kiểm soát lỗi. Các bít chẵn lẻ nằm ở các vị trí 8, 16, 24, , 64. Tức là cứ 8 bít
khoá thì trong đó có 1 bít kiểm soát lỗi, bít này qui định số bít có giá trị “1”
của khối 8 bít đó theo tính bù chẵn.
Nền tảng để xây dựng khối của DES là sự kết hợp đơ
n giản của các kỹ
thuật thay thế và hoán vị bản rõ dựa trên khoá. Đó là các vòng lặp. DES sử
dụng 16 vòng lặp, nó áp dụng cùng một kiểu kết hợp của các kỹ thuật trên
khối bản rõ 16 lần (Như hình vẽ)
Thuật toán chỉ sử dụng các phép toán số học và lôgíc trên các số 64 bít,
vì vậy nó dễ dàng thực hiện vào những năm 1970 trong điều kiện về công
nghệ phần cứng lúc bấy gi
ờ. Ban đầu, sự thực hiện các phần mềm kiểu này rất
thô sơ, nhưng hiện tại thì việc đó đã tốt hơn, và với đặc tính lặp đi lặp lại của
thuật toán đã tạo nên ý tưởng sử dụng chíp với mục đích đặc biệt này.

54






L
15

=R
14

R
15
=L
14
⊕ƒ(
R
14
,
K
15
)
Plaintext
I
P

L
0

R
0
L
1
=R
0
R
1
=L

0
⊕ƒ(
R
0
,
K
1
)
ƒ

L
2
=R
1

R
2
=L
1
⊕ƒ(
R
1
,
K
2
)
ƒ

R
16

=L
15
⊕ƒ(R
15
,K
16
)
L
16
=R
15

ƒ

K
1

K
2

Ciphertext
I
P
-1

Sơ đồ mã DE
S
K
16



55
Tóm lại DES có một số đặc điểm sau:
♦ Sử dụng khoá 56 bít.
♦ Xử lý khối vào 64 bít, biến đổi khối vào thành khối ra 64 bít.
♦ Mã hoá và giải mã được sử dụng cùng một khoá.
♦ DES được thiết kế để chạy trên phần cứng.
DES thường được sử dụng để mã hoá các dòng dữ liệu mạng và mã hoá
dữ liệu được lưu trữ trên đĩa.
3.2. Mô tả thuậ
t toán
DES thực hiện trên từng khối 64 bít bản rõ. Sau khi thực hiện hoán vị
khởi đầu, khối dữ liệu được chia làm hai nửa trái và phải, mỗi nửa 32 bít. Tiếp
đó, có 16 vòng lặp giống hệt nhau được thực hiện, được gọi là các hàm ƒ,
trong đó dữ liệu được kết hợp với khoá. Sau 16 vòng lặp, hai nửa trái và phải
được kết hợp lại và hoán vị cuối cùng (hoán vị ngược) sẽ kế
t thúc thuật toán.
Trong mỗi vòng lặp, các bít của khoá được dịch đi và có 48 bít được
chọn ra từ 56 bít của khoá. Nửa phải của dữ liệu được mở rộng thành 48 bít
bằng một phép hoán vị mở rộng, tiếp đó khối 48 bít này được kết hợp với
khối 48 bít đã được thay đổi và hoán vị của khoá bằng toán tử XOR. Khối kết
quả của phép tính XOR được lựa chọn ra 32 bít bằng cách sử
dụng thuật toán
thay thế và hoán vị lần nữa. Đó là bốn thao tác tạo nên hàm ƒ. Tiếp đó, đầu ra
của hàm ƒ được kết hợp với nửa trái bằng một toán tử XOR. Kết quả của các
bước thực hiện này trở thành nửa phải mới; nửa phải cũ trở thành nửa trái
mới. Sự thực hiện này được lặp lại 16 lần, tạo thành 16 vòng của DES (Hình
10).
Nếu B
i

là kết quả của vòng thứ i, L
i
và R
i
là hai nửa trái và phải của B
i
,
K
i
là khoá 48 bít của vòng thứ i, và ƒ là hàm thực hiện thay thế, hoán vị và
XOR với khoá, ta có biểu diễn của một vòng sẽ như sau:
L
i
=R
i-1

R
i
=L
i-1
XOR ƒ(R
i-1
,K
i
)

×