Welche Verschlüsselungsalgorithmus 2 Schlüssel verwenden können: Admin - verschlüsseln & und Benutzer entschlüsseln - nur entschlüsseln?Verschlüsselungsalgorithmus: Benutzer entschlüsseln nur
Antwort
Bearbeiten: Dies ist inkorrekt (siehe Daniels Kommentar).
Sie können jeden Algorithmus so ändern, dass zwei Schlüssel zulässig sind, indem Sie einen Sitzungsschlüssel generieren. Verwenden Sie diesen Schlüssel zum Verschlüsseln der Nutzlast und verwenden Sie dann die beiden Schlüssel, um den Sitzungsschlüssel zu verschlüsseln.
Zum Beispiel, wenn Ak
der Schlüssel Admin ist, ist Uk
der Schlüssel des Benutzers, Sk
ein zufälliger Sitzungsschlüssel ist, und e(k, p)
ist eine symmetrische Verschlüsselungsfunktion, dann würden Sie verwenden:
ciphertext = e(Ak, Sk) . e(Uk, Sk) . e(Sk, p)
Sie tun können dies mit RSA mit dem privaten Schlüssel für die Verschlüsselung (als ob Sie unterschreiben würden). Das Tupel (d,n)
wäre der Administratorschlüssel (normalerweise als privater Schlüssel bezeichnet), wäre der Benutzerschlüssel (normalerweise öffentlicher Schlüssel). Der Administratorschlüssel wird für die Verschlüsselung verwendet, der Benutzerschlüssel für die Entschlüsselung. Nur der Administrator ist im Besitz des Administratorschlüssels, während sowohl der Benutzer als auch der Administrator den Benutzerschlüssel kennen. Jetzt kann nur der Administrator verschlüsseln, während der Benutzer nur entschlüsseln kann.
Bitte beachte, dass ich absichtlich die Exponenten d
für die Verschlüsselungs- Admin-Taste gewählt und nicht umgekehrt, weil e
in der Regel für eine bessere Leistung gewählt wird sehr klein, und wenn Sie das tun würden, dass mit der Admin-Taste anstelle der Benutzerschlüssel, dann wäre das System kaputt.
Beachten Sie, dass, wenn Sie ein Hybridsystem dafür erstellen, die gewünschte Entschlüsselungseigenschaft unterbrochen wird, da der Benutzer ebenfalls zum symmetrischen Sitzungsschlüssel gelangen und die Nachricht ändern kann.
Ich vermute, dass Sie möchten möglicherweise die Entschlüsselung-Eigenschaft tatsächlich Authentifizierung von potenziell großen Mengen an verschlüsselten Daten (d. H., So dass der Benutzer weiß, dass die Daten müssen vom Administrator kommen und wurde nicht manipuliert). Wenn dies der Fall ist, ist ein komplexeres Schema mit einer geeigneten digitalen Signatur (die eine Authentifizierung bereitstellt) und einer Form der Verschlüsselung für die Vertraulichkeit, z.B. Hybrid unter Verwendung einer symmetrischen Chiffre für die Massenverschlüsselung und z.B. RSA zur Verschlüsselung des symmetrischen Schlüssels.
Allerdings sollten Sie sehr vorsichtig sein beim Entwerfen von kryptografischen Systemen wie diesem, es gibt eine Los von Dingen, die schief gehen können und die Sicherheit Ihres Systems kompromittieren. Fachberatung einholen.
Ihr Vorschlag verfügt nicht über die gewünschte Eigenschaft, die Benutzer nur entschlüsseln können. Da Benutzer 'Sk' entschlüsseln können, können sie' Sk' verwenden, um eine andere Nutzlast 'p'' zu verschlüsseln und daraus einen neuen Chiffretext zu konstruieren. –
D'oh! Du hast sehr recht. Vielen Dank. Ich werde meine Antwort hier als Warnung hinterlassen, wie ich es nicht tun soll. –