MỤC LỤC
Để khôi phục lại các thông tin đã được mã hoá, người sử dụng phải biết thuật toán tương ứng để giải mã dữ liệu, và một chìa khoá giải mã (decryption key), chìa khoá này có sự liên hệ với chìa khoá mã hoá. Mật mã học nghiên cứu về các kỹ thuật toán học liên quan đến các khía cạnh của an toàn thông tin như tính tin cậy , tính toàn vẹn dữ liệu, tính xác thực thực thể, và xác thực gốc dữ liệu. Cho tới gần đây, hầu hết việc mã hoá được thực hiện bằng cách sử dụng thuật toán mã hoá đối xứng (Symmetric-key crytography) hay thuật toán mã khoá bí mật (Secret-key Crytography).
Thứ nhất, khi sử dụng thuật toán này, hai bên phải chia sẻ chung một chìa khoá, việc thông báo cho nhau chìa khoá phải thực hiện bằng một phương thức an toàn. Thứ hai, mỗi cặp truyền cần sử dụng một chìa khoá riêng, do đó nếu muốn truyền với nhiều đối tác khác nhau sẽ cần sử dụng nhiều chìa khóa khác nhau, do đó sẽ khó quản lý. Các hạn chế trên của mã hoá đối xứng sẽ được giải quyết bằng mã khoá công khai (Public-key Crytography) hay mã hoá bất đối xứng (Asymmetric-key crytography.
Nghĩa là, thông tin được mã hóa bằng khóa bí mật sẽ được mở bằng khóa công khai, còn thông tin được mã hóa bằng khóa công khai sẽ được mở bằng khóa bí mật.
Chìa khoá bí mật sẽ được giấu kín, còn chìa khoá công khai sẽ được công bố rộng rãi (thường được chứa ở một máy chủ trên mạng để mọi người truy nhập). Thuật toán mã hóa công khai được sử dụng nhiều nhất hiện nay là RSA do Ronald Rivest, Adi Shamir và Len Adleman phát minh ra. Trong hệ thống mã hóa bất đối xứng, biết chìa khoá riêng thì sẽ dễ dàng tính được chìa khoá công khai, nhưng không thể tính ngược lại.
Hàm mã hoá Ek có thể được thay đổi sau vài năm nhưng Key có thể thay đổi thường xuyên nếu cần, hàm Ek nói chung không thể thay đổi liên tục vì sẽ rất khó khăn để nhiều người dùng cùng thay đổi cả phần cứng và phần mềm thiết bị mã hoá, giải mã. Một khóa là một phương tiện đặc trưng để xác định phép biến đổi mã hóa (từ một tập các phép biến đổi) được dùng. Trong các hệ mã khóa đối xứng, hai bên gửi và nhận tin chia sẻ chung một khóa bí mật được dùng để mã hóa và giải mã các bản tin.
Điều này đòi hỏi giữa hai bên phải thiết lập một kênh truyền liên lạc an toàn để họ thống nhất về khóa bí mật dùng chung đó.
Xuất phát từ sự hạn chế của phương pháp mã hoá đối xứng, mã khoá công khai hay mã hoá bất đối xứng (asymmetric algorithm) đã ra đời và nhanh chóng tạo ra một cuộc cách mạng trong toàn bộ lịch sử mã hoá. Diffie và Hellman trong các công trình của mình (1975 - 1976) đã đề xuất một loại hệ mã với nguyên tắc mới gọi là hệ mã với khóa công khai (public key cryptosystems), trong đó hệ mã được gắn với một người sử dụng (user) nhất định chứ không phải gắn với một cuộc truyền tin giữa một cặp người dùng. Trong hệ thống mã hóa khóa công khai, mỗi user có hai khóa, một được gọi là khóa bí mật (secret key hay private key) và một được gọi là khóa công khai (public key).
✓ Ngoài ra có một đặc tính khác, đó là việc tính toán cho các bên tạo cặp khoá mã hoá - giải mã, việc tính toán khi biết bản tin cần mã hoá và khoá công khai của bên kia để tạo bản mã tương ứng, việc sử dụng bản tin đã được mã hoá và khoá bí mật của mình để khôi phục bản tin ban đầu phải dễ dàng thực hiện và với tốc độ cao. Ví dụ như p và q chọn 200 chữ số để phá khoá cần phải 4 tỉ năm để tính (thời gian chi phí lớn nhất của thuật toán là thời gian phân tích một số lớn ra tích của các thừa số nguyên tố bởi vì muốn xác định được d từ e và n thì nhất định thám mã phải biết được p và q , với kỹ thuật hiện đại như ngày nay vẫn cần hàng triệu năm để phân tích một số có 200 chữ số ra tích các thừa số, vì vậy chưa có một thám mã nào thực sự hiệu quả trong việc phá mã RSA). Trong thực tế để khắc phục nhược điểm về tốc độ xử lý của phương pháp mã hoá công khai người ta sẽ tiến hành mã hoá bức điện bằng một thuật toán khoá bí mật (mã hoá đối xứng) như DES, rồi mã hoá chìa khoá bí mật (secret-key) với một hệ khoá công khai như RSA.
Do vậy mỗi bức điện được truyền một cách an toàn trên mạng sẽ có hai phần: một bức điện thật (được mã hoá bằng hệ mã khoá bí mật) và chìa khoá được dùng để mã hoá bức điện (chìa khoá này được sử dụng hệ mã khoá công khai).
Chứng chỉ là một phương tiện cho bên thứ ba tin cậy (Trusted Third Party - TTP) kết hợp nhận dạng của người dùng với một khóa công khai, vì vậy tại một thời điểm sau đó các thực thể khác có thể xác thực khóa công khai mà không cần sự hỗ trợ của bên thứ ba. Một người muốn xác minh một chữ kí điện tử thì ít nhất cần phải có: (1) khóa công khai tương ứng với khóa bí mật được dùng để tạo chữ kí, và (2) chứng cứ chắc chắn rằng khóa công khai (và do đó cả khóa bí mật tương ứng của cặp khóa) là của người ký. Việc sử dụng các trường bổ sung hay các mở rộng nhằm cung cấp thêm thông tin hay các thuộc tính bổ sung (ví dụ như sự xác nhận người sử dụng chứng chỉ (subscriber ) như một tác nhân, hay tham chiếu chéo đến các cơ sở dữ liệu khác cung cấp thông tin về người sử dụng) là không bắt buộc.
Tổ chức cấp chứng chỉ (CA) cần phải ký một cách số hóa lên chứng chỉ, nhằm hai mục đích: (1) Bảo vệ tính toàn vẹn thông tin của chứng chỉ, và (2) cho phép xác nhận chữ kí điện tử của tổ chức cấp chứng chỉ. Chữ kí điện tử của tổ chức cấp chứng chỉ (CA) cũng như chữ kí điện tử của người sử dụng chứng chỉ (subscriber) cần có một dấu thời gian (time - stamp) để thuận tiện cho việc chứng minh rằng chữ kí điện tử (của tổ chức cấp chứng chỉ hay của người sử dụng chứng chỉ) được tạo ra trong thời gian hiệu lực của một chứng chỉ hợp lệ, do đó chữ kí điện tử có khả năng kiểm định một chứng chỉ. Ngoài việc chứng minh người sử dụng, các hệ thống xác thực cũng được sử dụng để xác định những thông tin được yêu cầu nào có thể truy nhập – ví dụ, một cơ sở dữ liệu tài nguyên hoặc cơ sở dữ liệu tài chính của một tổ chức.
Việc xác thực thường đạt được thông qua yêu cầu và phản hồi (Challenge and response), chứng chỉ số (Digital Certificate), hoặc thông điệp được băm (Message digest - MD) và chữ ký điện tử (Digital Signature).
- Mã hoá nó bằng khoá riêng (private key) của mình tạo ra chữ ký điện tử - Gắn chữ ký này vào thông điệp cần gửi và mã hoá toàn bộ bằng khoá. Mỗi thực thể tạo một khóa bí mật dùng để kí các bản tin, và một khóa công khai tương ứng cho các thực thể khác dùng để xác minh chữ kí. Hầu hết các hệ thống chữ kí số với hồi phục bản tin được áp dụng với các bản tin có độ dài cố định, trong khi các hệ thống chữ kí số với phụ lục được áp dụng cho các bản tin có độ dài tùy biến.
Hàm một chiều h trong thuật toán tạo và xác minh chữ kí thường được lựa chọn là một hàm băm không xung đột (collision – free function). Một hệ thống chữ kí số với khôi phục bản tin là một hệ thống chữ kí số trong đó thuật toán xác minh chữ kí không yêu cầu sử dụng bản tin ban đầu[1]. Mỗi thực thể tạo một khóa bí mật dùng để kí các bản tin, và một khóa công khai tương ứng cho các thực thể khác dùng để xác minh chữ kí.
Chú ý (Các chữ kí số với phụ lục từ các hệ thống chữ kí hồi phục bản tin) Bất cứ một hệ thống chữ kí số với hồi phục bản tin nào đều có thể chuyển thành hệ thống chữ kí số với phụ lục bằng cách băm bản tin và sau đó kí số lên giá trị băm.