То, о чем вы говорите, очень очень слабо выглядит как другая реализация асимметричного алгоритма шифрования, найденного в каркасе .Net.
.Net использует две ветви для асимметричного шифрования !!!
- RSA ** Grand Mac daddy используется для всех асимметричных целей.
- DSA **, подробнее связанные с использованием и созданием цифровой подписи, чтобы проверить автора.
Оба Аннотация
Оба они очень похожи друг на друга, как они работают и как разработчик реализует их, но под я прочитал, что существуют две совершенно разные алгоритмы.
Вы говорите Вариант 2.
.Net предоставляет класс DSACryptoServiceProvider, который позволяет помечать данные со значением, которое обычно называют подписью.
Согласно учебному пособию по официальному курсу MS, примерно так же оно работает.
>>> Data Hash Alg >>> Hash Value >>>>>>>>> Asymm»Alg >>>> Подпись PVT.KEY отправителя >>>
Ниже показано, как Боб может проверить чтобы увидеть, действительно ли Алиса является отправителем.
Данные >>> Hash Alg >>> Хэш-значение || Decrypted Подпись < < < PUB.KEY Asymm»ALG < < < Подпись < < < отправителя ? ==?
Как вы можете видеть, Боб должен сравнить сгенерированную подпись и дешифрованную подпись , чтобы убедиться, что Алиса является отправителем. Класс DSACrypto имеет 4 метода, которые могут использоваться здесь , но только два являются эффективными в контексте. На данный момент это все, что может сделать Боб, если его публичный ключ не является открытым ключом alice, тогда, по существу, программное приложение должно остановить Боба в его следах, продолжая все дальше, поскольку bob пытается использовать поддельный открытый ключ, когда пытаясь связаться с Алисой. Это навязанные отношения и подчеркнутое значение открытого ключа. Подпись позволяет проверить владельца открытых ключей.
Вот почему? ::
Если у Боба открытый ключ Алисы, он может снова использовать тот же алгоритм, чтобы расшифровать зашифрованные данные с помощью методов .VerifyHash или VerifyData. Должно быть прямо, что они делают, учитывая этот контекст. Все это делается с помощью открытого ключа Алисы. Только Алиса может использовать методы SignHash и SignData, поскольку им нужен закрытый ключ Алисы.
Как вы можете видеть выше, определенный уровень функциональности инкапсулирован уже внутри классов DSA и RSA CryptoServiceProvider. Это сводится к тому, насколько хорошо вы их реализуете, чтобы каждый раз проверять Alice как отправителя, поскольку алгоритм DSA позволяет вам сертифицировать отправителя, сопоставляя сгенерированный вывод. Определенная подпись и хэш должны совпадать, если они это делают, то по существу DSA предоставил вам определенный уровень конфиденциальности между Бобом и Алисой.
Итак, вам нужно проверить ВСЕ байты открытого ключа? Есть ли определенная часть ключа, на который вы можете смотреть, чтобы убедиться, что это действительно между вами? Достаточно ли отпечатка пальца? – tbarbe
Нет, вы используете открытый ключ для дешифрования хэша сообщения (подпись), затем хеш-сообщение в качестве получателя. Если хеши совпадают, значит, вы знаете, что это послала Алиса. http://en.wikipedia.org/wiki/Digital_signature – Nathan
Ах да ... md5 или SHA-1 - да? Итак, как только сертификат прибывает в пункт назначения - способ проверить его все в порядке - сравнить md5 и SHA-1 .... у сертификатов, которые у меня есть, - показать оба этих ...и я предполагаю, что это то, что я читаю о «сравнении их вне диапазона» - значит, не делайте этого по небезопасной настройке? – tbarbe