Độ an toàn của hệ mật RSA thể hiện qua hai yếu tố:
Tính mật của hệ RSA, chủ yếu dựa vào việc bảo vệ khoá riêng d và giữ bí mật các số nguyên tố p và q.
Tính an toàn của hệ RSA dựa vào độ khó của bài toán RSA và độ phức tạp của bài toán phân tích một số thành các thừa số nguyên tố
Bài toán RSA là bài toán tính căn bậc e môđun n (với n là hợp số): tìm số m sao cho me=c mod n, trong đó (e, n) chính là khóa công khai và c là bản mã. Hiện nay phƣơng pháp triển vọng nhất giải bài toán này là phân tích n ra thừa số nguyên tố. Khi thực hiện đƣợc điều này, kẻ tấn công sẽ tìm ra số mũ bí mật d từ khóa công khai và có thể giải mã theo đúng quy trình của thuật toán. Nếu kẻ tấn công tìm đƣợc 2 số nguyên tố p và q sao cho: n = pq thì có thể dễ dàng tìm đƣợc giá trị (p-1)(q-1) và qua đó xác định d từ e. Chƣa có một phƣơng pháp nào đƣợc tìm ra trên máy tính để giải bài toán này trong thời gian đa thức (polynomial- time). Tuy nhiên ngƣời ta cũng chƣa chứng minh đƣợc điều ngƣợc lại (sự không tồn tại của thuật toán). Xem thêm phân tích ra thừa số nguyên tố về vấn đề này.
Tại thời điểm năm 2005, số lớn nhất có thể đƣợc phân tích ra thừa số nguyên tố có độ dài 663 bít với phƣơng pháp phân tán trong khi khóa của RSA có độ dài từ 1024 tới 2048 bít. Một số chuyên gia cho rằng khóa 1024 bít có thể sớm bị phá vỡ (cũng có nhiều ngƣời phản đối việc này). Với khóa 4096 bít thì
31
Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/
hầu nhƣ không có khả năng bị phá vỡ trong tƣơng lai gần. Do đó, ngƣời ta thƣờng cho rằng RSA đảm bảo an toàn với điều kiện n đƣợc chọn đủ lớn. Nếu n có độ dài 256 bít hoặc ngắn hơn, nó có thể bị phân tích trong vài giờ với máy tính cá nhân dùng các phần mềm có sẵn. Nếu n có độ dài 512 bít, nó có thể bị phân tích bởi vài trăm máy tính tại thời điểm năm 1999.
Hệ RSA chỉ có khả năng bảo mật khi p, q là các số nguyên tố lớn (khoảng hơn 100 chữ số thập phân) và nhƣ vậy thì n có khoảng hơn 200 chữ số thập phân. Để phân tích một số nguyên cỡ lớn nhƣ thế với các thuật toán nhanh nhất hiện nay cùng với hệ thống máy tính hiện đại nhất cũng mất hàng tỷ năm.
Do tính đơn giản trong thiết kế nên RSA đƣợc ứng dụng rộng rãi và dùng nhiều nhất trong số các thuật toán với khoá công khai. Và cũng chính vì thế nó đã trải qua nhiều thử thách, xem xét, kiểm chứng của cộng đồng về độ an toàn của nó. Tuy nhiên, khi dùng RSA thì tốc độ mã hoá rất chậm, vì thế để mã hoá khối dữ liệu lớn là không khả thi. Ngƣời ta đã tìm ra ứng dụng quan trọng độc đáo khác của RSA hơn là dùng nó để mã hoá:
Tạo vỏ bọc an toàn cho văn bản: dùng RSA để mã hoá khoá bí mật (của các hệ mật mã có tốc độ mã hoá cao nhƣ DES, IDEA…) và dùng khoá bí mật đó để mã hoá dữ liệu, bên gửi chỉ gửi đến cho bên nhận một bộ: khoá bí mật đƣợc mã hoá bằng RSA và dữ liệu đƣợc mã hoá bằng khóa bí mật. Nhƣ vậy các hệ mã đối xứng khắc phục tốc độ mã hoá của RSA, còn RSA khắc phục khâu yếu nhất của mã hoá đối xứng là bảo đảm chuyển giao an toàn chìa khoá mã cho ngƣời nhận.
Xác thực chủ thể: Ta đã biết trong hệ mật mã khoá công khai thì mọi ngƣời đều biết khoá công khai của từng cá thể trong hệ thống, nhƣ vậy liệu có thể có một cá thể này đã mạo danh một cá thể khác để gửi thông điệp đến một cá thể thứ ba trong hệ thống, điều này hoàn toàn có thể xảy ra, vậy làm thế nào để thông điệp đƣợc gửi đi có một chữ ký xác nhận của ngƣời gửi, để ngƣời nhận có thể biết đích xác rằng mình nhận của ai và ngƣời gửi cũng không thể thoái thác đƣợc trách nhiệm của văn bản mình đã gửi đi (chẳng hạn nhƣ một đơn đặt hang với số lƣợng lớn), đây chính là vấn đề xác thực chủ thể trong trao đổi thông tin điện tử. Hai chìa khoá công khai và khoá riêng trong hệ RSA là có vai trò ―đối xứng‖ nhau theo nghĩa nếu cái này dùng để mã hoá thì cái kia đƣợc dùng để giải mã và ngƣợc lại. Vậy nếu A dùng khoá bí mật để mã hoá văn bản gửi đi thì B dùng khóa công khai của A để giải mã văn bản, điều đó chứng tỏ A đã xác nhận ký vào văn bản.