Обзор: Я пытаюсь создать приложение, которое будет шифровать файлы, чтобы безопасно отправлять через Уличная почта (БОЛЬШИЕ наборы данных). Я планирую использовать AES/RijndaelManaged шифрование из .Net, чтобы сначала зашифровать файлы, используя случайно сгенерированный ключ, используя RNGCryptoServiceProvider
. Затем я шифрую этот случайный ключ AES с открытым ключом RSA. Приемник данных является единственным, у которого есть секретный ключ RSA для его расшифровки.Шифрование файлов с помощью AES, Шифрование ключа с RSA - Я на правильном пути?
Мой вопрос: Это правильный способ сделать что-то подобное? Если да, безопасно ли отправить этот RSA-зашифрованный ключ с данными, поскольку для шифрования требуется закрытый ключ?
EDIT - Согласно ответам, это действительно правильный путь.
EDIT - Спасибо за ответы. Теперь, что я действительно хочу знать:
Когда конечный пользователь генерирует свою пару «Открытый/Закрытый ключ», каков наилучший способ сохранить закрытый ключ? Я не хочу, чтобы он был доступен только с одной машины, поэтому я стараюсь избегать использования хранилища ключей пользователя. Но MSDN говорит, что сохранить ключ в файл небезопасно, так как еще вы можете это сделать?
Звучит неплохо. Увеличенная скорость для больших файлов, а также вы можете поддерживать несколько получателей, включив в себя один ключ AES несколько раз, зашифрованный с помощью разных ключей RSA. – Thorarin
Что вы используете для открытого ключа RSA для шифрования ключа RSA, который вы упоминаете? Я предполагаю, что вы используете режим RSA CBC? – JM4