You are on page 1of 16

Thuật toán Euclid mở rộng :

Áp dụng : b= 550, a= 1759;


Q = 1759 Div 550 = 3 dư 109 => B3 = 109
T1 = A1 – Q.B1 = B1
T2 = A2 – Q.B2 = B2
A1 ( dòng dưới ) = B1( dòng trên) ; A2 ( dòng dưới ) = B2( dòng trên)
A3 ( dòng dưới ) = B3 (dòng trên)
Khi B3 =1 thì dừng lại
Q A1 A2 A3 B1 B2 B3

- 1 0 1759 0 1 550

A1 – A2 –
3 0 1 550 Q.B1= 1 Q.B2= 0 109
– 3.0 =1 – 3.1 = -3

5 1 -3 109 -5 16 5
21 -5 16 5 106 -339 4

1 106 -339 4 -111 355 1

Kết quả : 550 -1 mod 1759 = 355

Mã Hill
Bài tập áp dụng : giải bản mã “QQCD” thu được khi mã bản rõ bằng hệ mã Hill.
5 8
Cho khóa k = ( )
12 7
( lưu ý : thực hiện trên Z 26 )
Det k = ( 5.7 – 12.8 ) mod 26 = 17
Det k -1 = 17 – 1 mod 26
Áp dụng thuật toán Euclid :

Nguyễn Thị Trang


Q A1 A2 A3 B1 B2 B3
- 1 0 26 0 1 17
1 0 1 17 1 -1 9
1 1 -1 9 -1 2 8
1 -1 2 8 2 -3 1
–1
 17 mod 26 = -3 = 23
7 −8 23.7 23. (−8) 5 24
k -1 = 23 . ( )=( )=( )
−12 5 23. (−12) 23.5 10 11
QQCD => [16,16,2,3]

(𝑥1 , 𝑥2 ) = (16 16). ( 5 24


) = ( 16.5+16.10 16.24+16.11) = (6 14 )  G O
10 11

(𝑥3 , 𝑥4 ) = (2 3). ( 5 24
) = (2.5 + 3.10 2.24 + 3.11) = (14 3)  O D
10 11
Vậy bản rõ thu được từ bản mã QQCD là GOOD .

Bài tập hóa vị :


Ta có phương thức mã hoán vị như sau : Giả sử m, n là các số nguyên dương. Ta
viết bản rõ theo từng hàng thành một ma trận nxm. Sau đó tạo ra bản mã bằng cách
lấy các cột của ma trận này. Cho n = 3, m = 5 em hãy mô tả cách giải mã bản mã
’’WAT ORW REI DBN SUD ’’ thu được bằng phương pháp đã nêu ở trên.
---
Vì viết theo hàng và đọc theo cột của ma trận 3x5 => có bản mã thì viết theo cột và
đọc theo hàng để giải mã thu được bản rõ ban đầu.
W O R D S
A R E B U
T W I N D
 Bản rõ là WORDS ARE BUT WIND

Mã Affine
Hãy giải mã bản mã “ZFFPXNZXXQ” thu được từ mã Affine. Biết rằng “P”
là mã hóa của “y”, “Z” là mã hóa của “s”.
y = ax + b mod 26
Ta có : “P” là mã hóa của “y”, “Z” là mã hóa của “s”.
p =15; y = 24 ; z = 25; s = 18
15 = 24𝑎 + 𝑏 𝑎=7
𝑇𝑎 𝑐ó ℎệ 𝑝ℎươ𝑛𝑔 𝑡𝑟ì𝑛ℎ → { →{
25 = 18𝑎 + 𝑏 𝑏=3

Nguyễn Thị Trang


Hàm giải mã : x = Dk(y) = a-1 (y – b) mod 26 = 7 – 1 . (y – 3) mod 26
= 15(y-3) mod 26
Bản mã Z F F P X N Z X X Q

Mã tương ứng (y) 25 5 5 15 23 13 25 23 23 16

15(y-3) mod 26 18 4 4 24 14 20 18 14 14 13
Bản rõ S E E Y O U S O O N
Vậy bản mã là : SEE YOU SOON

Mã khối
Xâu bit x: chuỗi bit đầu vào
1 2 3 4 5 6 7 8
1 0 0 0 0 1 0 1 8

1 0 0 1 1 0 1 0 16

0 0 1 0 1 0 0 0 24

1 1 0 1 1 1 1 1 32

0 1 1 0 1 1 0 0 40

0 0 0 1 0 0 1 0 48

0 0 0 0 0 0 1 0 56

0 0 1 0 1 0 0 0 64

ô 58
IP ( hộp IP)
1 2 3 4 5 6 7 8
58 50
42 34 26 18 10 2
60 52 44 36 28 20 12 4
62 54 46 38 30 22 14 6
64 56 48 40 32 24 16 8
57 49 41 33 25 17 9 1
59 51 43 35 27 19 11 3
61 53 45 37 29 21 13 5
63 55 47 39 31 23 15 7

Đầu ra x0 là hoán vị của x qua IP


 IP(x) = x0
 Từ bảng IP ta thấy , ở vị trí đầu tiên ở bảng IP(x) = x0 , là giá trị của bit nằm ở ô
số 58 của bảng đầu vào
Nguyễn Thị Trang
 Bảng IP(x) = x0 : ô thứ 1 , điền giá trị bit của ô 58 ở bảng đầu vào là 0

IP(x) = x0 giá trị bit của ô 58


1 2 3 4 5 6 7 8

0 0 0 1 1 0 0 0 8

0 0 1 0 1 0 1 0 16

0 0 0 1 1 0 0 1
24

0 0 0 0 1 0 0 1 32

0 0 0 0 1 0 1 1 40

1 0 0 1 0 1 0 0 48

1 0 0 1 1 1 1 0 56

0 1 1 0 1 0 1 0 64

Lo
0 0 0 1 1 0 0 0 0 0 1 0 1 0 1 0 0 0 0 1 1 0 0 1 00001001

Ro
0 0 0 0 1 0 1 1 1 0 0 1 0 1 0 0 1 0 0 1 1 1 1 0 0 1 1 0 1 0 1 0

Tính f (Ro, k1)


Bảng chọn E bit : chọn theo độ dài của Ro , ở đây là 32

Nguyễn Thị Trang


Cách điền tương tự như trên bảng IP: giá trị bit điền vào ô thứ 2 của E(Ro) là giá
trị bit của ô số 1 ở Ro
giá trị bit của ô số 1 ở Ro
ô số 1
Ro Bảng chọn E bit E(Ro)
0 0 0 0 32 1 2 3 4 5 0 0 0 0 0 1
1 0 1 1 4 5 6 7 8 9 0 1 0 1 1 1
1 0 0 1 8 9 10 11 12 13 1 1 0 0 1 0
0 1 0 0 12 13 14 15 16 17 1 0 1 0 0 1
1 0 0 1 16 17 18 19 20 21 0 1 0 0 1 1
1 1 1 0 20 21 22 23 24 25 1 1 1 1 0 0
0 1 1 0 24 25 26 27 28 29 0 0 1 1 0 1
1 0 1 0 28 29 30 31 32 1 0 1 0 1 0 0

E(Ro) ⊕ k1 ( phép XOR giống nhau thì bằng 0 , khác nhau thì bằng 1)
E(Ro) K1 E(Ro) ⊕ k1
0 0 0 0 0 1 1 1 0 1 0 1 1 1 0 1 0 0
0 1 0 1 1 1 0 0 0 1 0 1 0 1 0 0 1 0
1 1 0 0 1 0 0 0 1 1 1 0 1 1 1 1 0 0
1 0 1 0 0 1 1 1 1 1 1 0 0 1 0 1 1 1
0 1 0 0 1 1 1 0 0 1 0 0 1 1 0 1 1 1
1 1 1 1 0 0 1 0 0 1 1 0 0 1 1 0 1 0
0 0 1 1 0 1 0 1 0 1 0 1 0 1 1 0 0 0
0 1 0 1 0 0 0 1 0 1 0 0 1 1 1 1 0 1
Chia E(Ro) ⊕ k1 thành 8 khối
E(Ro) ⊕ k1
1 1 0 1 0 0 B1
0 1 0 0 1 0 B2
1 1 1 1 0 0 B3
0 1 0 1 1 1 B4
1 1 0 1 1 1 B5
0 1 1 0 1 0 B6
0 1 1 0 0 0 B7
1 1 1 1 0 1 B8
 B1 = b1,b2,b3,b4,b5,b6 = 1101002
-Ta có b1b6 = 102 =1.21 +0.20= 2 là biểu diễn nhị phân của hàng r của S1
=> Vậy r = 2

Nguyễn Thị Trang


-4 bit b2 b3 b4 b5 = 10102 =10 là biểu diễn nhị phân của cột c của S1 => Vậy c = 10
-Khi đó S1(B1) = S1(2,10) = 9. Biểu diễn dưới dạng nhị phân ta có:
C1 = S1(2,10) = 9 =10012

S1
14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7 0

0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8 1

4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 0 2

15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13 3
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

 B2 = b1,b2,b3,b4,b5,b6 = 0100102
-Ta có b1b6 = 002 =là biểu diễn nhị phân của hàng r của S2 => Vậy r = 0
-4 bit b2 b3 b4 b5 = 10012 =9 là biểu diễn nhị phân của cột c của S2 => Vậy c = 9
-Khi đó S2(B2) = S2(2,10) = 9. Biểu diễn dưới dạng nhị phân ta có:
C2 = S2(0,9) = 7 =01112
S2
15 1 8 14 6 11 3 4 9 7 2 13 12 0 5 10
3 13 4 7 15 2 8 14 12 0 1 10 6 9 11 5
0 14 7 11 10 4 13 1 5 8 12 6 9 3 2 15
13 8 10 1 3 15 4 2 11 6 7 12 0 5 14 9

Tương tự với các S3,4,5,6,7,8 với các hộp thế cho sẵn slide trang 63 
C
1 0 0 1
0 1 1 1
1 1 1 0
1 1 0 0
1 0 0 1
0 1 1 1
0 1 0 1
0 1 1 0
Hộp hóa vị P cho sẵn.
C P P(C)
1 0 0 1 4 16 7 20 21 0 1 1 0
0 1 1 1 8 29 12 28 17 0 0 1 1
1 1 1 0 12 1 15 23 26 1 0 1 1
1 1 0 0 16 5 18 31 10 0 0 1 1
1 0 0 1 20 2 8 24 14 0 1 1 1
Nguyễn Thị Trang
0 1 1 1 24 32 27 3 9 0 0 0 1
0 1 0 1 28 19 13 30 6 0 1 1 1
0 1 1 0 32 22 11 4 25 1 1 1 0
L1 =Ro = 00001011100101001001111001101010
R1 = L0 ⊕ f(R0, k1) = 01111011100110010110100001110111
.................... lặp lại 16 vòng 

VD : 11 207 mod 13
207 = 11001111 = 27 + 26 + 23 + 22 +21 + 20
11 207 mod 13 = (11)2)2)2)2)2)2)2 . (11)2)2)2)2)2)2. (11)2)2)2. (11)2)2. (11)2.11 mod 13
= 9.3.9.3.4.11 mod 13 = 18 mod 13 = 5
----------------------------
∅(𝑝) = 𝑝 − 1
1 1 1
∅(𝑛) = 𝑛 . (1 − ) . (1 − ) … (1 − )
𝑝1 𝑝2 𝑝𝑛
VD :
∅(37) = 37 − 1 = 36
1
∅(25) = 52 = 25. (1 − )= 20
5
1 1
∅(18) = 21. 32 = 18 (1 − ) . (1 − ) = 6
2 3
1 1
∅(21) = 7 . 3 = 21 (1 − ) . (1 − ) = 12 → 𝑍 ∗ 21𝑐ó 12 𝑝ℎầ𝑛 𝑡ử
1 1
7 3

𝑍 21 = {1,2,4,5,8,10,11,13,16,17,19} ( 𝑐á𝑐 𝑝ℎầ𝑛 𝑡ử 𝑐ủ𝑎 𝑍 𝑘ℎô𝑛𝑔 đồ𝑛𝑔 𝑑ư 𝑣ớ𝑖 3 𝑣à 7)
Cấp của 𝑍 ∗ 𝑛 = |𝑍 ∗ 𝑛 | = ∅(𝑛)
VD : tính cấp của các phần tử trong 𝑍 ∗ 20 ?
1 1
Ta có n = 20 = 22 . 5 → ∅(20) = 20. (1 − ) . (1 − ) = 8 = |𝑍 ∗20 |
2 5

𝑍 20 = {1,3,7,9,11,13,17,19}
Ord(a) là ước của ∅(𝑛)
3 4 = 81 ; 1 𝑚𝑜𝑑 20 ≡ 81 𝑚𝑜𝑑 20 = 1
a𝜖𝑍 ∗20 1 3 7 9 11 13 17 19
Ord(a) 1 4 4 2 2 4 4 2
Bài tập tìm phần tử sinh
VD1 : 𝑍 ∗ 25 là nhóm xyclic và có phần tử sinh 𝛼 = 2 . Tìm các phần tử sinh còn lại
của 𝑍 ∗25 ?
1 1 1
∅(25) = 52 = 25. (1 − ) = 20 → ∅(∅(25)) = ∅(20) = 20. (1 − ) . (1 − )
5 2 5

= 8 → 𝑐ó 8 𝑝ℎầ𝑛 𝑡ử sinh 𝑐ủ𝑎 𝑍 25
Nguyễn Thị Trang
Có 𝛼 = 2 là phần tử sinh của 𝑍 ∗ 25 → 𝑏 = 2𝑖 𝑚𝑜𝑑 25 với i 𝜖𝑍 ∗25 = 𝑍 ∗20
𝑍 ∗ 20 = {1,3,7,9,11,13,17,19}
i 1 3 7 9 11 13 17 19
𝑖
2 𝑚𝑜𝑑 25 2 8 3 12 23 17 22 13

Vậy các phần tử sinh của 𝑍 25 là 𝛼 = {2,8,3,12,23,17,22,13}
VD2 : tìm phần tử sinh nhỏ nhất của 𝑍 ∗ 37 , từ phần tử sinh vừa tìm được tìm tất cả
các phần tử sinh còn lại ?
∅(37) = 37 − 1 = 36 = 2 2 . 3 2
Phần tử sinh nhỏ nhất thỏa mã :
36⁄2
{𝑥 36 𝑚𝑜𝑑 37 ≠ 1 𝑣ớ𝑖 𝑥𝜖 𝑍 ∗ 37 (∗)
𝑥 ⁄3 𝑚𝑜𝑑 37 ≠ 1
𝑍 ∗ 37 = {1,2,3,4,5,6,7,8,9,10, … . ,35,36} 𝑣ớ𝑖 𝑥𝜖𝑍 ∗ 37
18
Ta có : { 216 𝑚𝑜𝑑 37 = 36 ≠ 1 → 2 𝑙à 𝑝ℎầ𝑛 𝑡ử sinh 𝑐ủ𝑎 𝑍 ∗37
2 𝑚𝑜𝑑 37 = 26 ≠ 1
Ta có : 𝑏 = 2𝑖 𝑚𝑜𝑑 37 𝑙à 𝑝ℎầ𝑛 𝑡ử sinh 𝑐ủ𝑎 𝑍 ∗ 37 với i 𝜖 𝑍∗ ∅(37) = 𝑍 ∗ 36
𝑍 ∗ 36 = {1,5,7,11,13,17,19,23,25,29,31,35}
i 1 5 7 11 13 17 19 23 25 29 31 35
𝑖
𝑏 = 2 𝑚𝑜𝑑 37 2 32 17 13 15 18 35 5 20 24 22 19

Tập hợp các phần tử sinh của 𝑍 37 là {2,32,17,13,15,18,35,5,20,24,22,19}

Bài toán logarit rời rạc


g là phần tử sinh của 𝑍 ∗ 𝑝 ; a = 𝑔𝑥 ; 𝑥 = log 𝑔 𝑎
VD 𝑍 ∗19 : ={1,2,3,4, … . ,16,17,18} 𝑐ó 2 𝑙à 𝑝ℎầ𝑛 𝑡ử sinh 𝑐ủ𝑎 𝑍 ∗19
g = 2 : phần tử sinh
a 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
log 2 𝑎 18 1 13 2 16 14 6 3 8 17 12 15 5 7 11 4 10 9
log 2 𝑎 𝑣ớ𝑖 ∀𝑥𝜖𝑍 ∗19
21 𝑚𝑜𝑑 19 = 2 ;22 𝑚𝑜𝑑 19 = 4 23 𝑚𝑜𝑑 19 = 8 ; 24𝑚𝑜𝑑 19 = 16
......
 log 23 = log 2 213 vì 213 𝑚𝑜𝑑 19 =3

Thuật toán nhân bình phương có lặp


𝑉𝐷 ∶ 5596 𝑚𝑜𝑑 1234 ( 𝑘 = 596; 𝐴 = 5; 𝑏 = 1)
596 = 29 + 26 + 24 + 22
Nguyễn Thị Trang
i 0 1 2 3 4 5 6 7 8 9
Ki 0 0 1 0 1 0 1 0 0 1
A 5 25 625 681 1011 369 421 779 947 925
b 1 1 625 625 67 67 1059 1059 1059 1013
596
Vậy 5 𝑚𝑜𝑑 1234 = 𝟏𝟎𝟏𝟑

Thuật toán bước lớn bước nhỏ


1. Tính m = |√𝑜𝑟𝑑 (𝛼 )| : lấy phần nguyên lớn hơn √𝑜𝑟𝑑(𝛼)

2. Lập bảng (j, 𝛼 𝑗 mod n) với j = ⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗


0→𝑚−1

3. Tính 𝛽. (𝛼 −𝑚 )𝑖 𝑚𝑜𝑑 𝑛 𝑣ớ𝑖 𝑖 = ⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗


0→𝑚−1
4. Tra bảng (j, 𝛼 𝑗 ) cho tới khi thỏa mãn 𝛽. (𝛼 −𝑚 )𝑖 = 𝛼 𝑗
5. Khi đó: log 𝛼 𝛽 = 𝑚. 𝑖 + 𝑗
VD : Cho 𝛼= 31 là phần tử sinh của 𝑍 ∗ 61 . Hãy tính log 31 45 𝑡𝑟ê𝑛 𝑍 ∗61 ?
𝛼= 31 ; 𝛽 = 45 ; 𝑜𝑟𝑑(𝛼 )=∅(61) , n= 61

-m = |√𝑜𝑟𝑑 (𝛼 )| = | √∅(61) |= √60 = 8

-Bảng (j, 31𝑗 mod 61) với j = ⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗


0 → 8 − 1 =j = ⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗
0→7
j 0 1 2 3 4 5 6 7
𝑗
31 mod 61 1 31 46 23 42 21 41 51
−𝑚 𝑖
-Bảng 𝛽. (𝛼 ) 𝑚𝑜𝑑 𝑛
(𝛼 −1 ) 𝑚 = 31−1𝑚𝑜𝑑 61 = 2 => 31−8𝑚𝑜𝑑 61 = 28 𝑚𝑜𝑑 61 = 12
i 0 1 2 3 4 5 6 7
𝑖
45. 12 𝑚𝑜𝑑 61 45 52 14 46 3 36 5 60
𝑉ậ𝑦 log 31 45 = 8.3 + 2 = 26

Hệ mật RSA
VD: cho hệ mật RSA với p = 37 , q=41 và số mũ hóa e = 211
Hãy tính số mũ giải mã d
Hãy mã hóa bản tin m = 47 và gaiir mã bản mã vừa thu được ?

Nguyễn Thị Trang


n = p .q = 37 . 41 = 1517
∅(𝑛) = ∅(1517) = ∅(37). ∅(41) = 36.40 = 1440
Ta có : ed = 1 mod ∅(𝑛) -> d = e -1 mod ∅(𝑛) = 211−1𝑚𝑜𝑑 1440
211−1𝑚𝑜𝑑 1440 =?
Q A1 A2 A3 B1 B2 B3
- 1 0 1440 0 1 211
6 0 1 211 1 -6 174
1 1 -6 174 -1 7 37
4 -1 7 37 5 -34 26
1 5 -34 26 -6 41 11
2 -6 41 11 17 -116 4
2 17 -116 4 -40 273 3
1 -40 273 3 57 -389 1
 d = -389 mod 1440 = 1440-389 = 1051
Để mã hóa m = 47 , ta tính c= m e mod n = 47 211 mod 1517
211 = 2 7 + 2 6 + 2 4 + 2 1 + 2 0
Áp dụng phương pháp nhân bình phương có lặp ta có bảng sau :
(nếu bắt đầu Ki =1 , thì A= b ; Ki =0 , thì b =1)
A= A 2 mod 1517 : tại i =1 thì A = 47 2 mod 1517 = 692
Nếu Ki =0 hoặc thay đổi từ 1 sang 0 : giữ nguyên b , từ 0 sang 1 thì giá trị của
b = b.A mode 1517 : tại i=1 , thì b = 47 .692 mod 1517 = 667
i 0 1 2 3 4 5 6 7
Ki 1 1 0 0 1 0 1 1
A 47 692 1009 174 1453 1062 713 174
b 47 667 667 667 1305 1305 544 602
211
Vậy bản mã c = 47 mod 1517 = 602
Để giải bản mã c = 602 , m = c d mod n = 602 1051 mod 1517
1051 = 2 10 + 2 4 + 2 3 + 2 1 + 2 0

Nguyễn Thị Trang


i 0 1 2 3 4 5 6 7 8 9 10
Ki 1 1 0 1 1 0 0 0 0 0 1
A 602 1358 1009 174 1453 1062 713 174 1453 1062 713
b 602 1370 1370 211 149 149 149 149 149 149 47
Vậy bản tin m =602 1051 mod 1517 = 47

Hệ mật Elgamal
Vd : sử dụng hệ mật Elgamal với số nguyên tố p =211 , phần tử sinh 𝛼 = 39 của
𝑍 ∗ 21 . Giả sử người dùng A chọn khóa bị mất a= 113
a,Tìm khóa công khai của A?
b,Giả sử chọn số ngẫu nhiên k = 23 , hãy thực hiện mã hóa bản tin x= 34 với khóa
công khai của A và giải mã bản mã vừa thu được
a,
p = 211
39 113 mod 211 = ?
113 = 26+ 25 +24 +20
Áp dụng phương pháp nhân bình phương có lặp ta có bảng sau :
i 0 1 2 3 4 5 6
Ki 1 0 0 0 1 1 1
A 39 44 37 103 59 105 53
b 39 39 39 39 191 10 108
→ 𝛽 = 108
Vậy khóa công khia của A là (p , 𝛼 , 𝛼 𝑎 ) = ( 211,39,108)
b, k = 23 , x= 34 , 𝛼 𝑎 = 108
𝑦1 = 𝛼 𝑘 𝑚𝑜𝑑 𝑝 = 3923 𝑚𝑜𝑑 211
23 = 24 + 22 +21 + 20
i 0 1 2 3 4
Ki 1 1 1 0 1
A 39 44 37 103 59
b 39 28 192 192 145
Vậy 𝑦1 = 145

Nguyễn Thị Trang


𝑦2 = 𝑥 . 𝛽 𝑘 𝑚𝑜𝑑 𝑝 = 34 . 10823 𝑚𝑜𝑑 211
23 = 24 + 22 +21 + 20
i 0 1 2 3 4
Ki 1 1 1 0 1
A 108 59 105 53 66
b 108 42 190 190 91
𝑎 𝑘
Khi đó : 𝛿 = 𝑚 . (𝛼 ) 𝑚𝑜𝑑 211 = 34 .91 𝑚𝑜𝑑 211 = 140
Vậy bản mã y = (𝑦1 , 𝑦2 ) = ( 145 ,140)
+Giải mã y = (𝑦1 , 𝑦2 ) = ( 145 ,140)
((𝑦1 )𝑎 )−1 𝑚𝑜𝑑 𝑝 = (𝑦1 )𝑝−1−𝑎 𝑚𝑜𝑑 211 = 145211−1−113 𝑚𝑜𝑑 211
= 14597 𝑚𝑜𝑑 211
97 = 26 + 25 + 20
i 0 1 2 3 4 5 6
Ki 1 0 0 0 0 1 1
A 145 136 139 120 52 172 44
b 145 145 145 145 145 42 160
𝑝−1−𝑎
Khôi phục bản rõ x bằng cách tính x = 𝑦2 . (𝑦1 ) = 140 .160 mod 211 = 34

Đường cong Elliptic


Vd : cho E 17(1,1) = (𝑎, 𝑏) ; 𝐺 = (0,1)
Khóa riêng của A ,B lần lượt là 𝑛𝐴 = 3, 𝑛𝑩 = 4 . Tính khóa công khai của A, B?
Giả sử người A cần gửi tin cho B hãy mô phỏng quá trình mã hóa bản tin PM =(10,12)
Và giải mã bản mã thu được ? Cho trước giá trị ngẫu nhiên k = 2?
𝑃𝐴 = 𝑛𝐴 . 𝐺 = 3𝐺 ; 𝑃𝐵 = 𝑛𝑩 . 𝐺 = 4 𝐺
𝑃𝐴 = 𝑛𝐴 . 𝐺 = 3𝐺 = 2G +G
2G = (0,1) + (0,1) = (𝑥3 , 𝑦3 ) a.b ≡ 1 𝑚𝑜𝑑 𝑛 → 𝑏 = 𝑎−1𝑚𝑜𝑑 𝑛

= P + Q ( ở trường hợp này P = Q)


3 𝑥1 2 +𝑎 3.0+1
→ 𝜆= = = 2−1𝑚𝑜𝑑 17 = 9 ( 2.9 = 18 mod 17 = 1)
2𝑦1 2.1

𝑥3 = 𝜆2 − 𝑥1 − 𝑥2 = 92 − 0 − 0 = 13
Nguyễn Thị Trang
𝑦3 = 𝜆 (𝑥1 − 𝑥3 ) − 𝑦1 = 9. ( 0 − 13) − 1 = −118 𝑚𝑜𝑑 17 = 1
Vậy 2G = (13,1)

3𝐺 = 2G +G = (13,1) + (0,1) =(𝑥3 , 𝑦3 ) 𝑃≠𝑄


𝑦2 − 𝑦1 1−1
→ 𝜆= = =0
𝑥2 − 𝑥1 0 − 13
𝑥3 = 𝜆2 − 𝑥1 − 𝑥2 = 0 − 13 − 0 = 4
𝑦3 = 𝜆 (𝑥1 − 𝑥3 ) − 𝑦1 =0 (13 – 4) -1 = -1 mod 17 = 16
Vậy 3G = ( 4,16)

𝑃𝐵 = 𝑛𝑩 . 𝐺 = 4 𝐺 = 3G + G =( 4,16) + (0,1) = (𝑥3 , 𝑦3 ) ( 𝑃≠𝑄 )


𝑦2 − 𝑦1 1 − 16
→ 𝜆= = = 15 . 4−1 𝑚𝑜𝑑 17 = 15.13 𝑚𝑜𝑑 17 = 8
𝑥2 − 𝑥1 0−4
𝑥3 = 𝜆2 − 𝑥1 − 𝑥2 = 82 − 4 − 0 = 9
𝑦3 = 𝜆 (𝑥1 − 𝑥3 ) − 𝑦1 = 8(4 − 9) − 16 = −5 𝑚𝑜𝑑 17 = 12
Vậy 4G =(9,12)
A gửi PM cho B -> A lấy khóa công khai của B để mã hóa với k = 2
Ta có PC =[kG , 𝑃𝑀 + 2𝑃𝐵 ] = [(13,1) , ((10,12) + (2(9,12))]
∗ 2(9,12) = (9,12) + (9,12) = (𝑥3 , 𝑦3 ) P=Q
3 𝑥1 2 + 𝑎 3. 92 + 1
→ 𝜆= = = 122. 12−1 𝑚𝑜𝑑 17 = 122. 10 𝑚𝑜𝑑 17 = 13
2𝑦1 2.12
𝑥3 = 𝜆2 − 𝑥1 − 𝑥2 = 132 − 9 − 9 = 15
𝑦3 = 𝜆 (𝑥1 − 𝑥3 ) − 𝑦1 = 13(9 − 15) − 12 = −5 𝑚𝑜𝑑 17 = 12
Vậy 2(9,12) = (15,12)
(10,12) + (15,12) = (𝑥3 , 𝑦3 ) 𝑃 ≠ 𝑄

Nguyễn Thị Trang


𝑦2 − 𝑦1 12 − 12
→ 𝜆= = =0
𝑥2 − 𝑥1 15 − 10
𝑥3 = 𝜆2 − 𝑥1 − 𝑥2 = 0 − 10 − 15 = −25 𝑚𝑜𝑑 17 = 9
𝑦3 = 𝜆 (𝑥1 − 𝑥3 ) − 𝑦1 = 0(10 − 9) − 12 = 5
Vậy (10,12) + (15,12) = ( 9 ,5)
Ta có : PC =[kG , 𝑃𝑀 + 2𝑃𝐵 ] = [(13,1) , ((10,12) + (2(9,12))]
=[ 2G , (9,5)] = [(13,1) , (9,5)]
*Giải mã PC = [(13,1) , (9,5)] = (𝑃1, 𝑃2)
B dùng khóa riêng 𝑛𝐵 của mình để tính 𝑃𝑀 = 𝑃2 − 𝑛𝑩 𝑃1 = ( 9,5) – 4(13,1)
4(13,1) = 2(13,1) + 2(13,1) = 2G + 2G = 4G = ( 15,12)
𝑃𝑀 =( 9,5) – ( 15,12) = (9,5) + ( 15, -12) = ( 9,5) + ( 15,5)
𝑦2 − 𝑦1 5−5
→ 𝜆= = =0
𝑥2 − 𝑥1 15 − 9
𝑥3 = 𝜆2 − 𝑥1 − 𝑥2 = 0 − 9 − 15 = 10
𝑦3 = 𝜆 (𝑥1 − 𝑥3 ) − 𝑦1 =0 (9-10) -5 =12
 𝑃𝑀 =( 10,12)

Xác thực và chữ ký số


p = 31, q = 23
Công khai: (713, 367)
n = 31 * 23 = 713
Bí mật : (223)
Φ(n) = 30 * 22 = 660
 d = 223 với gdc(223,660) = 1
 e = 223-1 mod 660 = 367
Thông điệp cần ký: 439
Ký : s = 439223 mod 713 = 284
Kiểm tra chữ ký: 439 = 284367 mod 713 => đúng

Nguyễn Thị Trang


Bảng ký tự và mã tương ứng

Ký tự A B C D E F G H I J K L M

tương 0 1 2 3 4 5 6 7 8 9 10 11 12
ứng
Ký tự

tương 13 14 15 16 17 18 19 20 21 22 23 24 25
ứng

Nguyễn Thị Trang


Nguyễn Thị Trang

You might also like