Điểm:0

Khóa AES so với Khóa RSA

lá cờ in

Tôi hoàn toàn mới đối với mật mã học và gần đây đã cố gắng hiểu nó kỹ hơn một chút. Câu hỏi của tôi là: Việc tạo khóa khác nhau như thế nào trong trường hợp AES và RSA. Tôi hiểu rằng khóa công khai và khóa riêng của RSA có thể được lấy ngay lập tức bằng một số phép thuật modulo.

Những gì tôi đã hiểu (ít nhất là tôi hy vọng) là như sau:

Cặp khóa (riêng tư và công khai) được kết nối chặt chẽ với thuật toán RSA hay còn gọi là cách mọi thứ được mã hóa/giải mã.

Điều tôi không hiểu là đây:

Trong trường hợp AES tôi không hiểu. Các trang web tôi tham khảo để nghiên cứu chỉ giải thích thuật toán, nhưng không thực sự giải thích cách các khóa được tạo và điều kiện phải tuân theo để phù hợp với AES.

Vì vậy, câu hỏi của tôi là:

Các khóa/cặp khóa vốn có (cách chúng được tạo) được kết hợp với thuật toán hay đây chỉ là trường hợp của RSA. Nếu vậy, khóa phải có 'hình thức' nào trong trường hợp AES?

Cảm ơn rồi!

kelalaka avatar
lá cờ in
Chào mừng bạn đến với Cryptography.SE. Tốt hơn là cung cấp nguồn gây nhầm lẫn của bạn. AES và RSA là những thứ khác nhau. xem [Tạo khóa RSA](https://crypto.stackexchange.com/search?q=RSA+key+generation) và các khóa AES được chọn ngẫu nhiên thống nhất như trong tất cả các mật mã khối.
Điểm:4
lá cờ gb

AES là một thuật toán khóa đối xứng, có nghĩa là chỉ có một khóa, được sử dụng để mã hóa và giải mã. Điều này khác với RSA, nơi bạn có hai khóa - khóa riêng tư và khóa công khai, có liên quan theo một cách cụ thể.

Các khóa AES chỉ đơn giản là các byte ngẫu nhiên. Ví dụ: AES-128 sử dụng khóa 128 bit (16 byte). Vì vậy, bất kỳ 128 bit ngẫu nhiên nào cũng có thể được sử dụng làm khóa AES-128. Không cần phải có bất kỳ hình thức nào khác.

Một phím AES như thế này sau đó được biến thành nhiều phím tròn bằng cách sử dụng một lịch trình chính, như một phần của thuật toán.

Điểm:1
lá cờ cn

Các thuật toán mật mã được chia thành hai nhóm chính: đối xứng và bất đối xứng. Các thuật toán từ nhóm đầu tiên sử dụng một khóa, khóa này phải được giữ bí mật. Các thuật toán từ nhóm thứ hai sử dụng hai khóa khác nhau^ một trong số chúng cũng phải được giữ bí mật, còn khóa thứ hai thì công khai.

AES là một mật mã đối xứng, tức là nó sử dụng một khóa duy nhất để mã hóa và giải mã (bất kỳ ai biết khóa đều có thể giải mã một tin nhắn). Nói chung, trong mật mã đối xứng (trong mật mã hiện đại), hạn chế duy nhất đối với khóa là kích thước của nó. Ví dụ, AES hỗ trợ các khóa 128, 192 và 256 bit. Thông thường, các khóa được yêu cầu phải được chọn thống nhất từ ​​một tập hợp tất cả các giá trị có thể có của nó*.
Lưu ý: tập hợp tất cả các giá trị có thể có của khóa thực sự được xác định bởi thuật toán. Đối với AES-128, nó là một tập hợp tất cả các vectơ 128 bit $\mathbb{F}_2^{128}$và đối với mật mã Caesar, nó chỉ là một số từ 0 đến 26 - $\mathbb{F}_{27}$.
Một thuật toán đối xứng cụ thể xác định một tập hợp các giá trị khóa có thể.Đối với các mật mã hiện đại, nó thường là một vectơ nhị phân có kích thước nhất định**.

RSA là một mật mã phi đối xứng, tức là nó sử dụng một cặp khóa, bao gồm khóa công khai và khóa riêng. Các khóa này có liên quan với nhau theo một cách nhất định để cho phép mã hóa bằng khóa chung và giải mã bằng khóa riêng (bất kỳ ai biết khóa riêng đều có thể giải mã tin nhắn). Ở đây, tình huống trở nên khó khăn hơn một chút, bởi vì thuật toán không chỉ xác định một tập hợp các giá trị khóa có thể. Nó cũng định nghĩa một thuật toán tạo khóa để đảm bảo mối quan hệ đặc biệt giữa khóa chung và khóa riêng.


* - các thuật toán có khả năng có thể yêu cầu các hạn chế bổ sung đối với thuật toán tạo khóa để cung cấp mức bảo mật cần thiết (ví dụ: có một số thuật toán sử dụng hai khóa khác nhau và độc lập), nhưng nói chung, các khóa được yêu cầu phải được chọn thống nhất từ ​​tất cả các khóa có thể các giá trị.

** - có một số hạn chế đối với các khóa được đặt cho các thuật toán nhất định, do tồn tại các khóa yếu. Các phím này tạo ra cùng một phím tròn cho mỗi vòng. Nhưng không phải tất cả các thuật toán đều có chúng.

Điểm:0
lá cờ si

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).

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.