Chương 1. CÁC KHÁI NIỆM CƠ BẢN 1. TỔNG QUAN VỀ MẬT MÃ 1. Khái niệm mã hoá Mật mã đã được con người sử dụng từ lâu đời.
Các hình thức mật mã sơ khai đã được tìm thấy từ khoảng bốn nghìn năm trước trong nền văn minh Ai Cập cổ đại. Trải qua hàng nghìn năm lịch sử, mật mã đã được sử dụng rộng rãi ở khắp nơi trên thế giới từ Đông sang Tây để giữ bí mật cho việc giao lưu thông tin trong nhiều lĩnh vực hoạt động giữa con người và các quốc gia, đặc biệt trong các lĩnh vực quân sự, chính trị, ngoại giao. 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. Ví dụ muốn gửi 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ã mật tương ứng và thay vì gửi văn bản rõ thì A chỉ gửi cho B bản mã mật, B nhận được bản mã mật và 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.
Do văn bản gửi đi thường được chuyển qua các con đường công khai nên người ngoài có thể “lấy trộm” được, nhưng vì đó là bản mật mã nên không đọc hiểu được; Còn A có thể tạo ra bản mã mật và B có thể giải bản mã mật thành bản rõ để hiểu được là do hai người đã có một thoả thuận về một chìa khoá chung, chỉ với khoá chung này thì A mới tạo được bản mã mật từ bản rõ và B mới khôi phục được bản rõ từ bản mã mật. Khoá chung đó được gọi là khoá mật mã. Để thực hiện được một phép mật mã, ta còn cần có một thuật toán biến bản rõ cùng với khoá mật mã thành bản mã mật và một thuật toán ngược lại biến bản mật cùng với khoá mật mã thành bản rõ. Các thuật toán đó được gọi tương ứng là thuật toán lập mã và thuật toán giải mã.
Các thuật toán này thường không nhất thiết phải giữ bí mật, mà cái luôn cần được giữ bí mật là khoá mật mã. Trong thực tiễn, có những hoạt động ngược lại với hoạt động bảo mật là khám phá bí mật từ các bản mã “lấy trộm” được, hoạt động này thường được gọi là mã thám hay phá khoá.[4],[5] Một hệ mã hoá là một bộ năm (P,C,K,E,D) thoả mãn các điều kiện sau đây: 1. P: Là một tập hữu hạn các bản rõ 2. C: Là một tập hữu hạn các bản mã 3.
K: là một tập hữu hạn các khoá 4. E :là hàm lập mã x P y = Ekl(x) C 5. D là hàm giải mã y C x = Dkg(y) P LUAN VAN CHAT LUONG download : add luanvanchat@agmail.1: Quá trình mã hoá và giải mã 1. Hệ mã hoá đối xứng Các phương pháp mật mã cổ điển đã được biết đến từ khoảng 4000 năm trước.
Một số kỹ thuật đã được những người Ai Cập sử dụng từ nhiều thế kỷ trước. Những kỹ thuật này chủ yếu sử dụng hai phương pháp chính là: phép thay thế và phép chuyển dịch. Trong phép thay thế, một chữ cái này được thay thế bởi chữ cái khác và trong phép chuyển dịch, các chữ cái được sắp xếp theo một trật tự khác. Hệ mã chuẩn DES được xây dựng tại Mỹ trong những năm 70 theo yêu cầu của Văn phòng quốc gia về chuẩn (NBS) và được sự thẩm định của an ninh quốc gia là một ví dụ về mật mã đối xứng.
DES kết hợp cả hai phương pháp thay thế và chuyển dịch. DES thực hiện mã hoá trên từng khối bản rõ là một xâu 64 bit, có khoá là một xâu 56 bit và cho ra bản mã cũng là một xâu 64 bit. Hiện nay, DES và biến thể của nó (3DES) vẫn được sử dụng thành công trong nhiều ứng dụng. [5] Trong các hệ mã đối xứng chỉ có một khoá được chia sẻ giữa các bên tham gia liên lạc.
Cứ mỗi lần truyền tin bảo mật, cả người gửi A và người nhận B cùng thoả thuận trước với nhau một khoá chung K, sau đó người gửi dùng eK để mã hoá cho thông báo gửi đi và người nhận dùng dK để giải mã bản mã hoá nhận được. Người gửi và người nhận có cùng một khoá chung K, được giữ bí mật dùng cho cả mã hoá và giải mã. Những hệ mã hoá cổ điển với cách sử dụng trên được gọi là mã hoá khoá đối xứng hay còn gọi là mật mã khoá bí mật. Độ an toàn của hệ mật mã đối xứng phụ thuộc vào khoá.
Nếu để lộ khoá thì bất kỳ người nào cũng có thể mã hoá và giải mã thông điệp.[5] LUAN VAN CHAT LUONG download : add luanvanchat@agmail. Hệ mã hóa chuẩn DES 1). Sơ đồ mã hoá và Sơ đồ giải mã PLAINTEXT IP L0 R0 K1 L1=R0 R1=L0(R0,K1) K2 L2=R1 R2=L1(R1,K2) L15=R14 R15=L14(R14,K15) K16 R16=L15(R15,K16) L16=R15 IP-1 CIPHERTEXT LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 5 PLAINTEXT IP L0 R0 K1 L1=R0 R1=L0(R0,K1) K2 L2=R1 R2=L1(R1,K2) L15=R14 R15=L14(R14,K15) K16 R16=L15(R15,K16) L16=R15 IP-1 CIPHERTEXT Hình 1.2: Quá trình mã hoá thuật toán DES LUAN VAN CHAT LUONG download : add luanvanchat@agmail. Các đặc điểm đặc trưng của Hệ mã hoá DES DES là hệ mã đối xứng tức là mã hoá và giải mã đều sử dụng cùng một khoá.
Sử dụng khoá 56 bít. Xử lý khối vào 64 bít, biến đổi khối vào thành khối ra 64 bít. Thuật toán DES mã hoá và giải mã nhanh. DES được thiết kế để chạy trên phần cứng.[5] DES thực hiện trên từng khối 64 bít bản rõ.
Sau khi thực hiện hoán vị khởi đầu, khối dữ liệu được chia làm hai nửa trái và phải, mỗi nửa 32 bít. Tiếp đó, có 16 vòng lặp giống hệt nhau được thực hiện, được gọi là các hàm , trong đó dữ liệu được kết hợp với khoá. Sau 16 vòng lặp, hai nửa trái và phải được kết hợp lại và hoán vị cuối cùng (hoán vị ngược) sẽ kết thúc thuật toán. Trong mỗi vòng lặp, các bít của khoá được dịch đi và có 48 bít được chọn ra từ 56 bít của khoá.
Nửa phải của dữ liệu được mở rộng thành 48 bít bằng một phép hoán vị mở rộng, tiếp đó khối 48 bít này được kết hợp với khối 48 bít đã được thay đổi và hoán vị của khoá bằng toán tử XOR. Khối kết quả của phép tính XOR được lựa chọn ra 32 bít bằng cách sử dụng thuật toán thay thế và hoán vị lần nữa. Đó là bốn thao tác tạo nên hàm . Tiếp đó, đầu ra của hàm được kết hợp với nửa trái bằng một toán tử XOR.
Kết quả của các bước thực hiện này trở thành nửa phải mới; nửa phải cũ trở thành nửa trái mới. Sự thực hiện này được lặp lại 16 lần, tạo thành 16 vòng của DES.[5] Nếu Bi là kết quả của vòng thứ i, Li và Ri là hai nửa trái và phải của Bi, Ki là khoá 48 bít của vòng thứ i, và là hàm thực hiện thay thế, hoán vị và XOR với khoá, ta có biểu diễn của một vòng sẽ như sau: Li=Ri-1 Ri=Li-1 XOR (Ri-1,Ki) LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 7 Khoá 28 bít 28 bít Dịch Dịch 28 bít 28 bít 56 bít Hoán vị Chọn 48 bít Ri-1 Mở rộng Hộp S Hộp P Ri 32 bít Hoán vị Thay thế Hoán vị 48 bít Lựa chọn 32 bít Li-1 Li 32 bít Khoá 28 bít 28 bít Dịch Dịch 28 bít 28 bít 56 bít Hoán vị Chọn 48 bít Ri-1 Mở rộng Hộp S Hộp P Ri 32 bít Hoán vị Thay thế Hoán vị 48 bít Lựa chọn 32 bít Li-1 Li 32 bít LUAN VAN CHAT LUONG download : add luanvanchat@agmail.3: Một vòng lặp DES [5] 1. Ưu và nhược điểm của hệ mật mã khoá đối xứng Ưu điểm nổi bật của các hệ mật mã khoá đối xứng là việc xây dựng một hệ mật mã có độ bảo mật cao khá dễ dàng về mặt lý thuyết. Nhưng như nếu không kể đến việc cần có một nguồn sinh khoá ngẫu nhiên thì việc phân phối, lưu trữ bảo mật và thoả thuận khoá là một vấn đề khó chấp nhận được trong mạng truyền thông ngày nay.
Trong một mạng có n người dùng, nếu cần khoá cho từng cặp thì cần n(n+1)/2 khoá. Để khắc phục hiện tượng không thể lưu trữ một khối lượng khoá quá lớn đáp ứng được nhu cầu mã dịch, người ta xem xét đến việc sử dụng các hệ mật mã khối với độ dài không lớn lắm như DES… hoặc các hệ mật mã dòng mà khoá được sinh ra từ một nguồn giả ngẫu nhiên bằng thuật toán. Mặc dù đã thực hiện việc mã hoá và giải mã bằng các hệ mật mã khối hay bằng thuật toán sinh khoá như đã nêu ở trên thì vấn đề phân phối và thoả thuận khoá vẫn phải được thực hiện. Như vậy phân phối và thoả thuận khoá là một vấn đề chưa thể được giải quyết trong các hệ mật mã khoá đối xứng.
Hệ mã khoá công khai Để giải quyết vấn đề phân phối và thoả thuận khoá của mật mã khoá đối xứng, năm 1976 Diffie và Hellman đã đưa ra khái niệm về hệ mật mã khoá công khai và một phương pháp trao đổi công khai để tạo ra một khoá 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 “logarit rời rạc”). Hệ mật mã khoá công khai hay còn được gọi là hệ mật mã phi đối xứng sử dụng một cặp khoá, khoá mã hoá còn gọi là khoá công khai (public key) và khoá giải mã được gọi là khoá bí mật hay khóa riêng (private key). Trong hệ mật này, khoá mã hoá khác với khoá giải mã. Về mặt toán học thì từ khoá công khai rất khó tính được khoá riêng.
Biết được khoá này không dễ dàng tìm được khoá kia. Khoá giải mã được giữ bí mật trong khi khoá mã hoá được công bố công khai. Một người bất kỳ có thể sử dụng khoá công khai để mã hoá tin tức, nhưng chỉ có người nào có đúng khoá giải mã mới có khả năng xem được bản rõ. Người gửi A sẽ mã hoá thông điệp bằng khóa công của người nhận và người nhận B sẽ giải mã thông điệp với khoá riêng tương ứng của mình.Có nhiều hệ thống khoá công khai được triển khai rộng rãi như hệ RSA, hệ ElGamal sử dụng giao thức trao đổi khoá Diffie-Hellman và nổi lên trong những năm gần đây là hệ đường cong Elliptic.
Trong số các hệ mật mã trên thì hệ RSA là hệ được cộng đồng chuẩn quốc tế và công nghiệp chấp nhận rộng rãi trong việc thực thi mật mã khoá công khai.