Computer >> Máy Tính >  >> Lập trình >> Lập trình

Yêu cầu của hàm băm trong An toàn thông tin là gì?

Hàm băm mật mã là một phép biến đổi tạo đầu vào (hoặc thông báo) và khôi phục một chuỗi có kích thước cố định, được gọi là giá trị băm. Giá trị băm h được tạo ra bởi một hàm H có dạng -

h =H (M)

trong đó M là thông báo có độ dài thay đổi và H (M) là giá trị băm có độ dài cố định.

Các hàm băm thường được sử dụng các hàm toán học trong bảo mật tiền mã hóa. Một hàm băm biến đổi giá trị đầu vào có kích thước tùy ý bất kỳ thành giá trị kích thước được cố định. Do đó, đầu vào có thể có độ dài bất kỳ nhưng đầu ra được tạo ra luôn có độ dài cố định. Đầu ra được tạo ra được gọi là giá trị băm hoặc giá trị băm.

Công dụng chung của băm là kiểm tra mật khẩu. Khi người dùng nhập mật khẩu, hàm băm của mật khẩu được tạo ra và so sánh với hàm băm trong cơ sở dữ liệu. Nếu cả hai hàm băm đều bằng nhau thì người dùng được phép đăng nhập khác, người dùng được yêu cầu nhập lại mật khẩu.

Giá trị băm được thêm vào thông báo tại nguồn tại thời điểm khi thông báo được kiểm tra hoặc biết là đúng. Người nhận xác minh thông báo bằng cách tính toán lại giá trị băm.

Hàm băm tạo ra một chuỗi có độ dài bất kỳ làm đầu vào và tạo ra một chuỗi độ dài cố định tạo điều kiện thuận lợi như một loại chữ ký cho thông tin được hỗ trợ. Trong cách tiếp cận này, một người hiểu giá trị băm không thể tìm ra thông báo gốc, nhưng ai đó hiểu thông báo gốc có thể chứng minh hàm băm được tạo ra từ thông báo đó.

Một hàm băm mật mã phải hoạt động giống như một hàm ngẫu nhiên trong khi vẫn mang tính xác định và có thể tính toán một cách hiệu quả. Hàm băm mật mã là công cụ thiết yếu trong lĩnh vực mật mã và được sử dụng để thực hiện một số mục tiêu bảo mật như tính xác thực, chữ ký số, tạo số giả, mật mã kỹ thuật số, đóng dấu thời gian kỹ thuật số, v.v.

Có một số yêu cầu của hàm băm như sau -

Hàm băm tạo dấu vân tay của một tệp, một tin nhắn hoặc một số khối thông tin khác. Hàm băm, H phải có các thuộc tính sau là asfollow -

  • Hàm băm có thể được sử dụng cho một khối thông tin ở bất kỳ kích thước nào.

  • H (x) tương đối đơn giản để tính toán cho bất kỳ x nào cho trước, tạo ra việc triển khai cả phần cứng và phần mềm đều thực tế.

  • Với bất kỳ giá trị nào đã cho, h, không thể tính toán được x sao cho H (x) =h. Đây được định nghĩa là thuộc tính một chiều.

  • Đối với bất kỳ khối x đã cho nào, về mặt tính toán không thể tìm được y ≠ x với H (y) =H (x). Thuộc tính này được định nghĩa là khả năng chống va chạm yếu.

  • Tính toán không thể tìm được một số cặp (x, y) sao cho H (x) =H (y). Tính chất này được gọi là khả năng chống va chạm mạnh.