You are on page 1of 17

1. Quy trình mã hóa của giải thuật mã hóa RC6?

vẽ sơ đồ minh họa

Bước 1: Đầu tiên bản rõ chia thành 4 từ A, B, C, D


RC6 làm việc với 4 từ w bit chứa dữ liệu ban đầu cũng như dữ liệu mã hóa đưa ra
cuối quy trình mã hóa.
Giả sử văn bản gốc là là pt[4] {00000000, 00000000, 00000000, 00000000}
w = 32 bit, lúc này sẽ gán A = pt[0], B = [1], C = [2], D = [3].
Do pt có kích thước 32 bit nên A,B,C,D được khởi tạo với 32 bit nhưng chỉ
được gán cho 8 bit đầu tiên, các bit tiếp theo sẽ được thêm vào trong các vòng lặp.
Trong giai đoạn này 2 từ A,C được giữ nguyên để đi vào vòng lặp; B,D sẽ thực
hiện phép biến đổi:
B= (B+ K 0)mod 232
D= (D+ K 1 )mod 232
Trong đó: K 0; K 1 là 2 khóa đầu tiên của khóa mã hóa ban đầu.
Bước 2: Thực hiện r = 20 vòng lặp liên tục gồm:
 Đặt t= f(B)<<< lgw = lg32 = 5
 Đặt u= f(D)<<< lgw = lg32 = 5
 hàm f có dạng: f(x)= x(2x+1) mod 232
• A=((A XOR t)<<<u)+ K 2 i mod 232; i= 1...20;
• C=((C XOR u)<<<t)+ K 2 i+1 mod 232; i= 1...20
Sau mỗi chu kỳ, quay 4 từ về bên trái 1 vị trí {A, B, C, D} = {B, C, D, A} và tiếp
tục chu kỳ kế tiếp.
Bước 3: Sau khi thực hiện xong 20 chu kỳ, cộng thêm K 2 i+2 vào A; K 2 i+3 vào C.
2. Quy trình trao đổi khóa sử dụng KTC và KDC, máy chủ không trực tuyến và
chứng chỉ.

- A gửi yêu cầu muốn trao đổi dữ liệu với B cho


KDC, chứa định danh của A và B
- KDC tạo ra 1 khóa bí mật k AB và mã hóa thành
2 bản. rồi gửi về cho A.
A giải mã 1 bản bằng khóa bí mật k lấy được k AB .
Và A gửi bản còn lại cho B. B giải mã bằng khóa
k B lấy được k AB
- A và B trao đổi dữ liệu với nhau bằng k AB .
Kết thúc quá trình trao đổi dữ liệu, k AB sẽ được
hủy bỏ. Nếu lần sau A muốn trao đổi DL với B thì
KDC sẽ tạo ra 1 khóa k AB khác.

- A mã hóa thông điệp bí mật k AB cùng với số


định danh của B bằng khóa k AT , rồi gửi cho T
thông điệp cùng với số định danh của mình
- T nhận được thông điệp từ A, sau đó T giải
mã thông điệp, xác định được đây là thông tin
A cần gửi cho B. T sử dụng khóa k BT để mã
hóa thông điệp rồi gửi lại thông điệp đã mã
hóa này cho A để A chuyển cho B
- Sau khi B nhận được thông điệp từ A, B
giải mã thông điệp sử dụng khóa k BT để có
đượck AB
 Kq: A và B sử dụng k AB để trao đổi dữ
liệu với nhau
- Đầu tiên, A mã hóa khóa k AB và định danh của
B(người nhận) sử dụng khóa kAT và gửi thông điệp
kèm chứng chỉ khóa đối xứng SCrertA và SCrertB
Bước 2: KTC nhận được thông điệp từ A, KTC giải
mã ScrertA và ScrertB bằng k T lấy được k AT , k BT
KTC giải mã C1 bằng k AT nhận được B và k AB . Đồng
thời T kiểm tra định danh của B có trùng với định
danh lưu trong ScrertB hay không
Nếu có KTC mã hóa k AB bằng k BT
- B sau khi nhận được thông điệp từ A hoặc T, B giải
mã thông điệp sử dụng khóa k Bđể có k AB .
 Kq: A và B sử dụng k AB để trao đổi dữ liệu với
nhau

- Mô hình trao đổi khóa công khai thông qua sử dụng một máy chủ không trực
tuyến và chứng chỉ

- A gửi định danh ID A và khóa công khai K UA đến CA


CA kiểm tra tính hợp lệ của A. Nếu đúng thì CA cấp 1 ch ứng ch ỉ C A để xác
nhận khóa công khai K UA đó tương ứng với ID A . Chứng chỉ được chứng thực
bằng khóa riêng của trung tâm để bảo đảm rằng nội dung của chứng chỉ là do
trung tâm ban hành. K RAuth
- A công khai chứng chỉ C A
- B muốn trao đổi thông tin với A thì sẽ giải mã C A bằng khóa công khai của
trung tâm chứng thực để có được khóa công khai K UA của A. Nếu B tin tưởng
trung tâm chứng thực thì B sẽ tin tưởng rằng K UA là khóa công khai của A.

3. Phép cộng trên đường cong Elliptic? lấy ví dụ minh họa?


- Phép cộng trên đường cong Elliptic:

- Theo khía cạnh hình học:


P ≠ O, Q ≠ O, P ≠ Q (Nếu P trùng Q, đt a là tiếp tuyến với đường cong elliptic
tại điểm P)
 Kẻ đường thẳng a đi qua 2 điểm P và Q
 Đt a cắt đường cong elliptic tại điểm -R = -(P+Q), -R(x,y)
 Lấy đối xứng giao điểm qua trục Ox ta được điểm R = (P+Q), R(x,-
y)
- Theo khía cạnh đại số: P ≠ O, Q ≠ O, P ≠ Q

- Ví dụ:
4. Quy trình giải mã của thuật mã hóa RC6? Vẽ sơ đồ minh họa

Quy trình giải mã của giải thuật mã hóa RC6:


Đầu tiên, thanh ghi C trừ module với khóa K2i+3, K2i+3 là K43, thanh ghi A trừ
module với khóa K2i+2 tương ứng với K42 . Sau đó với mỗi vòng giải mã i thực hiện như
sau:
- Thực hiện phép gán vế phải từ vế trái: A = D, B = A, C = B, D = C.
- Tính giá trị D(2D + 1), kết quả thu được dịch trái lg32 bit thu được u.
- Tính giá trị B(2B + 1), kết quả thu được dịch trái lg32 bit thu được t.
- Thực hiện tính C trừ module với khóa K 2i+1, kết quả thu được dịch phải t bit, kết
quả sau khi dịch bit XOR với u rồi lưu vào thanh ghi C.
- Thực hiện A trừ module với khóa K 2i, kết quả thu được dịch phải u bit, kết quả
sau khi dịch bit XOR với t rồi lưu vào thanh ghi A.
- Cuối cùng, thực hiện lấy thanh ghi D trừ module với khóa K 1, thanh ghi B trừ
module với khóa K0. Quá trình giải mã kết thúc, bản rõ thu được nằm trong 4 thanh ghi
theo thứ tự A, B, C, D.
5. Quy trình mã hóa của giải thuật mã hóa Rabin trong trường hợp
q≈ p≡3 mod 4 ? lấy ví dụ minh họa
Bước 1: Quy trình tạo khóa: Để tạo ra khóa người nhận cần phải thực hiện các thao
tác sau:
1. Chọn 2 số nguyên tố ngẫu nhiên p và q, thỏa mãn điều kiện sau: p  q . Chú ý rằng,
việc chọn p, q có thể là bất kỳ, tuy nhiên để thuận tiện cho quá trình giải mã thì có thể
chọn p, q thỏa mãn q  p  3mod 4 .
2. Tính tích n = p  q .
3. Chọn số ngẫu nhiên b *  Z n .
4. Sử dụng n làm khóa công khai và cặp (p, q) làm khóa mật.
Bước 2: Quy trình mã hóa: C = M 2 mod n. M là bản rõ ban đầu trong khoảng [0, 1,
2… n-1].
Bước 3: Quy trình giải mã: Như đã trình bày trong bước 1 về việc lựa chọn tham số
q, p. Theo đề bài, ta chọn trường hợp: q  p  3 mod 4
Trong trường hợp này, để tính căn bậc hai của (C modul n) thì cần tính các giá trị m1,
m2, m3, m4 từng cặp lần lượt là căn bậc hai của C modul p và C modul q. Theo [2, 3]
các các giá trị m1, m2, m3, m4 được tính như trình bày dưới đây:
m 1 = C( p+1 )/ 4 mod p
m2 = (p - C( p+1 )/ 4) mod p
m3 = C(q +1)/ 4 mod q
m4 =(q - C(q +1)/ 4 ) mod q
Để tìm được 4 nghiệm của √𝐶 mod n, lấy a = q(q−1 mod p) với q(q−1 mod p) ≡1 mod
p, và b = p( p−1mod q) với p( p−1mod q) ≡ 1 mod q, rồi tính theo công thức dưới đây:.
M 1 = (a. m1 + b. m3)mod n
M 2 = (a. m1 + b. m4 )mod n
M 3 = (a. m2 + b. m3)mod n
M 4 = (a. m2 + b. m4 )mod n
Bốn giá trị M1, M2, M3, M4 chính là 4 khả năng có thể của bản rõ cần tìm.
Trong thực tế, để dễ dàng cho việc tính căn bậc hai của bản mã theo các modul
nguyên tố, thì các số nguyên tố được chọn đồng dư với 3 modul 4.
Ví dụ 1: Cho p = 11, q = 7, M = 32. Thực hiện mã hóa, sau đó tiến hành giải mã bản
rõ M sử dụng thuật toán Rabin.
Cách thức thực hiện:
Có n = pq = 11 x 7 = 77
C = encode(32) = 322 mod 77 = 23
Nhận thấy q  p  3mod 4
Tính được m1 = 233 mod 11 = 1
m2 = (11 - 1) mod 11 = 10
m3 = 232 mod 7 = 4
m4 = (7 - 4) mod 7 = 3
Có q(q−1 mod p) ≡ 1 mod p, nên a = 7 x 8 = 56 ≡ 1 mod 11
Tương tự b = 11 x 2 = 22 ≡ 1 mod 7
Từ đó tính được M1 = 67, M2 = 45, M3 = 32, M4 = 10.
Kết quả đúng sẽ là M3
6. Phép nhân trên đường cong Elliptic? lấy ví dụ minh họa?
- Theo hình học:
Vẽ tiếp tuyến b với đường cong E tại điểm P, điểm -R là giao điểm còn lại của
E với đt b và R = 2P = P + P

- Theo đại số:

7. Quy trình trao đổi khóa của (Two-way Authentication) trong X.509 ?
- Xác thực hai chiều (Two-way Authentication) – Xác thực thực thể với tem thời
gian

- Chứng chỉ xác thực khóa công khai X.509


- Quá trình trao đổi khóa xác thực 2 chiều trong X.509:
A B

A tạo
(1)
C1 =

k A =D(cert A )

D A =D(S A ( D A ) , k A )

PB ( k 1 ) ¿ B , t A ,t B =D( D A )

k 1= D( PB ( k 1 ) , k B)

B tạo
(2)
C2 =

cert A =¿ k A ¿ A ; cert B=¿ k B ¿ B

8. Quy trình mã hóa và giải mã của giải thuật mã hóa Elgamal? ví dụ minh họa
cho quá trình mã hóa và giải mã?
Bước 1: Sinh khóa: Người nhận sẽ thực hiện các công việc sau để sinh ra khóa phục vụ
cho quá trình mã hóa và giải mã:
 Chọn số nguyên tố p đủ lớn (từ 1024 bit trở lên);
¿
 Chọn số ngẫu nhiên e 1; sao cho e 1  Z p là phần tử nguyên thủy.
 Chọn d sao cho 1<d<p-1;
 Tìm giá trị e 2 sao cho e 2 =e 1 mod p;
d

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)
Bước 2: 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:
 Chọn thông điệp mã hóa (M)
 Chọn số ngẫu nhiên r;
 Tính C 1= e 1 mod p;
r

 Tính C 2= (e 2 * P) mod p = (e 1 ∗P ) mod p.


r rd

Kết luận: sau khi mã hóa xong, bản mã sẽ là C1 và C2 và cặp bản mã này sẽ được người
gửi gửi cho người nhận qua kênh công cộng.
Bước 3: giải mã: người nhận, sau khi nhận được cặp bản mã C1 và C2 sẽ thực hiện giải
mã bản mã để tìm ra được thông điệp. Quá trình giải mã như sau:
d r d rd
 Tính Z = (C 1) = (e 1) = e 1 mod p
rd −1
 Tính giá trị nghịch đảo của Z: Z−1 = (e 1 ) mod (p)
d −1
 Giải mã theo bản mã: M = (C ¿ ¿ 2∗Z−1) ¿ mod (p) = ¿ * (C 1 ) ) mod p
Kết luận: sau khi giải mã xong thì người nhận sẽ tìm ra được thông điệp ban đầu.
Ví dụ: chọn p=11; M=7; e 1=2; d= 3; tính được e 2= 8.
Từ đây được cặp khóa công khai như sau: (2, 8, 11), khóa bí mật (3).
Người nhận chọn r = 4.
Áp dụng công thức ở trên tính toán được cặp bản mã như sau:
C 1= e r1 mod p = 16 mod 11 = 5
C 2= (e r2 M ) mod p = (7*4096) mod 11= 6.
Vậy cặp bản mã là (5, 6).
Người nhận sau khi nhận được cặp bản mã (C1; C2) tiến hành giải mã như sau:
M= C 2 * (C d1 )−1) mod p = [6 * (53 )−1] mod 11 = 7
Lưu ý: Từ quá trình mã hóa và giải mã của giải thuật mã hóa Elgamal có thể thấy một số
vấn đề trong giải thuật Elgamal như sau: Trong giải thuật mã hóa Elgamal người nhận tạo
ra 1 khóa bí mật d và người gửi cũng tạo ra 1 khóa bí mật r. Người gửi đã giúp người
nhận tạo ra mặt lạ rd e1 để giấu đi r và d. Nếu một trong 2 tham số r và d bị lộ ra thì giải
thuật mã hóa Elgamal không còn được an toàn. Vì nếu d bị lộ thì thông điệp bị lộ, nếu r
bị lộ thì thông điệp bị giả mạo.
9. Hàm g trong giải thuật mã hóa Twofish? vẽ sơ đồ minh họa quá trình biến
đổi trong hàm g của giải thuật mã hóa Twofish?
- Hàm g trong giải thuật mã hóa Twofish:
Đầu vào 32bit, đầu ra 32bit
Từ dữ liệu đầu vào 32 bit, chia thành 4 khối mỗi khối 8bit = 4 byte. 4 byte này
sẽ đi vào các hàm S–box. Sau khi qua hàm S–box với các quá trình biến đổi sẽ
thu được 8 bit kết quả trên mỗi S–box. Sau đó bốn byte kết quả được xem như
một vector có chiềudài bằng 4 trên GF(28) và vector này nhân với ma trận có
kích thước (4 × 4) MDS (sử dụng vùng GF(28) cho việc tính toán). Vector kết
quả được xem như một từ 32 bit và nó cũng là kết quả của hàm g.

- Như vậy, trong hàm g có các thành phần chính là :


+ Ma trận MDS(4x4)
+ S-box: là hàm biến đổi rất quan trọng và được coi là “trái tim” của giải thuật
mã hóa Twofish.
10. 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
Rabin?
Bước 1: Quy trình tạo khóa: Để tạo ra khóa người nhận cần phải thực hiện các thao
tác sau:
1. Chọn 2 số nguyên tố ngẫu nhiên p và q, thỏa mãn điều kiện sau: p  q . Chú ý rằng,
việc chọn p, q có thể là bất kỳ, tuy nhiên để thuận tiện cho quá trình giải mã thì có thể
chọn p, q thỏa mãn q  p  3mod 4 .
2. Tính tích n = p  q .
3. Chọn số ngẫu nhiên b *  Z n .
4. Sử dụng n làm khóa công khai và cặp (p, q) làm khóa mật.
Bước 2: Quy trình mã hóa: C = M 2 mod n. M là bản rõ ban đầu trong khoảng [0, 1,
2… n-1].
Bước 3: Quy trình giải mã: Như đã trình bày trong bước 1 về việc lựa chọn tham số
q, p. Có 2 phương pháp lựa chọn q, p, chính vì vậy, khi giải mã cũng xảy ra 2 trường
hợp:
Trường hợp 1: q, p bất kỳ:
Việc mã hóa theo giải thuật Rabin cho bản mã C dựa trên bản rõ M với khóa công
khai
n theo công thức C = M 2 mod n. Vì vậy, để tìm lại M cần tính √ C mod n.
Để hiểu rõ hơn về cách thức tính √ C mod n. Trước tiên, hãy tìm hiểu thuật toán được
đề xuất từ tài liệu tham khảo [2]:
Thuật toán: tìm căn bậc hai của số nguyên a, thuộc trường p, với p là một số nguyên
tố
¿
Đầu vào: số nguyên tố p; số thặng dư bậc hai a ∈ Z p
Đầu ra: Căn bậc hai của a
 Nếu p ≡ 3 mod 4:
Kết quả: a( p+1)/ 4 mod p và −a( p+1 )/ 4 mod p
 Nếu p ≡ 1 mod 4:
Chọn b là số không phải thặng dư bậc hai modul p.
p−1
Tìm l và m là số lẻ thỏa mãn 2l . m =
2
Đặt r = 2l.m và r = 0.
Thực hiện theo các bước trong giả code dưới đây:
Duyệt i chạy giảm dần từ l trở về 1
{
r = r/2, r’ = r ’ /2
Nếu a r .b r ' ≡ -1 mod p
Thì r’ = r’ + 2.l.m
}
Kết quả: a(r +1)/ 2. b r /2 mod p
Tiếp theo, để tính căn bậc hai của (C modul n) bất kỳ, người tính toán tách C thành 2
phần, sao cho mỗi phần đều có thể tính được căn bậc hai, theo modul nguyên tố. Cụ
thể như sau:
- Tính C p= C mod p và C q = C mod q
- Dùng thuật toán trên, tính căn bậc hai x p của C p và căn bậc hai x q của C q
¿ ¿ ¿
- Chuyển ( x p, x q) ∈ Z p . Z q về x ∈ Z n với x ↔ ( x p, x q).
Kết quả: 4 khả năng nghiệm x tương ứng với 4 khả năng có thể của bản rõ cần tìm.
Tính đúng đắn của quá trình tính toán trên dựa trên Định lý số dư Trung Hoa đã được
trình bày ở phần đầu thuật toán Rabin.
Trường hợp 2: q  p  3 mod 4
Trong trường hợp này, để tính căn bậc hai của (C modul n) thì cần tính các giá trị m1,
m2, m3, m4 từng cặp lần lượt là căn bậc hai của C modul p và C modul q. Theo [2, 3]
các các giá trị m1, m2, m3, m4 được tính như trình bày dưới đây:
m 1 = C( p+1 )/ 4 mod p
m2 = (p - C( p+1 )/ 4) mod p
m3 = C(q +1)/ 4 mod q
m4 =(q - C(q +1)/ 4 ) mod q
Để tìm được 4 nghiệm của √𝐶 mod n, lấy a = q(q−1 mod p) với q(q−1 mod p) ≡1 mod
p, và b = p( p−1mod q) với p( p−1mod q) ≡ 1 mod q, rồi tính theo công thức dưới đây:.
M 1 = (a. m1 + b. m3)mod n
M 2 = (a. m1 + b. m4 )mod n
M 3 = (a. m2 + b. m3)mod n
M 4 = (a. m2 + b. m4 )mod n
Bốn giá trị M1, M2, M3, M4 chính là 4 khả năng có thể của bản rõ cần tìm.
Trong thực tế, để dễ dàng cho việc tính căn bậc hai của bản mã theo các modul
nguyên tố, thì các số nguyên tố được chọn đồng dư với 3 modul 4.
Ví dụ 1: Cho p = 11, q = 7, M = 32. Thực hiện mã hóa, sau đó tiến hành giải mã bản
rõ M sử dụng thuật toán Rabin.
Cách thức thực hiện:
Có n = pq = 11 x 7 = 77
C = encode(32) = 322 mod 77 = 23
Nhận thấy q  p  3mod 4
Tính được m1 = 233 mod 11 = 1
m2 = (11 - 1) mod 11 = 10
m3 = 232 mod 7 = 4
m4 = (7 - 4) mod 7 = 3
Có q(q−1 mod p) ≡ 1 mod p, nên a = 7 x 8 = 56 ≡ 1 mod 11
Tương tự b = 11 x 2 = 22 ≡ 1 mod 7
Từ đó tính được M1 = 67, M2 = 45, M3 = 32, M4 = 10.
Kết quả đúng sẽ là M3
11. Quy trình Trao đổi thỏa thuận khóa Omura – Massey trên đường cong
Elliptic? lấy ví dụ minh họa?
- Tạo khoá:
+ Hai bên liên lạc chọn trước nhóm E p (a , b) làm khóa công khai
+ Khóa bí mật:
 Alice chọn ngẫu nhiên 2 số m, n làm khóa bí mật m + n =# E p (a , b)
 Bob chọn ngẫu nhiên 2 số u, v làm khóa bí mật u + v =# E p (a , b)
- Quy trình trao đổi và thỏa thuận
Giả sử Alice muốn gửi tin cho Bob. Qúa trình tính toán và trao đổi được thể hiện qua
bảng sau:
Alice Gửi Bob
Bí mật Tính Bí mật Tính
m+n= # (mP + M) (mP + M) → u+v=# E p (a , b)
E p (a , b)
 (mP + M ) (mP + M ) +
+ uP uP
[(mP+M)+uP]+nP M + uP →
= M+uP
(M + uP) +
vP = M
Ví dụ:
+ Khóa công khai: E p (a , b)= E13 (1 , 4)
+ Khóa bí mật:
 Alice chọn ngẫu nhiên 2 số (m, n) = (4,10) làm khóa bí mật m + n = 14 = #
E13 (1 , 4)
 Bob chọn ngẫu nhiên 2 số (u, v) = (6, 8) làm khóa bí mật u + v = 14 = #
E13 (1 , 4)
Quá trình tính toán và trao đổi giữa người gửi và người nhận được thể hiện qua bảng
Alice (người gửi) Bob (người nhận)
Alice tính mP + M = 4P + 3P = 7P(10,0) Bob nhận 7P(10,0) và tính
và gửi cho Bob 7P + 6P =13P(2,12)
Và gửi lại Alice
Alice nhận 13P(2,12) và tính 13P +10P = Bob nhận 9P(8,2) và tính ra khoá dung
9P(8,2) chung:
Alice gửi cho Bob 9P(8, 2). 9P + 8P = 3P(5,11) = M

12. Quy trình mã hóa của giải thuật mã hóa Serpent? Hình vẽ tương ứng

Giải thuật mã hóa Serpent gồm 3 phần chính: Hoán vị khởi tạo IP (Initial
Permutation); 32 vòng lặp của thuật toán mã hoá; Hoán vị kết thúc FP.
- Hoán vị khởi tạo và hoán vị kết thúc: Hoán vị khởi tạo IP sẽ thực hiện biến đổi
128 bit bản rõ P thành 128 bit ^ B0, ^
B0 chính là đầu vào của vòng lặp đầu tiên trong
32 vòng lặp mã hoá. Hoán vị kết thúc FP sẽ thực hiện biến đổi 128 bit ^ B32 (đầu ra
của vòng lặp cuối cùng) thành 128 bit bản mã C. Giá trị đầu vào của IP là khối P
có kích thước 128 bit 𝑏0 , 𝑏1 , 𝑏2 , …, 𝑏127. Hoán vị khởi tạo IP sẽ thực hiện biến
đổi giá trị các bit theo nguyên tắc sau:
𝑏0 , 𝑏1 , 𝑏2 , …, 𝑏127 → 𝑏0 , 𝑏32, 𝑏64,… , 𝑏127
Giá trị đầu ra sau khi lặp 32 vòng là khối ^ B32 có kích thước 128bit 𝑏0,𝑏1,𝑏2,…,𝑏127.
Hoán vị kết thúc FP là hoán vị nghịch đảo của hoán vị khởi tạo IP và sẽ thực hiện
biến đổi giá trị các bit của 𝐵̂32 theo nguyên tắc sau và cho bản mã C:
𝑏0 , 𝑏1 , 𝑏2 , …, 𝑏127 → 𝑏0 , 𝑏4, 𝑏8,… , 𝑏127
Các vòng của Serpent:
 Trộn khoá (key mixing): Trong giải thuật mã hóa Serpent phép trộn khóa
sẽ sử dụng phép XOR giữa 2 giá trị 128 bit ^ Bi ⊕ ^K i trong đó i ∈ {0, 1, 2,
…, 31, 32}, ^K i là khoá vòng thứ i, các khóa vòng này sẽ được sinh ra từ
khóa K ban đầu.
 S-boxes: S-box là hộp thế trong Serpent là một phép thay thế 4 bit. Nghĩa
là nó sẽ nhận đầu vào là 1 số nguyên 4 bit và cho ra 1 số nguyên 4 bít khác.
Có tổng cộng 8 S-box được đánh số 𝑆0, 𝑆1, …, 𝑆7.
13. 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?
14. Đị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. 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?
- Ví dụ:
- Quy trình trao đổi thỏa thuẩn Diffie-Hellman trên đường cong Elliptic
Xét nhóm E P (a , b) trên đường cong E và P là điểm nguyên thủy P ∈ E P (a , b)

Chọn Chọn

C A=xP

C B= yP

x(yP) y(xP)

xyP K yxP

You might also like