GPG - Mit Private Key verschlüsseln?

Hi,

weiss jemand mit man mit GPG eine Datei mit seinem _private key_ verschlüsseln kann? Ich weiss, dass signieren der bessere Plan ist. Es geht mit mehr um Demonstrationszwecke.

In der man page konnte ich nichts finden. gpg -e lässt mich mit -r nur die User ID spezifizieren, und dann nimmt er sicherliche den Public Key.

Vorschläge?

Grüße
serow
 
Nur um sicherzugehen, daß du grad keinen Knoten im Kopf hast: man verschlüsselt Dinge mit einem Public Key, und entschlüsselt sie mit dem dazugehörigen Private Key. Du kannst zu Demonstrationszwecken also problemlos Dinge mit deinem eigenen Private Key verschlüsseln (und sie zusätzlich signieren) und dann mit deinem eigenen Private Key wieder entschlüsseln... oder versteh ich dich jetzt falsch?
 
Hi,

dass man mit dem Public Key verschlüsselt ist klar, denn man kann dann ja nur mit geheimen Private Key das ganze entschlüsseln. Ich wollte nun aber nicht verschlüsselt übertragen sondern mich als Absender verifizieren. Dazu wollte ich die Datei mit meinem Private Key verschlüsseln. Der Empfänger müsste dann ja in der Lage sein die Datei mit meinem Public Key zu entschlüsseln. Dadurch wäre ja der Absender verifiziert.

Grüße
serow
 
Code:
~ % echo "Eine kurze Nachricht..." > datei
~ % gpg --sign datei

Sie benötigen eine Passphrase, um den geheimen Schlüssel zu entsperren.
Benutzer: "Stefan Ritter <xeno@thehappy.de>"
4096-Bit RSA Schlüssel, ID 70557E3F, erzeugt 2009-08-07

~ % rm datei
~ % gpg datei.gpg 
gpg: Unterschrift vom Do 07 Apr 2011 10:22:07 CEST mittels RSA-Schlüssel ID 70557E3F
gpg: Korrekte Unterschrift von "Stefan Ritter <xeno@thehappy.de>"
gpg:                     alias "Stefan Ritter <stefan.ritter@credativ.de>"
~ % cat datei
Eine kurze Nachricht...
~ %

Sowas? Verschlüsseln macht keinen Sinn, es hat ja jeder meinen Public Key...
 
Irgendwie verstehe ich dein Vorhaben nicht.

Du willst einfach nur, dass der Empfänger verifizieren kann, dass die Nachricht von dir kommt? Genau das leistet doch das Signieren.

Von der Theorie her ist es auch genau das, was du machen willst. Es wird der private Schlüssel genommen und die Nachricht damit verschlüsselt. Ist diese nun mit deinem öffentlichen Schlüssel wieder zu entschlüsseln, muss die Nachricht von dir sein.

Ob das nun aber über die komplette Nachricht gemacht wird und diese somit verschlüsselt übertragen wird, oder ob das nur über eine Checksumme gemacht wird, kann ich dir nicht sagen. letztendlich wäre das aber auch relativ egal, oder?
 
Bei einer Signatur geschieht folgendes: Es wird ein Hash von der Nachricht gebildet, die du signieren willst. Dieser wird dann mit dem privaten Schlüssel verschlüsselt und nennt sich Signatur. Nun werden Signatur und Nachricht übertragen. Der Empfänger entschlüsselt die Signatur mit dem publicKey und erhält den Hash der Nachricht. Nun bildet er seinerseits den Hash der empfangen Nachricht und überprüft, ob dieser mit dem, den du in durch die Signatur mit übertragen hast, übereinstimmt. So wird sicher gestellt, dass die Nachricht von dir stammt und nicht verändert wurde.

Wenn du zusätzlich noch sicherstellen willst, dass niemand, außer dem Empfänger die Nachricht lesen kann, musst die Nachricht und Signatur noch mit dem publicKey des Empfängers verschlüsseln.
 
Hi,

das ist mir soweit alles klar was ihr mir erzählt ;) Mir ist auch klar, dass man die Signatur bildet indem man die Nachricht hasht und dann mit dem Private Key verschlüsselt. Ich will nun genau dasselbe bewirken, allerdings mit dem Unterschied, dass ich den Hash nicht machen möchte sondern die Datei direkt mit dem Private Key verschlüsseln will.

@xeno: Du hast den Hash gebildet und den dann verschlüsselt.

Wie schon im ersten Posting erwäht, geht es mir nicht um den praktischen Einsatz bzw den Sinn und Unsinn von meinem Vorhaben sondern darum, wie ich es umsetzen kann. Und da liegt eben das Problem: Ich weiss nicht wie ich gpg sagen kann, dass es den Hash weglassen soll.

Grüße
serow
 
Hm, eine Nachricht mit dem eigenen PrivateKey verschlüsseln um sie mit dem PublicKey zu entschlüsseln hab ich im Studium mal probiert und bin gescheitert, afaik ist das nicht möglich.
 
Hi,

ich kann mir nicht vorstellen, dass das unmöglich sein soll. Schließlich macht man beim signieren je genau das - nur eben mit einem Hash statt der eigentlichen Nachricht.

Grüße
serow
 
die verwirrung hier kann ich glaube ich erklären ...


das liegt an einer besonderheit EINES speziellen verschlüsselungs- und signatur-verfahren ... RSA

ein RSA schlüsselpaar besteht prinzipiell (auf die zusätzlichen parameter zur schnelleren berechnung verzichte ich hier mal ...) aus 3 verschiedenen zahlen ...

öffentlich bekannt (public key)
modulus N
exponent e


geheim (private key)
exponent d


da für die beiden exponenten gilt d*e mod phi(N) = 1 sind die beiden gegeneinander austauschbar ... bei der erzeugung des schlüsselpaares werden 2 zahlen gesucht die diese eigenschaft haben ... eine davon wird e, die andere d ... würde man sie an dieser stelle vertauschen, wäre das für die funktion oder sicherheit des ganzen völlig egal ...


daher kommt die symetrie zwischen dem verschlüsselungs und dem signatur teil von RSA ...


das gilt aber auch nur für RSA ...


daher hat Serow mit seiner idee auch in soweit recht, dass man auf die von ihm beschriebene weise den absender der datei verifizieren kann ...

da eine RSA verschlüsselung aber um einiges langsamer ist als ein hashvorgang, und die signatur mindestens so groß wäre wie die datei, begnügt man sich für eine signatur damit das original zu hashen, und (im fall von RSA) den hash auf die beschriebene weise mit dem priv-key zu "verschlüsseln", auf dass der empfänger ihn mit dem pub-key wieder "entschlüsseln" kann um ihn mit seinem hash der empfangenen datei zu vergleichen ...

die gpg implementation wird aber vermutlich nur den standard signatur-fall beherschen
 
Hi,

das war ja mal ne ausführliche Erklärung :) Gut zu wissen, dass ansich nicht falsch liege sondern einfach nur GPG den Fall nicht abdeckt.

ciao
serow
 
Hmpf, genau das meinte ich eigentlich... Kommt vom nur überfliegen und schnell Antworten auf Arbeit. Hatte das im Studium mal probiert um den anderen Studenten eine Lösung für Kryptographie-Aufgaben zukommen zu lassen und diese die nur bei Verständnis vom Stoff lesen können. Bin sogar mit dem Thunderbird Plugin für GPG sogar soweit gekommen, die Nachricht mit Private-Key zu verschlüsseln, allerdings will das Plugin nicht entschlüsseln, da es dafür nur die Private-Keys verwendet. Zum Verschlüsseln kann man mit einigen Kniffen das Plugin aber zum Private-Key bewegen.
 
Zurück
Oben