



















Preview text:
lOMoAR cPSD| 46342576
ĐỀ CƯƠNG MÔN BẢO MẬT THÔNG TIN
Câu 1: Trình bày các thành phần của một hệ mật mã, các loại hệ mật mã, các
tiêu chuẩn đánh giá hệ mật mã ? * Các thành phần của một hệ mật mã
Hệ mật mã là 1 bộ 5(P,C,K,E,D)
P: tập hữu hạn các bản rõ Plantex hay còn gọi là không gian bản rõ.
C: tập hữu hạn các bản mã Crypto hay còn gọi là không gian bản mã.
K: tập hữu hạn các khóa hay còn gọi là không gian khóa.
*Các loại hệ mật mã
Có hai loại hệ mật mã:
- Hệ mật mã đối xứng hay còn gọi là hệ mật mã khóa bí mật.
- Hệ mật mã bất đối xứng hay còn gọi là hệ mật mã khóa công khai.
Hệ thống mật mã đối xứng (Hệ mật mã khóa bí mật - Symmetric Key Cryptosystem - SKC)
Trong mô hình của hệ thống này, khóa của hai thuật toán sinh mã và giải mã là giống
nhau và bí mật đối với tất cả những người khác; nói cách khác, hai bên gửi và nhận tin chia
sẻ chung một khóa bí mật duy nhật. Vai trò của hai phía tham gia là giống nhau và có thể
đánh đổi vai trò, gửi và nhận tin, cho nên hệ thống được gọi là “mã hóa đối xứng”.
Hệ thống mật mã khóa bí mật đối xứng có những nhược điểm như:
- Nhược điểm lớn trên phương diện quản lý và lưu trữ, đặc biệt bộc lộ rõ trong
thế giới hiện đại khi liên lạc qua Internet đã rất phát triển.
- Số lượng khóa bí mật mà mỗi công ty hay cá nhân cần thiết lập với các đối
tác khác có thể khá lớn và do đó rất khó quản lý lưu trữ an toàn các thông tin khóa riêng biệt này.
- Khó khăn trong vấn đề xác lập và phân phối khóa bí mật này giữa hai bên.
1. Hệ thống mật mã khóa công khai hay phi đối xứng (Public Key Cryptosystem – PKC)
Khác cơ bản với SKC, trong mô hình mới này 2 khóa của thuật toán sinh mã và giải
mã là khác nhau và từ thông tin khóa sinh mã, mặc dù trên lý thuyết là có thể tìm được
khóa giải mã (có thể thử vét cạn) nhưng khả năng thực tế của việc này là hầu như bằng
không (bất khả thi về khối lượng tính toán).
-Ý tưởng mới này cho phép mỗi thực thể cá nhân công ty chỉ cần tạo ra cho mình một
cặp khóa, với hai thành phần: lOMoAR cPSD| 46342576
- Thành phần khóa công khai, có thể đăng ký phổ biến rộng khắp, dùng để sinh
mãhoặc để xác thực chữ ký điện tử (cụ thể trong chương 3).
- Thành phần khóa bí mật, chỉ dành riêng cho bản thân, dùng để giải mã hoặc tạo rachữ ký điện tử.
a. Các tiêu chuẩn đánh giá hệ mật mã
- Đánh giá hệ mật mã thông qua một trong số các mô hình tấn công phổ biến:
+ Tấn công chỉ-biết-bản-mã (ciphertext-only attack): Ở đây kẻ địch E chỉ là một kẻ
hoàn toàn bên ngoài, tìm cách nghe trộm trên đường truyền để lấy được các giá trị Y, bản
mã của thông tin gửi đi. Mục tiêu hướng tới là khám phá nội dung một/nhiều bản rõ X
hoặc lấy được khóa mật Z (trường hợp phá giải hoàn toàn).
+ Tấn công biết-bản-rõ (known-plaintext attack):Trong mô hình này giả thiết là E có
thể biết một số cặp X-Y (bản rõ và bản mật tương ứng) nào đó. Mục tiêu của E là khám
phá nội dung các bản rõ quan trọng khác và/hoặc lấy được khóa mật.
+ Tấn công bản-rõ-chọn-sẵn (chosen-plaintext attack): Trong mô hình này, không
những E thu nhặt được một số cặp X-Y mà một số bản rõ X do bản thân E soạn ra (chosen
plaintext). Có thể nhận xét thấy rằng, việc được tự chọn giá trị của một số bản rõ
X sẽ thêm nhiều lợi ích cho E trong phân tích quan hệ giữa bản mã và bản rõ để
từ đó lần tìm giá trị khóa.
** Đánh giá tính an toàn của một hệ mã mật (khi đã áp vào 1 hay 1 số mô hình tấn
công cụ thể) có thể áp dụng một trong các mô hình đánh giá với các mức độ mạnh đến yếu:
Bảo mật vô điều kiện (unconditional security): Đây là mô hình đánh giá ATBM mức
cao nhất, trong đó “vô điều kiện” được hiểu theo ý nghĩa của lý thuyết thông tin
(information theory), trong đó các ý niệm về “lượng tin” được hình thức hóa thông qua các
phép toán xác suất.
Bảo mật chứng minh được (provable security): Một hệ mật mã đạt được mức đánh giá
này đối với một mo hình tấn công cụ thể nào đó, nếu ta có thể chứng mình bằng toán học
rằng tính an toàn của hệ mật là được qui về tính NP-khó của một bài toán nào đó đã được biết từ lâu.
Bảo mật tính toán được, hay bảo mật thực tiễn (computational security hay practical
security: Khi đánh giá ở mức này với một hệ mã cụ thể, người ta lượng hóa khối lượng
tính toán đặt ra để có thể phá hệ mã này, sử dụng kiểu tấn công mạnh nhất đã biết. lOMoAR cPSD| 46342576
Bảo mật tự tác (ad hoc security): có thể sử dụng những lập luận đánh giá hợp lý nhất
định dựa trên việc ước đoán khối lượng tính toán của kẻ địch khi sử dụng những tấn công
mạnh nhấn đã biết và lập luận về tính bất khả thi thực tiễn để thực hiện.
Câu 2. Định nghĩa hai số nguyên tố cùng nhau. Trình bày thuật toán Euclide?
Giả sử a ≥ 1 và m ≥ 2 là các số nguyên. UCLN(a,m) = 1 thì ta nói rằng a và m là
nguyên tố cùng nhau. Số các số nguyên trong Zm nguyên tố cùng nhau với m
thường được ký hiệu là φ(m) (hàm này được gọi là hàm Euler). Một kết quả quan
trọng trong lý thuyết số cho ta giá trị của φ(m) theo các thừa số trong phép phân
tích theo luỹ thừa các số nguyên tố của m. (Một số nguyên p >1 là số nguyên tố
nếu nó không có ước dương nào khác ngoài 1 và p. Mọi số nguyên m >1 có thể
phân tích được thành tích của các luỹ thừa các số nguyên tố theo cách duy nhất.
Thuật toán Euclide mở rộng:
VÀO: Hai số nguyên không âm a và b với a b
RA: d UCLN a,b và các số nguyên x và y thoả mãn ax by d .
(1) Nếu b 0 thì đặt d a , x 1 , y 0 và return d,x, y
(2) Đặt x2 1 , x1 0 , y2 0 , y1 1 (3) While b 0 do 3.1. 3.2.
a b , b r , x2 x , x1 1 x , y2 y , y1 1 y
(4) Đặt d a , x x2 , y y2 và return d,x, y
Câu 3. Định nghĩa đồng dư. Tính chất của đồng dư?
• Định nghĩa Giả sử a và b là các số nguyên và m là một số nguyên dương.
Khi đó ta viết a ≡ b (mod m) nếu m chia hết cho b-a. Mệnh đề a ≡ b (mod
m) được gọi là " a đồng dư với b theo modulo m". Số nguyên m được gọi là
mudulus. Giả sử chia a và b cho m và ta thu được phần thương nguyên và
phần dư, các phần dư nằm giữa 0 và m-1, nghĩa là a = q1m + r1 và b = q2m
+ r2 trong đó 0 ≤ r1 ≤ m-1 và 0 ≤ r2 ≤ m-1. Khi đó có thể dễ dàng thấy rằng
a ≡ b (mod m) khi và chỉ khi r1 = r2
• Tính chất của đồng dư
- Phép cộng là đóng với bất kì a,b Zm, a+ b Zm
- Phép cộng là giao hoán tức là với a,b bất kì Zm a + b = b + a
- Phép cộng là kết hợp, tức là với bất kì a,b,c Zm(a + b) + c = a +(b+c) lOMoAR cPSD| 46342576
- 0 là phần tử đơn vị của phép cộng có nghĩa là với a bất kì Zm a + 0 = 0 + a = a
- Phần tử nghịch đảo của phép cộng của phần tử bất kì a Zm là m – a, nghĩa
là a +(m-a) =(m-a) + a = 0 với bất kì a Zm
- Phép nhân là đóng tức là với a,b,bất kì Zm, ab Zm
- Phép nhân là giao hoán, nghĩa là với a,b bất kì Zm, ab = ba
- Phép nhân là kết hợp, nghĩa là với a,b,c Zm, (ab)c= a(cb)
- 1 là phần tử đơn vị của phép nhân, tức là với bất kì a Zm a x 1 = 1 x a = a
- Phép nhân có tính chat phân phối đối với phép cộng, tức là đối với a,b,c Zm
(a+b)c = (a.c) +(bc) và a(b+c) = (ab) + (ac)
Câu 4. Định nghĩa hệ thống mật mã. Trình bày bài toán về an toàn thông tin? Cho ví dụ
*Hệ thống mật mã là một ngành khoa học chuyên nghiên cứu các phương pháp
truyền tin bí mật. Mật mã bao gồm : Lập mã và phá mã. Lập mã bao gồm hai quá
trình: mã hóa và giải mã * Bài toán về an toàn thông tin
Để bảo vệ thông tin trên đường truyền người ta thường biến đổi nó từ dạng nhận
thức được sang dạng không nhận thức được trước khi truyền đi trên mạng, quá
trình này được gọi là mã hoá thông tin (encryption), ở trạm nhận phải thực hiện
quá trình ngược lại, tức là biến đổi thông tin từ dạng không nhận thức được (dữ
liệu đã được mã hoá) về dạng nhận thức được (dạng gốc), quá trình này được gọi là giải mã.
Câu 5. Phân biệt hệ mã dòng và mã khối. Lấy ví dụ về hệ mã dòng Đối với mã
khối, khi mã hóa, dữ liệu ban đầu được chia thành các khối (block) thường thì có
kích thước bằng nhau, và kích thước này sẽ tùy thuộc vào thuật toán mã hóa được
dùng như DES, 3DES, AES, RC2,…. Nếu áp dụng DES thì các khối dữ liệu phải
có kích thước là 64 bits, còn nếu áp dụng AES thì kích thước này phải là 128 bits.
Mã khối cần đến một khóa k trong suốt quá trình mã hóa, khóa này cũng tùy thuộc
vào thuật toán mã hóa áp dụng như trên. Trong thực tế khi áp dụng mã khối thì dữ
liệu ban đầu phải biết trước về kích thước. Nghĩa là áp dụng mã khối cho dữ liệu
đã biết trước cụ thể. Sau khi dữ liệu ban đầu được chia ra thành các khối có kích
thước nhất định, quá trình mã hóa sẽ sử dụng đến một trong các kiểu hoạt động
(mode of operation) để tạo thành bản mã tương ứng cho dữ liệu ban đầu. Các mode
of operations như ECB, CBC, CFB, OFB, CTR.
Đối với mã dòng, trong thực tế khi được áp dụng thì dữ liệu thường ở dạng biến
thiên theo thời gian. Nghĩa là không biết trước được dữ liệu ban đầu. Mỗi phần của
dữ liệu hiện tại sẽ được mã hóa cùng với một khóa zj tương ứng, . Các zj
tạo thành một dòng khóa (keystream), mỗi zj được gọi là một keyword. Hàm mã
hóa đơn giản nhất trong thực tế có thể chỉ đơn giản là một phép XOR giữa các bits lOMoAR cPSD| 46342576
bản rõ và keystream tương ứng. Chính xác hơn là mỗi ký tự (character) của bản rõ
XOR với zj. Mô hình mã dòng sử dụng một khóa k ban đầu để sinh ra các zj.
Câu 6. Định nghĩa hệ mã dịch chuyển, cho ví dụ minh họa
Giả sử a và b là các số nguyên và m là một số nguyên dương. Khi đó ta viết a ≡ b
(mod m) nếu m chia hết cho b-a. Mệnh đề a ≡ b (mod m) được gọi là " a đồng dư
với b theo modulo m". Số nguyên m được gọi là mudulus. Ví dụ:
Bản rõ P = ‘ HELLO’ K= 13 B1: rõ chữ -> rõ số HELLO -> 7 4 11 11 14
B2: rõ số -> mã số (cộng k = 13) 20 17 24 24 1 B3: mã số -> mã chữ URYYB
Câu 7. Định nghĩa hệ mã hoán vị, cho ví dụ minh họa
K chứa mọi hoán vị có thể của 26 kí hiệu 0,1 …,25 Với mỗi phép hoán vị K
e(x) = (x) và d(y) = -1(y) trong đó -1 là hoán vị ngược Ví dụ
Hãy giải mã bản mã ‘goodbye’
Sử dụng hàm mã hóa e(x) = (x) Mã hóa : g o o d b y e -> O F F A N D H
Hàm giải mã là hoán vị ngược điều này được thực hiện bằng cách viết hàng thứ hai
trước rồi sắp xếp theo thứ tự chữ cái Giải mã: O F F A N D H -> g o o d b y e
Câu 8. Định nghĩa hệ mã Affine. Cho ví dụ minh họa
Định nghĩa Giả sử a ≥ 1 và m ≥ 2 là các số nguyên. UCLN(a,m) = 1 thì ta nói rằng
a và m là nguyên tố cùng nhau. Số các số nguyên trong Zm nguyên tố cùng nhau
với m thường được ký hiệu là φ(m) (hàm này được gọi là hàm Euler)
Cho P = C = Z26 và giả sử P{ (a,b) Z26 Z26 : UCLN (a,26) = 1}
Với K = (a,b) K , ta định nghĩa eK(x) = ax + b mod 26 và dK(y) = a-1(y-b) mod 26, x,y Z26
Ví dụ: cho a = 7 b = 2 mã hóa ‘HELLO’ ADCT: eK(x) = ax + b mod 26 X= a ek + b mod 26
H = 7.7 + 2 mod 26 = 25 -> Z
E = 7.4 + 2 mod 26 = 4 -> E
L = 7.11 + 2 mod 26 = 1 -> B
L = 7.11 + 2 mod 26 = 1 -> B
O = 7.14 + 2 mod 26 = 22 -> W lOMoAR cPSD| 46342576
Vậy giải mã là ZEBBW
Câu 9. Định nghĩa hệ mã Vigenere, cho ví dụ minh họa
. Định nghĩa P = C = K = (Z26) m . Với khoá K = (k1, k2, . . . ,km) ta xác định :
eK(x1, x2, . . . ,xm) = (x1+k1, x2+k2, . . . , xm+km) và dK(y1, y2, . . . ,ym) =
(y1k1, y2-k2, . . . , ym-km) trong đó tất cả các phép toán được thực hiện trong Z26 Ví dụ:
Giả sử m = 4 và từ khóa là NGAT tương ứng với K = ( 13 - 6 - 0 -19) Mã hóa NGUYEN THI NGAT N G U Y E N T H I N G A T 13 6 20 24 4 13 19 7 8 13 6 0 19 13 6 0 19 13 6 0 19 13 6 0 19 13 Mod 26 0 12 20 17 17 19 19 0 21 19 6 19 6
Kí tự tương ứng mã hóa là A M U R R T T A V T G T G
Câu 10. Định nghĩa hệ mã Hill. Cho ví dụ minh họa.
Cho số nguyên dương m, định nghĩa P = C = (Z26)m. Mỗi phần tử xP là một bộ
m thành phần, mỗi thành phần thuộc Z26. Ý tưởng chính của phương pháp này là sử
dụng m tổ hợp tuyến tính của m thành phần trong mỗi phần tử xP để phát sinh ra m
thành phần tạo thành phần tử yC. Phương pháp mã hóa Hill Cipher
Chọn số nguyên dương m . Định nghĩa:
P = C = ( Z ) m và K là tập hợp các ma trận m 26 m khả nghịch Với mỗi khóa , định nghĩa:
với x =( x , x , ..., x ) 1 2 m P và d ( y
) = yk –1 với y k C
Mọi phép toán số học đều được thực hiện trên Zn
Câu 11. Cho khóa của hệ mã dịch vòng k = 7
a. Hãy mã hóa bản tin x = “Fallinlove”
Bản rõ P=“Fallinlove” K= 7 B1: rõ chữ -> rõ số F A L L I N L O V E lOMoAR cPSD| 46342576 5 0 11 11 8 13 11 14 21 4
B2: rõ số -> mã số (cộng k =7 ) 5 0 11 11 8 13 11 14 21 4 Cộng k = 12 7 18 18 15 20 18 21 28 11 7 mod 26 B3: mã số -> mã chữ 12 7 18 18 15 20 18 21 28 11 M H S S P U S V C L
b. Hãy giải mã bản tin y = “WVDLYVMLFLZ” B1: rõ chữ -> rõ số W V D L Y V M L F L Z 5 21 3 11 24 21 12 11 5 11 25
B2: rõ số -> mã số ( trừ k =7 ) 5 21 3 11 24 21 12 11 5 11 25 Trừ k = 7 -2 14 -4 4 17 14 5 4 -2 4 18 Mod 26 24 14 22 4 17 14 5 4 24 4 18 B3: mã số -> mã chữ 24 14 22 4 17 14 5 4 24 4 18 Y O W E T O F E Y E S
Vậy giải mã bản tin là :YOWETOFEYES
Câu 12. Cho mã khóa Affine (a,b) = (19,3)
a. Hãy trình bày quá trình mã hóa bản tin sau: “Hello”
a = 19 , b = 3 xâu “Hello” chuyến thành số 7-4-11-11-14 ADCT: eK(x) = ax + b mod 26 X= a ek + b mod 26
H = 19.7 + 3 mod 26 = 6 -> G
E = 19.4 + 3 mod 26 = 1 -> B
L = 19.11 + 3 mod 26 = 4 -> E
L = 19.11 + 3 mod 26 = 4 -> E
O = 19.14 + 3 mod 26 = 9 -> J
Vậy bản tin mã hóa là: GBEEJ
b. Trình bày quá trình giải mã: “IJMB”
Chuyển các kí tự thành các số 8-912-1
Ta có a mũ -1 trrong modun 26 = 11 lOMoAR cPSD| 46342576
ADCT giải mã ta được dK(8)= (8-3) mod 26 = 55 mod 26 = 3 -> D dK(9)=
(9-3) mod 26 = 66 mod 26 = 14 -> O
dK(12)= (12-3) mod 26 = 99 mod 26 = 21 -> V dK(1)=
(1-3) mod 26 = -22 mod 26 = -22+ 26*1 = 4 -> E
Vậy xâu đã được giải mã là: DOVE
Câu 13. Cho hệ mã viginere có từ khóa INFORMATION
a. Trình bày quá trình mã bản rõ x = “technologydepartment”
Từ khóa INFORMATION tương ứng k= 8-13-5-14-17-12-0-19-8-14-13
Mã hóa “technologydepartment”
T E C H N O L O G Y D E P
A R T M E N T 19 3 2 7
13 14 11 10 6 24 3 4
15 0 17 19 12 4 13 19 8
13 5 14 17 12 0 19 8 14 13 8
13 5 14 17 12 0 19 8 +
27 16 7 21 30 26 11 29 14 38 16 12 28 5 31 36 24 4 32 27 Mod26 1
16 7 21 4 0 11 3
14 12 16 12 2 5 5
10 24 4 6 1
Kí tự tương ứng mã hóa là: BQHVEALDOMQMCFFKYEGB
b.Trình bày cách giải mã bản mã: y = “pbhhrbcaia” P B H H R B C A I A - 15 1 7 7 17 1 2 0 8 0 8 13 5 14 17 12 0 19 8 14 7 -12 2 -7 0 -11 2 -19 0 -14 Mod 7 14 2 19 0 15 2 7 0 12 26
Kí tự tương ứng giải mã là : HOCTAPCHAM
Câu 14. Trình bày hệ mã Affine. Trong Z26 cho bản rõ x= “ UNINSTALL”
với 3 khóa như sau (9,15); (6,3); (11,25). Hãy chọn khóa cho phù hợp trong 3
khóa trên để lập bản rõ x.
Trình bày hệ mã Affine: Định nghĩa Giả sử a ≥ 1 và m ≥ 2 là các số nguyên.
UCLN(a,m) = 1 thì ta nói rằng a và m là nguyên tố cùng nhau. Số các số nguyên
trong Zm nguyên tố cùng nhau với m thường được ký hiệu là φ(m) (hàm này được gọi là hàm Euler)
Cho P = C = Z26 và giả sử P{ (a,b) Z26 Z26 : UCLN (a,26) = 1}
Với K = (a,b) K , ta định nghĩa eK(x) = ax + b mod 26 và dK(y) = a-1(y-b) mod lOMoAR cPSD| 46342576 26, x,y Z26
Cho bản rõ x = “ UNINSTALL” chọn khóa (6,3) a = 6 b = 3 ADCT: eK(x) = ax + b mod 26 X= a ek + b mod 26
Đổi xâu: UNINSTALL thành các chữ số 20-13-8-13-18-0-11-11
eK(20) = 6*20 +3 mod 26 = 19 => T eK(13) = 6*13 +3 mod 26 =
3 => D eK(8) = 6*8 +3 mod 26 = 25 => Z eK(13) = 6*13 +3
mod 26 = 3 => D eK(18) = 6*18 +3 mod 26 = 7 =>H eK(0) =
6*0 +3 mod 26 = 3 => D eK(11) = 6*11 +3 mod 26 = 17 => R
eK(11) = 6*11 +3 mod 26 = 17 => R
Vậy bản rõ là : TDZDHDRR
Câu 15. Cho khóa của mã Affine (a,b) = (5,17)
a. Hãy trình bày quá trình mã hóa bản tin sau: “Antoanthongtin” K(5,17) a = 5 b= 17
Đổi xâu “Antoanthongtin” thành các chữ số 0-13-19-14-0-13-19-7-14-13-6-19-
8-13 eK(0) = 5*0 + 17 mod 26 = 17 -
> R eK(13) = 5*13 + 17 mod 26 = 4
-> E eK(19) = 5*19 + 17 mod 26 = 8
-> I eK(14) = 5*14 + 17 mod 26 = 9 -> J
eK(0) = 5*0 + 17 mod 26 = 17 ->R
eK(13) = 5*13 + 17 mod 26 = 4->E
eK(19) = 5*19 + 17 mod 26 = 8 -> I
eK(7) = 5*7 + 17 mod 26 = 0 -> A
eK(14) = 5*14 + 17 mod 26 = 9 -> J
eK(13) = 5*13 + 17 mod 26 = 4 -> E
eK(6) = 5*6 + 17 mod 26 = 21 -> V
eK(19) = 5*19 + 17 mod 26 = 8 -> I
eK(8) = 5*8 + 17 mod 26 = 5 -> F
eK(13) = 5*13 + 17 mod 26 = 4 -> E Vậy bản tin mã hóa là: REIJREIAJEVIFE
b.Hãy trình bày quá trình giải mã: “AJBIROBARZBAF” lOMoAR cPSD| 46342576
Chuyển các kí tự thành các số 0-9-1-8-17-14-1-0-17-25-1-0-5
Ta có a mũ -1 trrong modun 26 = 21
ADCT giải mã ta được dK(0)= (0-17) mod 26 = (-357) mod 26 = -
357+ 14*26 = 7 -> H dK(9)= (9-17) mod 26 = (-168 )mod 26 = -
168 +7*26 = 14 -> O dK(1)= (1-17) mod 26 = (-336) mod 26 = -
336+ 13*26 = 2 -> C dK(8)= (8-17) mod 26 = (-189) mod 26 = -
189+ 8*26 = 19 -> T dK(17)= (17-17) mod 26 = 0 ->A dK(14)=
(14-17) mod 26 = (-63) mod 26 = -63+ 3*26 = 15 -> P dK(1)=
(1-17) mod 26 = (-336) mod 26 = -336+ 13*26 = 2 -> C dK(0)=
(0-17) mod 26 = (-357) mod 26 = -357+ 14*26 = 7 -> H dK(17)= (17-17) mod 26 = 0 ->A
dK(25)= (25-17) mod 26 = 168 mod 26 = 12 -> M dK(1)= (1-
17) mod 26 = (-336) mod 26 = -336+ 13*26 = 2 -> C dK(0)= (0-
17) mod 26 = (-357) mod 26 = -357+ 14*26 = 7 -> H dK(5)= (5-
17) mod 26 = (-252) mod 26 = -252+ 10*26 = 8 -> I Vậy xâu đã
được giải mã là: HOCTAPCHAMCHI
Câu 16. Trình bày về hệ mã khóa Vigenere trong Z26 cho bản rõ x=
“TOIYEUVIETNAM” với m= 4 và khóa k=(2,8,15,7) hãy tìm bản rõ x Định
nghĩa P = C = K = (Z26) m . Với khoá K = (k1, k2, . . . ,km) ta xác định : eK(x1,
x2, . . . ,xm) = (x1+k1, x2+k2, . . . , xm+km) và dK(y1, y2, . . . ,ym) = (y1k1, y2-
k2, . . . , ym-km) trong đó tất cả các phép toán được thực hiện trong Z26
M=4 tương ứng với khóa K = (2-8-15-7)
Mã hóa x = “TOIYEUVIETNAM” T O I Y E U V I E T N A M 19 14 8 24 4 20 21 8 4 19 13 0 12 + 2 8 15 7 2 8 15 7 2 8 15 7 2 21 22 23 31 6 28 36 15 6 27 28 7 14 Mod 21 22 23 5 6 2 8 15 6 1 2 7 14 26
Kí tự tương ứng mã hóa là: VWXFGCIPGBCHO
Câu 17. Cho khóa của mã Affine (a,b) = (19,3)
a. Hãy trình bày quá trình mã hóa bản tin sau: “Hello” K(19,3) a = 19 b= 3 lOMoAR cPSD| 46342576
Đổi xâu “Hello” thành các chữ số 7-4-11-11-14
eK(7) = 19*7 + 3 mod 26 = 6 -> G eK(4) =
19*4 + 3 mod 26 = 1-> B eK(11) = 19*11 + 3
mod 26 = 4 -> E eK(11) = 19*11 + 3 mod 26 =
4-> E eK(14) = 19*14 + 3 mod 26 = 9 -> J
Vậy bản tin mã hóa là: GBEEJ
b.Hãy trình bày quá trình giải mã: “IJMB”
Chuyển các kí tự thành các số 8-912-1
Ta có a mũ -1 trrong modun 26 = 11
ADCT giải mã ta được dK(8)= (8-3) mod 26 = 55 mod 26 = 3 -> D dK(9)=
(9-3) mod 26 = 66 mod 26 = 14 -> O
dK(12)= (12-3) mod 26 = 99 mod 26 = 21 -> V dK(1)=
(1-3) mod 26 = -22 mod 26 = -22+ 26*1 = 4 -> E
Vậy xâu đã được giải mã là: DOVE
Câu 18. Định nghĩa hệ mã Hill. Cho ví dụ minh họa.
Cho số nguyên dương m, định nghĩa P = C = (Z26)m. Mỗi phần tử xP là một bộ
m thành phần, mỗi thành phần thuộc Z26. Ý tưởng chính của phương pháp này là sử
dụng m tổ hợp tuyến tính của m thành phần trong mỗi phần tử xP để phát sinh ra m
thành phần tạo thành phần tử yC. Phương pháp mã hóa Hill Cipher
Chọn số nguyên dương m. Định nghĩa:
P = C = (Z26)m và K là tập hợp các ma trận mm khả nghịch Với mỗi khóa , định nghĩa:
với x =( x , x , ..., x ) 1 2 m P
và d ( y ) = yk –1 với y k C
Mọi phép toán số học đều được thực hiện trên Zn lOMoAR cPSD| 46342576
Câu 19. Cho khóa của mã Affine (a,b) = (23,5)
a. Hãy trình bày cách mã hóa bản tin: “Hero” K(23,5) a = 23 b= 5
Đổi xâu “Hero” thành các chữ số 7-4-17-14
eK(7) = 23*7 + 5 mod 26 = 10-> K
eK(4) = 23*4 + 5 mod 26 = 19-> T eK(17)
= 23*17 + 5 mod 26 = 6-> G eK(4) = 23*14 + 5 mod 26 = 15 -> P
Vậy bản tin mã hóa là: KTGP
b.Hãy trình bày cách giải mã bản mã: “ZKTTG”
Chuyển các kí tự thành các số 25-10-19-19-6
Ta có a mũ -1 trrong modun 26 = 17
ADCT giải mã ta được dK(25)= (25-5) mod 26
= 340 mod 26 = 2-> C dK(10)= (10-5) mod 26
= 85 mod 26 = 7 -> H dK(19)= (19-5) mod 26
= 238 mod 26 = 4 -> E dK(19)= (19-5) mod 26
= 238 mod 26 = 4 -> E dK(6)= (6-5) mod 26
= 17 mod 26 = 17 - > R Vậy xâu đã được giải mã là: CHEER
Câu 20. Biết khóa của mã Affine là (a,b) =(21,4)
a. Hãy giải mã bản mã: “XIREYEO” K(21,4) a = 21 b= 4
Đổi xâu “XIREYEO” thành các chữ số 23-8-17-4-24-4-14 Ta có a mũ -1 trrong modun 26 = 5 ADCT giải mã ta được
dK(23)= (23-4) mod 26 = -95 mod 26 = -95 + 26*3= 17-> R dK(8)=
(8-4) mod 26 = 20 mod 26 = 20 -> U dK(17)=
(17-4) mod 26 = -65 mod 26 = -65 + 26*2= 13-> N dK(4)=
(4-4) mod 26 = 0 mod 26 = 0 -> A dK(24)= (24-4) mod 26
= 100 mod 26 = 22 -> W dK(4)= (4-4) mod 26 = 0 mod 26
0-> A dK(14)= (14-4) mod 26 = 260 mod 26 = 0 -> A Vậy
xâu đã được giải mã là: RUNAWAA lOMoAR cPSD| 46342576
b.Hãy giải mã bản rõ: “Data” K(21,4) a = 21 b= 4
Đổi xâu “DATA” thành các chữ số 3-0-19-0
eK(3) = 21*3 + 4 mod 26 = 15 -> P eK(0) =
21*0 + 4 mod 26 = 4 -> E eK(19) = 21*19 + 4 mod 26 = 13 -> N
eK(0) = 21*0 + 4 mod 26 = 4 -> E
Vậy bản tin mã hóa là: PENE
Câu 21. Cho khóa của hệ viginere là: DEMECIN
a. Hãy trình bày cách mã hóa bản tin: “Student”
Từ khóa DEMECIN tương ứng k = 3-4-12-4-2-8-13 Mã hóa “Student” S T U D E N T 18 19 20 3 4 13 19 + 3 4 12 4 2 8 13 21 23 32 7 6 21 32 Mod26 21 23 6 7 6 21 6
Kí tự tương ứng mã hóa là: VXGHGVG
b.Trình bày cách giải mã bản mã: “WIMGJME” W I M G J M E 22 8 12 6 9 12 4 - 3 4 12 4 2 8 13 19 4 0 2 7 4 -9 Mod26 19 4 0 2 7 4 17 lOMoAR cPSD| 46342576
Kí tự tương ứng giải mã là: TEACHER
Câu 22. Cho từ khóa PROTECT của hệ mật viginene
a. Hãy mã hóa bản rõ: “paintmylove”
Từ khóa PROTECT tương ứng = 15-17-14-19-4-2-19
Mã hóa “paintmylove” P A I N T M Y L O V E 15 0 8 13 19 12 24 11 14 21 4 + 15 17 14 19 4 2 19 15 17 14 19 30 17 22 32 23 14 43 26 31 35 23 Mod26 4 17 22 6 23 14 17 0 5 9 23
Kí tự tương ứng mã hóa là : ERWGXORAFJX
b.Hãy giải mã bản mã: “HVOZEOX” H V O Z E O X 7 21 14 25 4 14 23 - 15 17 14 19 4 2 19 -8 4 0 6 0 12 4 Mod26 18 4 0 6 0 12 4
Kí tự tương ứng giải mã là: SEAGAME
Câu 23. Cho từ khóa BAOMAT là từ khóa của hệ mã viginere
a. Hãy mã hóa bản tin: “Anninhmang”
Từ khóa BAOMAT tương ứng k= 1-0-14-12-0-19
Mã hóa “Anninhmang” A N N I N H M A N G 0 13 13 8 13 7 12 0 13 6 + 1 0 14 12 0 19 1 0 14 12 1 13 27 20 13 26 13 0 27 18 Mod 26 1 13 1 20 13 0 13 0 1 18
Kí tự tương ứng mã hóa là: BNBUNANABS
b.Hãy giải mã bản mã: “UUCZGEVA” U U C Z G E V A lOMoAR cPSD| 46342576 20 20 2 25 6 4 21 0 - 1 0 14 12 0 19 1 0 19 20 -12 13 6 -15 20 0 Mod26 19 20 14 13 6 11 20 0
Kí tự tương ứng giải mã là : TUONGLUA
Câu 24. Trình bày hệ mã Affine. Trong Z26 cho bản rõ x= “ UNINSTALL”
với 3 khóa như sau (9,15); (6,3); (11,25). Hãy chọn khóa cho phù hợp trong 3
khóa trên để lập bản rõ x.
* Trình bày hệ mã Affine: Định nghĩa Giả sử a ≥ 1 và m ≥ 2 là các số nguyên.
UCLN(a,m) = 1 thì ta nói rằng a và m là nguyên tố cùng nhau. Số các số nguyên
trong Zm nguyên tố cùng nhau với m thường được ký hiệu là φ(m) (hàm này được gọi là hàm Euler)
Cho P = C = Z26 và giả sử P{ (a,b) Z26 Z26 : UCLN (a,26) = 1}
Với K = (a,b) K , ta định nghĩa eK(x) = ax + b mod 26 và dK(y) = a-1(y-b) mod 26, x,y Z26
Ví dụ: Cho bản rõ x = “ UNINSTALL” chọn khóa (6,3) a = 6 b = 3 ADCT: eK(x) = ax + b mod 26 X= a ek + b mod 26
Đổi xâu: UNINSTALL thành các chữ số 20-13-8-13-18-0-11-11
eK(20) = 6*20 +3 mod 26 = 19 => T eK(13) = 6*13 +3 mod 26 =
3 => D eK(8) = 6*8 +3 mod 26 = 25 => Z eK(13) = 6*13 +3
mod 26 = 3 => D eK(18) = 6*18 +3 mod 26 = 7 =>H eK(0) =
6*0 +3 mod 26 = 3 => D eK(11) = 6*11 +3 mod 26 = 17 => R
eK(11) = 6*11 +3 mod 26 = 17 => R
Vậy bản rõ là : TDZDHDRR
Câu 25. Trình bày về hệ mã khóa Vigenere trong Z26 cho bản rõ x=
“TOIYEUVIETNAM” với m= 4 và khóa k=(2,8,15,7) hãy tìm bản rõ x Định
nghĩa P = C = K = (Z26) m . Với khoá K = (k1, k2, . . . ,km) ta xác định : eK(x1,
x2, . . . ,xm) = (x1+k1, x2+k2, . . . , xm+km) và dK(y1, y2, . . . ,ym) = (y1k1, y2-
k2, . . . , ym-km) trong đó tất cả các phép toán được thực hiện trong Z26 T O I Y E U V I E T N A M 19 14 8 24 4 20 21 8 4 19 13 0 12 + 2 8 15 7 2 8 15 7 2 8 15 7 2 21 22 23 31 6 28 36 15 6 27 28 7 14 Mod26 21 22 23 5 6 2 8 15 6 1 2 7 14
Kí tự tương ứng mã hóa là : VWXFGCIPGBCHO lOMoAR cPSD| 46342576
Câu 26. Mô tả thuật toán DES. Đầu vào, đầu ra, vẽ sơ đồ tổng quả của thuật
toán, giải thích sơ đồ. Mô tả DES:
DES mã hoá một xâu bit x của bản rõ độ dài 64 bằng một khoá 56 bit. Bản mã
nhận được cũng là một xâu bit có độ dài 64.
Thuật toán tiến hành theo 3 bước:
B1: Với bản rõ cho trước x, một xâu bit x0 sẽ được xây dựng bằng cách
hoán vị các bit của x theo phép hoán vị cố định ban đầu IP. Ta viết: x0 =
IP(x) = L0R0, trong đó L0 gồm 32 bit đầu và R0 là 32 bit cuối.
B2: Sau đó tính toán 16 lần lặp theo một hàm xác định. Ta sẽ tính LiRi,
1 i 16 theo quy tắc sau:
Li = Ri-1; Ri = Li-1 f(Ri-1, ki) Trong đó:
là phép loại trừ của hai xâu bit
f là một hàm sẽ được mô tả ở sau
k1, k2, …, k16 là các xâu bit có độ dài 48 được tính như 1 hàm
của khóa k (ki chính là một phép chọn hoán vị bit trong k).
Một vòng của phép mã hóa được mô tả như sau: -1
B3: Áp dụng phép hoán vị ngược IP cho xâu bit R16L16, ta -1
thu được bản mã y. Tức là y = IP (R16L16) . Hãy chú ý thứ tự đã đảo của L16 và R16
Câu 27. Trình bày hàm mật mã f trong thuật toán mã hóa khối DES. Đầu vào,
đầu ra, vẽ sơ đồ thực hiện của hàm f Mô tả hàm f: Hàm f có 2 biến vào:
Xâu bit A có độ dài 32
Xâu bit J có độ dài 48 Đầu ra
của f là xâu bit có độ dài 32. lOMoAR cPSD| 46342576
Các bước thực hiện:
B1: Biến thứ nhất A được mở rộng thành một xâu bit độ dài 48
theo một hàm mở rộng cố định E. E(A) gồm 32 bit của A (được
hoán vị theo cách cố định) với 16 bit xuất hiện hai lần.
B2: Tính E(A) J và viết kết quả thành một chuỗi 8 xâu 6 bit là B1B2B3B4B5B6B7B8.
B3: Bước tiếp theo dùng 8 bảng S1S2,…,S8 ( được gọi là các
hộp S ). Với mỗi Si là một bảng 416 cố định có các hàng là
các số nguyên từ 0 đến 15. Với xâu bit có độ dài 6 (kí hiệu Bi
= b1 b2 b3 b4 b5 b6), ta tính Sj(Bj) như sau:
Hai bit b1b6 xác định biểu diễn nhị phân hàng r của Sj (0 r 3)
Bốn bit (b2 b3 b4 b5) xác định biểu diễn nhị phân của cột c của Sj (0 c 15).
Khi đó Sj(Bj) sẽ xác định phần tử Sj(r, c) ; phần tử này
viết dưới dạng nhị phân là một xâu bit có độ dài 4
Bằng cách tương tự tính các Cj = Sj(Bj) , (1 j 8).
B4: Xâu bit C = C1 C2 … C8 có độ dài 32 được hoán vị theo phép hoán vị cố định
P. Xâu kết quả là P(C) được xác định là f(A, J).
Câu 28. Trình bày thuận toán tạo khóa trong hệ mã hóa khối DES. Đầu vào,
đầu ra, vẽ sơ đồ thực hiện
Từ khoá mẹ 64 bit ban đầu sinh ra 16 khoá con ứng với từng vòng theo sơ đồ sau: lOMoAR cPSD| 46342576 …………………….. Sinh khoá con.
Khoá ban đầu nhập vào là một chuỗi 64 bit, trong vòng đầu tiên khoá 64 bit được cho qua
hộp PC-1(Permuted Choice) để hoán vị có lựa chọn thành khoá 56 bit. Hộp PC-1.
Theo đó, bit thứ 57 trở thành bit đầu tiên, bit thứ 49, 41, 33, … lần lượt là các bit tiếp theo,
và bit thứ 4 trở thành bit cuối cùng của chuỗi khoá.
Tiếp theo chia đôi khoá 56 bit đó thành hai nửa trái và phải, mỗi nửa này sẽ được dịch vòng
sang trái 1 hoặc 2 bit tuỳ mỗi vòng theo quy tắc sau:
Sau khi dịch, hai nửa của khoá lại được ghép lại rồi cho vào hộp PC-2 để tiếp tục hoán vị
có lựa chọn thành khoá 48 bit và đó chính là khoá con cho vòng tương ứng. Hộp PC-2. lOMoAR cPSD| 46342576
Khoá đi qua PC-2 thì bit thứ 14 trở thành bit đầu tiên, các bit thứ 17, 11, 24, … là các bit
tiếp theo, bit thứ 32 là bit cuối cùng của khoá con.
Câu 29. Thế nào là một hệ mã hóa khóa công khai? Cho ví dụ
Khoá công khai ra đời vào đầu những năm 1970. Có thể nói đây là bước tiến quan
trọng nhất trong lịch sử 3000 năm mã hoá. Ở đây người ta sử dụng 2 khoá: một khoá riêng
và một khoá công khai. Hai khoá này khác nhau, không đối xứng với nhau, do đó mã khoá
công khai, còn được gọi là mã không đối xứng. Người ta đã ứng dụng một cách thông minh
các kết quả của lý thuyết số về hàm số.
Khoá công khai ra đời hỗ trợ thêm để giải quyết một số bài toán an toàn, chứ không
phải thay thế khoá riêng. Cả hai khoá cùng tồn tại, phát triển và bổ sung cho nhau. Khoá
công khai/hai khoá/không đối xừng bao gồm việc sử dụng 2 khoá:
o Khoá công khai, mà mọi người đều biết, được dùng để mã hoá mẩu tin và kiểm chứng chữ ký.
o Khoá riêng, chỉ người nhận biết, đề giải mã bản tin hoặc để tạo chữ ký.
o Là không đối xứng vì những người mã hoá và kiểm chứng chữ ký không thể giải mã hoặc tạo chữ ký.
Khoá công khai sử dụng để giải quyết hai vấn đề sau về khoá nảy sinh trong thực tế:
Sơ đồ mã khoá công khai
o Phân phối khoá - làm sao có thể phân phối khóa an toàn mà không cần trung tâm phân phối khoá tin cậy
o Chữ ký điện tử - làm sao có thể kiểm chứng được rằng mẩu tin gửi đến nguyên
vẹn từ đúng người đứng tên gửi. lOMoAR cPSD| 46342576
Ví dụ f: pq →n la hàm một chiều với p và q là các số nguyên
tố lớn Có thể dễ dàng thực hiên phép nhân đa thức (độ phức tạp đa thức)
Tính f-1 (phân tích ra thành thừa số nguyên tố độ phức tạp mũ ) là bài toán cực kì khó
Câu 30. Trình bày cách tính khóa trong giải thuật mã hóa DES
DES tạo ra 16 khóa, mỗi khóa chiều dài 48 bit từ một khóa input 56 bit, dùng cho 16 vòng lặp.
Khóa input là một khối 64 bit, với 8bit parity tại các vị trí 8, 16,.…, 64.
Permutation PC-1 sẽ loại bỏ các bit parity và sẽ hoán vị 56 bit còn lại theo bảng 5.
Kết quả, PC-1(K) sau đó được chia thành hai phần C0 và D0 mỗi phần 28 bit. Khóa
Ki dùng trong vòng thứ i được tạo ra từ Ci-1 và Di-1 theo quy tắc như sau: trong các
vòng 1, 2, 9 và 16, Ci-1 và Di-1 được quay vòng một bít qua trái, trong các vòng còn
lại thì được quay vòng hai bít qua trái. Qua phép quay vòng này Ci-1 và Di-1 sẽ được
biến đổi thành Ci và Di . Hốn vị Ci và Di. Sau khi hốn vị Ci bỏ qua các bít 9, 18, 22,
25 tạo thành nữa trái của Ki (24 bít), còn Di bỏ đi các bít 35, 38, 43, 54 tạo ra nữa
phải của Ki (24 bít). Ghép nữa trái và nữa phải tạo ra khóa Ki 48 bít.
Câu 31. So sánh mã hóa đối xứng với hệ mã hóa công khai
So sánh giữa mã hóa đối xứng và mã hóa bất đối xứng:
- Mã khóa bí mật (mã hóa đối xứng-mã hóa khóa riêng):
+ Sử dụng cùng 1 khóa bởi người gửi (cho việc mã hóa) và người nhận (cho việc giải mã).
+ Thuật toán được chấp nhận rộng rãi nhất cho việc mã hóa khóa bí mật là thuật
toán chuẩn mã hóa dữ liệu (DES). Giao thức SET chấp nhận thuật toán DES với
chìa khóa 64 bit của nó. Thuật toán này có thể phá mã được nhưng phải mất nhiều
năm với chi phí hàng triệu đôla.
+ Người gửi và người nhận thông điệp phải chia sẻ 1 bí mật, gọi là chìa khóa.
- Mã khóa công khai (mã hóa không đối xứng ):
+ Sử dụng 2 khóa khác nhau, 1 khóa công khai (để mã hóa thông điệp tất cả người
sử dụng được phép biết) và một khóa riêng (để giải mã thông điệp chỉ có người sở hữu nó biết).
+ Thuật toán được chấp nhận rộng rãi nhất cho việc mã hóa công khai là thuật toán
RSA với nhiều kích cỡ khác nhau (1024 bit). Thuật toán này không bao giờ bị phá
bởi các hacker, do đó nó được xem là phương pháp mã hóa an toàn nhất được biết cho đến nay.