Giải đề cương Mật Mã Học Cơ Sở PTITGiải đề cương Mật Mã Học Cơ Sở PTITGiải đề cương Mật Mã Học Cơ Sở PTITGiải đề cương Mật Mã Học Cơ Sở PTITGiải đề cương Mật Mã Học Cơ Sở PTITGiải đề cương Mật Mã Học Cơ Sở PTITGiải đề cương Mật Mã Học Cơ Sở PTIT
1 Hãy định nghĩa công biết mã (ciphertext-only attack) Hãy định nghĩa công biết rõ (know-plaintext attack) Hãy định nghĩa công rõ chọn sẵn ( choosen-plaintext attack) Hãy định nghĩa Tấn công bản-mã-chọn-sẵn (chosenciphertext attack)? Lấy ví dụ minh họa cơng này? .3 Hãy trình bày giải thích yêu cầu thủ tục sinh khóa giải thuật mã hóa RSA? 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 ? Hãy mô tả bước mã hóa RC4? Hãy mô tả bước giải thuật mã hóa A5/1? .6 Hãy trình bày phương pháp phân loại hàm băm? Hãy nêu tên hàm băm theo phương pháp phân loại đó? .7 10 Hãy trình bày định nghĩa hàm băm? Hãy nêu tính chất hàm băm lấy ví dụ minh họa cho tính chất 11 Hãy trình q trình xử lý thơng điệp hàm băm MD5? Hãy vẽ sơ đồ minh họa trình xử lý thơng điệp hàm băm MD5? 10 12 Hãy trình bày tổng quan q trình xử lý thơng điệp SHA1? Hãy vẽ sơ đồ minh họa về trình xử lý thơng điệp SHA1? 12 13 Hãy trình bày sơ lược số ứng dụng 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 chức cung cấp dịch vụ an ninh mạng Kryptoknight .15 16 Hãy trình bày quy trình hoạt động Kerberos 17 17 Hãy trình bày bước giải thuật mã hóa DES? Hãy vẽ sơ đồ minh họa cho trình mã hóa giải thuật DES?18 18 Hãy trình bày bước giải thuật mã hóa AES? Hãy vẽ sơ đồ minh họa cho trình mã hóa giải thuật AES? 20 19 Hãy trình bày bước giải thuật mã hóa RSA? Hãy lấy ví dụ minh họa q trình mã hóa giải thuật RSA? Hãy nêu yêu cầu q trình sinh khóa giải thuật RSA 22 MẬT MÃ HỌC CƠ SỞ 20 Hãy trình bày ưu điểm nhược điểm giải thuật mã hóa khóa bí mật? Hãy trình bày vẽ sơ đồ minh họa q trình mã hóa giải thuật mã hóa DES? Hãy vẽ sơ đồ minh họa q trình giải mã giải thuật mã hóa DES? 23 Đề cương ôn tập Hãy định nghĩa công biết mã (ciphertext-only attack) - Người thám mã có thơng điệp mã hóa Họ có mã số thơng điệp, tất mã hóa thuật tốn mã hóa Cơng việc nhà thám mã khôi phục lại thông điệp nhiều thông điệp tốt, tốt suy khóa (hoặc loại khóa) sử dụng để mã hóa thơng điệp, để từ giải mã thơng điệp mã hóa khóa tương tự - Ví dụ: WEP – Wired Equivalent Privacy – giao thức bảo mật cho Wifi, có nhiều công thành công, chứng tỏ giao thức WEP dễ bị công, hầu hết công đó, người cơng biết mã Hãy định nghĩa công biết rõ (know-plaintext attack) - Nhà thám mã có mã thơng điệp thông điệp Công việc họ lúc tìm khóa (các khóa) dùng để mã hóa thơng điệp thuật tốn để giải mã tin nhắn mã hóa với khóa - Ví dụ: dịng mật mã PKZIP phiên cũ bị công, kẻ cơng có tập tin zip mã hóa phiên cũ trình PKZIP, kẻ cần có phần trng tập tin mã hóa kho lưu trữ để tiến hành công Phần mềm miễn phí xuất hỗ trợ cơng có khả tính tốn MẬT MÃ HỌC CƠ SỞ riêng khóa bí mật cần thiết để giải mã kho lưu trữ đầy đủ thơng tin Để có tập tin mã hóa, kẻ cơng cần timd kiếm trang web tập tin zip có nguồn gốc để để xác định vị trí phù hợp, tự xây dựng tệp văn sử dụng tên tập tin từ kho lưu trữ Hãy định nghĩa công rõ chọn sẵn ( choosenplaintext attack) - Người thám mã tạm thời có quyền truy xuất tới mã hóa, có khả chọn thông điệp rã xây dựng mã tương ứng hình thức mạnh việc thám mã biết thơng điệp người thám mã lựa chọn khố thơng điệp cụ thể để mã hóa, trường hợp mang lại nhiều thơng tin Cơng việc họ lúc tìm khóa (các khóa) dùng để mã hóa thơng điệp thuật tốn để giải mã tin nhắn mà mã hóa với khóa - Ví dụ1: chiến thứ II chuyên gia mật mã Hải quân Mỹ phát Nhật Bản có kế hoạch cơng vị trí gọi ‘AF’ Họ tin ‘AF’ đảo Midway, địa điểm khác quần đảo Hawaii có từ mã bắt đầu ‘A’ để chứng minh giả thuyết họ ‘AF’ tương ứng với đảo Midway họ yêu cầu lực lượng Mỹ Midway gửi thông điệp rõ nguồn cung thấp Hải quân Mỹ chặn tin nhắn báo cáo với cấp ‘AF’ thấp mặt nước, xác nhận giả thuyết Hải quân cho phép học đến vị trí có hiệu lực để giành chiến thắng Hãy định nghĩa Tấn công bản-mã-chọn-sẵn (chosen-ciphertext attack)? Lấy ví dụ minh họa công này? Thám mã với rõ chọn (Chosen Plaintext attack) (CPA) mơ hình cơng để giải mã, thám mã có khả chọn rõ tùy ý biết mã tương ứng Điều xảy thám mã chiếm tạm thời máy lập mã, với hệ mã hóa cơng khai điều hiển nhiên, biết MẬT MÃ HỌC CƠ SỞ khóa cơng khai thám mã mã hóa rõ mà họ chọn Ví dụ: Phiên đầu mật mã RSA bị công cách Những kẻ cơng có khả làm cho nạn nhân giải mã mã lựa chọn gửi cho kết Phân tích mã lựa chọn rõ tương ứng, kẻ xâm nhập đốn khóa bí mật sử dụng nạn nhân Hãy trình bày giải thích yêu cầu thủ tục sinh khóa giải thuật mã hóa RSA? Mỗi người sử dụng tạo khóa RSA cơng khai khóa bí mật tương ứng theo bước sau: Tạo số nguyên tố lớn p q ngẫu nhiên, có kích thước Tính n = p*q φ = (p-1)*(q-1) Chọn ngẫu nhiên nguyên tố e, 1< e < φ , thỏa mãn gcd(e, φ ) = Sử dụng thuật tốn Euclid mở rộng để tính số nguyên d nhất, < d < φ thỏa mãn ed ≡ 1(mod φ ) Khi căp khóa cơng khai là(e,n) cặp khóa bí mật (d,n) Số nguyên e d tạo thuật toán gọi số mũ mã hóa số mũ giải mã cịn n gọi modulus RSA Việc tìm số nguyên tố đủ lớn p q thường thực cách thử xác suất 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 hợp số) p q cịn cần chọn khơng q gần để phịng trường hợp phân tích n phương pháp phân tích Fermat Ngồi ra, p-1 q-1 có thừa số ngun tố nhỏ n dễ dàng bị phân tích p q cần thử để tránh khả Bên cạnh đó, cần tránh sử dụng phương pháp tìm số ngẫu nhiên mà kẻ cơng lợi dụng để biết thêm thông tin việc lựa chọn (cần dùng tạo số ngẫu nhiên tốt) Yêu cầu số lựa chọn cần đồng thời ngẫu nhiên khơng dự đốn Đây yêu cầu khác nhau: số MẬT MÃ HỌC CƠ SỞ lựa chọn ngẫu nhiên (khơng có kiểu mẫu kết quả) dự đốn dù phần an ninh thuật tốn khơng đảm bảo 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 Horst Feistel đề xuất, kết hợp phép thay hoán vị Trong hệ mã Feistel, rõ biến đổi qua số vòng mã cuối cùng: F hàm mã hóa dùng chung cho tất vịng Hàm F đóng vai trị phép thay cịn việc hốn đổi nửa trái phải có vai trị hốn vị Bản mã C tính từ kết xuất vịng cuối cùng: C = Cn = (Ln, Rn) Hệ mã Feistel có điểm quan trọng việc chia 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 giải mã dùng chiều thuận hàm F Hàm F thuật tốn sinh khóa phức tạp khó phá mã Ứng với hàm F thuật tốn sinh MẬT MÃ HỌC CƠ SỞ khóa khác ta có phương pháp mã hóa khác Sơ đồ mã hóa Hãy mơ tả bước mã hóa RC4? Cơ chế hoạt động RC4 giống TinyRC4 với đặc tính sau: - Đơn vị mã hóa RC4 byte bít - Mảng S T gồm 256 số ngun bít - Khóa K dãy gồm N số ngun bít với N lấy giá trị từ đến 256 - Bộ sinh số lần sinh byte để sử dụng phép XOR Hai giai đoạn RC4 là: Giai đoạn khởi tạo: • /* Khoi tao day S va T*/ • for i = to 255 • S[i] = i; MẬT MÃ HỌC CƠ SỞ • • • • • • • • • • • • • • • • T[i] = K[i mod N]; next i /* Hoan vi day S */ j = 0; for i = to 255 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; Hãy mô tả bước giải thuật mã hóa A5/1? Bộ sinh số gồm ghi X, Y, Z - Thanh ghi X gồm 19 bit, ký hiệu (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Ở Khóa K ban đầu có chiều dài 23 bít phân bố vào ghi: KXYZ Các bước quay X,Y,Z cụ thể sau : Cho ba bit x, y, z, ta định nghĩa hàm maj(x, y, z) hàm “chiếm đa số”, nghĩa bít x, y, z có từ hai bít trở lên hàm trả giá trị 0, khơng hàm trả giá trị Tại bước sinh số thứ i, phép tính sau thực hiện: m = maj(x8, y10, z10) - If x8 = m then thực quay X - If y10 = m then thực quay Y - If z10 = m then thực quay Z Và bít sinh là: s= x18+ y21+z22 MẬT MÃ HỌC CƠ SỞ Hãy trình bày phương pháp phân loại hàm băm? Hãy nêu tên hàm băm theo 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 thông điệp, hàm băm dựa mật mã khối Các hàm băm khơng khóa hàm băm có liệu đầu vào thơng điệp Hàm băm khơng khóa có lớp lớp chức MDC (modification detection code – mã phát sửa đổi) Các MDC sử dụng để tạo ảnh đặc trưng (representative image) thông điệp đảm bảo tồn vẹn liệu thơng điệp Các MDC chia làm hai lớp hàm: - OWHF (one-way hash function – hàm băm chiều) có nghĩa với mã băm biết trước, khó tính tốn để tìm thơng điệp đầu vào có mã băm với mã băm cho Hàm băm chiều thỏa mãn tính chất: kháng tiền ảnh kháng tiền ảnh thứ hai - CRHF (collision resistant hash function – hàm băm kháng xung đột) có nghĩa khó tính tốn để tìm hai thơng diệp khác có 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 kháng xung đột Hàm băm có khóa (MAC): đầu vào gồm thơng điệp khóa, dùng để xác thực thơng báo : Hàm băm có khóa hàm băm ngồi thơng điệp đầu cịn có đầu vào khác khoa bí mật (secret key), khơng có khóa bí mật khơng thể băm thông điệp đầu vào theo quy định Hàm băm có khóa có lớp MAC (message authentication code – mã xác thực thông điệp) Phân loại hàm băm theo tính Mã phát sửa đổi (MDC - Modification detection codes) - MDC thường sử dụng để tạo chuỗI đạI diện cho thông điệp dùng kết hợp với biện pháp khác để đảm bảo tính tồn vẹn 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 chiều (OWHF - One-way hash functions): MẬT MÃ HỌC CƠ SỞ dễ dàng tính giá trị băm, khôi phục thông điệp từ giá trị băm khó khăn; Hàm băm chống đụng độ CRHF - Collision resistant hash functions): Rất khó tìm thông điệp trùng giá trị băm Mã xác thực thông điệp (MAC - Message authentication codes) - MAC dùng để đảm bảo tính tồn vẹn thông điệp mà không cần biện pháp bổ sung khác; - MAC loại hàm băm có khóa: đầu vào thơng điệp khóa 10 Hãy trình bày định nghĩa hàm băm? Hãy nêu tính chất hàm băm lấy ví dụ minh họa cho tính chất + Định nghĩa : Hàm băm thuật toán khơng sử dụng khóa để mã hóa (ở ta dùng thuật ngữ “băm” thay cho “mã hóa”), có nhiệm vụ “lọc” (băm) thông điệp đưa vào theo thuật tốn h chiều đó, đưa băm – văn đại diện – có kích thước cố định Do người nhận khơng biết nội dung hay độ dài ban đầu thông điệp băm hàm băm Giá trị hàm băm nhất, suy ngược lại nội dung thông điệp từ giá trị băm + Tính chất: Việc đưa hàm băm h vào dùng sơ đồ chữ ký số không làm giảm an toàn sơ đồ chữ ký số tóm lược thơng báo – đại diện cho thông điệp – ký thông điệp gốc Điều cần thiết h cần thỏa mãn số tính chất sau để tránh bị giả mạo: Tính chất 1: Hàm băm h khơng va chạm yếu Xét ví dụ truyền tin sau: Đáng lẽ: thông tin phải truyền từ A đến B MẬT MÃ HỌC CƠ SỞ 10 12 Hãy trình bày tổng quan trình xử lý thơng điệp SHA1? Hãy vẽ sơ đồ minh họa về q trình xử lý thơng điệp SHA1? Q trình xử lý thơng điệp SHA1: - SHA1 sử dụng thủ tục xử lý thông điệp tương tự MD5; - Thông điệp chia thành khối 512 bít Nếu kích thước thơng điệp không bội số 512 nối thêm số bít thiếu; - Phần xử lý SHA1 làm việc state 160 bít, chia thành từ 32 bít (A, B, C, D, E); > Các từ A, B, C, D, E khởi trị cố định; > Từng phần 32 bít khối đầu vào 512 bít đưa dần vào để thay đổi state; > Q trình xử lý gồm 80 vịng, vòng gồm thao tác: add, and, or, xor, rotate, mod Lưu đồ xử lý vòng SHA1: - A, B, C, D, E: từ 32 bit - Wt: khối 32 bit thông điệp đầu vào; - Kt: 32 bit Mỗi sử dụng khác nhau; -