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

StackOverflow https://stackoverflow.com/questions/2361631

Вопрос

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

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

Кто угодно?

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

Это было полезно?

Решение

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

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

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

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

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

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

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

Другие советы

Надеюсь, моя идея сработает.

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

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

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

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

К дешифровать, приемник должен знать главное п, так что вы отправляете это п Позже ему, с этим он вычисляет

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

а также

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

а также

в конце концов m=(m^e)^d mod n. Анкет Это работает как приемник знает PHI (n).

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

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

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

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

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

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

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

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

На самом деле, я не уверен, что вы заботитесь об этом. Это довольно бесполезная вещь. Возможно, однако, вас на самом деле заинтересованы Ключевое расщепление (или «секретный обмен», как, кажется, википедия, кажется, это называется).

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top