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

Giải ngân hàng Mật Mã Học Nâng Cao PTIT

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

CÂU HỎI
Mục lục
1.

Quy trình mã hóa giải thuật RC6, sơ đồ minh họa...............................................3
1.1 Đọc hiểu về RC6................................................................................................3
1.2 Quy trình mã hóa.............................................................................................4

2.

PKCS (Public Key Cryptography Standards)......................................................5
2.1 Giới thiệu...........................................................................................................5
2.2 Đặc điểm..........................................................................................................5
2.3 Một số chuẩn PKCS...........................................................................................6

3.

Phép cộng trên đường cong Eliptic......................................................................6
3.1 Khía cạnh hình học............................................................................................7
3.2 Khía cạnh đại số:.............................................................................................7
3.3 Ví dụ:...............................................................................................................8

4. Quy trình mã hóa của giải thuật mã hóa Rabin trong trường hợp p và q đồng dư
3 mod 4.........................................................................................................................8
4.1 Đọc hiểu về Rabin..............................................................................................8
4.2 Quy trình mã hóa của giải thuật:.....................................................................8
4.2 Giải mã đối với trường hợp p,q đồng dư 3mod4...............................................9
4.3 Ví dụ:................................................................................................................10
a. Tạo khóa:........................................................................................................10
b. Mã hóa: B thực hiện.......................................................................................10
c. Giải mã:..........................................................................................................10


5.

Giải mã RC6.......................................................................................................10

6.

Phép nhân trên đường cong Eliptic....................................................................12
6.1 Về khía cạnh hình học......................................................................................12
6.2 Về khía cạnh đại số........................................................................................13

7.

Khái niệm Tấn công lựa chọn bản mã thích nghi CCA2. Ví dụ minh họa........13
a.

Khái niệm......................................................................................................13

b.

Ví dụ minh họa..............................................................................................13
Trịnh Tuấn Cường


8. Quy trình mã hóa và giải mã của giải thuật Elgamal. Ví dụ minh họa cho quá
trình mã hóa và giải mã..............................................................................................15
1.

Mã hóa:..........................................................................................................15

2.


Giải mã:.........................................................................................................15

3.

Ví dụ:.............................................................................................................16
a. Mã hóa............................................................................................................16
b. Giải mã...........................................................................................................16

9.

Hàm g trong giải thuật mã hóa Towfish. Vẽ sơ đồ hàm g..................................16

10.

Phân tích yêu cầu trong quá trình sinh khóa của giải thuật Rabin....................17

11.

Khái niệm thám mã nội suy. Ưu nhược điểm...................................................18

12.

Quy trình trao đổi khóa Omura – Massay. Ví dụ minh họa..............................18

12.1 Ý tưởng..........................................................................................................18
12.2 Quy trình:.......................................................................................................18
13. Quy trình mã hóa của giải thuật mã hóa IDEA? vẽ sơ đồ minh họa quá trình
mã hóa của giải thuật mã hóa IDEA?........................................................................19
14. Phân tích về các yêu cầu trong quá trình sinh khóa của giải thuật mã hóa

Elgamal......................................................................................................................21
15. Định nghĩa thám mã tuyến tính? ưu điểm và nhược điểm của kỹ thuật thám mã
tuyến tính?..................................................................................................................21
16. Quy trình trao đổi thỏa thuận khóa Diffie – Hellman trên đường cong Elliptic?
lấy ví dụ minh họa?....................................................................................................21
16.1 Ý tưởng..........................................................................................................21
16.2

Quy trình trao đổi khóa..............................................................................21

Trịnh Tuấn Cường


BÀI LÀM
1. Quy trình mã hóa giải thuật RC6, sơ đồ minh họa.
1.1 Đọc hiểu về RC6.
 RC6: là thuật toán mã hóa đối xứng có tốc độ mã hóa/ giải mã cao (trên
100Mbps) và mức độ bảo mật tốt.
 RC6 có kích thước mã hóa khối 128bit, hỗ trợ kích thước khóa 16x8
(128bit), 24x8 (192bit), 32x8 (256bit).
 Thuật toán RC6 được xác định = các tham số w/r/b:
o w là kích thước từ (bit). Đầu vào chia làm 4 từ: 128bit/4 =32bit,
o r là số chu kỳ (vòng) mã hóa (r=20).
o b là chiều dài khóa (byte) từ 0 -255 byte.
 RC6 sử dụng 6 phép toán cơ bản và Logarit cơ số 2 của w. Kí hiệu lgw.
o a + b modulo 2^w.
o a – b modulo 2^w.
o a ⊕ b phép XOR.
o a x b nhân modulo 2^w.
o a<<

o a>>>b quay chu kì tròn bên phải b bit.

Trịnh Tuấn Cường


1.2 Quy trình mã hóa.
 Mã hóa với RC6-w / r / b
 Input: Bản rõ được lưu trữ trong bốn thanh ghi đầu vào w-bit A, B, C & D
o r là số lượng vòng = 20
o w-bit round keys K[0, ..., 2r + 3]  K[0,…,43].
 Kết quả: Mật mã được lưu trữ trong A, B, C, D //
 Quy trình mã hóa Gồm 3 bước :
1. Bước 1:
//- Chia đầu vào thành 4 từ A,B,C,D.
//- B + khóa K[0], D + khóa K[1]. Và modulo 2^w (w=32).
B = B + K[0] mod 2^w
D = D + K[1] mod 2^w
2. Bước 2:
- Lặp r vòng (r =20).
for i = 1 to r do
{
//Đặt t = f(B) <<< lg32; u = f(D) <<< lg32
//Hàm f(x) = x*(2x+1).
//lg32 = 5.
t = (B*(2B + 1)) <<< lg w
u = (D*(2D + 1)) <<< lg w
//Sau đó tính:
A = ((A ⊕ t) <<< u) + K[2i]
C = ((C ⊕ u) <<< t) + K[2i + 1]
//Quay trái:

(A, B, C, D)
}
3. Bước 3:
//Cộng A với
//Cộng C với
A = A + K[2r
C = C + K[2r

=

(B, C, D, A)

khóa vòng K[42]; | 2*20 + 2 = 42
khóa vòng K[43]; | 2*20 + 3 = 43
+ 2]
+ 3]

Trịnh Tuấn Cường


Hình 1 Sơ đồ mã hóa RC6

2. PKCS (Public Key Cryptography Standards)
2.1 Giới thiệu.
//Phần này không cần ghi vào bài, đọc để hiêu. Nếu cần thiết thì trình bày sơ qua về
ASN.1 và PKI. Các phần chữ đỏ có thể bỏ qua.
 PKCS: Chuẩn mã hóa khóa công khai.
 Dựa vào các cấu trúc ASN.1(Abstract Syntax Notation One): Là một bộ các
tiêu chuẩn và ký hiệu miêu tả các quy tắc và cấu trúc cho biểu diễn, mã hóa,
truyền đi và giải mã.

 Là một tập hợp các giao thức chuẩn xen kẽ để thực hiện trao đổi thông tin
an toàn trên Internet dựa trên ơ sở hạ tầng khóa công khai PKI.
o PKI (Public key Infarstructure): hỗ trợ phân phối thu hồi và xác
minh các public key.
o PKI được sử dụng mã hóa public key và cho phép liên kết với chứng
chỉ public key. Nếu không có PKI, dữ liệu nhạy cảm vẫn được mã hóa
nhưng không có sự bảo đảm về danh tính của các bên trao đổi thông
tin.
2.2 Đặc điểm
 Dữ liệu được chia thành từng khối nhỏ nhất là 8 bit (octet) để đảm bảo An
toàn.
 Các tiêu chuẩn của PKCS gồm:
Trịnh Tuấn Cường


o Mã hóa RSA: Thuật toán mã hóa khóa công khai: Nhờ vào độ khó về
xử lý 2 số nguyên tố lớn p,q trên trường logarit rời rạc và tính toán
modulo.
o Mã hóa dựa trên mật khẩu.
o Cú pháp chứng chỉ mở rộng và cú pháp tin nhắn mật mã cho S/MIME
o Tiêu chuẩn đề xuất của RSA về an toàn email.
2.3 Một số chuẩn PKCS
PKCS#1,
PKCS#3,
PKCS#5,

PKCS#7,
PKCS#8,
PKCS#9,


PKCS#11,
PKCS#12,
PKCS#13,
PKCS#15.
 PKCS#11 là phức tạp nhất, nó là chuẩn cho việc truyền thông tin trên mạng
dưới dạng các gói tin đã mã.
o Dùng để xác định API độc lập nền tảng với mã thông báo mã hóa ,
chẳng hạn như mô-đun bảo mật phần cứng (HSM) và thẻ thông minh
và đặt tên cho API là "Cryptoki" (từ "giao diện mã hóa mã hóa" và
được phát âm là "khóa mã hóa"
o Nhưng "PKCS # 11" thường được sử dụng để chỉ API cũng như tiêu
chuẩn xác định nó).
 Trong chuẩn PKCS#1 phiên bản 1.5, trước khi mã hóa, thông điệp M được
đệm thông báo vào trước nó thành m = PKCS(M) = 00 02 R1 R2 … Rs 00 M.

o Trong đó:
 k là số byte của n.
 byte đầu tiên có giá trị 0, byte thứ hai có giá trị 2.
 Ri là các byte ngẫu nhiên khác 0.
 (s = k – 3)- số byte của data và s ≥ 8 để đáp ứng yêu cầu về an
toàn.
 byte ngay sau Rs cũng có giá trị 0 - Cuối cùng là thông điệp M.
=>Khi đó bản mã được tính là C = m^e mod N
3. Phép cộng trên đường cong Eliptic.
Cần nhớ dạng đường cong trên Galois:
 Eliptic trên trường Zp (p nguyên tố) :
Trịnh Tuấn Cường


o

o Ví dụ trong trường Z, chọn a= 1, b= 1, x = 9, y = 7, p = 23 có: 7^2 mod
23 = ( 9^3 + 9 + 1) mod 23 => 49 mod 23 = 739 mod 23 => 3.
 Eliptic trên trường GF(2^m):
o
o

3.1 Khía cạnh hình học
 Vẽ cái hình này vào (vẽ vào để lấy thông tin giải thích khía cạnh đại số), vẽ
thêm đường y = 0 (là đường thẳng đối xứng chia đường cong E làm 2.). Cái
đối xứng này quan trọng liên quan đến việc thêm và khử khóa trong các hệ
mật ứng dụng E.
 R = P+Q (P≠O, Q≠O, P≠Q), nối P và Q bằng đường thẳng L. Đường thẳng
L cắt đường E tại ba điểm P, Q và –R(x, y). Điểm R(x, – y) sẽ có tung độ là
giá trị đối của y.

3.2 Khía cạnh đại số:
 Xác định các điểm R(xR,yR), P(xP,yP) + Q(xQ,yQ) | P ≠ O, Q ≠ O, P ≠ Q.



Tính xR, yR thông qua giá trị delta:

Trịnh Tuấn Cường


o
3.3 Ví dụ:
 Delta = 0.
 xR = 0^2 - (-1) – 0 = 1;
 yR = -0 + 0*(-1 -0) =0;

Điểm nào cộng với điểm vô cùng O cũng sẽ ra chính nó.

4. Quy trình mã hóa của giải thuật mã hóa Rabin trong trường hợp p và q
đồng dư 3 mod 4.
4.1 Đọc hiểu về Rabin
 Sơ đồ hệ mật mã hóa công khai Rabin được cho bởi:S= (P,C,K,E,D):
o P = C = Zn; n là số nguyên Blum, n =p.q (p,q là 2 số nto và đồng dư
3mod4.
o K = {K’,K’’}.
 K’ là khóa công khai =(n,B).
 K’’ là khóa bí mật =(p,q)
 0 <=B<= n-1.
o Các thuật toán D, E

4.2 Quy trình mã hóa của giải thuật:
 Cần tạo khóa trước khi mã hóa:
o Mỗi người tham gia chọn các yếu tố n,B,p,q để lập nên khóa công khai
K’ và khóa bí mật K’’.
o Bên A tạo khóa như sau:
 Tạo 2 số p, q ngẫu nhiên là 2 số nguyên tố lớn; p gần bằng q.
 Tính n = p.q.
 Khóa công khai của A là n khóa bí mật của A là (p,q).
Trịnh Tuấn Cường


*Việc chọn p và q là bật kỳ tuy nhiên chúng ta có thể chọn p,q đồng dư 3 mod4 để
dễ tính toán.

 Mã hóa: B là người mã hóa.
1. Nhận khóa công khai n đã được xác thực từ A.

2. Giả sử thông điệp là 1 số nguyên m trong khoảng [0,1,…n-1].
3. Tính c = m^2 mod n.
4. Gửi bản mã hóa c cho A.
4.2 Giải mã đối với trường hợp p,q đồng dư 3mod4.
1. Dùng thuật toán Euclide mở rộng tìm 2 số nguyên a và b thoả mãn: ap + bq = 1
2. Tính r = C^[(p+1) /4] mod p
3. Tính s = C^[(p+1) /4] mod q
4. Tính x = (aps + bqr) mod n.
5. Tính y = (aps – bqr) mod n.
6. Bốn căn bặc 2 của C mod n là:





M1 = x.
M2 = -x mod n.
M3 = y.
M4 = -y mod n.

* Ví dụ: cho p =11, q = 7, M =32.
 Mã hóa:
o Tính n = pq = 11*7 =77.
o C = M^2 mod n = 32^2 mod 77 = 23.
 Giải mã:
o Nhận p,q đồng dư 3mod4.
o Do a = (1-7b)/11. => 1-7b là bội của 11 => b=8, a = -5.
 Tính: r = C^[(p+1)/4)] mod p = 23^[(11+1)/4] mod 77 = 1.
 Tính: s = C^[(q+1)/4] mod q = 23^[(7+1)/4] mod 77 = 4
 Tính: x= (aps +bqr) mod n = (-5*11*4 + 8*7*1) mod 77 = 67

 Tính y = (aps – bqr) mod n = )-5*11*4 – 8*7*1) mod 77 = 32
o Tính M1= 67, M2 = 10, M3= 32, M4 = 45.

Trịnh Tuấn Cường


4.3 Ví dụ:
a. Tạo khóa:
 A chọn số nguyên tố p = 331, q =311 có p,q đồng dư 3mod4
 Tính n = p*q = 102941
 Khóa công khai K’ là n = 102941
 Khóa bí mật của A là (p=311,q=311)
b. Mã hóa: B thực hiện.
 Nếu giá trị m được chọn chưa đủ 16bit, cần thêm số bit vào bằng cách lấy các
bit cuối cùng của chính số m và thêm vào cho đủ.
 Số m = 633(10) = 1000 1111 001(2). Thiếu 6 bit.
 Bù vào 6 bit bằng cách lấy 6 bit cuối cùng =>M =1000 1111 001 111001(2).
 Theo hệ 10 M = 40569.
 Sau đó B tính: c = M^2 mod n = 40569^2 mod 102941 = 23053
 Gửi c = 23053 cho A.
c. Giải mã:
1. Dùng thuật toán Euclide mở rộng tìm 2 số nguyên a và b: ap + bq =1. Tìm
dược a =140, b =-149.
2. Tính r = C^[(p+1)/4] mod p = 23053^[(331+1)/4] mod 331 = 144.
3. Tính s = C^[(p+1)/4] mod q = 23053^[(331+1)/4] mod 311 = 139.
4. Tính x = (asp +bqr) mod n = (6052060-6672816) mod 102941 =-25674.
5. Tính y=(aps-bqs) mod n= [(140*331*139)-(-149*311*139)] mod
102941= (6052060+6672816) mod 102941=40569.
6. Bốn căn bậc 2 của c mod n là x, -x mod n, y và –y mod n.
 m1 =25674(10) =644A(H)=0110010001001010(2)

 m2 =77267(10)=2DD3(H)= 0010110111010011(2)
 m3 = 40569(10)= 9E79(H)= 1001111001111001(2)
 m4 = 62372(10) = F3A4(H)= 1111001110100100(2)
 Vì chỉ có m3 có dư thừa dữ liệu yêu cầu, A giải mã c thành m3 (bỏ 6
bit lặp cuối cùng) và phục hồi bản rõ ban đầu là m = 10011110012=
633(10)

5. Giải mã RC6
 Giải mã RC6-w / r / b Ngược lại với quy trình mã hóa RC6.
 Input: Bản mã được lưu trữ trong bốn thanh ghi đầu vào w-bit A, B, C & D
o r là số lượng vòng = 20
Trịnh Tuấn Cường


o w-bit round keys K[0, ..., 2r + 3]  K[0,…,43].
 Kết quả: bản rõ được lưu trữ trong A, B, C, D //
 Quy trình giải mã Gồm 3 bước :
1. Bước 1:
//- Gói tin cần giải mã được chia thành 4 từ A,B,C,D.
//- C trừ khóa vòng K[43] mod 2^32.
//- A trừ khóa vòng K[42] mod 2^32.
C = C - K[2r + 3] mod 2^w
A = A - K[2r + 2] mod 2^w
2. Bước 2: lặp r vòng (r =20).
for i = r downto 1 do
{
//- Thực hiện phép gán vế phải trừ vế trái.(quay vòng phải)
(A, B, C, D) = (D, A, B, C)
//Đặt: u = f(D)<<< lg32; t = f(B)<<//f(x) = x*(2x +1).

//lg32 = 5.
u = (D*(2D + 1)) <<< lg w
t = (B*(2B + 1)) <<< lg w
//Sau đó tính:
C = ((C - K[2i + 1]) >>> t) ⊕ u
A = ((A - K[2i]) >>> u) ⊕ t
}
3. Bươc 3:
// Trừ D cho khóa K[1], B cho khóa K[0].
D = D - K[1]
B = B - K[0]

Trịnh Tuấn Cường


Hình 2 Sơ đồ giải mã RC6

6. Phép nhân trên đường cong Eliptic
6.1 Về khía cạnh hình học
Để xác định điểm R= 2P = P+P, vẽ tiếp tuyến L của đường cong E tại điểm P, điểm
–R là giao điểm còn lại của L với E và R = 2P = P+P.

Trịnh Tuấn Cường


6.2 Về khía cạnh đại số.
 Xác định điểm R(xR,yR) = P+P = 2P (do P
trùng nên không áp dụng được phép cộng vì
không xác định được Delta:
 Tính xR, yR như sau:


 Ví dụ: Chọn đường cong và chọn điểm P(Chọn xP bất kỳ tìm xP hoặc
ngược lại) thuộc đường cong E.

7. Khái niệm Tấn công lựa chọn bản mã thích nghi CCA2. Ví dụ minh họa.
a. Khái niệm.
 Là một cuộc tấn công bản rõ chọn trước (kẻ tấn công có khả năng chọn bản
mã Ci và các bộ giải mã tương ứng của Ci là Pi), trong đó kẻ tấn công có
khả năng lựa chọn đầu vào của hắn cho các chức năng giải mã dựa trên bản
mã được chọn trước đó.
 Không cần phải biết khóa bí mật mà vẫn giải mã được các thông điệp dựa
vào việc khai thác các kết quả trả về của hàm tiên tri (Oracle Functions) –
một phần mềm dùng để kiểm tra xem bản rõ có tuân theo PKCS #1 v1.5
hay không-> kết quả trả về là True/False.).
b. Ví dụ minh họa.
 Kịch bản: Kẻ tấn công muốn tìm bản rõ M từ bản mã C = M^e mod n. (Bản rõ
M không nhất thiết phải tuân theo chuẩn PKCS.Nhưng cần đưa M về chuẩn
PKCS để tính toán đạt hiệu quả cao).
 Các bước tiến hành:
o B1: Dùng hàm tiên tri kiểm tra xem C có theo chuẩn PKCS không.
(True/ False):
Trịnh Tuấn Cường


 True: => m =M.
 False: lựa chọn 1 bản rõ m tuân theo PKCS sao cho từ m tính
được M.
o B2: Tìm m thuộc miền xác định:
 M0 là miền giá trị chứa m, B = 2^[8*(K-2)].
 k là độ dài module của n tính theo byte.

o B3: thu hẹp miền giá trị chưa m:
 Chọn số Si ngẫu nhiên sao cho m*Si tuân theo PKCS.
 Si tăng thì miền giá trị của m sẽ thu hẹp.
 Dùng công thức:

 Kết quả cuối cùng:
*Cách thức tiến hành thám mã dài và khó nhớ nên thôi khỏi học. Đọc thêm để biết
thôi:
 Gọi C là bản mã mà kẻ tấn công thu được. Gọi hàm ktra_PKCS(a) là hàm
kiểm tra xem bản rõ b của bản mã a có tuân theo PKCS không.
 Kết quả hàm ktra_PKCS (a) là hàm do hàm tiên tri gửi về.
 ����_���� (�) = 0 hoặc 1  b không tuân theo / b tuân theo PKCS.
 a là bản mã, b là bản rõ của a.
 gọi Mi là miền giá trị chưa m (i>=0;i thuộc Z).

Trịnh Tuấn Cường


8. Quy trình mã hóa và giải mã của giải thuật Elgamal. Ví dụ minh họa cho
quá trình mã hóa và giải mã.

1. Mã hóa:
 Người gửi sau khi có cặp khóa công khai của người nhận sẽ thực hiện quá
trình mã hóa thông điệp như sau:
o Chọn thông điệp mã hóa (P). là một sô nguyên tố lớn. P khác p.
o Chọn số ngẫu nhiên r.
o Tính
o Tính
 Sau khi mã
hóa xong. C1, C2 là cặp bản

mã mà người gửi sẽ gửi đi cho người nhận qua kênh công cộng.
2. Giải mã:
 Người nhân sau khi nhân được cặp bản mã C =(C1,C2) sẽ thực hiênj giải mã:
Trịnh Tuấn Cường


o Tính Z = (C1)^d = (e1^r)^d = e1^(r*d) mod p.
o Tính giá trinh nghịch đảo của

Z:

o Giải mã theo bản mã P:=
o Sau khi giải mã xong

người

nhận sẽ nhận đc thông điệp ban đầu.
3. Ví dụ:
Chọn p= 2579; e1= 2; khóa bí mật d=765; chọn r ngẫu nhiên = 853. Tìm khóa của hệ
mã trên.
a. Mã hóa
1. tính e2 = e1^d mod p = 2^756 mod 2579 = 949.
2. để mã hóa thông điệp P(là số nto lớn) =1299 ta tính theo r = 853:
 C1 = e1^r mod p = 2^853 mod 2579 = 435.
 C2 = (P*e2^r) mod p = [1299*(949^853)] mod 2579 = 2396.
 Vậy bản mã gửi đi sẽ là C= (C1,C2) = (435,2396).
b. Giải mã
1. Với khóa bí mật d = 765.
 Tính Z^(-1) = (C1^d)^-1 mod p = (C1^(p-1-d))mod p
= 435^(2579-1-765) mod 2579 = 1980.

 M = (C2*Z^(-1)) mod p = (2396*1980) mod 2579 = .

Trịnh Tuấn Cường


9. Hàm g trong giải thuật mã hóa Towfish. Vẽ sơ đồ hàm g.

 Hàm g nhận tham số input và output đề là khối 32bit.
 Quá trình của hàm g:
o Dữ liệu vào X(32bit) được chia thành 4byte. 4byte đi vào các hàm Sbox.
o Biến đổi qua mỗi S-box (0->3) thu được các kết quả 8bit (y0->y3).
Tổng là 4byte.
o Bốn byte kết quả này là một vecter có chiều dài 4 trên GF(2^8). Nhân
vecter này với ma trận 4x4 MDS (sử dụng vùng GF(2^8) cho việc tính
toán.
o Vecter thu được sau nhân là 32bit chính là kết quả hàm g.
 Các thành phần chính trong hàm g như sau:
o Ma trận MDS có dạng:

Phần tử trong MDS viết dưới dạng byte HEX.
o Các hàm S-box thực hiện biến đổi:
 Phép hoán vị q gồm q0 và q1
 Phép XOR
 Sau mỗi lần biến đổi(hoán vị,..) q0,q1 các byte của 4 S-box lại
được XOR với các khóa phụ Si. (từ 0-i). (tương ứng với
128,192,256 thì i=1,2,3).
Trịnh Tuấn Cường


10. Phân tích yêu cầu trong quá trình sinh khóa của giải thuật Rabin.

 Các yêu cầu trong quá trình sinh khóa của giải thuật Rabin.
o Chọn 2 số nguyên tố p,q thỏa mãn |p| ~=|q|.
=> Việc lựa chọn naỳ có thể bất kỳ tuy nhiên để thuận tiện cho quá trình
giải mã nên chọn p,q thỏa mãn p~=q đồng dư 3mod4.Ở đây dễ cho
việc tính C^[(p+1)/4].
o Tính n = p.q. n là số nguyên Blum.
o Chọn số ngẫu nhiên b thuộc [0,1,n-1]. Để người nhận biết được
o Khi đó khóa K = {K’,K’’}.
 K’ là khóa công khai =(n,B).
 K’’ là khóa bí mật =(p,q)
 0 <=B<= n-1.

11.Khái niệm thám mã nội suy. Ưu nhược điểm.
11.1 Khái niệm:
Phương pháp xây dựng một đa thức biểu diễn mối quan hệ giữa bản rõ và bản
mã (xây dựng đa thức từ bản rõ và bản mã). Nếu cả bộ mã được biểu diễn bởi một
đa thức có bậc nhỏ thì hệ số của đa thức có thể tìm thấy từ các cặp bản mã/bản rõ sử
dụng phương pháp nội suy Lagrange.
11.2
Ưu nhược điểm
Ưu điểm
Đơn giản về mặt ý tưởng, dễ trong
khâu lập trình.
Sử dụng độ phức tạp tính toán của
đa thức có bậc nhỏ dễ trong việc dự
đoán đặc biệt là thông qua Meet in
the middle.

Nhược điểm
Phải tính toán lại từ đầu nếu thêm

mốc nội suy (một số cặp bản
rõ/bản mã).
Trong trường hợp một số cặp bản
mã bản rõ chưa được tìm thấy,
việc tính toán dự trên nội suy gặp
nhiều khó khăn do các điểm trên
đa thức không đầy đủ -> việc xây
dựng đa thức nội suy từ các cặp
bản rõ/bản mã không hiệu quả..

Thông qua các cặp bản mã bản rõ
sử dụng đa thức nội suy attacker có
thể biểu diễn được tập hợp các điểm
thu hẹp không gian bản mã/bản rõ
-> rút ngắn thời gian thám mã.
Trịnh Tuấn Cường


12.Quy trình trao đổi khóa Omura – Massay. Ví dụ minh họa.
12.1 Ý tưởng
Alice muốn gửi tin nhắn cho Bob, nhưng tất cả những gì cô có là một chiếc hộp
và một chiếc khóa mà cô có chìa khóa duy nhất.
12.2 Quy trình:
 Trước khi thực hiện trao đổi khóa, A và B cần chọn trước nhóm Ep(a,b) làm
khóa công khai.
o Ep là đường cong trên trường Fp(p là số nto).
o Ep có dạng y^2 mod p = x^3 + ax + b mod p.
 Chọn khóa bí mật:
o A chọn ngẫu nhiên 2 số m,n làm khóa bí mật: m+n=#Ep(a,b).
o B chọn ngẫu nhiên 2 số u,v làm khóa bí mật: u+v = #Ep(a,b)

o N= #Ep(a,b) thỏa mãn |N – (p+1)| <= 2√p  |N| <= (p+1) + 2√p.

 Quy trình trao đổi:
o Giả sử đường cong Ep(a,b) là E13(1,4), chọn điểm nguyên thủy là
P(2,1).
o Aice sử dụng khóa bí mật m của M để khóa khóa chung M (M do Alice
chọn).
 m + n = #Ep(a,b). tính mP + M
 Ví dụ m,n = 4,10; M =3P
 mP+ M = 4P+3P = (3P+ P) + (2P +P)
 Tính:2P = (9,12), 4P = (7,4), 3P = (5,11). => 7P(10,0)
o Bob nhận được 7P(10,0) thì tiến hành cộng thêm khóa u của mình và
gửi lại A:
 (u,v) = (6,8).
 7P + uP = 7P + 6P = 13P(2,12).
o Alice nhận được 13P thì tiến hành dùng khóa n để khử khóa m của
mình. 13P + 10P = 23P = 9P(8,2). Rồi gửi lại 9P(8,2) cho Bob.
o Bob nhận 9P sẽ dùng khóa bí mật v =8 của mình để khử khóa u trước
đó:
 9P +8P = 17P = 3P =M.

Trịnh Tuấn Cường


13.Quy trình mã hóa của giải thuật mã hóa IDEA? vẽ sơ đồ minh họa quá
trình mã hóa của giải thuật mã hóa IDEA?
 ⊙ nhân module 2^16 (65536)
 ⊞ cộng module 2^16 (65536).
 ⊕ phép XOR theo bit.
STT

1
2
3
4
5
6
7

11

Các bước
Tính toán đại số
Nhân module X1 với K1. X1 ⊙ K1
Cộng module X2 với K2. X2 ⊞ K2
Cộng module X3 với K3. X3 ⊞ K3
Nhân module X4 với K4. X4 ⊙ K4
XOR kq bước 1 với 3. X1 (X1 ⊙ K1) ⊕ (X3 ⊞ K3)
(X2 ⊞ K2)⊕( X4 ⊙ K4)
XOR kq bước 2 với 4.
[(X1 ⊙ K1) ⊕ (X3 ⊞ K3)] ⊙ K5
Nhân module kq bước 5
với khóa K5.
[(X2 ⊞ K2)⊕( X4 ⊙ K4)] ⊞
Cộng module kq bước 6
{[(X1 ⊙ K1) ⊕ (X3 ⊞ K3)] ⊙ K5}
với bươc 7.
[(X2 ⊞ K2)⊕( X4 ⊙ K4)] ⊞
Nhân module kết quả
{[(X1 ⊙ K1) ⊕ (X3 ⊞ K3)] ⊙ K5}⊙ K6
bước 8 với khóa K6.

{[(X1 ⊙ K1) ⊕ (X3 ⊞ K3)] ⊙ K5}⊞
Cộng module kq bước 7
{[(X2 ⊞ K2)⊕( X4 ⊙ K4)] ⊞
với bước 9
{[(X1 ⊙ K1) ⊕ (X3 ⊞ K3)] ⊙ K5}⊙ K6}
(X1 ⊙ K1) ⊕ {[(X2 ⊞ K2)⊕( X4 ⊙ K4)] ⊞
XOR kq bước1 với 9
{[(X1 ⊙ K1) ⊕ (X3 ⊞ K3)] ⊙ K5}⊙ K6}

12

XOR kq bước3 với 9

13

XOR kq bước2 với 10

14

XOR kq bước4 với 10

8
9
10

(X3 ⊞ K3) ⊕ {[(X2 ⊞ K2)⊕( X4 ⊙ K4)] ⊞
{[(X1 ⊙ K1) ⊕ (X3 ⊞ K3)] ⊙ K5}⊙ K6}
(X2 ⊞ K2) ⊕ {{[(X1 ⊙ K1) ⊕ (X3 ⊞ K3)] ⊙ K5}⊞
{[(X2 ⊞ K2)⊕( X4 ⊙ K4)] ⊞ {[(X1 ⊙ K1) ⊕ (X3 ⊞ K3)]
⊙ K5}⊙ K6}}

(X4 ⊙ K4) ⊕ {
{[(X1 ⊙ K1) ⊕ (X3 ⊞ K3)] ⊙ K5}

{[(X2 ⊞ K2)⊕( X4 ⊙ K4)] ⊞ {[(X1 ⊙ K1) ⊕ (X3 ⊞ K3)]
⊙ K5}⊙ K6}
}
Cột này không cần viết vào bài làm đâu. Tôi viết vào bản
worrd này cho ngầu thôi.

Trịnh Tuấn Cường


 Giải thuật IDEA với đầu vào là khối X 64 bit được chia thành 4 khối
X1,X2,X3,X4; mỗi khối Xi 16bit.
 Trải qua 2 quá trình chính:
o 8 vòng đầu được xử lý và tất cả các khóa con được nhận từ K (K1-K6).
 Kết quả của vòng r là đầu vào của vòng r+1 và lặp lại đến hết
vòng thứ 8.
 Kết quả xử lý sau khi chạy 8 vòng đầu là input của các khối
Y1,Y2,Y3,Y4 để xử lý vòng cuối cùng (vòng 9).
o Kết quả sau vòng 9 là cụm mã 4 khối Y={Y1,Y2,Y3,Y4} 64(bit) chính
là bản mã ta cần.

Trịnh Tuấn Cường


14.Phân tích về các yêu cầu trong quá trình sinh khóa của giải thuật mã hóa
Elgamal.
 Trước khi tiến hành mã hóa, người nhận sẽ thực hiện công việc sinh khóa để
phục vụ cho quá trình giải mã của mình.

o Chọn số nguyên tố p đủ lớn (>=1024 bit).
 Số bit càng lớn (hơn 1024bit) tránh bị tấn công dự đoán thông
qua phép toán modulo.
o Chọn ngẫy nhiên e1; sao cho e1 thuộcZ(p)* là phần tử nguyên thủy.
 Phần tử này phải là số nguyên tố dương. Vì độ an toàn của
Elgamal phần lớn phụ thuộc vào độ khó của việc tính toán số
nguyên tố. kết hợp với modulo.
o Chọn d sao cho 1 d nằm trong khoảng (1,p-1) vừa đảm bảo đủ an toàn và không
quá khó cho việc tạo khóa e2. Và nếu d >= 1-p thì phép tính mod
p sẽ gây tác dụng ngược.
o Tìm e2 sao cho e2 =e1^d mod p.
 Kết luận: Như vậy khóa công khai sẽ là (e2; e1; p); khóa bí mật sẽ là d. Người
nhận sẽ công khai tham số (e2; e1; p)
15. Định nghĩa thám mã tuyến tính? ưu điểm và nhược điểm của kỹ thuật
thám mã tuyến tính?
15.1 Khái niệm
 Là một phương pháp thám mã đã biết bản rõ. Lợi dụng mối quan hệ tuyến tính
giữa đầu vào và đầu ra của một hệ mã để thực hiện thám mã.
 Cách tiếp cận:
o Phân tích các thành phần phi tuyến tính và ước lượng bằng biểu diễn
xấp xỉ thành phần.
o Kết hợp các biễu diễn xấp xỉ thành phần thành xấp xỉ tuyến tính toàn hệ
mã.
o Biểu thức xấp xỉ tuyến tính gồm các bit bản rõ, bit bản mã, bit khóa.
15.2
Ưu nhược điểm.
Ưu điểm
 Áp dụng các biểu thức các
phép toán xấp xỉ, lân cận

tuyến tính -> dễ tính toán và
thực hiện.
 Tấn công được Hệ mật Des
dựa vào điểm yếu của S-box.

Nhược điểm
 Thám mã tuyến tính không
khả thi trong thực tế.
 Phụ thuộc vào điểm yếu của
S-box(tính phi tuyến để đưa
về tuyến tính) cần nhiều bản
rõ để tấn công.
Trịnh Tuấn Cường


 Hiệu quả hơn và tiết kiệm
thời gian tấn công Vét cạn rất
nhiều.

 Mất thời gian trong khâu tìm
điểm yếu và thu thập các bản
rõ cần thiết trước thi thực hiện
thám mã.

16.Quy trình trao đổi thỏa thuận khóa Diffie – Hellman trên đường cong
Elliptic? lấy ví dụ minh họa?
16.1 Ý tưởng
 Ý tưởng bái toán liên quan đến việc kết hợp màu.
o Mỗi bên chọn ra một màu chung(khóa chung). Và một màu riêng (khóa
riêng).

o Alice trộn màu chung với màu riêng của mình: vàng + đỏ = cam.
o Bob trộn màu chung với màu riêng của anh ta: vàng + lục = xanh
dương.
o Alice và Bob trao đổi màu sau khi trộn lần 1 cho nhau.
 A trộn màu mà Bob gửi với màu riêng của mình: vàng + lục + đỏ
= tràm.
 Bob trộn màu màu mà Alice gửi với màu riêng của anh ta: vàng +
đỏ + lục = tràm.
o Kết thúc quá trình trao đổi. cả 2 bên đều có màu giống nhau:
 vàng + đỏ + lục = tràm.
16.2
Quy trình trao đổi khóa.
Chọn Ep(1,4) với điểm nguyên thủy P(2,1) làm ví dụ.
 Alice chọn khóa bí mật x thỏa mãn 1khai P(2,1) rồi gửi cho Bob.
o Ví dụ x = 3.
o xP = 3P => Bob nhận đc 3P .
 Bob chọn khóa bí mật y thỏa mãn 1khai P(2,1). Rồi gửi cho Alice.
o Ví dụ y =4
o yP = 4P => Alice nhận đc 4P.
 Sau đó:
o Alice trộn tiếp yP vừa nhận được từ Bob với khóa bí mật x của mình:
x(yP) = 3(4P) = 12P(9,1).
o Bob trộn tiếp xP vừa nhận được từ Alice với khóa bí mật y của mình:
y(xP) = 4(3P) = 12P(9,1).
Trịnh Tuấn Cường