Bài tập lớn Tìm hiểu các giải thuật băm SHA0,1,2,3 Các điểm yếu, các dạng tấn công vào SHA Cài đặt thử nghiệm SHA1

33 60 1
Bài tập lớn Tìm hiểu các giải thuật băm SHA0,1,2,3 Các điểm yếu, các dạng tấn công vào SHA  Cài đặt thử nghiệm SHA1

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

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: Cơ sở An tồn 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: Nhóm Hà Nội 2021 MỤC LỤC DANH SÁCH CÁC THUẬT NGỮ TIẾNG ANH VÀ VIẾT TẮT DANH MỤC CÁC HÌNH VẼ .3 DANH MỤC CÁC BẢNG BIỂU .3 LỜI MỞ ĐẦU CHƯƠNG 1: KHÁI QUÁT VỀ HÀM BĂM MẬT MÃ 1.1 Khái quát 1.2 Phân loại 1.3 Mơ hình xử lí liệu 1.4 Ứng dụng CHƯƠNG 2: CÁC GIẢI THUẬT HÀM BĂM SHA 2.1 Giới thiệu SHA 2.2 Các giải thuật SHA 10 2.2.1 SHA-0 10 2.2.2 SHA-1 11 2.3 SHA-2 .13 2.3.1 Giới thiệu SHA-2 13 2.3.2 Các phiên 14 2.4 SHA-3 .17 2.4.1 Giới thiệu 17 2.4.2 Thiết kế SHA-3 .18 CHƯƠNG 3: CÁC ĐIỂM YẾU VÀ CÁC DẠNG TẤN CÔNG VÀO HÀM BĂM 22 3.1 Các điểm yếu 22 3.2 Các dạng công vào SHA 22 3.2.1 Tấn công va chạm (Collision Attack) .22 3.2 Tấn công hàm Hash theo kiểu ngày sinh nhật (Birthday Attack) 24 3.2.3 Tấn công hàm hash theo kiểu gặp (Meet – In – The – Middle Attack) .26 3.2.4 Tấn công tiền ảnh (Preimage Attack) .27 CHƯƠNG 4: CÀI ĐẶT THỬ NGHIỆM SHA-1 .28 KẾT LUẬN 29 CÁC TÀI LIỆU THAM KHẢO 30 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ếng Anh/Giải thích Thuật ngữ tiếng Việt/Giải thích MDC Modification Detection Code Mã phát sử đổi (sử dụng hàm băm khơng khóa) MD SHA CRC Message Digest Chuỗi đại diện thông điệp Secure Hash Algorithm Giải thuật băm an tồn Cyclic Redundancy Check Kiểm dư chu trình MAC Message Authentication Code OWHF CRHF SSL/TL S IPSec One Way Hash Functions Mã xác thực thông điệp (sử dụng hàm băm có khóa) Hàm băm chiều Collision Resistant Hash Functions Hàm băm kháng xung đột Secure Socket Layer / Transport Layer Security Tầng socket bảo mật/Bảo mật tầng giao vận (một giao thức bảo mật) Internet Protocol Security Giao thức bảo mật mạng Giao thức mã hóa liệu qua mạng SSH Secure Socket Shell Giao thức kết nối mạng bảo mật S/MIME Secure/Multipurpose Internet Mail An toàn/Mở rộng thư mạng AES Advanced Encryption Standardhay Tiêu chuẩn mã hóa tiên tiến NSA National Security Agency Cơ quan An ninh Quốc gia National Institute of Standards and Viện Tiêu chuẩn Kỹ thuật Quốc NIST Technology gia Federal Information Processing Tiêu chuẩn xử lý thông tin liên FIPS Standards bang Phương thức công gặp MIMT Meet in the middle PGP Pretty Good Privacy DANH MỤC CÁC HÌNH Hình 1.1: Mơ hình nén thơng tin hàm băm Hình 1.2: Mơ hình tổng qt xử lí liệu hàm băm Hình 1.3: Mơ hình xử lí liệu hàm băm Y Hình 2.1: Lưu đồ vòng xử lý SHA-1 13 Hình 2.2: Lưu đồ vòng lặp SHA-2 14 Hình 2.3: Cấu trúc hàm Keccak 18 Hình 2.4: Cấu trúc bọt biển .19 Hình 3.1: Tấn công va chạm 22 Hình 3.2: Mơ hình công MITM 26 Hình 3.3: Mơ hình cơng tiền ảnh 27 Hình 4.1: Demo SHA-1 sử dụng hàm MessageDigest 28 DANH MỤC CÁC BẢNG BIỂU Bảng 2.1: Các hàm Boolean số SHA-0 11 Bảng 2.2: Các hàm Boolean số SHA-1 12 Bảng 2.3: 64 số nguyên tố dạng 32-bit 15 Bảng 2.4: Các thông số hàm băm SHA3 18 Bảng 2.5: Mảng offset r .20 Bảng 2.6: Các số vòng RC[i] 21 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 1: KHÁI QUÁT VỀ HÀM BĂM MẬT MÃ 1.1 Khái quát Các hàm băm (Hash functions) thuật tốn để tạo tóm tắt thơng điệp, sử dụng để nhận dạng đảm bảo tính tồn vẹn thồng điệp Hàm băm 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 sanh chuỗi đầu h(x) có chiều dài cố định n bit (tức: chiều dài thông điệp bất kì, đầu có chiều dài cố định) + Dễ tính tốn (Esae of computation): cho trước hàm h đầu vào x, việc tính tốn h(x) dễ dàng Hình 1.1: Mơ hình nén thơng tin hàm băm Thông điệp Message đầu vào với chiều dài tùy ý qua nhiều vong xử lí hàm băm để tạo chuỗi rút gọn Digset có kích thước cố định đầu 1.2 Phân loại - Theo khóa sử dụng : + Hàm băm khơng khóa (unkeyed) : đầu vào thông điệp (dạng h(x) với hàm băm h thông điệp x) VD: MDC, họ hàm băm MD (MD2, MD4, MD5, MD6), họ hàm băm SHA(0,1,2,3), CRC, Checksums,… + Hàm băm có khóa (keyed): đầu vào gồm thơng điệp khóa bí mật (dạng h(x, K) với hàm băm h, thông điệp x khóa bí mật K) VD:MAC,… - Theo chức năng: + Mã phát sửa đổi MDC (Modification Detection Code) 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, hàm băm khơng khóa Gồm loại nhỏ  Hàm băm chiều (OWHF – One-way hash function): dễ tính giá trị băm khó khơi phục thông điệp từ giá trị băm  Hàm băm chống đụng độ (CRHF – Collision resistant hash functions): khó để tìm thơng điệp khác có giá trị băm  MDC thường dùng q trình tạo kiểm tra chữ kí số + Mã xác thực thông điệp MAC (Message Authentication Code) 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, hàm băm có khóa  MAC dùng giao thức bảo mật SSL/TLS, IPSec, 1.3 Mơ hình xử lí liệu Hình 1.2: Mơ hình tổng qt xử lí liệu hàm băm Sau tạo chuỗi rút gọn Digset có kích thước cố đinh (fixed length out put), chuỗi qua khâu chuyển đổi định dạng tùy chọn để tạo chuỗi băm kết (out put) Hình 1.3: Mơ hình xử lí liệu hàm băm Trong bước (preprocessing – tiền xử lí): x nối thêm số bit kích thước khối chia thành khối có kích thước xác định Trong bước 2, khối liệu xi xử lí thơng qua hàm nén f để tạo đầu Hi->Ht Bước bước chuyển đổi định dạng Ht thành giá trị băm kết h(x) thông qua hàm g 1.4 Ứng dụng So với hàm hash thông thường, hàm băm mật mã thường có xu hướng sử dụng nhiều tài ngun tính tốn Vì lí này, hàm băm mật mã thường dùng bối cảnh cần bảo vệ, chống thông tin giả mạo trước đối tượng độc hại Sau số ứng dụng hàm băm mật mã: - Kiểm tra tính tồn vẹn message file: cách so sánh giá trị băm message trước sau truyền để xác định xem liệu có thay đổi xảy trình truyền hay khơng - Xác thực mật khẩu: ta lưu trữ mật giá trị hàm băm để tăng tính bảo mật Để kiểm tra, mật người dùng đưa vào băm so sánh với giá trị băm lưu - Bằng chứng công việc (Proof of Work): sử dụng blockchain để chống lại DoS, spam cách yêu cầu số công việc từ bên muốn truy cập Đặc điểm cơng việc cơng việc phải có độ khó cao, tốn nhiều thời gian (nhưng khả thi) phía người yêu cầu lại dễ kiểm tra cho nhà cung cấp CHƯƠNG 2: CÁC GIẢI THUẬT HÀM BĂM SHA 2.1 Giới thiệu SHA SHA thuật giải chấp nhận FIPS dùng để chuyển đoạn liệu định thành đoạn liệu có chiều dài khơng đổi với xác suất khác biệt cao Những thuật giải gọi "an tồn" vì, theo ngun văn chuẩn FIPS 1802 phát hành ngày tháng năm 2002: "for a given algorithm, it is computationally infeasible To find a message that corresponds to a given message digest, or To find two different messages that produce the same message digest Any change to a message will, with a very high probability,result in a different message digest" Tạm dịch đại ý là: 1.Cho giá trị băm định tạo nên thuật giải SHA, việc tìm lại đoạn liệu gốc khơng khả thi Việc tìm hai đoạn liệu khác có kết băm tạo thuật giải SHA không khả thi Bất thay đổi đoạn liệu gốc, dù nhỏ, tạo nên giá trị băm hoàn toàn khác với xác suất cao." Các thuật giải SHA SHA-1 (trả lại kết dài 160 bit), SHA-224 (trả lại kết dài 224 bit), SHA-256 (trả lại kết dài 256 bit), SHA-384 (trả lại kết dài 384 bit), SHA-512(trả lại kết dài 512 bit) Thuật giải SHA thuật giải băm mật phát triển cục an ninh quốc gia Mĩ (National Security Agency hay NSA) xuất thành chuẩn phủ Mĩ viện công nghệ chuẩn quốc gia Mĩ (National Institute of Standards and Technology hay NIST) Bốn thuật giải sau thường gọi chung SHA-2 SHA-3 phiên NIST bao gồm phiên SHA3-224, SHA3-256, SHA3-384 , SHA3-512, SHAKE128, SHAKE256 phiên giống phát hành vào tháng năm 2015 SHA-1 sử dụng rộng rãi nhiều ứng dụng giao thức an ninh khác nhau, bao gồm TLS SSL, PGP, SSH, S/MIME, IPSec SHA-1 coi thuật giải thay MD5, thuật giải băm 128 bit phổ biến khác.Hiện nay, SHA-1 không cịn coi an tồn đầu năm 2005, ba nhà mật mã họcngười Trung Quốc phát triển thành cơng thuật giải dùng để tìm hai đoạn liệu định có kết băm tạo SHA-1.Mặc dù chưa có làm điều tương tự với SHA-2, thuật giải, SHA-2 không khác biệt so với SHA-1 nên nhiều nhà khoa học bắt đầu phát triển thuật giải khác tốt SHA.NIST khởi đầu thi phát triển thuật giải băm an toàn SHA,giống quy trình phát triển chuẩn mã hóa tiên tiến (Advanced Encryption Standardhay AES) SHA-3 (Secure Hash Algorithm 3) thành viên họ thuật tốn băm mật mã (cryptographic hash function), cơng bố NIST (Viện Tiêu chuẩn Kỹ thuật quốc gia Hoa Kỳ) Vào giai đoạn 2005–2006, MD5 SHA-1 cho khơng cịn an tồn, SHA-2 dựa vào nguyên lí dùng cho MD5 SHA-1, NIST tổ thi để tìm tìm thuật tốn băm SHA-3 SHA-3 đời, SHA-3 phần họ thuật toán băm lớn gọi KECCAK SHA-3 đem lại khác biệt sử dụng cấu trúc bọt biển (Sponge construct), dùng hàm hốn vị để xử lí đưa output đồng thời hàm dùng cho việc xử lí input đưa vào hàm hash 2.4.2 Thiết kế SHA-3 SHA-3 sử dụng cấu trúc bọt biển, liệu "hấp thụ" (Absorbing) vào miếng bọt biển, sau kết "vắt" Trong giai đoạn hấp thụ, khối thông báo XORed thành tập hợp trạng thái, sau biến đổi thành tập hợp toàn cách sử dụng hàm hoán vị f Trong giai đoạn "bóp" (Squeesing), khối đầu đọc từ tập trạng thái, xen kẽ với hàm chuyển đổi trạng thái f Kích thước phần trạng thái viết đọc gọi "tỷ lệ" (ký hiệu r ), kích thước phần không bị ảnh hưởng đầu vào / đầu gọi "dung lượng" (ký hiệu c ) Năng lực định tính bảo mật chương trình Giá trị lớn mức độ bảo mật nửa cơng suất Hình 2.3: Cấu trúc hàm Keccak Các tham số liên quan kí hiệu: + m input đầu vào + Hàm Padding pad + Hàm hốn vị ngầu nhiên f gồm 24 round có đầu vào state trả state 18 + State: khối bit có độ dài d Trong SHA-3 b = 1600 + Phần thay đổi state rate có độ dài r + Phần cịn lại state capacity có độ dài c = b – r + Độ dài output d Dựa vào yêu cầu độ dài output d NIST thuật tốn băm mới, thơng số r c thay đổi theo bảng sau: D B r c SHA3-224 224 1600 1152 448 SHA3-256 256 1600 1088 512 SHA3-384 384 1600 832 768 SHA3-512 512 1600 576 1025 Bảng 2.4: Các thông số hàm băm SHA3 Trong phần pre-process, input m chia nhỏ thành n block X có độ dài r Để chia m thành n block độ dài, ta dùng hàm pad để chèn thêm lượng bit vào m cho độ dài m lúc chia hết cho r Lúc dãy block Xi (i = n-1) đưa vào cấu trúc bọt biển 2.4.2.1 Cấu trúc bọt biển (Spronge Construction) Hình 2.4: Cấu trúc bọt biển SHA-3 sử dụng cấu trúc bọt biển, liệu đực qua giai đoạn:  Absord: liệu đầu vào (input) “thấm hút” (absord) vào bọt biển  Squeeze: liệu đầu (output) “vắt ra” (squeeze) từ bọt biển 2.4.2.1.1 Giai đoạn 1: Absord - Bước 1: State khỏi tạo với chuỗi bit có độ dài b = 1600 - Bước 2: Duyệt qua tất Xi 19 - Bước 3: Thêm vào c bit vào Xi để Xi có độ dài b với State - Bước 4: XOR Xi vừa nhận với State - Bước 5: Đưa kết nhận qua hàm f, hàm f trả State Tiếp tục duyệt đến block Xi+1 2.4.2.1.2 Giai đoạn 2: Squeeze - Bước 1: Khởi tạo kết Y với chuỗi độ dài bit - Bước 2: Khi độ dài Y độ dài output d: lấy r bit State thêm vào Y - Bước 3: Nếu độ dài Y nhỏ d, sử dùng hàm f tạo State tiếp tục dùng r bit State để thêm vào Y - Bước 4: Nếu độ dài Y lớn d: lấy d bit đầu bỏ phần dư lại Lưu ý: Với SHA-3 ta cần thực lần bước 2, r > d 2.4.2.2 Hàm Padding Để đảm bảo liệu đầu vào m chia thành block r bit SHA3 dùng pattern 10*1 hàm padding: bắt đầu bit 1, theo sau bit (tối đa r-1), kết thúc bit Trường hợp có r-1 bit xảy khi: Block cuối liệu đầu vào có độ dài r-1 Khi đó, block thêm bit vào cuối để đủ độ dài r, block khác thêm vào chứa r-1 bit kết thúc bit Nếu độ dài block cuối liệu đầu vào r, nói cách khác độ dài liệu đầu vào chia hết cho r, lúc cần thêm block kết thúc Block kết thúc trường hợp bắt đầu 1, theo r-2 bit 0, kết thúc bit 2.4.2.3 Hàm hoán vị block (Block permutation) Trong Keccak, độ dài state tính theo công thức b = x x w với w = 2^l (l = 6, trường hợp SHA-3 w = 64 với l = 6, dẫn đến b = 1600) Xem state mảng chiều x x w kí hiệu A với: A[i][j][k] = bit thứ (5i + j) x w + k state Hàm hoán vị block bao gồm 12 + 2l round (với SHA-3 24 round), round gồm bước: + Bước 1: θ (thê-ta) Mỗi bit thay cách XOR tổng 10 bit “gần kề” Xét bit (x,y,z) 10 bit bao gồm:  bit cột “cạnh bên trái” A[x-1][0 4][z]  bit cột “chéo bên phải” A[x+1][0 4][z-1] A  x   y   z   A  x   y   z  �Parity  A  x  1  4  z   �Parity  A  x  1    z  1  Lưu ý: tất số mod cho kích thước chiều số + Bước 3: ρ (rơ) π (pi) Ta tính mảng B từ mảng A: 20 B  y   x  y   A x  y  � z  r  x, y  � � � Mảng offset r tính theo bảng sau: x=3 x=3 x=0 x=1 x=2 y=2 25 39 10 43 y=1 55 20 36 44 y=0 28 27 62 y=4 56 14 18 61 y=3 21 41 45 Bảng 2.5: Mảng offset r 15 + Bước 4: χ (chi) Sử dụng mảng B tính bước trước đặt kết vào mảng A A  x, y, z   B  x, y , z  � �B  x  1, y, z  �B  x  2, y , z   + Bước 5: ι (yô-ta) A  0, 0, z   A  0, 0, z  �RC  i, z  Với RC khác tùy vào round hàm f (với SHA-3 có 24 round) RC thể theo bảng sau RC[0] 0x0000000000000001 RC[12] 0x000000008000808B RC[1] 0x0000000000008082 RC[13] 0x800000000000008B RC[2] 0x800000000000808A RC[14] 0x8000000000008089 RC[3] 0x8000000080008000 RC[15] 0x8000000000008003 RC[4] 0x000000000000808B RC[16] 0x8000000000008002 RC[5] 0x0000000080000001 RC[17] 0x8000000000000080 RC[6] 0x8000000080008081 RC[18] 0x000000000000800A RC[7] 0x8000000000008009 RC[19] 0x800000008000000A RC[8] 0x000000000000008A RC[20] 0x8000000080008081 RC[9] 0x0000000000000088 RC[21] 0x8000000000008080 RC[10] 0x0000000080008009 RC[22] 0x0000000080000001 RC[11] 0x000000008000000A RC[23] 0x8000000080008008 Bảng 2.6: Các số vòng RC[i] 21 22 CHƯƠNG 3: CÁC ĐIỂM YẾU VÀ CÁC DẠNG TẤN CÔNG VÀO HÀM BĂM 3.1 Các điểm yếu 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 bit va chạm đầy đủ SHA-0 giảm xống 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 (Collision Attack) Trong công va chạm, kẻ cơng tìm thấy hai thơng điệp có đầu băm gửi thơng điệp khơng xác đến người nhận Hình 3.1: Tấn cơng va chạm 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 tốn (giống mật mã khóa đối xứng dễ bị 23 công vũ lực) Sự cạnh tranh hàm băm NIST phần lớn gây công va chạm chống lại hai hàm băm sử dụng phổ biến, MD5 SHA-1: - Một số định dạng tài liệu PostScript, macro Microsoft Word, có cấu trúc có điều kiện (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 - 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) Cuộc công thực tế: Trong năm 2007, công bố 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 Vào ngày 27 tháng năm 2017, Google công bố SHAttered, vụ va chạm tạo cho SHA-1 Google tạo tệp PDF có hàm băm SHA-1 tệp PDF khác, có nội dung khác SHAttered thực tệp PDF nhiều thay đổi nhỏ, cấp độ bit thực mà không ngăn người đọc mở gây khác biệt rõ ràng PDF thường sử dụng để cung cấp phần mềm độc hại Mặc dù SHAttered hoạt động loại tệp khác, ISO, chứng định cứng nhắc, khiến cho cơng khó xảy Vì vậy, công dễ dàng để thực nào? SHAttered dựa phương pháp Marc Stevens phát vào năm 2012, yêu cầu 60.3 (9.223 triệu) hoạt động SHA-1 - số đáng kinh ngạc Tuy nhiên, phương pháp hoạt động 100.000 lần so với yêu cầu để đạt kết tương tự với lực lượng vũ phu Google phát với 110 card đồ họa cao cấp hoạt động song song, khoảng năm để tạo vụ va chạm Thuê thời gian tính tốn từ Amazon AWS có giá khoảng 110.000 đô la Hãy nhớ giá giảm 24 cho phận máy tính bạn nhận nhiều lượng với chi phí thấp hơn, công SHAttered trở nên dễ dàng để loại bỏ 3.2 Tấn công hàm Hash theo kiểu ngày sinh nhật (Birthday Attack) 3.2.2.1 Vấn đề Như ta biết, có dạng công mạo hiểm hệ chữ ký điện tử có dùng hàm băm kẻ cơng tìm cách tạo văn X X’ có nội dung khác (một có lợi có hại cho bên A, người bị lừa để ký vào) mà có giá trị băm giống Kẻ thù tìm cách tạo số lượng lớn văn có nội dung khơng thay đổi khác biểu diễn nhị phân (đơn giản việc thêm bớt dấu trắng, dùng nhiều từ đồng nghĩa thay ), sau sử dụng chương trình máy tính để tính giá trị băm văn đem so sánh với để hi vọng tìm cặp văn có đụng độ Như nêu để chắn tìm đụng độ vậy, số văn cần tính giá trị băm phải lớn kích thước khơng gian băm Chẳng hạn hàm băm có khơng gian băm 64 bit số lượng văn cần đem nạp vào chương trình thử phải 64, số lớn đến mức hàng kỉ không thực xong Tuy nhiên kẻ công đem thử với số lượng văn nhiều, phạm vi tính tốn được, xác suất để tìm đụng độ có đáng kể hay khơng? Có thể nhiều người nghĩ xác suất nhỏ, ví việc tìm đụng độ khó Tuy nhiên, câu trả lời lại vô bất ngờ, xác suất lớn, tức có nhiều hy vọng tìm đụng độ dù tập văn đem thử không lớn Bản chất tượng minh họa rõ qua phát biểu, thường gọi Nghịch lý Ngày sinh nhật (Birthday Paradox), tìm hiểu nghịch lý phần 3.2.2.2 Birthday Paradox Nghịch lý Ngày sinh nhật (Birthday Paradox) phát biểu sau: “Trong nhóm có 23 người bất kỳ, xác suất để có hai người có ngày sinh nhật khơng ½” 25 Một cách tổng quát, giả sử hàm băm có m giá trị băm khác (tức kích thước khơng gian output hàm băm m) Nếu có k giá trị băm từ k thông tin chọn ngẫu nhiên khác nhau, xác suất để có đụng độ là: P(m,k) > 1Với e số Ơ-le: e ≈ 2.7 Ước lượng xác suất phục thuộc vào kích thước khơng gian băm (m) số lượng văn thông tin thử không phụ thuộc vào hàm băm sử dụng Tức kích thước khơng gian băm xác lập chặn (lower bound) cho xác suất Ta xét ví dụ sau: Trong nghịch lý ngày sinh nhật nói trên, ta thấy k = 23, m = 365, xác suất tồn hai người có ngày sinh nhật là: P(365,23)>1Cơng thức nói cho phép xác định số lượng thông tin (k) cần thiết để tìm đụng độ giá trị băm với xác suất đủ lớn, hàm băm xác định trước Ngược lại, cho phép tính kích thước tối thiểu đầu hàm băm để chống lại hiệu ứng Birthday attack cách có hiệu Giả sử kẻ thù có khả tính tốn tập giá trị băm đến 10 20 Ta cần xác định không gian băm để xác suất kẻ thù tìm đụng độ nhỏ 10-3 Áp dụng ước lượng xác suất trên, ta thấy: P(m,k) > > Từ đó, ta ước lượng m hợp lý: = 0.999 = -3.3 m 26 Như vậy, không gian băm cần đảm bảo lớn x 1039, tức kích thước giá trị băm khơng nhỏ = 231 bit Tìm đụng độ khơng gian văn có kích cỡ 32 điều làm với máy tính PC bình thường Việc nghiên cứu Birthday Paradox cho ta thấy lượng văn cần đưa thử nhỏ với không gian băm (232 so với 264) mà xác suất tìm đụng độ cao (≥ 50%) Điều cho thấy mối hiểm họa cho hệ thống dùng hàm băm có không gian output nhỏ Phép công gọi “Tấn công ngày sinh nhật” (Birthday attack) 3.2.3 Tấn công hàm hash theo kiểu gặp (Meet – In – The – Middle Attack) Là cơng mà kẻ cơng bí mật chuyển tiếp làm thay đổi giao tiếp hai bên mà họ tin họ trực tiếp giao tiếp với Một ví dụ cơng man-in-the-middle nghe trộm (eavesdropping), kẻ công kết nối độc lập với nạn nhân chuyển tiếp thông tin họ để họ tin họ nói chuyện trực tiếp với qua kết nối riêng tư, thực toàn trị chuyện kiểm sốt kẻ cơng Người cơng phải có khả đánh chặn tất thông tin liên quan lại hai nạn nhân tiêm thơng tin 27 Hình 3.2: Mơ hình cơng MITM Phương pháp cơng meet-in-the-middle áp dụng cho hàm Hash: Có thể áp dụng hàm biểu diễn dạng hai chức phụ Và chức phụ thứ hai đảo ngược Tìm preimage cho giá trị băm H l Đếm hàm hash1() cho biến thể nửa đầu tin nhắn (và lưu trữ chúng bảng): Tx =hash1(M1x, IV) Đếm hàm đảo ngược hash2() cho biến thể nửa sau tổng số tin nhắn: Ty=hash(M2y, H) Tìm kiếm Tx tương đương Ty 3.2.4 Tấn công tiền ảnh (Preimage Attack) Trong công tiền ảnh, kẻ công cố gắng đốn thơng điệp đầu vào mà từ hàm băm tạo đầu cụ thể 28 Về tất đầu định trước, mặt tính tốn khơng thể tìm thấy đầu vào có giá trị băm cho đầu đó; tức là, cho trước y , khó tìm x cho h ( x ) = y Hình 3.3: Mơ hình cơng tiền ảnh Tấn cơng tiền ảnh giúp người có hàm băm đoán giá trị đầu vào CHƯƠNG 4: CÀI ĐẶT THỬ NGHIỆM SHA-1 29 Hình 4.1: Demo SHA-1 sử dụng hàm MessageDigest thư viện Security Java 30 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 31 CÁC TÀI LIỆU THAM KHẢO [1] H.X.Dậu (2017) Cơ sở An tồn thơng tin [2] S Manuel and T Peyrin (2008) Collisions on SHA-0 in one hour Lect Notes Comput Sci (including Subser Lect Notes Artif Intell Lect Notes Bioinformatics) [3] Schneier, B (2018, March 13) Cryptanalysis of SHA-1 - Schneier on Security Retrieved from https://www.schneier.com/blog/archives/2005/02/cryptanalysis_o.html [4] Secure Hash Algorithms (n.d.) Retrieved from Wikipedia: https://en.wikipedia.org/wiki/Secure_Hash_Algorithms [5] Understading Cryptography (n.d.) Retrieved from https://www.cryptotextbook.com/ [6] X Wang, Y L Yin and H Yu (2005) Finding Collisions in the Full SHA-1 (No 90904009 ed.) 32 ... 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 1: KHÁI QUÁT VỀ HÀM BĂM MẬT... YẾU VÀ CÁC DẠNG TẤN CÔNG VÀO HÀM BĂM 22 3.1 Các điểm yếu 22 3.2 Các dạng công vào SHA 22 3.2.1 Tấn công va chạm (Collision Attack) .22 3.2 Tấn công. .. 2005–2006, MD5 SHA- 1 cho khơng cịn an tồn, SHA- 2 dựa vào nguyên lí dùng cho MD5 SHA- 1, NIST tổ thi để tìm tìm thuật tốn băm SHA- 3 SHA- 3 đời, SHA- 3 phần họ thuật toán băm lớn gọi KECCAK SHA- 3 đem lại

Ngày đăng: 08/03/2022, 15:45

Mục lục

    DANH SÁCH CÁC THUẬT NGỮ TIẾNG ANH VÀ VIẾT TẮT

    DANH MỤC CÁC HÌNH

    DANH MỤC CÁC BẢNG BIỂU

    CHƯƠNG 1: KHÁI QUÁT VỀ HÀM BĂM MẬT MÃ

    1.3. Mô hình xử lí dữ liệu

    CHƯƠNG 2: CÁC GIẢI THUẬT HÀM BĂM SHA

    2.2. Các giải thuật SHA

    2.3.2.1.2. Các bước thực hiện của SHA-256

    2.4.2.1. Cấu trúc bọt biển (Spronge Construction)

    2.4.2.3. Hàm hoán vị block (Block permutation)

Tài liệu cùng người dùng

Tài liệu liên quan