ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC KINH TẾ
----------
HỌC PHẦN:
AN TOÀN VÀ BẢO MẬT THƠNG TIN
GVHD: Nguyễn Tấn Khơi
SVTH: Lê Thị Hồng
Lớp: 43K22
Mã sinh viên: 171121522117
Đà Nẵng, ngày 25 tháng 11 năm 2019
MỤC LỤC
Contents
Contents......................................................................................................................... 2
1.Bài 1 – Mã hóa đối xứng cổ điển...............................................................................3
1.1.Thực hiện mã hóa cộng với K=18.........................................................................3
1.2.Mã hóa affine với khóa k1= 7, k2 = 11.................................................................3
1.3.Mã hóa Vigenère với khóa K = attack...................................................................4
1.4.Mã hóa Hill Cipher với khóa K tự chọn................................................................4
1.5.Mã hóa Playfair với khóa k tự chọn.......................................................................5
1.6.Mã hóa Autokey với K = 18..................................................................................7
2.Bài 2 – Mã hóa đối xứng hiện đại.............................................................................7
2.1. Mã hóa bằng thuật tốn AES................................................................................7
2.2.Mã hóa bằng thuật tốn RC6.................................................................................9
3.Bài 3 – Hàm băm.......................................................................................................9
3.1.Tính giá trị MD5...................................................................................................9
3.2.Tính giá trị SHA-1...............................................................................................12
4.Bài 4 – Mã hóa bất đối xứng...................................................................................17
4.1.Mã hóa RSA với p = 7, q = 11............................................................................17
4.2.Mã hóa ElGamal với p = 31, a = 11, x = 6 và k = 22..........................................17
BÀI TẬP MÃ HĨA & BẢO MẬT THƠNG TIN
1. Bài 1 – Mã hóa đối xứng cổ điển
Cho văn bản gốc P = LE THI HONG
1.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
L
E
T
H
I
H
O
N
G
11
4
19
7
8
7
14
13
6
-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
11
4
19
7
8
7
14
13
6
B
18
18
18
18
18
18
18
18
18
A+B
29
22
37
25
26
25
32
31
24
(A+B)
mod
3
22
11
25
0
25
6
5
24
26
- Bước 3: Chuyển tất cả các giá trị nguyên này về lại chữ cái.
3
22
11
25
0
25
6
5
D
W
L
Z
A
Z
G
F
24
Y
- Tổng hợp lại ta có bảng sau:
P
L
11
18
3
D
K
C
E
4
18
22
W
T
19
18
11
L
H
7
18
25
Z
I
8
18
0
A
H
7
18
25
Z
O
14
18
6
G
N
13
18
5
F
G
6
18
24
Y
1.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
L
11
E
4
T
19
H
7
I
8
H
7
O
14
N
13
G
6
-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
K1
K2
A*K1
A*K1 +
K2
(A*K1 +
K2) mod
26
11
7
11
77
4
7
11
28
19
7
11
133
7
7
11
49
8
7
11
56
7
7
11
49
14
7
11
98
13
7
11
91
6
7
11
42
88
39
144
60
67
60
109
102
53
10
13
14
8
15
8
5
24
1
- Bước 3: Chuyển tất cả các giá trị nguyên này về lại chữ cái
10
13
14
K
N
O
- Tổng hợp lại ta có bảng sau:
P
K1
K2
C
L
11
7
11
10
K
E
4
7
11
13
N
T
19
7
11
14
O
8
I
15
P
8
I
5
F
24
Y
H
7
7
11
8
I
I
8
7
11
15
P
H
7
7
11
8
I
O
14
7
11
5
F
N
13
7
11
24
Y
1.3. Mã hóa Vigenère với khóa K = attack
P
K
C
L
E
T
H
I
H
O
N
G
a
L
t
X
t
M
a
H
c
K
k
R
a
O
t
G
t
Z
1.4. Mã hóa Hill Cipher với khóa K tự chọn
Thực hiện tính tốn
1
B
G
6
7
11
1
B
P = LETHIHONG => C = XQAHXTEK
1.5. Mã hóa Playfair với khóa k tự chọn.
Bước 1: Tách văn bản thành từng cặp ký tự
P = LETHIHONG=> P = LE TH IH ON GQ
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
- LE -> IL
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
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
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
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
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
- TH -> SJ
- IH -> BE
- ON -> HJ
- GQ-> ER
1.6. Mã hóa Autokey với K = 18.
Chọn từ khóa: Khoa
Thực hoeenj ghép từ khóa và văn bản : Khoalethi
L
P
K
C
k
V
E
h
T
o
H
a
I
l
H
e
O
t
N
h
G
i
L
H
H
T
L
H
U
O
2. Bài 2 – Mã hóa đối xứng hiện đại
Cho văn bản gốc P = LETHIHONG
2.1. Mã hóa bằng thuật tốn AES
Plantext (input)
Key (input)
Ciphertext (output)
48
4F
4B
49
D2
F6
0C
F3
89
C9
A2
2A
4D
54
41
4D
6E
7C
CE
BB
49
BB
0B
3B
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
9A
B9
47
BA
D2
F6
0C
F3
23
28
8F
F6
6E
7C
CE
BB
8E
AC
EA
F3
8E
AC
EA
F3
F8
6C
8B
AD
F8
6C
8B
AD
35
1C
BA
17
05
39
CF
C3
30
0
1
2
3
B8
56
A0
F4
B8
26
34
19
91
56
A0
F4
25
73
42
87
0D
34
73
42
26
87
0D
19
91
Key Schedule
75
D4
D7
E6
5F
2D
B4
F9
8E
47
63
1F
D1
6A
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
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
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
4
5
6
7
8
9
10
22
80
2C
87
6C
CA
22
80
2C
87
B0
4B
89
D2
95
B0
23
D2
D6
C3
C9
B0
94
6D
98
38
5D
96
6F
41
96
4B
62
C6
FC
C6
97
55
88
34
34
97
C7
A3
04
97
45
0C
FE
30
33
F5
BC
4B
95
6C
23
CA
89
6D
D6
C3
94
C9
B0
98
38
6F
41
5D
9B
FC
4B
62
94
97
55
88
97
C7
A3
45
0C
FE
12
FC
E2
76
22
CF
17
CA
59
A5
9B
4B
8D
9A
EC
68
45
CC
35
06
F8
D4
AB
C7
55
56
90
9D
B3
47
AF
10
DE
44
B6
44
85
DA
A1
F6
7D
85
ED
97
28
31
71
30
5B
A9
21
6C
5F
90
87
4D
E6
92
AC
85
68
9E
B0
22
92
DF
81
5E
0C
1E
8E
13
A0
DC
06
41
EE
FE
78
6D
13
7C
57
EB
B4
B7
2F
86
A7
CB
04
0B
5C
E2
B9
94
53
6A
7C
97
5C
15
7C
05
F9
3E
44
9D
9F
0F
88
C5
A5
2B
38
98
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
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
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
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
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
Thuật tốn mã hóa AES
Chọn khóa K=key
Input: key
S: State, ma trận 4x4 hexa
Output: S*
1/ Add Roundkey (S)
2/ For i= 1…(N-1) vòng lặp
Sub Byte (S)
Shift Rows (S)
Mix Columns (S)
Add Round Key (S)
End.For
3/ S*
Sub Byte (S)
Thay thế Sij bằng giá trị trong bảng S_Box Thay Sif = 19 <> a=1, b=9 <> S_Box: D4
Shift Rows (S)
Mix Columns (S): Columns (i) *C
Add Round Key (S): Columns (i) + K
Cho văn bản gốc P=LETHIHON mã hóa AES với K = ESOURCESERIT
2.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: LETHHONG
Secret key: 2b7e151628aed2a6abf71589
Ciphertext: PTtVED2HNvoQvKJFj8Igdg==
3. Bài 3 – Hàm băm
Cho văn bản gốc P = LETHIHONG
3.1. Tính giá trị MD5
64-ELEMENT TABLE 'T' :
T[0]=3614090360
T[4]=4118548399
T[8]=1770035416
T[12]=1804603682
T[1]=3905402710
T[5]=1200080426
T[9]=2336552879
T[13]=4254626195
T[2]=606105819
T[6]=2821735955
T[10]=4294925233
T[14]=2792965006
T[3]=3250441966
T[7]=4249261313
T[11]=2304563134
T[15]=1236535329
T[16]=4129170786
T[20]=3593408605
T[24]=568446438
T[28]=2850285829
T[32]=4294588738
T[36]=2763975236
T[40]=681279174
T[44]=3654602809
T[48]=4096336452
T[52]=1700485571
T[56]=1873313359
T[60]=4149444226
T[17]=3225465664
T[21]=38016083
T[25]=3275163606
T[29]=4243563512
T[33]=2272392833
T[37]=1272893353
T[41]=3936430074
T[45]=3873151461
T[49]=1126891415
T[53]=2399980690
T[57]=4264355552
T[61]=3174756917
T[18]=643717713
T[22]=3634488961
T[26]=4107603335
T[30]=1735328473
T[34]=1839030562
T[38]=4139469664
T[42]=3572445317
T[46]=530742520
T[50]=2878612391
T[54]=4293915773
T[58]=2734768916
T[62]=718787259
T[19]=3921069994
T[23]=3889429448
T[27]=1163531501
T[31]=2368359562
T[35]=4259657740
T[39]=3200236656
T[43]=76029189
T[47]=3299628645
T[51]=4237533241
T[55]=2240044497
T[59]=1309151649
T[63]=3951481745
OPERATION TABLE 's':
s[0]=7
s[6]=17
s[12]=7
s[18]=14
s[24]=5
s[30]=14
s[36]=4
s[42]=16
s[48]=6
s[54]=15
s[60]=6
s[1]=12
s[7]=22
s[13]=12
s[19]=20
s[25]=9
s[31]=20
s[37]=11
s[43]=23
s[49]=10
s[55]=21
s[61]=10
s[2]=17
s[8]=7
s[14]=17
s[20]=5
s[26]=14
s[32]=4
s[38]=16
s[44]=4
s[50]=15
s[56]=6
s[62]=15
s[3]=22
s[9]=12
s[15]=22
s[21]=9
s[27]=20
s[33]=11
s[39]=23
s[45]=11
s[51]=21
s[57]=10
s[63]=21
s[4]=7
s[10]=17
s[16]=5
s[22]=14
s[28]=5
s[34]=16
s[40]=4
s[46]=16
s[52]=6
s[58]=15
MDBUFFER:
words A=1732584193, B=4023233417, C=2562383102, D=271733878
Thông điệp được sau khi thêm= 'LETHIHONG?'
Chiều dài=56
Tổng số khối=1
Block 0 contains:
[0]1768648552
[1]1835103341
[2]128
[3]0
[4]0
[5]0
[6]0
[7]0
[8]0
[9]0
[10]0
[11]0
s[5]=12
s[11]=22
s[17]=9
s[23]=20
s[29]=9
s[35]=23
s[41]=11
s[47]=23
s[53]=10
s[59]=21
[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 = 4] A=1195672053, B=820021093, C=64826783, D=4023983677
[i = 5] A=1195672053, B=820021093, C=64826783, D=4032947576
[i = 6] A=1195672053, B=820021093, C=3736190739, D=4032947576
[i = 7] A=1195672053, B=1970381379, C=3736190739, D=4032947576
[i = 8] A=4042434181, B=1970381379, C=3736190739, D=4032947576
[i = 9] A=4042434181, B=1970381379, C=3736190739, D=2054575654
[i = 10] A=4042434181, B=1970381379, C=4236836463, D=2054575654
[i = 11] A=4042434181, B=644271779, C=4236836463, D=2054575654
[i = 12] A=1882306063, B=644271779, C=4236836463, D=2054575654
[i = 13] A=1882306063, B=644271779, C=4236836463, D=3918755930
[i = 14] A=1882306063, B=644271779, C=3680734025, D=3918755930
[i = 15] A=1882306063, B=2683950797, C=3680734025, D=3918755930
[i = 16] A=2489203642, B=2683950797, C=3680734025, D=3918755930
[i = 17] A=2489203642, B=2683950797, C=3680734025, D=4050946103
[i = 18] A=2489203642, B=2683950797, C=355003653, D=4050946103
[i = 19] A=2489203642, B=2205118800, C=355003653, D=4050946103
[i = 20] A=2191889997, B=2205118800, C=355003653, D=4050946103
[i = 21] A=2191889997, B=2205118800, C=355003653, D=3272037689
[i = 22] A=2191889997, B=2205118800, C=1840263565, D=3272037689
[i = 23] A=2191889997, B=1393229800, C=1840263565, D=3272037689
[i = 24] A=3662035914, B=1393229800, C=1840263565, D=3272037689
[i = 25] A=3662035914, B=1393229800, C=1840263565, D=1828760458
[i = 26] A=3662035914, B=1393229800, C=3886560892, D=1828760458
[i = 27] A=3662035914, B=1501572312, C=3886560892, D=1828760458
[i = 28] A=1405904449, B=1501572312, C=3886560892, D=1828760458
[i = 29] A=1405904449, B=1501572312, C=3886560892, D=1154083787
[i = 30] A=1405904449, B=1501572312, C=768708675, D=1154083787
[i = 31] A=1405904449, B=1622169347, C=768708675, D=1154083787
[i = 32] A=933042152, B=1622169347, C=768708675, D=1154083787
[i = 33] A=933042152, B=1622169347, C=768708675, D=4248091169
[i = 34] A=933042152, B=1622169347, C=3915644841, D=4248091169
[i = 35] A=933042152, B=3240439705, C=3915644841, D=4248091169
[i = 36] A=3022207546, B=3240439705, C=3915644841, D=4248091169
[i = 37] A=3022207546, B=3240439705, C=3915644841, D=2143412581
[i = 38] A=3022207546, B=3240439705, C=3214003276, D=2143412581
[i = 39] A=3022207546, B=1309407309, C=3214003276, D=2143412581
[i = 40] A=4290043539, B=1309407309, C=3214003276, D=2143412581
[i = 41] A=4290043539, B=1309407309, C=3214003276, D=3939478946
[i = 42] A=4290043539, B=1309407309, C=1931320723, D=3939478946
[i = 43] A=4290043539, B=1836718868, C=1931320723, D=3939478946
[i = 44] A=1352120880, B=1836718868, C=1931320723, D=3939478946
[i = 45] A=1352120880, B=1836718868, C=1931320723, D=750365492
[i = 46] A=1352120880, B=1836718868, C=1364545352, D=750365492
[i = 47] A=1352120880, B=1946492976, C=1364545352, D=750365492
[i = 48] A=2208760837, B=1946492976, C=1364545352, D=750365492
[i = 49] A=2208760837, B=1946492976, C=1364545352, D=3231993139
[i = 50] A=2208760837, B=1946492976, C=1748561876, D=3231993139
[i = 51] A=2208760837, B=3472793218, C=1748561876, D=3231993139
[i = 52] A=23746338, B=3472793218, C=1748561876, D=3231993139
[i = 53] A=23746338, B=3472793218, C=1748561876, D=217584069
[i = 54] A=23746338, B=3472793218, C=311452707, D=217584069
[i = 55] A=23746338, B=3521572464, C=311452707, D=217584069
[i = 56] A=1954472196, B=3521572464, C=311452707, D=217584069
[i = 57] A=1954472196, B=3521572464, C=311452707, D=1824007650
[i = 58] A=1954472196, B=3521572464, C=717852174, D=1824007650
[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("TRANNGOCTAN") = 25e29f8eb4a0b4f4e631c7088efd5583
3.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= 'LETHIHONG?'
Chiều dài=56
Tổng số khối=1
Block 0 contains:
[0]1752132457
[1]1836343661
[2]2147483648
[3]0
[4]0
[5]0
[6]0
[7]0
[8]0
[9]0
[10]0
[11]0
[12]0
[13]0
[14]0
[15]64
[16]3504264915
[17]3672687322
[18]129
[19]2713562535
[20]3050407349
[21]258
[22]1132157775
[23]1805847531
[24]2713563043
[25]858207019
[26]3611694804
[27]1032
[28]233663805
[29]2928422701
[30]659231529
[31]2035107993
[32]3219041721
[33]3732053758
[34]934655730
[35]1019611688
[36]1248483954
[37]3845465709
[38]4070038491
[39]3611710550
[40]1478518086
[41]1065673740
[42]1957769882
[43]2496956567
[44]3197206740
[45]2357913222
[46]4256029625
[47]2647655883
[48]3112382742
[49]1094407878
[50]696104867
[51]3913886601
[52]2393812854
[53]789071421
[54]2091294043
[55]4151850447
[56]1949581807
[57]765152781
[58]675962948
[59]172361967
[60]3222500397
[61]741444200
[62]1704787510
[63]3607111135
[64]2448857701
[65]3236666089
[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 = 6] A=1359474563, B=1811763765, C=3000078566, D=2485768959, E=15843389
[i = 7] A=860076846, B=1359474563, C=1526682765, D=3000078566, E=2485768959
[i = 8] A=1241188163, B=860076846, C=3561094112, D=1526682765, E=3000078566
[i = 9] A=2779968137, B=1241188163, C=2362502859, D=3561094112, E=1526682765
[i = 10] A=145825341, B=2779968137, C=3531522512, D=2362502859, E=3561094112
[i = 11] A=3445295580, B=145825341, C=1768733858, D=3531522512, E=2362502859
[i = 12] A=1831043549, B=3445295580, C=1110198159, D=1768733858, E=3531522512
[i = 13] A=832449732, B=1831043549, C=861323895, D=1110198159, E=1768733858
[i = 14] A=449025304, B=832449732, C=1531502711, D=861323895, E=1110198159
[i = 15] A=141182690, B=449025304, C=208112433, D=1531502711, E=861323895
[i = 16] A=3041710235, B=141182690, C=112256326, D=208112433, E=1531502711
[i = 17] A=1047788979, B=3041710235, C=2182779320, D=112256326, E=208112433
[i = 18] A=3089265038, B=1047788979, C=3981653030, D=2182779320, E=112256326
[i = 19] A=3013243527, B=3089265038, C=3483172716, D=3981653030, E=2182779320
[i = 20] A=3036810952, B=3013243527, C=2919799907, D=3483172716, E=3981653030
[i = 21] A=3464301415, B=3036810952, C=3974536353, D=2919799907, E=3483172716
[i = 22] A=1233109343, B=3464301415, C=759202738, D=3974536353, E=2919799907
[i = 23] A=3361264716, B=1233109343, C=4087300825, D=759202738, E=3974536353
[i = 24] A=2688074162, B=3361264716, C=3529502807, D=4087300825, E=759202738
[i = 25] A=3220324244, B=2688074162, C=840316179, D=3529502807, E=4087300825
[i = 26] A=2021145819, B=3220324244, C=2819502188, D=840316179, E=3529502807
[i = 27] A=1982576218, B=2021145819, C=805081061, D=2819502188, E=840316179
[i = 28] A=1943985297, B=1982576218, C=3726511926, D=805081061, E=2819502188
[i = 29] A=3373863921, B=1943985297, C=2643127702, D=3726511926, E=805081061
[i = 30] A=428755737, B=3373863921, C=1559738148, D=2643127702, E=3726511926
[i = 31] A=7532502, B=428755737, C=1917207804, D=1559738148, E=2643127702
[i = 32] A=299973233, B=7532502, C=1180930758, D=1917207804, E=1559738148
[i = 33] A=448973265, B=299973233, C=2149366773, D=1180930758, E=1917207804
[i = 34] A=1221407988, B=448973265, C=1148735132, D=2149366773, E=1180930758
[i = 35] A=3931136976, B=1221407988, C=1185985140, D=1148735132, E=2149366773
[i = 36] A=3446883393, B=3931136976, C=305351997, D=1185985140, E=1148735132
[i = 37] A=96699772, B=3446883393, C=982784244, D=305351997, E=1185985140
[i = 38] A=1181170424, B=96699772, C=1935462672, D=982784244, E=305351997
[i = 39] A=1900427476, B=1181170424, C=24174943, D=1935462672, E=982784244
[i = 40] A=2383169276, B=1900427476, C=295292606, D=24174943, E=1935462672
[i = 41] A=349649511, B=2383169276, C=475106869, D=295292606, E=24174943
[i = 42] A=3158240371, B=349649511, C=595792319, D=475106869, E=295292606
[i = 43] A=3527064799, B=3158240371, C=3308637849, D=595792319, E=475106869
[i = 44] A=1452160154, B=3527064799, C=4010785564, D=3308637849, E=595792319
[i = 45] A=3627026184, B=1452160154, C=4102991671, D=4010785564, E=3308637849
[i = 46] A=1317996391, B=3627026184, C=2510523686, D=4102991671, E=4010785564
[i = 47] A=3263101394, B=1317996391, C=906756546, D=2510523686, E=4102991671
[i = 48] A=2744900839, B=3263101394, C=3550724569, D=906756546, E=2510523686
[i = 49] A=2879717262, B=2744900839, C=2963258996, D=3550724569, E=906756546
[i = 50] A=383862027, B=2879717262, C=3907450681, D=2963258996, E=3550724569
[i = 51] A=3503835868, B=383862027, C=2867412963, D=3907450681, E=2963258996
[i = 52] A=2488597899, B=3503835868, C=3317190978, D=2867412963, E=3907450681
[i = 53] A=4070770566, B=2488597899, C=875958967, D=3317190978, E=2867412963
[i = 54] A=2671828091, B=4070770566, C=3843374946, D=875958967, E=3317190978
[i = 55] A=681503494, B=2671828091, C=3165176289, D=3843374946, E=875958967
[i = 56] A=140791722, B=681503494, C=3889182494, D=3165176289, E=3843374946
[i = 57] A=1525621394, B=140791722, C=2317859521, D=3889182494, E=3165176289
[i = 58] A=1549234390, B=1525621394, C=2182681578, D=2317859521, E=3889182494
[i = 59] A=2521778806, B=1549234390, C=2528888996, D=2182681578, E=2317859521
[i = 60] A=662498094, B=2521778806, C=2534792245, D=2528888996, E=2182681578
[i = 61] A=2893011, B=662498094, C=2777928349, D=2534792245, E=2528888996
[i = 62] A=3795519638, B=2893011, C=2313108171, D=2777928349, E=2534792245
[i = 63] A=2889524043, B=3795519638, C=3221948724, D=2313108171, E=2777928349
[i = 64] A=892392374, B=2889524043, C=3096363557, D=3221948724, E=2313108171
[i = 65] A=2416408234, B=892392374, C=3943606482, D=3096363557, E=3221948724
[i = 66] A=2738885689, B=2416408234, C=2370581741, D=3943606482, E=3096363557
[i = 67] A=2635985984, B=2738885689, C=2751585706, D=2370581741, E=3943606482
[i = 68] A=3374295564, B=2635985984, C=1758463246, D=2751585706, E=2370581741
[i = 69] A=1482091340, B=3374295564, C=658996496, D=1758463246, E=2751585706
[i = 70] A=2913375514, B=1482091340, C=843573891, D=658996496, E=1758463246
[i = 71] A=90289845, B=2913375514, C=370522835, D=843573891, E=658996496
[i = 72] A=3065140820, B=90289845, C=2875827526, D=370522835, E=843573891
[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ả: SHA-1("LETHIHONG") = dofjk5b3ef5do248c792d0ed66f0ae43fd1b58kfe253
4. Bài 4 – Mã hóa bất đối xứng
Cho văn bản gốc P = HONG
4.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ự H = 7: C = Me mod n = 77 mod 77 = 28
+ Mã hóa ký tự O = 14: C = Me mod n = 147 mod 77 = 73
+ Mã hóa ký tự N = 13: C = Me mod n = 137 mod 77 = 63
+
Mã hóa ký tự G = 6 : C = Me mod n = 67 mod 77 = 41
- Giải mã:
+ Giải mã ký tự 28: M = Cd mod n = 2843 mod 60 = 28 (≡ 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ự 63: M = Cd mod n = 637 mod 60 = 13 (≡ N : giải mã đúng)
+
Giải mã ký tự 41: M = Cd mod n = 417 mod 60 = 41 (≡ N : giải mã đúng)
4.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
- 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ự N = 13:
C2(M=13) = (M*yk) mod p
= ((M mod p)( yk mod p)) mod p
= ((13 mod 31)( 2622 mod 31)) mod 31
= (13.5) mod 31
=3
=> EA(C1,C2) = (25,3)
- 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,3):
(C2*(C1a)-1) mod p
= (3*(2511)-1) mod 31
= ((3 mod 31)( (2511)-1 mod 31)) mod 31
= (3.(2531-11-1 mod 31)) mod 31
= (3.(2519 mod 31)) mod 31
= (3.25) mod 31
= (3.25) mod 31
= 13 (≡ M : giải mã đúng)
----------------------