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 RA: và các số nguyên x và y thoả mãn .(1) Nếu thì đặt và (2) Đặt (3) While do3.1. 3.2. (4) Đặt và Câu 3. Định nghĩa đồng dư. Tính chất của đồng dư?
Trang 1ĐỀ 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).
Trang 2-Ý 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:
- 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 ra chữ 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
Trang 3Bả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.
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 UCLNa,bvà các số nguyên x và y thoả mãn axby d.
,yy
,xx
,xx
,rb,b
(4) Đặt d a , x x2 , y y2 và returnd,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
Trang 4- 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)
- 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 z j tương ứng, j [ 0 , ) Các z j tạo thành một dòng khóa (keystream), mỗi z j đượ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
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 z j Mô hình mã dòng sử dụng một khóa k ban đầu để sinh ra các z j
Trang 5Câ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
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
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
Trang 6Câ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) = (y1-k1, 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
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 = (Z 26)m Mỗi phần tử xP là một bộ
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 26)m và K là tập hợp các ma trận mm khả nghịch
k k
k
k k
k k
k k
m m m
m
m m
, 1 ,
, 2 1
, 2
, 1 2
, 1 1 , 1
m
m m
m k
k k
k
k k
k k
k x x x xk
x
e
, 2
, 1 ,
, 2 1
, 2
, 1 2
, 1 1 , 1
Trang 7Mọi phép toán số học đều được thực hiện trên Z n
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”
1414
-422
44
1717
1414
55
44
-224
44
1818
B3: mã số -> mã chữ
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
Trang 8O = 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”
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
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”
Trang 9Câu 14 Trình bày hệ mã Affine Trong Z 26 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
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”
Trang 10Vậy bản tin mã hóa là: REIJREIAJEVIFE
b.Hãy trình bày quá trình giải mã: “AJBIROBARZBAF”
Vậy xâu đã được giải mã là: HOCTAPCHAMCHI
Câu 16 Trình bày về hệ mã khóa Vigenere trong Z 26 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) = (y1-k1, y2-k2, , ym-km) trong đó tất cả các phép toán được thực hiện trong Z26M=4 tương ứng với khóa K = (2-8-15-7)
Trang 11Kí 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”
Vậy bản tin mã hóa là: GBEEJ
b.Hãy trình bày quá trình giải mã: “IJMB”
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 = (Z 26)m Mỗi phần tử xP là một bộ
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 26)m và K là tập hợp các ma trận mm khả nghịch
Trang 12Với mỗi khóa K
k k
k
k k
k k
k k
m m m
m
m m
, 1 ,
, 2 1
, 2
, 1 2
, 1 1 , 1
m
m m
m k
k k
k
k k
k k
k x x x xk
x
e
, 2
, 1 ,
, 2 1
, 2
, 1 2
, 1 1 , 1
và d k (y) = yk–1 với y C
Mọi phép toán số học đều được thực hiện trên Z n
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”
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”
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
Trang 13Vậy xâu đã được giải mã là: RUNAWAA
b.Hãy giải mã bản rõ: “Data”
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
Trang 14Kí 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
Kí tự tương ứng mã hóa là : ERWGXORAFJX
b.Hãy giải mã bản mã: “HVOZEOX”
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
Trang 15Kí tự tương ứng mã hóa là: BNBUNANABS
b.Hãy giải mã bản mã: “UUCZGEVA”
Kí tự tương ứng giải mã là : TUONGLUA
Câu 24 Trình bày hệ mã Affine Trong Z 26 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
Câu 25 Trình bày về hệ mã khóa Vigenere trong Z 26 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) = (y1-k1, y2-k2, , ym-km) trong đó tất cả các phép toán được thực hiện trong Z26