Private key
2.3. Phương thức mã hoá một chiều thuật toán Băm
Băm
Để đảm bảo tính toàn vẹn của dữ liệu không bị thay đổi so với dữ
liệu ban đầu, người ta đưa ra các phương thức mã hoá một chiều sử dụng các thuật toán Băm.
Hoạt động của phương thức mã hoá này được minh hoạ trong hình
sau:
one-way function
Plain text Message digest
(hash)
2.3. Phương thức mã hoá một chiều - thuật toán Băm Băm
Hình trên mô tả hoạt động của phương thức mã hóa 1 chiều
(Message - Digest):
Theo đó, đầu ra của phương thức này là một Message Digest
có chiều dài cố định (message này gọi là message digest, hoặc digest hoặc hash).
Với mỗi đầu vào Plaintext sẽ chỉ có duy nhất một kết quả
đầu ra tương ứng và từ Message Digest không thể tìm ra Message dạng Plaintext ban đầu.
Message (dạng Plain text) sau khi thực hiện hàm hashing sẽ
tạo ra một chuỗi các ký tự - đặc trưng cho message đầu vào.
Giải thuật message digest là một thuận toán một chiều hay
thường gọi là thuật toán hash.
Phương thức mã hóa này không sử dụng để mã hóa dữ liệu
mà thường sử dụng để kiểm tra tính toán vẹn của dữ liệu trong quá trình truyền thông tin trên mạng.
2.3. Phương thức mã hoá một chiều - thuật toán Băm Băm
Các thuật toán hashing có 3 đặc điểm chính như sau:
Không có khả năng tạo ra message ban đầu dựa trên digest
của nó (nói cách khác là thuật toán hashing phải đảm bảo có tính một chiều, không thể thực hiện theo chiều ngược lại)
Không thể tìm ra một message gốc từ một digest đặc biệt
Không thể tìm 2 message khác nhau có cùng một digest
2.3. Phương thức mã hoá một chiều - thuật toán Băm Băm
Nếu chiều dài của digest là m bits, nó sẽ cần phải thử 2m message để
tìm ra một message với digest mong muốn tương ứng và thực hiện 2m/2
meesage để tìm 2 message có cùng một digest.
Thuật
toán Chiều dài của digest (bits)
MD2 128 MD4 128 MD5 128 SHA-1 160 SHA 160 Do đó các hàm thực hiện message-digest
phải có đầu ra ít nhất là 128 bits, vì tối thiểu là 264 là không thể tính toán được với các khả năng tính toán hiện nay.
Bảng sau đây mô tả một số thuật toán hashing thường sử dụng: