Вопрос

Привет, ребята, я работал над пространством имен p2p для некоторых своих программ.Я создал систему для шифрования/дешифрования пакетов, отправляемых/полученных с помощью этого класса.Я использовал базовую систему открытого закрытого ключа:1) зашифруйте данные с помощью симметричного шифрования. 2) зашифруйте симметричный ключ с помощью RSA.Затем сделайте обратное, когда расшифроваете..

Однако мне было интересно, как бы вы проверили, пришел ли пакет оттуда, где он указан.Я собирался использовать базовую систему сертификатов (где вы шифруете своим закрытым ключом RSA, а затем расшифровываете его с помощью вашего открытого ключа), но я не знаю, как это сделать с помощью C#.Я использую класс RSACryptoServiceProvider.

Кто-нибудь знает, как это сделать?Спасибо, Макс

Это было полезно?

Решение

Стандартным протоколом безопасной отправки пакетов является SSL/TLS.RFC для ТЛС и ДТЛСисправление недавней ошибки) — это путь.Их также следует рассматривать как ресурс для тех, кто учится и ищет идеи.

Похоже, вы ищете MAC.Очень эффективный набор криптопримитивов, которые одновременно выполняют и шифрование, и MAC-код. АЕАД шифры, см. например СКК и ГКМ режимы блочного шифрования.

Я не верю, что .NET поддерживает какие-либо шифры AEAD.Вы также можете использовать более медленный, но вполне адекватный HMAC алгоритм, который поддерживается в .NET, или вы можете использовать библиотека C# надувного замка который поддерживает шифры AEAD.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top