kiến thức Phân biệt Encrypt và Hashing

Bài viết tập trung về bảo mật nên loại hash đề cập trong bài là cryptographic hash.

Thực ra ban đầu hash dc tạo ra để phục vụ cho việc tìm kiếm phần tử trong các cấu trúc dữ liệu dạng key value: hash table (HashMap trong Java, Dictionary trong C#…).

Xin chia sẻ với các thím cách hash table hoạt động, nôm na thôi.

Trong table chứa 1 mảng (array) mà mỗi phần tử là 1 danh sách liên kết (dslk) chứa ds các cặp key/value.

Khi 1 cặp key/value dc thêm vào table, key dc hash thành 1 số int i, key & value đó dc add vào dslk thứ i.

Hàm hash dạng này bắt buộc phải rất nhanh, chấp nhận đụng độ, miễn đừng quá đáng quá. Nên có thể 2 key khác nhau sẽ đi cùng vô 1 chuồng thứ i (dslk thứ i).

Các thím chắc sẽ đoán dc cách tìm kiếm value khi biết key :D

Lúc này các method trong Java như getHashCode và equals phát huy tác dụng: cái đầu dùng để hash key, cái sau dùng để tìm tuần tự trong dslk khi hash đụng độ.
 
Last edited:
Hôm trước đọc thì thấy dự đoán tương lai máy tính lượng tử đủ khả năng giải được AES-256 trong thời gian <1 năm, và Intel đang có cuộc thi tìm thuật toán khó hơn để cho encryption chống lại máy tính lượng tử. Do cách tính của máy tính lượng tử, nếu dùng biến đổi Fourier lượng tử thì có thể giải mã được AES-256, vấn đề chỉ là thời gian.
Đọc mấy cái này cũng khá hay, không biết có thím nào chuyên ngành về kỹ thuật mã hoá không?
thấy máy tính lượng tử lên đâu đấy trên 1k qbit logic r, nghe thiên hạ đồn aes 256 cần 6681 qubit logic, chắc cũng sớm thoi8-)
 
Back
Top