Chương 1 MẬT MÃ KHÓA CÔNG KHAI VÀ KỸ THUẬT TRUYỀN TIN 1. Mật mã khóa công khai 1. Những hạn chế của mật mã khóa bí mật Qua nghiên cứu về mật mã khóa bí mật, chúng ta thấy rằng mặc dù có rất nhiều uu điểm nhung dòng mật mã này cũng bộc lộ những hạn chế trong triển khai sử dụng. Trong phần này chúng ta sẽ phân tích những hạn chế cơ bản đó: Một là: Trong mật mã khóa bí mật và khóa dịch là nhu nhau hoặc dễ dàng suy ra từ nhau và khóa bí mật chỉ có các bên liên quan đuợc biết.
Do đó, hai bên muốn liên lạc an toàn thì truớc tiên phải trao đổi khóa an toàn cho nhau. Hai bên không có khóa truớc không thể tiền hành liên lạc an toàn với nhau. Trao đổi khóa chỉ có thể đuợc thực hiện thông qua các kênh riêng an toàn (thuờng là các kênh vật lý) chứ không thể dùng các kênh công cộng. Khi liên lạc trong các môi truờng mạng công cộng, việc phân phối khóa trở nên tồn kém, khó khăn và phức tạp.
Hai là: Số luợng khóa trong hệ thống liên lạc tăng nhanh so với đầu mối liên lạc. Trong mật mã khóa bí mật các đầu mối liên lạc với nhau cần phải trao đổi khóa tay đôi. Khi hệ thống có n đầu mối liên lạc thì số luợng khóa cần thiết là n (n -1) / 2. Nghĩa là số luợng khóa tăng theo hàm lũy thừa (« n2) của số đầu mối liên lạc.
Ba là: Tính bí mật và xác thực trong mật mã khóa bí mật là không phân biệt. Đặc trưng quan trọng nhất của mật mã là bí mật. Tức là đảm bảo cho đối phương không biết được nội dung cần che dấu. Tuy nhiên tính xác thực trong thông tin không kém phần quan trọng, nếu tính xác thực không được đảm bảo thì nội dung thông tin không còn giá trị.
Trên thực tế có nhiều nội dung thông tin chỉ cần đảm 4 bảo tính xác thực mà không cần đảm bảo tính bí mật. Nhưng ngược lại thông tin bí mật lại rất cần đảm bảo xác thực. Trong mật mã khóa bí mật, tính bí mật bao trùm tính xác thực. Tính xác thực chỉ được đảm bảo khi tính bí mật chưa bị phá vỡ.
Khi khóa chung được giữ bí mật, hai bên liên lạc có thế xác nhận được thông tin có phải do người kia gửi tới hay không. Bốn là: Do hai bên hoặc nhiều bên cùng có một khóa bí mật nên vấn đề tranh chấp trong xác thực giữa hai bên truyền tin không thể giải quyết được. Chúng ta biết rằng để ký vào một văn bản thì ngưới ký phải có đặc thù riêng không ai có được và bắt chước được. Điều kiện để ký chữ ký điện tử là người ký và chỉ có anh ta giữ thông tin bí mật dùng để ký trong khi bất kỳ ai cũng xác nhận được chữ ký điện tử của anh ta là đúng hay không.
Mật mã khóa bí mật không làm công việc này. Trong mật mã khóa bí mật để truyền tin mật cho nhau, hai bên phải có cùng một khóa bí mật từ trước. Trong trường hợp này tính xác thực chỉ ngăn chặn một bên thứ ba giả mạo một trong hai bên truyền tin chứ không thể ngăn chặn việc giả mạo lẫn nhau. Do có cùng một khóa bí mật nên một trong hai bên dễ dàng giả mạo bên kia để tạo ra một bản mã bằng khóa bí mật chung để gửi cho chính mình và tuyên bố rằng đó là bản mã do bên kia gửi.
Tranh chấp trong trường hợp này không giải quyết được. Với sự phát triển nhanh chóng của Internet và nhiều loại mạng công cộng khác, nhu cầu về an toàn thông tin trên mạng máy tính ngày càng cao trong đó kỹ thuật mật mã đóng một vai trò rất quan trọng. Tuy nhiên, mật mã khóa bí mật với những hạn chế nhất định đã không thể đáp ứng được tất cả các yêu cầu về bảo mật thông tin trên mạng máy tính. Do đó, sự ra đời của mật mã khóa công khai là một xu hướng tất yếu và việc kết hợp giữa hai dòng mật mã này sẽ tạo ra sức mạnh to lớn nhằm đáp ứng các đòi hỏi trong thực tế.
Lịch sử ra đời của mật mã khóa công khai 5 Ngày nay, cùng với sự phát triển mạnh mẽ của các ngành khoa học kỹ thuật, khoa học kỹ thuật mật mã cũng có những bước phát triển nhất định, cụ thể: Sự phát triển mạnh mẽ của khoa học tính toán và kỹ thuật thông tin liên lạc là những yếu tố thúc đẩy sự biến đổi phù hợp trong khoa học kỹ thuật mật mã: Khoa học tính toán phát triển và được ứng dụng rộng rãi, đánh dấu một bước ngoặt quan trọng trong kỹ thuật xử lý tin tức. Đồng thời, khoa học tính toán đã giải phóng lao động thủ công, khắc phục hạn chế tính toán cơ học và làm giảm chi phí trong quá trình mã dịch. Sự phát triển mạnh mẽ của kỹ thuật thông tin, đặc biệt là sự ra đời của mạng máy tính đòi hỏi khoa học kỹ thuật mật mã phải có sự biến đổi phù hợp để có thể đồng bộ hóa và hình thành một hệ thống thông tin an toàn hoàn chỉnh, thống nhất. Nhiều ngành, nhiều lĩnh vực có nhu cầu sử dụng thông tin mật mã trên các hệ thống thông tin hiện đại như mạng máy tính, mạng điện thoại.
Bản chất của mật mã là toán học, do đó cùng với sự phát triển của lý thuyết độ phực tạp tính toán, các nhà mật mã học đã tìm thấy những cơ sở lý thuyết mới cho khoa học mật mã. Họ đã tìm ra nhiều tiêu chuẩn mới để đánh giá độ an toàn cho các hệ mật: Trên cơ sở xác định giá trị của thông tin mật là tính bí mật, tính xác thực và giá trị thực tiễn kịp thời của nó, các nhà mật mã học đã dựa trên lý thuyết độ phức tạp tính toán để xây dựng các hệ mật an toàn về mặt tính toán. Nếu Shannon mong muốn xây dựng hệ mật sao cho mã thám không đủ thông tin để phá vỡ hệ mật thì họ mong muốn xây dựng các hệ mật sao cho mã thám không đủ sức để phá vỡ hệ mật trong một khoảng thời gian đủ lớn. Để mã thám, đối phương phải đi giải bài toán khó về mặt tính toán hay bài toán có độ phức tạp tính toán lớn.
Nhu cầu thương mại phát triển mạnh mẽ, đã thúc đẩy sự phát triển về nhu cầu sử dụng thông tin mật trong nhiều lĩnh vực khác: Trước đây thông tin mật chủ yếu được sử dụng trong lĩnh vực an ninh, quốc phòng để phục vụ cho giai cấp thống trị. Tuy nhiên, cùng với sự phát triển của nhu cầu thương mại thì nhu cầu sử dụng thông tin mật cũng đã xuất hiện trong cả các lĩnh vực kinh tế - xã hội như: Các trao đổi 6 thương mại, các hợp đồng buôn bán. cần phải được xác thực khi cần thiết. Xuất phát từ các yếu tố cơ bản trên, mật mã khóa công khai ra đời vào năm 1976 đánh dấu một giai đoạn phát triển mới cao hơn của khoa học mật mã.
Mật mã khóa công khai đã khắc phục được những hạn chế của mật mã khóa bí mật và đáp ứng được những yêu cầu của kỹ thuật thông tin hiện đại. Cụ thể: - Để giải quyết vấn đề phân phối khóa, mật mã khóa công khai dùng 2 khóa trong quá trình lập mã và giải mã. Trong đó, khóa bí mật dùng để giải mã và khóa công khai dùng để lập mã. Rõ ràng bất cứ ai có khóa công khai để có thể lập mã nhưng chỉ có người có khóa bí mật mới có thể giải mã.
Từ khóa mã công khai không thể tìm ra khóa giải mã bí mật theo nghĩa độ phức tạp tính toán. - Để kiểm tra tính toàn vẹn của thông báo dữ liệu và tính xác thực của nguồn gốc dữ liệu, mật mã khóa công khai sử dụng các hệ xác thực mật mã riêng. Trong đó, mọi người dùng có thể kiểm tra tính toàn vẹn đối với thông tin mình nhận được và họ có thể chứng minh được thông báo nào là của mình gửi đi, thông báo nào là không phải của mình. Mật mã khóa công khai tồn tại dựa trên lý thuyết độ phực tạp tính toán.
Các thuật toán mật mã khóa công khai được thiết lập dựa trên các hàm một chiều cửa sập và chúng lại dựa trên các bài toán khó giải đang tồn tại. Mô hình của hệ mật khóa công khai í. Mô hình toán học của hệ mật khóa công khai Mô hình toán học của hệ mật khóa công khai cũng giống như mô hình toán học của hệ mật khóa bí mật, chỉ khác ở các đặc trưng của khóa mã và khóa giải mã. Một hệ mật khóa công khai là một bộ năm (R, M, K E, D) , trong đó: - R là không gian rõ bao gồm một tập hữu hạn các bản rõ R có thể.
- M là không gian mã bao gồm một tập hữu hạn các bản mã M có thể. - K là không gian khóa bao gồm một tập hữu hạn các khóa K có thể. 7 Với mỗi khóa K e K có một quy tắc mã E e E, EK: R M và một quy tắc giải mã DK <E D, DK: M R sao cho thỏa mãn các tính chất sau: 1. Đối với mỗi K e K thì D (EK (R)) = R với mọi bản rõ R e R.
Đối với mỗi K e K thì giá trị các hàm EK, D là dễ dàng tính toán được. Đối với hầu hết K e K từ EK không thể tính được D. Đối với mỗi K e K có thể tính được cặp nghịch đảo EK, DK theo K. Như vậy, các phép biến đổi trong hệ mật khóa công khai được chia làm hai phần là các phép lập mã và các phép giải mã thỏa mãn đồng thời 4 tính chất kể trên.
Tính chất 1 chỉ ra rằng, khi mã hóa một thông báo bằng hàm lập mã EK, thì ta có thể giải mã nó bằng hàm giải mã D. Đây là một yêu cầu thông thường, bắt buộc của hệ mật. Tính chất 2 chỉ ra rằng có thể thực hiện việc tính toán các hàm EK, DK dễ dàng, nó đảm bảo cho người dùng hợp pháp có thể thực hiện công việc mã dịch thuận lợi, ít tốn kém. Tính chất 3 chỉ ra rằng mặc dù EK là thuật toán có ngược D nhưng việc tính toán tìm kiếm D từ EK đều không thể thực hiện được (theo nghĩa độ phức tạp tính toán).
Tính chất 4 đảm bảo có cách tính được cặp các phép biến đổi nghịch đảo EK và D theo K đã cho.