Professional Documents
Culture Documents
• Giá trị hàm băm h được phát sinh bởi hàm H có dạng:
h = H(M)
Với M là tin tức có độ dài bất kỳ, còn H(M) là giá
trị hàm băm có độ dài cố định.
• Nhận xét:
Hàm băm không liên quan đến bảo mật Cần bảo mật
giá trị băm.
Họat động cơ bản của hàm
băm
Hàm băm đơn giản
• Thông tin gốc là chuỗi ký tự trong bảng chữ cái latinh:
A, B, C, …, Z
• Các chữ cái được đánh số thứ tự từ 1 … 26
• Biểu diễn thông tin gốc: M={m1, m2, …, mn}
• Hàm băm H(M)=1 + (m1 + m2 +…+mn) mod 26
Ví dụ
• Cho thông tin gốc: “Hello world”
• M = {8, 5, 12, 12, 15, 23, 15, 18, 12, 4}
H(M) = 1 + (8+5+12+12+15+23 +15+18+12+4)mod 26
= 21
=> H(M) = U.
Các khả năng ứng dụng của
Hàm băm
Các khả năng ứng dụng
Hàm băm
Các khả năng ứng dụng
Hàm băm
2. Xác thực.
5. Xác thực.
37
Các bước thực hiện
• Bước 1: Bổ sung các bit làm đầy
• Được bổ xung các bit để độ dài đồng dư với 448
mod 512.
• Việc bổ sung luôn luôn thực hiện (thậm chí với độ
dài mong muốn).
• Số lượng bit bổ sung 1-512
• Các bit bổ sung 10…0
38
(tiếp)
• Bước 2: Bổ sung giá trị độ dài
• Một khối 64 bit (thể hiện độ dài của bản tin khởi
đầu) được thêm vào.
• Ghi độ dài tin tức theo mod 264.
– A = 67452301,
– B = EFCDAB89,
– C = 98BADCFE,
– D = 10325476.
– Hệ HEX
39
(tiếp)
• Bước 3: Giá trị đệm khởi đầu MD
• Để lưu giữ các kết quả trung gian và cuối cùng
của hàm băm, sẽ sử dụng 128 bit đệm.
• Đệm có thể trình bày dưới dạng bốn thanh ghi
dịch 32 bit (A, B, C, D).
• Bước 4: Gia công tin tức thành các khối 512bit (mỗi
khối theo 16 từ).
• Bốn công đoạn xử lý.
• Các công đoạn có cấu trúc giống nhau.
• Mỗi công đoạn sử dụng hàm logic nguyên thủy
của mình F, G, H, I.
40
Gia công một khối 512 bit
trong MD5
41
(tiếp)
• Trong mỗi công đoạn cũng được sử dụng một phần
tư của bảng 64 phần tử T[1…64], bao gồm từ các giá
trị của hàm sin.
• Trong bảng T, phần tử thứ i, được ký hiệu T[i], là
phần nguyên của giá trị 232 abs(sin(i)), ở đây i là
góc tính theo radian.
42
(tiếp)
• Rõ ràng rằng abs(sin(i)) có giá trị nằm trong dải từ
0…1, mỗi phần tử T là một số nguyên, mà có thể trình
bày trong dạng 32 bit.
• Bảng bảo đảm”phân đều” tập mã 32 bit, nó có nhiệm
vụ phá bỏ sự đều đặn bất kỳ của số liệu đầu vào.
• Giá trị đầu ra của công đoạn thứ bốn được bổ sung
thêm giá trị đầu vào của công đoạn thứ nhất (CVq) và
kết quả nhận được CVq+1.
• Phép cộng được thực hiện theo modulo 232. 43
Các giá trị của hàm logic
44
(tiếp)
45
Bảng T
46
Phần tử cơ bản của 1 vòng
47
(tiếp)
• Bước 5: Đầu ra.
• Toàn bộ hoạt động của thuật toán MD5 có thể
miêu tả bởi các công thức sau:
• CVo = IV
• CVq+1 = SUM32 (CVq, RFI [Yq, RFH [Yq, RFF [Yq, CVq]]])
• MD = CVL.
48
Thuật toán băm SHA
(Secure Hash Algorithm)
• Thuật toán hàm băm an toàn (SHA - Secure Hash
Algoritlm) được thiết kế bởi NIST.
SHA-1 SHA-256 SHA-384 SHA-512
Message 160 256 384 512
digest size
Message size < 264 < 264 < 2128 < 2128
50
Gia công 1 khối 512 bit
51
Toán tử cơ sở SHA
52
So sánh MD5 và SHA-1
• Độ an toàn đối với chiến thuật lựa chọn tất cả các khả
năng:
• SHA-1 có độ dài đầu ra hơn MD5 là 32 bit.
• Độ phức tạp của bài toán tìm ra các tin tức có cùng
MAC với MD5 tỉ lệ với 2128, còn đối với SHA-1 tỉ lệ
với 2160.
• Độ phức tạp của bài toán tìm ra cặp tin tức có cùng
MAC đối với MD5 cần phải thực hiện 264 toán tử,
còn đối với SHA-1 cần phải thực hiện tuần tự 280
toán tử.
• Như vậy, thuật toán SHA-1 có tính an toàn cao hơn
đối với chiến thuật lựa chọn tất cả các khả năng.
53
So sánh MD5 và SHA-1
• Độ an toàn đối với quan điểm thám mã
• MD5 từ khi ra đời cho đến nay, chưa thấy xuất
hiện phương pháp thám mã nào hiệu quả về nó.
• Thuật toán SHA-1 cũng tương tự như vậy.
• Như vậy, bài toán đánh giá độ an toàn của các
thuật toán này đối với thám mã không phải là bài
toán đơn giản.
• Tính đơn giản và gọn nhẹ:
Cả hai thuật toán đều đơn giản trong miêu tả, cũng như
trong thực hiện, chúng không đòi hỏi chương trình lớn
cũng như các bảng chuyển vị lớn. 54
So sánh MD5 và SHA-1
• Tốc độ:
• Cả hai thuật toán đều sử dụng toán tử cộng theo
modul 232, bởi vậy cả hai thuật toán đều có thể
làm việc tốt ở các máy tính có kiến trúc 32 bit.
• SHA-1 - 80 bước (160 bit đệm), so với 64 bước của
MD5 với 128 bit đệm. Như vậy, về nguyên tắc thuật
toán SHA-1 phải chạy chậm hơn so với MD5.
55
Thuật toán băm MD5
Thank you !