Chương 1: Giới thiệu các khái niệm về mật mã, các phương pháp mã hoá, trình bày các cơ sở toán học cơ bản và các thuật toán quan trọng thường được sử dụng trong các hệ mật mã khoá công khai. Chương 2: Trình bày lý thuyết chung về hệ mật mã khóa công khai và một số các hệ mật mã khoá công khai cụ thể như: hệ mật mã khoá công khai Ba lô, hệ mật TIEU LUAN MOI download : skknchat@gmail.com - 11 - mã khoá công khai ELGAMAL, hệ mật mã khoá công khai RSA, lý thuyết về hàm băm và chữ ký số. Chương 3: Giới thiệu về tiền điện tử. Trình bầy về một số hệ thống tiền điện tử cụ thể như: Hệ thống tiền ẩn danh (Chaum – Fiat – Naor), Hệ thống tiền ẩn danh không có khả năng ghi nhận, lược đồ Brand, tiền điện tử có thể chia nhỏ.
Luận văn đã hệ thống được một cơ sở lý thuyết cơ bản, giúp cho việc nghiên cứu, tìm hiểu về hệ mã khoá công khai và mô hình chữ ký điện tử. Đồng thời tìm hiểu một số mô hình tiền điện tử, khai thác những khía cạnh cài đặt, một số tồn tại và quan điểm của người dùng đối với tiền điện tử. Từ đó có thể mở rộng và hoàn thiện thêm một số chức năng để đưa vào ứng dụng thực tiễn. TIEU LUAN MOI download : skknchat@gmail.com - 12 - Chƣơng 1 CƠ SỞ LÝ THUYẾT MẬT MÃ 1.
TỔNG QUAN VỀ MẬT MÃ 1. Một số khái niệm cơ bản Mật mã (Criptography): là một khoa học nghiên cứu cách viết bí mật. Có thể một cách khái quát, đó là phương thức đảm bảo sự bí mật thông tin tại nơi lưu trữ cũng như khi chuyền đi trên mạng. Cho dù sự trao đổi này diễn ra trên môi trường truyền thông không an toàn.
Mã hoá (Encription): Là quá trình chuyển đổi thông tin có thể chuyển đổi thông tin từ dạng có thể hiểu được, sang dạng không hiểu được để đảm bảo tính bí mật thông tin. Giải mã (Decryption): là quá trình khôi phục lại thông tin ban đầu, từ dạng thông tin đã được mã hoá. Khoá mã (Key): là dãy các ký tự và số dùng làm biến cho các quá trình mã hoá hay giải mã thông tin. Thám mã (Cryptanalysis): là những người phân tích các bản mã.
Bộ lập mã (Encipher) Bản rõ Khoá (Key) Bản mã (Encipher) (Ciphertext) Bộ giải mã (Decipher) Hình 1. Sơ đồ quá trình viết bí mật thông tin TIEU LUAN MOI download : skknchat@gmail. Mô hình mật mã biểu diễn dƣới dạng toán học Định nghĩa 1.1: Hệ thống mật mã, là một bộ bao gồm 5 thành phần (P, C, K, E, D) thoả mãn các điều kiện sau [1]: P là tập hợp hữu hạn các bản rõ (plaintext) hoặc thông điệp (message) có thể. C là tập hợp hữu hạn các bản mã (ciphertext) có thể.
K là tập hợp hữu hạn các khoá có thể. Với mỗi khoá k K, có một phép biến đổi mã hóa Ek E và một phép biến đổi giải mã tương ứng Dk D. Trong đó Ek: P C và Dk: C P là các hàm thoả mãn Dk(Ek(x)) = x với bất kỳ thông điệp x P. Ở đây mỗi phép biến đổi mã hoá Ek được xác đinh bởi thuật toán mã hoá E chung cho mọi phép biến đổi và một khoá k riêng để phân biệt với các phép biến đổi khác.
tương tự, mỗi phép biến đổi giả mã Dk được xác định bởi thuật toán giải mã D chung và một khoá k phân biệt. Yêu cầu đặt ra cho quá trình giải mã là: E k (x1) Ek (x2) nếu x1 x2. Mặt khác nếu Ek(x1) = Ek(x2) mà x1 x2 là giải mã không duy nhất, và người nhận sẽ không thể quyết định thông điệp giải mã được là x1 hay x2. Các yêu cầu đối với một hệ mật mã Dễ tính toán: các phép biến đổi mã hoá và giải mã phải hiệu quả đối với mọi khoá trong không gian khoá.
Sự an toàn: phụ thuộc vào tính mật của các khoá k K, không phụ thuộc vào tính phức tạp và tính mật của các thuật toán mã hoá E hay giải mã D. Dễ sử dụng. Đối với hệ mật thì tính mật và tính xác thực phải được bảo đảm. Yêu cầu của tính mật: Đối với những người thám mã, thì công việc tính toán là không thể thực hiện được, để xác định một cách có hệ thống phép biến đổi giải mã Dk từ bản mã C, ngay cả khi biết bản rõ M tương ứng cũng không thể giải mã C.
Đối với những người thám mã, thì công việc tính toán là không thể thực hiện được, để xác định một cách có hệ thống bản mã M từ bản mã chặn được C nếu không có phép biến đổi giải mã Dk. TIEU LUAN MOI download : skknchat@gmail.com - 14 - Yêu cầu cho tính xác thực: Người thám mã không thể thay thế bản mã sang C‟ thay cho bản mã C mà không bị phát hiện. Đối với người thám mã việc tính toán là không làm được, để xác định một cách hệ thống phép biến đổi lập mã Ek khi cho phép C, ngay cả khi đã biết bản rõ M (nghĩa là, không thể mã hoá bản rõ M‟ để thay thế bản mã giả C‟ = Ek(M‟) cho bản mã thật C). Đối với những người thám mã thì về mặt tính toán là không nổi để tìm một cách hệ thống bản mã C‟ sao cho Dk(C‟) là bản rõ hợp thức trong tập P.
Phƣơng pháp mã hoá dữ liệu Có hai phương pháp mã hoá khoá, đó là phương pháp mã hoá khoá đối xứng và phương pháp mã hoá khoá không đối xứng. Những hệ mật mã dựa trên phương pháp mã hoá khoá đối xứng gọi là hệ mật mã khoá đối xứng (Symmetric key Cryptography) ngược lại, các hệ mật mã dựa trên phương pháp mã hoá không đối xứng, gọi là hệ mật mã khoá không đối xứng (Asymmetric key Cryptography), hay hệ mật mã khoá công khai (Public key Cryptography). Mã hoá khoá đối xứng Trong phương pháp mã hoá khoá đối xứng [4], người gửi và người nhận sẽ dùng chung một khoá k duy nhất cho cả hai quá trình mã hoá và giải mã dữ liệu (hình 1. Trước khi thực hiện việc trao đổi thông tin bí mật thông qua môi trường mạng, hai bên gửi và nhận phải có khoá trước (bên gửi chuyển khoá bí mật cho bên nhận), đồng thời phải thống nhất các thuật toán dùng cho quá trình mã hoá và giải.
Hiện tại có nhiều hệ mật mã được xây dựng trên phương pháp mã hóa khóa đối xứng như: DES, 3DES-Triple, RC2-Rivest Cipher 2… TIEU LUAN MOI download : skknchat@gmail.com - 15 - Ƣu điểm: Tốc độ thực hiện rất nhanh do quá trình mã hoá và giải mã đều sử dụng các phép toán trên dãy bits nhị phân đơn giản, như: AND, OR, XOR, SHIFT (phép dịch), ROTATE (phép quay), (phép nối),… gần với lệnh mã máy. Dễ dàng thực hiện trên các ứng dụng cho cả phần cứng lẫn phần mềm. Do tính chất đơn giản của các phép toán trên dãy bits nhị phân. Chiều dài của bản mã (Ciphertext) bằng với chiều dài bản rõ (Plaintext) vì không sinh thêm những thông tin phụ trong quá trình mã hoá và giải mã.
Nhƣợc điểm: Nhược điểm chính của các hệ là khoá bí mật được chuyền đi trên môi trường mạng. Cho nên vẫn tồn tại nguy cơ khoá bí mật có thể bị đánh cắp. Vì vậy đòi hỏi công việc quản lý khoá là rất phức tạp, phải dùng thêm các cơ chế và giải thuật khác trong việc quản lý, trao đổi khóa giữa các đối tác. Không có tính chất xác định được chủ nhân của thông tin đã mã hoá, cũng như không có tính chất không thể phủ nhận (Non-Repudiation) thông tin.
Do đó khó có thể ứng dụng vào các nhu cầu cần xác định nguồn gốc của thông tin như chữ kí điện tử (Digital signature)… Đối với một hệ thống lớn có nhiều đối tác giao tiếp với nhau, tạo nên sự khó khăn trong việc quản lý khoá vì một người sử dụng phải giữ quá nhiều khoá bí mật của các đối tác muốn trao đổi thông tin với họ. TIEU LUAN MOI download : skknchat@gmail.com - 16 - Ứng dụng Mã hoá dữ liệu đường truyền (tranmission encryption): cũng do những ưu thế về tính bảo mật, tốc độ và thực hiện đơn giản. Mã hoá dữ liệu lưu trữ (Data storage encryption): cũng do những ưu thế trên, mà hệ này được dùng phổ biến trong việc mã hoá cơ sở dữ liệu, mã hoá hệ thống file an toàn (secure file system),… Nhận xét: Do những nhược điểm trên nên luận văn sẽ không đi sâu nghiên cứu chi tiết mật mã dựa theo phương pháp mã hoá khoá đối xứng. Vì phương pháp mã hoá này rất khó đáp ứng được mục tiêu của đề tài đã đặt ra.
Mã hoá khoá không đối xứng Phương pháp mã hoá không đối xứng [1], [4], [6] đã giải quyết được những nhược điểm của phương pháp mã hoá khoá đối xứng. Đây chính là phương pháp mã hoá mà luận văn này sẽ đi sâu nghiên cứu chi tiết để giải quyết vấn đề đã đặt ra. Trong phương pháp này sử dụng hai khoá có vai trò trái ngược nhau bao gồm một khoá công khai (public key), được công bố rộng dãi dùng cho quá trình mã hoá. Khoá riêng (private key) tương xứng còn lại được giữ bí mật của từng người, dùng cho quá trình giải mã (hình 1.
Tuy nhiên, hai khóa này có quan hệ toán học với nhau, từ khoá riêng có thể tính toán để đưa ra được khoá công khai nhưng điều ngược lại về mặt tính toán là không thể làm nổi với điều kiện chiều dài khoá đủ lớn. Mật mã dựa trên những bài toán khó tính toán Trong bài báo đưa ra năm 1976, Diffie và Hellman gợi ý áp dụng độ phức tạp tính toán để thiết kế các bài toán mã hoá. Các tác giả này đã lưu ý những bài toán TIEU LUAN MOI download : skknchat@gmail.com - 17 - NP-đầy đủ có thể là những ứng cử viên tuyệt vời để thiết kế các hệ mật mã khoá công khai. Vì chúng không thể giải được trong thời gian đa thức với bất kỳ kỹ thuật nào đã biết (những bài toán có độ phức tạp tính toán lớn hơn bài toán NP không tích hợp, vì các phép biến đổi mã hoá và giải mã cần phải có tốc độ thực hiện nhanh).
Để xây dựng những hệ mật mã như vậy, một thông tin “cửa sập” bí mật được chèn thêm vào bài toán khó bao gồm việc nghịch đảo một hàm một chiều.2: Cho các tập hữu hạn S, T.