Лучший подход для шифрования с открытым ключом в .net - PullRequest
2 голосов
/ 26 января 2011

У меня есть система, которая должна обмениваться данными с другой системой.Я хотел бы зашифровать файлы, следуя методу открытого / закрытого ключа, а не только AES.

Другая система на Java, поэтому я хочу убедиться, что мои методы могут работать с другими платформами.Я зашифрую открытым ключом, и мы дадим им ключ дешифрования, который будет у них в системе.

Любой совет будет отличным.

Нужно ли использовать что-то вроде надувного замка илииспользовать нативный код?

Ответы [ 2 ]

4 голосов
/ 26 января 2011

Ваше предложение причудливо .Вы Алиса.Вы хотите отправить секретное сообщение в систему «Боб», которое может расшифровать только Боб.Ваше предложение состоит в том, что Алиса генерирует пару ключей для Боба, затем каким-то волшебным образом получает личный ключ Боба от Алисы к Бобу, а затем Алиса, предположительно, хранит открытый ключ в секрете.Если у вас есть механизм, с помощью которого Алиса может передать секретный ключ Бобу, тогда зачем вам вообще нужна криптография? У вас уже есть защищенный канал!

Возможно, слишком дорого использовать безопасный канал для больших документов.Даже если это так, ваша схема является полной противоположностью того, как шифрование с открытым ключом должно работать. То, что вам нужно, это Боб для генерации пары ключей и передачи открытый ключ в открытом виде для Алиса .

Теперь проблема, которую должен решить Боб, это как Алиса узнает, что открытый ключ на самом деле пришел от Боба ?Злоумышленник может отправить свой открытый ключ Алисе и сказать Алисе, что он получен от Боба. Это важная проблема, которую вы должны решить. Сила всей схемы заключается в том, что Боб сможет успешно передать свой открытый ключ Алисе.

Что вам действительно нужно для этой работы, так это доверенная третья сторона, скажем, Verisign или какой-либо другой сертифицирующий орган, открытый ключ которого хорошо известен.Алиса и Боб могут генерировать свои собственные пары ключей, а затем Verisign может подтвердить, что открытый ключ Алисы и открытый ключ Боба получены от Алисы и Боба соответственно.Это основа безопасности системы.

Более того: криптография с открытым ключом медленная для больших сообщений.Обычно вы хотите использовать криптографию с открытым ключом как часть согласования ключа.Это означает генерацию секретного ключа в симметричной криптосистеме для конкретного «сеанса», использование криптографии с открытым ключом в качестве безопасного канала для передачи ключа сеанса от Алисы к Бобу, а затем шифрование всего остального с использованием быстрого симметричного алгоритма.

1 голос
/ 26 января 2011

Есть пара ключей для обеих систем. Установите открытый ключ из System1 в System2 и открытый ключ из System2 в System1.

Обе системы теперь могут шифровать данные, которые может просматривать только другая система. Используйте это для обмена случайным ключом AES.

Используйте этот ключ AES для шифрования остальной части трафика

Открытые ключи просто используются для проверки того, с кем вы разговариваете, и для подписи, а AES используется в остальное время.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...