Чем отличаются подписи и шифрование openssl программно - PullRequest
1 голос
/ 08 мая 2019

Есть такой вопрос на SO:

В чем разница между шифрованием и подписью в асимметричном шифровании?

Мой вопрос не является дубликатом. Я спрашиваю, есть ли разница между двумя программно.

У меня есть openssl C ++ API для подписи и проверки сообщения. Скажем, две функции:

знак

проверить

Допустим, две стороны, которые обмениваются сообщениями: A и B .

Функция знака валюты использует A_privateKey , а для проверки используется B_publicKey .

Теперь я хочу зашифровать некоторую часть сообщения.

Итак, могу ли я сделать это, используя функцию sign с B_publicKey ?

Или алгоритм шифрования совершенно другой, и мне нужно реализовать новую функцию?

Или с некоторой модификацией в функции sign (удаление, например, генерирующего хэша) это просто работает?

1 Ответ

0 голосов
/ 08 мая 2019
Now, I want to encrypt some part of the message.
So, could I do it just using sign function with B_publicKey?

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

Поскольку ассиметричное шифрование может быть очень дорогой вычислительной операцией, которая плохо масштабируется для длинных сообщений, стандартная схема такова:

  • Алиса генерирует сообщение, которое она хочет отправить Бобу.
  • Алиса генерирует симметричный ключ first
  • Алиса шифрует сообщение этим симметричным ключом.
  • Алиса шифрует симметричный ключ с помощью открытого ключа Боба
  • Алиса передает зашифрованное сообщение и зашифрованный ключ Бобу.

Затем Боб делает это:

  • Боб получает и сообщение, которое было симметрично зашифровано, и асимметрично зашифрованный ключ.
  • Боб расшифровывает симметричный ключ с помощью своего открытого ключа
  • Боб использует симметричный ключ для дешифрования зашифрованного сообщения

Вероятно, тонна других участников безопасности отсутствует, так какхорошо, но вышесказанное является общей идеей.

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