Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 21 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
21
Dung lượng
301,45 KB
Nội dung
Chuyên đề 3: Tóm Tắt về Hàm Băm HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG Gv hướng dẫn: TS. Nguyễn Chiến Trinh Nhóm 4: Lê Công Đức Trần Quang Dũng Đỗ Văn Được Tổng quan Mục tiêu: các hàm băm (H) tạo ra giá trị băm cho một tập tin, thông điệp hay một khối dữ liệu truyền đi nhằm kiểm tra tính toàn vẹn. Các đặc điểm ● Khối dữ liệu vào có độ dài bất kỳ, tạo đầu ra có độ dài cố định ● H(x) tính toán mọi x tương đối dễ dàng ● Với bất kỳ giá trị băm h, không thể tính được x sao cho H(x)=h. Hay H được gọi là hàm một chiều ● Tính bền xung đột yếu (weak collision resistance): với bất kỳ giá trị x, không thể tính được y ≠ x sao cho H(y) = H(x). ● Tính bền xung đột mạnh (strong collision resistance): Không thể tính được một cặp (x, y) sao cho H(x) = H(y) Tổng quan Thuật toán Kích thước đầu ra (output size) Xung đột (Collision) HAVAL 256/224/192/160/128 Có MD2 128 Khả năng lớn MD4 128 Có MD5 128 Có PANAMA 256 Có lỗi RIPEMD 128 Có RIPEMD-128/256 128/256 Không RIPEMD-160/320 160/320 Không SHA-0 160 Không SHA-1 160 Có lỗi SHA-256/224 256/224 Không SHA-512/384 512/384 Không Tiger(2)-192/160/128 192/160/128 Không VEST-4/8 (hash mode) 160/256 Không VEST-16/32 (hash mode) 320/512 Không WHIRLPOOL 512 Không Giải thuật MD ● Các hàm băm MD (Message Digest) (2,4,5,6) được phát minh bởi Ronald Rivest tại MIT ● Được thiết kế để triển khai hiệu quả bằng phần mềm. ● Sử dụng các biến 32bit (từ), với các phép toán Boolean như AND, OR, NOT, XOR ● Input: thông điệp với độ dài bất kỳ ● Output: giá trị băm (message digest) 128 bits ● Giải thuật gồm 5 bước thao tác trên khối 512 bits Giải thuật MD5 – Nguyên lý Bước 1: Nhồi dữ liệu ● Nhồi thêm các bits sao cho dữ liệu có độ dài l ≡ 448 mod 512 hay l= n * 512 + 448 (n,l nguyên) ● Luôn thực hiện nhồi dữ liệu ngay cả khi dữ liệu ban đầu có độ dài mong muốn. Ví dụ, dữ liệu có độ dài 448 được nhồi thêm 512 bits để được độ dài 960 bits. ● Số lượng bit nhồi thêm nằm trong khoảng 1 đến 512 ● Các bit được nhồi gồm 1 bit “1” và các bit 0 theo sau. Giải thuật MD5 – Nguyên lý Bước 2: Thêm vào độ dài ● Độ dài của khối dữ liệu ban đầu được biểu diễn dưới dạng nhị phân 64-bit và được thêm vào cuối chuỗi nhị phân kết quả của bước 1 ● Nếu độ dài của khối dữ liệu ban đầu > 264, chỉ 64 bits thấp được sử dụng, nghĩa là giá trị được thêm vào bằng K mod 264 ● Kết quả có được từ 2 bước đầu là một khối dữ liệu có độ dài là bội số của 512. Khối dữ liệu được biểu diễn: ● Bằng một dãy L khối 512-bit Y0, Y1,…, YL-1 ● Bằng một dãy N từ (word) 32-bit M0, M1, MN-1. Vậy N = L x 16 (32 x 16= 512) Giải thuật MD5 – Nguyên lý Bước 3: Khởi tạo bộ đệm MD (MD buffer) ● Một bộ đệm 128-bit được dùng lưu trữ các giá trị băm trung gian và kết quả. Bộ đệm được biểu diễn bằng 4 thanh ghi 32- bit với các giá trị khởi tạo ở dạng little-endian (byte có trọng số nhỏ nhất trong từ nằm ở địa chỉ thấp nhất) như sau: ● A = 67 45 23 01 ● B = EF CD AB 89 ● C = 98 BA DC FE ● D = 10 32 54 76 Giải thuật MD5 – Nguyên lý Bước 4: Xử lý các khối dữ liệu 512 bit ● Trọng tâm của giải thuật là hàm nén (compression function) gồm 4 “vòng” xử lý. Các vòng này có cấu trúc giống nhau nhưng sử dụng các hàm luận lý khác nhau gồm F, G, H và I ● Mảng 64 phần tử được tính theo công thức: T[i] = 232 x abs(sin(i)), được tính theo radian. ● Kết quả của 4 vòng được cộng (theo modulo 232) với đầu vào CVq để tạo CVq+1 Giải thuật MD5 – Nguyên lý ● Mỗi vòng thực hiện 16 bước, mỗi bước thực hiện các phép toán để cập nhật giá trị buffer ABCD, mỗi bước được mô tả như sau ● B = B + ((A + Q(B,C,D) + X[k] + T[i]) <<< s) ● A,B,C,D: các từ của thanh ghi ● Q: một trong các hàm F,G,H,I ● <<< s : dịch vòng trái s bits ● Mi ~ X[k]: từ 32-bit thứ k của khối dữ liệu 512 bits. k=1 15 ● Ki ~ T[i]: giá trị thứ i trong bảng T. ● +: phép toán cộng modulo 232 Giải thuật MD5 – Nguyên lý ● Xuất kết quả ● Bước 5: Sau khi xử lý hết L khối 512-bit, đầu ra của lần xử lý thứ L là giá trị băm 128 bits. Sử dụng thuật toán MD5, ta có thể thực hiện một số ví dụ sau: − MD5(“Posts and Telecommunications Institute of technology”) = 416dcb3e28f33cb3e2a8eb4e137f8521 − Thậm chí chỉ cần một thay đổi nhỏ cũng làm thay đổi hoàn toàn kết quả trả về: MD5(“Posts and Telecommunications institute of technology”) = 680781119b840a0223c33baff7754268 − Ngay cả một chuổi rỗng cũng cho ra một kết quả phức tạp: MD5(“”) = d41d8cd98f00b204e9800998ecf8427e [...]... toàn bộ L blocks Kết quả của khối thứ L là bảng băm 160-bit ● Giải thuật được tóm tắt như sau: ● CV0 = IV ● CVq+1 = SUM32(CVq, ABCDEq) ● MD = CVL ● Với ● IV = giá trị khởi tạo của bộ đệm ABCDE ● ABCDEq = đầu ra của hàm nén trên khối thứ q ● L = số khối 512-bit của thông điệp ● SUM32 = phép cộng modulo 232 trên từng từ (32 bits) của đầu vào ● MD = giá trị băm So sánh MD5 và SHA-1 Giống nhau: Cả MD5,... đi 4 Lưu trữ mật khẩu 5 Ứng dụng trong các phần mềm để đảm bảo rằng tập tin tải về không bị lỗi Ứng dụng SHA-1: 1 SHA-1 là 1 phần trong các ứng dụng bảo mật được sử dụng rộng rãi trong các giao thức như:TLS và SSL,PGP,SSH và IPSEC… 2 Hàm SHA-1 còn được sử dụng trên Wii để xác minh chữ ký thời gian khởi động 3 Các hàm băm SHA được dùng làm cơ sở cho mã khối SHACAL ... còn SHA1 là chuỗi có độ dài tối đa 264 bits 2) Tốc độ :SHA1 thực hiện nhiều hơn 16 bước và thao tác trên thanh ghi 160 bit 3) Độ an toàn (khả năng chống tấn công ) )Để tạo ra thông điệp có giá trị băm cho trước, cần 2128 thao tác với MD5 và 2160 với SHA1 ) Để tìm 2 thông điệp có cùng giá trị băm, cần 264 thao tác với MD5 và 280 với SHA1 Ứng dụng MD5: 1 Chữ kí điện tử 2 Dùng trong các ứng dụng bảo... M1, MN-1 Vậy N = L x 16 Giải thuật SHA-1 – Nguyên lý ● Bước 3: khởi tạo bộ đệm MD (MD buffer) ● Một bộ đệm 160-bit được dùng lưu trữ các giá trị băm trung gian và kết quả Bộ đệm được biểu diễn bằng 5 thanh ghi 32- bit với các giá trị khởi tạo ở dạng big-endian (byte có trọng số lớn nhất trong từ nằm ở địa chỉ thấp nhất) như sau: ● A = 01 23 45 67 ● B = 89 AB CD EF ● C = FE DC BA 98 ● D = 76 54 32 10... nhiên MD5 đã bị tấn công thành công, vì vậy nó cũng không còn an toàn và cần được thay thế bằng một thuật toán băm khác Giải thuật MD6 Ra đời năm 2008 bởi Ron Rivest Mục đích: trở thành tiêu chuẩn NIST SHA-3 Cho phép nhiều tính toán băm song song cùng lúc (Merkle) Vẫn đang trong giai đoạn phát triển, phát sinh một số lỗi MD6 không thể trở thành tiêu chuẩn SHA-3 MD6 được sử dụng lần đầu tiên... SHA-3 MD6 được sử dụng lần đầu tiên trong sâu Conficker B (12/2008) Giải Thuật SHA-1 ● Secure Hash Algorithm (SHA) phát triển bởi National Institute of Standard and Technology (NIST) ● Đầu vào: thông điệp với độ dài tối đa 264 bits ● Đầu ra: giá trị băm (message digest) có độ dài 160 bits ● Giải thuật gồm 5 bước thao tác trên các khối 512 bits Giải thuật SHA-1 – Nguyên lý ● Bước 1: Nhồi thêm dữ liệu... khi tìm ra MD Do bản chất của hàm băm và số lượng cực lớn các giá trị hash có thể nên hầu như không thể có 2 bản tin phân biệt có cung giá trị Hash Giá trị MD phụ thuộc vào bản tin tương ứng Một chuỗi có duy nhất một hash Giá trị MD phụ thuộc vào tất cả các bits tương ứng Có nhiều ưu điểm so với MD4 Tuy nhiên MD5 đã bị tấn công thành công, vì vậy nó cũng không còn an toàn và cần được thay... Chúng có thể nhận mọi dạng dữ liệu đầu vào, cũng như tạo ra một dấu vân tay số duy nhất MD5 và SHA1 đều cộng thêm các bit “ ” để tạo thành những khối chia hết cho 512 bit, nhưng SHA1 sử dụng cùng một hàm phi tuyến f cho cả bốn vòng Cả MD5 và SHA1 thuật toán đều gồm 5 bước là: nhồi dữ liệu, thêm độ dài, khởi tạo bộ đệm, xử lí các khối dữ liệu 512 bits, xuất kết quả Tính đơn giản So sánh MD5 và SHA-1... C3 D2 E1 F0 Giải thuật SHA-1 – Nguyên lý ● Bước 4: xử lý các khối dữ liệu 512-b ● Trọng tâm của giải thuật bao gồm 4 lặp ● ● ● ● thực hiện tất cả 80 bước 4 vòng lặp có cấu trúc như nhau, chỉ nhau ở các hàm logic f1, f2, f3, f4 Mỗi vòng có đầu vào gồm khối 512- thời và một bộ đệm 160-bit ABCDE thao tác sẽ cập nhật giá trị bộ đệm Mỗi bước sử dụng một hằng số Kt (0 79) ● Kt = 5A827999 (0 ≤ t ≤ 19) ● Kt... luôn luôn được nhồi thêm dữ liệu ● Số bits nhồi thêm nằm trong khoảng 1 đến 512 ● Phần dữ liệu nhồi thêm bao gồm một bit 1 và theo sau là các bit 0 ● Bước 2: Thêm vào độ dài ● Độ dài của khối dữ liệu ban đầu được biểu diễn dưới dạng nhị phân 64-bit và được thêm vào cuối chuỗi nhị phân kết quả của bước 1 ● Độ dài được biểu diễn dưới dạng nhị phân 64-bit không dấu ● Kết quả có được từ 2 bước đầu là một . Chuyên đề 3: Tóm Tắt về Hàm Băm HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG Gv hướng dẫn: TS. Nguyễn Chiến Trinh Nhóm 4: Lê Công Đức Trần Quang Dũng Đỗ Văn Được Tổng quan Mục tiêu: các hàm băm (H). 128-bit được dùng lưu trữ các giá trị băm trung gian và kết quả. Bộ đệm được biểu diễn bằng 4 thanh ghi 32- bit với các giá trị khởi tạo ở dạng little-endian (byte có trọng số nhỏ nhất trong. 160-bit được dùng lưu trữ các giá trị băm trung gian và kết quả. Bộ đệm được biểu diễn bằng 5 thanh ghi 32- bit với các giá trị khởi tạo ở dạng big-endian (byte có trọng số lớn nhất trong từ