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

Giải đề cương Mật Mã Học Cơ Sở 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 (877.53 KB, 28 trang )

1. Hãy định nghĩa tấn công chỉ biết bản mã (ciphertext-only
attack)....................................................................................................................................1
2. Hãy định nghĩa tấn công biết bản rõ (know-plaintext attack).....2
3. Hãy định nghĩa tấn công bản rõ chọn sẵn ( choosen-plaintext
attack)....................................................................................................................................2
4. Hãy định nghĩa về Tấn công bản-mã-chọn-sẵn (chosenciphertext attack)? Lấy ví dụ minh họa về cuộc tấn công này?.........3
5. Hãy trình bày và giải thích các yêu cầu cơ bản trong thủ tục
sinh khóa trong giải thuật mã hóa RSA?..........................................................3
6. Hãy mô tả cấu trúc khối Feistel ? Hãy vẽ sơ đồ mã hóa theo
nguyên tắc cấu trúc khối Feistel ?........................................................................4
7. Hãy mô tả các bước mã hóa RC4?..................................................................5
8. Hãy mô tả các bước của giải thuật mã hóa A5/1?...............................6
9. Hãy trình bày về các phương pháp phân loại hàm băm? Hãy
nêu tên của các hàm băm theo các phương pháp phân loại đó?.......7
10. Hãy trình bày về định nghĩa về hàm băm? Hãy nêu các tính
chất cơ bản của hàm băm và lấy ví dụ minh họa cho các tính chất
đó. 8
11. Hãy trình về quá trình xử lý thông điệp của hàm băm MD5?
Hãy vẽ sơ đồ minh họa về quá trình xử lý thông điệp của hàm băm
MD5?.....................................................................................................................................10
12. Hãy trình bày tổng quan về quá trình xử lý thông điệp của
SHA1? Hãy vẽ sơ đồ minh họa về về quá trình xử lý thông điệp của
SHA1?...................................................................................................................................12
13. Hãy trình bày sơ lược một số ứng dụng trong hiện tại của
Pretty Good Privacy (PGP)?....................................................................................13
14. Hãy trình bày ứng dụng cụ thể Smart Cards cho điện thoại di
động?....................................................................................................................................14
15. Hãy trình bày sơ lược về chức năng cung cấp các dịch vụ an
ninh mạng của Kryptoknight.................................................................................15
16. Hãy trình bày về quy trình hoạt động Kerberos.............................17
17. Hãy trình bày các bước cơ bản trong giải thuật mã hóa DES?


Hãy vẽ sơ đồ minh họa cho quá trình mã hóa của giải thuật DES?18
18. Hãy trình bày các bước cơ bản trong giải thuật mã hóa AES?
Hãy vẽ sơ đồ minh họa cho quá trình mã hóa của giải thuật AES? 20
19. Hãy trình bày các bước cơ bản trong giải thuật mã hóa RSA?
Hãy lấy ví dụ minh họa về quá trình mã hóa của giải thuật RSA?
Hãy nêu các yêu cầu cơ bản trong quá trình sinh khóa của giải
thuật RSA..........................................................................................................................22

MẬT MÃ HỌC CƠ SỞ

1


20. Hãy trình bày về ưu điểm và nhược điểm của giải thuật mã
hóa khóa bí mật? Hãy trình bày và vẽ sơ đồ minh họa về quá trình
mã hóa của giải thuật mã hóa DES? Hãy vẽ sơ đồ minh họa quá
trình giải mã của giải thuật mã hóa DES?.....................................................23

Đề cương ôn tập
1. Hãy định nghĩa tấn công chỉ biết bản mã
(ciphertext-only attack)
- Người thám mã chỉ có thông điệp mã hóa. Họ có được bản
mã của một số thông điệp, tất cả đều được mã hóa bằng
các thuật toán mã hóa. Công việc của nhà thám mã là
khôi phục lại thông điệp của càng nhiều thông điệp càng
tốt, hoặc tốt hơn là suy ra được khóa (hoặc các loại khóa)
được sử dụng để mã hóa thông điệp, để từ đó giải mã các
thông điệp được mã hóa bằng các khóa tương tự.
- Ví dụ: WEP – Wired Equivalent Privacy – là giao thức bảo
mật đầu tiên cho Wifi, đã có nhiều cuộc tấn công thành

công, chứng tỏ giao thức WEP dễ bị tấn công, hầu hết
trong những cuộc tấn công đó, người tấn công chỉ biết bản
mã.
2. Hãy định nghĩa tấn công biết bản rõ (know-plaintext
attack)
- Nhà thám mã có được bản mã và thông điệp của thông
điệp. Công việc của họ lúc này là tìm được khóa (các
khóa) được dùng để mã hóa các thông điệp hoặc một
thuật toán để giải mã bất kì một tin nhắn nào được mã
hóa với cùng một khóa.
- Ví dụ: các dòng mật mã PKZIP các phiên bản cũ đã từng bị
tấn công, nếu kẻ tấn công có một tập tin zip mã hóa dưới
các phiên bản cũ của trình PKZIP, kẻ đó chỉ cần có một
phần của một trng các tập tin được mã hóa của các kho
lưu trữ để tiến hành các cuộc tấn công. Phần mềm miễn
phí được xuất bản hỗ trợ tấn công có khả năng tính toán
MẬT MÃ HỌC CƠ SỞ

2


riêng hoặc khóa bí mật cần thiết để giải mã các kho lưu
trữ đầy đủ thông tin. Để có được các tập tin được mã hóa,
một kẻ tấn công chỉ cần có thể timd kiếm các trang web
của tập tin zip có nguồn gốc để để xác định vị trí trong đó
là phù hợp, tự xây dựng một tệp văn bản thuần sử dụng
một tên tập tin từ các kho lưu trữ.
3. Hãy định nghĩa tấn công bản rõ chọn sẵn ( choosenplaintext attack)
- Người thám mã tạm thời có quyền truy xuất tới bộ mã hóa,
do đó nó có khả năng chọn thông điệp rã và xây dựng bản

mã tương ứng. hình thức này mạnh hơn việc thám mã khi
biết thông điệp vì người thám mã có thể lựa chọn các khố
thông điệp cụ thể để mã hóa, là những trường hợp có thể
mang lại nhiều thông tin về khá. Công việc của họ lúc này
là tìm được khóa (các khóa) được dùng để mã hóa các
thông điệp hoặc một thuật toán để giải mã bất kì một tin
nhắn mới nào mà được mã hóa với cùng một khóa.
- Ví dụ1: trong thế chiến thứ II chuyên gia mật mã của Hải
quân Mỹ phát hiện ra rằng Nhật Bản đang có kế hoạch tấn
công một vị trí gọi là ‘AF’. Họ tin rằng ‘AF’ có thể là đảo
Midway, bởi vì các địa điểm khác trong quần đảo Hawaii
có từ mã bắt đầu bằng ‘A’. để chứng minh giả thuyết của
họ rằng ‘AF’ tương ứng với đảo Midway họ yêu cầu lực
lượng Mỹ tại Midway gửi một thông điệp rõ về nguồn cung
thấp. Hải quân Mỹ chặn tin nhắn và ngay lập tức báo cáo
với cấp trên của mình rằng ‘AF’ là thấp trên mặt nước, xác
nhận giả thuyết của Hải quân và cho phép học đến vị trí
có hiệu lực của mình để giành chiến thắng.
4. Hãy định nghĩa về Tấn công bản-mã-chọn-sẵn
(chosen-ciphertext attack)? Lấy ví dụ minh họa về
cuộc tấn công này?
Thám mã với bản rõ được chọn (Chosen Plaintext attack)
(CPA) là mô hình tấn công để giải mã, trong đó thám mã có khả
năng chọn một bản rõ tùy ý và biết bản mã tương ứng. Điều
này có thể xảy ra khi thám mã chiếm được tạm thời máy lập
mã, với hệ mã hóa công khai điều này là hiển nhiên, vì biết
MẬT MÃ HỌC CƠ SỞ

3



được khóa công khai thì thám mã có thể mã hóa bất kỳ bản rõ
nào mà họ chọn.
Ví dụ: Phiên bản đầu của mật mã RSA đã bị tấn công bằng
cách này. Những kẻ tấn công có khả năng làm cho nạn nhân
giải mã 1 bản mã được lựa chọn và gửi cho anh ta kết quả.
Phân tích các bản mã được lựa chọn và các bản rõ tương ứng,
kẻ xâm nhập có thể đoán được khóa bí mật được sử dụng bởi
nạn nhân.
5. Hãy trình bày và giải thích các yêu cầu cơ bản trong
thủ tục sinh khóa trong giải thuật mã hóa RSA?
Mỗi người sử dụng đều có thể tạo ra một khóa RSA công khai và
một khóa bí mật tương ứng theo các bước sau:
1. Tạo 2 số nguyên tố lớn p và q ngẫu nhiên, có kích thước như
nhau.
2. Tính n = p*q và φ = (p-1)*(q-1).
3. Chọn ngẫu nhiên một nguyên tố e, 1< e < φ , thỏa mãn
gcd(e, φ ) = 1.
4. Sử dụng thuật toán Euclid mở rộng để tính số nguyên d duy
nhất, 1 < d < φ thỏa mãn ed ≡ 1(mod φ ).
5. Khi đó căp khóa công khai là(e,n) và cặp khóa bí mật là (d,n)
Số nguyên e và d được tạo ra trong thuật toán trên được gọi là
số mũ mã hóa và số mũ giải mã còn n được gọi là modulus của
RSA.
Việc tìm ra 2 số nguyên tố đủ lớn p và q thường được thực
hiện bằng cách thử xác suất các số ngẫu nhiên có độ lớn phù
hợp (dùng phép kiểm tra nguyên tố cho phép loại bỏ hầu hết
các hợp số). p và q còn cần được chọn không quá gần nhau để
phòng trường hợp phân tích n bằng phương pháp phân tích
Fermat. Ngoài ra, nếu p-1 hoặc q-1 có thừa số nguyên tố nhỏ

thì n cũng có thể dễ dàng bị phân tích và vì thế p và q cũng cần
được thử để tránh khả năng này.
Bên cạnh đó, cần tránh sử dụng các phương pháp tìm số
ngẫu nhiên mà kẻ tấn công có thể lợi dụng để biết thêm thông
tin về việc lựa chọn (cần dùng các bộ tạo số ngẫu nhiên tốt).
Yêu cầu ở đây là các số được lựa chọn cần đồng thời ngẫu nhiên
và không dự đoán được. Đây là các yêu cầu khác nhau: một số
MẬT MÃ HỌC CƠ SỞ

4


có thể được lựa chọn ngẫu nhiên (không có kiểu mẫu trong kết
quả) nhưng nếu có thể dự đoán được dù chỉ một phần thì an
ninh của thuật toán cũng không được đảm bảo.
6. Hãy mô tả cấu trúc khối Feistel ? Hãy vẽ sơ đồ mã
hóa theo nguyên tắc cấu trúc khối Feistel ?
Mô tả cấu trúc khổi Feistel: Mô hình do Horst Feistel đề
xuất, cũng là sự kết hợp các phép thay thế và hoán vị. Trong hệ
mã Feistel, bản rõ sẽ được biến đổi qua một số vòng để cho ra
bản mã cuối cùng:

 F là một hàm mã hóa dùng chung cho tất cả các vòng. Hàm F
đóng vai trò như là phép thay thế còn việc hoán đổi các nửa
trái phải có vai trò hoán vị. Bản mã C được tính từ kết xuất
của vòng cuối cùng: C = Cn = (Ln, Rn)
 Hệ mã Feistel có điểm quan trọng là việc chia các bản mã
thành hai nửa trái phải giúp cho hàm F không cần khả nghịch
(không cần có F-1). Mã hóa và giải mã đều dùng chiều thuận
của hàm F. Hàm F và thuật toán sinh khóa con càng phức tạp

thì càng khó phá mã. Ứng với các hàm F và thuật toán sinh
MẬT MÃ HỌC CƠ SỞ

5


khóa con khác nhau thì ta sẽ có các phương pháp mã hóa
khác nhau.
Sơ đồ mã hóa

7. Hãy mô tả các bước mã hóa RC4?
Cơ chế hoạt động của RC4 cũng giống như TinyRC4 với các đặc
tính sau:
- Đơn vị mã hóa của RC4 là một byte 8 bít.
- Mảng S và T gồm 256 số nguyên 8 bít
- Khóa K là một dãy gồm N số nguyên 8 bít với N có thể lấy
giá trị từ 1 đến 256.
- Bộ sinh số mỗi lần sinh ra một byte để sử dụng trong phép
XOR.
Hai giai đoạn của RC4 là:
Giai đoạn khởi tạo:
• /* Khoi tao day S va T*/
• for i = 0 to 255 do
• S[i] = i;
MẬT MÃ HỌC CƠ SỞ

6




















T[i] = K[i mod N];
next i
/* Hoan vi day S */
j = 0;
for i = 0 to 255 do
j = (j + S[i] + T[i]) mod 256;
Swap(S[i], S[j]);
next i
Giai đoạn sinh số:
i, j = 0;
while (true)
i = (i + 1) mod 256;
j = (j + S[i]) mod 256;
Swap (S[i], S[j]);

t = (S[i] + S[j]) mod 256;
k = S[t];
end while;

8. Hãy mô tả các bước của giải thuật mã hóa A5/1?.
Bộ sinh số gồm 3 thanh ghi X, Y, Z.
- Thanh ghi X gồm 19 bit, ký hiệu là (x0, x1, …, x18).
- Thanh ghi Y gồm 22 bit (y0, y1, …, y21).
- Thanh ghi Z lưu 23 bit (z0, z1, …, z22).

MẬT MÃ HỌC CƠ SỞ

7


Khóa K ban đầu có chiều dài 23 bít và lần lượt được phân bố
vào các thanh ghi: KXYZ .
Các bước quay X,Y,Z cụ thể như sau :

Cho ba bit x, y, z, ta định nghĩa một hàm maj(x, y, z) là hàm
“chiếm đa số”, nghĩa là nếu trong 3 bít x, y, z có từ hai bít 0 trở
lên thì hàm trả về giá trị 0, nếu không hàm trả về giá trị 1.
Tại bước sinh số thứ i, các phép tính sau được thực hiện: m =
maj(x8, y10, z10)
- If x8 = m then thực hiện quay X
- If y10 = m then thực hiện quay Y
- If z10 = m then thực hiện quay Z
Và bít được sinh ra là: s= x18+ y21+z22

MẬT MÃ HỌC CƠ SỞ


8


9. Hãy trình bày về các phương pháp phân loại hàm
băm? Hãy nêu tên của các hàm băm theo các
phương pháp phân loại đó?
 Phân loại hàm băm theo khóa sử dụng:
 Hàm băm không khóa (unkeyed): đầu vào chỉ là thông
điệp, các hàm băm dựa trên mật mã khối
Các hàm băm không khóa là hàm băm có dữ liệu đầu vào
chỉ là một thông điệp. Hàm băm không khóa có lớp con là lớp
chức năng MDC (modification detection code – mã phát hiện
sửa đổi). Các MDC được sử dụng để tạo ra ảnh đặc trưng
(representative image) của thông điệp đảm bảo sự toàn vẹn
của dữ liệu và thông điệp. Các MDC được chia làm hai lớp
hàm:
- OWHF (one-way hash function – hàm băm một chiều) có
nghĩa là với một mã băm biết trước, khó có thể tính
toán để tìm ra thông điệp đầu vào có mã băm bằng với
mã băm đã cho. Hàm băm một chiều thỏa mãn tính
chất: kháng tiền ảnh và kháng tiền ảnh thứ hai.
- CRHF (collision resistant hash function – hàm băm
kháng xung đột) có nghĩa là khó có thể tính toán để tìm
ra hai thông diệp khác nhau và có cùng giá trị mã băm.
Hàm băm kháng xung đột thỏa mãn tính chất: kháng
tiền ảnh thứ hai và kháng xung đột.
 Hàm băm có khóa (MAC): đầu vào gồm thông điệp và
khóa, dùng để xác thực thông báo : Hàm băm có khóa là
hàm băm ngoài thông điệp đầu ra còn có đầu vào khác là

một khoa bí mật (secret key), nếu không có khóa bí mật
này thì không thể băm thông điệp đầu vào theo đúng quy
định. Hàm băm có khóa có lớp con là MAC (message
authentication code – mã xác thực thông điệp).
 Phân loại hàm băm theo tính năng
 Mã phát hiện sửa đổi (MDC - Modification detection codes)
- MDC thường được sử dụng để tạo chuỗI đạI diện cho
thông điệp và dùng kết hợp với các biện pháp khác để
đảm bảo tính toàn vẹn của thông điệp;
- MDC thuộc loại hàm băm không khóa;
- Hai loại MDC:
 Hàm băm một chiều (OWHF - One-way hash functions):
MẬT MÃ HỌC CƠ SỞ

9


dễ dàng tính giá trị băm, nhưng khôi phục thông điệp từ
giá trị băm rất khó khăn;
 Hàm băm chống đụng độ CRHF - Collision resistant hash
functions): Rất khó tìm được 2 thông điệp trùng giá trị
băm.
 Mã xác thực thông điệp (MAC - Message authentication
codes)
- MAC cũng được dùng để đảm bảo tính toàn vẹn của
thông điệp mà không cần một biện pháp bổ sung khác;
- MAC là loại hàm băm có khóa: đầu vào là thông điệp và
một khóa.
10.
Hãy trình bày về định nghĩa về hàm băm? Hãy

nêu các tính chất cơ bản của hàm băm và lấy ví dụ
minh họa cho các tính chất đó.
+ Định nghĩa :
 Hàm băm là các thuật toán không sử dụng khóa để mã
hóa (ở đây ta dùng thuật ngữ “băm” thay cho “mã hóa”),
nó có nhiệm vụ “lọc” (băm) thông điệp được đưa vào theo
một thuật toán h một chiều nào đó, rồi đưa ra một bản
băm – văn bản đại diện – có kích thước cố định. Do đó
người nhận không biết được nội dung hay độ dài ban đầu
của thông điệp đã được băm bằng hàm băm.
 Giá trị của hàm băm là duy nhất, và không thể suy ngược
lại được nội dung thông điệp từ giá trị băm này
+ Tính chất:
Việc đưa hàm băm h vào dùng trong sơ đồ chữ ký số không làm
giảm sự an toàn của sơ đồ chữ ký số vì nó là bản tóm lược
thông báo – bản đại diện cho thông điệp – được ký chứ không
phải là thông điệp gốc. Điều cần thiết đối với h là cần thỏa mãn
một số tính chất sau để tránh bị giả mạo:
 Tính chất 1: Hàm băm h là không va chạm yếu.
Xét ví dụ truyền tin sau:
Đáng lẽ: thông tin phải được truyền đúng từ A đến B

MẬT MÃ HỌC CƠ SỞ

10


Nhưng: trên đường truyền, thông tin bị lấy trộm và bị thay đổi

- Người A gửi cho B (x, y) với y = sigK(h(x)). Nhưng trên

đường truyền, tin bị lấy trộm. Tên trộm, bằng cách nào đó
tìm được một bản thông điệp x’ có h(x’) = h(x) mà x’ x.
Sau đó, hắn đưa x’ thay thế x rồi truyền tiếp cho người B.
Người B nhận được và vẫn xác thực được thông tin đúng
đắn.
- Do đó, để tránh kiểu tấn công như trên, hàm h phải thỏa
mãn tính không va chạm yếu: Hàm băm h là không va
chạm yếu nếu khi cho trước một bức điện x, không thể
tiến hành về mặt tính toán để tìm ra một bức điện x’  x
mà h(x’) = h(x).
 Tính chất 2: Hàm băm h là không va chạm mạnh
- Xét một kiểu tấn công như sau: Đầu tiên, tên giả mạo
tìm ra được hai bức thông điệp x’ và x (x’  x) mà có
h(x’) = h(x) (ta coi bức thông điệp x là hợp lệ, còn x’
là giả mạo). Tiếp theo, hắn đưa cho ông A và thuyết
phục ông này kí vào bản tóm lược h(x) để nhận được
y. Khi đó (x’, y) là bức điện giả mạo nhưng hợp lệ.
- Để tránh kiểu tấn công này, hàm h phải thỏa mãn
tính không va chạm mạnh: Hàm băm h là không va
chạm mạnh nếu không có khả năng tính toán để tìm
MẬT MÃ HỌC CƠ SỞ

11


ra hai bức thông điệp x và x’ mà x  x’ và h(x) =
h(x’).
 Tính chất 3: Hàm băm h là hàm một chiều:
- Xét một kiểu tấn công như sau: Việc giả mạo các chữ ký
trên bản tóm lược z thường xảy ta với các sơ đồ chữ ký

số. Giả sử tên giả mạo tính chữ ký trên bản tóm lược z,
sau đó hắn tìm một bản thông điệp x’ được tính ngược
từ bản đại diện z, z = h(x’). Tên trộm thay thế bản
thông điệp x hợp lệ bằng bản thông điệp x’ giả mạo,
nhưng lại có z = h(x’). Và hắn ký số trên bản đại diện
cho x’ bằng đúng chữ ký hợp lệ. Nếu làm được như vậy
thì (x’, y) là bức điện giả mạo nhưng hợp lệ.
- Để tránh được kiểu tấn công này, h cần thỏa mãn tính
chất một chiều: Hàm băm h là một chiều nếu khi cho
trước một bản tóm lược thông báo z thì không thể thực
hiện về mặt tính toán để tìm ra thông điệp ban đầu x
sao cho h(x) = z .
11.
Hãy trình về quá trình xử lý thông điệp của hàm
băm MD5? Hãy vẽ sơ đồ minh họa về quá trình xử lý
thông điệp của hàm băm MD5?
 Mô tả thuật toán
- Đầu vào: là một thông điệp có độ dài tuỳ ý
- Đầu ra là một chuỗi có độ dài cố định là 128 bit.
- Thuật toán được thiết kế để chạy trên các máy tính 32
bit.
 Thuật toán: Thông điệp đầu vào có độ dài b bit bất kỳ.
Biểu diễn các bit dưới dạng như sau: m[0] m[1] m[2] ...
m[b-1]
- Bước1: Các bit gắn thêm : Thông điệp được mở rộng,
thêm bit vào phía sau sao cho độ dài của nó (bit) đồng
dư với 448 theo môđun 512. Nghĩa là thông điệp được
mở rộng sao cho nó còn thiếu 64 bit nữa thì sẽ có một
độ dài chia hết cho 512. Việc thêm bit này được thực
hiện như sau: Một bit ‘1’ được thêm vào sau thông

điệp , sau đó các bit ‘0’ được thêm vào để có một độ dài
đồng dư với 448 môđun 512
MẬT MÃ HỌC CƠ SỞ

12


- Bước 2: Gắn thêm độ dài: Dạng biểu diễn 64 bit độ dài
b của chuỗi ban đầu được thêm vào phía sau kết quả
của bước 1.
- Bước 3: Khởi tạo bộ đệm MD: Một bộ đệm 4 từ
(A,B,C,D) được dùng để tính mã số thông điệp. Ở đây
mỗi A,B,C,D là một thanh ghi 32 bit. Những thanh ghi
này được khởi tạo theo những giá trị hex sau:
A=0x01234567
B=0x89abcdef
C=0xfedcba98
D=0x76543210
- Bước 4 : Xử lý thông điệp theo từng khối 16 từ. Định
nghĩa các hàm phụ, các hàm này nhận giá trị đầu vào là
3 từ 32 bit và tạo tạo ra một word 32 bit.
F(X,Y,Z) = XY v not(X) Z
G(X,Y,Z)= XZ v Y not(Z)
H(X,Y,Z) = X xor Y xor Z
I(X,Y,Z) = Y xor (X v not(Z)).
Bước này sử dụng một bảng 64 giá trị T[1 .. 64] được tạo ra từ
hàm sin. Gọi T là phần tử thứ i của bảng, thì T là phần nguyên
của 4294967296*|sin(i)| , i được tính theo radian
 Sơ đồ:


MẬT MÃ HỌC CƠ SỞ

13


12.
Hãy trình bày tổng quan về quá trình xử lý
thông điệp của SHA1? Hãy vẽ sơ đồ minh họa về về
quá trình xử lý thông điệp của SHA1?
 Quá trình xử lý thông điệp của SHA1:
- SHA1 sử dụng thủ tục xử lý thông điệp tương tự MD5;
- Thông điệp được chia thành các khối 512 bít. Nếu kích
thước thông điệp không là bội số của 512  nối thêm số
bít thiếu;
- Phần xử lý chính của SHA1 làm việc trên state 160 bít,
chia thành 5 từ 32 bít (A, B, C, D, E);
> Các từ A, B, C, D, E được khởi trị bằng một hằng cố
định;
> Từng phần 32 bít của khối đầu vào 512 bít được đưa
dần vào để thay đổi state;
> Quá trình xử lý gồm 80 vòng, mỗi vòng gồm các thao
tác: add, and, or, xor, rotate, mod.
 Lưu đồ xử lý một vòng của SHA1:
- A, B, C, D, E: các từ 32 bit
- Wt: khối 32 bit thông điệp đầu vào;
- Kt: 32 bit hằng. Mỗi sử dụng một hằng khác nhau;
- <<- Biểu diễn cộng modulo 32 bít;
- F: hàm phi tuyến tính.
MẬT MÃ HỌC CƠ SỞ


14


13.
Hãy trình bày sơ lược một số ứng dụng trong
hiện tại của Pretty Good Privacy (PGP)?
Mục tiêu ban đầu của PGP nhằm vào mã hóa nội dung các
thông điệp thư điện tử và các tệp đính kèm cho người dùng phổ
thông.
Phương pháp là như sau:
- Thực hiện phân loại hàm ”băm” file hoặc email
- Thêm băm vào cuối thông điệp
- Khi ai đó muôn xác nhận rằng thông điệp không bị chỉnh
sửa, họ chạy thuật toán băm trên thông điệp và so sánh với
băm cuối thông điệp. Nếu chữ kí khớp thông điệp không bị
chỉnh sửa.
Bắt đầu từ 2002, các sản phẩm PGP đã được đa dạng hóa
thành một tập hợp ứng dụng mật mã và có thể được đặt dưới
sự quản trị của một máy chủ. Các ứng dụng PGP giờ đây bao
gồm: thư điện tử, chữ ký số, mật mã hóa ổ đĩa cứng máy tính
xách tay, bảo mật tệp và thư mục, bảo mật các phiên trao đổi
IM, mật mã hóa luồng chuyển tệp, bảo vệ các tệp và thư mục
lưu trữ trên máy chủ mạng.
Phiên bản PGP Desktop 9.x dành cho máy để bàn bao gồm
các tính năng: thư điện tử, chữ ký số, bảo mật IM, mật mã hóa ổ
đĩa cứng máy tính xách tay, bảo mật tệp và thư mục, tệp nén tự

MẬT MÃ HỌC CƠ SỞ


15


giải mã, xóa file an toàn. Các tính năng riêng biệt được cấp
phép theo các cách khác nhau tùy theo yêu cầu.
Phiên bản PGP Universal 2.x dành cho máy chủ cho phép
triển khai ứng dụng tập trung, thiết lập chính sách an ninh và
lập báo cáo. Phần mềm này được dùng để mật mã hóa thư điện
tử một cách tự động tại cổng ra vào (gateway) và quản lý các
phần mềm máy khách PGP Desktop 9.x. Nó làm việc với máy
chủ khóa công khai PGP (gọi là PGP Global Directory) để tìm
kiếm khóa của người nhận và có khả năng gửi thư điện tử an
toàn ngay cả khi không tìm thấy khóa của người nhận bằng
cách sử dụng phiên làm việc HTTPS.
Với ứng dụng PGP Desktop 9.0 được quản lý bởi PGP
Universal Server 2.0, tất cả các ứng dụng mật mã hóa PGP được
dựa trên nền kiến trúc proxy mới. Các phần mềm này giúp loại
bỏ việc sử dụng các plug-in của thư điện tử và tránh cho người
dùng việc sử dụng các ứng dụng khác. Tất cả các hoạt động
của máy chủ cũng như máy khách đều tự động tuân theo một
chính sách an ninh. PGP Universal server còn tự động hóa các
quá trình tạo, quản lý và kết thúc các khóa chia sẻ giữa các ứng
dụng PGP.
Các phiên bản mới của PGP cho phép sử dụng cả 2 tiêu
chuẩn: OpenPGP và S/MIME, cho phép trao đổi với bất kỳ ứng
dụng nào tuân theo tiêu chuẩn của NIST.
Các ứng dụng PGP giờ đây bao gồm: thư điện tử, chữ ký
số, mật mã hóa ổ đĩa cứng máy tính xách tay, bảo mật tệp và
thư mục, bảo mật các phiên trao đổi IM, mật mã hóa luồng
chuyển tệp, bảo vệ các tệp và thư mục lưu trữ trên máy chủ

mạng.
14.
Hãy trình bày ứng dụng cụ thể Smart Cards cho
điện thoại di động?
 Ứng dụng cụ thể - thẻ SIM cho điện thoại di động
- Khóa xác thực có độ dài 128-bit để xác thực trong mạng di
động. Mỗi SIM giữ 1 khóa K duy nhất (không giống với các
SIM khác). Khóa K cũng được luu trong cơ sở dữ liệu tại
nhà cung cấp mạng.
- Thẻ SIM được thiết kế để không cho phép đọc (lấy) được
khóa K trực tiếp thông qua các điểm tiếp xúc của thẻ.
MẬT MÃ HỌC CƠ SỞ

16


Thay vào đó, thẻ SIM cung cấp 1 chức năng chạy thuật
toán GSM, chức năng cho phép truyền dữ liệu vào thẻ SIM
để kết hợp với K. Thiết kế này làm cho bắt buộc phải sử
dụng SIM, trừ khi trích xuất được K ra khỏi thẻ SIM, hoặc
nhà cung cấp thẻ tiết lộ K. Trong thực tế, thuật toán mã
hóa GSM tính toán SRES_2 từ khóa K có lỗ hổng nhất định
làm cho có thể trích xuất khóa K từ thẻ SIM và tạo 1 thẻ
SIM giống hệt.
Quy trình chứng thực:
1. Thiết bị di động khỏi động, nó lấy số xác thực (International
Mobile
Subscriber Identity (IMSI)) từ thẻ SIM, và chuyển số đấy cho
thiết bị yêu cầu truy cập và chứng thực.
2. Thiết bị vận hành mạng tìm kiếm trong cơ sở dữ liệu với số

IMSI và số đã kết hợp với K.
3. Thiết bị vận hành mạng sau đó sinh ra 1 số ngẫu nhiên RAND
(số ngẫu nhiên được dùng 1 lần) và kết hợp RAND với K và IMSI
(và lưu trong thẻ SIM), tính toán 1 số khác được gọi là tín hiệu
hồi đáp (SRES_1)
4. Thiết bị vận hành mạng sau đó gửi RAND đến thiết bị di
động, sau đó được chuyển cho thẻ SIM. Thẻ SIM kết hợp với K,
sinh ra SRES_2. Sau đó SRES_2 được chuyển cho thiết bị di
động cùng với khóa mã hóa (Kc). Thiết bị di động chuyển
SRES_2 cho thiết bị vận hành mạng.
5. Thiết bị vận hành mạng sau đó so sánh SRES_2 với SRES_1.
Nếu 2 số giống nhau, thẻ SIM được chứng thực và thiết bị di
động được quyền truy cập vào mạng. Kc được sử dụng để mã
hóa tất cả các liên lạc giữa thiết bị di động với mạng.
- Đa số thẻ SIM đều có bộ nhớ để chứa tin nhắn hoặc số liên lạc.
15.
Hãy trình bày sơ lược về chức năng cung cấp
các dịch vụ an ninh mạng của Kryptoknight.
Kryptoknight cung cấp các dịch vụ an ninh mạng sau:
1. Single Sign-On
2. Two-Party Authentication (Xác thực 2 bên)
3. Key Distribution(Phân phối khóa)
4. Authentication of origin and contents of data (Xác thực
nguồn
MẬT MÃ HỌC CƠ SỞ

17


gốc và nội dung của dữ liệu)

 Single Sign-On
Trước khi bắt đầu bất kỳ hoạt động trên danh nghĩa của mình,
người sử dụng cần xác minh với hệ thống KrytoKinght bằng
cách thực hiện các lệnh kklogin trên một máy trạm công khai.
Mục đích của lệnh này là để thực hiện đăng nhập mạng và
thống nhất toàn bộ cho người sử dụng.
Kklogin kích hoạt một tin nhắn trao đổi giữa các địa phương
(stub) chương trình KrytoKinght thực hiện lệnh và đưa đến AS
(xem hình 2.1). Trong thông điệp đầu tiên, người sử dụng nói
với AS rằng người đó muốn đăng nhập, xác định tên của mình.
Thông báo này cho phép các AS xác thực người sử dụng vì nó
có chứa một giá trị là một chức năng của cả thời gian hiện tại
và mật khẩu của người dùng. Tính năng này được gọi là preauthentication (trước xác thực). Thông điệp thứ hai chứa các trả
lời từ AS, được niêm phong với khóa dựa vào mật khẩu của
người dùng. Tại thời điểm này, kklogin nhắc người dùng nhập
mật khẩu của mình và sử dụng mật khẩu này để mở niêm
phong trả lời của AS, lấy các chứng chỉ (trong Kerberos gọi là
ticket), chứa trong nó. Một kết quả thành công có nghĩa là
người sử dụng đã cung cấp một mật khẩu chính xác và đã được
chứng minh danh tính của mình. Các ticket, thu được bởi người
sử dụng, sau đó sẽ được thừa hưởng bởi bất kỳ hoạt động chạy
thay mặt người sử dụng. Sử dụng giấy chứng nhận thông qua
KrytoKinght nguyên thủy, một thực thể có thể giao tiếp với các
đồng nghiệp từ xa và xác thực diễn ra một lần duy nhất (cho
đến khi người sử dụng một cách rõ ràng để chấm dứt các phiên
đăng nhập bằng cách thực hiện các lệnh kklogoff) và bất kỳ số
lượng các chương trình địa phương có thể sử dụng kết quả của
nó khi thực hiện chứng cứ để từ xa chương trình (dịch vụ), hoạt
động này được gọi là Single Sign-On hoặc SSO.
Ngoài ra, một số chương trình mà nằm trên hệ thống tương đối

đáng tin cậy có thể cần một giấy chứng nhận ủy thác kéo dài
hơn vòng đời của một chứng chỉ được cung cấp thông qua
Single Sign-On. Ví dụ về các chương trình như vậy là các máy
chủ ứng dụng hoặc chương trình quản trị được hưởng sự an
toàn của hệ thống bảo vệ vật lý. Giấy chứng nhận ủy thác dài
MẬT MÃ HỌC CƠ SỞ

18


hạn có thể được cung cấp thông qua các lệnh kkinstallkey thực
hiện bởi người quản trị trên hệ thống mà chương trình đó đã
chạy; trong trường hợp này, không cần thiết có hoạt động
Single Sign-On.
 Two-Party Authentication (Xác thực 2 bên)
Sau khi uỷ quyền cho người dùng là một người, một thực thể có
thể sử dụng các thư viện KrytoKnight Application Programing
Interface (API) thư viện để có thêm các giấy tờ chứng minh ủy
thác của nó để xác thực bản thân với các sự điểu khiến giống
nhau từ xa. Mỗi thực thể có sự tham gia được liên kết với các
thư viện API và KrytoKnight, tại thời gian chạy, các vấn đề thủ
tục kêu gọi để có được các dịch vụ này.
Một thực thể, được gọi là người khởi xướng (INITIATOR), bắt đầu
quá trình xác thực bằng cách phát hành một cuộc gọi API và trả
về một thông báo xác thực. Một thực thể, được gọi là người khởi
xướng, bắt đầu quá trình xác thực bằng cách phát hành một
cuộc gọi API trả về một thông báo xác thực. Tin xác thực này
được gửi đến thực thể ngang hàng từ xa, được gọi là người trả
lời (RESPONDER), bằng cách sử dụng một cơ chế liên lạc ngang
hàng thực thể cụ thể. Khi người trả lời nhận được tin nhắn, nó

tạo ra một cuộc gọi API tương ứng mà xác minh tính hợp lệ của
các thông báo xác thực đến. Tùy thuộc vào các thông số xác
thực, hoặc là một cách xác thực (nơi chỉ có các người khởi
xướng được xác thực người trả lời ) hoặc xác nhận lẫn nhau (nơi
cả hai bên đạt được xác thực lẫn nhau) có thể được thực hiện.
Trong trường hợp chứng thực một chiều, tin nhắn xác thực đầu
tiên và chỉ xác nhận là người khởi xướng cho người trả lời . Nếu
việc xác minh bằng người trả lời thành công, người trả lời chắc
chắn rằng người khởi xướng là đại diện của người sử dụng quy
định trong thông báo xác thực. Trong trường hợp xác thực lẫn
nhau, trao đổi của hai hay nhiều tin nhắn xác thực, tạo ra thông
qua các cuộc gọi API tương ứng, được yêu cầu: một sẽ xác thực
người trả lời cho người khởi xướng, người kia sẽ hoàn thành các
giao thức xác thực cuối cùng của người khởi xướng cho người
trả lời.
 Key Distribution(Phân phối khóa)
MẬT MÃ HỌC CƠ SỞ

19


các giao thức xác thực được mô tả trong phần trước yêu cầu
khởi xướng và trả lời khi chia sẻ một bí mật quan trọng. để có
được một khóa bí mật được chia sẻ, hai bên đầu tiên phải tham
gia vào một cuộc đối thoại với một kryptokinght AS. các chi tiết
cụ thể của dialod này sẽ được thảo luận trong phần tiếp theo.
Tuy nhiên, toàn bộ quá trình liên hệ với AS, chứng minh danh
tính của một người, và nhận được chìa khóa, được ẩn từ các
đơn vị sử dụng kryptoknight. nói cách khác, đã hoặc không phải
là hai bên Sharen một khóa, họ thực hiện cuộc gọi API cùng với

chính xác các thông số tương tự. một khi một phím được ban
hành và recevied, nó được lưu trữ (một lần nữa, trong một
transparentmanner) để sử dụng sau.
 Authentication of origin and contents of data (Xác thực
nguồn gốc và nội dung của dữ liệu)
Xác thực thành công giữa thực thể thiết lập một phiên
kryptoknight được đặc trưng bởi khóa bí mật chung của họ.
phiên này các máy chủ như là một bối cảnh giao tiếp an toàn
hơn nữa giữa hai bên. nó sẽ bị chấm dứt hoặc rõ ràng, bởi một
trong các bên giao tiếp gửi cho bên kia một yêu cầu kết thúc
phiên, hoặc ngầm khi hết thời hạn của khóa chia sẻ cho đến khi
chấm dứt phiên, sau đó thực thể có thể, nghĩ các API
kryptoknight, xác thực nội dung và nguồn gốc của thông điệp
dữ liệu trao đôỉ.
16.
Hãy trình bày về quy trình hoạt động Kerberos.
Kerberos không xây dựng các giao thức chứng thực phức
tạp cho mỗi máy chủ mà hoạt động dựa trên một máy chủ
chứng thực tập trung KDC (Key Distribution Centre). KDC cung
cấp vé cho việc chứng thực người dùng và bảo mật truyền
thông bởi khoá phiên trong vé gồm 3 giai đoạn và 6 bước trao
đổi:
 Client chứng thực AS (Authentication Server – biết khoá
mật của tất cả người dùng được lưu giữ trên một cơ sở dữ
liệu tập trung )
AS_REQ là yêu cầu người dùng xác thực ban đầu(khởi tạo dich
vụ) yêu cầu này được chuyển trực tiếp tới các thành phần được
MẬT MÃ HỌC CƠ SỞ

20



gọi là KDC Authentication Server (AS).
AS_REP là trả lời của máy chủ xác thực để yêu cầu trước đó. Về
cơ bản nó chứa TGT (mã hóa bằng cách sử dụng khóa TGS bí
mật) và khóa phiên (được mã hóa bằng khóa bí mật của người
dùng yêu cầu)
 Client xác thực TGS (Ticket Granting Server – cung cấp vé
dịch vụ cho phép người dùng truy nhập vào các máy chủ
trên mạng)
TGS_REQ là yêu cầu từ khách hàng đến Cấp vé máy chủ (TGS)
cho một vé thông hành. Về cơ bản nó chứa TGT (mã hóa bằng
cách sử dụng khóa TGS bí mật) và khóa phiên (được mã hóa
bằng khóa bí mật của người dùng yêu cầu) TGS_REP là trả lời
của Cấp vé máy chủ để yêu cầu trước đó.Nằm bên trong là vé
dịch vụ theo yêu cầu (được mã hóa với khóa bí mật của dịch
vụ) và phiên dịch vụ một khóa tạo ra bởi TGS và được mã hóa
bằng khóa phiên trước đó được tạo ra bởi AS.
 Khách hàng truy cập và được cấp phép sử dung dịch vụ
AP_REQ là yêu cầu khách hàng gửi tới một máy chủ ứng dụng
để truy cập vào một dịch vụ. Các thành phần là các dịch vụ bán
vé thu được từ TGS với thư trả lời trước và nhận thực một lần
nữa được tạo ra bởi khách hàng, nhưng lần này được mã hóa
bằng khóa phiên dịch (tạo ra bởi TGS);
AP_REP là trả lời rằng các máy chủ ứng dụng cung cấp cho
khách hàng để chứng minh nó thực sự là máy chủ của khách
hàng là mong muốn. Gói này không phải lúc nào cũng được yêu
cầu. Các khách hàng yêu cầu máy chủ cho nó chỉ khi xác thực
lẫn nhau là cần thiết.
17.

Hãy trình bày các bước cơ bản trong giải thuật
mã hóa DES? Hãy vẽ sơ đồ minh họa cho quá trình
mã hóa của giải thuật DES?
 Quy trình giải thuật mã hóa DES :

MẬT MÃ HỌC CƠ SỞ

21


- DES mã hóa một xâu bit x của bản rõ có độ dài 64 bit bằng
một khóa 56 bit . bản mã nhận được cũng có độ dài 64 bit .
- Thuật toán tiến hành theo 3 bước :

 Bước 1 : 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 : x 0 =
IP(x)=L0 R0 , trong đó L0 gồm 32 bit đầu và R0 là 32
bit cuối .
 Bước 2 : Sau đó tính toán 16 lần lặp theo một hàm
xác định . Ta sẽ tính Li Ri ( với 1sau :
o Li = Ri-1 ; Ri = Li-1
f(Ri-1 , ki )
Trong đó :
là phép loại trừ của hai xâu bit .
f(Ri-1 , Ki )= P-box (S-boxes(Expand(Ri-1) Ki )) là
hàm được mô tả ở phía sau . Và k1 , k2, ... , k16 là
các xâu bít có độ dài 48 bit được tính như một
hàm của khóa k (ki chính là một phép chọn hoán

vị bit trong k ).
o Một vòng của phép mã hóa được mô tả như sau :

MẬT MÃ HỌC CƠ SỞ

22


 Bước 3 : Áp dụng phép hoán vị ngược IP-1 cho xâu bit R16
L16 , ta thu được bản mã y . Tức là y = IP -1 (R16 L16). Thứ tự
của L16 và R16 đã được đảo.
 Mô tả hàm F (Hàm Feistel ) :
- Hàm F có 2 biến vào là Ri-1 có độ dài 32 bit và Ki có độ dài
48 bit .
- Đầu ra của f có độ dài 32 bit và bao gồm 4 giai đoạn :
1. Mở rộng : 32 bit đầu vào được mở rộng thành 48 bit sử
dụng thuật toán hoán vị mở rộng với việc nhân đôi một số
bit. Giai đoạn này được ký hiệu là E trong sơ đồ.
2. Trộn khóa : 48 bit thu được sau quá trình mở rộng được
XOR với khóa con. Mười sáu khóa con 48 bit được tạo ra từ
khóa chính 56 bit theo một chu trình tạo khóa con.
3. Thay thế : 48 bit sau khi trộn được chia làm 8 khối con 6

bit và được xử lý qua hộp thay thế S-box. Đầu ra của mỗi
khối 6 bit là một khối 4 bit theo một chuyển đổi phi tuyến
được thực hiện bằng một bảng tra. Khối S-box đảm bảo
phần quan trọng cho độ an toàn của DES. Nếu không có Sbox thì quá trình sẽ là tuyến tính và việc thám mã sẽ rất
đơn giản .
4. Hoán vị : Cuối cùng, 32 bit thu được sau S-box sẽ được sắp
xếp lại theo một thứ tự cho trước (còn gọi là P-box).

 Sơ đồ khối tổng quát của quy trình mã hóa DES :

MẬT MÃ HỌC CƠ SỞ

23


18.
Hãy trình bày các bước cơ bản trong giải thuật
mã hóa AES? Hãy vẽ sơ đồ minh họa cho quá trình
mã hóa của giải thuật AES?
Quá trình mã hóa gồm các bước :
 Mở rộng khóa : các khóa phụ dùng trong các vòng lặp
được sinh ra từ khóa chính AES sử dụng thủ tục sinh khóa
Rijndael.
 Vòng khởi tạo :
AddRoundKey : Mỗi byte của khối được kết hợp với khóa
con , các khóa con này được tạo ra từ quá trình tạo khóa
con Rijndael. Mỗi khóa con có độ dài giống như các khối .
quá trình kết hợp được thực hiện = cách XOR từng bit của
khóa con với khối dữ liệu .
 Vòng lặp :
a. SubBytes : đây lag phép thế (phi tuyến ) trong đó mỗi
byte trong trạng thái sẽ được thế bằng một byte khác
theo bảng tra (Rijndael S-box).
b. ShiftRows : dịch chuyển , các hàng trong trạng thái
sẽ được dịch vòng theo số bước khác nhau. Hàng
đầu được giữ nguyên , mỗi byte của hàng thứ 2 được
dịch vòng trái 1 vị trí. Tương tự dòng 3,4 dịch 2 và 3
vị trí . Do vậy mỗi khối đầu ra của bước này sẽ bao

gồm các byte ở đủ 4 cột khối đầu vào . Đối với
MẬT MÃ HỌC CƠ SỞ

24


Rijndael với độ dài khối khác nhau thì số vị trí dịch
chuyển cũng khác nhau.
c. MixColumns : quá trình trộn làm việc theo các cột
trong khối theo một phép biến đổi tuyến tính. Bốn
byte trong từng cột được kết hợp lại theo một phép
biến đổi tuyến tính khả nghịch. Mỗi khối 4 byte đầu
vào sẽ cho một khối 4 byte ở đầu ra với tính chất là
mỗi byte ở đầu vào đều ảnh hưởng tới cả 4 byte đầu
ra. Cùng với bước ShiftRows, MixColumns đã tạo ra
tính chất khuếch tán cho thuật toán.
d. AddRoundKey .
 Vòng lặp cuối :
e. SubBytes
f. ShiftRows
g. AddRoundkey
Tại chu trình cuối thì bước MixColumns không thực
hiện.
Sơ đồ minh họa :

19.
Hãy trình bày các bước cơ bản trong giải thuật
mã hóa RSA? Hãy lấy ví dụ minh họa về quá trình
mã hóa của giải thuật RSA? Hãy nêu các yêu cầu cơ
bản trong quá trình sinh khóa của giải thuật RSA.

 Các bước cơ bản trong giải thuật mã hóa RSA :

MẬT MÃ HỌC CƠ SỞ

25


×