Một ứng dụng rõ ràng nhất của mật mã hóa khóa công khai là bảo mật
Các thuật toán tạo chữ ký số khóa công khai có thể dùng để nhận thực. Một người sử dụng có thể mã hóa văn bản với khóa bí mật của mình. Nếu một người khác có thể giải mã với khóa công khai của người gửi thì có thể tin rằng văn bản thực sự xuất phát từ người gắn với khóa công khai đó.
Các đặc điểm trên còn có ích cho nhiều ứng dụng khác như: tiền điện tử, thỏa thuận khóa…
2.5.3 So sánh mã đối xứng và mã bất đối xứng
Hình 2.5 So sánh mã đối xứng và mã bất đối xứng
2.5.4 Chữ kí điện tử (Digital Signature)
Chữ kí điện tử là đoạn dữ liệu ngắn đính kèm với văn bản gốc để chứng thực tác giả của văn bản và giúp người nhận kiểm tra tính toàn vẹn của nội dung văn bản gốc.
Chữ kí điện tử được tạo ra bằng cách áp dụng thuật toán băm một chiều trên văn bản gốc để tạo ra bản phân tích văn bản (message digest), sau đó mã hóa tạo ra chữ kí số đính kèm với văn bản gốc để gửi đi. Khi nhận, văn bản được tách làm 2 phần, phần văn bản gốc được tính lại để so sánh được phục hồi từ việc giải mã chữ kí số.
2.5.4.1 Mô hình chữ kí điện tử
Chữ ký điện tử được tạo ra bằng cách tính toán tóm tắt bản tin gốc thành bản tin tóm tắt (MD).
Hình 2.6 Mô hình chữ kí điện tử
Các MD được kết hợp với thông tin của người ký, nhãn thời gian và thông tin cần thiết khác. MD là một hàm nhận số liệu đầu vào có kích cỡ bất kỳ và tạo ra ở đầu ra một kích cỡ cố định. Tập thông tin này, sau đó được mật mã hóa bằng khóa riêng của phía phát và sử dụng các giải thuật bất đối xứng. Khối thông tin nhận được sau mật mã hóa được gọi là khóa điện tử.
Do MD là một hàm nên nó cũng thể hiện phần nào trạng thái hiện thời của bản tin gốc. Nếu bản tin gốc thay đổi thì MD cũng thay đổi. Bằng cách kết hợp MD vào chữ ký điện tử, phía thu có thể dễ dàng phát hiện bản tin gốc có bị thay đổi kể từ khi chữ ký điện tử được tạo hay không.
2.5.4.2 Nhận thực
Trong an ninh máy tính xác thực là một quy trình nhằm cố gắng xác minh nhận dạng số của phần truyền gửi thông tin trong giao thông liên lạc chẳng hạn như một yêu cầu đăng nhập. Phần gửi cần phải xác thực có thể là một người dùng sử dụng một máy tính, bản thân một máy tính hoặc một chương trình ứng dụng máy tính . Nhiều phương pháp mật mã đã được xây dựng như chữ ký số và phương pháp xác thực bằng thử thách-trả lời.
Việc xác nhận bằng bản tin là một phương pháp đảm bảo toàn vẹn số liệu và nhận thực nguồn gốc số liệu. Phương pháp phổ biến này là sử dụng mật mã thông điệp xác thực MAC.
Hình 2.7 Phương pháp nhận thực sử dụng MAC.
MAC là một hàm băm được dùng thông dụng để bảo vệ tính toàn vẹn của thông tin
truyền đi trong hệ thống viễn thông. MAC sử dụng khóa bí mật chia sẻ (giữa A và B) là đầu vào để tạo ra một mã nhận thực bản tin MAC. MAC được gắn vào bản tin gốc, sau đó được phát đến nơi nhận, phía thu sẽ sử dụng cùng giải thuật MAC tương ứng như phía phát để tính toán MAC dựa trên bản tin gốc thu được, nếu bản tin gốc bị thay đổi trong quá trình truyền dẫn thì MAC được tạo ra ở phía thu sẽ khác với MAC thu được từ phía phát gửi đến. Điều này chứng tỏ số liệu không còn nguyên vẹn nữa.
MD5 (Message-Digest algorithm 5) là một hàm băm mật mã được sử dụng phổ biến
với giá trị dài 128bit. Phía phát sẽ gửi bản tin gốc cùng với MD đến phía thu, phía thu tính MD từ bản tin gốc nhận được và so sánh với MD thu được để nhận định bản tin còn nguyên vẹn hay không. MD5 đã được dùng trong nhiều ứng dụng bảo mật, và cũng được dùng phổ biến để kiểm tra tính toàn vẹn của tập tin.
Giải thuật SHA-1 cũng có thể được sử dụng để tính toán MD giống như MD5. Tuy nhiên MD ở đầu ra của nó chỉ là 120bit.
Bằng cách sử dụng hàm làm rối (hàm Hash) một máy tính có thể nhận thực một Số liệu Số liệu Số liệu Giải thuật MAC Giải thuật MAC
MAC MAC MAC
Khóa bí mật chia sẻ
Khóa bí mật chia sẻ
người sử dụng mà không cần lưu trữ mật khẩu trong văn bản thô. Sau khi tạo ra một tài khoản (account) người sử dụng gõ mật khẩu, máy tính sử dụng hàm Hash một chiều với đầu vào là mật khẩu, để tạo ra giá trị làm rối (giá trị Hash) và lưu giữ giá trị này. Lần sau khi người sử dụng đăng nhập vào máy tính, máy tính sẽ sử dụng hàm Hash với đầu vào là mật khẩu mà người sử dụng gõ vào để tính ra giá trị Hash và so sánh giá trị này với giá trị được lưu. Nếu kết quả giống nhau thì người sử dụng đó được quyền đăng nhập. Do mật khẩu không được lưu trong văn bản thô nên rất khó bị lộ.
Cả MD5 và SHA-1 đều là các hàm Hash không khóa, nghĩa là không có khóa bí mật giữa các bên tham gia thông tin.
2.5.5 Mật mã hóa số liệu
2.5.5.1 Giao thức thiết lập khóa (Key Establishment Protocol)
Giao thức thiết lập khóa cách thức trao đổi khóa giữa hai đối tác thông qua đường truyền, các giao thức đã được các nhà khoa học chứng minh là an toàn đối với mọi sự cố xảy ra trên đường truyền.
Giao thức thiết lập khóa được chia làm 2 loại:
Giao thức thỏa thuận khóa (Key agreement protocol) : khóa được thiết lập không cần sự giúp đỡ của đối tác thứ ba.
Giao thức truyền khóa (Key transport protocol) : khóa được đối tác thứ ba tạo và phân phối.
2.5.5.2 Các kỹ thuật phá mã hiện đại
Những thiết kế mật mã bị bẻ gẫy bao gồm: