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 - l1 - 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ệ thong 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. -12- Chuong 1 CO SO LY THUYET MAT MA 1.
TONG QUAN VE MAT MA 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 mang. 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ã hoa (Encription): Là quá trình chuyên đổi thông tin có thé chuyển đổi thông tin từ dang có thé hiểu được, sang dạng không hiểu được dé đảm bao tinh bi 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ố ding 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õ , Ban ma (Encipher) : Khoá (Ke (Key) (Ciphertext) Bộ giải ma { (Decipher) _/ Hình 1. Sơ đồ quá trình viết bi mật thông tin -13- 1. 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]: e 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é. e C là tập hợp hữu hạn các ban mã (ciphertext) có thé.
e 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 E, € E và một phép biến đổi giải mã tương ứng D, e D. Trong đó Ey: P > C và Dy: C > P là các hàm thoả mãn D,(E,(x)) = x với bat kỳ thông điệp x e P. Ở đây mỗi phép biến đổi mã hoá E, được xác đỉnh bởi thuật toán mã hoá E chung cho mọi phép biến déi và một khoá k riêng dé 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ã D, đượ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à: Ey (x;) # Ex (x;) nếu x; # x;. Mặt khác nếu E,(x,) = E(x») mà x; ¥ xa 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à x, hay x». Các yêu cầu đối với một hệ mật mã e 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á.
e 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. e Dễ sử dụng. e Đối với hệ mật thì tính mật và tính xác thực phải được bảo đảm. s* Yêu cầu của tính mật: e_ Đố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, dé xác định một cách có hệ thống phép biến đổi giải mã Dạ từ bản mã C, ngay cả khi biết ban rõ M tương ứng cũng không thé giải mã C.
e_ Đố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, dé 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ã D,. -14- s* Yêu cầu cho tính xác thực: >, e© Người thám mã không thê thay thế bản mã sang C’ thay cho bản mã C ma không bị phát hiện. e Đối với người thám mã việc tính toán là không làm được, dé xác định một cách hệ thống phép biến đổi lập mã E„ 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’ dé thay thế ban mã giả C’ = E,(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 dé tìm một cách hệ thống bản mã C’ sao cho D,(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á bi 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.2 Mô hình mã hóa khóa đối xứng Ư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 dich), 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 tinh chat đơn giản của các phép toán trên day 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á va 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 mang. Cho nên vẫn ton 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 quan 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ệ thong 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ọ. -16- k>, Ứng dụng e 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 chỉ tiết để giải quyết van đề đã đặ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 lai đượ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 nay 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. xp Ie Se encryption dseryption T Cd Plaintext ciphertext Plaintext Hình 1.3 Mô hình mã hóa khóa không đối xứng 1. 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 dé 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 -17- NP-day đủ có thé là những ứng cử viên tuyệt vời dé 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 bat 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 bai 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. Hàm ƒ : S -> 7 được gọi là ham một chiều (a one-way function) nếu như: e Hàm f(x) dễ tính toán, nghĩa là Vx e S, có thé dé dàng tính y = f(x).