MỤC LỤC
Mật mã trước hết là một loại hoạt động thực tiễn, nội dung chính của nó là để giữ bí mật thông tin (chẳng hạn dưới dạng một văn bản) từ một người gửi A đến một người nhận B, A phải tạo cho văn bản đó mụ̣t bản mật mó tương ứng, và thay vỡ gửi văn bản rừ thỡ A chỉ gửi cho B bản mật mã, B nhận được bản mã mật và sẽ có cách khôi phục lại văn bản rừ đờ̉ hiờ̉u được thụng tin mà A muốn gửi cho mỡnh. Trong thực tiễn, đã có hoạt động bảo mật thì cũng có hoạt động ngược lại là khám phá bí mật từ các bản mã mật "lấy trộm" được, ta thường gọi hoạt động này là mã thám, hoạt động này quan trọng không kém gì hoạt động bảo mật!. Vào những thập niên đầu của thế kỷ, sự phát triển của các kỹ thuật biểu diễn, truyền và xử lý tín hiệu đã có tác động giúp cho các hoạt động lập và giải mật mã từ thủ công chuyển sang cơ giới hóa rồi điện tử hóa.
Các văn bản, các bản mật mã trước đây được viết bằng ngôn ngữ thông thường nay được chuyển bằng kỹ thuật số thành các dãy tín hiệu nhị phân, tức các dãy bit, và các phép biến đổi trên các dãy ký tự được chuyển thành các phép biến đổi trên các dãy bit, hay các dãy số, việc thực hiện các phép lập mã, giải mã trở thành việc thực hiện các hàm số số học. Tuy nhiên, lý thuyết độ phức tạp tính toán không chỉ cống hiến cho ta một khái niệm để giúp chính xác hóa tiêu chuẩn bí mật của các giải pháp mật mã, mà còn mở ra một giai đoạn mới của ngành mật mã, biến ngành mật mã thành một khoa học có nội dung lý luận phong phú và có những ứng dụng thực tiễn quan trọng trong nhiều lĩnh vực của đời sống hiện đại. Bước ngoặt có tính cách mạng trong lịch sử khoa học mật mã hiện đại xẩy ra vào năm 1976 khi hai tác giả Diffie và Hellman đưa ra khái niệm về mật mã khóa công khai và một phương pháp trao đổi công khai để tạo ra một khóa bí mật chung mà tính an toàn được bảo đảm bởi độ khó của một bài toán toán học cụ thể (là bài toán tính "lôgarit rời rạc").
Hai năm sau, năm 1978, Rivest, Shamir và Adleman tìm ra một hệ mật mã khóa công khai và một sơ đồ chữ ký điện tử hoàn toàn có thể ứng dụng trong thực tiễn, tính bảo mật và an toàn của chúng được bảo đảm bằng độ phức tạp của một bài toán số học nổi tiếng là bài toán phân tích số nguyên thành các thừa số nguyên tố. Sau phát minh ra hệ mật mã đó (mà nay ta thường gọi là hệ RSA), việc nghiên cứu để phát minh ra các hệ mật mã khóa công khai khác và ứng dụng các hệ mật mã khóa công khai vào các bài toán khác nhau của an toàn thông tin đã được tiến hành rộng rãi, lý thuyết mật mã và an toàn thông tin trở thành một lĩnh vực khoa học được phát triển nhanh trong vài ba thập niên cuối của thế kỷ 20, lôi cuốn theo sự phát triển của một số bộ môn của toán học và tin học.
Trong hai khóa đó, khóa cần phải giữ bí mật là khóa giải mã K'' , còn khóa lập mã K' có thể được công bố công khai, tuy nhiên điều đó chỉ có ý nghĩa thực tiễn khi việc biết K' tìm K'' là cực kỳ khó khăn đến mức hầu như không thể thực hiện được. Một hệ mật mã khóa phi đối xứng có tính chất nói trên, trong đó khóa lập mật mã K' của mỗi người tham gia đều được công bố công khai được gọi là hệ mật mã khóa công khai. Sau khi ký “văn bản”, nếu cần thiết cho vào “phong bì” nhằm bảo đảm tính bí mật khi gửi đi, toàn bộ dữ liệu gốc và chữ ký có thể được đưa một lần bởi khóa công khai của người sẽ nhận “văn bản”.
Tất cả các thuật toán sử dụng trong việc tạo chữ ký số, xác minh chữ ký số, xác thực chữ ký số và tài liệu tạo thành một cơ chế sử dụng chữ ký số và tập hợp thành một lược đồ kí chữ ký số. Đây là bài toán chưa có lời giải nào: Tuy nhiên, dường như nó chưa được gắn với bài toán đã nghiên cứu kĩ nào nên vẫn có khả năng có cách nào đó để tính δ và γ đồng thời để (δ, γ) là một chữ kí. Cả hai phương pháp trên đều tạo các chữ kí giả mạo hợp lệ song không xuất hiện khả năng đối phương giả mạo chữ kí trên bức điện có sự lựa chọn của chính họ mà không phải giải bài toán logarithm rời rạc, vì thế không có gì nguy hiểm về độ an toàn của sơ đồ chữ kí Elgamal.
Khi Andy gửi thông báo x cho Tommy, để Tommy có căn cứ xác nhận đúng là thông báo do Andy gửi, Andy phải gửi kèm theo chữ ký sigK'(x), tức Andy gửi cho Tommy (x, sigK' (x)) trong thông tin gửi đi. Nếu chúng ta sử dụng sơ đồ mật mã RSA, khi nhận được một bản mật mã ek(x) từ Andy, Tommy chỉ biết rằng thông báo x được bảo mật, chứ không có gì để xác nhận x là của Andy gửi.
Nói cách khác, A muốn chứng minh để được đối tác xác nhận danh tính của mình mà không để lộ bất cứ thông tin nào về việc chứng minh danh tính đó. Việc xưng danh thường phải thông qua một giao thức hỏi - đáp nào đó, qua giao thức đó để B có thể xác nhận danh tính của A, B đặt cho A một câu hỏi; A phải trả lời, trong trả lời đó A phải chứng tỏ cho B biết là A có sở hữu một bí mật riêng A mới có, điều đó thuyết phục B tin chắc rằng người trả lời đúng là A và do đó xác nhận danh tính của A. Vấn đề khó ở đây là A phải làm cho B biết là A có sở hữu một bí mật chỉ riêng A mới có, nhưng lại không được lộ cho B biết cái bí mật riêng A mới có đó là cái gì.
Mặt khác, để cho việc “A có sở hữu một bí mật của riêng A” đó là đáng tin (dù là không biết) thì cần được chứng thực bởi một bên thứ ba nào đó, chẳng hạn bởi một cơ quan được uỷ thác (trusted authority). Cơ quan được uỷ thác này cũng không biết bản thân bí mật của A, nhưng biết và chứng nhận A là chủ sở hữu của một yếu tố công khai mà việc A sử dụng nó chứng tỏ A có cái bí mật nói trên.