BT MatMa

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 6

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.

P = NguyenVanThuong
a) Mã hóa cộng với khóa 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 g u y e n v a n t h u o n g
13 6 20 24 4 13 21 0 13 19 7 20 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 13 6 20 24 4 13 21 0 13 19 7 20 14 13 6
B 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18
A+B 31 24 38 42 22 31 39 18 31 37 25 38 32 31 24
(A_B)mod2 5 24 12 16 22 5 13 18 5 11 25
12 6 5 24
6

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

5 24 12 16 22 5 13 18 5 11 25 12 6 5 24
F Y M Q W F N S F L Z M G F Y

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

P n g u y e n v a n t h u o n g
13 6 20 24 4 13 21 0 13 19 7 20 14 13 6
K 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18
C 5 24 12 16 22 5 13 18 5 11 25 12 6 5 24
F Y M Q W F N S F L Z M G F Y
b) 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 g u y e n v a n t h u o n g
13 6 20 24 4 13 21 0 13 19 7 20 14 13 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 13 6 20 24 4 13 21 0 13 19 7 20 14 13 6
k1 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7
1 1 1 11 11 1 11 11 11 1
k2 11 11 11 11 11
1 1 1 1 1
4 14 16 2 14 91 13 4 14 98 91 4
A*k1 91 91 0
2 0 8 8 7 3 9 0 2
A*k1 + 10 5 15 17 3 10 15 1 10 14 6 15 10 10 5
k2 0 3 1 9 9 2 8 1 2 4 0 1 9 2 3
(A*k1 + 24 14 8 21 5 24 1
1 1
k2) mod 22 1 21 23 24 2
3 1
26

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

P n g u y e n v a n t h u o n g
13 6 20 24 4 13 21 0 13 19 7 20 14 13 6
k1 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7
k2 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11
C 22 1 21 23 13 24 2 11 24 14 8 21 5 24 1
W B V X N Y C L Y O I V F Y B
c) 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): keynguyenvanthu
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 N G U Y E N V A N T H U O N G
K k e y n g u y e n v a n t h u
C X K S L K H T E A O H H H U A

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


P N G U Y E N V A N T H U O N G
K a t t a c k a t t a c k a t t
C N Z N Y G X V T G T J E O G Z

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

P = NGUYENVANTHUONG -> C = RQMCHLBWEDFAFTPP

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


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 = NGUYENVANTHUONG => P = NG UY EN VA NT HU ON G
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

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

NGUYENVANTHUONG  OEXPNUWLONEWQOKV

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.

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


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

9 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
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: nguyenvanthuong
 Secret key: 2b7e151628aed2a6abf71589
 Ciphertext: PTtVED2HNvoQvKJFj8Igdg==

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.

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

You might also like