Câu trả lời này cụ thể là về tuyên bố của bạn "â¦.thuật toán RSA hay còn gọi là cách mọi thứ được mã hóa/giải mã." RSA thường không được sử dụng để mã hóa và khi được sử dụng thì không bao giờ chỉ có thuật toán RSA. AES cũng không được sử dụng một mình để mã hóa!
AES là một thuật toán khóa đối xứng, cụ thể là mật mã khối. Nó nhận một khóa và một khối đầu vào, rồi tạo ra một khối đầu ra. Sử dụng cùng một khóa trên khối đầu ra sẽ tạo ra khối đầu vào ban đầu. Với AES, các khối là 128 bit (16 byte). Các khóa là 128, 192 hoặc 256 bit. Chúng phải được chọn một cách thống nhất một cách ngẫu nhiên, ngoài ra không có bất kỳ hạn chế nào.
AES có thể được sử dụng để xây dựng sơ đồ mã hóa, nhưng bản thân nó không được sử dụng để mã hóa, vì nó chỉ có thể mã hóa một khối 16 byte một cách an toàn! Nó phải được sử dụng trong một "chế độ hoạt động" để mã hóa hữu ích bất kỳ thứ gì lớn hơn hoặc nhỏ hơn 16 byte. AES cũng có thể được sử dụng để xây dựng các hàm băm mật mã (không có hàm băm phổ biến nào làm được điều này, nhưng AES-Băm đã được đề xuất), mã xác thực tin nhắn (AES-CMAC), các hàm phái sinh chính (NIST SP 800-108 mô tả như thế nào), và nhiều hơn nữa. Do đó, thật sai lầm khi coi AES (hoặc bất kỳ mật mã khối nào khác) chỉ là một chức năng mã hóa, bất chấp "mã hóa" trong tên.
RSA là một thuật toán khóa bất đối xứng. Nó có hai khóa, khóa "công khai" và khóa "riêng tư". Khóa chung được coi là có sẵn công khai, khóa riêng được coi là không bao giờ được chia sẻ với bất kỳ ai. Hoạt động RSA sử dụng một trong các phím và có thể được đảo ngược bằng phím khác.Các khóa RSA có cấu trúc toán học cụ thể để thực hiện điều này; khóa riêng được chọn trước và khóa chung được lấy từ khóa riêng. Cái này Bài viết Wikipedia mô tả tốt việc tạo khóa RSA, nhưng các chi tiết cụ thể không quan trọng đối với câu trả lời này.
Giống như AES, RSA không được sử dụng riêng để mã hóa. Nó phải được sử dụng với một "sơ đồ đệm" để mã hóa. Ngay cả với điều đó, nó khá chậm và bị giới hạn trong việc mã hóa vài trăm byte mỗi lần cho các kích thước khóa thực tế. RSA được sử dụng phổ biến hơn để xây dựng sơ đồ chữ ký (một lần nữa với sơ đồ đệm), mặc dù đôi khi nó được sử dụng để xây dựng cơ chế trao đổi khóa để trao đổi khóa đối xứng (ví dụ: để sử dụng với AES trong Chế độ hoạt động của Bộ đếm Galois).