Einführung in die Funktionsweise von OpenPGP / GnuPG (gpg)



Man soll sich der hohen Verantwortung sein und gleichzeitig Vorteile und Nachteile im Kopf behalten. Es sollte jedoch beachtet werden, dass einige eWallets für Händler in bestimmten Ländern zu den lokalen regulatorischen Anforderungen nicht verfügbar sind. Auf den ersten Blick fällt sofort Redwood Optionen sauber und gut strukturierte Benutzeroberfläche. In die Tiefe gehend, fand ich oben ein sehr gutes Onlinekasino, nicht ohne einige kleine Ausgaben, aber definitiv eins, das ich zu für ziemlich lange Zeit zurückkomme. Nur wenige Computer verfügen über entsprechende Zusatzhardware, die dieses Problem mehr oder weniger beseitigt wenn man Hardware dafür hat, stellt sich nämlich die Frage, ob sie fehlerfrei funktioniert

Die Wettanbieter sind zuversichtlich


Der Gültigkeitsbereich kann aber nur maximal eine Stufe über den Vertrauensbereich hinausgehen, der Vertrauensbereich theoretisch beliebig über den Gültigkeitsbereich was aber keine Auswirkungen hat.

Es gibt meist auch einen Bereich hellgrün von erst teilweise verifizierten Schlüsseln die mindestens eine relevante Signatur haben, die aber in der jeweiligen Konfiguration nicht ausreicht. Es folgen Beispiele für die unterschiedlichen Möglichkeiten einer Schlüsselverifikation über drei Ebenen.

Die eigenen Schlüssel für die der private Schlüssel vorhanden ist haben immer den ownertrust-Wert ultimate. Bei normaler Konfiguration benötigt man von Schlüsseln mit ownertrust complete nur ein einziges Zertifikat, um einen weiteren Schlüssel gültig zu machen. Die Schlüssel der zweiten Ebene mit ownertrust marginal werden wir im vorigen Beispiel schon durch ein einziges Zertifikat gültig.

Der neue Schlüssel Ebene drei ist nur deshalb gültig, weil er drei Zertifikate trägt, da diese von Schlüsseln mit geringerem Zertifizierungsvertrauen sind. Man erkennt hieran auch, dass es nur auf die Anzahl der Zertifikate ankommt, nicht auf die Anzahl der unterschiedlichen Wege dorthin. In diesem Beispiel ist es umgekehrt: Den Schlüsseln der ersten Ebene wird weniger Zertifizierungsvertrauen entgegengebracht, weswegen für den Schlüssel der zweiten Ebene drei Zertifikate benötigt werden.

Wenn die Schlüssel der ersten Ebene nicht alle denselben Schlüssel in der zweiten Ebene zertifizieren, werden die Schlüssel der zweiten Ebene nicht vollständig gültig, sondern nur marginal gültig. Das bedeutet, dass ihre Zertifikate nicht gewertet werden, so dass der Schlüssel der dritten Ebene komplett ungültig bleibt.

Hier kann man auch sehen, dass Schlüssel, die nicht vollständig gültig sind, einen positiven ownertrust haben können. Wenn die Schlüssel der ersten Ebene jeweils nicht nur einen, sondern alle drei Schlüssel der zweiten Ebene zertifizieren, dann werden wie in einem vorigen Beispiel die Schlüssel der zweiten Ebene alle gültig und damit wie gehabt auch der in der dritten.

Die Zertifikate zur Validierung eines Schlüssels können aus unterschiedlichen Ebenen kommen. Eine Statistik über die Verteilung der Schlüsselstatus in den einzelnen Ebenen kann man sich von gpg anzeigen lassen nach Änderungen der trustdb, etwa beim Setzen der ownertrust-Werte, passiert das automatisch:. Für diese Schlüssel wurde noch keine Angabe gemacht das Kommando --update-trustdb würde sie abfragen. Diesen Schlüsseln wird ultimativ vertraut, d. Auch einzelne Zertifikate eines solchen Schlüssels machen einen Schlüssel immer gültig unabhängig vom Wert für --completes-needed.

Man kann die öffentlichen Zertifizierungen auch anders nutzen als vollautomatisiert durch das Web of Trust. Ich kannte diese Distribution nicht, war aber positiv davon überrascht, dass sie sich diesem Problem umfangreich widmet ; insofern nicht erstaunlich, als Kryptografie einer der Schwerpunkte dieser auf Debian basierenden Distribution ist.

Aber ich habe vollen Vertrauen darin, dass ein Debian-Entwickler beim Zertifizieren des Signaturschlüssels einer Distribution nicht schlampt. Auch wenn ich ohne weitere Informationen seinem Schlüssel nicht grundsätzlich einen hohen ownertrust zuweisen würde, mag ich sein Zertifikat für den Tails-Schlüssel als ausreichend ansehen, um auf die Gültigkeit des Talis-Schlüssels zu vertrauen.

Zusätzliche Schlüssel kann man auf drei Arten verfügbar machen:. Das Aktualisieren eines vorhandenen Schlüssels ist nichts anderes als ein Import. Von einem Keyserver können einzelne oder auch alle Schlüssel mit dem Kommando --refresh-keys aktualisiert werden.

Grundsätzlich nutzt jeder den Keyserver, der ihm aus welchem Grund auch immer am meisten zusagt. Es gibt Gruppen von Keyservern, die unter einem gemeinsamen Namen zusammengeschaltet sind, um die Verfügbarkeit zu erhöhen, z. Wenn man mittels --search-keys sucht, kann man auswählen, ob man einen der angezeigten Schlüssel importieren will. Der Aufruf --recv-keys importiert direkt, also ohne Rückfrage. Diese Abfragen funktionieren nur mit der Option --keyserver , die hier nicht auftaucht, weil sie bereits in der Konfigurationsdatei steht.

Man muss danach auf jeden Fall noch den Fingerprint prüfen. Das gilt zumeist auch beim Import einer Datei. Nicht immer will man alle Komponenten eines Schlüssels haben. Es können sich im Laufe der Zeit Komponenten ansammeln, die man nicht braucht:. Signaturen können veraltet sein abgelaufen oder durch neuere ersetzt , UIDs können abgelaufen oder zurückgezogen sein.

Und damit auch unübersichtlicher. Man kann deshalb den Schlüsselimport so konfigurieren mittels --import-options , eignet sich für die Konfigurationsdatei , dass nur die relevanten Komponenten importiert werden:.

Der Export von Schlüsseln ist etwas komplizierter, was daran liegt, dass Importieren als Anweisung eindeutig ist, beim Exportieren aber nicht. Es ist zu unterscheiden, ob öffentliche Schlüssel Zertifikate , private Schlüssel oder nur private Unterschlüssel exportiert werden sollen.

Ohne die Angabe von --output wird der exportierte Schlüssel auf die Standardausgabe geschrieben, von wo man ihn in einer Shell bequem in eine Datei umleiten kann:. Wenn nur ein einzelner Schlüssel auf einen anderen Rechner übertragen werden soll, exportiert man ihn in der oben beschriebenen Weise und importiert ihn auf dem anderen Rechner. Wenn dagegen die ganze Installation kopiert oder transferiert werden soll, kopiert man das ganze Verzeichnis , weil die Installation noch mehr Informationen als nur die Schlüssel umfasst.

Beim kompletten Exportieren von Schlüsseln eigenen wie fremden ist zu beachten, dass die Exportoptionen so gesetzt werden --export-options export-local-sigs,export-sensitive-revkeys , dass auch wirklich alles exportiert wird etwa auch lokale Signaturen und auf "sensitive"Einträge für designated revoker.

Bei der Übertragung einzelner eigener Schlüssel muss nur darauf geachtet werden, dass es sich möglicherweise um einen Offline-Hauptschlüssel handelt und man ggf. Werden fremde Schlüssel auf ein anderes System transferiert, ist zu bedenken, auf dem Zielsystem ihren ownertrust zu setzen.

Die dafür erforderlichen fremden Schlüssel sind auf dem Zielsystem möglicherweise nicht vorhanden oder haben dort einen anderen ownertrust-Wert, so dass der Schlüssel auf dem Quellsystem gültig ist, ohne die entsprechenden Anpassungen aber nicht auf dem Zielsystem. Wenn ein Schlüssel oder ein Teil davon kompromittiert wurde oder aus anderen Gründen nicht mehr verwendet werden soll, kann man ihn zurückziehen revoke. Dies erfolgt über ein Sperrzertifikat, das mit einer Signatur des zurückzuziehenden Schlüssels oder eines anderen, speziell dazu autorisierten, siehe addrevoker versehen wird, so dass jeder Nutzer des Schlüssels sicher sein kann, dass nur der Besitzer des jeweiligen Schlüssels die Sperrung veranlasst hat.

Dies lässt sich für Haupt- und Unterschlüssel nicht rückgängig machen! Wenn ein Sperrzertifikat für einen Schlüssel erst einmal in Umlauf ist, kann man den betroffenen Schlüssel komplett vergessen; für UIDs kann man mit GnuPG ein revocation certificate durch eine später erzeugte, weitere reguläre Signatur quasi überschreiben.

Der RfC Abschnitt 5. Man sollte sich nicht darauf verlassen, dass man eine widerrufene UID in allen Implementierungen wieder zum Leben erwecken kann. Man kann — und wird von gpg bei der Schlüsselerzeugung auch dazu ermuntert — sich allerdings bereits im voraus ein Sperrzertifikat für den Hauptschlüssel erzeugen, ohne es in Umlauf zu bringen. Das sollte man dann aber sicher verwahren z. Die Überlegung dahinter ist, dass man durch irgendeine IT-Panne seinen Hauptschlüssel verlieren oder die Passphrase vergessen könnte, so dass man auf regulärem Weg kein Sperrzertifikat mehr erzeugen kann.

Das kann man z. Nach dem Abtippen kann man dann im Fall von Fehlern für jede Zeile den Hashwert berechnen lassen und mit dem auf dem Ausdruck vergleichen. Warum man die Aktivierung eines Hauptschlüssel-Sperrzertifikats gegenüber der Öffentlichkeit nicht zurücknehmen kann, erkennt man am Aufbau eines Zertifikats, zuerst ein Schlüssel, der komplett zurückgezogen wurde:.

In diesem Fall hängt das Widerrufszertifikat direkt am Hauptschlüssel. Hier hängen die Sperrzertifikate an den jeweiligen Komponenten. Der wesentliche Unterschied ist: Da der Hauptschlüssel weiterhin gültig ist, kann er prinzipiell auch weiterhin unbedenkliche Eigenbeglaubigungen für UIDs und Unterschlüssel erzeugen.

Wenn der Hauptschlüssel aber selber widerrufen wurde, dann kann er keine Eigenbeglaubigung mehr erzeugen, die erfolgreich validiert werden könnte.

Der sachliche Grund ist, dass jemand, der in den Besitz eines fremden privaten Hauptschlüssels gekommen ist, natürlich auch neue Eigenbeglaubigungen für diesen erzeugen könnte. Wird nur ein Unterschlüssel kompromittiert, kann er das nicht. Wenn der Hauptschlüssel kompromittiert ist, muss der komplette Schlüssel zurückgezogen werden. Dies erreicht man mit dem Kommando --gen-revoke. Eine UID kann über die Kommandos --edit-key und revuid zurückgezogen werden. Es ist möglich, dieselbe UID später erneut anzulegen.

Ein Unterschlüssel kann über die Kommandos --edit-key und revkey zurückgezogen werden. Ein Reaktivieren des Unterschlüssels analog zum erneuten Signieren einer UID mag technisch also vom Schlüsselformat her grundsätzlich möglich sein, ist aber mit gpg-Bordmitteln nicht möglich. Mir ist kein Ansatz dafür bekannt.

Eine Beglaubigungen kann über die Kommandos --edit-key und revsig zurückgezogen werden. Das betrifft primär die eigenen Signaturen anderer Schlüssel. Ein Grund für das Zurückziehen eines Schlüssels ist, dass einem der private Schlüssel abhanden gekommen ist.

Entweder hat man das also präventiv erledigt, oder man steht dumm da. Zur Lösung dieses Problems gibt es das Konzept des designated revoker.

Man kann andere Schlüssel berechtigen, Sperrzertifikate für den jeweiligen Schlüssel auszustellen. Das können weitere eigene Schlüssel, aber auch die von Dritten, denen man entsprechend vertraut, sein.

Jedenfalls dann, wenn man nicht Kopien der privaten Schlüssel verwahrt. Vermerkt werden die designated revoker mit dem Kommando --edit-key und addrevoker. Um mal die gpg-Warnung zu zitieren: Einen Schlüssel als vorgesehenen Widerrufer zu deklarieren, kann nicht rückgangig gemacht werden!

Das gilt strenggenommen aber erst dann, wenn irgendwem eine Version des Schlüssels mit diesem Eintrag zugänglich gemacht wurde. Für den unwahrscheinlichen Fall, dass man seinen Schlüssel versehentlich mit dieser Berechtigung versehen oder gleich komplett wiederrufen hat und an den öffentlichen Schlüssel in der neusten Version nicht mehr herankommt, ist hier erklärt , wie man diesen Teil des Schlüssels auf die harte Tour loswird.

Man muss dann aber einmal den öffentlichen Schlüssel mit dieser Berechtigung exportieren und diese entweder selber sicher verwahren was man dann natürlich auch gleich mit einem Sperrzertifikat machen könnte oder aber dem Berechtigten zukommen lassen. Ob es designated revoker für einen Schlüssel gibt, kann man mit einem normalen --list-keys nicht sehen. Es reicht natürlich nicht aus, dass man ein Sperrzertifikat erzeugt. Derjenige, der den ungültig gewordenen Schlüssel verwenden will, muss es rechtzeitig erhalten.

Anders als bei X. Es ist zudem schwierig, anderen Leuten eine im kryptografischen Sinn verlässliche Prüfung zu ermöglichen, ob der eigene Schlüssel noch aktuell ist.

Das wäre innerhalb der Infrastruktur nur möglich, wenn man signierte Daten von den Keyservern bekäme, aber die meisten sprechen nicht mal SSL aus Kostengründen. Als Ausweg bleibt, nur Schlüssel mit noch jungen Selbstsignaturen zu akzeptieren was einen nicht vor kompromittierten Hauptschlüssel schützt , sei es seitens des Schlüsselbesitzers durch sehr kurze Gültigkeitszeiträume des Schlüssels Tage, Wochen , sei es seitens der Kommunikationspartner , indem man nur Schlüssel anderer Nutzer mit jungen Selbstsignaturen akzeptiert mit gpg-Bordmitteln nicht erzwingbar, das muss man sich irgendwie basteln, etwa durch sehr kurze Gültigkeitszeiträume der Zertifizierungen für die Schlüssel anderer Leute --ask-cert-expire , was natürlich nur dann praktikabel ist, wenn die Schlüsselbesitzer entsprechend häufig ihre Selbstsignatur erneuern.

Wenn Daten für OpenPGP verschlüsselt werden, wird zuerst ein nur einmal verwendeter symmetrischer Schlüssel erzeugt, der sogenannte session key. Mit diesem Einmalschlüssel und einem konfigurierbaren Verschlüsselungsverfahren Cipher werden dann die Daten eventuell nachdem sie signiert wurden verschlüsselt. Der folgende Ablauf entspricht diesem ungewöhnlich komplizierten Aufruf:. Daten werden mit gpg --encrypt asymmetrisch, d. Die Empfänger werden jeweils mit --recipient angegeben zusätzliche Standardempfänger in der Konfigurationsdatei mit --encrypt-to oder --hidden-encrypt-to ; die Möglichkeiten der Identifizierung von Schlüsseln sind im Abschnitt Schlüsselauswahl erläutert.

Wenn man häufig auch für dieselbe Gruppe von Empfängern verschlüsselt, kann man mit --group in der Konfigurationsdatei die Gruppe abkürzen. Man kann Daten nur asymmetrisch, nur mit Passphrase oder wie im obigen Beispiel sowohl asymmetrisch als auch mit Passphrase verschlüsseln. Ohne die Angabe von --output werden die ver- oder entschlüsselten Daten in eine Datei geschrieben, deren Name der Name der Quelldatei ergänzt um. Es ist oftmals sinnvoll, eine Nachricht auch für sich selber zu verschlüsseln; vor allem dann, wenn man Daten verschlüsselt, verschickt, aber die verschickten Daten auch archiviert.

Ohne einen eigenen Schlüssel als Standardempfänger kann man sich dann hinterher nicht mehr anschauen, was man selber verschickt hat, was oftmals unerwünscht sein dürfte. Das kann man in der Konfigurationsdatei mit den Optionen encrypt-to und hidden-encrypt-to und der Angabe der eigenen Schlüssel-ID einstellen. Die Entschlüsselung verläuft umgekehrt: GnuPG prüft, ob der private Schlüssel einer der Empfängerschlüssel vorhanden ist und fragt falls nötig die Passphrase ab.

Erst nach der Entschlüsselung kann die Signatur geprüft werden. Vor der Entschlüsselung kann man nicht einmal wissen, ob die Daten überhaupt signiert sind. Die Entschlüsselung ist vom Aufruf her einfacher als die Verschlüsselung:. Wenn man kein Kommando angibt, versucht gpg in Abhängigkeit von den übergebenen Daten etwas Sinnvolles zu tun. Bei einer verschlüsselten Datei ist das deren Entschlüsselung.

Bemerkenswerterweise verhält sich diese Standardoperation anders als --decrypt: Die Standardoperation schreibt die entschlüsselten Daten in eine Datei, --decrypt dagegen schreibt sie ohne die Angabe von --output auf die Standardausgabe, was nur bei Text und ähnlichen Daten sinnvoll ist. Allerdings kann man die Klartextdaten in der Shell mittels Ausgabeumlenkung bequem in eine Datei umleiten. Ob man das so oder mit --output macht, ist Geschmackssache.

Die Standardoperation nimmt als Dateiname denjenigen, der in der verschlüsselten Datei eingetragen ist. Ist dort keiner eingetragen, nimmt es den Dateinamen der Quelldatei, ohne seine Endung. Mit gpg --list-packets kann man sich den ggf.

Zumeist verschlüsselt man E-Mails; das erledigt dann der Mailclient für einen, mit gpg hat man da nicht zu tun abgesehen davon, dass sich der Inhalt der Konfigurationsdatei auswirkt.

Die Option --armor sorgt dafür, dass die verschlüsselte Datei fast nur aus alphanumerischen Zeichen besteht. So kann man verschlüsselte Daten auch über Medien transportieren, die dafür nicht gedacht sind, etwa Chatprogramme oder Webseiten:. Es wird nicht die ganze Nachricht asymmetrisch verschlüsselt; das wäre viel zu aufwendig. Für jede Nachricht wird ein zufälliger Schlüssel ermittelt, mit dem die Nachricht symmetrisch verschlüsselt wird. Nur dieser Einmalschlüssel wird asymmetrisch verschlüsselt.

Deshalb kann man eine Nachricht auch mehrfach verschlüsseln: Der Zufallsschlüssel wird für jeden Empfänger verschlüsselt, und alle diese verschlüsselten Varianten werden in die Containerdatei geschrieben. Hier wurde die Datei test. Beim Entschlüsseln mit der Option --show-session-key wird der symmetrische Schlüssel angezeigt.

Wegen der unterschiedlichen Algorithmen sind die beiden Zufallsschlüssel unterschiedlich lang. Wenn man nicht möchte, dass ersichtlich ist, für wen also für welchen Schlüssel Daten verschlüsselt wurden, kann man sich der Optionen --hidden-recipient zur Verschleierung einzelner Empfänger und --throw-keyids aller Empfänger bedienen.

Der Empfänger muss dann alle seine geheimen Schlüssel ausprobieren das macht gpg automatisch. Wie man die verschlüsselten Daten dann so zum Empfänger bekommt, dass nicht schon der Transportweg ihn verrät, ist dann eine andere Frage. Welche das sind, kann man sich mit --version anzeigen lassen:. Irgendwie muss nun festgelegt werden, welcher Algorithmus verwendet wird.

Ausgewählt wird das Verfahren, indem die Präferenzen des Empfängers im Zweifelsfall der adressierten UID; mehrere UIDs können unterschiedliche Präferenzen haben, auch wenn das eher selten beabsichtigt sein dürfte mit denen des Absenders abgeglichen werden. Die Präferenzen eines Schlüssels bzw. Ändern kann man sie mittels --edit-key setpref , was durch die Verwendung von --default-preference-list in der Konfigurationsdatei; üblicherweise dürften die Präferenzen für alle eigenen Schlüssel gleich sein bequemer ist, weil man setpref dann ohne Parameter aufrufen kann.

In beiden Varianten muss man die Werte für Verschlüsselungsverfahren, Hash und Kompression gleichzeitig angeben:. Die eigenen Präferenzen als Absender kann man mit --personal-cipher-preferences und --personal-compress-preferences festlegen; sinnvollerweise in der Konfigurationsdatei. Wenn man mit gpg oder einem GUI normale Dateien oder Datenströme signiert, muss man wissen, dass es unterschiedliche Arten gibt, eine Signatur zu speichern und natürlich auch unterschiedliche Arten von Signaturen:.

Eine Signatur ist ein Hashwert der zu signierenden Daten, der mit dem privaten Schlüssel so verrechnet wird, dass mit Hilfe des öffentlichen Schlüssels nachgewiesen werden kann, dass der zugehörige private Schlüssel die Signatur erzeugt hat. Eine Signatur ist deshalb nur so sicher wie der verwendete Hash. Wenn für den Hashwert eine Kollision erzeugt werden kann, rettet einen der längste Schlüssel nicht. SHA-1 aktuelle Standardeinstellung ist derzeit sicher das gilt nur für Urbildangriffe, aber nicht mehr für Kollisionsangriffe; also mit SHA-1 nur selbsterzeugte oder in einem inhaltlich irrelevanten Detail veränderte Daten signieren und funktioniert mit der Smartcard.

Die Hash-Auswahl kann man mit der Option personal-digest-preferences steuern. Man kann Daten und Signatur in dieselbe Datei schreiben. Das passiert bei Verwendung der Kommandos --sign. Wenn man auf diese Weise mehrere Dateien signiert, dann kann man die Signatur auch nur über alle Dateien gleichzeitig und in derselben Reihenfolge prüfen! Erzeugen einer signierten Datei test. Erzeugen einer Datei test.

Erzeugen einer gemeinsamen Signaturdatei test. Überprüfung scheitert, wenn nicht beide angegeben werden:. Abgetrennte Signaturen lassen sich dagegen immer problemlos verwenden. Auf diese Weise kann man beispielsweise Webseiten signieren. Mit dem Ergebnis von --sign und --clearsign kann ein Browser nichts anfangen, aber man kann eine angetrennte Signatur erzeugen und verlinken.

Man speichert dann die Webseite als z. Wenn man die Signatur prüfen will, muss man die gesamten Daten auspacken. Das Ergebnis kann normal mit einem Editor gelesen werden. Ein "Kompromiss" aus beidem ist die Option --armor. Damit kann man als Mensch zwar nichts anfangen, aber man kann die Daten dann problemlos in Textmedien unterbringen z. Dann sieht alles so aus wie die Signatur im folgenden clearsign-Beispiel:.

Dasselbe gilt für --recipient und encrypt-to. Die clearsign-Variante hat allerdings ein Problem, das die normale Variante nicht hat: Die Signatur bezieht sich technisch nicht auf einen Text, sondern auf eine Bytefolge.

Die Bytedarstellung von Text ist allerdings nicht eindeutig, sondern hängt von Zeichensatz und Codierung ab. Das ist deshalb problematisch, weil der verwendete Zeichensatz nicht in der Signatur vermerkt wird. Dadurch kann es passieren, dass eine Signatur ungültig wird, weil unbemerkt eine Konvertierung vorgenommen wurde oder bei E-Mail auf dem Transportweg das Encoding verändert wurde. Bei denen erstellt man einfach den zu signierenden oder zu verschlüsselnden Text und ruft dann die entsprechende Funktion auf.

Man erhält dann das Ergebnis im Editorfenster. Kleopatra bietet die Funktion über den Umweg der Bearbeitung der Zwischenanlage. Man kann Daten gleichzeitig d. Dafür werden einfach die entsprechenden Kommandos --encrypt , --symmetric und --sign kombiniert. Die Verwendung von --clearsign oder --detach-sign ist in dieser Variante allerdings nicht möglich. Bei dieser Kombination wird immer zuerst die Signatur erzeugt und dann der signierte Datenblock verschlüsselt.

Siehe den Abschnitt Reihenfolge von Verschlüsselung und Signatur. Man kann für eine Datei Signaturen mehrerer Schlüssel erzeugen und gemeinsam abspeichern.

Das kann man einerseits erreichen, indem --local-user mehrfach angegeben wird, und andererseits, indem mehrere Signaturdateien zusammenkopiert werden das funktioniert sowohl bei Textsignaturen als auch bei binären.

Prinzipiell kann man Daten sowohl erst signieren und dann verschlüsseln als auch erst verschlüsseln und dann signieren. Auf diese Weise wird nicht enthüllt, wer die Daten signiert hat. Das mag in speziellen Fällen relevant sein. Für zentrale Virenscanner ist es dagegen ein Alptraum. Wenn man verschlüsselte Daten signieren möchte, muss man gpg zweimal aufrufen, erst für die Verschlüsselung die natürlich selber auch eine Signatur enthalten kann und dann zur Signierung der verschlüsselten Datei.

Das wird in diesem Fall ausgenutzt. Für die Signatur ist unerheblich, dass die signierten Daten Ciphertext verschlüsselt sind, denn sie werden nicht inhaltlich bearbeitet. Eine digitale Signatur ist zunächst mal nur ein technischer Wert, dessen eindeutiger Aussagegehalt sich darauf beschränkt, dass der Signierende im Besitz des privaten Schlüssels und der signierten Daten ganz genau: Man kann zweierlei tun, um dem Prüfer einer Signatur deren Interpretation zu erleichtern: Man kann die Information in eine zweite Datei packen und dann die Daten und diese Hilfsdatei gemeinsam signieren die können dann auch nur gemeinsam geprüft werden, siehe die Signaturbeispiele oben.

Die andere Möglichkeit, die sich vor allem für allgemein gültige Hinweise wie bei der Zertifizierung von Schlüsseln eignet, ist ein Online- Dokument, auf dessen URL von der Signatur aus verwiesen wird. Sinnvoll ist das natürlich nur, wenn das Dokument selber signiert ist. Bei Webseiten kann man das mit einem Link auf die abgretrennte Signatur --detach-sign der Datei realisieren.

Die kann man sich, wenn alle Signaturen so einen Hinweis erhalten sollen, in die Konfigurationsdatei schreiben. Wenn man dieselbe URL für Schlüsselzertifizierungen und Datensignaturen verwendet, kann man statt --cert-policy-url und --sig-policy-url auch --set-policy-url verwenden.

Dies geht mit der Option --ask-sig-expire. Die gewünschte Gültigkeitsdauer wird dann von gpg abgefragt. Man kann über die Option --sig-notation quasi beliebige Zusatzinformationen in einer Signatur unterbringen.

Da ich dies bisher nicht gemacht habe, kann ich das nur der Vollständigkeit halber als Hinweis erwähnen, ohne darauf weiter einzugehen.

Haben die signierten Daten den Hashwert , der in der Signatur verwendet wurde? Ist die Unterschrift in der Signatur korrekt? Dies kann nur mit Hilfe des zugehörigen öffentlichen Schlüssels überprüft werden. Steht der nicht zur Verfügung, ist eine Signaturprüfung unmöglich. Ist der signierende Schlüssel noch gültig? Ein Schlüssel kann ein Verfallsdatum haben und unabhängig davon zurückgezogen werden revoke.

Wird dem Schlüssel vertraut? Eine korrekte Signatur eines nicht vertrauenswürdigen Schlüssels ist selbstverständlich ebenfalls nicht vertrauenswürdig! Eine korrekte Signatur eines nicht verifizierten Schlüssels sollte man im allgemeinen als wertlos betrachten. Wenn der Name der abgetrennten Signaturdatei der der signierten Datei plus eine der Standardendungen.

Wenn eine Signatur über mehrere Dateien gleichzeitig gebildet wurde, müssen diese Dateien in derselben Reihenfolge wie beim Signieren angegeben werden:. Bei abgelaufenen Schlüsseln oder Signaturen gibt es keinen Fehler, sondern eine Warnung. Das ist aber applikationsspezifisch die vorige Aussage bezieht sich auf gpg ; es gibt leider durchaus Programme, die bei der Handhabung dieser Umstände versagen. Es liegt in der Natur von kryptografischen Hashwerten, dass es unmöglich ist zu sagen, ob es sich um eine komplett falsche Datei handelt oder z.

Damit überprüft werden kann, ob eine Signatur korrekt ist, wird der öffentliche Schlüssel benötigt:. Wie die diese Meldung loswerden, steht im Abschnitt über Schlüsselbeglaubigung. Mit --status-fd und --status-file kann man sich detailliert ansehen, was gpg so macht:.

Wenn gpg-agent vor gpg gestartet wird, kann man ihm zum Cachen der Passphrase nutzen Dauer konfigurierbar. Wenn kein Dämon läuft, wird der Prozess von gpg gestartet, aber nach der Aktion automatisch beendet, so dass man dies normalerweise nicht einmal mitbekommt und natürlich auch kein Cachen hat. Das hat zwar auch Nachteile, aber die folgenden Vorteile:. Da der Serverprozess die ganze Zeit läuft anders als gpg oder die Programme, die gpg-Funktionen nutzen , kann er die Passphrasen cachen das ist konfigurierbar.

Er kann, wiederum weil er die ganze Zeit läuft, ssh-agent ersetzen und die Anbindung an GnuPG-Smartcards bereitstellen. Durch die Begrenzung des Funktionsumfangs der einzelnen Programme und die Verwendung einer Schnittstelle wird die Sicherheitsanalyse Audit der Programme einfacher. Die wichtigsten Aktionen, die gpg über das Assuan-Protokoll an gpg-agent auslagert:. Unter Linux sollte gpg-agent aus den Startdateien beim Login gestartet werden.

Die Kommunikation mit den Clients wird dabei durch exportierte Umgebungsvariablen ermöglicht siehe Doku von gpg-agent. Zu Testzwecken ist es aber möglich, mehrere Instanzen von gpg-agent zu starten.

Es ist dann sicherzustellen, dass die nicht versuchen, denselben Socket zu erzeugen --no-use-standard-socket. Schlüssel ziehen genauso wie Passwörter ihren Wert daraus, dass sie den bösen Jungs nicht bekannt sind.

Dafür, dass sich das nicht ändert, sollte man sorgen. Für alle relevanten Betriebssysteme und Internet-Anwendungen werden ständig Sicherheitslücken gefunden und gestopft. Man kann nie sicher sein, dass ein normaler Rechner nicht gerade von Schadsoftware kompromittiert ist.

Schadsoftware hat unter normalen Umständen alle Rechte des Benutzers, sie kann also alle Dateien lesen, auf die der Benutzer Zugriff hat. Spätestens wenn es dieser Schadsoftware gelingt, durch Ausnutzen von Sicherheitslücken in privilegierter Software Kernel, grafische Oberfläche, Systemdämonen höhere Rechte zu erlangen, dann kann sie im Regelfall auch Tastatureingaben mitlesen.

Es kann also jederzeit passieren, dass der eigene Schlüssel samt Passphrase in die Hände eines Angreifers gelangt. Auch wenn Schlüssel kompromittiert werden können, sind sie nützlich, denn meistens sind sie nicht kompromittiert. Gehen wir einfach mal davon aus. Sicherheit schafft man dadurch, dass man den Schutz der Schlüssel ihrer Bedeutung anpasst.

Schlüssel, die triviale Absenderfälschungen bei E-Mails verhindern sollen als Spamschutz , muss man nicht aufwendig schützen. Auch schlecht geschützte Schlüssel stellen für viele Störenfriede eine quasi unüberwindliche Hürde dar. Wirklich wichtige Aktionen sind normalerweise selten; deshalb kann man ihren Aufwand erhöhen und dadurch den Schutz verbessern.

Das mag die Signierung wichtiger Verträge oder die Zertifizierung eines Schlüssels eines eigenen Unterschlüssels oder des Hauptschlüssels von jemand anderem sein. Dafür kann man dann ein sicheres System booten etwa Knoppix ohne Hardware für einen Internetzugang, also Netzwerkkabel raus und nur auf diesem den wertvollen Schlüssel verwenden.

Den eigenen Schlüssel zu schützen ist nicht das einzige Problem. Wie kann das passieren, ohne dass einem der Schlüssel geklaut wird? Wenn man eine Smartcard verwendet, kommt der Angreifer zwar nicht an den Schlüssel selber heran, aber er kann ihn benutzen, wenn er die Kontrolle über den Rechner hat. Für Signaturen kann man dies unterbinden. Man hat eine Datei, etwa ein Office-Dokument. Man will wissen, was man signiert und öffnet die Datei deshalb mit der Office-Software. Wenn der Rechner kompromittiert ist was auch erst durch das Öffnen der Datei passieren kann!

Für Angriffe auf einzelne Opfer kann man Virenscanner leicht überwinden. Ein cleverer Angreifer würde dann noch die Schaddatei gegen eine harmlose mit dem gewünschten Inhalt austauschen, so dass man jedenfalls mit der erzeugten Signatur nicht einmal nachweisen kann, dass einem eine manipulierte Datei vorgelegt wurde. Auch gegen so etwas kann man sich schützen: Erst signieren, Signatur vom Rechner entfernen, dann erst die Datei öffnen.

Und dann noch mal von der DVD booten und ein anderes Programm zur Anzeige verwenden rettet einen nicht, wenn beide Programme den angegriffenen Code gemeinsam nutzen, etwa beim Umgang mit Bildern. Und dann auf sichere Weise die Signatur zerstören, wenn einem der angezeigte Dateiinhalt nicht gefällt. Dies mag an den Haaren herbeigezogen erscheinen. Auf einem kompromittierten System muss der Angreifer sich nicht mal die Mühe machen, die komplizierte Office-Software zu manipulieren. Es reicht, dass er andere Daten an die Smartcard schickt, als angezeigt werden.

Beim Onlinebanking gibt es als Schutz davor Kartenleser mit Display. Das funktioniert aber nur deshalb, weil sich der Inhalt von Kontotransaktionen mit wenig Text komplett darstellen lässt. Das ist nicht einmal bei längeren Textdateien praktikabel. Die einzelnen Teile eines Schlüssels sind zudem nicht gleich wichtig.

Wenn andere den eigenen Schlüssel verifizieren Fingerprintvergleich , bezieht sich das nur auf den Hauptschlüssel. Der Offline-Hauptschlüssel wird im Alltag nicht für Signaturen oder Entschlüsselung genutzt; das machen die Unterschlüssel. Wenn es sich um einen normalen Schlüssel handelt, dann werden die Unterschlüssel zwangsläufig in vergleichsweise unsicheren Umgebungen eingesetzt.

Der Offline-Hauptschlüssel kann deswegen ein sehr viel höheres Sicherheitsniveau haben. Das bringt natürlich nur dann etwas, wenn die Kommunikationspartner das auch wissen und begreifen also Haupt- von Unterschlüsselsignaturen unterscheiden können ; die Vereinfachung, nur einen Schlüssel zu benötigen, geht mit einem gewissen Potential an Verwirrung einher, was bei sicherheitsrelevanter Software immer heikel ist. Auf jeden Fall sinnvoll bei einem Schlüssel für normale Arbeitsumgebungen ist ein Offline-Hauptschlüssel mit Signaturfähigkeit.

Der kann dann nämlich verwendet werden, um die Richtlinien für den Schlüssel zu signieren so dass diese sensible Information nicht durch das geringe Sicherheitsniveau der Unterschlüssel kompromittiert wird ; und an dieser Stelle kann man die Problematik und die technischen Aspekte erklären.

Bei Schlüsseln, die generell nur in einer Hochsicherheitsumgebung eingesetzt werden, bringt eine Differenzierung zwischen Haupt- und Unterschlüssel nichts. Dementsprechend ist in dem Fall nicht wichtig, welche Fähigkeiten der Hauptschlüssel hat.

Man kann ihn dann aufs Zertifizieren beschränken. Aus diesem Umstand empfehle ich jedem dringend, die Hauptschlüssel nicht in derselben Weise wie die Unterschlüssel zu speichern. Das kann, muss aber nicht eine externe Speicherung USB-Stick sein; eine sicher verschlüsselte Datei auf einem unsicheren Speichermedium tut es auch. Auf diese Weise kann man den eigenen Zertifizierungen ein viel höheres Sicherheitsniveau ermöglichen als den eigenen Unterschlüsseln.

Insbesondere sollte das Web of Trust idealerweise nur Zertifizierungen von sicheren Hauptschlüsseln verwenden Die Erklärung der einzelnen Schritte folgt am Ende des Codeblocks. Normalerweise sollte man nicht mehr die folgende Anleitung zur Erzeugung von Offline-Hauptschlüsseln nutzen, sondern diese Scriptsammlung. Wichtig ist das sec. Es steht kein dahinter; das bedeutet, dass der geheime Schlüssel wirklich verfügbar ist.

Alle geheimen Schlüssel Hauptschlüssel und Unterschlüssel in eine Datei exportieren. Es sei denn, der Schlüssel hat vor dem Export eine Passphrase bekommen, die unknackbar ist was natürlich auch für die Lagerung auf einem USB-Stick keine schlechte Idee ist. Nur die Unterschlüssel exportieren.

Alle geheimen Schlüssel also den des Hauptschlüssels und die der Unterschlüssel im normalen keyring löschen. Das sec zeigt an, dass der Hauptschlüssel nicht zur Verfügung steht. Wenn man einen Schlüssel generiert, setzt GnuPG den ownertrust dieses Schlüssels automatisch auf absolut ultimate , damit er automatisch als gültig betrachtet wird und auch alle Schlüssel, die von ihm beglaubigt werden, als gültig angesehen werden. Sollte dieser Schlüssel für spezielle Zwecke verwendet werden und deshalb eher unsicher sein, sollte man den Wert auf vollständiges Vertrauen herabsetzen.

Wenn man einen geheimen Schlüssel aber nur importiert, ändert sich der ownertrust nicht! Im Fall eines Offline-Hauptschlüssels muss man also nach dem Importieren den ownertrust selber auf absolut ultimate setzen mittels --edit-key trust oder --trusted-key.

Um Schlüssel zu signieren oder den eigenen Schlüssel zu verändern z. Das sollte aber nur von einem sicheren System DVD aus geschehen. Oftmals wird man den Offline-Hauptschlüssel mit einer fiesen Passphrase gesichert haben. Es bietet sich deshalb an, wenn man den Hauptschlüssel für mehrere Operationen genötigt, nach dem Import in einem sicheren System mittels gpg --edit-key 0xeccb passwd die Passphrase auf etwas Gut-Handhabbares zu ändern; sonst ist man schnell genervt.

Es wurde schon mehrfach angesprochen, dass bestimmte Operationen nur innerhalb eines sicheren Systems stattfinden sollen. Aber was ist das überhaupt, ein sicheres System? Diese Frage hat nicht speziell mit GnuPG zu tun, und man kann wahrscheinlich regelrecht eine Wissenschaft daraus machen. Klar dürfte sein, dass dies eine vertrauenswürdige Softwareinstallation erfordert, die zudem nur so lange als sicher angesehen werden kann, wie sie keinen Angriffsmöglichkeiten ausgesetzt ist.

Eine vertrauenswürdige Installation erfordert eine sichere oder überprüfbare Quelle. Allerdings kann man Windows aus diesen Quellen erst mal nur installieren, und für diesen Zweck wird wohl niemand eine Windows-Lizenz verbraten wollen.

Vermutlich ist es bei den meisten Distributionen alternativ möglich, die Installationsmedien dafür zu missbrauchen also ohne eigentliche Installation. Wenn man einen Rechner über hat, den man nicht für andere Zwecke benötigt z.

Für diesen Rechner gilt dasselbe wie für die Bootmedien: Sicher ist er nur, solange er physikalisch sicher ist, also niemand den Rechner manipulieren oder die Medien austauschen kann.

Man nutzt eine Download-Distribution, deren Integrität man prüfen kann. Möglich ist das z. Wegen des rekursiven Elements ersetzt diese Varianten die vorigen nicht komplett, aber es mag vorteilhaft sein, als Alternative zu den Herstellermedien auch ein verifiziertes Knoppix zu haben. Wenn das System dann erst mal läuft, ist es nur so lange sicher, bis man es mit potentiell schädlichen Daten in Kontakt bringt.

Das tut man z. Man kann mit allerlei Tricks dafür sorgen, dass es sehr schwierig für eine Schadsoftware wird, das ganze System andere Benutzeraccounts, Kernel in Mitleidenschaft zu ziehen, aber das ist anspruchsvoll und kann hier nicht erklärt werden.

Smartcards sind ein weitgehend sicherer Schutz für Schlüssel. Eine Smartcard ist ein kleiner Computer. Man schreibt den Schlüssel rein, aber sie rückt ihn nicht mehr heraus.

Man kann den Schlüssel nur noch über die Smartcard verwenden. Entsprechend sicher sowohl im Sinne von Verfügbarkeit als auch im Sinne von Schutz sollte man das Backup des Schlüssels verwahren, sofern man eins gemacht hat ansonsten hat man bei einem Defekt der Smartcard verloren.

Wenn man an die Schlüssel heranwill, muss man die Smartcard mit einer Art Elektronenmikroskop zerlegen. Das kostet angeblich einen siebenstelligen Betrag. Smartcards schützen die Schlüssel vor unbefugter Verwendung dadurch, dass man nach jedem "Einschalten" der Smartcard auch konfigurierbar: Nach drei Fehlversuchen für diese sperrt sich die Karte und kann nur durch einen Reset auf ihre Standardwerte also ein Löschen der Schlüssel wieder verwendet werden. Smardcards erlauben den schmerzarmen Einsatz von Schlüsseln in unsicheren Umgebungen.

Allerdings muss man sich darüber im Klaren sein, dass nur der Schlüssel selber geschützt wird; sein Missbrauch wird nicht allein durch die Verwendung einer Smartcard unterbunden. Sobald die Smartcard einmal verwendet wurde, kann ein beliebiges Programm, das mit denselben Rechten also normalen Benutzerrechten läuft, beliebige Daten entschlüsseln und signieren lassen.

Man kann allerdings nach jeder Verwendung die Karte aus dem Kartenleser ziehen. Das ist aber auch kein sicherer Schutz vor Missbrauch, dafür ist das nicht schnell genug möglich. Er kann neue Unterschlüssel erzeugen deren privaten Teil er dann kennt und bestehende Zurückziehen revoke.

Damit man eine Smartcard verwenden kann, muss gpg Lese- und Schreibrecht für den Kartenleser haben das erreicht man per udev. Eine neue Karte muss erst mal mit einem Schlüssel versehen werden. Man kann sowohl einen bestehenden privaten Schlüssel auf eine Smartcard kopieren als auch einen neuen Schlüssel auf der Smartcard generieren lassen nur bei dieser Gelegenheit ist es möglich, den Schlüssel von der Karte auszulesen, um ein Backup anzulegen.

Beides erfolgt über das Kommando --edit-key. Kaufen kann man sie hier ein dazu passendes Lesegerät. Die technischen Probleme beim Schutz von Schlüsseln wurden schon erwähnt. In der Praxis mindestens gleichbedeutend ist aber das Verständnisproblem. Man kann Schlüssel zertifizieren und Daten signieren und verschlüsseln. Aber das ist ja nur Technik. Wenn man mit verschlüsselten oder signierten Daten konfrontiert wird, hat man demgegenüber irgendeine Haltung.

Auch wenn man selber Daten verschlüsselt oder signiert, verbindet man damit eine Änderung der Haltung ihnen gegenüber. Man muss an dieser Stelle sehr aufpassen, keine falschen Schlüsse zu ziehen. Eine Signatur bedeutet erst mal nur, dass jemand Zugriff auf den zugehörigen geheimen Schlüssel hatte und sich entschieden hat, ihn zu benutzen, sowie dass die signierten Daten nicht verändert wurden. Wie sicher verwahrt der Besitzer seinen Schlüssel?

Wie sicher ist die Umgebung, in der er ihn einsetzt? Es hat wenig Sinn, die eigenen Gewohnheiten auf andere zu übertragen, denn es gibt keinen allgemeinen Konsens über den Einsatz von Schlüsseln. Es gibt Leute wie den Autor dieses Textes , die fast alles signieren, was sie so verfassen und verschicken.

Das Argument ist, dass damit eine Allerwelts-E-Mail eine Bedeutung bekomme, die sie typischerweise nicht habe. Diese Fraktion signiert nur solche Dokumente, deren Bedeutung dadurch herausgehoben werden soll, und das auch nur nach entsprechend sorgfältiger Prüfung.

Wenn man sich dieses Problems bewusst ist, kommt man zum nächsten: Woher soll man wissen, in welche Gruppe jemand fällt?

In engem Zusammenhang mit dem Einsatzzweck eines Schlüssels steht seine Sicherheit. Wenn ich alle meine E-Mails signiere, dann muss ich den Schlüssel auf dem System verfügbar oder jedenfalls von diesem System aus zugänglich haben, auf dem ich Mails schreibe. Das ist üblicherweise das System, auf dem man Mails liest. Das stellt eine relevante obere Grenze für die Sicherheit dar.

Selbst die Verwendung einer Smartcard rettet einen dabei nicht, weil die nur verhindert, dass einem der Schlüssel geklaut wird, nicht aber, dass man andere Daten signiert, als man signieren möchte. Das kann einem allerdings immer noch auffallen, wenn man den nötigen Aufwand treibt.

Wenn man Signaturen erzeugen will, die wirklich verlässlich sein sollen, dann sollte man sich mehrere Schlüssel zulegen, damit man einen auf die Erzeugung verlässlicher Signaturen beschränken und entsprechend besser schützen kann. Wie schützt man einen Schlüssel oder besser, weiter gehend: Man schützt ihn mit einer guten Passphrase und vielen Iterationen, siehe -s2k-count.

Also etwa einem von DVD gebooteten System. Dieses Spiel kann man immer weiter treiben: Woher bekommt man ein sicheres Bootmedium? Kann man der Hardware vertrauen?

Wir signieren vom Verständnis her nicht in erster Linie eine Datei. Was interessiert uns eine Datei? Wir signieren das, was uns am Bildschirm angezeigt oder ausgedruckt wird; also das, was wir für den Inhalt der Datei halten.

Wenn das System, auf dem die Datei angezeigt wird, kompromittiert ist, haben wir keine Kontrolle darüber, was wir signieren. Selbst ohne Softwareangriffe kann es zu Problemen kommen. Komplexe Dokumente können auf unterschiedliche Art angezeigt werden. Notizen in einer Textverarbeitung werden nicht angezeigt oder nicht beachtet. Makros sind womöglich deaktiviert, verändern aber den Inhalt. Browser stellen komplizierte Webseiten unterschiedlich dar, binden in der Anzeige womöglich externe Inhalte ein die nicht signiert werden, sondern nur der Verweis auf sie.

Wenn es um komplexe Dokumente geht also um solche, die man sich nicht nur mit einem Editor in der Konsole anschaut , dann erzeugt man als erstes die Signatur, speichert die aber nicht in dem System, sondern auf einem Medium, das man dann von dem System trennt; etwa einem USB-Stick. Diese Signatur kann man für den Fall der Fälle natürlich auch verschlüsseln. Diese Sichtung führt man dann am besten mit unterschiedlicher Software auf unterschiedlichen Systemen durch.

Natürlich immer nur nach dem Booten von einem sicheren Medium Möglich ist auch, den Inhalt des Dokuments in ein zweites, nach Möglichkeit technisch einfacheres Dokument zu kopieren also etwa in eine Textdatei und nur beides zusammen zu signieren, damit man auf die sichere Variante verweisen kann.

Was der Empfänger davon hält, ist natürlich eine andere Frage. Grundsätzlich erscheint es sinnvoll, bedeutsame Dokumente, die signiert werden sollen, in einem einfachen Format zu erstellen z. Schlüsselrichtlinien können sehr unterschiedlich umfangreich sein.

Eine reduzierte ist besser als gar keine. Man sollte deshalb idealerweise schon vor der Schlüsselerzeugung, das macht es für einen selber einfacher, die Richtlinie durchzuhalten folgendes aufschreiben:. Wofür dient dieser Schlüssel und wofür nicht? Für welche Aktionen mit diesem Schlüssel ist man bereit, die Haftung zu übernehmen? Werden das eine Extrem mit einem Schlüssel, der auf einem von jemand anderen kontrollierten Rechner z. Webmailserver gespeichert ist, Allerwelts-E-Mails unterschrieben oder das andere Extrem z.

Verträge oder wichtige Schlüssel CA-Signaturschlüssel? Werden auch die Unterschlüssel nur auf einem sicheren System verwendet extreme Variante, etwa für die Unterzeichnung bedeutender Verträge? Befinden sich Haupt- bzw. Unterschlüssel auf einer Smartcard? Welche Art Dokument wird mit diesem Schlüssel signiert? Wenn es sich nicht um ein sicheres System handelt, auf dem der Schlüssel gespeichert und eingesetzt wird, wie ist die Sicherheit des Systems einzuschätzen?

Administriert man es selber, wird es von anderen mitgenutzt, nutzt man es nur für spezielle Zwecke, oder ist es angreifbar, weil man damit surft, chattet, E-Mails liest, komplexe Dokumente öffnet?

Wie sicher sind der Speicherort bzw. Zehn davon auf einem Zettel, den man immer am Körper trägt, die anderen zehn unauffällig in einem von dicken Büchern im Regal. Die Eingabe der Passphrase kann selbstverständlich nicht z. Wer Paranoia findet, darf sie behalten. Wird die Richtlinie nie verändert, sondern nur ggf. Verweist man auf frühere Versionen und eventuelle zusätzliche Signaturen von Dritten für diese Versionen? Man kann darauf hinweisen, dass man niemals in einer neueren Version der Richtlinie ein höheres Sicherheitsniveau behaupten wird.

Wenn man den Schlüssel sicherer verwendet oder lagert als früher und das in die Richtlinie übernimmt, muss man darauf hinweisen, dass das nicht immer so war. Signiert man die Richtlinie immer nur oder auch mit dem Hauptschlüssel, weil der sicherer ist als die Unterschlüssel? Unterschiede für die Zertifizierungslevel --ask-cert-level 2 und 3 ; wenn man vorbildlicherweise signature notations --set-notation verwendet, um präzisere Informationen über die Art der Überprüfung z.

Personalausweis; seit langem persönlich bekannt oder die Sicherheit des zertifizierten Schlüssels nach Aussage des Besitzers, denn überprüfen kann man das typischerweise nicht zur Verfügung zu stellen, muss man die sinnvollerweise hier definieren.

Es bringt nichts, diese Datei selber insgesamt mit begrenzter Gültigkeit zu signieren: Die Signaturen Dritter sind für den Fall, dass der eigene Schlüssel kompromittiert wurde. Und dann sind die eigenen Signaturen eh nichts mehr wert. Man sollte eine Richtlinie möglichst selten ändern, wenn man Signaturen von Dritten hat, weil man die für jede neue Version erneut beschaffen muss, wenn man Dritten nicht den Abgleich unterschiedlicher Versionen zumuten will.

Links auf die alten Versionen des Dokuments insbesondere dann, wenn dies mehr oder andere Signaturen von Dritten hat. Links auf die Richtlinien anderer Schlüssel, die man verwendet. Um bei neuen Schlüsseln nicht das Dokument ändern zu müssen, ist es sinnvoll, auf ein anderes Dokument zu verweisen, das ggf.

Und zu guter letzt ist es natürlich nett, wenn man anderen die Übernahme der eigenen Schlüsselrichtlinie gestattet, indem man sie unter eine entsprechende Lizenz stellt z. Diese Richtlinie veröffentlicht man dann im Internet.

Das hat natürlich nur dann einen Wert, wenn man sie auch signiert. Auf keinen Fall sollte man die Richtlinie "unbemerkt" ändern. Wenn man anders verfahren will als bisher, sollte man, anstatt die Richtlinie zu ändern, eine neue Richtlinie erstellen, darin die alte referenzieren, ggf.

Dabei sollte man bedenken, dass sich die Sicherheit eines Schlüssels im Zeitablauf nur verringern kann und dass die Sicherheit des Schlüssels und der Verifizierungsaufwand in einem gesunden Verhältnis stehen sollten.

Es bringt wenig, besonders gut zu prüfen, wenn man nur mit einem eher unsicheren Schlüssel zertifiziert. Woher kennt man die Richtlinie eines Schlüssels? Das Dokument behauptet, dass der Schlüssel hochsicher sei, und diese Behauptung wird nun mit der Signatur des Schlüssels abgesichert, der üblicherweise nur so sicher ist, wie das Dokument behauptet?

Wie soll man dieses Problem lösen? Dadurch, dass die Richtlinie immer zusammen mit dem Schlüssel signiert wird. Man lässt sich nicht nur den Fingerprint des Schlüssels bestätigen, sondern auch den des Richtliniendokuments z. Wenn man einen Schlüssel über das web-of-trust verifiziert und ihm mehr als ein minimales Sicherheitsniveau attestieren will, sollte man idealerweise von allen für die Verifizierung dieses Schlüssels benötigten Schlüsseln eine Signatur für die Richtlinie dieses Schlüssels haben.

Das ist allerdings gegenwärtig Wunschdenken; kaum jemand hat eine Schlüsselrichtlinie, ganz zu schweigen von Drittsignaturen dafür. Die Drittsignaturen für die Richtlinie wären nicht erforderlich, wenn sie von einem Offline-Hauptschlüssel signiert ist. Die Frage ist dann natürlich: Woher soll man sicher wissen, dass es sich um einen Offline-Hauptschlüssel handelt?

Der Haupteinwand scheint zu sein, dass sich ja auch heute schon niemand um die saubere Verifizierung von Schlüsseln und Signaturen kümmere, deshalb sei es schlecht investierter Aufwand, diesen Teil zu verbessern.

Wie schmerzfrei das ist, hängt sehr davon ab, welches Mailprogramm man verwendet. Webmail kann man dafür mehr oder weniger vergessen. Aber der ist ja in Open-Source-Software implementiert, damit kommt Microsoft halt nicht klar. Hier gibt es Infos zu Thunderbird. Das Hauptproblem ist, dass Outlook nicht einmal normale Textmails korrekt anzeigt, wenn sie signiert sind.

Outlook hält dann den Text für ein Attachment. Und zeigt die eigentliche Signatur natürlich als zweites Attachment, was den normalen Empfänger verwirrt. Möglich, aber für beide Seiten unkomfortabel. Security is a process, not a product. Da Suchmaschinen häufig mit Fehlermeldungen gefüttert werden die folgenden können Meldungen von gpg oder darauf aufsetzenden oder ähnlichen Programmen sein: Siehe hier die Gültigkeit der Signatur kann nicht überprüft werden Es gibt ein paar Voraussetzungen dafür, dass die Gültigkeit einer Signatur geprüft werden kann.

Siehe hier Die folgenden Signaturen konnten nicht überprüft werden, weil ihr öffentlicher Schlüssel nicht verfügbar ist Signatur kann nicht geprüft werden: Kein öffentlicher Schlüssel Spezielle Varianten der vorigen Meldung. Siehe hier und zur Lösung hier Sie benötigen eine Passphrase, um den geheimen Schlüssel zu entsprerren Sie versuchen eine Aktion durchzuführen, für die ein geheimer Schlüssel benötigt wird z.

Ein asymmetrischer Schlüssel muss sehr viel länger sein als ein symmetrischer, um dieselbe Sicherheit zu bieten: Änderung der Gültigkeit des Hauptschlüssels: Bitte wählen Sie, wie lange der Schlüssel gültig bleiben soll.

Direkte Eingabe des Zieldatums im --edit-key -Menü: Wenn man die Prüfung mit gpg direkt durchführt, sieht man wenigstens, was los ist: Signatur vom Fr 23 Jul Die Kryptographie teilt sich grob in die drei Aufgabenbereiche der Geheimhaltung, Integrität und Authentizität auf, wobei sich letztere mit der Übertragungs- und Fälschungssicherheit beschäftigen. Im arabischen Raum erscheint das erste Buch über Kryptologie.

Auf Wusch Clemens des 7. Dieser Nomenklatur-Code wurde wegen seiner Einfachheit in den nächsten Jahren vor allem in diplomatischen Kreisen verwendet.

Albertis zahlreiche kryptologischen Leistungen beruhen auf der Tatsache, das er Sekretär jener Behörde war, die sich an der römischen Kurie päpstlicher Hof mit Geheimschriften befasste. Im deutschsprachigen Raum erscheint das erste gedruckte Buch über Kryptologie. Der Verfasser ist Johannes Trithemius.

SeineVerschlüsselungsmethode, die später nach ihm als Vigenère-Code benannt wurde, wird so der Öffentlichkeit zugänglich gemacht. Dieser Code ist der bekannteste unter allen polyalphabetischen Algorithmen. Antione Rissignol wird der erste vollzeitlich angestellte Kryptoanalytiker, nachdem seine Entschlüsselung einer feindlichen chiffrierten Botschaft die Belagerung Realmonts durch die Hugenotten beendete. Seitdem sind Kryptoanalytiker ein fester Bestandteil des militärischen Apparats.

Somit wurde der Chiffrierzylinder parallel zu Jeffersons unbekannter Erfindung an unterschiedlichen Orten nochmals erfunden:. Friedrich Kasiski und William F. Friedmann entwickeln statistische Methoden zur Kryptoanalyse. Mit diesem Verfahren konnte auch der bis dahin unlösbare Vigenère-Code geknackt werden.

Es gilt als Meilenstein in der Kryptographie der Telegraphenzeit. Der Amerikaner Gilbert S. Vorstellung der vom dt. Scherbius seine Enigma in alle Welt. Decodierung der japanischen Angriffsmeldung für den 2. Weltkrieg ein Jahr Krieg erspart hat. Es ist das erste praktisch einsetzbare Public-Key-Verfahren und es gilt als innovativster Beitrag der kryptologischen Forschung unseres Jahrhunderts. Er schrieb unter anderem ein Buch zu Volapürük, einer künstlichen, Esperanto-ähnlichen Sprache.

Er galt als einer der bedeutensten Kryptographen der Telegraphenzeit und unterschied zwischen taktischen und strategischen Zielen der Geheimhaltung, also dem zeitweiligen Schutz und den zeitlosen Schutz der Nachricht und attackierte die bis dahin bei den Kryptologen gültige Formel. Der amerikanische Mathematiker Claude Shannon, geboren gilt als der Vater der Informationstheorie. Unter anderem beschäftigte er sich auch mit künstlicher Intelligenz, sowie mit künstlichen Schachautomaten.

Wenn man eine Chiffre mit nicht wiederverwendbaren Schlüssel zu Hilfe nimmt, so entspricht die Aufeinanderfolge der Buchstaben oder Ziffern, die das Kryptogramm zusammensetzen einer reinen Zufallsfolge Bsp: Wenn man eine Chiffre mit nicht wiederverwendbaren Schlüssel nimmt, so ergibt das Fehlen eines Schlüssels keinerlei Information über den Inhalt der Klartextbotschaft.

Bei einem vollkommenen Chiffrierverfahren kann der Schlüssel nicht kürzer sein als der Klartext Ein nicht wiederverwendbarer Schlüssel entspricht einer irrationalen Zahl. Das theoretisch perfekte Kryptosystem ist, wenn man die Aussagen von Kerckhoffs und Shannon zusammen nimmt, ein System, was:. Leider sind nicht alle Prinzipien unter einen Hut zu bringen, wenn es um praktikabele Lösungen geht.

Doch wenn man nochmal Kerckhoffs zu Rate zieht, dann gilt:. Wenn es praktisch sicher ist, bis die Information, die geheimgehalten werden sollte, durch die Zeit wertlos geworden ist, dann hat das Chiffriersystem seinen Zweck erfüllt. Diese Symbole können Sonderzeichen, Buchstaben oder Zahlen sein.

Man unterscheidet monoalphabetische Chiffren, bei denen der gesamte Text mit einer festen Zuordnungstabelle verschlüsselt wird und polyalphabetische Chiffren, die mehrere Zuordnungstabellen im Wechsel verwenden. Im folgenden werden verschiedene praktisch verwendete monoalphabetische Chiffren erläutert. Der Vigère-Code als Repräsentant für polyalphabetische Chiffren wird weiter unten dargestellt.

Eines der bekanntesten klassischen Verschlüsselungsverfahren wurde nach Cäsar benannt. Dieser benutze es für den Briefwechsel mit seinen Statthaltern, Generälen und Konsuln. Die Nachricht wird verschlüsselt indem man jeweils eine bestimmte Anzahl von Buchstaben im Alphabet weitergeht.

Ein sehr altes Verfahren ist das um v. Beim Transpositionsverfahren werden die Zeichen des Klartextes nicht durch andere ersetzt, sondern lediglich in der Reihenfolge vertauscht. Als Grundlage dient eine Matrix in die das zu chiffrierende Wort zeilenweise eingetragen wird.

Die Anzahl der Spalten ist der geheime Schlüssel. Das Chiffre wird durch spaltenweises Auslesen der Matrix gebildet. Das noch im Jahr vom deutschen Heer eingesetzten Drehraster basiert auf diesem Verfahren. Alternativ dazu kann man die Matrix auch nach einer vorgegebenen Permutation spaltenweise auslesen. Wird der durch einfache Spalten-Transposition gewonnene Chiffre erneut in die Matrix eingeschrieben und nochmals ausgelesen, erhöht man die Sicherheit des Chiffres.

Bei dieser Abwandlung des Verfahrens wird nicht nur das Auslesen, sondern auch das Einschreiben in die Matrix permutiert. Mit der Kenntnis des Schlüssels, des verwendeten Algorithmus und der Länge des Geheimtextes kann die Matrix wiederhergestellt und rückwärts ausgelesen werden.

Dabei erhält man den Klartext zurück. Dabei versucht man, aus Zeichenhaufen sinnvolle Kombinationen Anagramme zu bilden. Eine weitere Hilfe ist das Aufstellen von Häufigkeitsstatistiken z.

Bigramme, Trigramme , wenn der Klartext einer natürlichen Sprache entstammt. Darunter versteht man die Anzahl der möglichen Vertauschungen, um aus einem Klartext einen Chiffre zu erzeugen. Je höher dieser Wert ist, desto sicherer ist das Verfahren.

Um die Sicherheit noch weiter zu erhöhen kann man eine bitweise Transposition verwenden, die Spaltenanzahl erhöhen , an vorher vereinbarten Stellen sinnlose Zeicher Blender einfügen oder den Klartext vorher komprimieren.

Eigentlich wurde das Verfahren aber von Charles Wheatstone erfunden. Diese Herren waren miteinander durch ihr gemeinsames Hobby verbunden - Kryptologie. Beide knackten chiffrierte Anzeigen in der TIMES, und deshalb schlug Wheatstone ein neues Verfahren vor, was aber erst durch Playfair veröffentlicht wurde, aber nicht ohne den wahren Erfinder zu nennen.

Die Playfair-Verschlüsselung wurde in diplomatischen Kreisen und vor allem beim Militär verwendet, zum Teil heute noch. In beiden Weltkriegen war dieser Algorithmus durch seine einfache Handhabung weit verbreitet. Der Algorithmus beruht auf der Verschlüsselung von Buchstabengruppen, nicht von einzelnen Zeichen, dadurch wird die Häufigkeit verschleiert. Der Klartext wird in Zweiergruppen zerlegt. Diese Zweiergruppen werden nun nach folgendem Schema chiffriert.

Liegen beide Buchstaben in einer Zeile der Matrix, werden jeweils die beiden Zeichen rechts davon als Chiffre notiert.

Liegen sie in ein und derselben Spalte werden jeweils die beiden Zeichen darunter notiert. Wenn die Buchstaben weder in der gleichen Zeile noch in der gleichen Spalte liegen notiert man die beiden Eckpunkte des gebildeten Rechtecks.

Im Playfair-Chiffre fallen häufig auftretende Buchstaben nicht mehr so auf, dafür treten die Bigramme mehr in den Vordergrund, deren Wahrscheinlichkeitsverteilung aber ausgeglichener ist. Bilder hat, seine 4 Nachbarn und das Zeichen unter ihm. Der Vorteil dieses Verfahrens ist es, dass mit einer Teilentschlüsselung noch nicht der gesamte Klartext erschlossen werden kann.

Die Vigenère-Verschlüsselung ist die bekannteste unter allen polyalphabetischen Chiffren. Sie wurde im Jahre von dem französischen Diplomaten Blaise de Vigenère bis der Öffentlichkeit zugänglich gemacht. Der Hauptgedanke dieser Methode ist, verschiedene monoalphabetische Chiffren im Wechsel zu benutzen.

Ohne Schlüsselwort kann man nicht sagen, welche Geheimtextzeichen den Klartextzeichen entsprechen. Dabei kann das Schlüsselwort jede beliebige Buchstabenfolge sein. Um diese Verschlüsselungsmethode zu demonstrieren nehmen wir ein Beispiel.

Wir wählen ein beliebiges Schlüsselwort, z. Das Schreiben des Geheimtextes ist wie folgt zu erklären: Der über einem bestimmten Klartextzeichen stehende Schlüsselwortbuchstabe und der direkt darunterliegende Klartextbuchstabe bestimmen anhand des Vigenère-Quadrates das Chiffre-Alphabet, mit dem der Klartextbuchstabe zu verschlüsseln ist. In gleicher Weise führen wir die Verschlüsselung weiter durch. Die Verschlüsselungsmethode von Vigenère wurde bereits in den frühen Jahren geknackt.

Der erste Angriff wurde von dem preussischen Infanteriemajor Friedrich Wilhelm Kasiski bis veröffentlicht. Obiges Beispiel zeigt die Funktionionsweise des Vigenère-Chiffres recht anschaulich. Im Zeitalter der Computer ist es jedoch möglich, ja sogar notwendig die Vorgehensweise zu algorithmieren und mathematisch auszudrücken.

Man kann dies leicht nachvollziehen, wenn man den Buchstaben des Alphabets Zahlen zuordnet: Da diese Gleichung drei Variablen besitzt kann man noch zwei andere Rechenoperationen ausführen. Diese Rechenoperationen sind analog zu obigem Beispiel auszuführen und stellen lediglich eine Abwandlung des Vigenère-Verfahrens dar. Im folgenden werden noch weitere Abwandlungen dieses Verfahrens dargestellt.

Dieses Verfahren benutzt nur 10 der 26 möglichen Schlüssel des Vignere-Verfahrens, also nur die Schlüsselalphabete A bis J, die in diesem Verfahren durch die Zahlen 0 bis 9 dargestellt werden. Damit kann man anstatt eines Schlüsselwortes eine Zahlenreihe verwenden. Dieses Verfahren ist aber wesentlich leichter zu knacken, da es für jeden Buchstaben nur 10 verschiedene Verschlüsselungsmöglichkeiten gibt. Ein Z im verschlüsselten Text kann somit z.

Damit ist die Leistungsfähigkeit des Verfahrens sehr eingeschränkt. Bei diesem Verfahren verwendet man als Schlüsselwort das gesamte Alphabet, d. X Y Z verschlüsselt. Damit ist zwar einem wichtigen Kriterium - der Schlüssellänge - Genüge getan, aber diesen Schlüssel geheimzuhalten bedeutet, das Verfahren geheimzuhalten.

Wenn das Verfahren bekannt wird ist die Verschlüsselung praktisch nutzlos. Dies ist immer dann der Fall, wenn der Abstand zwischen diesen Wörtern ein Vielfaches der Schlüsselwortlänge ist. Bei einem 5 Buchstaben langen Schlüsselwort würden also zwei gleiche Wörter im Abstand von 5, 10, 15, 20, Buchstaben gleich verschlüsselt werden.

Diese ermittelten Abstände sind ein Vielfaches der Schlüsselwortlänge. Ist die Verschiebung gleich oder ein Vielfaches der Schlüsselwortlänge tritt eine markant hohe Übereinstimmung auf. Beispiel mit Schlüssellänge Bei der Schlüssellänge 5 nimmt man also den 1. Diese einzelnen Gruppen kann man nun statistisch analysieren.

Man braucht dabei nur ein Klartext-Chiffre-Buchstabenpaar zu finden, da alle Buchstabe in einer Gruppe um den selben Wert verschoben sind. Man sucht also z. Findet man nun z.

Dasselbe macht man mit allen Gruppe und erhält so das Schlüsselwort. Beim Autokey-Verfahren wird das Schlüsselwort nur einmal zum Verschlüsseln der ersten Buchstaben verwendet. Die folgenden Buchstaben werden mit den Klartextbuchstaben am Anfang beginnend verschlüsselt. Der Chiffrierzylinder besteht aus mehreren Scheiben, auf deren Ränder permutierte Alphabete eingraviert sind.

Die Reihenfolge der Alphabete ist nicht wichtig und jede Scheibe hat eine andere Permutation. In der Abbildung hat der Chiffrierzylinder 6 Scheiben. Die M war von bis im Einsatz. Für Rotormaschinen wurden ab mehrere Patente eingereicht, wobei im folgenden Abschnitt nur der allgemeine mechanische Aufbau und die Funktionsweise der Rotormaschinen im Vordergrund stehen soll.

Rotormaschinen sind elektromechanische Verschlüsselungsgeräte. Sie bestehen, wie es der Name schon verrät, aus Rotoren. Rotoren sind dicke, elektronisch isolierte Scheiben, auf denen auf den gegenüberliegenden Flächen je 26 Schleifkontakte ringförmig angebracht sind und jeder Schleifkontakt einen Buchstaben des Alphabetes darstellt Bild 3.

Da jeder Schleifkontakt der linken Seite mit genau einem auf der rechten Seite verbunden ist, erhalten wir eine einfache Substitution. Nun werden auf der rechten Seite die Schleifkontakte mit je einem Lämpchen verbunden und auf der linken Seite wird an einem Kontakt eine Spannung angelegt. Das aufleuchtende Lämpchen ist abhängig von der inneren Verdrahtung des Rotors.

Das Anlegen der Spannung kann man mit der Eingabe eines Zeichenes gleichsetzen, das Aufleuchten des entsprechenden Lämpchens ist vergleichbar mit der Ausgabe des chiffrierten Zeichens durch Substitution. Nun wurden zur Erschwerung der Kryptoanalyse statt einer, mehrere Scheiben benutzt, hintereinander gestellt und über ihre Schleifkontakte verbunden. Die einzelnen Rotoren besitzen eine Rändelscheibe und ein Zahnrad, über die der Rotor während der Verschlüsselung mechanisch und manuell gedreht werden konnte.

Auf Bild 8 sind zwei Enigmarotoren abgebildet, wobei beim oberen klar die Rändelscheibe und das Zahnrad, beim unteren die Schleifkontakte und das aufgedruckte Alphabet zu sehen sind. Die Enigma wurde im Jahr von Arthur Scherbius gebaut. Die ersten Modelle waren normale Rotormaschinen mit 4 Rotoren und dem oben beschriebenen Aufbau.

In seiner Konstruktion benutzt Korn nur noch 3 Rotoren, die nun allerdings einen beweglichen Ring hatten, auf dem die Zahlen das Alphabet aufgedruckt waren.

Nun, da die relative Position von Verkabelung und Ring nicht zu sehen war, hatte man zwar die Ziffer, aber die eigentliche Rotorposition war unbekannt. Eine weitere Neuerung war ein vierter Rotor, der zur Anwendung kam. Dieser, auch als Reflektor bezeichnete Rotor, hatte nur auf einer Seite Schleifkontakte. Jeder Schleifkontakt war mit einem anderen des Reflektors fest verdrahtet.

Durch den Reflektor hatte die Enigma zwei neue Eigenschaften erhalten:. In schematischer Form kann man das Rotorensystem Zerhacker in Bild 9 sehen. Ein Enigma-Rotorensystem ist in Bild 10 zu sehen. Über das Steckfeld konnten die Buchstaben vor und nach der Ver- und Entschlüsselung, durch das Rotorensystem, vertauscht werden. Dazu war es notwendig, eine Steckbrücke in die zu vertauschenden Buchstaben in das Steckfeld zu stecken.

Die nicht gesteckten Buchstaben blieben unberührt. Die letzte wichtige Neuerung war die Einführung einer Übertragsfunktion. Sie arbeitete wie ein Kilometerzähler beim Auto. Die Kerbe konnte nur bei ausgebautem Rotor verändert werden. Nur der letzte, dritte Rotor, gab keinen Übertrag weiter, denn der Reflektor war fest eingebaut und konnte somit nicht gedreht werden. Diese Einführung erhöhte die Periode von 26 auf Auf Bild 12 sieht man eine Enigma und ihre Hauptbestandteile:.

Die Enigma wurde später noch an einigen Stellen erweitert. So kamen im Laufe der Zeit immer weitere Rotoren zum Sortiment hinzu. Am Ende des 2. Deshalb wurde oben nur der grundsätzliche Aufbau und die Funktionsweise der Rotormaschine - Enigma beschrieben. Die allgemeinen Einstellungen betrafen die Punkte:. Diese Einstellungen wurden durch Codebücher festgelegt. Die Codebücher waren immer auf einen Monat und jede Einstellung war auf 24 Stunden begrenzt. Diese Anfangspositionen waren nicht festgelegt.

Dieses wurde so wie vieles unterschiedlich gehandhabt. Hier nur ein Beispiel zur Lösung des Problems. Der chiffrierte Text lautet nun: Zum Entschlüsseln eines, mit der Enigma, chiffrierten Textes, braucht man die Auswahl und Anordnung der Rotoren, die Rotorenausgangsstellung und die Beschreibung des Steckfeldes. Die Enigma wurde von W. Korn und anderen Stellen als absolut sicher eingestuft.

Die Periode der Enigma mit 3 Rotoren im Rotorensystem beträgt ca. Dieses folgt aus verschiedenen Schwachstellen im Umgang mit der Enigma und ihrem Aufbau selbst. Dieses wollen wir nun noch etwas tiefer betrachten. Aber gerade dieser innere Aufbau, machte die Enigma erst so stark. Somit dürfte zum Beispiel das wichtige Geheimnis um die Innereverkabelung der Rotoren immer nur für absolut neu entwickelte Rotoren bestanden haben, dieses aber auch nur für einen kurzen Zeitraum. Hier zwei wichtige Beispiele:.

Lampenfeld zum ersten Rotor waren in alphabetischer Reihenfolge ringförmig angeordnet, eine Veränderung Permutation dieser Anschlüsse, hätte die Kryptoanalyse der Gegner stark erschwert und vielleicht sogar ohne eine genaue Beschreibung einer Maschine solchen Typs unmöglich gemacht. Es sollen auch Codebücher später mehrmals benutzt worden sein. Ein anderes Problem war die Übertragung. Denn wie im oben beschriebenen Beispiel Gebrauch der Enigma die Positionen als Klarschrift voranzustellen, ist eigentlich zu einfach.

Aber auch spätere System waren nur unmerklich besser. Die typisch deutschen Armeenachrichten, die sehr kurz und monoton waren, erhöhten ebenfalls nicht die Sicherheit. Aus ihnen konnten gute Kyptoanalytiker Schlüsse auf den Klartext ziehen und hatten somit einen Angriffspunkt. Hier soll nun auch kurz die Turingbomb erwähnt werden, die von Alan Turing, einem englischen Mathematiker, konstruiert wurde. Die Turingbomb ist ein Klartextangriff.

Somit ist die Dechiffrierung der Enigma durch Polen und England in bezug auf Deutschland eher auf Ignoranz und Unwissen von Personen, als auf die technischen Mängel der Enigma, zurückzuführen. Sie wurde dort für die militärische und diplomatische Kommunikation eingesetzt. Welt verkauft haben, um Geheimnachrichten abhören zu können. Beim heutigen Stand der Technik sollte die Enigma kaum noch den Angriffen gewachsen sein.

Vor der ersten und nach der letzten Runde werden. Die Dechiffrierung läuft, ganz ähnlich der Chiffrie-. Die Permutationen vor der ersten und nach der letzten Runde dienen keiner Sicherheit. Verwendung in der Hardware begründet, denn Mitte der 70er Jahre war es noch nicht so einfach, 64 Bit Daten.

Es gab noch nicht einmal 16 Bit Mikroprozessoren. Es überstand eine jahrelange Kryptoanalyse und wird heute als Standardverfahren von fast allen gängigen Verschlüsselungssystemen eingesetzt. Die nächstliegende Angriffsmethode ist also die Faktorisierung von n, da mit dem öffentlichen. Ein weiterer möglicher Angriff wäre die Brute Force - Methode. Dabei wird jedes mögliche d probiert, bis man den richtigen Wert gefunden hat. Damit wäre ein minimales Sicherheitskriterium erfüllt.