2.3.3 Hàm băm
Trong hàm băm, một bản tin tóm tắt có chiều dài cố định được tạo ra từ một bản tin có độ dài thay đổi. Giá trị băm được nối vào bản tin tại nguồn tại một thời điểm khi bản tin được giả định là chính xác. Người nhận xác nhận bản tin đó bằng cách tính lại giá trị băm. Bởi vì bản thân hàm băm khơng được coi là bí mật, một số phương tiện được yêu cầu để bảo vệ giá trị băm. Bản tin tóm tắt (MD - Message Digest) và kĩ thuật bảo vệ hàm băm (SHA - Secure Hash Algorithms) là hai loại hàm băm dùng trong mật mã hóa. Cả hai kĩ thuật đều thỏa mãn các tính chất sau:
Kẻ tấn cơng khơng thể tìm thấy hai bản tin riêng biệt M và M' sao cho H(M) = H(M').
Một kẻ tấn cơng có bản tóm tắt D khơng thể tìm thấy một bản tin M sao cho H(M) = D. Trên hầu hết các hệ thống máy tính, mật khẩu người dùng được lưu
trữ dưới dạng mã băm mật mã của mật khẩu thay vì lưu trữ mật khẩu bản rõ. Do đó một kẻ tấn cơng truy cập được vào các tập tin mật khẩu khơng thể sử dụng nó để truy cập vào hệ thống, trừ khi nó có thể chuyển đổi bản tin tóm tắt của hàm băm sang bản rõ.
Một kẻ tấn công với một bản tin M khơng thể tìm thấy một bản tin khác M' sao cho M = M' và H(M') = H(M). Tính chất này được bao hàm bởi tính chống xung đột.
Thuật tốn băm an tồn (SHA-1)
SHA-1 được sử dụng rộng rãi nhất trong các hàm băm SHA hiện tại và được sử dụng trong một số ứng dụng và giao thức bảo mật được sử dụng rộng rãi như IPsec. SHA-1 nhận nhiều khối bản tin với độ dài tối đa (264 - 1) bit và tạo ra một bản tóm tắt tiêu chuẩn 160 bit được thiết kế sao cho cần phải thực hiện tính tốn phức tạp để tìm một văn bản phù hợp với một hàm băm nhất định. Mỗi khối có chiều dài 512 bit. SHA-1 được dựa trên các giai đoạn tiền xử lý và tính tốn. Trong giai đoạn tiền xử lý, bản tin M được đệm để đảm bảo rằng nó là một bội số của 512 bit. Sau đó, bản tin đệm được phân tích thành các khối N 512 bit, và một giá trị băm H(0) gồm 5 từ 32 bit được khởi tạo. Sau khi q trình tiền xử lý hồn tất, mỗi khối bản tin được xử lý để tạo ra bản tin tóm tắt 160 bit.
2.3.4 Chữ kí số
Chữ ký số là một chương trình tốn học cho việc chứng minh tính xác thực, tính tồn vẹn dữ liệu và chống chối bỏ một bản tin hoặc tài liệu. Chữ ký số hợp lệ cho phép người nhận tin rằng bản tin đã được tạo bởi người gửi đã biết và không bị thay đổi khi chuyển tiếp. Người nhận cũng có thể chứng minh rằng thơng điệp thực sự được ký bởi người gửi nếu người gửi tuyên bố đã gửi tin nhắn. Các chương trình khác nhau của chữ ký số đã được sử dụng rộng rãi. Chúng dựa vào thuật toán số nguyên RSA (Rivest
– Shamir – Adleman), logarit rời rạc như là thuật toán chữ ký số DSA (Digital Signature Algorithm) hoặc logarit rời rạc hình elip như là thuật toán ECA (Elliptic Curve Algorithm).
Mặc dù ECA cung cấp các kích thước khóa nhỏ hơn và ln nhanh hơn đáng kể so với việc tạo chữ ký với RSA, việc xác minh với RSA lại nhanh hơn, và ECA về mặt tốn học thì tinh tế hơn; khó khăn để chọn một đường cong cụ thể cho một ứng dụng cụ thể.
Hệ thống chữ ký số RSA
RSA là thuật tốn khóa cơng khai phổ biến nhất, được đặt tên bởi các nhà phát minh. Nó được dựa trên các hàm lũy thừa modul một chiều. Nó sử dụng một số n khá lớn cùng với hai số mũ, e và d, trong đó e là công khai trong khi d là bí mật. Thuật tốn bao gồm ba bước: khởi tạo khóa, ký kết, và xác minh. Trong q trình tạo khố, một nút tạo các khóa cơng khai/ bí mật (e, d, n), thơng báo cặp (e, n) như là khóa cơng khai trong khi giá trị d được giữ bí mật.
Các quá trình ký và xác minh được thể hiện trong hình 2.6. Người gửi tạo một chữ ký (S) từ một bản tin (M) bằng khóa riêng của nó, gửi cả bản tin và chữ ký đến bên nhận. Khi người nhận nhận được bản tin và chữ ký, nó sẽ sử dụng khóa cơng khai của người gửi để tạo một bản sao của bản tin M'. Nó so sánh M với M', chấp nhận bản tin nếu hai giá trị là đồng nhất.