Gibt es eine Möglichkeit, einen öffentlichen Schlüssel auf eine Weise zu ändern, wie die Entschlüsselung nach einer Änderung noch mit dem privaten Schlüssel erfolgen kann?

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

Frage

In einem asymetrischen Verschlüsselungsschema habe ich mich gefragt, ob es möglich ist, Folgendes zu erreichen:

  1. Bob schickt Alice seinen öffentlichen Schlüssel
  2. Alice verändert Bobs öffentlicher Schlüssel und verschlüsselt ein Dokument damit
  3. Alice sendet das verschlüsselte Dokument an Bob
  4. Bob holt das Dokument ab, kann es aber nicht mit seinem privaten Schlüssel entschlüsseln
  5. Später sendet Alice einige zusätzliche Informationen (wahrscheinlich in Bezug auf die Methode, mit der sie Bobs öffentlichen Schlüssel verändert hat) an Bob an Bob
  6. Bob verwendet diese zusätzlichen Informationen, um seinen privaten Schlüssel zu ändern und das Dokument erfolgreich zu entschlüsseln

Jeder?

Ich nehme RSA für die Schlüsselgenerierung, -verschlüsselung und Entschlüsselung an, aber wenn es einfacher ist, mit einem anderen Schema zu tun, können Sie sie gerne kommentieren.

War es hilfreich?

Lösung

(Ich nehme an, Sie sprechen über RSA.)

Ja, es ist möglich, aber nicht 100%.

Der öffentliche Schlüssel ist Teil des privaten Schlüssels. Es enthält den Modul und den Exponenten des Schlüssels.

Sie können vollständig vergessen, den Modul zu ändern, da Sie einen neuen RSA -Keypair generieren müssten, was das gleiche Problem ist wie das, das wir lösen möchten.

Aber es ist möglich, den Exponenten zu ändern. Sie können eine (Prim-) Nummer zwischen 1 und Ihrem Exponenten als neuer Exponent und auswählen Hoffnung dass es mit dem Totient Coprime ist. Ohne den Totient zu kennen, ist es unmöglich, immer einen korrekten Exponenten auszuwählen. Um herauszufinden, ob Sie die Hauptfaktoren des Schlüssels kennen müssen, was bedeutet, dass Sie den Schlüssel brechen müssten (Spaß haben!).

So, Es ist eigentlich unmöglich eine 100 -prozent -Arbeitsmethode dazu haben, zumindest nicht, während Sie nur den öffentlichen Schlüssel kennen.

Wenn Sie weitere Informationen zur Theorieprüfung benötigen hier

Andere Tipps

Ich hoffe meine Idee funktioniert.

Nehmen wir das an (e,d,n) ist ein Tupel des RSA Public Exponent. Der RSA Private Exponent und der RSA -Modul n :

Wählen Sie eine Primzahl aus, sagen wir p, zwischen 1 und einem 256 -Bit -Ganzzahl.

Zu Verschlüsseln eine Nachricht m, berechnen Sie den neuen öffentlichen Exponenten als e*p und der Chiffretext als:

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

Zu entschlüsseln, der Empfänger sollte die Prime kennen p, also senden Sie das p später zu ihm, damit er berechnet

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

und

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

und

endlich m=(m^e)^d mod n. Dies funktioniert, wie der Empfänger PHI (N) kennt.

Wo können wir übrigens das verwenden? Gibt es eine Anwendung, die Sie dafür im Sinn haben?

Wie seidig in seiner Antwort impliziert, wird die Art und Weise, wie RSA normalerweise zum Verschlingen eines Dokuments verwendet wird, in Kombination mit einem symmetrischen Algorithmus wie AES. Für den AES -Algorithmus wird ein sicherer Zufallsschlüssel generiert, der dokumentierte wird mit diesem AES -Schlüssel verschlüsselt, und der AES -Schlüssel wird mit dem öffentlichen Schlüssel des Empfängers verschlüsselt. Beide Teile werden dem Empfänger geliefert.

Sie können dies an Ihre Situation anpassen, indem Sie im ersten Schritt nur das mit dem AES -Schlüssel verschlüsselte Dokument senden und den AES -Schlüssel zurückhalten, der bis zum zweiten Schritt mit dem öffentlichen Schlüssel des Empfängers verschlüsselt ist. Der erste Teil befindet sich in der Reihenfolge der ursprünglichen Dateigröße, und der zweite Teil ist eine kleine, konstante Größe (in der Reihenfolge der RSA -Schlüsselgröße).

Hmm, interessant.

Sie beziehen sich auf RSA, Ich nehme an?

Zu Ihrer Information, RSA wird nicht verwendet, um Dokumente zu verschlüsseln. Es wird verwendet, um Schlüssel auszutauschen (Schlüssel für einen symmetrischen Algorithmus wie AES).

Was Sie also wirklich sprechen, ist ein Ansatz, der die Schlüssel verändert.

Technisch (mathematisch) Wenn Sie eine andere Zahl eingeben, erhalten Sie eine andere Nummer heraus. Das ist also kein Problem; Wenn Sie den öffentlichen Schlüssel in gewisser Weise ändern, wird (vorausgesetzt, Sie überzeugen Ihre RSA -Implementierung, sie zu verwenden, oder eine angemessene Zahl vorzubereiten) zu einem anderen symmetrischen Schlüssel, daher ein unklarbares Dokument von Bob (weil er einen anderen Schlüssel erwartet).

Wirklich, ich bin mir nicht sicher, ob Sie sich darum interessieren. Es ist eine ziemlich nutzlose Sache zu tun. Vielleicht, Sie interessieren Sie jedoch tatsächlich an Schlüsselaufteilung (oder "geheime Freigabe", wie Wikipedia es zu nennen scheint).

HTH. Ich bin keineswegs ein Experte.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top