tìm hiểu về hàm băm SHA và ứng dụng của nó

14 2K 21
tìm hiểu về hàm băm SHA và ứng dụng của nó

Đ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

MỤC LỤC MỤC LỤC DANH MỤC VÀ THUẬT NGỮ VIẾT TẮT LỜI NÓI ĐẦU CHƯƠNG I GIỚI THIỆU KHÁI QUÁT VỀ HÀM BĂM SHA VÀ SHA-2 1.1 Khái quát hàm băm SHA 1.2 HÀM BĂM SHA2 1.3 Ưu nhược điểm HÀM BĂM SHA-2 CHƯƠNG II GIẢI THUẬT THỰC HIỆN HÀM BĂM SHA-2 2.1 Các phiên đặc điểm hàm băm SHA-2 2.2 Thuật toán thực hàm băm SHA-2 CHƯƠNG III ỨNG DỤNG CỦA HÀM BĂM SHA-2 3.1 Một số ứng dụng điển hình băm SHA-2 3.2 Mô băm SHA-256 TỔNG KẾT DANH MỤC THUẬT NGỮ VIẾT TẮT Viết tắt SHA DES TDES Tiếng Anh Secure Hash Algorithm Data Encryption Standard Triple Data Encryption Standard MD DKIM Message Degist DomainKey Identified Mail Tiếng Việt Thuật toán băm bảo mật Tiêu chuẩn mã hóa liệu Gấp ba lần tiêu chuẩn mã hóa liệu Tin nhắn rút gọn Thư xác nhận miền khóa LỜI NÓI ĐẦ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ữ ký đ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 tiêu biểu số họ hàm băm SHA-2 Bài báo cáo tìm hiểu hàm băm SHA ứng dụng CHƯƠNG I GIỚI THIỆU KHÁI QUÁT VỀ HÀM BĂM SHA VÀ SHA-2 1.1 Khái quát hàm băm SHA SHA (Secure Hash Algorithm hay thuật giải băm bảo mật) gồm năm 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 toàn", theo chuẩn FIPS 180-2 phát hành ngày tháng năm 2002 Năm 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 Hiện nay, SHA-1 không coi an toàn đầu năm 2005, ba nhà mật mã học ngườ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 Hiện có thông tin hàm băm SHA-3 dạng dự thảo Họ SHA-2 coi an toàn để sử dụng 1.2 HÀM BĂM SHA2 SHA-2 bao gồm bốn phiên SHA-224, SHA-256, SHA-384 SHA-512 Ba giải thuật SHA-256, SHA-384 SHA-512 phát hành lần đầu năm 2001 phác thảo FIPS PUB 180-2 Năm 2002, FIPS PUB 180-2 SHA-2 chuẩn hóa phát hành thức Năm 2004, FIPS PUB 180-2 bổ sung thêm biến thể SHA2 SHA-224, với mục đích tạo biến thể SHA-2 có độ dài khóa trùng với DES ba lần với khóa (2TDES) - 112 bit Những biến thể SHA-2 đăng ký Bằng sáng chế Hoa Kỳ số 6.829.355 1.3 Ưu nhược điểm HÀM BĂM SHA-2  Ưu điểm: SHA-2 hay SHA nói chung coi họ hàm băm an toàn bởi: • Từ giá trị băm tạo giải thuật băm SHA, việc tìm lại đoạn liệu gốc không khả thi • Hai đoạn liệu có kết băm tạo giải thuật SHA xảy Chỉ cần thay đổi đoạn liệu gốc, dù nhỏ, tạo nên giá trị băm khác hoàn toàn với xác hiệu ứng nở tuyết  Nhược điểm: Hiện SHA-1 không coi an toàn tuyệt đối SHA-2 an toàn nhiên thuật toán SHA-2 không khác biệt nhiều so với SHA-1 việc phá không lâu Do cần phải phát triển thuật toán băm an toàn cho tương lai CHƯƠNG II GIẢI THUẬT THỰC HIỆN HÀM BĂM SHA-2 2.1 Các phiên đặc điểm hàm băm SHA-2 Năm 2002 đời số phiên SHA sở sử dụng thuật toán hàm băm SHA-1 có thay đổi tăng chiều dài mã băm nhằm tăng khả bảo mật, phiên gọi chung SHA-2 SHA-2 gồm có phiên SHA-256, SHA-384, SHA-512 phát hành thức vào đầu năm 2002 phiên bổ sung cuối tận SHA-224 phát hành vào năm 2004 FIPS PUB 180-2 Các phiên SHA-2 có chiều dài mã băm khác cụ thể SHA-224 (mã băm dài 224 bit), SHA-256 (mã băm dài 256 bit), SHA-384 (mã băm dài 384 bit), SHA-512 (mã băm dài 512 bit) Tham số giá trị cụ thể phiên cho bảng : Thông số Kích thước mã băm (bit) Kích thước liệu gốc (bit) SHA-224 224 < SHA-256 256 < SHA-384 384 < SHA-512 512 < Kích thước khối (bit) Kích thước từ (bit) Độ an toàn (bit) Số vòng lặp 512 32 112 64 512 32 128 64 1024 64 192 80 1024 64 256 80 Bảng: Giá trị tham số phiên hàm băm SHA-2 2.2 Thuật toán thực hàm băm SHA-2 Thuật toán thực hàm băm cho phiên SHA-2 giống khác tham số Về gồm có trình tiền xử lý tính toán giá trị băm Tiền xử lý • Mở rộng khối liệu gốc • Phân tích khối liệu mở rộng Tính toán giá trị băm • Khởi tạo giá trị băm • Tính toán băm  Cụ thể bước trình băm thực sau: Bước 1: Mở rộng khối liệu gốc Khối liệu gốc đầu vào tiến hành mở rộng cách thêm bit đệm để đảm bảo khối tin có chiều dài bội số 512 (với SHA-224 SHA-256) 1024 (với SHA-384 SHA-512) tùy vào thuật toán Bit đệm thêm bắt đầu bit theo sau toàn bit Việc thêm bit tạo khối bit có độ dài 512/1024 khối cuối có độ dài 448/896 bit Khối tin cuối sau gắn số bit để thể chiều dài khối tin đầu vào với khối 448 gắn 64 bit, với khối 896 gắn thêm 128 bit  VD: Đối với hàm băm SHA-224 SHA-256: Giả sử độ dài khối liệu vào l bit, để mở rộng khối tin ta thêm bit vào cuối khối tin theo sau k bit (sao cho l + + k = 448(mod 512) tức thu n khối 512 dư khối cuối có độ dài 448 bit Sau thêm khối 64 bit biểu diễn nhị phân độ dài l vào khối 448 bit ta thu khối cuối 512 bit Đối với SHA-384 SHA-512: Giả sử độ dài khối liệu vào l bit, thêm bit vào cuối khối tin theo sau k bit (sao cho l + + k = 896(mod 1024) sau thêm 128 bit biểu diễn nhị phân độ dài l vào khối 896 bit ta thu khối cuối cũng 1024 bit Bước 2: Phân tích khối liệu mở rộng Sau khối liệu vào mở rộng, cần phân tích thành N khối 512 1024 bit vào giải thuật sử dụng trước thực băm  VD: Đối với băm SHA-224, SHA-256, khối liệu mở rộng phân tách thành N khối 512 bit từ , …, Mỗi khối 512 bit lại phân tích thành 16 nhóm 32 bit (16*32=512) 32 bit khối i kí hiệu , 32 bit tiếp tục Mối khối 32 bit gồm có 64 từ (word) W[0-63] tạo cách: - 16 từ có cách tách M thành khối 32 bit M = W1 || W2 || || W15 || W16 - 48 từ lại có cách tính theo công thức Wi = σ (Wi − ) + Wi −7 + σ (Wi −15 ) + Wi −16, 17 ≤ i ≤ 64 Đối với băm SHA-384, SHA-512, khối liệu mở rộng phân tách thành N khối 1024 bit từ , …, ) Mỗi khối 1024 bit lại phân tích thành 16 nhóm 64 bit (16*64=1024) 64 bit khối i kí hiệu , 64 bit tiếp tục Bước 3: Khởi tạo giá trị băm Giá trị băm chuỗi bit có độ dài đệm MD (message degist) gồm word (từ) ghép lại Trong word j giá trị băm lần lặp i với ≤ j ≤ số word giá trị băm - Trước thực băm với thuật toán giá trị băm ban đầu H(0) phải thiết lập Kích thước số lượng từ (word) H(0) tùy thuộc vào kích thước mã băm Giá trị băm ban đầu H(0) trình tự từ 32 bit ( thu cách lấy bậc số nguyên tố từ đến 8)  VD: Đầu tiên, tám biến thiết lập với giá trị ban đầu với phiên SHA-2 biến có giá trị khác nhau: Với SHA-224: = c1059ed8 H H H 40 H 50 = 367cd507 H = 3070dd17 = f70e5939 H H = ffc00b31 = 68581511 = 64f98fa7 = befa4fa4 Với SHA-225: H10 H 50 := 0x6a09e667 := 0x510e527f H 20 H := 0xbb67ae85 H H 60 H := 0x3c6ef372 H := 0xa54ff53a := 0x9b05688c := 0x1f83d9ab := 0x5be0cd19 Với SHA-384: = cbbb9d5dc1059ed8 H 20 H 30 H H 50 = 629a292a367cd507 H = 9159015a3070dd17 = 152fecd8f70e5939 H H = 67332667ffc00b31 = 8eb44a8768581511 = db0c2e0d64f98fa7 = 47b5481dbefa4fa4 Với SHA-512: = 6a09e667f3bcc908 H 20 H 30 H H 50 = bb67ae8584caa73b = 3c6ef372fe94f82b = a54ff53a5f1d36f1 H H H = 510e527fade682d1 = 9b05688c2b3e6c1f = 1f83d9abfb41bd6b = 5be0cd19137e2179 Bước 4: Các hàm số sử dụng Với SHA-256 Các hàm logic sử dụng: Ch( X , Y , Z ) = ( X ∧ Y ) ⊕ ( X ∧ Z ), Maj ( X , Y , Z) = (X ∧ Y) ⊕ (X ∧ Z) ⊕ (Y ∧ Z), Σ0 ( X ) = RotR( X , 2) ⊕ RotR( X ,13) ⊕ RotR( X , 22), Σ1 ( X ) = RotR( X ,6) ⊕ RotR ( X ,11) ⊕ RotR( X , 25), σ ( X ) = RotR( X ,7) ⊕ RotR( X ,18) ⊕ ShR( X ,3), σ ( X ) = RotR( X ,17) ⊕ RotR( X ,19) ⊕ ShR( X ,10), Các ký hiệu phép toán sử dụng: ⊕ ∧ ∨ thực phép toán XOR thực phép toán AND thực phép toán OR ¬ + thực phép bù cộng phần dư 232 Rn Sn dịch phải n bit quay phải n bit Chuỗi số Ki có cách lấy bậc 64 số nguyên tố K[063] 0x428a2f98 0xd807aa98 0xe49b69c1 0x983e5152 0x27b70a85 0xa2bfe8a1 0x19a4c116 0x748f82ee 0x71374491 0x12835b01 0xefbe4786 0xa831c66d 0x2e1b2138 0xa81a664b 0x1e376c08 0x78a5636f 0xb5c0fbcf 0x243185be 0x0fc19dc6 0xb00327c8 0x4d2c6dfc 0xc24b8b70 0x2748774c 0x84c87814 0xe9b5dba5 0x550c7dc3 0x240ca1cc 0xbf597fc7 0x53380d13 0xc76c51a3 0x34b0bcb5 0x8cc70208 0x3956c25b 0x72be5d74 0x2de92c6f 0xc6e00bf3 0x650a7354 0xd192e819 0x391c0cb3 0x90befffa 0x59f111f1 0x80deb1fe 0x4a7484aa 0xd5a79147 0x766a0abb 0xd6990624 0x4ed8aa4a 0xa4506ceb 0x923f82a4 0x9bdc06a7 0x5cb0a9dc 0x06ca6351 0x81c2c92e 0xf40e3585 0x5b9cca4f 0xbef9a3f7 0xab1c5ed5 0xc19bf174 0x76f988da 0x14292967 0x92722c85 0x106aa070 0x682e6ff3 0xc67178f2 Với SHA-512 Sáu hàm logic sử dụng SHA-512 Mỗi hàm hoạt động word 64-bit tạo word 64-bit đầu Các hàm định nghĩa sau: Ch(x, y, z) = (x ∧ y) ⊕ (¬ x ∧ z) Maj(x, y, z) = (x ∧ y) ⊕ (x ∧ z) ⊕ (y ∧ z) ∑ (x) = S ∑ (x) = S 28 14 (x) ⊕ S34 (x) ⊕ S39 (x) (x) ⊕ S18 (x) ⊕ S41 (x) σ (x) = S1 (x) ⊕ S8 (x) ⊕ R (x) σ (x) = S19 (x) ⊕ S61 (x) ⊕ R (x) 10 Chuỗi số sử dụng SHA-512 K[0-79] 428a2f98d728ae22 59f111f1b605d019 243185be4ee4b28c c19bf174cf692694 2de92c6f592b0275 a831c66d2db43210 06ca6351e003826f 53380d139d95b3df a2bfe8a14cf10364 d69906245565a910 2748774cdf8eeb99 682e6ff3d6b2b8a3 90befffa23631e28 d186b8c721c0c207 113f9804bef90dae 431d67c49c100d4c 7137449123ef65cd 923f82a4af194f9b 550c7dc3d5ffb4e2 e49b69c19ef14ad2 4a7484aa6ea6e483 b00327c898fb213f 142929670a0e6e70 650a73548baf63de a81a664bbc423001 f40e35855771202a 34b0bcb5e19b48a8 748f82ee5defb2fc a4506cebde82bde9 eada7dd6cde0eb1e 1b710b35131c471b 4cc5d4becb3e42b6 b5c0fbcfec4d3b2f ab1c5ed5da6d8118 72be5d74f27b896f efbe4786384f25e3 983e5152ee66dfab bf597fc7beef0ee4 27b70a8546d22ffc 766a0abb3c77b2a8 c24b8b70d0f89791 106aa07032bbd1b8 391c0cb3c5c95a63 78a5636f43172f60 bef9a3f7b2c67915 f57d4f7fee6ed178 28db77f523047d84 597f299cfc657e2a e9b5dba58189dbbc d807aa98a3030242 80deb1fe3b1696b1 0fc19dc68b8cd5b5 5cb0a9dcbd41fbd4 c6e00bf33da88fc2 2e1b21385c26c926 81c2c92e47edaee6 c76c51a30654be30 19a4c116b8d2d0c8 4ed8aa4ae3418acb 84c87814a1f0ab72 c67178f2e372532b 06f067aa72176fba 32caab7b40c72493 5fcb6fab3ad6faec 3956c25bf348b538 12835b0145706fbe 9bdc06a725c71235 240ca1cc77ac9c65 76f988da831153b5 d5a79147930aa725 4d2c6dfc5ac42aed 92722c851482353b d192e819d6ef5218 1e376c085141ab53 5b9cca4f7763e373 8cc702081a6439ec ca273eceea26619c 0a637dc5a2c898a6 3c9ebe0a15c9bebc 6c44198c4a475817 Bước 4: Tính toán băm Đây bước quan trọng trình băm, thực lặp nhiều lần để băm thông điệp ban đầu hàm băm thành chuỗi có chiều dài cố định thực hàm nén Thành phần hàm băm hàm nén hàm biến đổi khác  Với SHA-225 Tất khối M(1), M(2), …, M(N) xử lý lúc Với t chạy từ • đến N Xây dựng 64 khối Wi từ thực sau (a, b, c, d , e, f , g , h) = ( H1t −1 , H 2t −1 , H 3t −1 , H 4t −1 , H 5t −1 , H 6t −1 , H 7t −1 , H 8t −1 ) • Tổng số vòng lặp: gồm 64 vòng • 11 Tính toán giá trị H tj T1 = h + Σ1 (e) + Ch (e, f , g ) + K i + Wi H1t = H1( t −1) + a T2 = Σ (a ) + Maj (a, b, c ) H 2t = H 2( t −1) + b h=g H 3t = H 3( t −1) + c g= f H 4t = H 4( t −1) + d f =e H 5t = H 5( t −1) + e e = d + T1 d =c H 6t = H 6( t −1) + f c=b H 7t = H 7( t −1) + g b=a H 8t = H 8( t −1) + h a = T1 + T2 • Kết thúc vòng lặp • Tính toán kết cuối cùng: H = H1( N ) || H 2( N ) || H 3( N ) || H 4( N ) || H 5( N ) || H 6( N ) || H 7( N ) || H 8( N )  Với SHA-224 Quá trình thực băm SHA-224 hoàn toàn giống với SHA-256 khác điểm kết băm xung đầu SHA-256 nhóm 64 word 32 bit với SHA-224 sử dụng nhóm 64 word 32 bit đầu tiên, bỏ nhóm 32 bit cuối H = H1( N ) || H 2( N ) || H 3( N ) || H 4( N ) || H 5( N ) || H 6( N ) || H 7( N )  Với SHA-512 384: Thuật toán băm SHA-512 384 giống thuật toán SHA-256 khác số vòng lặp mã nhiều 80 vòng so với 64 vòng SHA-256 Bên cạnh SHA-384 có điểm khác so với SHA-512 với mã 12 băm đầu SHA-512 512 bit với SHA-384 384 bit, để có băm SHA-384 ta thực tương tự băm cho SHA-512 nhiên mã ta trừ 128 bit cuối thu băm cho SHA-384 CHƯƠNG III ỨNG DỤNG CỦA HÀM BĂM SHA-2 3.1 Một số ứng dụng điển hình băm SHA-2 Hàm băm SHA-2 sử dụng rộng rãi số ứng dụng bảo mật giao thức bao gồm TLS SSL, PGP, SSH, S/MIME, IPsec SHA-256 sử dụng phần trình xác thực gói phần mềm Debian GNU/Linux chuẩn DKIM (DomainKey Identified Mail); SHA512 phần hệ thống xác thực Video lưu trữ từ Tòa án Hình Quốc tế nạn diệt chủng Rwanda SHA-256 SHA-512 đề xuất sử dụng DNSSEC Hai hệ điều hanh Unix Linux nhà cung cấp dịch vụ chuyển sang sử dụng SHA-256 SHA-512 cho băm mật bảo mật Một số hệ thống toán tiền điện tử Bitcoin sử dụng SHA-256 cho việc xác minh giao dịch tính toán hóa đơn giao dịch SHA-1 SHA-2 thuật toán băm bảo mật đáp ứng yêu cầu để sử dụng ứng dụng định Chính phủ Hoa Kỳ, kể sử dụng thuật toán mã hóa khác giao thức, để bảo vệ thông tin không nhạy cảm FIPS PUB 180-1 khuyến khích việc áp dụng sử dụng SHA-1 tổ chức tư nhân thương mại Hiện SHA-1 dần ngưng sử dụng cho hầu hết phủ; Viện Quốc gia Hoa Kỳ Tiêu chuẩn Công nghệ cho biết, "các quan liên bang nên ngừng sử dụng SHA-1 cho ứng dụng đòi hỏi khả chống xúng đột sớm tốt, phải sử dụng họ hàm băm SHA-2 cho ứng dụng sau năm 2010" Dù SHA-2 không thông qua cách nhanh chóng, an ninh tốt so với SHA-1 Lý bao gồm thiếu hỗ trợ cho SHA-2 13 hệ thống chạy Windows XP SP2 trở lên nguy xung đột hữ SHA-1 chưa tìm thấy Nhóm Google Chrome công bố kế hoạch để làm cho trình duyệt web họ việc sử dụng chứng TLS SHA-1 vào khoảng thời gian cuối năm 2014 đầu năm 2015 3.2 Mô băm SHA-256 TỔNG KẾT Qua báo cáo phần cho biết hàm băm SHA-2 cách thức làm việc với tín hiệu Mặc dù ứng dụng rộng rãi hệ thống, dịch vụ internet nhiên với phát triển siêu máy tinh việc phá băm SHA vấn đề thời gian đời thuật toán băm khác thay SHA sớm thực 14 ... số họ hàm băm SHA- 2 Bài báo cáo tìm hiểu hàm băm SHA ứng dụng CHƯƠNG I GIỚI THIỆU KHÁI QUÁT VỀ HÀM BĂM SHA VÀ SHA- 2 1.1 Khái quát hàm băm SHA SHA (Secure Hash Algorithm hay thuật giải băm bảo... với SHA- 384 384 bit, để có băm SHA- 384 ta thực tương tự băm cho SHA- 512 nhiên mã ta trừ 128 bit cuối thu băm cho SHA- 384 CHƯƠNG III ỨNG DỤNG CỦA HÀM BĂM SHA- 2 3.1 Một số ứng dụng điển hình băm SHA- 2... SHA- 2, thuật giải, SHA- 2 không khác biệt so với SHA- 1 Hiện có thông tin hàm băm SHA- 3 dạng dự thảo Họ SHA- 2 coi an toàn để sử dụng 1.2 HÀM BĂM SHA2 SHA- 2 bao gồm bốn phiên SHA- 224, SHA- 256, SHA- 384

Ngày đăng: 22/05/2017, 13:33

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

Tài liệu liên quan