với một số tính chất bảo mật (an ninh) nhất định để phù hợp chuyện sử dụng trong nhiều ứng dụng
(message integrity). Một hàm băm nhận đầu vào là một
dài (hay thông điệp) có độ dài tùy ý và làm ra (tạo) ra kết quả là một xâu ký tự có độ dài cố định, đôi khi được gọi là
. Năm
, người ta vừa tìm ra lỗi bảo mật (an ninh) của cả hai thuật toán trên.
You must be registered for see links
You must be registered for see links
[
You must be registered for see links
] Tổng quan
Nói rộng, một hàm băm mật (an ninh) mã học phải hoạt động càng tương tự với một
You must be registered for see links
càng tốt, trong khi vẫn có tính chất
You must be registered for see links
và tính toán có hiệu quả.
Một hàm băm mật (an ninh) mã học được coi là bất an toàn nếu một trong các chuyện sau là tiềm thi về mặt tính toán:cho một tóm tắt (digest), tìm một thông điệp (chưa biết) khớp với tóm tắt đó
tìm các "xung đột băm" (hash collision), trong đó hai thông điệp khác nhau có tóm tắt trùng nhau.
Nếu có thể thực hiện một trong hai chuyện trên, một người có thể tấn công bằng cách dùng các cách trên để thay một thông điệp bất được xác nhận (unauthorisez message) vào chỗ của một thông điệp được xác nhận.
Về lý tưởng, chuyện tìm hai thông điệp có tóm tắt rất tương tự nhau cũng nên bất tiềm thi; người ta bất muốn một kẻ tấn công có thể tìm hiểu được điều gì đó có ích về một thông điệp nếu biết tóm tắt.
[
You must be registered for see links
] Các thuật toán có liên quan
Các
You must be registered for see links
và
You must be registered for see links
(cyclic redundancy check - CRC) rất khác với các hàm băm mật (an ninh) mã học, và được dùng cho các ứng dụng khác. Nếu dùng cho bảo mật, các loại kiểm tra đó rất dễ bị tấn công.
Một
You must be registered for see links
(message authentication code - MAC) lấy một thông điệp và một khóa bí mật, và làm ra (tạo) ra một "thẻ MAC" (MAC tag), sao cho kẻ tấn công khó có thể làm ra (tạo) một cặp (thông điệp, thẻ) hiệu lực khớp với thẻ được biết; ngoài các ứng dụng khác, loại ngựa hóa này dùng để ngăn chặn những kẻ tấn công làm ra (tạo) các thông điệp giả. Tuy đôi khi được gọi là "hàm băm có khóa" (keyed hash function), MAC phục vụ một mục đích rất khác và có các tính chất rất khác với một hàm băm mật (an ninh) mã học; ví dụ, nếu một người biết khóa MAC có thể dễ dàng làm ra (tạo) 2 thông điệp có cùng MAC, thì đây bất phải một lỗi. Có thể dùng các hàm băm để làm ra (tạo) các hàm MAC; ví dụ, xem
You must be registered for see links
.
[
You must be registered for see links
] Các tính chất mật (an ninh) mã học
Không có một định nghĩa hình thức bao trùm tất cả các tính chất mong muốn của một hàm băm mật (an ninh) mã học. Các tính chất dưới đây được coi là yêu cầu tiên quyết:
You must be registered for see links
(Về một tính chất có liên quan nhưng hơi khác, xem bài
You must be registered for see links
): cho trước h chuyện tìm m sao cho h = hash(m) là rất khó.
Second preimage resistant: cho thông điệp m1, chuyện tìm một thông điệp m2 (khác m1) sao cho hash(m1) = hash(m2) là rất khó.
You must be registered for see links
: chuyện tìm 2 thông điệp khác nhau m1 và m2 sao cho hash(m1) = hash(m2) là rất khó. Do tiềm năng
You must be registered for see links
(birthday attack), điều đó có nghĩa là kết quả của hàm băm phải dài ít nhất là gấp đôi so với yêu cầu của preimage-resistance.
Một hàm băm thỏa mãn các tiêu chí trên có thể vẫn có các tính chất bất mong muốn. Ví dụ, các hàm băm phổ biến nhất dễ bị tổn thương bởi các tấn công length-extension: Cho trước h(m) và len(m) nhưng bất cho trước m, bằng cách chọn m' thích hợp, một kẻ tấn công có thể tính h (m || m'), trong đó || ký hiệu
You must be registered for see links
(concatenation). Tính chất này có thể được dùng để phá các phương pháp xác thực đơn giản phụ thuộc vào các hàm băm. Việc xây dựng
You must be registered for see links
vừa tránh được các vấn đề này.
Nhiều người có một khái niệm sai rằng "tính chất một chiều" của một hàm băm mật (an ninh) mã hóa có nghĩa rằng chuyện xử lý trạng thái băm là bất thể lần ngược được, và rằng nó mâu thuẫn với các nguyên tắc dùng để xây dựng các ngựa hóa khối (block cipher). Thực ra, "tính chất bất thể đảo ngược" đó có nghĩa rằng có các xung đột đất phương làm ra (tạo) điều kiện cho các tấn công. Để có tính chất an toàn mật (an ninh) mã học, hàm băm phải là một quá trình xử lý hoán vị trạng thái của nó theo kiểu song ánh (bijective) Tính chất bất thể đảo ngược đó thực ra có nghĩa rằng: bất thể tìm khóa dùng cho chuyện mã hóa một khối A thành một khối B bằng một phương pháp nào nhanh hơn là vét cạn.
[
You must be registered for see links
] Ứng dụng của các hàm băm mật (an ninh) mã học
Một ứng dụng điển hình của một hàm băm mật (an ninh) mã học như sau:
You must be registered for see links
đưa cho Bob một câu đố khó và tuyên bố rằng cô ấy vừa giải được rồi. Bob muốn tự giải, nhưng cũng muốn chắc chắn là Alice đúng là vừa giải được. Do đó, Alice viết đáp án, gắn thêm một
You must be registered for see links
ngẫu nhiên, tính giá trị băm của nó, và đưa kết quả băm cho Bob (trong khi vẫn giữ bí mật (an ninh) đáp án và nonce). Bằng cách này, khi Bob tự giải xong, Alice có thể chứng minh rằng cô vừa có đáp án từ trước bằng cách đưa nonce cho Bob.
Trong thực tiễn, Alice và Bob thường là các
You must be registered for see links
, và bí mật (an ninh) thường là cái gì đó bất dễ lừa bằng một lời giải cho câu đó. Ứng dụng trên được gọi là một hệ thống tin cậy (commitment scheme). Một ứng dụng quan trọng khác của các hàm băm bảo mật (an ninh) là sự kiểm tra
You must be registered for see links
. Ví dụ, chuyện xác định xem một file hay một thông điệp có bị sửa đổi hay bất có thể thực hiện bằng cách so sánh tóm tắt được tính trước và sau khi gửi (hay một sự kiện bất kỳ nào đó). Còn có thể dùng tóm tắt thông điệp làm một phương tiện đáng tin cậy cho chuyện nhận dạng file. Một ứng dụng có liên quan là kiểm tra
You must be registered for see links
. Mật khẩu thường bất được lưu dưới dạng văn bản rõ (clear text), mà ở dạng tóm tắt. Để xác thực một người dùng, mật (an ninh) khẩu do người đó nhập vào được băm và so sánh với kết quả băm được lưu trữ.
Do các lý do cả về bảo mật (an ninh) và hiệu năng chương trình, (nhiều) đa số các thuật toán
You must be registered for see links
nói rằng chỉ có tóm lược của thông điệp, chứ bất phải toàn văn thông điệp, được "ký". Các hàm băm còn có thể được dùng để làm ra (tạo) các bit
You must be registered for see links
(pseudorandom).
You must be registered for see links
,
You must be registered for see links
, và
You must be registered for see links
nằm trong số các thuật toán tóm tắt thông điệp được dùng rộng lớn rãi nhất của năm 2005. Tháng 8 năm 2004, các nhà nghiên cứu vừa tìm được các điểm yếu của một loạt hàm băm, trong đó có MD5, SHA-0 và RIPEMD. Tháng 2 năm 2005, người ta ghi nhận một tấn công đối với SHA-1. Tháng 8 năm 2005, người ta lại ghi nhận một tấn công khác đối với SHA-1.
Các hàm băm được dùng để nhận dạng các file trong các mạng
You must be registered for see links
You must be registered for see links
. Ví dụ, trong một
You must be registered for see links
, một biến thể của
You must be registered for see links
được kết hợp với kích thước file để cung cấp thông tin cho chuyện xác định nguồn file, tải xuống và kiểm tra nội dung.
[
You must be registered for see links
] Danh sách các hàm băm mật (an ninh) mã học
Một số thuật toán trong danh sách dưới đây được biết là bất an toàn; xem các bài cho từng thuật toán cụ thể để biết thêm thông tin về tình trạng thuật toán. Xem thêm các hàm băm khác ở cuối trang.
Thuật toánKích thước đầu ra (output size)Kích thước trạng thái trong (Internal state size)Kích thước khối (Block size)Độ dài (Length size)Kích thước word (Word size)Xung đột (Collision)
You must be registered for see links
256/224/192/160/12825610246432Có
You must be registered for see links
128384128Không8tiềm năng lớn
You must be registered for see links
1281285126432Có
You must be registered for see links
1281285126432Có
You must be registered for see links
2568736256No32Có lỗi
You must be registered for see links
1281285126432Có
You must be registered for see links
128/256128/2565126432Không
You must be registered for see links
160/320160/3205126432Không
You must be registered for see links
1601605126432Không
You must be registered for see links
1601605126432Có lỗi
You must be registered for see links
256/2242565126432Không
You must be registered for see links
512/384512102412864Không
You must be registered for see links
192/160/1281925126464Không
You must be registered for see links
160/256256/384880/1281Không
You must be registered for see links
You must be registered for see links
320/512512/7688160/2561Không
You must be registered for see links
5125125122568Không
Các
You must be registered for see links
là một loạt các hàm do
You must be registered for see links
phát triển: SHA, còn được biết với tên SHA-0, SHA-1 và 4 biến thể của một hàm có tên SHA-2.
Lưu ý: Ở đây, trạng thái trong (internal state) có nghĩa là "tổng băm trong" (internal hash sum) sau mỗi lần nén một khối dữ liệu. Hầu hết các hàm băm còn dùng một số biến bổ sung khác, chẳng hạn như độ dài của dữ liệu vừa được nén cho đến thời (gian) điểm hiện tại, do điều này cần cho chuyện chèn độ dài (length padding) ở cuối. Xem rõ hơn tại
You must be registered for see links
.
[
You must be registered for see links
] Các phương pháp tính băm cho các ngựa hóa khối (block cipher)
Xem rõ hơn tại
You must be registered for see links
.Matyas-Meyer-Oseas
Davies-Meyer
Miyaguchi-Preneel
MDC-2
MDC-4
[
You must be registered for see links
] Xem thêm
You must be registered for see links
(Avalanche effect)
You must be registered for see links
You must be registered for see links
You must be registered for see links
You must be registered for see links
Collision Resistant Hash Functions.
You must be registered for see links
Universal One Way Hash Functions - Hàm băm một chiều tổng quát.
You must be registered for see links
và
You must be registered for see links
(các dự án đánh giá các hàm băm)
You must be registered for see links
(Hash list)
You must be registered for see links
(Hash tree)
You must be registered for see links
[
You must be registered for see links
] Chú thích
You must be registered for see links
A. Joux and J-R. Reinhard, "Overtaking VEST" describes an attack that breaks ProVEST with a typo in the counter diffusor responsible for local collisions. VEST ciphers do not have that collision and therefore are not affected by this attack.
[
You must be registered for see links
] Liên kết ngoài
Tiếng Anh:
You must be registered for see links
— danh sách các hàm băm và các tấn công vừa được biết
You must be registered for see links
You must be registered for see links
You must be registered for see links
của Steve Friedl
You must be registered for see links
của
You must be registered for see links
You must be registered for see links
You must be registered for see links
You must be registered for see links
phòng chốngthí nghiệm RSA
You must be registered for see links
của James McGlinn tại PHP Security Consortium
Lấy từ “
You must be registered for see links
”
You must be registered for see links
:
You must be registered for see links
|
You must be registered for see links
|
You must be registered for see links