В: Если вы нажимаете на рыбу назад, она идет назад?
A: ???
Рыба это не велосипед. Аналогично, вы не можете использовать закрытый ключ для шифрования сообщения или открытый ключ для расшифровки сообщения. У них нет подходящего оборудования.
В RSA , которая является популярной криптосистемой с открытым ключом, но не единственной, закрытый ключ и открытый ключ имеют одинаковые математические свойства, поэтому их можно использовать взаимозаменяемо в алгоритмах. (Однако они не имеют одинаковых свойств безопасности - открытый ключ обычно легко угадать из закрытого ключа.) Вы можете взять алгоритм шифрования RSA и передать ему закрытый ключ или алгоритм дешифрования RSA и передать его общедоступным ключ. Однако результаты не имеют смысла в соответствии со стандартными алгоритмами.
Эта симметрия между открытыми ключами и закрытыми ключами не распространяется на большинство других криптосистем с открытым ключом. В общем, открытый ключ - это не тот тип математического объекта, который следует использовать для алгоритма дешифрования, а закрытый ключ не тот тип математического объекта, который следует использовать для алгоритма шифрования.
При этом криптосистемы с открытым ключом основаны на концепции функций-ловушек . Односторонняя функция является функцией , которая легко вычислить, но чей обратный трудно вычислить. Функция люка похожа на одностороннюю функцию, но есть «магическое» значение, которое позволяет легко вычислить обратное.
Если у вас есть функция люка, вы можете использовать ее для создания алгоритма шифрования с открытым ключом: в дальнейшем (в простом направлении) функция шифрует; возвращаясь назад (в жестком направлении), функция расшифровывается. Магическое значение, необходимое для расшифровки, - это закрытый ключ.
Если у вас есть функция люка, вы также можете использовать ее для создания алгоритма цифровой подписи : возвращаясь назад (в жестком направлении), функция подписывает ; двигаясь вперед (в простом направлении), функция проверяет подпись. Еще раз, волшебное значение, необходимое для подписи - это закрытый ключ.
Функции люка обычно приходят в семьи; Данные, необходимые для указания одного конкретного элемента семейства, являются открытым ключом.
Хотя шифрование с открытым ключом и цифровые подписи основаны на одних и тех же концепциях, они не являются строго идентичными. Например, функция люка RSA основана на сложности отмены умножения, если вы не знаете один из факторов. Существует два общих семейства схем шифрования с открытым ключом, основанных на RSA , известных как PKCS # 1 v1.5 и OAEP. Есть также два общих семейства схем цифровой подписи, основанных на RSA, известных как PKCS # 1 v1.5 и PSS. Два «PKCS # 1 v1.5» имеют похожие конструкции, но они не идентичны. В этом ответе Томаса Порнина и этом ответе Мартена Бодевеса подробно рассматриваются различия между подписью / проверкой и дешифрованием / шифрованием в случае RSA.
Помните, что некоторые непрофессиональные презентации криптографии с открытым ключом маскируют цифровую подпись и проверку под дешифрование и шифрование по историческим причинам: сначала был популяризирован RSA, а основная операция RSA симметрична. (Основная операция RSA, известная как «учебник RSA», является одним из этапов алгоритма подписи / проверки / шифрования / дешифрования RSA, но сама по себе не представляет собой алгоритм подписи, проверки, шифрования или дешифрования.) Они симметричны с высоты 10000 футов, но они не симметричны, когда вы углубляетесь в детали.
Смотрите также Сокращение от подписей к шифрованию? Это объясняет, что вы можете построить схему шифрования из схемы подписи, но только при определенных условиях.