Computer >> Máy Tính >  >> Lập trình >> Lập trình

RSA hoạt động như thế nào?

Thuật toán mã hóa Rivest-Shamir-Adleman (RSA) là một thuật toán mã hóa bất đối xứng được sử dụng rộng rãi trong một số sản phẩm và dịch vụ. Mã hóa không đối xứng cần một cặp khóa được kết nối toán học để mã hóa và giải mã dữ liệu.

Khóa riêng tư và khóa công khai được tạo, với khóa công khai có sẵn cho bất kỳ ai và khóa riêng tư là bí mật chỉ được người tạo bộ khóa biết. Với RSA, khóa riêng tư hoặc khóa công khai có thể mã hóa thông tin, trong khi khóa khác giải mã thông tin đó. Đây là lý do mà RSA là thuật toán mã hóa bất đối xứng thường được sử dụng.

Lựa chọn mã hóa bằng khóa riêng tư hoặc khóa công khai hỗ trợ một nhóm lớn các dịch vụ cho người dùng RSA. Nếu khóa công khai có thể được sử dụng để mã hóa, thì khóa riêng tư nên được sử dụng để giải mã thông tin. Điều này hoàn hảo để gửi dữ liệu đáp ứng qua mạng hoặc kết nối Internet, nơi người nhận thông tin gửi cho người gửi thông tin khóa công khai của họ.

Sau đó, người gửi thông tin sẽ mã hóa dữ liệu đáp ứng bằng khóa công khai và gửi đến người nhận. Vì khóa công khai đã mã hóa thông tin nên chỉ chủ sở hữu của khóa riêng mới có thể giải mã thông tin đáp ứng. Do đó, chỉ người nhận thông tin dự kiến ​​mới có thể giải mã nó, ngay cả khi thông tin được chuyển đi.

Cách tiếp cận khác của mã hóa không đối xứng với RSA là mã hóa một tin nhắn bằng khóa cá nhân. Trong ví dụ này, người gửi dữ liệu mã hóa dữ liệu bằng khóa cá nhân của họ và gửi thông tin được mã hóa và khóa công khai của họ chuyển tiếp đến người nhận thông tin.

Sau đó, người nhận thông tin có thể giải mã thông tin bằng khóa công khai của người gửi, do đó kiểm tra xem người gửi có đúng như họ nói hay không. Với cách tiếp cận này, dữ liệu có thể bị đánh cắp và đọc khi chuyển tiếp, nhưng mục tiêu thực sự của loại mã hóa này là kiểm tra danh tính của người gửi.

Nếu dữ liệu bị đánh cắp và thay đổi trong quá trình truyền tải, khóa công khai không thể giải mã thông điệp mới và do đó người nhận sẽ hiểu rằng dữ liệu đã bị thay đổi khi chuyển tiếp.

Khóa công khai và khóa riêng được tạo bằng hai số, một trong số đó là tích của hai số nguyên tố lớn. Cả hai đều sử dụng hai số nguyên tố giống nhau để tính giá trị của chúng. Các khóa RSA ảnh hưởng đến độ dài 1024 hoặc 2048 bit, tạo ra chúng cực kỳ phức tạp để phân tích nhân tử, mặc dù các khóa 1024 bit được cho là sẽ sớm bị phá vỡ.

RSA đã được sử dụng với Bảo mật tầng truyền tải (TLS) để bảo mật kết nối giữa hai cá nhân. Có các sản phẩm và thuật toán nổi tiếng khác, chẳng hạn như thuật toán Bảo mật Khá Tốt, sử dụng RSA hiện tại hoặc trước đây.

Mạng riêng ảo (VPN), dịch vụ email, trình duyệt web và các kênh kết nối khác cũng đã sử dụng RSA. VPN có thể sử dụng TLS để thực hiện bắt tay giữa hai bên trong việc trao đổi dữ liệu.