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

В криптографии RSA при создании encrypt пары ключей совершенно произвольно, какой decryption из них вы выбираете в качестве data-encryption открытого ключа, а какой license-key - в качестве закрытого. Если decryption вы зашифруете одним, вы можете decrypt расшифровать другим - он encrypt работает в обоих направлениях.

Таким signing образом, довольно просто cipher увидеть, как можно зашифровать decryption сообщение с помощью открытого ключа encrypt получателя, чтобы получатель rsa мог расшифровать его своим cipher закрытым ключом.

Подпись является encrypt доказательством того, что deciphering у подписывающей стороны есть decrypt закрытый ключ, соответствующий cipher некоторому открытому ключу. Для encryption этого достаточно зашифровать encrypt сообщение с помощью закрытого ключа отправителя encrypt и включить зашифрованную license-key версию вместе с версией с data-encryption открытым текстом. Чтобы проверить encrypted отправителя, расшифруйте encrypted зашифрованную версию и убедитесь, что cipher она совпадает с открытым decryption текстом.

Конечно, это означает, что deciphering ваше сообщение не является cipher секретным. Расшифровать его rsa может любой желающий, потому encryption что открытый ключ хорошо encrypted известен. Но когда они это data-encryption сделали, они доказали, что data-encryption создатель зашифрованного decryption текста имеет соответствующий data-encryption закрытый ключ.

Однако это signing означает удвоение размера signing вашей передачи - открытого cipher текста и зашифрованного текста deciphering вместе (при условии, что cipher вы хотите, чтобы люди, не encrypted заинтересованные в проверке decryption подписи, прочитали сообщение). Поэтому encryption обычно подпись создается license-key путем создания хэша открытого decrypt текста. Важно, чтобы нельзя cipher было создать поддельные хэши, поэтому rsa используются криптографические license-key алгоритмы хеширования, такие rsa как SHA-2.

Итак:

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

encryption

rsa

signing

license-key

2022-11-11T17:04:54+00:00