Mật mã RSA - phần 7
IX. Vấn đề an toàn trong xây dựng thuật toán RSA
RSA vốn là một loại mật mã an toàn, tuy nhiên quá trình sinh khóa phụ thuộc nhiều vào yếu tố lựa chọn từ con người: Bao gồm việc chọn cặp số và số mũ công khai , cùng với cách thức vận dụng quy trình mã hóa đã mang lại các kẽ hở cho kẻ tấn công có thể khai thác. Bởi vậy, để đảm bảo vấn đề bảo mật, an toàn trong việc truyền thông điệp mã hóa bằng thuật toán RSA, bên cạnh việc vận hành thuật toán an toàn thì chúng ta cũng cần đảm bảo các tham số được lựa chọn phù hợp.
1. Nguyên tắc lựa chọn số
Yếu tố được xét tới đầu tiên khi đánh giá một thuật toán mã hóa RSA có an toàn hay không chính là khả năng phân tích số ra tích hai thừa số nguyên tố cao hay thấp. Bởi vậy việc lựa chọn số an toàn đóng vai trò quan trọng trong sự an toàn của thuật toán.
Nguyên tắc đầu tiên và dễ thấy nhất đó chính là giá trị của số cần được đảm bảo đủ lớn. Với sự phát triển nhanh chóng của công nghệ, hệ thống tính toán thì các số với giá trị nhỏ đều có thể dễ dàng bị phân tích. Hiểu một cách đơn giản bước đầu là số càng lớn thì thuật toán càng an toàn. Nên lựa chọn số có độ dài từ đến bit, sẽ khó có thể bị tấn công thành công trong tương lai gần.
Về bản chất, số được tạo thành từ tích của hai thừa số nguyên tố và , nên bên cạnh việc đảm bảo số đủ lớn thì cách lựa chọn cặp số nguyên tố cũng cần lưu ý. Cùng nhớ lại các phần bài viết về phương thức tấn công, việc lựa chọn cặp số có giá trị quá gần nhau hoặc quá xa đều tồn tại điểm yếu nhất định.
Xét thao tác liên tục nâng lên lũy thừa bậc của phương trình , dừng lại cho tới khi thu được kết quả bằng , giả sử sau lần nâng lên lũy thừa ta có:
Suy ra , dẫn tới . (các điều kiện nguyên tố cùng nhau hầu như thỏa mãn hoàn toàn do đủ lớn). Một trường hợp số thỏa mãn theo định lý Euler là khi , hay (Do và nguyên tố cùng nhau).
Tiếp tục sử dụng định lý Euler ta có thể chọn , như vậy nếu đủ nhỏ, ta có thể tính ngược lại quá trình trên và tìm ra - đe dọa tới tính an toàn của thuật toán. Khi nhỏ, sẽ dẫn tới lớn, từ đó lớn, làm giảm đi tính hiệu quả của phương pháp trên.
Số nguyên tố được chọn cần là "số nguyên tố mạnh", tức cần thỏa mãn đồng thời:
- Điều kiện : tồn tại hai số nguyên tố lớn , sao cho và
- Điều kiện : tồn tại bốn số nguyên tố lớn sao cho , , ,
Tóm lại việc chọn số an toàn chính là chọn hai số nguyên tố , thỏa mãn đồng thời:
- Số và đủ lớn
- Đảm bảo hai số nguyên tố có khoảng cách đủ lớn và vừa phải.
- nhỏ.
- Là các "số nguyên tố mạnh".
2. Nguyên tắc lựa chọn số
Số mũ công khai được chọn sao cho thỏa mãn , do có nhiều giá trị thỏa mãn nên cần chú ý lựa chọn sao cho phù hợp. Việc lựa chọn số quá nhỏ mang lại nhiều tiềm ẩn bị tấn công kết hợp với phương thức vét cạn giá trị hoặc vận dụng định lý Thặng dư Trung Hoa. Để chống lại sự tấn công, chúng ta nên lựa chọn số sao cho tồn tại thỏa mãn:
3. Nguyên tắc lựa chọn số
Mặc dù số mũ bí mật được tính toán phụ thuộc vào các giá trị khác mà không được chọn trực tiếp, nhưng nó lại đóng vai trò quan trọng nhất trong việc giải mã ngược lại thông điệp gốc. Do đó chúng ta cũng cần đảm bảo số thu được cần đáp ứng tính an toàn.
Khi số thu được có độ dài không đủ lớn, mặc dù có lợi cho tốc độ tính toán mã hóa, nhưng sẽ làm giảm đáng kể tính an toàn của thuật toán. Một trong những cách làm phổ biến của kẻ tấn công là sử thông một thông điệp tự sinh rồi thực hiện mã hóa rồi so sánh và tìm ra . Độ dài của càng nhỏ thì không gian dự đoán càng nhỏ, dẫn tới tỉ lệ đoán đúng càng lớn. Bên cạnh đó kẻ tấn công cũng có thể sử dụng Wiener's attack cũng mang lại hiểu quả lớn trong trường hợp này.
Chúng ta nên đảm bảo số mũ bí mật sau khi được sinh ra thỏa mãn:
Tài liệu tham khảo
All rights reserved