QUY ĐỊNH TẠM THỜI Đề cương Bảo mật thông tin 1 Định nghĩa bài toán lớp NP Hard? Cho ví dụ minh họa? Định nghĩa Ta gọi bài toán lớp NP khó (NP hard) là các bài toán nếu như sự tồn tại thuật toán đa thứ[.]
Trang 1Đề cương Bảo mật thông tin
1 Định nghĩa bài toán lớp NP-Hard? Cho ví dụ minh họa?
Định nghĩa: Ta gọi bài toán lớp NP- khó (NP-hard) là các bài toán nếu như sự tồn tại thuật toán
đa thức để giải nó kéo theo sự tồn tại thuật toán đa thức để giải mọi bài toán trong NP
Ví dụ minh họa: Bài toán tập độc lập (Independent set): Cho đồ thị vô hướng G = (V, E) và số nguyên K, hỏi có thể tìm được tập độc lập S với |S| ≥ K Tập độc lập là tập các đỉnh trong đồ thị
mà chúng đôi một không có cạnh nối với nhau
2 Định nghĩa hệ thống mật mã? Vẽ sơ đồ hệ mật mã hóa đối xứng và hệ mật mã hóa khóa công khai?
Định nghĩa: Một hệ mật mã là một bộ gồm 5 thành phần (P, C, K, E, D) Trong đó:
P : Tập hợp các bản rõ.
C : Tập hợp các bản mã.
K : Tập hợp các khoá, K = E × D.
Với một khóa k = (E k , D k),
E k : P → C Khoá lập mã.
D k : C → P Khoá giải mã.
Sơ đồ hệ mã khóa đối xứng:
Sơ đồ hệ mã khóa công khai:
3 Hệ mã hóa đối xứng là gì? Hãy trình bày các bước truyền tin giữa Client và Server với hệ mã hóa đối xứng?
Hệ mã hóa đối xứng là hệ mã hóa sử dụng cùng một khóa (khóa bí mật) cho việc mã hóa và giải mã
Trang 2Khóa bí mật do người tạo bản mã hóa và người giải mã cùng thảo thuận với nhau để tạo ra
nó Thuật toán giải mã là “ngược” với thuật toán mã hóa
Các bước truyền tin giữa Client và Server với hệ mã hóa đối xứng:
1 Client và Server đồng ý sử dụng một hệ mã hóa
2 Client và Server thống nhất khoá với nhau
3 Client lấy bản rõ và mã hoá sử dụng thuật toán mã hoá và khoá Sau đó bản mã đã được tạo ra
4 Client gửi bản mã tới cho Server
5 Server giải mã bản mã đó với cùng một thuật toán và khoá, sau đó đọc được bản rõ
4 Hệ mã hóa khóa công khai là gì? Hãy trình bày các bước truyền tin giữa Client và Server với hệ
mã hóa khóa công khai?
Hệ mã khóa công khai là hệ mã sử dụng 2 khóa khác nhau, một khóa công khai dùng để mã hóa và một khóa bí mật dùng để giải mã
+ Khóa công khai: công khai cho tất cả mọi người (người tạo bản mã hóa)
+ Khóa bị mật: chỉ có người nhận bản mã hóa mới có (người giải mã)
+ Cả hai khóa đều do cùng một người tạo ra, đó là người nhận bản mã hóa
Các bước truyền tin giữa Client và Server với hệ mã hóa khoa công khai:
1 Client và Server nhất trí sử dụng hệ mã hóa công khai
2 Server gửi cho Client khoá công khai của Server
3 Client lấy bản rõ và mã hoá sử dụng khoá công khai của Server Sau đó gửi bản mã tới cho Server
4 Server giải mã bản mã đó sử dụng khoá riêng của mình
5 Hệ mã hóa đối xứng là gì? Nếu các ưu điểm, nhược điểm của hệ mã hóa đối xứng?
Hệ mã hóa đối xứng là hệ mã hóa sử dụng cùng một khóa (khóa bí mật) cho việc mã hóa và giải mã
Khóa bí mật do người tạo bản mã hóa và người giải mã cùng thảo thuận với nhau để tạo ra nó Thuật toán giải mã là “ngược” với thuật toán mã hóa
Ưu điểm:
- Dễ dàng tạo khóa để mã hóa và giải mã
- Tốc độ mã hóa và giải mã nhanh, dễ tính toán
Nhược điểm:
- Việc bí mật khóa mã hóa và giải mã rất khó khăn
- Trao đổi thông tin với số lượng người ít
- Không thiết lập được chữ ký điện tử và trong giao dịch thương mại điện tử trên mạng
6 Hệ mã hóa khóa công khai là gì? Trình bày các ưu điểm, nhược điểm của hệ mã hóa khóa công khai?
Hệ mã khóa công khai là hệ mã sử dụng 2 khóa khác nhau, một khóa công khai dùng để mã hóa và một khóa bí mật dùng để giải mã
Trang 3+ Khóa công khai: công khai cho tất cả mọi người (người tạo bản mã hóa).
+ Khóa bị mật: chỉ có người nhận bản mã hóa mới có (người giải mã)
+ Cả hai khóa đều do cùng một người tạo ra, đó là người nhận bản mã hóa
Ưu điểm:
- Quản lý khóa đơn giản
- Sử dụng tốt để tạo chữ ký điện tử và thực hiện giao dịch trong thương mại điện tử trên mạng
Nhược điểm:
- Tốc độ tính toán chậm
- Phải xây dựng khóa dưới dạng bẩy cửa sập
- Phải chứng nhận đúng khóa
7 Định nghĩa hệ mã dịch chuyển (Shift cipher)? Cho ví dụ minh họa?
Định nghĩa: Hệ mã dịch chuyển là một bộ gồm 5 thành phần (P, C, K, E, D) Trong đó:
P : Tập hợp các bản rõ
C : Tập hợp các bản mã
K : Tập hợp các khoá.
Giả sử P = C = K = Z m Khi đó, với k ∈ K ta xác định:
y = E k (x) = x + k (mod m)
x = D k (y) = y - k (mod m)
Ví dụ minh họa:
Cho bảng mã Z26 và khóa bí mật k = 9 Hãy mã hóa câu sau:
x = “ NGAY MAI TIEN VE PHIA TAY ”
Có thể định nghĩa qua phép dịch chuyển với k = 9.
Sử dụng mã dịch chuyển với k = 9, ta có bản mã là:
y = “ WPJH VJR CRNW EN YHRJ CJH ”
8 Định nghĩa hệ mã thay thế (Subtitution cipher)? Cho ví dụ minh họa?
Định nghĩa: Hệ mã thay thế là một bộ gồm 5 thành phần (P, C, K, E, D) Trong đó:
P : Tập hợp các bản rõ.
C : Tập hợp các bản mã Giả sử P = C = Z m
K : Tập hợp các khoá, K chứa mọi hoán vị có thể của m ký hiệu Anphabet.
Với mỗi phép hoán vị khóa π∈ K Ta xác định:
y = Eπ(x) = π(x)
x = Dπ(y) = π-1(y) (π-1 là hoán vị ngược của π)
Trang 4dụ minh họa:
Cho hoán vị π của bảng mã Z26 như sau:
A B C D E G H I K L M N O P Q R S T U V X Y Z
N M L K J H G F D C B A P O R Q T S V U W Z Y
Hãy mã hóa câu sau:
x = “ NGAY MAI TIEN VE PHIA TAY ”
9 Định nghĩa về hệ mã Affine (Affine cipher)?
Viết thủ tục mã hóa một đoạn văn bản với hệ mã Affine
Trong Z26 cho bản rõ X = ”UNINSTALL” và 3 khóa sau k1 = (9, 15), k2 = (6, 3), k3 = (12, 25),
hãy chọn khóa cho phù hợp trong 3 khóa trên mã hóa bản rõ X ?.
a. Định nghĩa: Hệ mã Affine là một bộ gồm 5 thành phần (P, C, K, E, D) Trong đó:
P : Tập hợp các bản rõ.
C : Tập hợp các bản mã Giả sử P = C = Z m
K : Tập hợp các khoá,
K = { (a, b) ∈ Z m × Z m | USCLN(a, m) = 1 } Với khóa k = (a, b) ∈ K, ta xác định:
y = E k (x) = a.x + b (mod m)
x = D k (y) = a-1.(y – b) (mod m)
(a-1 là hoán vị ngược của a theo modulo m)
b. Thủ tục mã hóa đoạn văn bản với hệ mã Affine
Input: m = 41; Bản rõ x ∈ Z41, khóa bí mật k = (a, b) ∈ K
Output: Bản mã hóa y ∈ Z41
Action
for ch := ‘A’ to ‘Z’ do
CC[ch] = ord(ch) – 65;
for ch := ‘0’ to ‘9’ do
CC[ch] = (ord(ch) – 48) + 26;
CC[‘.’] := 36; CC[‘,’] := 37; CC[‘;’] := 38;
CC[‘:’] := 39; CC[‘ ’] := 40;
for i := 1 to len(x) do
y[i] := chr((CC[x[i]] * a + b) (mod m) );
return (y).
c. Trong bảng mã Z26, chỉ có khóa k1 = (9, 15) là phù hợp, vì khóa k2 và k3 có thành phần thứ nhất của khóa không khả nghịch
Với khóa k1 = (9, 15), ta có bản mã như sau:
Trang 5Sử dụng mã Affine với k1 = (9, 15), ta có bản mã là:
y = ” NCJCVEPKK”
10 Định nghĩa hệ mã Vigenere (Vigenere cipher)?
Viết thủ tục mã hóa một đoạn văn bản với hệ mã Vigenere
Cho ví dụ minh họa?
a. Định nghĩa: Hệ mã Vigenere là một bộ gồm 5 thành phần (P, C, K, E, D) Trong đó:
P : Tập hợp các bản rõ.
C : Tập hợp các bản mã Giả sử P = C = Z m Cho l ∈ Z+, K là tâp hợp các khoá:
K = { (k1 , …, k l ) ∈ Zl }
Với khóa k = (k1 , …, k l ) ∈ K, ta xác định:
y = E k (x1 , …, x l ) = (x1 + k1 , …, x l + k l ) (mod
m) x = D k (y1 , …, y l ) = (y1 - k1 , …, y l - k l ) (mod
m)
b. Thủ tục mã hóa đoạn văn bản với hệ mã Vigenere
Input: m = 41; Bản rõ x ∈ Z41; l ∈ Z+; khóa k = (k1,…, k l)∈K
Output: Bản mã hóa y ∈ Z41
Action
for ch := ‘A’ to ‘Z’ do
CC[ch] = ord(ch) – 65;
for ch := ‘0’ to ‘9’ do
CC[ch] = (ord(ch) – 48) + 26;
CC[‘.’] := 36; CC[‘,’] := 37; CC[‘;’] := 38;
CC[‘:’] := 39; CC[‘ ’] := 40;
for i := 1 to len(x) do
if (i mod l = 0) then
y[i] := chr((CC[x[i]] + k[l]) (mod m) )
else
return (y).
y[i] := chr((CC[x[i]] + k[i mod l]) (mod m) );
c. Ví dụ minh họa:
Cho bảng mã Z26 và l = 6, khóa k là từ CIPHER (nghĩa là k = (2, 8, 15, 7, 4,
17)) Hãy mã hóa câu sau:
x = “ HEN TOI THU BAY ”
- Bản rõ x được chia thành từng đoạn có độ dài l = 6 như sau:
Để tạo bản mã hóa, ta cộng với khóa k thì được bản mã:
m
Trang 6J M C A S Z V P J I E P
Trang 7⇒ Ta có bản mã là:
y = “ JMC ASZ VPJ IEP ”
11 Định nghĩa hệ mã hoán vị (Premutation cipher)?
Viết thủ tục mã hóa một đoạn văn bản với hệ mã Hoán vị
Cho ví dụ minh họa?
a. Định nghĩa: Hệ mã hoán vị là một bộ gồm 5 thành phần (P, C, K, E, D) Trong đó:
P : Tập hợp các bản rõ.
C : Tập hợp các bản mã Giả sử P = C = Z m
Cho l ∈ Z+, K là tập tất cả các hoán vị của {1,…, l }.
Với khóa k = π∈ K, ta xác định:
y = E k (x1 , …, x l ) = (xπ (1) , xπ (2) , …, xπ(l ) )
x = D k (y1 , …, y l ) = (yπ -1(1) , yπ -1(2) , …, yπ-1(l ) )
c Thủ tục mã hóa đoạn văn bản với hệ mã Hoán vị
Input: Bản rõ x∈P; l ∈Z+; khóa bí mật k = (π(1),…, π(l))∈K
Output: Bản mã hóa y ∈ C.
Action
for i := 1 to len(x) do
if (i mod l = 0) then
y[i] := x[ k(l)]
(π-1 là hoán vị ngược của π)
else
return (y).
y[i] := x[ k(i mod l)];
c Ví dụ minh họa:
Cho bảng mã Z26 và l = 5, khóa mã hóa là hoán vị:
Hãy mã hóa câu sau:
x = “ HEN TOI THU BAY ”
- Bản rõ x được chia thành từng đoạn có độ dài l = 5 như sau:
Để tạo bản mã hóa, ta cộng với khóa k thì được bản mã:
⇒ Ta có bản mã là:
y = “ NTH E HOTIBYUA ”
Trang 812 Định nghĩa về hệ mã Hill(Hill cipher)? Viết thủ tục mã hóa một đoạn văn bản với hệ
mã Hill
Trang 9Cho ví dụ minh họa?.
a. Định nghĩa: Hệ mã Hill là một bộ gồm 5 thành phần (P, C, K, E, D) Trong đó:
P : Tập hợp các bản rõ.
C : Tập hợp các bản mã Giả sử P = C = Z m Cho l ∈ Z+, K là tập hợp các khoá:
K = { k ∈ Z l × l | ƯSCLN(det(k), m) = 1 } Với khóa k = (k1 , …, k l ) ∈ K, ta xác định:
y = E k (x1 , …, x l ) = (x1 , …, x l ).k (mod m)
x = D k (y1 , …, y l ) = (y1 , …, y l ).k-1 (mod m)
(k-1 là ma trận nghịch đảo của k theo modulo m)
b. Thủ tục mã hóa đoạn văn bản với hệ mã Hill
Input: m = 65; Bản rõ x ∈ Z65; l ∈ Z+; khóa bí mật | k | l ×l
∈K; Output: Bản mã hóa y ∈ Z65
Action
for ch := ‘A’ to ‘Z’ do
CC[ch] = ord(ch) – 65;
for ch := ‘a’ to ‘z’ do
CC[ch] = (ord(ch) – 97) + 26;
for ch := ‘0’ to ‘9’ do
CC[ch] = (ord(ch) – 48) + 52;
CC[‘.’] := 62; CC[‘,’] := 63; CC[‘ ’] := 64;
while (len(x) mod l <> 0) do x := x + ‘ ‘;
i := 1; S := 0;
while i <= len(x) do
begin
for j1 := 1 to l do
begin
for i t := S*l +1 to S*l + l do
begin
T := 0;
for j2 := 1 to l do
T := T + CC[x[i t ]] * k[i t - S*l, j2];
end
y[i] := chr( T (mod m) );
i := i + 1;
end;
S := S + 1;
end;
return (y).
m
Trang 10c. Ví dụ minh họa:
Cho bảng mã Z26 và l = 2, khóa k được chọn như sau:
Hãy mã hóa câu
sau:
x = “ WE WILL MEET AT MIDNIGHT ”
- Ta chia bản rõ thành các bộ l = 2 ký tự::
W E W I L L M E E T A T M I D N I G H T
- Mã hóa các bộ hai ký tự theo hệ thức mã hóa: (y1, y2) = (x1, x2).k
U W G Y Y J O U X J F D A W U L C C E H
⇒ Ta có bản mã là:
y = “ UW GYYJ OUXJ FD AWULCCEH ”
13 Định nghĩa hệ mã hóa khóa công khai RSA? Đánh giá độ án toàn của hệ
mã RSA? Định nghĩa: Hệ mã RSA là một bộ gồm 5 thành phần (P, C, K,
E, D) Trong đó:
P : Tập hợp các bản rõ.
C : Tập hợp các bản mã.
Cho n = p.q, với p, q là hai số nguyên tố lớn, P = C = Z n
K : Tập các khóa, K = { (n, p, q, e, d) |
USCLN(e, φ(n)) = 1 và e.d ≡ 1 (mod φ(n))
} Với khóa k ∈ K, ta xác định:
+ Tạo bản mã: y = E k (x) = xe (mod n) + Giãi bản mã: x = D k (y) = yd (mod n) + Phần khóa công khai là: (n, e)
+ Phần khóa bí mật là (p, q, d)
Độ
an toàn của hệ mã RSA
Tại thời điểm năm 2005, số lớn nhất có thể được phân tích ra thừa số nguyên tố có độ dài
663 bít (gần 200 chữ số) với phương pháp phân tán
Một số chuyên gia cho rằng với khóa 1024 bít có thể sớm bị phá vỡ trong thời gian tới (cũng
có nhiều người phản đối việc này)
Còn với khóa 4096 bít thì hầu như không có khả năng bị phá vỡ trong tương lai gần Do đó,
người ta thường cho rằng RSA đảm bảo an toàn với điều kiện n được chọn đủ lớn.
Nếu n có độ dài 256 bít hoặc ngắn hơn, nó có thể bị phân tích trong vài giờ với máy tính cá
nhân dùng các phần mềm có sẵn
Nếu n có độ dài 512 bít, nó có thể bị phân tích bởi vài trăm máy tính tại thời điểm năm 1999
Vì vậy, hiện nay người ta khuyến cáo sử dụng khóa có độ dài tối thiểu 1024 bít trong các ứng dụng Nếu cần tới bảo mật cao hơn thì phải dùng khóa 2048 bít
14 Định nghĩa hệ mã hóa khóa công khai ElGamal? Đánh giá độ án toàn của hệ mã
ElGamal?
Trang 11B2
Định nghĩa: Hệ mã ElGamal là một bộ gồm 5 thành phần (P, C, K, E, D) Trong đó:
P : Tập hợp các bản rõ.
C : Tập hợp các bản mã.
Cho p là một số nguyên tố lớn P = C = Z *
K : Tập các khóa, K = { (p, e, a, d) | d ≡ e a (mod p)}
Với một số ngẫu nhiên bí mật k ∈ Z p-1 Ta xác lập:
+ Tạo bản mã: (y1, y2) = E k (x) = ( e k, x.d k ) (mod p)
+ Giải bản mã: x = D k (y1, y2) = y2 ( y1a ) -1 (mod p)
+ Phần khóa công khai là: (p, e, d) ;
+ Phần khóa bí mật là (a)
Độ
an toàn của hệ mã ElGamal
Hệ mã Elgamal là hệ mật khóa công khai dựa trên bài toán Logarithm rời rác Để gây khó khăn cho các phương pháp tấn công đã biết thì p phải có ít nhất 150 chữ số và (p - 1) phải có ít nhất một thừa số nguyên tố lớn
Hệ mã ElGamal rất an toàn Bởi vì, ngoài người nhận B ra thì không ai có thể thực hiện giải
mã được
Tuy nhiên, người gửi A cần phải thận trọng khi chọn số ngẫu nhiên k để sao cho không ai có thể đoán ra được nó (mỗi lần nên dùng một số khác nhau)
Nếu như kẻ gian biết trước được k thì nó có thể lấy chìa khoá công khai của người gửi B để nâng lên luỹ thừa bậc k và giải mã ra được bản rõ một cách dễ dàng
15 Định nghĩa hệ mã hóa khóa công khai Rabin? Đánh giá độ án toàn của hệ mã
Rabin? Định nghĩa: Hệ mã Rabin là một bộ gồm 5 thành phần (P, C, K, E,
D) Trong đó:
P : Tập hợp các bản rõ.
C : Tập hợp các bản mã.
Cho n = p.q, với p, q là hai số nguyên tố đủ lớn và có tính chất: p ≡ 3 (mod 4) và q ≡ 3 (mod 4)
P = C = Z m
K : Tập hợp các khoá, K = { (n, p, q, B) 0 ≤ B ≤ n-1) }
Với khóa k ∈ K Ta xác lập:
+ Tạo bản mã : y = E k (x) = x (x + B) (mod n)
B
+ Giải bản mã : x = D k (y) =
+ Phần khóa công khai là: (n, B)
+ Phần khóa bí mật là (p, q).
Độ
an toàn của hệ mã Rabin
−(mod n)
2
Từ định nghĩa hệ mã cho ta thấy, yếu tố có ý nghĩa quyết định trong việc giải mã đó là việc tính căn bậc 2 của một số theo (mod n)
p
Trang 12Bài toán tìm căn theo (mod n) có độ khó tương đương với bài toán phân tích n thành thừa
số nguyên tố Đây là yếu tố đảm bảo tính an toán của hệ mã rabin
16 Trình bày các bước thực hiện truyền tin mật giữa 2 thực thể (Alice và Bob) sử dụng hệ
mã hóa khóa công khai RSA, giả sử Alice muốn gửi tin mật cho Bob?
Các
bước thực hiện truyền tin mật giữa Alice và Bob sử dụng hệ mã hóa khóa công khai RSA:
Bước 0: Bod tạo ra một khóa: k = (n, p, q, e, d), với n = p.q, p, q là hai số nguyên tố lớn,
USCLN(e, φ(n)) = 1 và e.d ≡ 1 (mod φ(n))
+ Khóa công khai: k1 = (n, e)
+ Khóa bì mật: k2 = (p, q, d)
Bước 1: Khi Alice muốn mã hóa bản tin x, trước tiên Alice yêu cầu Bod cung cấp khoa công
khai k1 = (n, e) (có thể lấy khóa qua công khai của Bod thông qua CA).
Bước 2: Alice sử dụng khóa công khai của Bod để mã hóa bản tin x, Alice thu được bản mã hóa
là: y = E k (x) = xe (mod n)
Bước 3: Alice gửi bản mã hóa y cho Bob.
Bước 4: Khi Bob nhận được bản mã hóa y, Bod sẽ sử dụng khóa riêng (bí mật) k2 = (p, q, d) để
giải bản mã y và thu được bản tin:
x = D k (y) = yd (mod n)
17 Hãy nếu các yếu tố đặc trưng của chữ ký viết tay?
+ Chữ ký là bằng chứng thể hiện người ký có chủ định ký văn bản
+ Chữ ký thể hiện "chủ quyền", nó làm cho người nhận văn bản biết rằng ai đích thị là người đã
ký văn bản
+ Chữ ký không thể "tái sử dụng được", tức là nó là phần của văn bản mà không thể sao chép
sang văn bản khác
+ Văn bản đã ký không thể thay đổi được, không thể giả mạo và cũng là thứ không thể chối bỏ
18 Trình bày khái niệm về chữ ký điện tử? Vẽ mô hình truyền tin một văn bản có chữ ký điện tử của người gửi?
Định nghĩa: Chữ ký điện tử (electronic signature) là thông tin đi kèm theo dữ liệu (văn
bản, hình ảnh, video ) nhằm mục đích xác định người chủ của dữ liệu đó
Chữ ký điện tử được sử dụng trong các giao dịch điện tử Xuất phát từ thực tế, chữ ký điện
tử cũng cần đảm bảo các chức năng: xác định được người chủ của một dữ liệu nào đó: văn bản, ảnh, video, dữ liệu đó có bị thay đổi hay không
Mô
hình truyền tin một văn bản có chữ ký điện tử của người gửi: