Есть ли способ изменить открытый ключ таким образом, чтобы расшифровку можно было выполнить с помощью закрытого ключа после некоторого изменения? - PullRequest
3 голосов
/ 02 марта 2010

В асимметричной схеме шифрования мне было интересно, возможно ли достичь следующего:

  1. Боб отправляет Алисе свой открытый ключ
  2. Алиса изменяет открытый ключ Боба и шифрует им какой-то документ
  3. Алиса отправляет зашифрованный документ Бобу
  4. Боб извлекает документ, но не может расшифровать его своим закрытым ключом
  5. Позже Алиса отправляет Бобу некоторую дополнительную информацию (возможно, связанную с методом, который она использовала для изменения открытого ключа Боба)
  6. Боб использует эту дополнительную информацию, чтобы изменить свой закрытый ключ и успешно расшифровать документ

Любой

Я предполагаю, что RSA используется для генерации, шифрования и дешифрования ключей, но если это проще сделать с другой схемой, не стесняйтесь комментировать.

Ответы [ 4 ]

2 голосов
/ 16 февраля 2011

Я надеюсь, что моя идея работает.

Предположим, что (e,d,n) является кортежом открытого показателя RSA. Частный показатель RSA и модуль RSA n :

Выберите простое число, скажем p , от 1 до 256-битного целого числа.

К шифровать сообщение m , вычислить новый открытый показатель степени как e*p и зашифрованный текст как:

c= m^{e*p} mod n.

Чтобы расшифровать , получатель должен знать простое число p , поэтому вы отправляете это p позже ему, с этим он вычисляет

(1) P = p^{-1} mod phi(n)

и

(2) m^e=c^{P} mod n

и

наконец m=(m^e)^d mod n. Это работает, так как получатель знает фи (n).

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

2 голосов
/ 02 марта 2010

(я полагаю, вы говорите о RSA.)

Да, это возможно, , но не 100% .

Открытый ключ является частью закрытого ключа. Он содержит модуль и показатель степени ключа.

Вы можете полностью забыть об изменении модуля, потому что вам придется сгенерировать новую пару ключей rsa, которая является той же самой проблемой, которую мы пытаемся решить.

Но можно изменить показатель степени. Вы можете выбрать любое (простое) число между 1 и вашим показателем в качестве нового показателя, и надеюсь , что оно взаимно просто с существующим. Не зная тентента, невозможно всегда выбрать правильный показатель. Чтобы узнать значение, вам нужно знать основные факторы ключа, а это значит, что вам придется взломать ключ (повеселиться!).

Итак, на самом деле невозможно иметь 100% -ный рабочий метод, чтобы сделать это, по крайней мере, не зная только открытый ключ.

Если вам нужна дополнительная информация о теории, проверьте здесь

1 голос
/ 02 марта 2010

Как указывает Шелковистый в своем ответе, способ, которым RSA обычно используется для шифрования документа, сочетается с симметричным алгоритмом, таким как AES. Для алгоритма AES генерируется безопасный случайный ключ, документированное шифруется этим ключом AES, а ключ AES шифруется открытым ключом получателя. Обе части доставляются получателю.

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

0 голосов
/ 02 марта 2010

Хм, интересно.

Вы имеете в виду RSA , я полагаю?

К вашему сведению, RSA фактически не используется для шифрования документов. Используется для обмена ключами (ключи для симметричного алгоритма, например, AES).

Так что вы на самом деле говорите о подходе, который меняет ключи.

Технически (математически), если вы введете другое число, вы получите другое число. Так что это не проблема; изменение открытого ключа каким-либо образом (при условии, что вы убедите свою реализацию RSA использовать его или подготовите подходящее другое число) приведет к другому симметричному ключу, то есть к недопустимому документу Боба (поскольку он ожидает другой ключ).

Правда, я не уверен, что ты заботишься об этом. Это довольно бесполезная вещь. Возможно, , однако, на самом деле вас интересует Разделение клавиш (или "Секретный обмен", как его называет википедия).

НТН. Я ни в коем случае не эксперт.

...