GIỚI THIỆU
Việc xây dựng các thuật toán mật mã hiệu năng cao cho mục đích thiết kế, chế tạo các thiết bị bảo mật thông tin phục vụ lĩnh vực an ninh - quốc phòng và kinh tế - xã hội trong điều kiện hiện nay có ý nghĩa thực tiễn hết sức to lớn. Với mục tiêu đặt ra, thuật toán được xây dựng nhằm đáp ứng các yêu cầu:
- Loại trừ các dạng tấn công đã biết đối với các hệ mật khóa đối xứng trong thực tế;
- Tích hợp hiệu quả trên các thiết bị có kích thước nhỏ, dung lượng nhớ và năng lực tính toán hạn chế.
Giải pháp để xây dựng thuật toán mật mã với các yêu cầu đặt ra được đề xuất dựa trên việc phát triển hệ mã sử dụng OTP có độ an toàn và hiệu quả thực hiện cao [1-5]. OTP được Gilbert Vernam đề xuất vào năm 1917 và được Joseph Mauborgne tiếp tục hoàn thiện sau đó. Nguyên tắc căn bản của OTP là sử dụng một khóa mật chia sẻ trước có độ dài bằng với độ dài của bản tin cần mã hóa (bản rõ), các bit của bản mã nhận được từ việc cộng loại trừ (XOR) trực tiếp các bit của bản rõ với các bit tương ứng của khóa mật.
Lý thuyết của Claude E. Shannon [6] đã chỉ ra OTP là một loại mật mã có độ mật hoàn thiện (perfect secrecy). Hiện tại, OTP vẫn được xem là loại mật mã an toàn tuyệt đối, không thể phá vỡ. Điều đặc biệt là ngay cả tấn công vét cạn (brute force) bằng máy tính lượng tử đối với loại mã này cũng trở nên vô nghĩa, nếu có thể đáp ứng được các điều kiện về khóa như sau:
- Khóa có tính chất ngẫu nhiên;
- Mỗi khóa chỉ được dùng để mã hóa duy nhất một bản tin;
- Kích thước của khóa phải bằng hoặc lớn hơn kích thước của bản rõ;
- Khóa phải được giữ bí mật hoàn toàn.
Tuy có độ an toàn và tốc độ mã hóa cao, cũng như khả năng cài đặt dễ dàng trên các thiết bị có năng lực tính toán và tài nguyên hạn chế, nhưng với các yêu cầu về khóa đã chỉ ra, thì loại mã này khó triển khai trong thực tế.
Nguyên nhân đầu tiên là việc tạo khóa phải thực sự ngẫu nhiên, nhằm loại trừ các nguy cơ mất an toàn bao gồm: a) từ một khóa đã biết, kẻ tấn công có thể tìm (suy ra) được các khóa đã được sử dụng trước đó hay các khóa sẽ được sử dụng trong tương lai; b) chuỗi bit khóa tồn tại chu kỳ lặp lại, từ đó tạo ra mối liên quan giữa bản rõ và bản mã, kẻ tấn công có thể tận dụng mối liên quan này để phá mã, tương tự như với mã hóa đa bảng Vigenère [7]. Tuy nhiên, đây là một yêu cầu không dễ thực hiện về mặt kỹ thuật trong các ứng dụng.
Trong [8], trên cơ sở các nghiên cứu đã được công bố trước đó, các tác giả đề xuất thuật toán mã hóa phát triển dựa trên nguyên lý của mật mã OTP trong đó sử dụng hàm băm (Hash Function) để sinh dòng khóa, thuật toán có tính hiệu quả thực hiện cao, dễ cài đặt trên cả phần cứng và phần mềm.
Trong bài báo này, nhóm tác giả đề xuất một giải pháp nhằm cho phép tạo ra các biến thể của mật mã OTP, thừa kế được một số ưu điểm của OTP, song việc thiết lập, quản lý - phân phối và sử dụng khóa là đồng nhất với các hệ mã khóa đối xứng đang sử dụng trong thực tế. Ngoài ra, xác thực nguồn gốc và tính toàn vẹn của bản tin được mã hóa cũng là một tính năng bổ sung quan trọng cho các thuật toán xây dựng theo giải pháp này. Điểm khác của giải pháp đề xuất ở đây so với thuật toán trong [8] là chuỗi khóa được tạo ra chủ yếu bằng các thuật toán sinh số ngẫu nhiên có kết hợp với hàm băm mà không hoàn toàn bởi hàm băm như trong [8], điều đó cho phép nâng cao tốc độ thực hiện thuật toán mã hóa nhất là khi sử dụng thuật toán sinh số ngẫu nhiên dạng thanh ghi dịch hồi tiếp tuyến tính (Linear Feedback Shift Registers – LFSR) [9] kiểu Shrinking Generator [10].
Quý độc giả quan tâm vui lòng xem chi tiết tại đây.