Chương 2: Mật mã đối xứng |An toàn thông tin | Đại học Thủy Lợi

Chương 2: Mật mã đối xứng của Trường Đại học Thủy Lợi. Hi vọng tài liệu này sẽ giúp các bạn học tốt, ôn tập hiệu quả, đạt kết quả cao trong các bài thi, bài kiểm tra sắp tới. Mời các bạn cùng tham khảo chi tiết bài viết dưới đây nhé.

lOMoARcPSD|40651217
lOMoARcPSD| 40651217
lOMoARcPSD|40651217
lOMoARcPSD|40651217
Downloaded by Phuong Le (lephuong0301@gmail.com)
1. Modulo s hc
Hai s nguyên a b ược gi ồng modulo n, tc
a ≡ b(mod n) nếu a b = kn, hay: a = kn + b (k là mt sô
nguyên, n > 1).
Nếu a>0, b>0, a<n: ta gi b phn của a khi chia
cho n.
lOMoARcPSD|40651217
ch gi khác: b thặng của a theo modulo n,
hoc a là ồng dư của b theo modulo n
lOMoARcPSD|40651217
Downloaded by Phuong Le (lephuong0301@gmail.com)
1. Modulo s hc
Ví d 1:
4 ≡ 1 (mod 3), vì: 4 1 = 1.3, hay 4 = 1.3 + 1
Ví d 2:
5 ≡ 2 (mod 3)
5 ≡ 0 (mod 5)
38 ≡ 14 (mod 2)
lOMoARcPSD|40651217
Downloaded by Phuong Le (lephuong0301@gmail.com)
1. Modulo s hc
Ví d 3:
2 ≡ -3 (mod 5)
-3 ≡ 7 (mod 5)
-3 ≡ -8 (mod 5)
lOMoARcPSD|40651217
Downloaded by Phuong Le (lephuong0301@gmail.com)
1. Modulo s hc
Câu hi 1:
28 ≡ ? (mod 3)
28 ≡ ? (mod 35)
28 ≡ -1 (mod ?)
Câu hi 2:
lOMoARcPSD|40651217
Downloaded by Phuong Le (lephuong0301@gmail.com)
28 ≡ 17 (mod 11) ?
1. Modulo s hc
Quan h ồng dư là quan hệ tương ương:
Tính phn xạ: a ≡ a (mod n)
Tính i xứng: a ≡ b (mod n) b ≡ a (mod n) a, b
Tính bc cu: nếu a b (mod n) b c (mod n) thì a c
(mod n)
lOMoARcPSD|40651217
Downloaded by Phuong Le (lephuong0301@gmail.com)
1. Modulo s hc
lOMoARcPSD|40651217
Downloaded by Phuong Le (lephuong0301@gmail.com)
1. Modulo s hc
Các phép tính Modulo n
(a + b) mod n = ((a mod n) + (b mod n)) mod n
(a - b) mod n = ((a mod n) - (b mod n)) mod n
(a × b) mod n = ((a mod n) × (b mod n)) mod n
(a × (b + c)) mod n = (((a × b) mod n) + ((a × c) mod n))
mod n
Các phép tính trong các h mã mt hu hết u thc
hin i vi mt modulo N nào ó.
lOMoARcPSD|40651217
2. Vành Z
N
Downloaded by Phuong Le (lephuong0301@gmail.com)
Tp các sô nguyên Z
N
= {0, 1, …, N-1} tron
g ó N
lOMoARcPSD|40651217
2. Vành Z
N
mt s t nhiên ơng vi hai phép toán cng (+)
nhân (.) ược ịnh nghĩa như sau:
Hu hết các tính toán trong các h mt ều ược thc
hin trên mt vành Z
N
nào ó.
lOMoARcPSD|40651217
2. Vành Z
N
Downloaded by Phuong Le (lephuong0301@gmail.com)
Trên vành Z
N
s 0 là phn t trung hòa vì
s 1 ược gi là phn t ơn v
Ví d N=9
lOMoARcPSD|40651217
2. Vành Z
N
Câu hi: cho N=6
Z
6
= ?
3 + 4 = 7 ? (mod 6)
4 5 = 20 ? (mod 6)
2 + 3 = ? 2
3 = ?
lOMoARcPSD|40651217
3. Phn t nghch o trên vành
Z
N
Khái nim v s nghch o ca mt s trên mt vành s
nguyên Z
N
:
Ga s a Z
N
và tn ti b Z
N
sao cho:
a.b = (a b) mod N = 1
Khi ó, b ược gi là phn t nghch o ca a trên Z
N
,
ký hiu: a
-1
= b.
lOMoARcPSD|40651217
3. Phn t nghch o trên vành
Hu hết các tính toán trong các h mt ều ược thc
hin trên mt vành Z
N
nào ó.
Z
N
Tìm phn t nghch o ca mt s a Z
N
cho trước m
2 s b và k sao cho:
a.b = k.N + 1, vi b, k Z
N
hay: a
-1
b (mod N).
lOMoARcPSD|40651217
3. Phn t nghch o trên vành
Ví d: 30
-1
64 (mod 101)
Câu hi: Tìm phn t nghch o trên Z
9
ca
a) a = 4
b) a = 6
Z
N
Định lý v s tn ti ca phn t nghch o:
lOMoARcPSD|40651217
3. Phn t nghch o trên vành
Nếu ưc s chung ln nht (GCD-Greatest Common
Divisor) GCD(a, N) = 1,
Thì tn ti duy nht 1 s phn t nghch o ca
a, nghĩa là thỏa mãn
lOMoARcPSD|40651217
4. Các h mt mã c in H
mã dch vòng (shift cipher)
Shift Cipher:
Mt trong nhng phương pháp lâu i nht ược s
dng mã hóa.
Thông ip ược mã hóa bng cách dch chuyn xoay
vòng tng ký t i k v trí trong bng ch cái
Trường hp vi k=3 gọi phương pháp hóa Caesar.
Phương pháp ơn giản,
lOMoARcPSD|40651217
4. Các h mt mã c in H
Thao tác x hóa giải ược thc hin nhanh chóng
Không gian khóa K = {0, 1, 2, …, n-1} = Z
n
D b phá v bng cách th mi kh năng khóa k
lOMoARcPSD|40651217
4. Các h mt mã c in H
mã dch vòng ( shift cipher)
Ví d:
hóa mt thông iệp ưc biu din bng các ch cái t
A ến Z (26 ch cái), ta s dng Z
26
.
Thông iệp ược hóa s không an toàn th d dàng
b gii mã bng cách th lần lượt 26 giá tr khóa k.
lOMoARcPSD|40651217
4. Các h mt mã c in H
Tính trung bình, thông iệp ã ưc mã hóa có th b gii
sau khong 26/2 = 13 ln th khóa
lOMoARcPSD|40651217
4. Các h mt mã c in H
Ta có sơ ồ mã như sau:
lOMoARcPSD|40651217
4. Các h mt mã c in H
Gi s P = C = K = Z
26
vi 0 k 25
Mã hóa: e
k
(x) = (x + k) mod 26
Gii mã: d
k
(x) = (y k) mod 26
(x,y Z
26
)
mã dch vòng ( shift cipher)
Ví d: Cho bn rõ (K=17)
X = x1; x2; : : : ; x6 = A T T A C K .
X = x1; x2; : : : ; x6 = 0; 19; 19; 0; 2; 10.
lOMoARcPSD|40651217
4. Các h mt mã c in H
Mã hóa
y1 = (x1 + k) mod 26 = (0 + 17) mod 26 = 17 = R. y2 = y3 =
(19 + 17) mod 26 = 10 = K.
y4 = 17 = R.
y5 = (2 + 17) mod 26 = 19 = T. y6 =
(10 + 17) mod 26 = 1 = B.
Bn mã: R K K R T B
lOMoARcPSD|40651217
4. Các h mt mã c in H
mã dch vòng ( shift cipher)
Gii mã
Y = y1; y2; : : : ; y6 = R K K R T B . Y = y1; y2; : : : ; y6 =
17; 10; 10; 17; 19; 1 x1 = (y1 - k) mod 26 = (17 - 17)
mod 26 = 0 = A.
x2 = x3 = (10 - 17) mod 26 = 19 = T. x4 =
0 = A. x5 = (19 - 17) mod 26 = 2 = C. x6
= (1 - 17) mod 26 = 10 = K.
lOMoARcPSD|40651217
4. Các h mt mã c in H
Bn rõ: ATTACK
mã dch vòng ( shift cipher)
Bài tp 1: Cho bn rõ (thông ip) sau X = A N TOAN VA BAO
MAT THONG TIN.
Hãy hóa gii bng h dch vòng, vi khóa
K = 6
Bài tp 2: Cho bn mã sau
lOMoARcPSD|40651217
4. Các h mt mã c in H
X = G T Z U G T B G H G U S G Z Z N U T M Z O T Hãy gii
bng h dch vòng, vi khóa K (3 s cui s
sv) mod 15.
mã dch vòng ( shift cipher)
Bài tp 3: Cho bn rõ (thông ip) sau X = 63CNTT1.
Hãy hóa gii bng h dch vòng, vi khóa
K = 15, s dng vành Z
36
i ây:
lOMoARcPSD|40651217
4. Các h mt mã c in H
0 1 2 3 4 5 6 7 8 9
26 27 28 29 30 31 32 33 34 35
lOMoARcPSD|40651217
5. Các h mt mã c in- H mã hóa thay
thế(Substitution Cipher)
Substitution Cipher:
Phương pháp mã hóa nổi tiếng
Đưc s dng ph biến hàng trăm năm nay
Ý tưởng: thay mi t trong P bng mt t khác.
Quy tc thay thế chính khóa, trong ó mi khóa mt
hoán v ca bng ch cái. hóa thông ip hoán v
các phn t trong bng ch cái (tổng quát hơn là hoán vị
các phn t trong tp ngun P)
lOMoARcPSD|40651217
5. Các h mt mã c in- H mã hóa thay
thế(Substitution Cipher)
1. Thay thế ơn (A simple substitution cipher):
h trong ó mt ký t ca bản ược thay bng môt
ký t tương ứng trong bn mã.
Mt ánh x 1-1 t bn ti bản ược s dng mã
hoá toàn b thông ip.
lOMoARcPSD|40651217
5. Các h mt mã c in- H mã hóa thay
thế(Substitution Cipher)
2. Thay thế ng âm (A homophonic substitution cipher):
mt t ca bn th ược ánh x ti mt trong s
mt và i ký t ca bn mã
ánh x 1-n (one-to-many): dụ, “Athể tương ng
với 5, 13, 25, hoăc
56, Bth tương ng vi 7, 19, 31,
hoăc 42, v.v.
lOMoARcPSD|40651217
5. Các h mt mã c in- H mã hóa thay
thế(Substitution Cipher)
3. Thay thế a mu t (A polyalphbetic substitution
cipher):
ược to nên t nhiu thut toán mã hoá thay thế ơn.
Ánh x 1-1.
d, th năm thuật toán hoá ơn khác nhau ưc s
dụng; ăc biê thuật toán hoá ơn ược s dng thay i theo
v trí ca mi ký t trong bn rõ.
lOMoARcPSD|40651217
5. Các h mt mã c in- H mã hóa thay
thế(Substitution Cipher)
4. Thay thế a sơ ồ (A polygram substitution cipher):
các khi ký t ược mã hoá theo nhóm.
thut toán tng quát nht, cho phép thay thế các nhóm
ký t của văn bản gc.
dụ, “ABA” thể tương ng với “RTQ”, “ABBthể
tương ứng với “SLL”, v.v.
lOMoARcPSD|40651217
5. Các h mt mã c in- H mã hóa thay
thế(Substitution Cipher)
Tng quát:
Cho P = C = Z
n
K là tp hp tt c các hoán v ca n phn t 0, 1, …, n-
1.
mi khóa là mt hoán v ca n phn t 0, 1, …,
n-1.
lOMoARcPSD|40651217
5. Các h mt mã c in- H mã hóa thay
thế(Substitution Cipher)
Ưu im:
Đơn giản, thao tác hóa giải ược thc hin nhanh
chóng
Không gian khóa K gm n! phn t
Khc phc hn chế của phương pháp Shift Cipher: việc tn
công bng cách vét cn các giá tr khóa k K không kh
thi
Tht s an toàn???
lOMoARcPSD|40651217
5. Các h mt mã c in- H mã hóa thay
thế(Substitution Cipher)
AO VCO JO IBU RIBU
AO VCO JO IBU RI
Tn công
BU
da trên tn s
xut hin
?A H?A ?A ?NG tron??ca ký t g ngôn
NG
ng
lOMoARcPSD|40651217
MA HOA VA UNG DUNG
5. Các h mt mã c in- H mã hóa thay
thế(Substitution Cipher)
L FDPH L VDZ L FRQTXHUHG L FDPH
L VDZ L FRQTXHUHG i ?a?e i ?a? i
?????e?e? i came i saw i conquered
lOMoARcPSD|40651217
5. Các h mt mã c in- H mã hóa thay
thế(Substitution Cipher)
Chn mt hoán v p: Z
26
Z
26
làm khoá.
“happy” “GXLLD” “happy”
lOMoARcPSD|40651217
Độ an toàn ca mã thay thế
Mt khoá là mt hoán v ca 26 ch cái.
Có 26! (≈ 4.10
26
) hoán v (khoá)
Phá mã:
Không th duyt tng khoá mt.
Cách khác?
lOMoARcPSD|40651217
5. Các h mt mã c in- H mã hóa
thay thế(Substitution Cipher)
Phân tích tn s (tn sut):
Tính tn sut các ký t hoc nhóm ký t trong bn mã so
sánh vi tn sut thc tế trong các văn bản thường.
Ký tự: E > T > A > O >… > X > Q > Z
Nhóm 2 ký t (digraph): TH > HE > IN > ER > RE
> ON > AN > EN > …
Nhóm 3 ký t (Trigraph): THE > AND > TIO > ATI > FOR > THA
> TER > RES >…
lOMoARcPSD|40651217
5. Các h mt mã c in- H mã hóa
thay thế(Substitution Cipher)
tn
sut các ký t
(trong tiếng
Anh)
lOMoARcPSD|40651217
5. Các h mt mã c in- H mã hóa
thay thế(Substitution Cipher)
Trong phân tích mt mã, phép phân tích tn suất là phương pháp thường dùng
phân tích mt c in, bng cách nh tn sut các t hoc nhóm t
trong bn mã và so sánh vi tn sut thc tế trong các văn bản thường.
Nguyên ca phân tích tn sut da trên mt thc tế trong mi ngôn ng,
mi t trong bng ch cái mt tn sut xut hin nht nh. Tn sut này
càng rõ ràng khi văn bn phân tích càng dài. d trong tiếng Anh, E, T, A
O nhng ch cái xut hin nhiu nht, trong khi Z, Q X li rt hiếm hoi.
Tương tự, ta có TH, ER, ON, và AN là các nhóm ký t ph thông nht, còn SS,
EE, TT, FF các b ôi t lp xut hin nhiu nht
[1]
. "ETAOIN SHRDLU"
là 12 ký t có tn sut cao nht trong một văn bản tiếng Anh thông thường.
Trong mt s bn mã, khi mt vài ặc trưng ngôn ng ược m thy, rt th
nó có th b phá v bng tn công ch t bn mã.
lOMoARcPSD|40651217
6. Các h mt mã c in - H
Affine
lOMoARcPSD|40651217
6. Các h mt mã c in - H mã Affine
lOMoARcPSD|40651217
VD và bài tp
a = 7, b = 13:
y = (7x + 13) (mod 26).
Mã hóa: BAOMATTHONGTIN ?
lOMoARcPSD|40651217
6. Các h mt mã c in - H
Affine
Vn : gii mã chính xác thông tin ???
e
k
phi là song ánh
a và n nguyên t cùng nhau: GCD(a, n)=1
6. Các h mt mã c in - H mã Affine
Ví d: Gi s P = C = Z
26
.
Thut toán:
lOMoARcPSD|40651217
hóa:
khóa:
gii mã:
. iu kin: a 26 nguyên t cùng nhau:
GCD(a, n)=1
lOMoARcPSD|40651217
6. Các h mt mã c in - H
Affine
Ví d
Khóa
Plain(a): abcdefghijklmnopqrstuvwxyz
Cipher(b):
DKVQFIBJWPESCXHTMYAUOLRGZN
Mã hóa:
lOMoARcPSD|40651217
6. Các h mt mã c in - H
Plaintext: ifwewishtoreplaceletters
Ciphertext:
WIRFRWAJUHYFTSDVFSFUUFYA
Affine
Nhn xét: e
k
(x) = (ax + b) mod 26, trong ó a, b Z
26
.
Trường hp a = 1: mã dch vòng (shift cipher).
lOMoARcPSD|40651217
6. Các h mt mã c in - H
Gii mã: Tìm x? y = (ax + b) (mod
26) (*) ax = (y b) (mod 26) x = a
-1
(y
b) (mod 26). (**) Vn : Tính a
-1
.
Để có a
-1
, cn GCD (a, 26)=1.
Tính a
-1
: Thut toán Euclide
m rng.
lOMoARcPSD|40651217
6. Các h mt mã c in - H
Affine
Chng minh:
y = (ax + b) mod 26
y = (ax mod 26 + b mod 26) mod 26
y mod 26 = ax mod 26 + b mod 26
ax mod 26 = y mod 26 b mod 26
lOMoARcPSD|40651217
6. Các h mt mã c in - H
ax = (y mod 26 b mod 26) mod 26
ax = (y-b) mod 26
x = a
-1
((y-b) mod 26)
lOMoARcPSD|40651217
6. Các h mt mã c in - H
lOMoARcPSD|40651217
6. Các h mt mã c in - H
(n) kh năng chọn giá tr a
n (n) kh năng chọn la khóa k = (a, b)
lOMoARcPSD|40651217
7. Thut toán Euclide m rng
Gii pt nx + ay = 1.
Nếu d = UCLN(n, a) thì tn ti các s nguyên x, y sao cho nx
+ ay = d
Đặt r0 = n, r1 = a.
Chia r0 cho r1 ược s dư r2 và thương số nguyên q1.
Nếu r2 = 0 thì dng, nếu r2 khác 0 thì tiếp tc chia r1 cho
r2 ược s dư r3, …
dãy ri gim thc s nên sau hu hạn bước thì ta ược
s dư r(m+2) = 0., trong ó s cuối cùng khác 0 là r(m+1)
= d.
lOMoARcPSD|40651217
7. Thut toán Euclide m rng
Tìm x, y theo công thc truy hi:
n.xi + a.yi = ri với i = 0,1,…
Như vậy t
ri = q(i+1) .r(i+1) + r(i+2)
suy ra công thc mà có th chn: x(i+2) = xi
q(i+1).x(i+1) (1) y(i+2) = yi
q(i+1).y(i+1) (2)
lOMoARcPSD|40651217
lOMoARcPSD|40651217
7. Thut toán Euclide m rng
Xây dng dãy s:
Nhn xét:
lOMoARcPSD|40651217
lOMoARcPSD|40651217
lOMoARcPSD|40651217
Ví d: Tìm s nghch o (nếu có) ca 30 (a) theo
modulo 101 (n)
c i
n
a
r
q
y0
y1
y
0
101
30
11
3
0
1
-3
1
30
11
8
2
1
-3
7
2
11
8
3
1
-3
7
-10
3
8
3
2
2
7
-10
27
4
3
2
1
1
-10
27
-37
5
2
1
0
.
.
.
.
-37 mod 101 = 64 hay 30
-1
= 64 (mod 101).
lOMoARcPSD|40651217
Bài tp
1. Tìm s nghch o (nếu có) ca 26 (a) theo modulo 101
(n)
2. Viết chương trình mã hóa ANBMTT vi K = (a, b) =
(7,3) trên Z
26
3. Viết chương trình giải mã chui AXG vi K = (a,
b) = (7,3) trên Z
26
lOMoARcPSD|40651217
Bài tp
4. Cho chui mã trong Z
26
:
J
T
N
Z
Q
A
H
Q
Y
L
S
L
U
D
X
P
U
D
S
T
N
Z
D
J
Gii mã chui trên, biết:
A = 17597, B = 1229; y = Ax +B
lOMoARcPSD|40651217
Gii thut
(a, n>0):
function ModuloInverse(a
, n);
begin y0:= 1; y1:= 0;
while n ≠ 0
do begin q:= a div n;
y:= y0 - q * y1;
y0:= y1;
y1:= y;
r:= a mod n;
a:= n; n:= r;
end;
Result:= y0; end;
lOMoARcPSD|40651217
17597
-1
= 5 (mod 26).
=> Gii mã: x = (A
-1
(y-B)) mod 26
Gi ý: Tìm s nghch modulo
26 (n)
o ca 17597 (a)
theo
c i n a r
q y0 y1
y
0 26 17597 21
676 1 0
1
1 21
26
5 1 0
1
-1
2 5
21
1 4 1
-1
5
3 1
5
0 5 -1
5
-26
4 0
1
. . 5
-26
.
lOMoARcPSD|40651217
Bài tp
6. hóa chui HAPPYNEWYEAR vi K = (a, b) trên Z
26
(a
phần khi chia 2 số cui s sinh viên ca 1
người trong nhóm (≤2) cho 26,
b = (a + 2) mod 26)
Ghi chui ã hóa ra 1 t giy b sung thêm vào cui
chui này chui mã hóa ca 1 t tùy ý nào ó, kèm khóa
K và h tên, mã s sinh viên ca nhóm mình.
7. Gii chui ca nhóm khác cùng bàn trên (nếu
s nhóm lẻ, thì nhóm lại kết hp cùng nhóm
bàn dưới).
lOMoARcPSD|40651217
8. Phương pháp Vigenere
Trong phương pháp mã hóa bằng thay thế: vi mt khóa k
ược chn, mi phn t x P ược ánh x vào duy nht mt
phn t y C.
Phương pháp Vigenere s dng khóa có dài m.
Đưc t tên theo nhà khoa hc Blaise de Vigenere (thế k 16)
th xem phương pháp hóa Vigenere bao gồm m phép
mã hóa bng dch chuyn ưc áp dng
luân phiên nhau theo chu k
Không gian khóa K của phương pháp Vigenere s phn t
n
m
Ví d: n=26, m=5 thì không gian khóa ~1.1 x 10
7
lOMoARcPSD|40651217
. Phương pháp Vigenere
lOMoARcPSD|40651217
8
Chn s nguyên dương m. Định
nghĩa P = C = K = (Z
n
)
m
lOMoARcPSD|40651217
lOMoARcPSD|40651217
Bài tp
Cho chui mã trong Z
26
:
9 8 22 10 15 15 13 9 14 25 15 12 21
Gii mã chui trên, biết m = 5, keyword là LUCKY B
sung thêm vào cui chui mã trên 5 cp s là các cp s
lOMoARcPSD|40651217
trong mã sinh viên mod 26, gii mã nó vi keyword
LUCKY.
(Ví d: 2154027079 => 21 2 2 18 1)
Đáp án:
Y O U A R E T H E B E S T
lOMoARcPSD|40651217
Bài tp
1. hóa h tên y ca bn trong Z
26
vi keyword
do bn chn.
2. Ghi chui hóa ra 1 t giy trng, kèm theo keyword
và mã s sinh viên ca bn (trong ngoc)
3. Sinh viên mi dãy gii chui hóa ca sinh viên
dãy n cnh (v trí ngi i xứng qua ưng phân
cách). Np li kết qu quá trình gii mã.
9. Phương pháp mã hóa Hill
Mt mã Hill (1929)
lOMoARcPSD|40651217
Tác gi: Lester S. Hill (18911961) Ý
ng chính:
S dng m t hp tuyến tính ca m t trong
plaintext to ra m ký t trong ciphertext Ví d:
9. Phương pháp mã hóa Hill
Chn s nguyên dương m.
Định nghĩa P = C = (Z
n
)
m
là tp hp các ma trn kh nghch.
Lưu ý: mọi phép toán s học dưới ây ều ược thc hin trên
Z
n
lOMoARcPSD|40651217
lOMoARcPSD|40651217
9. Phương pháp mã hóa Hill
d: cho h Hill M = 2 (khóa là các ma trn vuông
cp 2) bng ch cái bng ch cái tiếng Anh (N = 26).
Cho khóa:
Hãy mã hóa xâu P = “HELP” và giải mã ngược li bn mã thu
ược.
9. Phương pháp mã hóa Hill
Mã hóa:
lOMoARcPSD|40651217
Chia xâu bn rõ thành 2 vecto 2 chiều “H E” (7, 4) và
“L P” (11, 15).
Tiến hành mã hóa lần lưt:
Vi P
1
= (7, 4) ta có:
C
1
= P
1
*K = (7, 4) = (3, 15) = (D, P) Vi P
2
=
(11, 15) ta có:
C
2
= P
2
*K = (11, 15) = (11, 4) = (L, E)
Vy bn mã thu ược là C = “DPLE
lOMoARcPSD|40651217
Gii mã:
9Tính khóa gii mã: . Phương pháp hóa
Hillma trn nghch o ca ma trn khóa trên Z
26
Vi K = det(K) = (k
11
*k
22
-k
21
*k
12
) mod N mt phn t
phn t nghch o det(K)
-1
trên Z
N
thì khóa gii mã s
K-1 = det(K)-1
Áp dng vào trưng hp trên, ta det(K) = (15-6) mod 26 =
9.
GCD(9, 26) = 1 nên áp dng thut toán Euclid m rng tìm
ược det(K)
-1
= 3.
lOMoARcPSD|40651217
Downloaded by Phuong Le (lephuong0301@gmail.com)
Vy K
-1
= 3 =
9. Phương pháp mã hóa Hill
Gii mã:
C = “D P” = (3, 15)
P = C*K
-1
= (3, 15) = (3, 15) = “H E”.
Tương tự, kết qu giải xâu C = “L E” bản P = “L P”.
Lưu ý: trong d trên s dụng khóa K kích thước nh nên
không khó tìm ược khóa giải mã. Trong trường hp tng
quát, iu này là không d dàng.
lOMoARcPSD|40651217
9. Phương pháp mã hóa Hill
Bài tp: cho h Hill M = 2 (khóa các ma trn vuông
cp 2) bng ch cái bng ch cái tiếng Anh (N = 26). Cho
khóa:
Ga s Mã s SV là ABCDEFGHIJ
Hãy mã hóa xâu P = “GODNESS” và giải mã ngược li bn mã
thu ược vi
a11 = IJ mod 26, a12 = GH mod 26, a21 =
EF mod 26, a22 = CD mod 26
| 1/81

Preview text:

lOMoARcPSD| 40651217 lOMoAR cPSD| 40651217 lOMoARcPSD| 40651217 lOMoARcPSD| 40651217 1. Modulo số học
Hai số nguyên a và b ược gọi là ồng dư modulo n, tức
a ≡ b(mod n) nếu a – b = kn, hay: a = kn + b (k là một sô ́ nguyên, n > 1).
Nếu a>0, b>0, acho n.
Downloaded by Phuong Le (lephuong0301@gmail.com) lOMoARcPSD| 40651217
Cách gọi khác: b là thặng dư của a theo modulo n,
hoặc a là ồng dư của b theo modulo n lOMoARcPSD| 40651217 1. Modulo số học Ví dụ 1:
4 ≡ 1 (mod 3), vì: 4 – 1 = 1.3, hay 4 = 1.3 + 1 Ví dụ 2: 5 ≡ 2 (mod 3) 5 ≡ 0 (mod 5) 38 ≡ 14 (mod 2)
Downloaded by Phuong Le (lephuong0301@gmail.com) lOMoARcPSD| 40651217 1. Modulo số học Ví dụ 3: 2 ≡ -3 (mod 5) -3 ≡ 7 (mod 5) -3 ≡ -8 (mod 5)
Downloaded by Phuong Le (lephuong0301@gmail.com) lOMoARcPSD| 40651217 1. Modulo số học Câu hỏi 1: 28 ≡ ? (mod 3) 28 ≡ ? (mod 35) 28 ≡ -1 (mod ?) Câu hỏi 2:
Downloaded by Phuong Le (lephuong0301@gmail.com) lOMoARcPSD| 40651217 28 ≡ 17 (mod 11) ? 1. Modulo số học Quan hệ
ồng dư là quan hệ tương ương:
Tính phản xạ: a ≡ a (mod n)
Tính ối xứng: a ≡ b (mod n) b ≡ a (mod n) a, b
Tính bắc cầu: nếu a ≡ b (mod n) và b ≡ c (mod n) thì a ≡ c (mod n)
Downloaded by Phuong Le (lephuong0301@gmail.com) lOMoARcPSD| 40651217 1. Modulo số học
Downloaded by Phuong Le (lephuong0301@gmail.com) lOMoARcPSD| 40651217 1. Modulo số học Các phép tính Modulo n
(a + b) mod n = ((a mod n) + (b mod n)) mod n
(a - b) mod n = ((a mod n) - (b mod n)) mod n
(a × b) mod n = ((a mod n) × (b mod n)) mod n
(a × (b + c)) mod n = (((a × b) mod n) + ((a × c) mod n)) mod n
Các phép tính trong các hệ mã mật hầu hết ều thực
hiện ối với một modulo N nào ó.
Downloaded by Phuong Le (lephuong0301@gmail.com) lOMoARcPSD| 40651217 2. Vành ZN
Tập các sô ́ nguyên ZN = {0, 1, …, N-1} tron g ó N
Downloaded by Phuong Le (lephuong0301@gmail.com) lOMoARcPSD| 40651217 2. Vành ZN
là một số tự nhiên dương với hai phép toán cộng (+) và
nhân (.) ược ịnh nghĩa như sau:
Hầu hết các tính toán trong các hệ mã mật ều ược thực
hiện trên một vành ZN nào ó. lOMoARcPSD| 40651217 2. Vành ZN Trên vành ZN
số 0 là phần tử trung hòa vì
số 1 ược gọi là phần tử ơn vị vì Ví dụ N=9
Downloaded by Phuong Le (lephuong0301@gmail.com) lOMoARcPSD| 40651217 2. Vành ZN Câu hỏi: cho N=6 Z6 = ? 3 + 4 = 7 ? (mod 6) 4 5 = 20 ? (mod 6) 2 + 3 = ? 2 3 = ? lOMoARcPSD| 40651217
3. Phần tử nghịch ảo trên vành Z N
Khái niệm về số nghịch ảo của một số trên một vành số nguyên ZN:
Gỉa sử a ZN và tồn tại b ZN sao cho: a.b = (a b) mod N = 1
Khi ó, b ược gọi là phần tử nghịch ảo của a trên ZN , ký hiệu: a-1 = b. lOMoARcPSD| 40651217
3. Phần tử nghịch ảo trên vành
Hầu hết các tính toán trong các hệ mã mật ều ược thực
hiện trên một vành ZN nào ó. Z N
Tìm phần tử nghịch ảo của một số a ZN cho trước tìm 2 số b và k sao cho: a.b = k.N + 1, với b, k ZN hay: a-1 b (mod N). lOMoARcPSD| 40651217
3. Phần tử nghịch ảo trên vành Ví dụ: 30-1 64 (mod 101)
Câu hỏi: Tìm phần tử nghịch ảo trên Z9 của a) a = 4 b) a = 6 Z N
Định lý về sự tồn tại của phần tử nghịch ảo: lOMoARcPSD| 40651217
3. Phần tử nghịch ảo trên vành
Nếu ước số chung lớn nhất (GCD-Greatest Common Divisor) GCD(a, N) = 1,
Thì tồn tại duy nhất 1 số
là phần tử nghịch ảo của a, nghĩa là thỏa mãn lOMoARcPSD| 40651217
4. Các hệ mật mã cổ iển – Hệ
mã dịch vòng (shift cipher) Shift Cipher:
Một trong những phương pháp lâu ời nhất ược sử dụng ể mã hóa.
Thông iệp ược mã hóa bằng cách dịch chuyển xoay
vòng từng ký tự i k vị trí trong bảng chữ cái
Trường hợp với k=3 gọi là phương pháp mã hóa Caesar. Phương pháp ơn giản, lOMoARcPSD| 40651217
4. Các hệ mật mã cổ iển – Hệ
Thao tác xử lý mã hóa và giải mã ược thực hiện nhanh chóng
Không gian khóa K = {0, 1, 2, …, n-1} = Zn
Dễ bị phá vỡ bằng cách thử mọi khả năng khóa k lOMoARcPSD| 40651217
4. Các hệ mật mã cổ iển – Hệ
mã dịch vòng ( shift cipher) Ví dụ:
Mã hóa một thông iệp ược biểu diễn bằng các chữ cái từ
A ến Z (26 chữ cái), ta sử dụng Z26.
Thông iệp ược mã hóa sẽ không an toàn và có thể dễ dàng
bị giải mã bằng cách thử lần lượt 26 giá trị khóa k. lOMoARcPSD| 40651217
4. Các hệ mật mã cổ iển – Hệ
Tính trung bình, thông iệp ã ược mã hóa có thể bị giải mã
sau khoảng 26/2 = 13 lần thử khóa lOMoARcPSD| 40651217
4. Các hệ mật mã cổ iển – Hệ Ta có sơ ồ mã như sau: lOMoARcPSD| 40651217
4. Các hệ mật mã cổ iển – Hệ
Giả sử P = C = K = Z26 với 0 k 25
Mã hóa: ek(x) = (x + k) mod 26
Giải mã: dk(x) = (y – k) mod 26 (x,y Z26)
mã dịch vòng ( shift cipher)
Ví dụ: Cho bản rõ (K=17)
X = x1; x2; : : : ; x6 = A T T A C K .
X = x1; x2; : : : ; x6 = 0; 19; 19; 0; 2; 10. lOMoARcPSD| 40651217
4. Các hệ mật mã cổ iển – Hệ Mã hóa
y1 = (x1 + k) mod 26 = (0 + 17) mod 26 = 17 = R. y2 = y3 = (19 + 17) mod 26 = 10 = K. y4 = 17 = R.
y5 = (2 + 17) mod 26 = 19 = T. y6 = (10 + 17) mod 26 = 1 = B. Bản mã: R K K R T B lOMoARcPSD| 40651217
4. Các hệ mật mã cổ iển – Hệ
mã dịch vòng ( shift cipher) Giải mã
Y = y1; y2; : : : ; y6 = R K K R T B . Y = y1; y2; : : : ; y6 =
17; 10; 10; 17; 19; 1 x1 = (y1 - k) mod 26 = (17 - 17) mod 26 = 0 = A.
x2 = x3 = (10 - 17) mod 26 = 19 = T. x4 =
0 = A. x5 = (19 - 17) mod 26 = 2 = C. x6 = (1 - 17) mod 26 = 10 = K. lOMoARcPSD| 40651217
4. Các hệ mật mã cổ iển – Hệ Bản rõ: ATTACK
mã dịch vòng ( shift cipher)
Bài tập 1: Cho bản rõ (thông iệp) sau X = A N TOAN VA BAO MAT THONG TIN.
Hãy mã hóa và giải mã nó bằng hệ mã dịch vòng, với khóa K = 6
Bài tập 2: Cho bản mã sau lOMoARcPSD| 40651217
4. Các hệ mật mã cổ iển – Hệ
X = G T Z U G T B G H G U S G Z Z N U T M Z O T Hãy giải
mã nó bằng hệ mã dịch vòng, với khóa K là (3 số cuối Mã số sv) mod 15.
mã dịch vòng ( shift cipher)
Bài tập 3: Cho bản rõ (thông iệp) sau X = 63CNTT1.
Hãy mã hóa và giải mã nó bằng hệ mã dịch vòng, với khóa
K = 15, sử dụng vành Z36 dưới ây: lOMoARcPSD| 40651217
4. Các hệ mật mã cổ iển – Hệ 0 1 2 3 4 5 6 7 8 9 26 27 28 29 30 31 32 33 34 35 lOMoARcPSD| 40651217
5. Các hệ mật mã cổ iển- Hệ mã hóa thay thế(Substitution Cipher) Substitution Cipher:
Phương pháp mã hóa nổi tiếng
Được sử dụng phổ biến hàng trăm năm nay
Ý tưởng: thay mỗi ký tự trong P bằng một ký tự khác.
Quy tắc thay thế chính là khóa, trong ó mỗi khóa là một
hoán vị của bảng chữ cái. Mã hóa thông iệp hoán vị
các phần tử trong bảng chữ cái (tổng quát hơn là hoán vị
các phần tử trong tập nguồn P) lOMoARcPSD| 40651217
5. Các hệ mật mã cổ iển- Hệ mã hóa thay thế(Substitution Cipher)
1. Thay thế ơn (A simple substitution cipher):
là hệ mã trong ó một ký tự của bản rõ ược thay bằng môt ̣
ký tự tương ứng trong bản mã.
Một ánh xạ 1-1 từ bản rõ tới bản mã ược sử dụng ể mã hoá toàn bộ thông iệp. lOMoARcPSD| 40651217
5. Các hệ mật mã cổ iển- Hệ mã hóa thay thế(Substitution Cipher)
2. Thay thế ồng âm (A homophonic substitution cipher):
một ký tự của bản rõ có thể ược ánh xạ tới một trong số
một và i ký tự của bản mã
Sơ ồ ánh xạ 1-n (one-to-many): ví dụ, “A” có thể tương ứng
với 5, 13, 25, hoăc̣ 56, “B” có thể tương ứng với 7, 19, 31, hoăc ̣ 42, v.v. lOMoARcPSD| 40651217
5. Các hệ mật mã cổ iển- Hệ mã hóa thay thế(Substitution Cipher)
3. Thay thế a mẫu tự (A polyalphbetic substitution cipher):
ược tạo nên từ nhiều thuật toán mã hoá thay thế ơn. Ánh xạ 1-1.
Ví dụ, có thể có năm thuật toán mã hoá ơn khác nhau ược sử
dụng; ăc ̣ biêṭ thuật toán mã hoá ơn ược sử dụng thay ổi theo
vị trí của mỗi ký tự trong bản rõ. lOMoARcPSD| 40651217
5. Các hệ mật mã cổ iển- Hệ mã hóa thay thế(Substitution Cipher) 4.
Thay thế a sơ ồ (A polygram substitution cipher):
các khối ký tự ược mã hoá theo nhóm.
là thuật toán tổng quát nhất, cho phép thay thế các nhóm
ký tự của văn bản gốc.
Ví dụ, “ABA” có thể tương ứng với “RTQ”, “ABB” có thể
tương ứng với “SLL”, v.v. lOMoARcPSD| 40651217 5.
Các hệ mật mã cổ iển- Hệ mã hóa thay thế(Substitution Cipher) Tổng quát: Cho P = C = Zn
K là tập hợp tất cả các hoán vị của n phần tử 0, 1, …, n- 1. mỗi khóa
là một hoán vị của n phần tử 0, 1, …, n-1. lOMoARcPSD| 40651217
5. Các hệ mật mã cổ iển- Hệ mã hóa thay thế(Substitution Cipher) Ưu iểm:
Đơn giản, thao tác mã hóa và giải mã ược thực hiện nhanh chóng
Không gian khóa K gồm n! phần tử
Khắc phục hạn chế của phương pháp Shift Cipher: việc tấn
công bằng cách vét cạn các giá trị khóa k K là không khả thi Thật sự an toàn??? lOMoARcPSD| 40651217
5. Các hệ mật mã cổ iển- Hệ mã hóa thay thế(Substitution Cipher) AO VCO JO IBU RIBU
AO VCO JO IBU RITấn công BU dựa trên tần số xuất hiện
?A H?A ?A ?NG tron??của ký tự g ngôn NG ngữ lOMoARcPSD| 40651217 MA HOA VA UNG DUNG
5. Các hệ mật mã cổ iển- Hệ mã hóa thay thế(Substitution Cipher)
L FDPH L VDZ L FRQTXHUHG L FDPH
L VDZ L FRQTXHUHG i ?a?e i ?a? i
?????e?e? i came i saw i conquered lOMoARcPSD| 40651217
5. Các hệ mật mã cổ iển- Hệ mã hóa thay thế(Substitution Cipher)
Chọn một hoán vị p: Z26 Z26 làm khoá.
“happy” “GXLLD” “happy” lOMoARcPSD| 40651217
Độ an toàn của mã thay thế
Một khoá là một hoán vị của 26 chữ cái.
Có 26! (≈ 4.1026) hoán vị (khoá) Phá mã:
Không thể duyệt từng khoá một. Cách khác? lOMoARcPSD| 40651217
5. Các hệ mật mã cổ iển- Hệ mã hóa
thay thế(Substitution Cipher)
Phân tích tần số (tần suất):
Tính tần suất các ký tự hoặc nhóm ký tự trong bản mã so
sánh với tần suất thực tế trong các văn bản thường.
Ký tự: E > T > A > O >… > X > Q > Z
Nhóm 2 ký tự (digraph): TH > HE > IN > ER > RE
> ON > AN > EN > …
Nhóm 3 ký tự (Trigraph): THE > AND > TIO > ATI > FOR > THA > TER > RES >… lOMoARcPSD| 40651217
5. Các hệ mật mã cổ iển- Hệ mã hóa
thay thế(Substitution Cipher) ồ tần suất các ký tự (trong tiếng Anh) lOMoARcPSD| 40651217
5. Các hệ mật mã cổ iển- Hệ mã hóa
thay thế(Substitution Cipher)
Trong phân tích mật mã, phép phân tích tần suất là phương pháp thường dùng
ể phân tích mật mã cổ iển, bằng cách tính tần suất các ký tự hoặc nhóm ký tự
trong bản mã và so sánh với tần suất thực tế trong các văn bản thường.
Nguyên lý của phân tích tần suất dựa trên một thực tế là trong mỗi ngôn ngữ,
mỗi ký tự trong bảng chữ cái có một tần suất xuất hiện nhất ịnh. Tần suất này
càng rõ ràng khi văn bản phân tích càng dài. Ví dụ trong tiếng Anh, E, T, A và
O là những chữ cái xuất hiện nhiều nhất, trong khi Z, Q và X lại rất hiếm hoi.
Tương tự, ta có TH, ER, ON, và AN là các nhóm ký tự phổ thông nhất, còn SS,
EE, TT, và FF là các bộ ôi ký tự lặp xuất hiện nhiều nhất[1]. "ETAOIN SHRDLU"
là 12 ký tự có tần suất cao nhất trong một văn bản tiếng Anh thông thường.
Trong một số bản mã, khi một vài ặc trưng ngôn ngữ ược tìm thấy, rất có thể
nó có thể bị phá vỡ bằng tấn công chỉ từ bản mã. lOMoARcPSD| 40651217
6. Các hệ mật mã cổ iển - Hệ mã Affine lOMoARcPSD| 40651217
6. Các hệ mật mã cổ iển - Hệ mã Affine lOMoARcPSD| 40651217 VD và bài tập a = 7, b = 13: y = (7x + 13) (mod 26). Mã hóa: BAOMATTHONGTIN ? lOMoARcPSD| 40651217
6. Các hệ mật mã cổ iển - Hệ mã Affine Vấn
ề: giải mã chính xác thông tin ??? • ek phải là song ánh
• a và n nguyên tố cùng nhau: GCD(a, n)=1
6. Các hệ mật mã cổ iển - Hệ mã Affine
Ví dụ: Giả sử P = C = Z26. Thuật toán: lOMoARcPSD| 40651217 mã hóa: khóa: giải mã:
. iều kiện: a và 26 nguyên tố cùng nhau: GCD(a, n)=1 lOMoARcPSD| 40651217
6. Các hệ mật mã cổ iển - Hệ mã Affine Ví dụ Khóa
• Plain(a): abcdefghijklmnopqrstuvwxyz • Cipher(b): DKVQFIBJWPESCXHTMYAUOLRGZN Mã hóa: lOMoARcPSD| 40651217
6. Các hệ mật mã cổ iển - Hệ mã
• Plaintext: ifwewishtoreplaceletters • Ciphertext: WIRFRWAJUHYFTSDVFSFUUFYA Affine
Nhận xét: ek(x) = (ax + b) mod 26, trong ó a, b Z26.
Trường hợp a = 1: mã dịch vòng (shift cipher). lOMoARcPSD| 40651217
6. Các hệ mật mã cổ iển - Hệ mã
Giải mã: Tìm x? y = (ax + b) (mod
26) (*) ax = (y – b) (mod 26) x = a-1(y
– b) (mod 26). (**) Vấn ề: Tính a-1.
Để có a-1, cần GCD (a, 26)=1.
Tính a-1: Thuật toán Euclide mở rộng. lOMoARcPSD| 40651217
6. Các hệ mật mã cổ iển - Hệ mã Affine Chứng minh: y = (ax + b) mod 26
y = (ax mod 26 + b mod 26) mod 26
y mod 26 = ax mod 26 + b mod 26
ax mod 26 = y mod 26 – b mod 26 lOMoARcPSD| 40651217
6. Các hệ mật mã cổ iển - Hệ mã
ax = (y mod 26 – b mod 26) mod 26 ax = (y-b) mod 26 x = a-1 ((y-b) mod 26) lOMoARcPSD| 40651217
6. Các hệ mật mã cổ iển - Hệ mã lOMoARcPSD| 40651217
6. Các hệ mật mã cổ iển - Hệ mã
(n) khả năng chọn giá trị a n
(n) khả năng chọn lựa khóa k = (a, b) lOMoARcPSD| 40651217
7. Thuật toán Euclide mở rộng Giải pt nx + ay = 1.
• Nếu d = UCLN(n, a) thì tồn tại các số nguyên x, y sao cho nx + ay = d • Đặt r0 = n, r1 = a.
• Chia r0 cho r1 ược số dư r2 và thương số nguyên q1.
• Nếu r2 = 0 thì dừng, nếu r2 khác 0 thì tiếp tục chia r1 cho r2 ược số dư r3, …
• Vì dãy ri là giảm thực sự nên sau hữu hạn bước thì ta ược
số dư r(m+2) = 0., trong ó số dư cuối cùng khác 0 là r(m+1) = d. lOMoARcPSD| 40651217
7. Thuật toán Euclide mở rộng
• Tìm x, y theo công thức truy hồi:
n.xi + a.yi = ri với i = 0,1,… • Như vậy từ ri = q(i+1) .r(i+1) + r(i+2)
suy ra công thức mà có thể chọn: x(i+2) = xi –
q(i+1).x(i+1) (1) y(i+2) = yi – q(i+1).y(i+1) (2) lOMoARcPSD| 40651217 lOMoARcPSD| 40651217
7. Thuật toán Euclide mở rộng Xây dựng dãy số: Nhận xét: lOMoARcPSD| 40651217 lOMoARcPSD| 40651217 lOMoARcPSD| 40651217
Ví dụ: Tìm số nghịch ảo (nếu có) của 30 (a) theo modulo 101 (n) Bước i n a r q y0 y1 y 0 101 30 11 3 0 1 -3 1 30 11 8 2 1 -3 7 2 11 8 3 1 -3 7 -10 3 8 3 2 2 7 -10 27 4 3 2 1 1 -10 27 -37 5 2 1 0 . . . .
-37 mod 101 = 64 hay 30-1 = 64 (mod 101). lOMoARcPSD| 40651217 Bài tập 1.
Tìm số nghịch ảo (nếu có) của 26 (a) theo modulo 101 (n) 2.
Viết chương trình mã hóa ANBMTT với K = (a, b) = (7,3) trên Z26 3.
Viết chương trình giải mã chuỗi AXG với K = (a, b) = (7,3) trên Z26 lOMoARcPSD| 40651217 Bài tập 4. Cho chuỗi mã trong Z26: J T N Z Q
A H Q Y L S L U D X P U D S T N Z D J
Giải mã chuỗi trên, biết:
A = 17597, B = 1229; y = Ax +B lOMoARcPSD| 40651217
Giải thuật function ModuloInverse(a , n); (a, n>0): begin y0:= 1; y1:= 0; while n ≠ 0 do begin q:= a div n; y:= y0 - q * y1; y0:= y1; y1:= y; r:= a mod n; a:= n; n:= r; end; Result:= y0; end; lOMoARcPSD| 40651217
Gợi ý: Tìm số nghịch modulo ảo của 17597 (a) theo 26 (n) Bước i n a r q y0 y1 y 0 26 17597 21 676 1 0 1 1 21 26 5 1 0 1 -1 2 5 21 1 4 1 -1 5 3 1 5 0 5 -1 5 -26 4 0 1 . . 5 -26 . 17597-1 = 5 (mod 26).
=> Giải mã: x = (A-1(y-B)) mod 26 lOMoARcPSD| 40651217 Bài tập 6.
Mã hóa chuỗi HAPPYNEWYEAR với K = (a, b) trên Z26 (a
là phần dư khi chia 2 số cuối mã số sinh viên của 1
người trong nhóm (≤2) cho 26, b = (a + 2) mod 26)
Ghi chuỗi ã mã hóa ra 1 tờ giấy và bổ sung thêm vào cuối
chuỗi này chuỗi mã hóa của 1 từ tùy ý nào ó, kèm khóa
K và họ tên, mã số sinh viên của nhóm mình. 7.
Giải mã chuỗi mã của nhóm khác cùng bàn ở trên (nếu
số nhóm là lẻ, thì nhóm dư lại kết hợp cùng nhóm ở bàn dưới). lOMoARcPSD| 40651217 8. Phương pháp Vigenere
Trong phương pháp mã hóa bằng thay thế: với một khóa k
ược chọn, mỗi phần tử x P ược ánh xạ vào duy nhất một phần tử y C.
Phương pháp Vigenere sử dụng khóa có ộ dài m.
Được ặt tên theo nhà khoa học Blaise de Vigenere (thế kỷ 16)
Có thể xem phương pháp mã hóa Vigenere bao gồm m phép
mã hóa bằng dịch chuyển ược áp dụng
luân phiên nhau theo chu kỳ
Không gian khóa K của phương pháp Vigenere có số phần tử là nm
Ví dụ: n=26, m=5 thì không gian khóa ~1.1 x 107 lOMoARcPSD| 40651217 . Phương pháp Vigenere lOMoARcPSD| 40651217 8
Chọn số nguyên dương m. Định nghĩa P = C = K = (Zn)m lOMoARcPSD| 40651217 lOMoARcPSD| 40651217 Bài tập Cho chuỗi mã trong Z26:
9 8 22 10 15 15 13 9 14 25 15 12 21
Giải mã chuỗi trên, biết m = 5, keyword là LUCKY Bổ
sung thêm vào cuối chuỗi mã trên 5 cặp số là các cặp số lOMoARcPSD| 40651217
trong mã sinh viên mod 26, giải mã nó với keyword LUCKY.
(Ví dụ: 2154027079 => 21 2 2 18 1) Đáp án: Y O U A R E T H E B E S T lOMoARcPSD| 40651217 Bài tập 1.
Mã hóa họ và tên ầy ủ của bạn trong Z26 với keyword do bạn chọn. 2.
Ghi chuỗi mã hóa ra 1 tờ giấy trắng, kèm theo keyword
và mã số sinh viên của bạn (trong ngoặc) 3.
Sinh viên mỗi dãy giải mã chuỗi mã hóa của sinh viên
ở dãy bên cạnh (vị trí ngồi ối xứng qua ường phân
cách). Nộp lại kết quả quá trình giải mã.
9. Phương pháp mã hóa Hill Mật mã Hill (1929) lOMoARcPSD| 40651217
Tác giả: Lester S. Hill (1891–1961) Ý tưởng chính:
Sử dụng m tổ hợp tuyến tính của m ký tự trong
plaintext ể tạo ra m ký tự trong ciphertext Ví dụ:
9. Phương pháp mã hóa Hill
Chọn số nguyên dương m. Định nghĩa P = C = (Zn)m
là tập hợp các ma trận khả nghịch.
Lưu ý: mọi phép toán số học dưới ây ều ược thực hiện trên Zn lOMoARcPSD| 40651217 lOMoARcPSD| 40651217
9. Phương pháp mã hóa Hill
Ví dụ: cho hệ mã Hill có M = 2 (khóa là các ma trận vuông
cấp 2) và bảng chữ cái là bảng chữ cái tiếng Anh (N = 26). Cho khóa:
Hãy mã hóa xâu P = “HELP” và giải mã ngược lại bản mã thu ược.
9. Phương pháp mã hóa Hill Mã hóa: lOMoARcPSD| 40651217
Chia xâu bản rõ thành 2 vecto 2 chiều “H E” (7, 4) và “L P” (11, 15).
Tiến hành mã hóa lần lượt: Với P1 = (7, 4) ta có:
C1 = P1*K = (7, 4) = (3, 15) = (D, P) Với P2 = (11, 15) ta có: C2 = P2*K = (11, 15) = (11, 4) = (L, E) Vậy bản mã thu ược là C = “DPLE” lOMoARcPSD| 40651217 Giải mã:
9Tính khóa giải mã: . Phương pháp mã hóa
Hillma trận nghịch ảo của ma trận khóa trên Z26
Với K = và det(K) = (k11*k22-k21*k12) mod N là một phần tử có
phần tử nghịch ảo det(K)-1 trên ZN thì khóa giải mã sẽ là K-1 = det(K)-1
Áp dụng vào trường hợp trên, ta có det(K) = (15-6) mod 26 = 9.
GCD(9, 26) = 1 nên áp dụng thuật toán Euclid mở rộng tìm ược det(K)-1 = 3. lOMoARcPSD| 40651217 Vậy K-1 = 3 =
9. Phương pháp mã hóa Hill Giải mã: C = “D P” = (3, 15) P = C*K-1 = (3, 15) = (3, 15) = “H E”.
Tương tự, kết quả giải mã xâu C = “L E” là bản rõ P = “L P”.
Lưu ý: trong ví dụ trên sử dụng khóa K có kích thước nhỏ nên
không khó ể tìm ược khóa giải mã. Trong trường hợp tổng
quát, iều này là không dễ dàng.
Downloaded by Phuong Le (lephuong0301@gmail.com) lOMoARcPSD| 40651217
9. Phương pháp mã hóa Hill
Bài tập: cho hệ mã Hill có M = 2 (khóa là các ma trận vuông
cấp 2) và bảng chữ cái là bảng chữ cái tiếng Anh (N = 26). Cho khóa:
Gỉa sử Mã số SV là ABCDEFGHIJ
Hãy mã hóa xâu P = “GODNESS” và giải mã ngược lại bản mã thu ược với
a11 = IJ mod 26, a12 = GH mod 26, a21 = EF mod 26, a22 = CD mod 26