Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 14 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
14
Dung lượng
557,76 KB
Nội dung
Hàm băm SHA I Giới thiệu hàm băm mật mã Khái niệm hàm băm Đặc tính hàm băm II Ứng dụng hàm băm mật mã III Các kiểu hàm băm SHA IV Phân loại hàm băm SHA Ý tưởng thuật toán hàm băm SHA Khung thuật toán cho hàm hăm SHA Ví dụ minh họa Độ an tồn hàm băm SHA LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com I Giới thiệu hàm băm mật mã Khái niệm hàm băm - Hàm băm thuật tốn khơng dùng để mã hố, có nhiệm vụ “lọc” tài liệu/bản tin cho kết giá trị băm có kích thước cố định, cịn gọi “đại diện tài liệu”, “đại diện tin”, “đại diện thông điệp” - Hàm băm nhận đầu vào xâu ký tự dài (thơng điệp) có độ dài tuỳ ý tạo kết xâu ký tự có độ dài cố định (tóm tắt thơng điệp chữ ký số) - Một hàm băm mật mã loại chữ kí cho văn tập tin liệu - Hàm băm mã hố khơng thể giải mã văn ban đầu, mà có chức mật mã “một chiều”, có kích thước cố định cho văn gốc Điều phù hợp so sánh phiên “băm” văn Đặc tính hàm băm Với hàm băm hàm chiều có đặc tính sau: - Với tài liệu đầu vào (bản tin gốc) x, thu giá trị băm z = h(x); - Nếu liệu tin x bị thay đổi hay bị xố để thành tin x’, giá trị băm h(x’) khác h(x) - Nội dung tin gốc “khó” thể suy từ giá trị hàm băm Nghĩa là, với thơng điệp x “dễ” tính z = h(x), lại “khó” tính ngược lại biết giá trị băm h(x) II Ứng dụng hàm băm mật mã - Xác nhận mật khẩu: bạn lưu băm mật Khi người dùng cung cấp mật băm mật người dùng Nếu phiên băm khớp mật xác thực, mật ban đầu không thu lấy từ băm lưu trữ - Xác thực thách thức băm: để tránh việc truyền mật “clear”, máy khách gửi băm mật internet để xác nhận máy chủ mà không sợ mật ban đầu bị đánh cắp - Chống giả mạo: liên kết băm tin nhắn với gốc người nhận tin tái băm tin nhắn so sánh với băm cung cấp Nếu băm LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com khớp tin nhắn khơng bị thay đổi Ứng dụng dụng để xác nhận liệu có bị hay khơgn q trình truyền tải - Chữ ký số: dùng hàm băm h để tạo đại diện tin z = h(x), có độ dài ngắn Sau ký z, chữ ký z nhỏ nhiều so với chữ ký tin gốc x - Bảo mật số liệu đặc biệt bảo vệ mật khẩu, bảo vệ khoá mật mã III Các kiểu hàm băm SHA Phân loại hàm băm SHA - SHA bao gồm thuật giải chấp nhận Federal Information Processing Standards (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 Thuật Kích Kích Kích tốn thước thước thước đầu trạng khối Độ dài Kích Xung đột thước từ thái SHA-0 160 160 512 64 32 Không SHA-1 160 160 512 64 32 Có lỗi SHA-224 224 256 512 64 32 Không SHA-256 256 256 512 64 32 Không SHA-384 384 512 1024 128 64 Không SHA-512 512 512 1024 128 64 Không - thuật giải SHA 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ĩ bởiViện cơng nghệ chuẩn quốc gia Mĩ ( National Institute of Standard and Technology hay NIST) LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com - Tên thuật giải tương ứng đặt dựa theo kết trả thuật giải + SHA – (kết trả dài 160 bit) + SHA – 224 (kết trả dài 224 bit) + SHA – 256 (kết trả dài 256 bit) + SHA – 384 (kết trả dài 384 bit) } => Gọi chung SHA – + SHA – 512 (kết trả dài 512 bit) Ý tưởng thuật toán hàm băm Các thuật toán hàm băm SHA gồm bước: tiền xử lý tính tốn giá trị băm Các thuật tốn hàm băm SHA gồm bước: tiền xử lý tính tốn giá trị băm Bước tiền xử lý - Mở rộng thơng điệp - Phân tích thơng điệp mở rộng thành khối m bit - Khởi tạo giá trị băm ban đầu Bước tính tốn giá trị băm gồm bước - Làm N lần công việc sau: + Tạo bảng phân bố thông điệp từ khối i + Dùng bảng phân bố thông điệp hàm, số, từ thao tác để tạo giá trị băm - Sử dụng giá trị băm cuối để tạo thông điệp rút gọn LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Khung thuật toán chung cho hàm băm SHA 3.1 Hằng số Mỗi thuật tốn có bảng số phân bố thơng điệp tương ứng Kích thước bảng số thơng điệp (scheduleRound) SHA-224 64, kích thước bảng số thông điệp SHA-384 SHA-512 80 3.1.1 SHA -1 3.1.2 SHA-256 3.1.3 SHA384, SHA512 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 3.2 Giá trị băm ban đầu Trước thực băm, với thuật toán băm an toàn, giá trị băm ban đầu H(0) phải thiết lập Kích thước số lượng từ H(0) tuỳ thuộc vào thông điệp rút gọn Giá trị ban đầu thuật toán băm: 3.2.1 SHA-1 H0(0) = 67452301 H1(0) = efcdab89 H2(0) = 98badcfe H3(0) = 10325476 H4(0) = c3d2e1f0 3.2.2 SHA-256 H0(0) = 67452301 H1(0) = efcdab89 H2(0) = 98badcfe H3(0) = 10325476 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com H4(0) = c3d2e1f0 3.2.3 SHA-384 H0(0) = cbbb9d5dc1059ed8 H1(0) = 629a292a367cd507 H2(0) = 9159015a3070dd17 H3(0) = 152fecd8f70e5939 H4(0) = 67332667ffc00b31 H5(0) = 8eb44a8768581511 H6(0) = db0c2e0d64f98fa7 H7(0) = 47b5481dbefa4fa4 3.2.4 SHA-512 H1(0) = 6a09e667f3bcc908 H2(0) = bb67ae8584caa73b H3(0) = 3c6ef372fe94f82b H4(0) = a54ff53a5f1d36f1 H5(0) = 510e527fade682d1 H6(0) = 9b05688c2b3e6c1f H7(0) = 5be0cd19137e2179 3.3 Tiền xử lý thông điệp Thông điệp M mở rộng trước thực băm mục đích nhằm đảm bảo thơng điệp mở rộng có độ dài bội số 512 1024 bit tuỳ vào thuật toán VD: LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Giả sử thơng điệp : “abc” = 0110001 01100010 01100011 có độ dài l bits = 24bits Cần tách thông điệp để số bit bội số 512 1024 tuỳ vào thuật toán Bước 1: Thêm bit vào sau thông điệp ban đầu được: 0110001 01100010 01100011 Bước 2: 3.3.1 SHA-1, SHA-256 Thêm k bit cho l+1+k = 448 mod 512 K = 448 – (l+1) = 448 – (24+1) = 423 Vậy phải thêm 423 0bits vào sau thông điệp thu bước B3: Thêm 64 bit gồm 64 – l = 64 – 24 = 40 bits l bits vào sau thông điệp thuđược bước 3.3.2 SHA-384, SHA-512 Thêm k bits cho l + + k = 896 mod 1024 K = 896 – (l+1) = 896 – (24+1) = 871 Vậy phải thêm 423 bits vào sau thông điệp thu bước 1: B3: Thêm 128 bit gồm 128 – l = 128 – 24 = 104 bits l bits vào sau thông điệp thu bước LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 3.4 Chia thơng điệp thành N nhóm m-bit 3.4.1 SHA-1, SHA-256 Thông điệp mở rộng thành N khối 512-bit M(1), M(2), M(N) Do 512 bit khối liệu đầu vào thực 16 từ 32bit, M0(i) chứa 32 bit đầu khối thông điệp i, M1(i) chứa 32 bit M16(i) chứa 32 bit cuối 3.4.2 SHA 384, SHA-512 Thông điệp mở rộng phân tích thành N khối 1024bit M(1), M(2), M(N) Do 1024 bit khối liệu đầu vào thể 16 từ 64bit, M0(i) chứa 64 bit đầu khối thông điệp i, M1(i) chứa 64 bit M16(i) chứa 64 bit cuối 3.5 Các hàm dùng 3.5.1 SHA-1 3.5.2 SHA-256 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 3.5.3 SHA-384, SHA-512 Nhận xét - Chuẩn SHA đặc tả thuật toán SHA-1, SHA224, SHA-256, SHA-384 SHA-512 - Sự khác biệt thuật toán số lượng bit bảo mật liệu băm – điều có ảnh hưởng trực tiếp đến chiều dài thông điệp rút gọn Khi thuật tóan băm sử dụng kết hợp với thuật tốn khác địi hỏi phải cho kết số lượng bit tương ứng VD, thông điệp ký với thuật tốn chữ kí điện tử cung cấp 128bit thuật tóan chữ ký địi hỏi sử dụng thuật tốn băm an tồn cung cấp 128bit SHA-256 Ví dụ minh hoạ Dùng thuật tốn SHA-1 Thơng điệp “abc” Bước 1: Tiền xử lý thông điệp: 01100001 01100010 01100011 10000000 00 00 00000018 Bước 2: Thông điệp tách làm 512bit nên N = (1 nhóm 512-bit) Bước Giá trị băm ban đầu: H0(1) = 67452301 H11) = efcdab89 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com H2(1) = 98badcfe H3(1) = 10325476 H4(1) = c3d2e1f0 Bước 4: Tính Wt W0 = 61626380 W8 = 00000000 W1 = 00000000 W9 = 00000000 W2 = 00000000 W10 = 00000000 W3 = 00000000 W11 = 00000000 W4 = 00000000 W12 = 00000000 W5 = 00000000 W13 = 00000000 W6 = 00000000 W14 = 00000000 W7 = 00000000 W15 = 00000000 Lặp t = đến t = 79, để tìm a,b,c,d,e tương ứng LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Sau hoàn thành, tính giá trị H H0(1) = 67452301+ 42541b35= a9993e36 H11) = efcdab89+ 5738d5e1= 4706816a H2(1) = 98badcfe + 21834873 = ba3e2571 H3(1) = 10325476 + 681e6df6 = 7850c26c H4(1) = c3d2e1f0 + d8fdf6ad = 9cd0d89d Thông điệp cuối cùng: a9993e36 4706816a ba3e2571 7850c26c 9cd0d89d Độ an toàn thuật toán băm - Những thuật giải gọi “an tồn” theo ngun văn chuẩn FIPS 180-2 phát hành ngày 1/8/2002: 1) Cho giá trị băm định tạo nên từ thuật giải SHA, việc tìm lại đoạn liệu gốc không khả thi LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 2) Việc tìm hai đoạn liệu định 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 tồn khác với xác suất cao Thuật Thơng tốn điệp Khối Từ Thơng Độ an tồn điệp rút gọn SHA- < 264 512 32 160 80 SHA-224 < 264 512 32 224 112 SHA-256 < 264 512 32 256 128 SHA-384 < 2128 1024 64 384 192 SHA-512 < 2128 1024 64 512 256 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ... trị băm h(x) II Ứng dụng hàm băm mật mã - Xác nhận mật khẩu: bạn lưu băm mật Khi người dùng cung cấp mật băm mật người dùng Nếu phiên băm khớp mật xác thực, mật ban đầu không thu lấy từ băm lưu... Các hàm dùng 3.5.1 SHA- 1 3.5.2 SHA- 256 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 3.5.3 SHA- 384, SHA- 512 Nhận xét - Chuẩn SHA đặc tả thuật toán SHA- 1, SHA2 24, SHA- 256, SHA- 384 SHA- 512... (scheduleRound) SHA- 224 64, kích thước bảng số thông điệp SHA- 384 SHA- 512 80 3.1.1 SHA -1 3.1.2 SHA- 256 3.1.3 SHA3 84, SHA5 12 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 3.2 Giá trị băm ban đầu