Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 37 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
37
Dung lượng
0,93 MB
Nội dung
HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG KHOA CƠNG NGHỆ THƠNG TIN Học phần: An tồn bảo mật hệ thống thơng tin Bài báo cáo: Tìm hiểu giải thuật băm SHA-0,1,2,3 Các điểm yếu, dạng công vào SHA Cài đặt thử nghiệm SHA1 Giảng viên hướng dẫn: Sinh viên thực hiện: Bùi Quang Danh Ngô Thị Thu Hân Đỗ Đình Tiến Lê Tất Tiến TS Đặng Minh Tuấn Nhóm 11 B15DCCN102 B15DCCN192 B15DCCN553 B15DCCN554 Hà Nội 2017 Mục lục DANH SÁCH CÁC THUẬT NGỮ TIẾNG ANH VÀ VIẾT TẮT Từ viết tắt AES OWHF CRHF IPSec MAC Thuật ngữ tiếng Anh/Giải thích Thuật ngữ tiếng Việt/Giải thích Advanced Encryption Standard One Way Hash Functions Collision Resistant Hash Functions Internet Protocol Security Message Authentication Code Chuẩn mã hóa tiên tiến Hàm băm chiều Hàm băm kháng xung đột An toàn giao thức Internet Mã xác thực thông điệp (sử dụng MD Message Digest MDC Modification Detection Code National Institute of Standards and Technology NSA National Security Agency PGP Pretty Good Privacy PKI Public Key Infrastructure RSA RSA Public Key Croptosystem SHA Secure Hash Algorithm SHS Secure Hash Standard Secure Socket Layer / Transport SSL/TLS Layer Security NIST hàm băm có khóa) Chuỗi đại diện thơng điệp Mã phát sử đổi (sử dụng hàm băm khơng khóa) Viện Tiêu chuẩn Cơng nghệ Cơ quan mật vụ liên bang Mỹ Chuẩn bảo mật PGP Hạ tầng khóa cơng khai Hệ mật khóa cơng khai RSA Giải thuật băm an toàn Tiêu chuẩn băm an toàn Bộ giao thức bảo mật SSL / TLS DANH MỤC CÁC HÌNH VẼ DANH MỤC BẢNG BIỂU DANH MỤC HÌNH VẼ LỜI MỞ ĐẦU Với phát triển ngày nhanh chóng Internet ứng dụng giao dịch điện tử mạng, nhu cầu bảo vệ thông tin hệ thống ứng dụng điện tử ngày quan tâm có ý nghĩa quan trọng Vì việc nghiên cứu chuẩn mật mã nâng cao ứng dụng lĩnh vực bảo mật thông tin cần thiết Ứng dụng chuẩn mật mã nâng cao sử dụng ngày phổ biến nhiều ứng dụng khác Chuẩn mật mã nâng cao không đơn mã hóa giải mã thơng tin mà bao gồm nhiều vấn đề khác cần nghiên cứu giải ứng dụng xây dựng hàm băm phục vụ việc chứng thực nguồn gốc nội dung thông tin ( kỹ thuật chữ ky điện tử), xác thực tính nguyên vẹn liệu,… Một hàm băm sử dụng rộng rãi hàm băm SHA phát triển cục an ninh quốc gia Mỹ ( National Security Agency hay NSA) Với nhiều ưu điểm có nhiều phiên khác phát hành Với tiểu luận với đề tài “ Tìm hiểu giải thuật băm SHA0,1,2,3 Các điểm yếu, dạng công vào SHA Cài đặt thử nghiệm SHA1” tìm hiểu hàm băm SHA ứng dụng để hiểu rõ tiến hành thử nghiệm kiểm chứng Chương Khái quát hàm băm mật mã 1.Giới thiệu sơ lược hàm băm mật mã Hiểu theo nghĩa đơn giản, hàm băm hàm cho tương ứng mảng liệu lớn với mảng liệu nhỏ mà dùng rộng rãi nhiều ứng dụng tin học, không thuộc phạm vi mật mã Ở đây, xét đến hàm băm phạm vi hàm băm mật mã, xem xét cụ thể đến ứng dụng chúng việc đảm bảo tính tồn vẹn liệu Các hàm băm nhận đầu vào chuỗi bit có chiều dài hữu hạn tùy ý tạo chuỗi bit có chiều dài cố định n bit (n > 0) gọi mã băm (hash code) Trong mã hóa, mã băm xem ảnh đại diện thu gọn (compact representative image) chuỗi bit có độ dài hữu hạn tùy ý dùng để nhận diện cho chuỗi bit Kết hợp với công cụ tạo chữ ký số, hàm băm dùng cho việc đảm bảo tính tồn vẹn liệu Trong lược đồ chữ ký số, mã băm chuỗi bit tính thời điểm T1 bảo vệ để chống lại thay đổi bất hợp pháp Tại thời điểm T sau đó, để kiểm tra xem chuỗi bit x có bị thay đổi hay khơng, người ta thường tính giá trị hàm băm chuổi bit thời điểm T2, mà ta ký hiệu xT2, sau so sánh giá trị vừa tính với mã băm thời điểm T1 Nếu giá trị người ta chấp nhận chuổi bit thời điểm T2 trùng khớp với chuổi bit thời điểm T 1, tức chuỗi bit x chưa bị thay đổi Như vấn đề bảo đảm tính tồn vẹn chuỗi bit có chiều dài tùy ý thay việc bảo vệ tồn vẹn chuỗi bit có chiều dài cố định 1.2 Định nghĩa tổng quát hàm băm Hàm băm (hash function) hàm toán học h có tối thiểu thuộc tính: - Nén (Compression): h ánh xạ từ chuỗi đầu vào x có chiều dài sang chuỗi đầu h(x) có chiều dài cố định n bit - Dễ tính toán (Ease of computation): cho trước hàm h đầu vào x, việc tính tốn h(x) dễ dàng.[1] Hình 1: Mơ hình nén liệu hàm băm Hình 1.1 minh họa mơ hình nén thơng tin hàm băm, theo thơng điệp (Message) đầu vào với chiều dài tùy ý qua nhiều vòng xử lý hàm băm để tạo chuỗi rút gọn, hay chuỗi đại diện (Digest) có kích thước cố định đầu 1.3 Tính chất hàm băm mật mã Một hàm băm mật mã lý tưởng có tính chất sau : 1.3.1 Tính kháng tiền ảnh (Preimage resistance) Với đầu y cho trước, khơng thể tìm liệu đầu vào x cho h(x) = y (hay khơng thể tìm thơng điệp từ giá trị băm cho trước) 1.3.2 Tính kháng tiền ảnh thứ hai (2nd - Preimage resistance) Với liệu đầu vào x cho trước y = h(x), khơng thể tính tốn để tìm giá trị x’≠x cho h(x’)=h(x) (hay khơng thể tìm thơng điệp khác mà có giá trị băm) 1.3.3 Tính kháng xung đột (Collision resistance) Khơng thể tính tốn để tìm hai liệu đầu vào x x’ phân biệt cho chúng có giá trị băm h(x)=h(x’) (hay sửa thông điệp mà không làm thay đổi giá trị băm nó) 1.4 Phân loại hàm băm mật mã Có thể phân loại hàm băm theo khóa sử dụng theo chức Theo khóa sử dụng, hàm băm gồm loại: hàm băm khơng khóa (unkeyed) hàm băm có khóa (keyed), biểu diễn Hình 1.2 Trong hàm băm khơng khóa nhận đầu vào thông điệp (dạng h(x), với hàm băm h thơng điệp x), hàm băm có khóa nhận đầu vào gồm thơng điệp khóa bí mật (theo dạng h(x, K), với hàm băm h thông điệp x K khóa bí mật) Trong hàm băm khơng khóa, mã phát sửa đổi (MDC – Modification Detection Code) sử dụng rộng rãi nhất, bên cạnh số hàm băm khơng khóa khác Tương tự, hàm băm có khóa, mã xác thực thông điệp (MAC - Message Authentication Code) sử dụng rộng rãi nhất, bên cạnh số hàm băm có khóa khác.[1] Hình 2Phân loại hàm băm theo khóa sử dụng Theo chức năng, chia hàm băm thành loại chính: - Mã phát sửa đổi (MDC - Modification Detection Code): 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 kỹ thuật khác (như chữ ký số) để đả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 MDC gồm loại nhỏ: + Hàm băm chiều (OWHF - One-way hash functions): Với hàm băm chiều, việc tính giá trị băm dễ dàng, việc 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): Với hàm băm chống đụng độ, khó để tìm thơng điệp khác có giá trị băm - Mã xác thực thông điệp (MAC - Message Authentication Code): MAC dùng để đảm bảo tính tồn vẹn thông điệp mà không cần kỹ thuật bổ sung khác MAC loại hàm băm có khóa đề cập trên, với đầu vào thông điệp khóa bí mật [1] 1.5 Mơ hình xử lý liệu Hinh Mơ hình tổng quát sử lý liệu hàm băm Hình 1.3 biểu diễn mơ hình tổng qt xử lý liệu hàm băm Theo đó, thơng điệp đầu vào với độ dài tùy ý (arbitrary length input) qua hàm nén lặp nhiều vòng (iterated compression function) để tạo chuỗi đầu có kích thước cố định (fixed length output) Chuỗi qua khâu chuyển đổi định dạng tùy chọn (optional output transformation) để tạo chuỗi băm kết (output) Hình 1.4 mơ tả chi tiết trình xử lý liệu hàm băm Theo đó, q trình xử lý gồm bước chính: (1) tiền xử lý (preprocessing), (2) xử lý lặp (iterated processing) (3) chuyển đổi định dạng Trong bước tiền xử lý, thông điệp đầu vào x trước hết nối thêm số bit kích thước khối, sau chia thành khối có kích thước xác định Kết bước t khối liệu có kích thước có dạng x = x x2…xt làm đầu vào cho bước Trong bước 2, khối liệu xi xử lý thông qua hàm nén f để tạo đầu H i Kết bước chuỗi đầu H t Ht chuyển đổi định dạng hàm g để tạo chuỗi giá trị băm hết h(x) Hinh Mơ hình chi tiết xử lý liệu hàm băm 10 2.2.4.2 Giải thuật SHA3-512 Hình Tạo tin nhắn số SHA3-512 Bước Thêm bit đệm Thông điệp đệm để chiều dài đồng đến 896 modulo 1024 Padding thêm vào, tin nhắn có chiều dài mong muốn Như vậy, số padding bit nằm phạm vi từ đến 1024 Phần đệm bao gồm khối đơn bit số cần thiết bit Bước Thêm chiều dài Một khối 128 bit nối vào thư Khối coi số nguyên 128-bit không dấu (quan trọng byte đầu tiên) chứa chiều dài thông báo ban đầu (trước đệm) Kết hai bước mang lại thơng báo số ngun nhiều 1024 bit chiều dài Bước Khởi tạo đệm băm Một đệm 512-bit sử dụng để giữ trung gian cuối kết hàm băm Bộ đệm biểu diễn dạng ghi 64 bit (a, b, c, d, e, f, g, h) Các ghi khởi tạo cho bit 64-bit sau 23 a = 6A09E667F3BCC908 e = 510E527FADE682D1 b = BB67AE8584CAA73B f = 9B05688C2B3E6C1F c = 3C6EF372FE94F82B g = 1F83D9ABFB41BD6B d = A54FF53A5F1D36F1 h = 5BE0CD19137E2179 Các giá trị lưu trữ định dạng big-endian, yếu tố quan trọng byte từ vị trí byte thấp (cực tả) Những từ thu cách lấy 64 bit phần phân đoạn hình vng gốc tám số nguyên tố Bước Thông báo quy trình khối 1024-bit (128 từ) Tâm thuật tốn mơ-đun bao gồm 80 vịng; mơ-đun dán nhãn F Hình 11.8 Logic minh họa Hình 11.9 Mỗi vịng đầu vào giá trị đệm 512-bit, abcdefgh, cập nhật nội dung đệm.Tại đầu vào vòng đầu tiên, đệm có giá trị giá trị băm trung gian, Mỗi vòng sử dụng giá trị 64-bit, xuất phát từ khối 1024-bit xử lý Các giá trị bắt nguồn cách sử dụng lịch trình thơng báo mơ tả sau Mỗi vòng sử dụng số phụ gia, trong số 80 vịng Những từ đại diện cho 64 bit phần phân đoạn cube 80 số nguyên tố đầu tiên.Các số cung cấp "ngẫu nhiên" tập hợp mẫu 64-bit, loại bỏ thường xuyên liệu đầu vào Đầu vòng thứ tám thêm vào đầu vào cho vòng để sản xuất Việc bổ sung thực độc lập cho tám từ đệm với từ tương ứng trong, sử dụng cộng modulo 24 Hình Xử lý SHA3-512 khối đơn 1024 bit Bước Kết đầu Sau tất khối 1024-bit xử lý, đầu từ giai đoạn th thơng báo thư thoại 512-bit Chúng ta tóm tắt hành vi SHA-512 sau: H0 = IV Hi =SUM64(Hi=1, abcdefghi) MD = HN IV = giá trị ban đầu đệm abcdefgh, định nghĩa bước Abcdefghi = đầu vòng xử lý cuối thông điệp thứ khối N = số khối tin nhắn (bao gồm padding chiều dài lĩnh vực) MD = Giá trị cuối cùng[9] VD SHAKE128("The quick brown fox jumps over the lazy dog", 256) 25 f4202e3c5852f9182a0430fd8144f0a74b95e7417ecae17db0f8cfeed0e3e66e SHAKE128("The quick brown fox jumps over the lazy dof", 256) 853f4538be0db9621a6cea659a06c1107b1f83f02b13d18297bd39d7411cf10c Hình So sánh hàm băm Hình 2.7 so sánh hàm băm MD5, SHA-0, SHA-1, họ SHA-2, họ SHA-3 tiêu 26 Chương Các điểm yếu, dạng công vào hàm băm 3.1 Các điểm yếu SHA SHA0: Khi thơng điệp muốn mã hóa có giá trị gần nhau, trường hợp họ phát 142 bit số 160 bít va chạm hồn tồn SHA-0 giảm xống cịn 62 80 vịng theo nghiên cứu trước thuật tốn SHA0 không sử dụng nhiều thay SHA1 SHA1: Năm 2005, điểm yếu mật mã phát SHA-1 Hàm băm thiết kế để giảm thiểu xác suất liệu đầu vào khác lại cho đầu giá trị băm giống nhau, điều có nghĩa có liệu đầu vào khác cho đầu giá trị băm giống nhau, theo Cryptographic hash collision Khi sử dụng SHA để mã hóa mật khẩu: phương pháp khơng khó khăn cho kẻ cơng chúng có thư viện mật 3.2.Các dạng công vào SHA 3.2.1 Tấn công va chạm Về mặt tốn học, cơng va chạm tìm thấy hai thơng điệp khác m m2, hash (m1) = hash (m2) Trong công va chạm cổ điển, kẻ công khơng kiểm sốt nội dung hai thơng báo, chúng tùy ý chọn theo thuật toán Giống mật mã khóa đối xứng dễ bị công vũ lực, hàm băm mật mã vốn dễ bị va chạm sử dụng công sinh nhật Do vấn đề sinh nhật, công nhanh nhiều so với lực lượng tàn bạo Một băm n bit bị hỏng 2n/2 thời gian (đánh giá hàm băm) Có thể thực cơng hiệu cách sử dụng phân tích mật mã cho hàm băm cụ thể Khi công va chạm phát tìm thấy nhanh cơng sinh nhật, hàm băm thường bị tố cáo "bị hỏng" Sự cạnh tranh hàm băm NIST phần lớn gây công va chạm công bố chống lại hai hàm băm sử dụng phổ biến, MD5[10] SHA-1 Các công va chạm chống lại MD5 cải thiện nhiều, kể từ năm 2007, vài giây máy tính thơng thường.[11] Va chạm Hash tạo theo cách thường có chiều dài khơng đổi phần lớn khơng có cấu trúc, khơng thể trực tiếp áp dụng để công định dạng tài liệu phổ biến giao thức 27 Tuy nhiên, cách giải cách lạm dụng cấu trúc động có nhiều định dạng Bằng cách này, tạo hai tài liệu tương tự để có giá trị băm Một tài liệu hiển thị cho quan để ký kết, sau chữ ký chép vào tập tin khác Một tài liệu độc hại chứa hai thông điệp khác tài liệu, điều kiện hiển thị nhiều thông tin khác qua thay đổi tinh tế tệp: - Một số định dạng tài liệu PostScript, macro Microsoft Word, có cấu trúc có điều kiện[12] (if-then-else) cho phép kiểm tra xem vị trí tệp tin có giá trị hay vị trí khác để kiểm sốt hiển thị - TIFF chứa hình ảnh cắt, với phần khác hình ảnh hiển thị mà khơng ảnh hưởng đến giá trị băm.[12] - Các tệp PDF dễ bị công va chạm cách sử dụng giá trị màu (văn thư hiển thị với màu trắng trộn vào văn thư khác hiển thị với màu tối) sau thay đổi để thay đổi nội dung văn có chữ ký [12] Sự mở rộng công va chạm công va chạm tiền tố chọn, cụ thể hàm băm Merkle-Damgård Trong trường hợp này, kẻ cơng chọn hai tài liệu tùy tiện khác nhau, sau nối giá trị tính khác dẫn đến tồn tài liệu có giá trị băm Cuộc công mạnh mẽ nhiều so với vụ va chạm cổ điển Toán học cho biết, đưa hai tiền tố khác p1, p2, cơng tìm thấy hai phụ m1 m2 hash (p1 ∥ m2) = hash (p1 ∥ m2) (trong ∥ phép nối) Trong năm 2007, công va chạm tiền tố tìm thấy MD5, địi hỏi khoảng 250 đánh giá chức MD5 Bài báo chứng tỏ hai chứng X.509 cho tên miền khác nhau, với giá trị băm va chạm Điều có nghĩa quan chứng yêu cầu ký chứng cho tên miền sau chứng sử dụng để giả mạo tên miền khác Một công va chạm thực xuất vào tháng 12 năm 2008 nhóm nhà nghiên cứu bảo mật xuất chứng ký kết X.509 giả mạo sử dụng để giả mạo quan chứng nhận, lợi dụng công va chạm tiền tố chống lại chức băm MD5 Điều có nghĩa kẻ cơng giả mạo trang web bảo mật SSL người đàn ông giữa, làm chứng thực chứng xây dựng trình duyệt web để bảo vệ thương mại điện tử Chứng giả mạo khơng quan thực tiết lộ có thời gian hết hạn giả mạo tùy ý Mặc dù MD5 yếu năm 2004, quan chứng nhận sẵn sàng ký chứng kiểm chứng MD5 vào tháng 28 12 năm 2008, chứng ký kết mã Microsoft sử dụng MD5 vào tháng năm 2012 Phần mềm độc hại Flame sử dụng thành công biến thể công va chạm tiền tố lựa chọn để giả mạo việc ký kết thành phần chứng gốc Microsoft sử dụng thuật toán MD5 bị xâm nhập 3.2 2.Tấn cơng hàm Hash theo kiểu ngày sinh nhật Nếu kích thước hàm Hash nhỏ, tìm văn có giá trị hàm băm, tức có va chạm mà khơng phụ thuộc vào số lượng biến đổi hàm, cách cơng có tên ngày sinh nhật Ý tưởng phương pháp dựa toán ngày sinh nhật sau Cần phải chọn nhóm người để xác suất hai người có ngày sinh nhật 0.5? Vấn đề chổ xác suất trùng ngày sinh nhật cặp ngẫu n(n − 1) / ≈ n nhiên p’=1/365, cịn nhóm gồm n người có cặp khác Từ dể dàng nhận đánh giá gần Xác suất để tồn cặp có ngày sinh n ≈ 1/ p' p = p' n / , từ p=1/2 thu Chúng ta xem sử dụng toán ngày sinh nhật để tìm va chạm hàm Hash Giả sử cho H hàm Hash với kích thước đầu m bít Chúng ta có N tin khác H (i ) M (i ) , i = N , tính tốn giá trị băm tin này, giá trị tương ứng Nếu hàm Hash hàm biến đổi giả ngẫu nhiên dễ dàng tính xác suất H (i ) cho N giá trị không tìm hai Đầu tiên xem đánh giá dựa tính tốn gần đúng, cho số lượng va chạm đủ nhỏ Chúng ta chọn số giá trị phần lại P (1) ≈ (1 − 2− m ) N −1 H (1) Xác suất để khơng trùng với Tiếp tục chọn số giá trị H ( 2) Xác suất để khơng trùng với phần lại P ( ) ≈ (1 − 2− m ) N − Chúng ta chọn tương tự giá trị hàm Hash, bước thứ I thu xác suất không trùng 29 P ( i ) ≈ (1 − 2− m ) N − i Tất cần thực N-1 bước kiểm tra không trùng Xác suất để không giá trị chúng không trùng là: P ' ≈ (1 − 2− m ) N −1 ⋅ (1 − 2− m ) N − ⋅ ⋅ (1 − 2− m ) N − i ⋅ ⋅ (1 − − m ) = (1 − − m ) ∑ Với ∑ = + + + ( N − 1) = N ( N − 1) / Xác suất tìm thấy va chạm p = − p ' = − (1 − 2− m ) ∑ ≈ − (1 − ∑ ⋅ − m ) ≈ N ⋅ 2− m −1 Với xác suất va chạm ½ ta có biểu thức: N ⋅ 2−m −1 = / , Từ xác định gía trị N1/2: N1 / ≈ 2m Chúng ta xem tính cách tính xác xác suất tìm va chạm tập hợp H ( i ) , i = N để H ( 2) trùng , nhận cách đơn giản sau Chúng ta chọn không trùng với H ( 2) H (1) p H (1) p (3) = (1 − 2− m )(1 − ⋅ 2− m ) , ( 2) −m = (1 − ) với điều , ,…, H ( N −1) khác kiện H (1) H ( 2) Xác suất để không Xác suất H ( 3) trùng không p(N ) Một cách tương tự, xác định xác suất không trùng với giá trị H ( 2) Tiếp tục chọn H ( 3) H ( 2) H (1) H ( ) p ( N ) = p ( ) ⋅ p ( 3) ⋅ ⋅ p ( N −1) ⋅ [1 − ( N − 1) ⋅ − m ] , đôi ,…, H ( N −1) để , với điều kiện giá trị Chúng ta nhận H (N ) H (1) Như giá trị xác xác suất khơng có va chạm là: N −1 p ' = p ( N ) = (1 − 2− m ) ⋅ (1 − ⋅ 2− m ) ⋅ ⋅ [1 − (i − 1) ⋅ − m ] ⋅ ⋅ [1 − ( N − 1) ⋅ − m ] = ∏ (1 − i ⋅ − m ) i =1 30 Từ xác định xác suất có va chạm p=1-p’ Áp dụng công thức gần − x ≈ e− x Chúng ta thu được: N −1 N −1 N −1 i =1 i =1 i =1 p ' = ∏ (1 − i ⋅ − m ) ≈ ∏ exp(−i ⋅ − m ) = exp(− ∑ i ⋅ 2− m ) = exp[− N ( N − 1) ⋅ − m −1 ] Xác suất tồn va chạm là: p ≈ − p ' = − exp[− N ( N − 1) ⋅ − m−1 ] Từ ta dể dạng nhận điều sau: N + N ≈ 2m +1 ln 1− p , Hay N ≈ 2m +1 ln 1− p , N ≈ 2m +1 ln 1− p N1 / ≈ 1.17 m Với p=1/2 có Chúng ta thấy kết phương án tính xác phương án Và từ công thức thấy, số 23 người chọn ngẫu nhiên có cặp trùng ngày sinh với xác suất ½ Như để thực cơng cần nhớ 1.17 ⋅ 2m / m 1.17 ⋅ bít cần thực 1.17 ⋅ m / tính tốn hàm m/2 Hash thực xếp số Và từ chúng thấy m khơng đủ lớn dễ dàng tìm số lượng tin mà có va chạm Với công nghệ m ≥ 128 địi hỏi bít 3.2.3 Tấn cơng hàm hash theo kiểu gặp (meet – in – the – middle attack) Phương pháp công gặp áp dụng cho hàm Hash xây dựng sở mã khối, mà tìm hiểu phần trước Phương pháp cho kết tốt phương pháp công theo ngày sinh nhật Trong cơng theo kiểu ngày sinh nhật tìm va chạm giá trị nhận hàm Hash tìm kiếm va chạm ngẫu 31 nhiên Tấn công đề xuất công hàm Hash xây dựng sở sơ đồ Rabin xem hình 3.1 M1 H0 E M2 H1 E Mi H i-1 H2 E Mn Hi H n-1 Hn E Hình Sơ đồ tạo hàm Hash Rabin Sơ đồ dựa thuật tốn mã khối an tồn Sơ đồ dựa ý tưởng tính tốn phức tạp xác định khóa biết đầu vào đẩu khối liệu Khối liệu Mi sử dụng khóa tương ứng với vịng tính tốn hàm Hash Tìm kiếm va chạm liên quan đến tốn tính tốn khóa Ví dụ, cơng thay số khối M k thành M’k Điều dẫn đến nhận giá trị vịng hàm hash H’ k Có thể tồn số khóa mã M’k+1, mà nhận đẳng thức sau: H k' +1 = EM ' k +1 ( H k' ) = H k +1 Nếu cách thám mã tìm M 'k M 'k +1 cho thay khối liệu Mk M k +1 M 'k +1 thành , tức ta tìm tin mới, mà có giá trị hàm Hash với giá trị hàm Hash tin ban đầu Nếu thuật toán mã khối vững phép cơng sở biết tin, phép cơng cho hàm Hash có độ tính phức tạp cao Chúng ta xem cụ thể phép công Giả sử cho tin M, giá trị hàm Hash M H Mục đích phép cơng tìm tin khác M’ mà gía trị hàm Hash M’ H Chúng ta chia tin M (1) = ( M , M , , M k ) M = ( M , M , , M k , M k +1 , , M n ) M ( ) = ( M k +1 , , M n ) Phần đẩu tiên tin biến dạng nhiều lần biến dạng giá trị hàm Hash tính N1 gía trị H (1) thành hai phần H (1) Giả sử nhận từ N1 phương án phần thứ (xem hình …) Phần thứ hai tin M ( 2) biến dạng nhiều lần, từ biến dạng hàm Hash tính theo thuật tốn khác, tính theo thứ tự ngược sử dụng hàm giải mã D, tương ứng vơi 32 H ( 2) hàm mã hóa E (xem hình…) Giả sử thu N giá trị từ N2 phương án phần hai Khi số lượng N1 N2 đủ lớn tìm cặp giá trị số H (1) H ( 2) vớ xác suất lớn Giả sử tương ứng với hai tin M '(1) M '( 2) M ' = (M ' , M ' ) ≠ M (1) ( 2) Rõ ràng tin mà H(M)=H(M’) Vậy tìm va chạm Giờ xác định xem cần nhớ độ khó phương pháp cơng 2m Chúng ta giả sử N1 N2 tồn giá trị nhỏ , m kích thước giá trị băm Như thế, với giá trị xác suất gần đủ xác tiếp nhận, cho giá trị H (1) {H } (1) từ tập {H } ( 2) không trùng với giá trị tập −m N p1 ≈ (1 − ) {H } (1) Xác suất để không giá trị tập {H } ( 2) trùng với giá trị tập p ' ≈ (1 − 2− m ) N N1 {H } (1) Như xác suất để tìm cặp trùng tập {H } ( 2) tập p ≈ − p ' = − (1 − − m ) N1 N ≈ − (1 − N1 N ⋅ − m ) ≈ N1 N ⋅ − m N1 N ⋅ −m = 1/ Bây với điều kiện đốiv với trường hợp xác định giá trị N1/2, với xác suất va chạm ½: N1 = N = N dễ dàng N1 / ≈ m −1 Để nhận đánh giá xác N1 = N = 2− m / p=0.63 Như cần nhớ cần thiết cho phép công là N1 + N ≈ 2m +1 2m m −1 nhận gía trị bít, độ khó cơng 33 Chương Demo Hình Chương trình SHA-1 Hình 4.1 Thể đoạn chương trình sử dụng thuật tốn SHA-1 java để cài đặt thử nghiệm 34 Hình Demo SHA-1 Hình SHA-1 online 35 Kết luận Bài báo cáo trình bày khái niệm tổng quát hàm băm mật mã, hàm băm SHA với tính chất, phân loại ứng dụng chúng từ ứng dụng vào phân tích giải thuật băm SHA để thấy hoạt động thay đổi phiên họ hàm băm SHA Với tính chất hàm băm chiều SHA sử dụng vào hầu hết ứng dụng thương mại điện tử, xác thực mật khẩu, thông điệp chữ ký số giúp làm giảm thời gian mã hóa/ ký số, đưa kết cho mã hóa, đảm bảo tính tồn vẹn thơng tin giảm thiểu thời gian truyền tin qua mạng Bài báo cáo sâu tìm hiểu vào số điểm yếu, dạng cơng vào SHA để tìm giải pháp nghiên cứu mới, hướng Mặc dù SHA-1 tun bố khơng an tồn nhà nghiên cứu từ thập kỷ trước Microsoft tháng 10/2013 công bố sau năm 2016 không chấp nhận chứng thư số SHA-1, nhiên SHA1 sử dụng rộng rãi Internet Để đảm bảo an toàn Internet, đến lúc loại bỏ SHA-1 sử dụng hàm băm mật mã an toàn SHA-256 SHA-3 36 Tài liệu tham khảo [1] [2] H X Dậu, “An toàn toàn bảo mật hệ thố ng thông tin,” 2017 Wikipedia, “SHA – Wikipedia tiếng Việt.” [Online] Available: https://vi.wikipedia.org/wiki/SHA [Accessed: 13-Mar-2018] [3] B Schneier, “Cryptanalysis of SHA-1 - Schneier on Security.” [Online] Available: https://www.schneier.com/blog/archives/2005/02/cryptanalysis_o.html [Accessed: 13-Mar-2018] [4] S Manuel and T Peyrin, “Collisions on SHA-0 in one hour,” Lect Notes Comput Sci (including Subser Lect Notes Artif Intell Lect Notes Bioinformatics), vol 5086 LNCS, pp 16–35, 2008 [5] X Wang, Y L Yin, and H Yu, “Finding Collisions in the Full SHA-1,” no 90304009, pp 17–36, 2005 [6] W Penard and T van Werkhoven, “On the Secure Hash Algorithm family,” p 17, 2008 [7] N H Function, “Description of SHA-256, SHA-384 AND SHA-512,” Www.Iwar.Org.Uk/Comsec/Resources/Cipher/Sha256-384-512.Pdf, pp 1–50, 2004 [8] J Luis, G Pardo, and C Gómez-rodríguez, “The SHA-3 Family of Cryptographic Hash Functions and Extendable-Output Functions,” 2015 [9] W Stallings, Cryptography and network security principles and practice, 5th ed., vol 139, no 2011 [10] Xiaoyun Wang and Dengguo Feng and Xuejia Lai and Hongbo Yu, “Cryptology ePrint Archive: Report 2004/199,” 2004 [Online] Available: https://eprint.iacr.org/2004/199 [Accessed: 13-Mar-2018] [11] M Stevens, “On collisions for MD5,” Http://Www.Win.Tue.Nl/, no June, p 89, 2007 [12] M Gebhardt, G Illies, and W Schindler, “A Note on the Practical Value of Single Hash Collisions for Special File Formats,” October, no October, 2005 37 ... hiểu giải thuật băm SHA0 ,1,2,3 Các điểm yếu, dạng công vào SHA Cài đặt thử nghiệm SHA1 ” tìm hiểu hàm băm SHA ứng dụng để hiểu rõ tiến hành thử nghiệm kiểm chứng Chương Khái quát hàm băm mật mã... 853f4538be0db9621a6cea659a06c1107b1f83f02b13d18297bd39d7411cf10c Hình So sánh hàm băm Hình 2.7 so sánh hàm băm MD5, SHA- 0, SHA- 1, họ SHA- 2, họ SHA- 3 tiêu 26 Chương Các điểm yếu, dạng công vào hàm băm 3.1 Các điểm yếu SHA SHA0: Khi thông điệp muốn... tiền nhiệm nó, SHA- 1 Họ SHA- 2 bao gồm sáu hàm băm với digests (giá trị băm) 224, 256, 384 512 bit: SHA- 224, SHA- 256, SHA- 384, SHA- 512, SHA- 512/224, SHA -512/256 SHA- 256 SHA- 512 hàm băm tính từ