Пример C# для асимметричного шифрования файлов AES
Можно ли использовать AES для асимметричного шифрования? Я не смог найти простых примеров шифрования файлов в C#. Я прочитал следующее:
Проще говоря, если двум сторонам необходимо согласовать общие секретные асимметричные алгоритмы (например, RSA или Diffie-Hellman). Когда сообщающиеся стороны установили общие секретные симметричные алгоритмы (такие как DES, AES, Blowfish), используются выполнить шифрование данных для обмена ". ( http://ysod.wordpress.com/2010/07/03/cryptography/)
Если это можно использовать, есть ли простой пример C#, который люди использовали?
2 ответа
Нет, AES - это симметричное шифрование. Он часто используется вместе с асимметричными примитивами, такими как RSA и DH. Это называется гибридной криптосистемой. AES не может быть использован для асимметричной криптографии сам по себе.
Алгоритм в криптографии такой же, как и в любой другой парадигме: это процесс.
Чрезмерно упрощенное: Итак, если у нас есть A {S} B, где A - начало {S} - это то, что вы делаете с ним, а B - то, что вы получаете, тогда симметричный алгоритм позволит вам выполнить B {S} A, также. (A {S} B) {S} A
Асимметричные алгоритмы не работают таким образом. В асимметричном алгоритме, если мы попытались запустить его через тот же процесс: (A {N} B) {N} A неверно. Мы бы получили что-то еще полностью из этого. (A {N} B) {N} C ближе к правильному, где C - это то, что происходит, когда вы запускаете B через {N}. Это всего лишь процесс шифрования.
Опять упрощенно.
Таким образом, по определению, симметричный алгоритм не может использоваться асимметрично.
Кроме того, Диффи-Хеллман - это не алгоритм, а протокол обмена ключами. Прочитайте прикладную криптографию Брюса Шнайера или что-то в этом роде. Вы узнаете больше за меньшее время и будете менее смущены.