Ich richte ein System zum Aktualisieren der Software auf einem Gerät ein und möchte die Aktualisierungsdateien mit einem von mir erstellten privaten Schlüssel verschlüsseln und sie dann mit dem öffentlichen Schlüssel entschlüsseln. Alle Beispiele, die ich gefunden habe, verschlüsseln mit dem öffentlichen Schlüssel des Empfängers, ich möchte mit meinem privaten Schlüssel verschlüsseln. Ich habe Beispiele von Bob & Alice gesehen, die die Verschlüsselung einer Datei mit Ihrem privaten Schlüssel und dann mit dem öffentlichen Schlüssel des Empfängers verwenden, aber ich kann nicht herausfinden, wie die Verschlüsselung mit dem privaten Schlüssel funktioniert.
Antwort1
So funktioniert GPG nicht.
Sie verschlüsseln eine Datei mit einem öffentlichen Schlüssel (möglicherweise Ihrer) und entschlüsseln sie mit einem privaten Schlüssel.
Wenn Sie also Ihren öffentlichen Schlüssel im Internet teilen, könnte jeder eine Datei mit Ihrem öffentlichen Schlüssel verschlüsseln, aber Sie wären der Einzige, der sie entschlüsseln könnte.
Sehen :http://www.dewinter.com/gnupg_howto/english/GPGMiniHowto-1.html
Antwort2
Alte Frage, aber ... ich bin darauf gestoßen, als ich nach etwas anderem gesucht habe.
Was Sie hier wirklich wollen, ist nicht, die Datei zu verschlüsseln, sondern einen Nachweis zu erstellen, dass Sie der Urheber der Datei sind. Dies ist der Zweck von Dateisignaturen.
Eine kurze Grundidee zur Funktionsweise der Public-Key-Verschlüsselung: Wenn Sie etwas mit Ihrem privaten Schlüssel verschlüsseln, kann es nur mit Ihrem öffentlichen Schlüssel entschlüsselt werden. Wenn Sie etwas mit Ihrem öffentlichen Schlüssel verschlüsseln, kann es nur mit Ihrem privaten Schlüssel entschlüsselt werden. (Warum das so ist, geht über den Rahmen dieser Antwort hinaus.)
Wenn Ihnen jemand im Normalbetrieb eine Nachricht senden möchte, verschlüsselt er diese mit Ihrem öffentlichen Schlüssel, da nur Ihr privater Schlüssel sie entschlüsseln kann.
Eine Signatur generiert einen Einweg-Hash der Datei/Daten und vertauscht die Rollen des öffentlichen und privaten Schlüssels: Jeder mit Ihrem öffentlichen Schlüssel kann den Hash entschlüsseln und kann sicher sein, dass nur Sie den verschlüsselten Hash generiert haben, weil nur Ihr privater Schlüssel zum Verschlüsseln verwendet werden kann.
Der Hash wird verwendet, um zu bestätigen, dass die Datei seit Ihrer Signatur nicht manipuliert wurde. Jede Änderung an der Datei ändert den Hash und macht deutlich, dass sie verändert wurde. Da sie Ihren privaten Schlüssel nicht haben, können sie keine neue Signatur des neuen Hashs zur Entschlüsselung mit Ihrem öffentlichen Schlüssel generieren.
Viele Systeme verwenden diese Methode, um Prüfsummen-/Hashdateien anderer Dateien zu signieren und so sicherzustellen, dass die Dateien mit diesen Prüfsummen/Hashes authentisch sind.
Sie können die Daten-/Dateiverschlüsselung und Signierung auch kombinieren und so sicherstellen, dass die verschlüsselten Daten nur vom vorgesehenen Empfänger entschlüsselt werden können und dass keine der verschlüsselten Daten manipuliert wurden.
So funktionieren GPG und verwandte Programme „unter der Haube“. Es ist zu rechenintensiv, die Daten mit den Schlüsseldaten zu verschlüsseln. Stattdessen generieren sie ein zufälliges „Einmalpasswort“ (OTP), um es mit einer viel schnelleren Verschlüsselungsmethode zu verschlüsseln. Dann wird das Passwort mit den Schlüsseln der beabsichtigten Empfänger verschlüsselt und zusammen mit den verschlüsselten Daten gesendet. Da nur ihre privaten Schlüssel das zum Verschlüsseln der Daten verwendete Passwort entschlüsseln können, können Sie ziemlich sicher sein, dass niemand sonst dazu in der Lage ist.
Abschließende Anmerkung: Die Kryptographie ist immer im Wandel. Was während ich dies schreibe als „vernünftig“ oder „sicher“ gilt, kann morgen schon wieder hinfällig sein, wenn jemand eine Schwäche in einem der verwendeten Algorithmen entdeckt.