2016-06-30 16 views
0

Ich schaue durch libsodium-Beispiele der Public-Key-Kryptografie und es scheint, dass der private Schlüssel des Absenders neben dem öffentlichen Schlüssel des Empfängers verwendet wird, wenn der Klartext verschlüsselt wird.Warum wird der private Schlüssel des Absenders in der Verschlüsselung verwendet?

Auszug aus den entsprechenden example:

Die crypto_box_easy() Funktion verschlüsselt eine Nachricht m, deren Länge mlen Bytes, mit einem öffentlichen Schlüssel pk des Empfängers, ein Geheimschlüssel sk des Absenders und eine Nonce n.

Worauf kommt es an? Mein Verständnis war, dass der private Schlüssel des Versenders nur verwendet wurde, wenn er eine Nachricht signierte?

+0

Ok, ich denke, mein Verständnis der Public-Key-Kryptographie fehlt. Ich werde etwas lesen müssen ... – PureW

+0

@zaph aber warum ist der Verschlüsselungscode 'crypto_box_easy()' in dem Beispiel mit dem privaten Schlüssel des Absenders? – PureW

+0

Sie müssten den Anwendungsfall kennen. – zaph

Antwort

0

Die libsodium Dokumentation bezieht sich auf einen „Authentifizierung tag“, die in einem different chapter im folgenden Abschnitt erläutert wird:

This operation: 

* Encrypts a message with a key and a nonce to keep it confidential. 
* Computes an authentication tag. This tag is used to make sure that 
    the message hasn't been tampered with before decrypting it. 

Was libsodium Authentifizierungs-Tag bezeichnet ist äquivalent zu der üblicheren Terminologie eine Nachricht zu unterzeichnen. Daher macht es Sinn, dass die Funktion crypto_box_easy(...) den privaten Schlüssel des Absenders als Eingabe verwendet, da die Verschlüsselung wirklich Verschlüsselung und Signierung ist.

0

Digitale Signaturen verschlüsseln mit dem privaten Schlüssel und werden mit dem öffentlichen Schlüssel entschlüsselt. Dadurch kann jeder die Signatur mit dem öffentlichen Schlüssel des Unterzeichners überprüfen.

+0

Ja, aber meine Frage betrifft den Verschlüsselungsschritt. Im referenzierten Beispiel wird der private Schlüssel des Absenders verwendet, um Klartext in verschlüsselten Text zu verschlüsseln. – PureW

+0

Das kann getan werden, aber es sollte nicht für die Code-Signierung. Da der öffentliche Schlüssel allgemein öffentlich ist, bedeutet dies, dass jeder mit dem öffentlichen Schlüssel (im Wesentlichen jeder) alles entschlüsseln kann, das mit dem privaten Schlüssel verschlüsselt wurde, dort gibt es keine Sicherheit. Es gibt jedoch einige sehr begrenzte Anwendungsfälle, in denen dies wünschenswert sein könnte. – zaph