Tải bản đầy đủ (.docx) (23 trang)

BT mat ma hoc 2021 DHBK DHDN

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 (200.96 KB, 23 trang )

BÀI TẬP MƠN HỌC

AN TỒN VÀ BẢO MẬT THƠNG TIN

Sinh viên
Mã số
Lớp

: Nguyễn Tuấn Quang Sang
: 102170186
: 17T3

Đà Nẵng 2021

1.


MỤC LỤC
1. Bài 1 – Mã hóa đối xứng cổ điển..............................................................................4
1.1.

Thực hiện mã hóa cộng với K=18.........................................................................4

1.2.

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

1.3.

Mã hóa Vigenère với khóa K = attack..................................................................5


1.4.

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

1.5.

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

1.6.

Mã hóa Autokey với K = 18.................................................................................9

2. Bài 2 – Mã hóa đối xứng hiện đại.............................................................................9
2.1.

Mã hóa bằng thuật tốn AES................................................................................9

2.2.

Mã hóa bằng thuật tốn RC6..............................................................................10

3. Bài 3 – Hàm băm.....................................................................................................12
3.1.

Tính giá trị MD5.................................................................................................12

3.2.

Tính giá trị SHA-1..............................................................................................13


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

Mã hóa RSA với p = 7, q = 11...........................................................................15

4.2.

Mã hóa ElGamal với p = 31, a = 11, x = 6 và k = 22.........................................15

5. Bài 5: Mã hóa Elliptic..............................................................................................18
Các ký hiệu................................................................................................................... 20

2


BÀI TẬP MÃ HĨA & BẢO MẬT THƠNG TIN
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ố ngun Z26 sử dụng các thuật tố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 AutoCipher 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ã hố 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.
3


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. Bài 1 – Mã hóa đối xứng cổ điển
Cho văn bản gốc P = nguyentuanquangsang
2.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

n
13


g
6

u y
20 24

e
4

n
1
3

t
u
19 20

a
0

n
1
3

q
1
6

u

2
0

a
0

n
1
3

g
6

s
1
8

a
0

n
1
3

-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.
P
n g u y e n t u a n q u a n g s a n
1 6 2 2 4 1 1 2 0 1 1 2 0 1 6 1 0 1
3

0 4
3 9 0
3 6 0
3
8
3
K
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
P+K
3 2 3 4 2 3 3 3 1 3 3 3 1 3 2 3 1 3
1 4 8 2 2 1 7 8 8 1 4 8 8 1 4 6 8 1
(P+K)mod2 5 2 1 1 2 5 11 1 1 5 8 1 1 5 2 1 1 5
6
4 2 6 2
2 8
2 8
4 0 8

g
6

g
6
1
8
2
4
2
4


5
f

- Bước 3: Chuyển tất cả các giá trị nguyên này về lại chữ cái.
24 12 16 22 5 11 12 18 5
8 12 18 5
y
m q
w
f
l
m
s
f
i
m
s
f

24
y

10
k

18
s

5

f

24
y

n
13

- Tổng hợp lại ta có bảng sau:
g
u
y
e
n
t
u
6 20 24 4 13 19 20

a
0

n
13

q
16

u
20


a
0

n
13

g
6

s
18

a
0

n
13

g
6

18

18

18

18

18


18

18

18

18

18

18

18

18

18

18

18

18

18

18

5


24

12

16

22

5

11

12

18

5

8

12

18

5

24

10


18

5

24

4


f

y

m

q

w

f

l

m

s

f


i

m

s

f

y

k

g
6

s
1
8

s

f

y

2.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

n

13

g
6

u y
20 24

e
4

n
1
3

t
u
19 20

a
0

n
1
3

q
1
6


u
2
0

a
0

n
1
3

a
0

n
1
3

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.
n
13
7
11
91
10
2


g
6
7
11
4
2
5
3

u
20
7
11
14
0
15
1

y
24
7
11
16
8
17
9

e
4

7
11
2
8
3
9

n
13
7
11
91
10
2

t
19
7
11
13
3
14
4

u
20
7
11
14
0

15
1

a
0
7
11
0

n
13
7
11
91

q
16
7
11
112

11

10
2

12
3

u

20
7
11
14
0
15
1

a
0
7
11
0

n
13
7
11
91

s
18
7
11
12
6
13
7

a

0
7
11
0

n
13
7
11
91

g
6
7
11
42

10
2

g
6
7
11
4
2
5
3

11


11

10
2

53

2
4
y

1

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

1

21

23

y

b

v

x


1
3
n

24

14

21

11

24

19

21

11

24

1

7

11

y


o

v

l

y

t

v

l

y

b

h

l

n
13

q
16

u

20

a
0

n
13

g
6

s
18

a
0

a
0

c
2

k
10

a
0

t

19

a
0

c
2

13

18

30

0

32

18

2

13

18

4

0


6

18

2

n

s

e

a

g

t
1
9
2
5
2
5
z

s

c

b


2.3. Mã hóa Vigenère với khóa K = attack
n
13
a
0
13
13
n

Tra cứu bảng mã hóa Vigenère ta có:
g
u
y
e
n
t
u
a
6 20 24 4 13 19 20 0
t
1
9
2
5
2
5
z

t

19

a
0

c
2

k
10

a
0

t
19

39

24

6

23

19

39

13


24

6

23

19

13

n

y

g

x

t

n

t
1
9
1
9
1
9

t

5

n
1
3
k
1
0
2
3
2
3
x

g
6
a
0
6
6
g


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

Thực hiện tính tốn

P = nguyentuanquangsang -> C = zlqaeahaaaeaaaqmaalv

2.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.
6



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 = NG UY EN TU AN QU AN GS AN GQ
Bước 2: Tạo bảng mã hóa:
P

L

A

Y

F

I

R

Y

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
- NG -> MH
P

L


A

Y

F

I

R

Y

B

C

D

E

G

H

J

K

L


M

N

O

P

Q

S

T

U

P

L

A

Y

F

I

R


Y

B

C

D

E

G

H

J

K

L

M

N

O

P

Q


S

T

U

P

L

A

Y

F

I

R

Y

B

C

D

E


G

H

J

K

L

M

N

O

P

Q

S

T

U

P

L


A

Y

F

- UY -> SC

- EN -> HL

- TU -> UP
7


I

R

Y

B

C

D

E

G


H

J

K

L

M

N

O

P

Q

S

T

U

P

L

A


Y

F

I

R

Y

B

C

D

E

G

H

J

K

L

M


N

O

P

Q

S

T

U

P

L

A

Y

F

I

R

Y


B

C

D

E

G

H

J

K

L

M

N

O

P

Q

S


T

U

P

L

A

Y

F

I

R

Y

B

C

D

E

G


H

J

K

L

M

N

O

P

Q

S

T

U

P

L

A


Y

F

I

R

Y

B

C

D

E

G

H

J

K

L

M


N

O

-AN ->YM

-QU ->SP

-GS ->MA

-GQ ->ES

8


P

Q

S

T

U

C = MH SC HL UP YM SP YM MA YM ES
2.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): KHONGCOKEYDAUNHABAN
- Bước 3: Thực hiện mã hóa theo thuật tốn mã hóa Autokey với khóa K ở trên
P
K
C

N
K
X

G
H
N

U
O
Y

Y
N
L

E
G
K

N
C
P


T
O
H

U
K
D

A
E
E

N
Y
L

Q
D
T

U
A
U

A
U
U

N
N

A

G
H
N

S
A
S

A
B
B

N
A
N

G
N
T

3. Bài 2 – Mã hóa đối xứng hiện đại
Cho văn bản gốc P = quangsang
3.1. Mã hóa bằng thuật tốn AES
Plantext (input)

Key (input)

Ciphertext (output)


71

75

61

6e

0f

47

0c

af

7d

62

d9

8b

67

73

61


6e

15

d9

b7

7f

72

06

48

d9

67

00

00

00

71

e8


ad

67

24

3e

a5

ee

00

00

00

00

c9

59

d6

98

9d


31

da

7b

Chi tiết các bước mã hóa AES:
SubBytes

ShiftRows

MixColumns

AddRoundKey

0

1

2

Key Schedule

0f

47

0c


af

7e

20

6b

af

15

d9

b7

7f

60

aa

b7

7f

71

e8


ad

67

10

89

ad

67

c9

59

d6

98

a7

37

d6

98

f3


b7

7f

79

f3

b7

7f

79

c1

4c

c3

c8

dc

9b

97

38


ac

ac

ac

ac

d0

ac

a9

d2

ac

a9

d2

d0

52

36

1f


c6

90

49

fe

81

ac

ac

ac

ac

ca

a7

95

85

95

85


ca

a7

a4

eb

97

fd

37

df

72

15

ac

ac

ac

ac

5c


9a

f6

46

46

5c

9a

f6

bb

56

b6

0b

b0

e9

3f

a7


ac

ac

ac

ac

91

91

91

91

a4

0e

20

8c

76

bf

6f


d3

d2

49

de

e6

a4

f6

b1

35

9


3

4

5

6

7


8

9

10

91

91

91

91

d2

f8

a0

25

fa

78

0c

49


c9

80

7e

f

33

f8

72

b6

91

91

91

91

d9

9b

dc


18

77

a6

3b

6b

6b

b4

c6

d3

1c

12

fd

b8

91

91


91

91

91

2b

08

a7

c5

27

0c

e7

b7

5e

61

c6

72


79

6d

21

49

42

c8

96

49

42

c8

96

f8

68

73

9c


c0

89

57

b1

38

e1

24

2d

c3

41

40

4e

41

40

4e


c3

ca

36

5d

77

af

2f

51

ae

65

19

0c

d9

9c

c9


54

6c

54

6c

9c

c9

bc

1a

64

98

df

6b

ad

7e

63


71

c9

e6

40

b6

3c

fd

fd

40

b6

3c

2f

6a

e6

d3


39

67

06

c0

16

0d

e0

13

07

f8

36

d8

07

f8

36


d8

c9

3b

1f

3e

2c

a5

f2

43

e5

9e

ed

7d

4d

d4


fe

35

d4

fe

35

4d

b5

d1

9d

5d

5c

73

22

8c

e9


a2

bf

d1

f

a3

dd

8e

dd

8e

f

a3

f5

c8

8c

f0


65

0e

a3

dd

90

c6

2f

2d

47

d7

e1

7d

7d

47

d7


e1

fa

ed

21

44

f1

96

90

50

0b

7b

b1

14

d9

0b


55

f

d9

0b

55

f

08

fd

a9

bb

58

fd

0f

4c

50


00

a6

f7

1e

3a

08

3e

3a

08

3e

1e

68

43

a8

cc


9d

ee

cc

40

f5

ad

64

8c

60

b4

15

d8

15

d8

60


b4

dc

d5

c8

d1

36

38

9b

46

ea

ed

53

97

2b

21


c8

fa

fa

2b

21

c8

b0

9b

e3

3b

eb

7d

ed

bd

5b


e6

0e

86

53

63

24

68

53

63

24

68

ab

b2

ed

1f


ab

b2

ed

1f

da

3e

6e

d0

e6

95

43

64

95

43

64


e6

0a

5f

f0

eb

0a

5f

f0

eb

cd

76

15

4e

87

55


ed

88

ed

88

87

55

cb

60

dc

c2

cb

60

dc

c2

87


14

33

6b

39

8e

ab

44

44

39

8e

ab

05

1c

88

46


71

8c

83

cf

c7

a3

da

a9

57

b2

9f

70

57

b2

9f


70

f6

2d

49

91

37

bb

38

f7

c1

96

71

66

bd

38


59

2f

38

59

2f

bd

aa

47

f2

53

14

3d

d8

7d

be


7a

2a

2e

17

fa

c3

7f

c3

7f

17

fa

9c

44

80

db


93

e7

08

a1

0f

a3

88

7a

c6

0a

57

d3

d3

c6

0a


57

bf

7c

96

79

48

f7

a5

4a

f7

8b

33

33

78

90


a3

33

78

90

a3

33

82

bd

45

46

48

f3

cb

3c

ca


4e

8e

7a

ae

da

e5

31

da

e5

31

ae

43

5c

66

a9


26

1b

c3

be

65

47

a5

17

76

0a

c4

da

c4

da

76


0a

6f

62

39

d7

45

a2

aa

0b

2a

c0

93

dc

68

3d


c3

c3

c3

68

3d

c3

0b

44

c3

6c

20

d7

72

38

2b


93

b1

54

74

2f

19

da

74

2f

19

da

ef

23

00

0a


fd

0e

c5

f9

12

2d

c5

f3

4d

a0

06

f0

a0

06

f0


4d

70

43

0a

5d

0d

16

d5

6b

7d

55

df

36

e5

ba


dc

86

dc

86

e5

ba

17

36

47

bb

42

e0

4a

41

55


d6

0d

fa

f1

dc

c8

20

20

f1

dc

c8

a0

08

9d

09


cb

1c

6e

56

6b

14

f3

5f

c9

d8

a6

0d

c9

d8

a6


0d

7d

62

d9

8b

b4

ba

7f

86

f

fc

9e

05

fc

9e


05

f

72

06

48

d9

8e

98

4d

26

fc

f6

d7

2d

d7


2d

fc

f6

24

3e

a5

ee

f3

13

59

18

7f

fa

0d

cf


cf

7f

fa

0d

9d

31

da

7b

52

4e

20

76

10


3.2. Mã hóa bằng thuật tố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ả:
Key: baitapmatmahoc
Input: quangsang
Original String list: [1903518062, 1735614830, 1730158624, 538976288]
Length of Input String: 16
Encrypted String list: [1068620080, 575488205, 2121520392, 2914785170]
Encrypted String: ?±Ù0"M@Í~s¼
Length of Encrypted String: 16
Decrypted: quangsang
Plantext: quangsang
Secret key: baitapmatmahoc
Ciphertext: ?±Ù0"M@Í~s¼

11



4. Bài 3 – Hàm băm
Cho văn bản gốc P =nguyentuanquangsang
4.1. Tính giá trị MD5
64-ELEMENT TABLE 'T':
T[0]=3614090360
T[4]=4118548399
T[8]=1770035416
T[12]=1804603682
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[1]=3905402710
T[5]=1200080426
T[9]=2336552879
T[13]=4254626195
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[2]=606105819
T[6]=2821735955
T[10]=4294925233
T[14]=2792965006
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[3]=3250441966
T[7]=4249261313
T[11]=2304563134

T[15]=1236535329
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

s[2]=17
s[6]=17
s[10]=17
s[14]=17
s[18]=14
s[22]=14
s[26]=14
s[30]=14
s[34]=16
s[38]=16
s[42]=16
s[46]=16
s[50]=15
s[54]=15
s[58]=15
s[62]=15


s[3]=22
s[7]=22
s[11]=22
s[15]=22
s[19]=20
s[23]=20
s[27]=20
s[31]=20
s[35]=23
s[39]=23
s[43]=23
s[47]=23
s[51]=21
s[55]=21
s[59]=21
s[63]=21

OPERATION TABLE 's':
s[0]=7
s[4]=7
s[8]=7
s[12]=7
s[16]=5
s[20]=5
s[24]=5
s[28]=5
s[32]=4
s[36]=4
s[40]=4

s[44]=4
s[48]=6
s[52]=6
s[56]=6
s[60]=6

s[1]=12
s[5]=12
s[9]=12
s[13]=12
s[17]=9
s[21]=9
s[25]=9
s[29]=9
s[33]=11
s[37]=11
s[41]=11
s[45]=11
s[49]=10
s[53]=10
s[57]=10
s[61]=10

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

Thông điệp được sau khi thêm= 'nguyentuanquangsang?'
Chiều dài=56
Tổng số khối=1
Block 0 contains:

[0]2037737326
[1]1970564709
[2]1970368097
[3]1936158305
[4]2154262113
[5]0
[6]0
[7]0

12


[8]0
[9]0
[10]0
[11]0
[12]0
[13]0
[14]152
[15]0

Chiều dài sau khi thêm =512 bits [nên là bội của 512]
OPERATIONS:
[Block=0]
[i =
[i
[i
[i
[i
[i

[i
[i
[i
[i
[i
[i
[i
[i
[i
[i
[i
[i
[i
[i
[i
[i
[i
[i
[i
[i
[i
[i
[i
[i
[i
[i
[i
[i
[i
[i

[i
[i
[i
[i
[i
[i
[i
[i
[i
[i
[i
[i
[i
[i

0] A=1607704113, B=4023233417, C=2562383102, D=271733878
= 1] A=1607704113, B=4023233417, C=2562383102, D=3827540502
= 2] A=1607704113, B=4023233417, C=1942660686, D=3827540502
= 3] A=1607704113, B=934209526, C=1942660686, D=3827540502
= 4] A=3641715674, B=934209526, C=1942660686, D=3827540502
= 5] A=3641715674, B=934209526, C=1942660686, D=974229969
= 6] A=3641715674, B=934209526, C=3804235075, D=974229969
= 7] A=3641715674, B=383518381, C=3804235075, D=974229969
= 8] A=3221817443, B=383518381, C=3804235075, D=974229969
= 9] A=3221817443, B=383518381, C=3804235075, D=2834507492
= 10] A=3221817443, B=383518381, C=1806571644, D=2834507492
= 11] A=3221817443, B=541085555, C=1806571644, D=2834507492
= 12] A=1180798045, B=541085555, C=1806571644, D=2834507492
= 13] A=1180798045, B=541085555, C=1806571644, D=3786414434
= 14] A=1180798045, B=541085555, C=932626033, D=3786414434

= 15] A=1180798045, B=935966669, C=932626033, D=3786414434
= 16] A=1730455178, B=935966669, C=932626033, D=3786414434
= 17] A=1730455178, B=935966669, C=932626033, D=3826058268
= 18] A=1730455178, B=935966669, C=1799435428, D=3826058268
= 19] A=1730455178, B=584651924, C=1799435428, D=3826058268
= 20] A=913737729, B=584651924, C=1799435428, D=3826058268
= 21] A=913737729, B=584651924, C=1799435428, D=2292680211
= 22] A=913737729, B=584651924, C=846535733, D=2292680211
= 23] A=913737729, B=4286151885, C=846535733, D=2292680211
= 24] A=1487388239, B=4286151885, C=846535733, D=2292680211
= 25] A=1487388239, B=4286151885, C=846535733, D=1891523233
= 26] A=1487388239, B=4286151885, C=2372296061, D=1891523233
= 27] A=1487388239, B=2010984091, C=2372296061, D=1891523233
= 28] A=2228491451, B=2010984091, C=2372296061, D=1891523233
= 29] A=2228491451, B=2010984091, C=2372296061, D=2115731566
= 30] A=2228491451, B=2010984091, C=440122153, D=2115731566
= 31] A=2228491451, B=3546525017, C=440122153, D=2115731566
= 32] A=2491543308, B=3546525017, C=440122153, D=2115731566
= 33] A=2491543308, B=3546525017, C=440122153, D=3490007591
= 34] A=2491543308, B=3546525017, C=4106381799, D=3490007591
= 35] A=2491543308, B=1501770176, C=4106381799, D=3490007591
= 36] A=421055762, B=1501770176, C=4106381799, D=3490007591
= 37] A=421055762, B=1501770176, C=4106381799, D=1107558295
= 38] A=421055762, B=1501770176, C=4203802028, D=1107558295
= 39] A=421055762, B=2808993042, C=4203802028, D=1107558295
= 40] A=3265201448, B=2808993042, C=4203802028, D=1107558295
= 41] A=3265201448, B=2808993042, C=4203802028, D=2835590995
= 42] A=3265201448, B=2808993042, C=3036593964, D=2835590995
= 43] A=3265201448, B=1816423215, C=3036593964, D=2835590995
= 44] A=1327068735, B=1816423215, C=3036593964, D=2835590995

= 45] A=1327068735, B=1816423215, C=3036593964, D=1718949755
= 46] A=1327068735, B=1816423215, C=2902733124, D=1718949755
= 47] A=1327068735, B=2811860611, C=2902733124, D=1718949755
= 48] A=2106426294, B=2811860611, C=2902733124, D=1718949755
= 49] A=2106426294, B=2811860611, C=2902733124, D=2538519998

13


[i
[i
[i
[i
[i
[i
[i
[i
[i
[i
[i
[i
[i
[i

=
=
=
=
=
=

=
=
=
=
=
=
=
=

50]
51]
52]
53]
54]
55]
56]
57]
58]
59]
60]
61]
62]
63]

A=2106426294, B=2811860611, C=2167716731, D=2538519998
A=2106426294, B=2976630826, C=2167716731, D=2538519998
A=2675927680, B=2976630826, C=2167716731, D=2538519998
A=2675927680, B=2976630826, C=2167716731, D=4261210657
A=2675927680, B=2976630826, C=548657909, D=4261210657
A=2675927680, B=1753026926, C=548657909, D=4261210657

A=3853191172, B=1753026926, C=548657909, D=4261210657
A=3853191172, B=1753026926, C=548657909, D=3588263506
A=3853191172, B=1753026926, C=1481705809, D=3588263506
A=3853191172, B=4015640739, C=1481705809, D=3588263506
A=211110376, B=4015640739, C=1481705809, D=3588263506
A=211110376, B=4015640739, C=1481705809, D=324312376
A=211110376, B=4015640739, C=869607735, D=324312376
A=211110376, B=4232878767, C=869607735, D=324312376

Block=0 Processed:
A=1943694569
B=3961144888
C=3431990837
D=596046254

Kết quả:

A_Hex=73da6ce9
B_Hex=ec1a4638
C_Hex=cc900635
D_Hex=2386f1ae

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

MD5("nguyentuanquangsang")=e96cda7338461aec350690ccaef18623

4.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= nguyentuanquangsang?'
Chiều dài=56
Tổng số khối=1
Block 0 contains:

[0]1852274041
[1]1701737589
[2]1634627957
[3]1634625395
[4]1634625408
[5]0
[6]0
[7]0
[8]0
[9]0
[10]0
[11]0
[12]0
[13]0

14


[14]0
[15]152
[16]504498200

[17]134227468
[18]11482
[19]4277722838
[20]3537666840
[21]22964
[22]4260478381
[23]2780366593
[24]1009034072
[25]3957536579
[26]1265784759
[27]2243492637
[28]1920952502
[29]2531532086
[30]3434519888
[31]3213660743
[32]1772434777
[33]2740626835
[34]1279579236
[35]634032716
[36]4229031713
[37]4264767438
[38]1364337618
[39]462326344
[40]3246513393
[41]950441023
[42]3717120602
[43]3996078381
[44]4110224880
[45]363513290
[46]886945260

[47]3880476889
[48]3818254349
[49]366357529
[50]354493325
[51]2894477637
[52]2563885620
[53]3396110211
[54]286320404
[55]3110431028
[56]1810682442
[57]2761825343
[58]175049255
[59]2044657616
[60]4175354927
[61]1707364718
[62]2131540555
[63]1716384695
[64]4047020361
[65]3313854032
[66]3282313299
[67]3692675263
[68]1765093055
[69]2865970965
[70]3016925013
[71]621236230
[72]1959824482
[73]1445869013
[74]673533114
[75]1772602567
[76]1905457693

[77]50307821

15


[78]2827125024
[79]4005199865

Chiều dài sau khi thêm =512 bits [nên là bội của 512]
OPERATIONS:
[Block=0]
[i
[i
[i
[i
[i
[i
[i
[i
[i
[i
[i
[i
[i
[i
[i
[i
[i
[i
[i

[i
[i
[i
[i
[i
[i
[i
[i
[i
[i
[i
[i
[i
[i
[i
[i
[i
[i
[i
[i
[i
[i
[i
[i
[i
[i
[i
[i
[i
[i

[i
[i
[i
[i
[i
[i
[i

=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=

=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=

=
=
=
=

0] A=236719660, B=1732584193, C=2079550178, D=2562383102, E=271733878
1] A=2409694979, B=236719660, C=1506887872, D=2079550178, E=2562383102
2] A=3267367231, B=2409694979, C=59179915, D=1506887872, E=2079550178
3] A=3820470185, B=3267367231, C=3823649216, D=59179915, E=1506887872
4] A=1350640277, B=3820470185, C=4038067279, D=3823649216, E=59179915
5] A=1327895575, B=1350640277, C=2028859370, D=4038067279, E=3823649216
6] A=333341964, B=1327895575, C=1411401893, D=2028859370, E=4038067279
7] A=1005128535, B=333341964, C=3553199365, D=1411401893, E=2028859370
8] A=2826560015, B=1005128535, C=83335491, D=3553199365, E=1411401893
9] A=2126549366, B=2826560015, C=3472507605, D=83335491, E=3553199365
10] A=2472315058, B=2126549366, C=3927865475, D=3472507605, E=83335491
11] A=3041229745, B=2472315058, C=2679120989, D=3927865475, E=3472507605
12] A=3443434165, B=3041229745, C=2765562412, D=2679120989, E=3927865475
13] A=2607443777, B=3443434165, C=1834049260, D=2765562412, E=2679120989
14] A=3578890453, B=2607443777, C=1934600365, D=1834049260, E=2765562412
15] A=551940036, B=3578890453, C=1725602768, D=1934600365, E=1834049260
16] A=1761772057, B=551940036, C=1968464437, D=1725602768, E=1934600365
17] A=1551957395, B=1761772057, C=137985009, D=1968464437, E=1725602768
18] A=1842435811, B=1551957395, C=1514184838, D=137985009, E=1968464437
19] A=3778296307, B=1842435811, C=3609214820, D=1514184838, E=137985009
20] A=1361637927, B=3778296307, C=3681834424, D=3609214820, E=1514184838
21] A=3684269556, B=1361637927, C=4165799548, D=3681834424, E=3609214820
22] A=690835760, B=3684269556, C=3561634953, D=4165799548, E=3681834424
23] A=223329632, B=690835760, C=921067389, D=3561634953, E=4165799548
24] A=415530042, B=223329632, C=172708940, D=921067389, E=3561634953

25] A=2038013185, B=415530042, C=55832408, D=172708940, E=921067389
26] A=843254322, B=2038013185, C=2251366158, D=55832408, E=172708940
27] A=1130032807, B=843254322, C=1583245120, D=2251366158, E=55832408
28] A=976718611, B=1130032807, C=2358297228, D=1583245120, E=2251366158
29] A=1685378487, B=976718611, C=3503733673, D=2358297228, E=1583245120
30] A=2398853459, B=1685378487, C=3465405124, D=3503733673, E=2358297228
31] A=345634751, B=2398853459, C=3642570093, D=3465405124, E=3503733673
32] A=3590333311, B=345634751, C=3820938836, D=3642570093, E=3465405124
33] A=3472951416, B=3590333311, C=3307634159, D=3820938836, E=3642570093
34] A=1693826383, B=3472951416, C=4118808799, D=3307634159, E=3820938836
35] A=381848437, B=1693826383, C=868237854, D=4118808799, E=3307634159
36] A=2870589153, B=381848437, C=3644682067, D=868237854, E=4118808799
37] A=3255019195, B=2870589153, C=1169203933, D=3644682067, E=868237854
38] A=1811260536, B=3255019195, C=1791389112, D=1169203933, E=3644682067
39] A=3486506535, B=1811260536, C=4034980270, D=1791389112, E=1169203933
40] A=4212059995, B=3486506535, C=452815134, D=4034980270, E=1791389112
41] A=1865716608, B=4212059995, C=4092852105, D=452815134, E=4034980270
42] A=1069402124, B=1865716608, C=4274240470, D=4092852105, E=452815134
43] A=2415209518, B=1069402124, C=466429152, D=4274240470, E=4092852105
44] A=3061838058, B=2415209518, C=267350531, D=466429152, E=4274240470
45] A=2205515764, B=3061838058, C=2751286027, D=267350531, E=466429152
46] A=4134930499, B=2205515764, C=2912943162, D=2751286027, E=267350531
47] A=4178909040, B=4134930499, C=551378941, D=2912943162, E=2751286027
48] A=3727770254, B=4178909040, C=4254958096, D=551378941, E=2912943162
49] A=307711610, B=3727770254, C=1044727260, D=4254958096, E=551378941
50] A=236540484, B=307711610, C=3079426211, D=1044727260, E=4254958096
51] A=850331052, B=236540484, C=2224411550, D=3079426211, E=1044727260
52] A=1118885112, B=850331052, C=59135121, D=2224411550, E=3079426211
53] A=1773570470, B=1118885112, C=212582763, D=59135121, E=2224411550
54] A=1580630356, B=1773570470, C=279721278, D=212582763, E=59135121

55] A=461776474, B=1580630356, C=2590876265, D=279721278, E=212582763

16


[i
[i
[i
[i
[i
[i
[i
[i
[i
[i
[i
[i
[i
[i
[i
[i
[i
[i
[i
[i
[i
[i
[i
[i


=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=

56]
57]
58]
59]
60]

61]
62]
63]
64]
65]
66]
67]
68]
69]
70]
71]
72]
73]
74]
75]
76]
77]
78]
79]

A=2460335440, B=461776474, C=395157589, D=2590876265, E=279721278
A=3031128772, B=2460335440, C=2262927766, D=395157589, E=2590876265
A=1611230038, B=3031128772, C=615083860, D=2262927766, E=395157589
A=3328119713, B=1611230038, C=757782193, D=615083860, E=2262927766
A=2140171910, B=3328119713, C=2550291157, D=757782193, E=615083860
A=3126194988, B=2140171910, C=1905771752, D=2550291157, E=757782193
A=1465821476, B=3126194988, C=2682526625, D=1905771752, E=2550291157
A=145645905, B=1465821476, C=781548747, D=2682526625, E=1905771752
A=690954358, B=145645905, C=366455369, D=781548747, E=2682526625
A=2308770399, B=690954358, C=1110153300, D=366455369, E=781548747

A=1863368016, B=2308770399, C=2320222237, D=1110153300, E=366455369
A=3764990209, B=1863368016, C=3798418071, D=2320222237, E=1110153300
A=2317738239, B=3764990209, C=465842004, D=3798418071, E=2320222237
A=1577600443, B=2317738239, C=2014989376, D=465842004, E=3798418071
A=195092248, B=1577600443, C=3800660031, D=2014989376, E=465842004
A=1139119605, B=195092248, C=3615625582, D=3800660031, E=2014989376
A=1923878761, B=1139119605, C=48773062, D=3615625582, E=3800660031
A=4012642421, B=1923878761, C=1358521725, D=48773062, E=3615625582
A=3494481037, B=4012642421, C=1554711514, D=1358521725, E=48773062
A=597870319, B=3494481037, C=2076902429, D=1554711514, E=1358521725
A=4168190622, B=597870319, C=1947362083, D=2076902429, E=1554711514
A=1689935437, B=4168190622, C=3370693051, D=1947362083, E=2076902429
A=3397871813, B=1689935437, C=3189531303, D=3370693051, E=1947362083
A=2422950652, B=3397871813, C=1496225683, D=3189531303, E=3370693051

Block=0 Processed:
H0=4155534845,
H1=3126137934,
H2=4058608785,
H3=3461265181,
H4=2361103275

Giá trị cuối cùng:
H0_Hex=f7b06dfd
H1_Hex=ba55144e
H2_Hex=f1e97491
H3_Hex=ce4eb71d
H4_Hex=8cbb93ab

Kết quả: SHA1("nguyentuanquangsang")=f7b06dfdba55144ef1e97491ce4eb71d8cbb93ab


17


5. Bài 4 – Mã hóa bất đối xứng
Cho văn bản gốc P = sang
5.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ự S = 18: C = Me mod n = 187 mod 77 = 39
+ Mã hóa ký tự A = 0: C = Me mod n = 07 mod 77 = 0
+ Mã hóa ký tự N = 13: C = Me mod n = 137 mod 77 = 62
+ Mã hóa ký tự G = 6: C = Me mod n = 67 mod 77 = 41
- Giải mã:
+ Giải mã ký tự 39: M = Cd mod n = 3943 mod 60 = 18 (≡ S : giải mã đúng)
+ Giải mã ký tự 0: M = Cd mod n = 043 mod 60 = 0 (≡ A : giải mã đúng)
+ Giải mã ký tự 62: M = Cd mod n = 6243 mod 60 = 13 (≡ N : giải mã đúng)
+ Giải mã ký tự 41: M = Cd mod n = 4143 mod 60 = 6 (≡ G : giải mã đúng)

<script src=””/> <script src=””/>

5.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ự S = 18:
C2(T=19) = (T*yk) mod p
= ((T mod p)( yk mod p)) mod p
18


= ((18 mod 31)( 2622 mod 31)) mod 31
= (18*5) mod 31
= 28
=> 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=12) = (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,29)
+ Mã hóa ký tự G = 6:

C2(M=12) = (M*yk) mod p
= ((M mod p)( yk mod p)) mod p
= ((6 mod 31)( 2622 mod 31)) mod 31
= (6.5) mod 31
= 30
=> EA(C1,C2) = (25,29)
b. Giải mã:
+ Giải mã ký tự (25,28):
(C2*(C1a)-1) mod p
= (28*(2511)-1) mod 31
= ((28 mod 31)( (2511)-1 mod 31)) mod 31
= (28.(2531-11-1 mod 31)) mod 31
= (28.(2519 mod 31)) mod 31
19


= (28.25) mod 31
= 18 (≡ S : 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 (≡ N : giải mã đúng)
+ Giải mã ký tự (25,30):
(C2*(C1a)-1) mod p
= (30*(2511)-1) mod 31
= ((30 mod 31)( (2511)-1 mod 31)) mod 31
= (30.(2531-11-1 mod 31)) mod 31
= (30.(2519 mod 31)) mod 31
= (30.25) mod 31
= (30.25) mod 31
= 6 (≡ G : giải mã đúng)

20


6. 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 = λ2 – 2x mod p = 642 - 2*2 mod 71 = 45
21



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 = = λ2 – 2x2 mod p = 562 - 2*45 mod 71 = 64
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 = = λ2 – x3 - x4 mod p = 242 - 48-64 mod 71 = 38
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)
------------------------------------

22



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ã

23



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×