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


21

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

Если сообщение зашифровано закрытым ключом, может ли оно быть расшифровано соответствующим открытым ключом?

Если да, можете ли вы привести примеры использования этого случая?

Благодарю.


3
crypto.stackexchange.com/q/29030/351 , crypto.stackexchange.com/q/2123/351 , crypto.stackexchange.com/q/15997/351 , crypto.stackexchange.com/q/679/351 . Пожалуйста, тщательно ищите, прежде чем спрашивать.
DW

Зачем вообще его шифровать, если ключ дешифрования был открытым?
Берги

5
@Bergi Цифровая подпись?
user11153

6
@Bergi: Длинный ответ. Зашифровав сообщение с помощью своего закрытого ключа таким образом, чтобы его можно было расшифровать с помощью вашего открытого ключа, вы можете отправить сообщение, которое может быть прочитано кем угодно, но может быть написано только вами. Зашифровав сначала своим личным ключом, а затем личным ключом получателя, вы создаете сообщение, которое может быть расшифровано только предполагаемым получателем и может быть написано только вами.
gnasher729

2
@ gnasher729 Я думаю, что вы имели в виду шифрование сначала с помощью вашего личного ключа, а затем с открытым ключом получателя . У вас не должно быть чужого личного ключа
kiamlaluno

Ответы:


49

В: Если вы нажимаете на рыбу назад, она идет назад?
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 футов, но они не симметричны, когда вы углубляетесь в детали.

Смотрите также Сокращение от подписей к шифрованию? Это объясняет, что вы можете построить схему шифрования из схемы подписи, но только при определенных условиях.


2
+1 за четкое объяснение заблуждения, о котором я даже не подозревала, когда нажимала на этот вопрос.
Иксрек

1
Благодарю. «открытый ключ не тот тип математического объекта, который следует использовать для алгоритма дешифрования, а закрытый ключ не тот тип математического объекта, который следует использовать для алгоритма шифрования». Вы имеете в виду, что они все еще могут использоваться для этих целей, но не являются хорошими вариантами, или они не могут быть? Какие математические свойства, которые определяют, что они не являются «правильным» типом, кроме свойств безопасности (например, асимметрия в твердости, чтобы угадать один ключ из другого)?
Тим

2
Вырезал бы первые два абзаца, но в остальном это очень проницательный ответ. Я пришел сюда из объяснения непрофессионала о шифровании / дешифровании и подписи / проверке и о том, как закрытый ключ можно использовать для «шифрования», и ваш ответ прояснил именно то, что мне было интересно.
Кайл Чадха

Так что эта статья неверна: globalsign.com/en/blog/how-do-digital-signatures-work ? В нем упоминается, что открытый ключ используется для расшифровки, а закрытый ключ используется для шифрования
Кеннет Уорден

@KennethWorden Это в основном правильно, но некоторые детали неверны. В разделе «Применение подписи» «хэш зашифрован» должен быть «хэш подписан », и только это делает цифровую подпись. А в разделе «Проверка подписи» не существует такого понятия, как «расшифрованный хэш»: для большинства схем подписи вы не можете получить обратно хэш из подписи, вместо этого происходит то, что существует другая математическая операция (называемая проверкой). который принимает хэш и подпись в качестве входных данных и выводит «хорошо» или «плохо».
Жиль "ТАК - перестань быть злым"

6

Когда схема PKE использует перестановку люка в качестве черного ящика , «шифрование» закрытым ключом с последующей «расшифровкой» открытым ключом приведет к исходному сообщению. Для других схем ПКЕ это не обязательно может даже иметь смысл. (Например, попытка «зашифровать» с помощью закрытого ключа может быть ошибкой типа .)

[Шифрование сообщения «закрытым ключом» с последующей расшифровкой «соответствующим открытым ключом»] используется, когда люди думают, что дело касается цифровых подписей и не исправлено во времени. Смотрите этот ответ и этот вопрос .


4
Нет. Вы увековечиваете мифы о том, что учебник RSA является единственной криптосистемой с открытым ключом, а эта подпись - то же самое, что дешифрование.
Жиль "ТАК - перестань быть злым"

Первый - отличный момент, который я исправлю. Не является ли последняя часть вашего комментария из-за того, что мое длинное предложение недостаточно четким?

4
Я не понимаю, что вы подразумеваете под «когда люди думают, что это для цифровых подписей». Похоже, вы говорите, что люди ошибочно полагают, что цифровые подписи отличаются от шифрования с открытым ключом. Исходя из вас, я уверен, что это не то, что вы имели в виду, но ваш ответ действительно сбивает с толку, даже после добавления первого абзаца.
Жиль "ТАК - перестань быть злым"

2

Да, сообщение, зашифрованное с использованием закрытого ключа, может быть расшифровано с помощью открытого ключа.

Фактически это реализовано для проверки подлинности данных. В цифровой подписи человек шифрует хэш данных с помощью своего закрытого ключа. Любой может расшифровать то же самое с помощью доступного открытого ключа человека и проверить подлинность данных.


2
Вы можете сделать это с помощью криптосистемы RSA, но не со всеми криптосистемами с открытым ключом. Например, криптосистема Эль-Гамаля отличается от схемы подписи Эль-Гамаля. Смотрите также ответ Жиля
Дискретная ящерица

Правда что. Я пытался дать прямой ответ независимо от конкретных алгоритмов @Discretelizard
Кевин Амипара

Спасибо за прямой ответ.
Джрахали

0

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

Тем не менее, ответ да : D на самом деле хакер может расшифровать сообщение, используя только открытый ключ (блокировка и заблокированный ящик). Но это чрезвычайно сложно для любого компьютера сегодня. Потому что возврат этого зашифрованного сообщения с использованием этого открытого ключа является очень сложной математической операцией, особенно когда этот ключ достигает 2048-битного числа. Сила математической операции зависит от сложности первичной факторизации большого числа.

Вот хорошее видео, объясняющее, как работает алгоритм RSA https://www.youtube.com/watch?v=wXB-V_Keiu8


0

Вопрос действителен в отношении eMRTD, где открытый ключ AA используется для дешифрования ответа внутренней аутентификации, зашифрованного закрытым ключом eMRTD. Он является частью стандарта ИКАО 9303.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.