Chương 3
H ệ m ật mã đ ối x ứng
3.1. Đ ịnh nghĩa h ệ mã
Một hệ mật mã là một bộ 5 (P,C,K,E,D) thoả
mãn các điều kiện sau:
P là một tập hợp hữu hạn các bản rõ (PlainText), nó
được gọi là không gian bản rõ.
C là tập các hữu hạn các bản mã (Crypto), nó còn
được gọi là không gian các bản mã.
K là tập hữu hạn các khoá hay còn gọi là không
gian khoá.
E: một ánh xạ KxP vào C, gọi là phép lập mật mã.
D: một ánh xạ KxC vào P, gọi là phép giải mã.
Phân lo ại h ệ m ật mã
Dựa vào cách truyền khóa có thể phân thành:
Hệ mã đối xứng: dùng chung một khóa cho
quá trình mã hóa và giải mã.
Hệ mã bất đối xứng: khóa mã hóa và giải mã
khác nhau.
Ngoài ra còn có: hệ mã cổ điển, hệ mã hiện
đại, mã dòng, mã khối.
Tiêu chu ẩn đánh giá h ệ mã
Để đánh giá hệ mật mã người ta thường đánh
giá thông qua các chính sách sau:
Độ an toàn: an toàn tính toán
Chỉ dựa vào khóa, công khai thuật toán
Bản mã C không có điểm chú ý, gây nghi ngờ
e(K)=C, d(M)=P. khi không biết dk thì không có
khả năng tìm M từ C.
Tốc độ mã và giải mã
Phân phối khóa
Mô hình mã hóa đ ối x ứng
Đ ặc đi ểm h ệ mã đ ối x ứng
Khóa phải giữ bí mật giữa người gởi và người
nhận, hay nói cách khác phải có kênh chuyển
khóa an toàn.
Tính an toàn hệ mã đối xứng: được gọi là an
toàn khi không thể phá mã (lý tưởng) hoặc
thời gian phá mã là bất khả thi.
3.2. Mã Ceasar
Hàm lập mã của mã Ceasar được định nghĩa
như sau:
Hàm giải mã của mã Ceasar được định nghĩa
như sau:
Mã Ceasar
Mã Ceasar(tt)
Bảng tương ứng giữa chữ cái và các số dư
theo modulo 26.
A
B
C
D
E
F
G
H
I
J
K
L
M
0
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
Ví dụ
Cho bản rỏ(plaintext): wewillmeetatmidnight
Dãy số tương ứng là:
22 4 22 8 11 11 12 4 4 19 0 19 12 8 3 13 8 6 7 19
Nếu mã hóa với k=11 thì bản mã là:
7 15 7 19 22 22 23 15 15 4 11 4 23 19 14 24 19 17 18 4
Bản mã cuối cùng có dạng:
HPHTWWXPPELEXTOYTRSE
Nh ận xét
Dễ sử dụng
Thám mã cùng khá dễ dàng.
Số khóa cần thử là 25
Giải thuật mã hóa và giải mã đã biết
Ngôn ngữ plaintext đã biết và dễ đoán.
không an toàn
3.3. Mã thay th ế đơn b ảng (Monoalphabetic
Substitution Cipher)
Ví dụ
Với phép hoán vị π cho bảng sau:
Với hệ mật mã thay thế khóa π:
Bản rỏ: hengapnhauvaochieuthubay
Bản mã: ghsoxlsgxuexfygzhumgunxd
Nh ận xét
Số hoán vị khóa: 26!
Thám mã bằng duyệt tất cả các khóa không
thực tế(26!≈4.1026 ≈6.4x1012 năm).
Một phương pháp thám mã dựa vào tần suất
xuất hiện của các chữ cái có thể đoán được
bản rõ từ bản mã.
không được coi là an toàn
Mã affine(nhân và c ộng)
Không gian khóa là các cặp số (a, b)∈Z262 với
gcd(a,b)=1.
Không gian khóa sẽ có: ∅(26)*26=12*26=312
Hàm lập mã:
Hàm giải mã:
Ví dụ
Bản rỏ: hengapnhauchieuthubay
Dãy số tương ứng:
Mã hóa với khóa k=(5,6) ta được bản mã:
patkgdtpgchgyqpuacxpclgw
3.4 Mã thay th ế đa ký t ự
Mã Hill
Là mã nhiều ký tự
Ý tưởng chính: dùng m ký tự bản rỏ kế tiếp nhau và
thay thế m ký tự bản mã. Việc thay thế này được xác
định bởi m phương trình tuyến tính, mỗi ký tự được
gán cho 1 giá trị số.
khóa là ma trận cấp mxm.
Mã Hill(tt)
Mã Hill được định nghĩa như sau:
Cách tính ma tr ận ngh ịch đ ảo
1
CT
det k
det k =
(C T ) ij = A ji
a11
a12
... a1n
a21
a22
... a2 n
...
...
...
an1
an 2 ... ann
Hoặc: det k =
n
...
∑ aiq Aiq
n
= ∑ a pj Apj
Triển khai theo dòng p
j =1
Triển khai theo cột q
i =1
Với:
Aij = (−1) i + j . det A(i, j )
Bỏ dòng I, cột j
Ví dụ
11 8
3 7
Với m=2, k=
Bản rỏ july(9, 20), (11, 24)
Bản mã: ek (x1,…,xm)=(x1,…,xm)*k mod 26
11 8
( 9 20) x
= (99 + 60,72 + 140) = (3,4)
3 7
11 8
(11 24) x
= (121 + 72,88 + 168) = (11,22)
3 7
B ản mã: DELW
Tính ma tr ận ngh ịch đ ảo
11 8
K= 3 7
Tính det(k)=11*7-8*3=1(mod 26)
d
k = det(k ) *
− c
7 − 8 7
=
=
− 3 11 23
−1
− b
a
18
11
Gi ải mã
dk (y1, …,ym)=(y1,…,ym)*k-1 mod 26
7 18
( 3 4) x
= (9 20)
23 11
7 18
(11 22) x
= (11 24 )
23 11
Nh ận xét
Nếu chỉ biết bản mã thì việc thám mã khó khăn.
Nếu biết bản rỏ dưới dạng m cặp phân biệt khác
nhau của bản rỏ và bản mã.
Xj=(xj1,xj2,…,xjm)(j=1…m)
Yj=(yj1,…,yjm)
Ma trận khóa kmxm có thể được tính từ ma trận
x,y
K=x-1 *y(x khả đảo)
Nếu x không khả đảo thì cố tìm m cặp bản rỏ khác
3.5 Mã thay th ế đa b ảng
vigenere
Thực hiện trên từng bộ m ký tự
Ví dụ
Với m=6, k=(2, 8, 15, 7, 4, 17)