You are on page 1of 14

1.

BÀI TẬP MÔN MÃ HÓA VÀ MẬT MÃ

Bài 1. Cho văn bản gốc P = <hovaten>. Giải thích các bước thực hiện mã hóa P và giải
mã trên trường số nguyên Z26 sử dụng các thuật toán mã hóa sau :
a) Mã hóa cộng với khóa K = 18
b) Mã hóa affine với khóa k1= 7, k2 = 11
c) Mã hóa AutoKey với K = 18.
d) Mã hóa Vigenère với khóa K = attack.
e) Mã hóa Hill Cipher với khóa K tự chọn.
f) Mã hóa Playfair với khóa K tự chọn.

Bài 2. Cho văn bản gốc P = <hovaten>. Thực hiện mã hoá P theo :
 Mã hóa AES với khóa K tự chọn. Giải thích các bước thực hiện.
 Mã hóa RC6 với khóa K tự chọn. Giải thích các bước thực hiện.

Bài 3. Cho văn bản gốc P = <hovaten>. Giải thích các bước thực hiện:
 Tính giá trị hàm băm MD5
 Tính giá trị hàm băm SHA-1.

Bài 4. Cho văn bản gốc P = <ten>. Thực hiện mã hoá và giải mã từng ký tự trong P
theo :
 Mã hóa RSA với (p = 7, q = 11) hoặc (p = 11, q = 17). Sử dụng lược đồ chữ
ký RSA để ký lên văn bản P.
 Mã hóa ElGamal  với p = 31, e1 = 11 và giá trị r tự chọn. Sử dụng lược đồ chữ
ký ElGamal để ký lên văn bản P.
 Mã hóa Rabin với (p = 7, q = 11). Sử dụng lược đồ chữ ký Rabin để ký lên
văn bản P.

Bài 5. Mã hóa Elliptic: Cho E23(1, 0)


a) Tìm tất cả các điểm P của đường cong.
b) Chọn một điểm P. Tính các điểm 2P, 3P, 4P, 5P, …
c) Chọn một cặp điểm P, Q khác nhau: Tính R = P + Q.
b) Cho văn bản gốc M = <ten> với một số ngẫu nhiên k = 3. Hãy xác định bản mã
hóa C tương ứng.
c) Thực hiện giải mã C để nhận được văn bản gốc M ban đầu.
d) Sử dụng lược đồ chữ ký ECDSA để ký lên văn bản M.

------------------------------------
2. THAM KHẢO – HƯỚNG DẪN GIẢI BÀI TẬP
Bài 1. Mã hóa đối xứng cổ điển

Cho văn bản gốc P = hokimtam


1) Thực hiện mã hóa cộng với K=18
Bước 1: Chuyển tất cả các chữ cái sang giá trị nguyên tương ứng.

P h o k i m t a m
7 14 10 8 12 19 0 12

Bước 2: Thực hiện cộng các giá trị nguyên này với 18 rồi chia cho 26 lấy phần dư, ghi
vào bảng.

 A 7 14 10 8 12 19 0 12
B 18 18 18 18 18 18 18 18
A+B 25 32 28 26 30 37 18 30
(A + B) mod 26 25 6 2 0 4 11 18 4

Bước 3: Chuyển tất cả các giá trị nguyên này về lại chữ cái.

25 6 2 0 4 11 18 4
Z G C A E L S E

Tổng hợp lại ta có bảng sau:

P h o k i m t a m
7 14 10 8 12 19 0 12
K 18 18 18 18 18 18 18 18
C 25 6 2 0 4 11 18 4
Z G C A E L S E

2) Mã hóa affine với khóa k1= 7, k2 = 11


Bước 1: Chuyển tất cả các chữ cái sang giá trị nguyên tương ứng.

P h o k i m t a m
7 14 10 8 12 19 0 12

Bước 2: Thực hiện nhân giá trị này với 7 rồi đem kết quả này cộng với 11, kết quả sau
cùng đem chia cho 26 lấy phần dư ghi vào bảng.

 A 7 14 10 8 12 19 0 12
k1 7 7 7 7 7 7 7 7
k2 11 11 11 11 11 11 11 11
A*k1 49 98 70 56 84 133 0 84
A*k1 + k2 60 109 81 67 95 144 11 95
(A*k1 + k2)
8 5 3 15 17 14 11 17
mod 26

Bước 3: Chuyển tất cả các giá trị nguyên này về lại chữ cái.

P h o k i m t a m
7 14 10 8 12 19 0 12
k1 7 7 7 7 7 7 7 7
k2 11 11 11 11 11 11 11 11
C 8 5 3 15 17 14 11 17
I F D P R O L R

3) Mã hóa Vigenère với khóa K = attack


Tra cứu bảng mã hóa Vigenère ta có:

P H O K I M T A M
K a t t a c k a t
C H I D I O D A F

4) Mã hóa Hill Cipher với khóa K tự chọn

Thực hiện tính toán


P = HOKIMTAM -> C = BKMMZXIG

5) Mã hóa Playfair với khóa k tự chọn.


Quy tắc thay thế của mã hóa Playfair:
 Mã hóa từng cặp hai ký tự liên tiếp nhau
 Nếu hai ký tự này giống nhau thì thêm một ký tự “X” vào giữa
 Nếu dư một ký tự thì thêm ký tự “Q“vào cuối.
 Nếu hai ký tự nằm cùng dòng thì được thay thế bằng hai ký tự tương ứng bên phải.
Ký tự ở cột cuối cùng được thay thế bằng ký tự ở cột đầu tiên.
 Nếu hai ký tự nằm cùng cột thì được thay thế bằng hai ký tự tương ứng ở bên
dưới. Ký tự ở hàng dưới cùng sẽ được thay thế bằng ký tự ở hàng đầu tiên.
 Nếu hai ký tự nằm hai góc của một hình chữ nhật thì được thay thế bằng hai ký tự
nằm ở hai góc còn lại.
Các bước thực hiện:
Bước 1: Tách văn bản thành từng cặp ký tự
P = HOKIMTAM => P = HO KI MT AM
Bước 2: Tạo bảng mã hóa:

P L A Y F
A I R B C
D E G H J
K L M N O
P Q S T U

Bước 3: Áp dụng quy tắc mã hóa Playfair cho từng cặp

- HO -> JN
P L A Y F
A I R B C
D E G H J
K L M N O
P Q R S T

- KI -> LA
P L A Y F
A I R B C
D E G H J
K L M N O
P Q R S T

- MT ->OR
P L A Y F
A I R B C
D E G H J
K L M N O
P Q S T U

- AM -> RR
P L A Y F
A I R B C
D E G H J
K L M N O
P Q R S T
6) Mã hóa Autokey với K = 18.
Bước 1: Chọn từ khóa: key.
Bước 2: Thực hiện ghép từ khóa vào văn bản thuần để có được khóa K (có độ dài bằng
với độ dài văn bản thuần): keyhokim
Bước 3: Thực hiện mã hóa theo thuật toán mã hóa Autokey với khóa K ở trên

P H O K I M T A M
K k e y h o k i m
C R S I P A D I Y

Bài 2: Mã hóa đối xứng hiện đại


Cho văn bản gốc P = hokimtan
1) Mã hóa bằng thuật toán AES

Plantext (input) Key (input) Ciphertext (output)

48 4F 4B 49 D2 F6 0C F3 89 C9 A2 2A
4
54 41 4D 6E 7C CE BB 49 BB 0B 3B
D
00 00 00 00 8E AC EA F3 67 7F AD 6D

00 00 00 00 F8 6C 8B AD 1F 6F D8 FE
Chi tiết các bước mã hóa AES:

SubBytes ShiftRows MixColumns AddRoundKey Key Schedule

9A B9 47 BA D2 F6 0C F3

23 28 8F F6 6E 7C CE BB
0
8E AC EA F3 8E AC EA F3

F8 6C 8B AD F8 6C 8B AD

B8 56 A0 F4 B8 56 A0 F4 25 75 D4 35 1C BA 17 05 39 CF C3 30

26 34 73 42 34 73 42 26 D7 E6 5F 2D B4 F9 8E 47 63 1F D1 6A
1
19 91 87 0D 87 0D 19 91 3D FC 20 AC 26 4B 7D 02 1B B7 5D AE

41 50 3D 95 95 41 50 3D 51 06 00 CA A4 9F 12 75 F5 99 12 BF

9C F4 F0 6B 9C F4 F0 6B F1 E6 2C 20 C8 10 19 25 39 F6 35 05

8D 99 19 A0 99 19 A0 8D 32 16 72 6D B5 8E 3B 4E 87 98 49 23
2
F7 B3 FF 77 FF 77 F7 B3 5C D8 D3 DB 4F 7C 2A 8C 13 A4 F9 57

49 DB C9 9D 9D 49 DB C9 F8 FB F1 0A 09 93 8B CF F1 68 7A C5

E8 CA D4 3F E8 CA D4 3F 8F D7 9A 37 94 3A 42 EA 1B ED D8 DD

D5 19 E2 2F 19 E2 2F D5 64 B8 C1 83 B8 FC CC AD DC 44 0D 2E
3
84 10 E5 64 E5 64 84 10 A5 E3 97 8D 10 F2 7F 32 B5 11 E8 BF

01 DC 3D 8A 8A 01 DC 3D D0 C1 6F FE 4A 33 E7 B3 9A F2 88 4D

22 80 2C 87 22 80 2C 87 30 33 F5 BC 12 FC E2 76 22 CF 17 CA

6C B0 4B 95 B0 4B 95 6C 59 A5 9B 4B 8D 35 06 F8 D4 90 9D B3
4
CA 89 D2 23 D2 23 CA 89 9A EC 68 45 CC AB C7 55 56 47 AF 10

D6 C3 94 6D 6D D6 C3 94 DE 44 B6 44 85 ED 97 28 5B A9 21 6C

C9 B0 98 38 C9 B0 98 38 DA A1 F6 7D 85 31 71 30 5F 90 87 4D

5D 96 6F 41 96 6F 41 5D 9B E6 92 AC 85 68 81 0C 1E 8E 13 A0
5
4B 62 C6 FC C6 FC 4B 62 94 9E B0 22 92 DF 5E DC 06 41 EE FE

97 55 88 34 34 97 55 88 78 6D 13 7C 57 EB B4 B7 2F 86 A7 CB

97 C7 A3 04 97 C7 A3 04 0B 5C E2 B9 94 53 6A 7C 9F 0F 88 C5

97 45 0C FE 45 0C FE 97 5C 15 7C 05 F9 3E 44 9D A5 2B 38 98
6
4F 9E 58 86 58 86 4F 9E 82 31 E3 38 9B 69 55 70 19 58 B6 48

5B E9 8D A9 A9 5B E9 8D F6 6E 86 04 3A 24 6B 22 CC 4A ED 26

22 ED 02 10 22 ED 02 10 E6 3D C4 16 7F AB DA CD 99 96 1E DB

99 B2 1B 5E B2 1B 5E 99 D1 A8 B4 56 26 74 50 2A F7 DC E4 7C
7
14 F9 FC 51 FC 51 14 F9 DD CF 2E E1 33 79 2E A9 EE B6 00 48

80 36 7F 93 93 80 36 7F 15 7D 20 AE 7F 5D ED 45 6A 20 CD EB

D2 62 57 BD D2 62 57 BD 4D 30 15 80 44 AF 94 DA 09 9F 81 5A

F7 92 53 E5 92 53 E5 F7 D0 78 94 DC 75 01 09 3D A5 79 9D E1
8
C3 B6 31 D3 31 D3 C3 B6 90 E1 FB C2 97 50 4A 3B 07 B1 B1 F9

D2 4C 55 6E 6E D2 4C 55 12 99 47 37 C1 6A 79 E2 D3 F3 3E D5

1B 79 22 57 1B 79 22 57 FC 6B A7 F7 16 1E 53 59 EA 75 F4 AE

9D 7C 01 27 7C 01 27 9D 1A 3E ED 35 26 7B 35 0C 3C 45 D8 39
9
88 53 D6 E2 D6 E2 88 53 63 2F 08 AD 67 9A 0C 50 04 B5 04 FD

78 02 B6 98 98 78 02 B6 AC 98 CD 40 C1 06 6D 35 6D 9E A0 75

47 72 ED CB 47 72 ED CB 89 C9 A2 2A CE BB 4F E1

F7 21 96 FE 21 96 FE F7 49 BB 0B 3B 68 2D F5 CC
10
85 B8 FE 53 FE 53 85 B8 67 7F AD 6D 99 2C 28 D5

78 6F 3C 96 96 78 6F 3C 1F 6F D8 FE 89 17 B7 C2

2) Mã hóa bằng thuật toán RC6


Input: Plaintext được lưu trong 4 thanh ghi w-bit A, B, C & D
r là số vòng
khóa vòng w-bit S[0, ... , 2r + 3]

Output: Ciphertext lưu trong A, B, C, D

Hàm mã hóa:

B = B + S[0]
D = D + S[1]
for i = 1 to r do
{
t = (B*(2B + 1)) <<< lg w
u = (D*(2D + 1)) <<< lg w
A = ((A ⊕ t) <<< u) + S[2i]
C = ((C ⊕ u) <<< t) + S[2i + 1]
(A, B, C, D) = (B, C, D, A)
}
A = A + S[2r + 2]
C = C + S[2r + 3]

Kết quả:
 Plantext: hokimtam
 Secret key: 2b7e151628aed2a6abf71589
 Ciphertext: PTtVED2HNvoQvKJFj8Igdg==

Bài 3: Hàm băm


Cho văn bản gốc P = HOKIMTAM
1) Tính giá trị MD5
64-ELEMENT TABLE 'T' :

T[0]=3614090360 T[1]=3905402710 T[2]=606105819 T[3]=3250441966


T[4]=4118548399 T[5]=1200080426 T[6]=2821735955 T[7]=4249261313
T[8]=1770035416 T[9]=2336552879 T[10]=4294925233 T[11]=2304563134
T[12]=1804603682 T[13]=4254626195 T[14]=2792965006 T[15]=1236535329

T[44]=3654602809 T[45]=3873151461 T[46]=530742520 T[47]=3299628645
T[48]=4096336452 T[49]=1126891415 T[50]=2878612391 T[51]=4237533241
T[52]=1700485571 T[53]=2399980690 T[54]=4293915773 T[55]=2240044497
T[56]=1873313359 T[57]=4264355552 T[58]=2734768916 T[59]=1309151649
T[60]=4149444226 T[61]=3174756917 T[62]=718787259 T[63]=3951481745

OPERATION TABLE 's':

s[0]=7 s[1]=12 s[2]=17 s[3]=22 s[4]=7 s[5]=12


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

MDBUFFER:

words A=1732584193, B=4023233417, C=2562383102, D=271733878

 Thông điệp được sau khi thêm= 'hokimtam?'


 Chiều dài=56
 Tổng số khối=1
 Block 0 contains:
[0]1768648552
[1]1835103341
[2]128

[12]0
[13]0
[14]64
[15]0
Chiều dài sau khi thêm =512 bits [nên là bội của 512]

OPERATIONS:

[Block=0]
[i = 0] A=1524079401, B=4023233417, C=2562383102, D=271733878
[i = 1] A=1524079401, B=4023233417, C=2562383102, D=4023983677
[i = 2] A=1524079401, B=4023233417, C=64826783, D=4023983677
[i = 3] A=1524079401, B=820021093, C=64826783, D=4023983677

[i = 59] A=1954472196, B=2426829349, C=717852174, D=1824007650
[i = 60] A=3504040046, B=2426829349, C=717852174, D=1824007650
[i = 61] A=3504040046, B=2426829349, C=717852174, D=21704235
[i = 62] A=3504040046, B=2426829349, C=364525756, D=21704235
[i = 63] A=3504040046, B=4283538711, C=364525756, D=21704235
Block=0 Processed:
A=941656943
B=4011804832
C=2926908858
D=293438113

Kết quả:
A_Hex=38208b6f
B_Hex=ef1f48a0
C_Hex=ae7515ba
D_Hex=117d82a1

Kết quả cuối cùng:


MD5("hokimtam") = 6f8b2038a0481fefba1575aea1827d11

2) Tính giá trị SHA-1


Giá trị ban đầu:

H0=1732584193,
H1=4023233417,
H2=2562383102,
H3=271733878,
H5=3285377520

 Thông điệp được sau khi thêm= 'hokimtam?'


 Chiều dài=56
 Tổng số khối=1

Block 0 contains:
[0]1752132457
[1]1836343661
[2]2147483648

[66]2972891804
[67]3152281212
[68]3856775635
[69]2330363404
[70]2916858365
[71]3490041757
[72]2396814212
[73]2514144236
[74]316457681
[75]646975230
[76]2875846729
[77]3323451092
[78]4265846432
[79]3641639364
Chiều dài sau khi thêm =512 bits [nên là bội của 512]

OPERATIONS:

[Block=0]
[i = 0] A=136578076, B=1732584193, C=2079550178, D=2562383102, E=271733878
[i = 1] A=3634737659, B=136578076, C=1506887872, D=2079550178, E=2562383102
[i = 2] A=63373556, B=3634737659, C=34144519, D=1506887872, E=2079550178
[i = 3] A=1353141246, B=63373556, C=4129909886, D=34144519, E=1506887872
[i = 4] A=3410379674, B=1353141246, C=15843389, D=4129909886, E=34144519
[i = 5] A=1811763765, B=3410379674, C=2485768959, D=15843389, E=4129909886

[i = 73] A=552463355, B=3065140820, C=1096314285, D=2875827526, E=370522835
[i = 74] A=1838570909, B=552463355, C=766285205, D=1096314285, E=2875827526
[i = 75] A=2604744074, B=1838570909, C=3359341310, D=766285205, E=1096314285
[i = 76] A=2806940693, B=2604744074, C=1533384551, D=3359341310, E=766285205
[i = 77] A=2954330374, B=2806940693, C=2798669666, D=1533384551, E=3359341310
[i = 78] A=4006436954, B=2954330374, C=1775476997, D=2798669666, E=1533384551
[i = 79] A=1469568447, B=4006436954, C=2886066241, D=1775476997, E=2798669666
Block=0 Processed:
H0=3202152640,
H1=3734703075,
H2=1153482047,
H3=2047210875,
H4=1789079890.

Giá trị cuối cùng:


H0_Hex=bedcf8c0
H1_Hex=de9b0be3
H2_Hex=44c0bd3f
H3_Hex=7a05f57b
H4_Hex=6aa33152

Kết quả: SHA1("hokimtam") = bedcf8c0de9b0be344c0bd3f7a05f57b6aa33152

Bài 4. Mã hóa bất đối xứng


Cho văn bản gốc P = tam 
1) Mã hóa RSA với  p = 7, q = 11
1) Tính n: n = p*q = 7*11 = 77
2) Tính Φ: Φ(n) = (p-1)(q-1) = (7-1)(11-1) = 60
3) Chọn e sao cho 1 < e < Φ(n), e và Φ(n) là hai số nguyên tố cùng nhau. Nghĩa là có
UCLN là 1.
4) Chọn e = 7 => Khóa công khai: (7, 77) (*)
Tìm d?
Ta có: d*e mod Φ(n) = 1 <=> d*e = k* Φ(n) +1 <=> d*7 = k*60 +1
Chọn k = 5 => d= 43 => Khóa bí mật: (43, 60) (**)
Khóa công khai (e, n)
Khóa bí mật (d, Φ(n))
- Mã hóa:
+ Mã hóa ký tự T = 19: C = Me mod n = 197 mod 77 = 19
+ Mã hóa ký tự A = 0: C = Me mod n = 07 mod 77 = 0
+ Mã hóa ký tự M = 12: C = Me mod n = 127 mod 77 = 48
- Giải mã:
+ Giải mã ký tự 19: M = Cd mod n = 1943 mod 60 = 19 (≡ T : giải mã đúng)
+ Giải mã ký tự 0: M = Cd mod n = 07 mod 60 = 0 (≡ A : giải mã đúng)
+ Giải mã ký tự 48: M = Cd mod n = 487 mod 60 = 12 (≡ M : giải mã đúng)
2) Mã hóa ElGamal với  p = 31, a = 11, x = 6 và k = 22.
Ta có: y = xa mod p = 611 mod 31= 26
a. Mã hóa: C1 = xk mod p = 622 mod 31 = 25
+ Mã hóa ký tự T = 19:
C2(T=19) = (T*yk) mod p
= ((T mod p)( yk mod p)) mod p
= ((19 mod 31)( 2622 mod 31)) mod 31
= (19*5) mod 31
=2
=> ET(C1, C2) = (25, 2)
+ Mã hóa ký tự A = 0:
C2(A=0) = (A*yk) mod p
= ((A mod p)( yk mod p)) mod p
= ((0 mod 31)( 2622 mod 31)) mod 31
= (0.5) mod 31
=0
=> EA(C1, C2) = (25, 0)
+ Mã hóa ký tự M = 12:
C2(M=12) = (M*yk) mod p
= ((M mod p)( yk mod p)) mod p
= ((12 mod 31)( 2622 mod 31)) mod 31
= (12.5) mod 31
= 29
=> EA(C1, C2) = (25, 29)
b. Giải mã:
+ Giải mã ký tự (25, 2):
(C2*(C1a)-1) mod p
= (2*(2511)-1) mod 31
= ((2 mod 31)( (2511)-1 mod 31)) mod 31
= (2.(2531-11-1 mod 31)) mod 31
= (2.(2519 mod 31)) mod 31
= (2.25) mod 31
= 19 (≡ T : giải mã đúng)
+ Giải mã ký tự (25, 0):
(C2*(C1a)-1) mod p
= (0*(2511)-1) mod 31
= ((0 mod 31)( (2511)-1 mod 31)) mod 31
= (0.(2531-11-1 mod 31)) mod 31
= (0.(2519 mod 31)) mod 31
= (0.25) mod 31
= 0 (≡ A : giải mã đúng)
+ Giải mã ký tự (25, 29):
(C2*(C1a)-1) mod p
= (29*(2511)-1) mod 31
= ((29 mod 31)( (2511)-1 mod 31)) mod 31
= (29.(2531-11-1 mod 31)) mod 31
= (29.(2519 mod 31)) mod 31
= (29.25) mod 31
= (29.25) mod 31
= 12 (≡ M : giải mã đúng)

Bài 5. Mã hóa Elliptic


Mã hóa Elliptic: Cho E71(4, -6).
P = 71, a = 4, b= -6, G= (2, 9), n= 73, h = 1
d=7
Chọn khóa riêng từ người gửi k = 1 suy ra: kG = (2, 9)
Khóa riêng của người nhận d =7, người nhận tính khóa công khai: dG = 7G
R = 7G:
G(x, y) = (2, 9)
 Tính Q(x2, y2) = 2G :

λ= mod p = mod p = 64
x2 = λ – 2x mod p = 64 - 2*2 mod 71 = 45
2 2

y2 = λ(x – x2) – y mod p = 64(2- 45) -9 mod 71 = 8


 Tính T(x4, y4) = 2Q = 4G:

λ= mod p = mod p = 56
x4 = = λ – 2x2 mod p = 56 - 2*45 mod 71 = 64
2 2

y4 = λ(x2 – x4) – y2 mod p = 56(45- 64) -8 mod 71 = 64


 Tính S(x3, y3) = 3G = G(2, 9) + Q(45, 8)

λ= mod p = mod 71 = 33
x3 = = λ2 – x2 – x mod p = 332 - 45-2 mod 71 = 48
y3 = λ(x2 – x4) – y2 mod p = 33(45- 48) -8 mod 71 = 35
 Tính R(x7, y7) = 7G = T(64, 64) + S(48, 35)

λ= mod p = mod 71 = 24
x7 = = λ – x3 - x4 mod p = 24 - 48-64 mod 71 = 38
2 2

y7 = λ(x3 – x7) – y3 mod p = 24(48- 38) - 35 mod 71 = 63


Suy ra dG = (38, 63)

Mã hóa M(16, 6)
M + k* dG = (16, 6) + 1 * 7 *(2, 9) = (16, 6) + (38, 63)

λ= mod p = mod p = 57 * 22-1 mod 71 = 57 * 42 mod 71


= 51
x = λ2 – xM - xR mod p = 512 - 16-38 mod 71 = 62
y = λ(xR – x) – yM mod p = 51(38- 62) - 63 mod 71 = 62
Người gửi sẽ gửi bộ [kG, M+kdG] = [(2, 9), (62, 62)]
Giải mã:
M = (M + kdG) – d*kG = (M + 7G) -7G = (62, 62) – (38, 63) = (62, 62) + (38, -
63)
Với λ = 20, x = 16, y = 6
M = (16, 6) (Đúng)

------------------------------------

Các ký hiệu
 P (Plan text): văn bản thuần chưa mã hóa
 K (Key): khóa dùng để mã hóa
 C (Cipher text): văn bản đã được mã hóa
 E (Encryption): hàm mã hóa
 D (Decryption): hàm giải mã

You might also like