Tải bản đầy đủ (.doc) (19 trang)

AN TOÀN VÀ BẢO MẬT THÔNG TIN -BÀI TẬP MÃ HÓA & BẢO MẬT THÔNG TIN

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (276.03 KB, 19 trang )

ĐẠ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)
----------------------



×