Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 44 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
44
Dung lượng
494,21 KB
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: TS Đặng Minh Tuấ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 Hà Nội 2017 Mục lục LỜI MỞ ĐẦU DANH SÁCH CÁC THUẬT NGỮ TIẾNG ANH VÀ VIẾT TẮT DANH MỤC CÁC HÌNH VẼ .4 DANH MỤC BẢNG BIỂU 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ã .7 1.3 Tính chất hàm băm mật mã 1.6 Ứng dụng hàm băm 11 Chương Các giải thuật hàm băm SHA .13 2.1 Giới thiệu SHA 13 2.2 Các giải thuật SHA 14 2.2.1 SHA-0 14 2.2.2 SHA-1 16 2.2.3 SHA-2 18 2.2.4 SHA-3 23 Chương Các điểm yếu, dạng công vào hàm băm 28 3.1 Các điểm yếu SHA .28 3.2.Các dạng công vào SHA 28 3.2.1 Tấn công va chạm 28 3.2 2.Tấn công hàm Hash theo kiểu ngày sinh nhật 30 3.2.3 Tấn công hàm hash theo kiểu gặp (meet – in – the – middle attack) 32 Chương Demo 34 Kết luận 36 Tài liệu tham khảo .37 DANH SÁCH CÁC THUẬT NGỮ TIẾNG ANH VÀ VIẾT TẮT Từ viết tắt Thuật ngữ ti AES Advanced En OWHF One Way Has CRHF Collision Res Functions IPSec Internet Proto MAC Message Aut MD Message Dig MDC Modification National Inst NIST and Technolo NSA PGP PKI RSA SHA SHS National Secu Pretty Good P Public Key In RSA Public K Secure Hash Secure Hash Secure Socke Layer Security SSL/TLS DANH MỤC CÁC HÌNH VẼ Hinh Mơ hình nén thơng tin hàm băm Error! Bookmark not defined Hinh Phân loại hàm băm theo khóa sử dụng Error! Bookmark not defined Hinh Mơ hình tổng quát sử lý liệu hàm băm 10 Hinh Mơ hình chi tiết xử lý liệu hàm băm 11 Hinh Chữ ký số 12 Hinh Chứng thực chữ ký số 13 Hình Lưu đồ vịng xử lý SHA-1 18 Hình 2 Lưu đồ vòng lặp SHA-2 19 Hình Bước nội thứ j hàm nén SHA-256 C 20 Hình Lịch trình thơng điệp SHA-256 20 Hình Tạo tin nhắn số SHA3-512 24 Hình Xử lý SHA3-512 khối đơn 1024 bit 26 Hình So sánh hàm băm 27 Hình Sơ đồ tạo hàm Hash Rabin 32 Hình Chương trình SHA-1 34 Hình Demo SHA-1 35 Hình SHA-1 online 35 DANH MỤC BẢNG BIỂU Bảng Các hàm Boolean số SHA-0 16 Bảng Các hàm Boolean số SHA-1 17 DANH MỤC HÌNH VẼ Hình 1: Mơ hình nén liệu hàm băm Hình 2Phân loại hàm băm theo khóa sử dụng 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à cịn 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 T 2, 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 tố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 tố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: 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 29 chứng nhận sẵn sàng ký chứng kiểm chứng MD5 vào tháng 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 tố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 tố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 nhiên p’=1/365, cịn nhóm gồm n người có dàng nhận đánh giá gần Xác suất để tồn cặp có ngày sinh p = p'n Chúng ta xem sử dụng tố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 M (i) ,i =1 N , tính tốn giá trị băm tin này, giá trị tương ứng H (i ) Nếu hàm Hash hàm biến đổi giả ngẫu nhiên dễ dàng tính xác suất cho N giá trị H Đầ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ị H lại P ≈ (1 − −1 Tiếp tục chọn số giá trị H P(2) ≈ (1 − 2−m )N −2 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 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 Với ≈ (1 −2 −m ∑=1+ + + (N −1) = N(N −1) / Xác suất tìm thấy va chạm ∑ p =1 − p'=1 − (1 − 2−m ) ≈1 − (1 − ∑⋅ 2−m ) ≈ N ⋅ 2−m−1 30 Với xác suất va chạm ½ ta có biểu thức: N m −1 Từ xác định gía trị N1/2: N ≈ 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 (i) H để =1 N , nhận cách đơn giản sau Chún ,i không trùng H (2) trùng với (3) p = H (1 − −m )(1− 2⋅ trùng với giá trị ,…, (N −1) H (N) p khác (2) =p (3) ⋅p va chạm là: = (1 − 2−m ) ⋅ (1 − ⋅ 2−m ) ⋅ ⋅[1 − (i −1) ⋅ 2−m ] p' = p( N ) i =1 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 ≈ −x e N −1 ∏ (1 − p'= i =1 i −m ⋅2 Xác suất tồn Chúng ta thu được: 1) ⋅ va chạm là: −m−1 p ≈1− p' =1− exp[−N (N −1) điều sau: ⋅2 Từ ta dể dạng nhận N ≈ 2m +1 , Hay m+1 N ≈2 ln th ậy để thực công cần nhớ 1.17 ⋅ 2m / m bít cần thực 1.17 ⋅ 2m / ì tính tốn hàm c 31 N≈ ó n h chín ất h m xác ột c phư ặ ơng p án tr đầu ù tiên n Và g từ n côn g g thứ y c si n h ng v ta ới thấy x , tron c g số s 23 u ngư ất ời chọ ½ n ngẫ N u h nhiê n v m/2 Hash thực xếp 1.17 ⋅ số Và từ chúng thấy r lớn dễ dàng tìm lượng tin mà có va chạm Với cơng nghệ số địi hỏi m ≥128bí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 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 M M M H H E M H E E H E Hình Sơ đồ tạo hàm Hash Rabin Sơ đồ dựa thuật toán mã khối an toà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 H =E M' Nếu cách thám mã tìm thành M 'k M 'k +1 , 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’ M (1) nhiều lần biến dạng giá trị hàm Hash tính H N1 gía trị H 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 32 khác, tính theo thứ tự ngược sử dụng hàm giải mã D, tương ứng vơi hàm mã hóa E (xem hình…) Giả sử thu N2 giá trị H Khi số lượng N1 N2 đủ lớn tìm cặp giá trị nh (2) H vớ xác suất lớn Giả sử tương ứng với hai bả tin M '= (M ' xác định xem cần nhớ độ khó phương pháp cơng Chúng ta giả sử N1 N2 tồn giá trị nhỏ Như thế, với giá trị xác suất gần đủ xác tiếp nhận, cho giá trị H (1) từ tập {H (1) } không trùng với giá trị tập {H (2) } −2 { Xác suất để không giá trị tập H (1) }trùng với giá trị tập {H p'≈ (1 − Như xác suất để tìm cặp trùng tập {H tập {H p ≈1 − p'=1 − (1 − 2−m )N1 N ≈1 (1 − N1N2 ⋅ 2−m ) ≈ N1N2 ⋅2 Bây với điều kiện N1N2 ⋅ 2−m =1/ đốiv với trường hợp N = N = N dễ dàng xác định giá trị N1/2, với xác suất va chạm ½: N1/ Để nhận đánh giá xác N1 = N Như cần nhớ cần thiết cho phép cơng =2 2m 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 tuyên bố không an toà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] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] H X Dậu, “An tồn tồ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] 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] 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 X Wang, Y L Yin, and H Yu, “Finding Collisions in the Full SHA-1,” no 90304009, pp 17–36, 2005 W Penard and T van Werkhoven, “On the Secure Hash Algorithm family,” p 17, 2008 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 J Luis, G Pardo, and C Gómez-rodríguez, “The SHA-3 Family of Cryptographic Hash Functions and Extendable-Output Functions,” 2015 W Stallings, Cryptography and network security principles and practice, 5th ed., vol 139, no 2011 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] M Stevens, “On collisions for MD5,” Http://Www.Win.Tue.Nl/, no June, p 89, 2007 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 27 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ừ