Nội dung bài viết
#

RSA là gì? Cơ chế hoạt động và ứng dụng của thuật toán RSA

Nội dung bài viết

    Đối với những người am hiểu lĩnh vực mật mã học chắc hẳn rất quen thuộc với thuật ngữ RSA. Vậy RSA là gì? Tại sao nó lại được người dùng tin tưởng và sử dụng? Cơ chế hoạt động của nó như thế nào? Những thắc mắc đó sẽ được chúng tôi thông tin chi tiết trong bài viết dưới đây.

    RSA là gì?

    RSA la gi

    RSA là một thuật toán hay còn gọi là hệ mã hóa đối xứng được sử dụng cho các mục đích bảo mật. Nó cho phép mã hóa khóa công khai và được sử dụng phổ biến, rộng rãi để đảm bảo an toàn cho các dữ liệu nhạy cảm đặc biệt là những dữ liệu gửi qua mạng Internet.

    Năm 1997 RSA lần đầu tiên được ra mắt bởi Ron Rivest, Adi Shamir và Leonard Adleman. Cái tên RSA là bắt nguồn từ ba chữ cái đầu trong tên của ba nhà khoa học. Mật mã khóa công khai sử dụng hai key khác nhau là public key (khóa công khai) và private key (khóa riêng tư). Public key có thể được chia sẻ với mọi người, riêng private key thì cần phải giữ bí mật.

    Trong mật mã RSA, cả public key và private key đều có thể mã hóa một tin nhắn. Hiểu đơn giản thì RSA hoạt động như cơ chế đóng và mở cửa, nó dùng public key và private key để mã hóa và giải mã tin nhắn. Chính thuộc tính đó đã khiến RSA trở thành thuật toán bất đối xứng được sử dụng phổ biến nhất. Thế mạnh của nó chính là tính bảo mật, toàn vẹn và xác thực mà ít thuật toán có được.

    Hiện tại có rất nhiều giao thức dựa vào RSA để ứng dụng trong mã hóa và chữ kỹ số chẳng hạn như Secure Shell (SSH), OpenPGP, S / MIME, SSL/TLS. Ngoài ra RSA còn được dùng trong các trình duyệt, phần mềm. Xác minh chữ ký RSA được đánh giá là hoạt động được thực hiện nhiều nhất trong các hệ thống kết nối Internet.

    Tại sao thuật toán RSA được sử dụng?

    Thực tế cho thấy mã hóa RSA có tính bảo mật cao bởi nó sử dụng các số nguyên tố lớn, một vài trường hợp những con số lại khá phức tạp. Có thể thấy nhân hai số nguyên tố thì dễ dàng nhưng để xác định được các số nguyên ban đầu thông qua tổng hoặc thừa số lại không có tính khả thi vì mất nhiều thời gian ngay cả với những siêu máy tính hiện đại.

    Thuật toán tạo public key và private key là phần phức tạp nhất của mật mã RSA. Hai số nguyên tố lớn pq được tạo ra ngẫu nhiên bằng cách dùng thuật toán Rabin-Miller (thuật toán xác suất kiểm tra số nguyên tố). Mô đun n=p x q, sau đó giá trị của n sẽ được dùng cho cả public key và private key, độ dài của n được biểu thị bằng bit hay còn gọi là độ dài key.

    Public key bao gồm mô đun n và số mũ công khai e, người ta thường lựa chọn giá trị e nhỏ để giả mã nhanh. Thông thường e = 65537 và nó không nhất thiết phải bí mật vì public key được chia sẻ với mọi người. Private key gồm mô đun n và số mũ riêng d, được tính toán bằng cách dùng thuật toán Euclide mở rộng. Thuật toán này sẽ tìm phép nhân nghịch đảo đối với tâm của n.

    Thuật toán RSA hoạt động như thế nào?

    Thuat toan RSA

    Alice sẽ tạo khóa RSA của mình bằng cách chọn ngẫu nhiên hai số nguyên tố là p = 11q = 13. Mô đun n = p x q = 11 x 13 = 143. Giá trị hàm số Ơle sẽ là n ϕ (n) = (p − 1) x (q − 1) = 120. Sau đó Alice sẽ chọn 7 là số tự nhiên e cho public key của mình và tính toán private key thông qua thuật toán Euclid mở rộng, kết quả mang lại là 103.

    Giả sử Bob muốn gửi cho Alice một đoạn thông tin M, lúc này anh ta sẽ lấy public key RSA của Alice (n, e) và trong ví dụ này là 143, 7. Thông điệp của Bob là số 9, anh ta đã biết ne vậy m sẽ được mã hóa thành bản mã C như sau: M e mod n = 9 7 mod 143 = 48 = C. Alice sẽ giải mã tin nhắn của Bob bằng cách sử dụng private key RSA (d,n) của mình như sau: C d mod n = 48 103 mod 143 = 9 = M.

    Trường hợp nếu Alice muốn sử dụng RSA trong chữ ký điện tử thì cô ấy phải tạo ra hash (hàm băm) – bản tóm tắt thông điệp để gửi cho Bob. Sau đó Alice mã hóa giá trị hash bằng private key của cô ấy và thêm key vào tin nhắn.

    Để xác nhận mình đã nhận được tin nhắn, Bob sẽ giải mã nó bằng public key của Alice. Giá trị nhận được nếu khớp với hash của thông điệp gốc thì chứng tỏ dữ liệu đó đảm bảo tính toàn vẹn và chính Alice đã gửi nó. Ngoài ra để đảm bảo tính bảo mật cao Alice có thể mã hóa tin nhắn mình sắp gửi bằng public key của Bob.

    RSA an toàn như thế nào?

    Tính bảo mật của RSA phụ thuộc vào độ khó của việc tính toán các số nguyên lớn. Những số nguyên càng lớn, càng phức tạp thì bảo mật RSA lại càng cao. Kích thước key sẽ quyết định tới độ mạnh mã hóa. Tăng gấp đôi độ dài của các key thì sức mạnh mã hóa tăng cũng tăng theo tuy nhiên điều này lại khiến hiệu suất hoạt động giảm.

    Thông thường độ dài của key tầm 1024 đến 2048 bit. Thế nhưng theo các chuyên gia thì các key 1024 bít sẽ không còn đảm bảo an toàn trước các cuộc tấn công. Vì vậy rất nhiều chính phủ và một số ngành công nghiệp đang có xu hướng chuyển qua key 2048 bit.

    Nếu lĩnh vực điện toán lượng tử (phương pháp xử lý thông tin tiến bộ) không có sự đột phá trong thời gian gần đây thì sẽ còn rất lâu mới cần tới các key dài hơn. Tại thời điểm này một nhóm nghiên cứu trong đó có Adi Shamir (một trong ba nhà khoa học phát minh ra RSA) đã tạo thành công key RSA 4096 bit.

    Tổng kết về RSA

    Bài viết trên chúng tôi đã cung cấp những kiến thức cơ bản về mật mã RSA. Hy vọng với những thông tin có được bạn sẽ có định hướng cơ bản để sử dụng RSA cho cá nhân và tổ chức của mình.

    Nếu bạn có thắc mắc về RSA, hãy để lại ở bên bình luận bên dưới, BKHOST sẽ trả lời bạn trong thời gian sớm nhất.

    P/s: Bạn cũng có thể truy cập vào Blog của BKHOST để đọc thêm các bài viết chia sẻ kiến thức về lập trình, quản trị mạng, website, domain, hosting, vps, server, email,… Chúc bạn thành công.


      • rsa cryptography
      • rsa private key
      • thuật toán rsa
      • hệ mã hóa rsa
      • rsa algorithm
      • rsa là gì

    Thuê Cloud VPS Cao Cấp tại BKHOST

    Giảm giá cực sâu, chất lượng hàng đầu. Đăng ký ngay hôm nay:

    vps ssd

    Tôi là Trịnh Duy Thanh, CEO & Founder Công ty Cổ Phần Giải Pháp Mạng Trực Tuyến Việt Nam - BKHOST. Với sứ mệnh mang tới các dịch vụ trên Internet tốt nhất cho các cá nhân và doanh nghiệp trong nước và quốc tế, tôi luôn nỗ lực hết mình nâng cấp đầu tư hệ thống phần cứng, nâng cao chất lượng dịch vụ chăm sóc khách hàng để đem đến những sản phẩm hoàn hảo nhất cho người tiêu dùng. Vì vậy, tôi tin tưởng sẽ đem đến các giải pháp CNTT mới nhất, tối ưu nhất, hiệu quả nhất và chi phí hợp lý nhất cho tất cả các doanh nghiệp.
    Bình luận

    Trượt lên đầu trang
    Gọi ĐT tư vấn ngay
    Chat ngay qua Zalo
    Chat ngay qua Messenger
    Bạn đã hài lòng với trải nghiệm trên Bkhost.vn?
    Cảm ơn lượt bình chọn của bạn, Chúc bạn 1 ngày tốt lành !