# data[].attributes.attachment_link.readable_text
This page, which requires that your browser support JavaScript (see Why JavaScript below), generates one-time pads or password lists in a variety of forms. It is based a high-quality pseudorandom sequence generator, which can be seeded either from the current date and time, or from a seed you provide. Fill in the form below to select the format of the pad and press "Generate" to create the pad in the text box. You can then copy and paste the generated pad into another window to use as you wish. Each of the labels on the request form is linked to a description of that parameter.

Each of the fields in the one-time pad request form is described below.

Enter the number of keys you'd like to generate. If you generate more than fit in the results text box, you can use the scroll bar to view the additional lines.

Lines in the output will be limited to the given length (or contain only one key if the line length is less than required for a single key). If the line length is greater than the width of the results box, you can use the horizontal scroll bar to view the rest of the line. Enter 0 to force one key per line; this is handy when you're preparing a list of keys to be read by a computer program.

Each key will contain this number of characters, not counting separators between groups.

If a nonzero value is entered in this field, the key will be broken into groups of the given number of characters by separators. Humans find it easier to read and remember sequences of characters when divided into groups of five or fewer characters.

This set of radio buttons lets you select the character set used in the keys. The alternatives are listed in order of increasing security.

Numeric

Keys contain only the decimal digits "0" through "9". Least secure.

Word-like

Keys are composed of alphabetic characters which obey the digraph statistics of English text. Such keys contain sequences of vowels and consonants familiar to speakers of Western languages, and are therefore usually easier to memorise but, for a given key length, are less secure than purely random letters.

Alphabetic

Keys consist of letters of the alphabet chosen at random. Each character has an equal probability of being one of the 26 letters.

Gibberish

Keys use most of the printable ASCII character set, excluding only characters frequently used for quoting purposes. This option provides the greatest security for a given key length, but most people find keys like this difficult to memorise or even transcribe from a printed pad. If a human is in the loop, it's often better to use a longer alphabetic or word-like key. Most secure.

The case of letters in keys generated with Word-like, Alphabetic, and Gibberish key text will be as chosen. Most people find it easier to read lower case letters than all capitals, but for some applications (for example, where keys must be scanned optically by hardware that only recognises capital letters), capitals are required. Selecting "Mixed case" creates keys with a mix of upper- and lower-case letters; such keys are more secure than those with uniform letter case, but do not pass the "telephone test": you can't read them across a (hopefully secure) voice link without having to indicate whether each letter is or is not a capital.

When the Key length is longer than a nonzero Group length specification, the key is divided into sequences of the given group length by separator characters. By default, a hyphen, "- ", is used to separate groups. If you check this box, separators will be chosen at random among punctuation marks generally acceptable for applications such as passwords. If you're generating passwords for a computer system, random separators dramatically increase the difficulty of guessing passwords by exhaustive search.

When this box is checked, at the end of the list of keys, preceded by a line beginning with ten dashes "- ", the 128 bit MD5 signature of each key is given, one per line, with signatures expressed as 32 hexadecimal digits. Key signatures can be used to increase security when keys are used to control access to computer systems or databases. Instead of storing a copy of the keys, the computer stores their signatures. When the user enters a key, its signature is computed with the same MD5 algorithm used to generate it initially, and the key is accepted only if the signature matches. Since discovering a key which will generate a given signature is believed to be computationally prohibitive, even if the list of signatures stored on the computer is compromised, that information will not permit an intruder to deduce a valid key.

Signature calculation is a computationally intense process for which JavaScript is not ideally suited; be patient while signatures are generated, especially if your computer has modest processing speed.

For signature-based validation to be secure, it is essential the original keys be long enough to prohibit discovery of matching signatures by exhaustive search. Suppose, for example, one used four digit numeric keys, as used for Personal Identification Numbers (PINs) by many credit card systems. Since only 10,000 different keys exist, one could simply compute the signatures of every possible key from 0000 through 9999, permitting an attacker who came into possession of the table of signatures to recover the keys by a simple lookup process. For maximum security, keys must contain at least as much information as the 128 bit signatures computed from them. This implies a minimum key length (not counting non-random separator characters) for the various key formats as follows:

Key Composition

Minimum Characters

Numeric

39

Word-like

30

Alphabetic

28

Gibberish

20

It should be noted that for many practical applications there is no need for anything approaching 128-bit security. The guidelines above apply only in the case where maximum protection in the event of undetected compromise of key signatures occurs. In many cases, much shorter keys are acceptable, especially when it is assumed that a compromise of the system's password or signature database would be only part of a much more serious subversion of all resources on the system.

The seed is the starting value which determines all subsequent values in the pseudorandom sequence used to generate the one-time pad. Given the seed, the pad can be reproduced. The seed is a 31-bit number which can be derived from the date and time at which the one-time pad was requested, or from a user-defined seed value. If the user-defined seed consists entirely of decimal digits, it is used directly as the seed, modulo 2 ³¹; if a string containing non-digit characters is entered, it is used to compute a hash code which is used to seed the generator.

When the clock is used to create the seed, the seed value is entered in the User-defined box to allow you, by checking "User-defined", to produce additional pads with the same seed.

At first glance, JavaScript may seem an odd choice for programming a page such as this. The one-time pad generator program is rather large and complicated, and downloading it to your browser takes longer than would be required for a Java applet or to transfer a one-time pad generated by a CGI program on the Web server. I chose JavaScript for two reasons: security and transparency.

Security. The sole reason for the existence of one-time pads is to provide a source of information known only to people to whom they have been distributed in a secure manner. This means the generation process cannot involve any link whose security is suspect. If the pad were generated on a Web server and transmitted to you, it would have to pass over the Internet, where any intermediate site might make a copy of your pad before you even received it. Even if some mechanism such as encryption could absolutely prevent the pad's being intercepted, you'd still have no way to be sure the site generating the pad didn't keep a copy in a file, conveniently tagged with your Internet address.

In order to have any degree of security, it is essential that the pad be generated on your computer, without involving any transmission or interaction with other sites on the Internet. A Web browser with JavaScript makes this possible, since the generation program embedded in this page runs entirely on your own computer and does not transmit anything over the Internet. Its output appears only in the text box, allowing you to cut and paste it to another application. From there on, its security is up to you.

Security is never absolute. A one-time pad generated with this page might be compromised in a variety of ways, including the following:

Your Web browser and/or JavaScript interpreter may contain bugs or deliberate security violations which report activity on your computer back to some other Internet site.

Some other applet running on another page of your browser, perhaps without your being aware of its existence, is spying on other windows.

Some other application running on your computer may have compromised your system's security and be snooping on your activity.

Your Web browser may be keeping a "history log" or "cache" of data you generate. Somebody may come along later and recover a copy of the pad from that log.

The implementation of this page may contain a bug or deliberate error which makes its output predictable. This is why transparency, discussed below, is essential.

Your computer's security may have been compromised physically; when's the last time you checked that a bug that transmits your keystrokes and/or screen contents to that white van parked down the street wasn't lurking inside your computer cabinet?

One can whip oneself into a fine fever of paranoia worrying about things like this. One way to rule out the most probable risks is to download a copy of the generator page and run it from a " file: " URL on a computer which has no network connection whatsoever and is located in a secure location under your control. And look very carefully at any files created by your Web browser. You may find the most interesting things squirreled away there....

Transparency. Any security-related tool is only as good as its design and implementation. Transparency means that, in essence, all the moving parts are visible so you can judge for yourself whether the tool merits your confidence. In the case of a program, this means that source code must be available, and that you can verify that the program you're running corresponds to the source code provided.

The very nature of JavaScript achieves this transparency. The program is embedded into this actual Web page; to examine it you need only use your browser's "View Source" facility, or save the page into a file on your computer and read it with a text editor. JavaScript's being an interpreted language eliminates the risk of your running a program different from the purported source code: with an interpreted language what you read is what you run.

Transparency is important even if you don't know enough about programming or security to determine whether the program contains any flaws. The very fact that it can be examined by anybody allows those with the required expertise to pass judgement, and you can form your own conclusions based on their analysis.

Credits

The pseudorandom sequence generator is based on L'Ecuyer's two-sequence generator as described in Communications of the ACM, Vol. 31 (1968), page 742. A Bays-Durham shuffle is used to guard against regularities lurking in L'Ecuyer's algorithm; see ACM Transactions on Mathematical Software, Vol. 2 (1976) pages 59-64 for details.

The JavaScript implementation of the MD5 message-digest algorithm was developed by Henri Torgemane; please view the source code of this page to examine the code, including the copyright notice and conditions of use. The MD5 algorithm was developed by Ron Rivest.

by John Walker
May 26, 1997
Updated: November 2006

This document is in the public domain.

# data[].attributes.body
https://kurzelinks.de/tk3c

# data[].attributes.attachment_link.readable_text
Das One-Time-Pad ist ein symmetrisches Verschlüsselungsverfahren, das als informationstheoretisch sicher bewiesen ist. Diese Eigenschaft besagt, dass die Verschlüsselung - bei korrekter Verwendung - selbst mit unendlicher Rechenleistung nicht geknackt werden kann.

Die Verschlüsselung und Entschlüsselung mittels One-Time-Pad ist relativ simpel. Eine Klartext-Nachricht M wird über ein exklusives Oder mit einem Schlüssel K verknüpft und erzeugt so den verschlüsselten Ciphertext C. In Kurzschreibweise bedeutet das C = M ⊕ K.

Nun wollen wir den Text „proggen.org" (M) verschlüsseln. Den Schlüssel K dafür wählen wir dabei komplett zufällig, er muss nichtmals aus druckbaren Zeichen bestehen. Die Byte-Werte sind deshalb als hexadezimale Zahlen angegeben.

Ohne den Schlüssel zu kennen, liefert der Ciphertext C keinerlei Informationen über die Klartext-Nachricht!

Um den Text wieder zu entschlüsseln, wird das Verfahren einfach auf den Kopf gestellt, also M = C ⊕ K.

Nun können wir auch zeigen wieso ein Bruteforce-Angriff nicht möglich ist. Zu jeder möglichen Klartext-Nachricht gibt es nämlich einen Schlüssel der sie aus dem Ciphertext erzeugt. Nochmals obiges Beispiel, jedoch mit falschem Schlüssel:

Wir haben hier also eine plausible, teilweise sogar korrekte, aber trotzdem insgesamt falsche Nachricht entschlüsselt.

Hinweis:
Die allgemeine Definition des One-Time-Pads sieht eine zeichenweise Modulo-Addition von Klartext und Schlüssel innerhalb des Alphabets vor, ähnlich wie es bei der Cäsar-Chiffre der Fall ist. Da dies bei binären Daten aber genau einem exklusiven Oder entspricht, beschränken wir uns hier auf diesen Fall.

Um tatsächlich als informationstheoretisch sicher zu gelten, werden folgende Bedingungen an den Schlüssel gestellt:

Wird nur ein einziges Mal verwendet

Ist mindestens so lang wie die zu verschlüsselnden Daten

Sobald nur eine einzige dieser Bedingungen verletzt wird, geht diese Eigenschaft verloren und Entschlüsselungs-Angriffe sind möglich!

Hier kommen wir auch zum großen Problem des One-Time-Pads: Beide Parteien müssen den verwendeten Schlüssel kennen. Dessen Übertragung stellt daher vor allem bei großen Datenmengen ein ganz neues Problem dar. Deshalb spielt das One-Time-Pad in der Praxis auch eine relativ geringe Rolle.

Wird auch nur eine Bedingung des One-Time-Pads verletzt, entstehen verschiedene Angriffsmöglichkeiten den Klartext herauszufinden.

Pseudo-Zufallszahlengeneratoren wechseln auf Basis eines Seeds ihren internen Zustand und produzieren aufgrund eines deterministischen Berechnungsverfahren „Zufallszahlen". Kann man den internen Zustand des Zufallszahlengenerators zurückrechnen, können alle folgenden Zufallszahlen - und damit der restliche Schlüssel - ebenfalls deterministisch berechnet werden. Auch wenn die Zahl der möglichen Werte für den Seed theoretisch sehr groß ist, kann man diese in vielen Fällen stark einschränken.

Beispiel:
Geht man von einem 64-bit Unix-Timestamp als Seed aus, können die möglichen Werte von 2 ⁶⁴ (18.446.744.073.709.551.616) auf ca. 2 ³⁵ (31.536.000.000) eingeschränkt werden, sofern man das korrekte Jahr errät. Noch immer eine schwierige, jedoch lösbare Aufgabe für moderne Rechner.

Folgendes Programm nimmt den aktuellen Timestamp als Seed, um den per Kommandozeilenparameter übergebenen Text zu verschlüsseln und in hexadezimaler Form auszugeben:

Nun werden wir versuchen einen mit diesem Programm verschlüsselten Text zu entschlüsseln. Dabei verwenden wir folgenden Aufruf als Eingabe:

$ ./otp_rand "Never use insecure random number generators!"
Seed: 1408487231
Ciphertext: 8132948028a5d6d49a3f3d0229531f6b2f113f50a36105c4e155b8dd984412b65d3eccb9bb3f1fa903a139e7

Um den Text zu entschlüsseln, muss mit einem angenommenen Seed der komplette Text erfolgreich entschlüsselt werden können. Der Text wird als erfolgreich entschlüsselt angesehen, wenn alle entschlüsselten Zeichen im Alphabet der Eingabenachrichten liegen. In diesem Beispiel wählen wir eine relativ lockere Bedingung, nämlich alle druckbaren Zeichen. Die Funktion isprint() erweist sich bei dieser Prüfung als sehr hilfreich.

Die Parameter des Aufrufs sind der bekannte Ciphertext, sowie Beginn- und End-Timestamp des vermuteten Seed-Jahres.
Wissen wir nun, dass der Text im Jahr 2014 verschlüsselt wurde, kann dieser mit dem entsprechenden Aufruf in kurzer Zeit entschlüsselt werden:

$ ./otp_prngcrack 8132948028a5d6d49a3f3d0229531f6b2f113f50a36105c4e155b8dd984412b65d3eccb9bb3f1fa903a139e7 1388534400 1420070399
[1408487231]: Never use insecure random number generators!

Moderne Programmiersprachen bieten oft Klassen oder Bibliotheken zur Generierung von kryptografisch sicheren Zufallszahlen, wie etwa random_device in C++11 oder java.security.SecureRandom in Java. Bei der Implementierung von sicherheitskritischen Anwendungen sollte man sich aber auf jeden Fall über die interne Funktionsweise des Generators informieren.

Wird der gleiche Schlüssel mehrere (n) Male für verschiedene, voneinander unabhängige, Nachrichten verwendet, spricht man von einem n-Time-Pad. Nun stellen wir die Gleichungen für die Verschlüsselung von 2 Nachrichten mit dem selben Schlüssel auf:
C ₁ = M ₁ ⊕ K
C ₂ = M ₂ ⊕ K

Kombiniert man nun die beiden verschlüsselten Texte mit XOR:
C ₁ ⊕ C ₂
erhält man als Formel:
(M ₁ ⊕ K) ⊕ (M ₂ ⊕ K)
Da das exklusive Oder kommutativ ist, kann die Gleichung folgendermaßen umgeformt werden:
(K ⊕ K) ⊕ (M ₁ ⊕ M ₂)
Jede beliebige Zahl die über ein exklusives Oder mit sich selbst verbunden wird ergibt 0 (x ⊕ x = 0), daher:
(0) ⊕ (M ₁ ⊕ M ₂)
Nach kurzer Überlegung erkennt man auch, dass jede beliebige Zahl die über ein exklusives Oder mit 0 verbunden ist, wieder die gleiche Zahl ergibt (x ⊕ 0 = x), also bleibt:
M ₁ ⊕ M ₂

Der geheime Schlüssel ist komplett aus der Gleichung verschwunden!
Errät man nun einen Teil einer Klartext-Nachricht, kann durch ein weiteres exklusives Oder und den gleichen Rechenregeln wie zuvor die jeweils andere ebenfalls teilweise entschlüsselt werden:
(M ₁ ⊕ M ₂) ⊕ M ₁
Löst man obige Gleichung auf, bleibt die entschlüsselte Nachricht M ₂ übrig. Erhält man für M ₂ plausiblen Inhalt, weist dies auf einen korrekten Versuch hin. Hat man mehrere Nachrichten zur Entschlüsselung bzw. Validierung, erleichtert dies den Vorgang natürlich enorm.

Um das n-Time-Pad zu knacken geht man also folgendermaßen vor:

Ciphertexte über ein exklusives Oder miteinander verbinden

Inhalt der Nachrichten raten

Validierung über den berechneten Inhalt der jeweils anderen Nachrichten

Je größer die entschlüsselten Teile der Nachrichten, desto leichter fällt es natürlich auf den restlichen Inhalt zu schließen.

Tipp zum Erraten des Inhalts:
Bei komplett unbekannten Inhalt kann das Raten sehr mühsam sein. Abhilfe schaffen allgemeine Wörter wie z.B. „ und " und „ oder " bzw. in Englisch „ and " und vor allem „ the ". Die Leerzeichen vor und nach den Wörtern sind beabsichtigt und liefern den Inhalt der anderen Nachrichten an diesen Stellen „gratis" mit!

Bei genügend großen n kann auch eine Frequenzanalyse angewendet werden, bei der über die Häufigkeit der Hex-Bytes an einer Stelle und der Häufigkeit von Buchstaben in einer Sprache auf den Inhalt geschlossen wird.

Ist der zu verschlüsselnde Text länger als der Schlüssel selbst und wird der Schlüssel dann wieder von Beginn verwendet, degeneriert das One-Time-Pad zur Vigenère-Cipher mit all ihren Schwächen und praktisch den gleichen Angriffsmöglichkeiten wie das n-Time-Pad.

Obige Angriffe zielen darauf ab die Klartext-Nachricht zu erhalten. Dies ist bei korrekter Verwendung des One-Time-Pads zwar unmöglich, allerdings kann die verschlüsselte Nachricht dennoch manipuliert werden.
Wie schon anfangs bei der Entschlüsselung mit falschem Schlüssel demonstriert, bietet das One-Time-Pad keinerlei Datenintegrität. Gelingt es einem Angreifer eine verschlüsselte Nachricht abzufangen, kann er sie verändern und an den ursprünglichen Empfänger weiterleiten, ohne den genauen Inhalt zu kennen.

Beispiel:
Wir stellen uns ein stark vereinfachtes Protokoll für Banküberweisungen vor, das lediglich aus den Namen von Absender und Empfänger, sowie den übermittelten Betrag besteht:

F:[Sender];T:[Empfänger];A:[Betrag]

Eine 1234€ Überweisung von Alice an Bob würde also folgendermaßen aussehen:

F:Alice;T:Bob;A:1234

Bevor der Datensatz an die Bank geschickt wird, verknüpft der Absender ihn mit einem mit der Bank vereinbarten Schlüssel:

Schafft es ein Angreifer diese Nachricht abzufangen, kann diese - bei korrekter Verwendung des One-Time-Pads - zwar nicht entschlüsselt, aber trotzdem unbemerkt manipuliert werden. Der Angreifer kennt den genauen Inhalt der Nachricht zwar nicht, das Protokoll sieht jedoch den Überweisungsbetrag am Ende der Nachricht vor. In diesem Beispiel ändert der Angreifer nun Byte 16 wie gezeigt auf den Wert 0x33.

Wird dieser manipulierte Ciphertext vom Angreifer an die Bank weitergeleitet und entschlüsselt, sieht das Ergebnis folgendermaßen aus:

Ohne den Schlüssel zu kennen, wurde der Betrag vom Angreifer von 1234€ auf 9234€ geändert. Die Bank hat auch keine Möglichkeit diese Manipulation festzustellen.

# data[].attributes.attachment_link.description
Das One-Time-Pad ist ein symmetrisches Verschlüsselungsverfahren, das als informationstheoretisch sicher bewiesen ist. Diese Eigenschaft besagt, dass die Verschlüsselung - bei korrekter Verwendung - selbst mit unendlicher Rechenleistung nicht geknackt werden kann. Die Verschlüsselung und Entschlüsselung mittels One-Time-Pad ist relativ simpel. Eine Klartext-Nachricht M wird über ein exklusives Oder mit einem Schlüssel K verknüpft und erzeugt so den verschlüsselten Ciphertext C.

# data[].attributes.body
Man Rechnet genau wie bei der Verschlüsselung in Hex. Dieses mal rechnet man das Chiffrierte mit dem Schlüssel zusammen. So bekommt man die Nachricht in Hex und muss diese nur noch in ASCII umwandeln.

# data[].attributes.body
Man nimmt der Text der Verschlüsselt werden soll, ändert diesen in Hex und rechnet die Hex-Zahl mit der Hex-Zahl des Passwortes zusammen. Dadurch kann man die Nachricht nicht mehr lesen.

# data[].attributes.body
Die allgemeine Definition des One-Time-Pads sieht eine zeichenweise Modulo-Addition von Klartext und Schlüssel innerhalb des Alphabets vor, ähnlich wie es bei der Cäsar-Chiffre der Fall ist. Da dies bei binären Daten aber genau einem exklusiven Oder entspricht, beschränken wir uns hier auf diesen Fall.

Quelle https://www.proggen.org/doku.php?id=security:crypto:otp

# data[].attributes.body
Das One-Time-Pad kann nicht entziffert werden und ist absolut sicher. Das One-Time-Pad benötigt einen Schlüssel, der genau so lang ist wie der Text an sich, außerdem muss er zufällig sein. Sowohl Empfänger als auch Sender benötigen den selben Schlüssel, somit können Schwierigkeiten bei der Übermittlung auftreten.

# data[].attributes.body
1882 von Bankier Frank Miller beschrieben

1917 von Gilbert Vernam u. joseph Mauborge neu erfunden

nach Pads-> Papierbögen benannt

1960er Jahre=Spione/Agenten aus (UdSSR) nutzten es

klein, sehr dünne Seiten, eine Zeile zufälliger 5-stelliger Zahlen

nach Gebrauch vernichtet

# data[].attributes.body
Amerikaner Joseph O. Mauborgne setzte die Idee um und nannte es One Time Pad

# data[].attributes.body
Der Schlüssel muss mindestens genau so lange sein wie die zu verschlüsselnde Nachricht

Der Schlüssel muss zufällig generiert werden

Jede Nachricht braucht einen neuen Schlüssel

die Zeichen des Schlüssels sind zufällig und gleichverteilt zu wählen

# data[].attributes.body
Heiße Draht:
oder auch "Rote Telefon"  Beispiel für die Verwendung des Verfahrens. Zwischen dem amerikanischen Präsidenten und sowjetischen Generalsekretär als sicheres direkt Fernschreibverbindung durch Einmalschlüssel-Verfahren geschützt.

# data[].attributes.body
Der Kryptologe Gilbert Vernam (1890-1960) hat die Idee zum One time Pad 1918 geäußert. Der Amerikaner Joseph Mauborgne (1881-1971) setzte die Idee dann um und gab ihr den Namen: "One Time Pad". Die Deutschen Werner Kunze, Rudolf Schauffler und Erich Langklotzt arbeiteten daran weiter und schlugen vor Blöcke, die mit zufällig erstellten Ziffern erstellt wurden, zur Überschlüsselung zu nutzen und nannten es i-Wurm (individueller Wurm). Diese Methode wurde zur Weimarer Republik eingesetzt

# data[].attributes.body
35 Jahre nach dem erstem Verfahren gelangte es durch Gilbert Vernam zum Patent angemeldet zu werden.

# data[].attributes.body
amerikanische Kryptologe Frank Miller schlug 1882 zum ersten Mal das Verfahren vor

amerikanische

# data[].attributes.body
wurde während des Kalten Krieges oft verwendet

# data[].attributes.body
Das One-Time-Pad ist ein Verschlüsslungsverfahren zur geheimen Nachrichtenübermittlung.

die einzelnen Buchstaben werden jeweils in andere Buchstaben u mgewandelt .

Wurde Mathematisch bewiesen, das es nicht gebrochen werden kann

# data[].attributes.body
Kein reines "Copy & Paste"!

Grundstruktur des Padlets beibehalten!

Editieren von Beiträgen anderer ausdrücklich erwünscht, jedoch nur Korrektur von Inhalten und Schreibfehlern!

Gestaltet das Padlet übersichtlich und strukturiert indem ihr Farben & Formatierungen verwendet!

Fügt passende Bilder ein (Bildunterschriften!)

# data[].attributes.attachment_link.provider_name
Bundesamt für Sicherheit in der Informationstechnik

# data[].attributes.attachment_link.readable_text
Asymmetrische Verschlüsselung

Bei der asymmetrischen Verschlüsselung gibt es im Gegensatz zur symmetrischen Verschlüsselung immer zwei sich ergänzende Schlüssel. Ein Schlüssel

1. der Public Key - dient für das Verschlüsseln einer Nachricht,

2. ein anderer - der Private Key - für das Entschlüsseln.

Beide Schlüssel zusammen bilden ein Schlüsselpaar.

Aus einem Schlüssel lässt sich der dazugehörige zweite Schlüssel nicht so leicht erraten oder berechnen. Dadurch kann man einen Schlüssel des Schlüsselpaares für jedermann öffentlich zugänglich machen. Daher auch die Bezeichnung Public Key.

Das Verfahren der asymmetrischen Verschlüsselung lässt sich leicht begreifen, wenn man an einen Tresor mit Schnappschloss denkt. Jeder kann etwas einschließen, weil der Tresor sich automatisch schließt, wenn die Tür ins Schloss fällt. Zum Öffnen ist allerdings ein Schlüssel nötig. Mit dem Public Key kann also jeder wie mit einem Schnappschloss etwas einschließen. Weil aber nur der Empfänger über den geheimen, den Private Key verfügt, kann nur er die Nachricht entziffern oder etwas aus dem Tresor holen.

Ein bisschen Mathematik

Die asymmetrische Verschlüsselung beruht auf mathematischen Verfahren, die in einer Richtung einfach aber in der anderen Richtung schwierig durchzuführen sind. Multiplizieren ist so ein Beispiel:
3 121 163 * 4 811 953 = 15 018 889 661 339

Zahlen in Faktoren zu zerlegen, ist dagegen sehr mühselig: Hat man erst einmal das Produkt, ist es sehr schwierig herauszufinden, aus welchen Faktoren dieses ursprünglich gebildet wurde. Verkürzt dargestellt, entspricht der Public Key dem Produkt. Dieses wird benötigt, um Informationen für den Empfänger zu verschlüsseln. Dessen Private Key enthält die beiden Zahlen, aus denen das Produkt gebildet wurde. Diese sind für das Entschlüsselungsprogramm nötig, um die verschlüsselte Botschaft zu entschlüsseln.

Das Problem des schwierigen Schlüsselaustausches ist daher elegant gelöst: Der öffentliche Teil kann jedem zugänglich gemacht werden, ohne dass die Sicherheit darunter leiden würde. Man benötigt ja immer noch den geheimen Schlüssel. Ein weiterer Vorteil des Verfahrens ist, dass sehr viel weniger Schlüssel benötigt werden als beim symmetrischen Verfahren, das schon für die Kommunikation von zwölf Menschen untereinander 66 Schlüssel erfordert. Bei der asymmetrischen Verschlüsselung benötigt jeder nur ein Schlüsselpaar.

Aber auch asymmetrische Verschlüsselungsverfahren haben Schattenseiten:

Hoher Rechenaufwand
Asymmetrische Verfahren sind im Vergleich zu symmetrischen Verfahren sehr rechenaufwändig. Um kurze Nachrichten zu verschlüsseln, benötigt der Computer viel Zeit. Deshalb bedient man sich eines Tricks: Mit dem langsamen, asymmetrischen Verfahren werden nur die Schlüssel für ein schnelles symmetrisches Verfahren sicher und unkompliziert ausgetauscht. Die weitere Kommunikation erfolgt dann über die schnellere symmetrische Verschlüsselung. Wenn asymmetrische Verfahren dafür genutzt werden, die Schlüssel eines symmetrischen Verfahrens zu verschlüsseln, nennt man es hybride - also kombinierte - Verschlüsselung.

Mangelnde Authentizität
Wer etwas mit dem Public Key eines Empfängers verschlüsseln möchte (also ihm etwas in den Tresor legen möchte) muss sichergehen können, dass dieser auch wirklich demjenigen gehört. Im Internet ist es leicht sich für jemanden anderen auszugeben und es könnte jemand fälschlicherweise behaupten, er wäre der berechtigte Empfänger. Für die falsche Identität ließen sich problemlos Schlüsselpaare generieren und Public Keys in Umlauf bringen. Der Fälscher könnte dann vertrauliche Botschaften lesen, weil die Absender seinen Schlüssel benutzt haben, statt den des eigentlich gewollten Empfängers. Würde er die Botschaft danach, vielleicht auch noch manipuliert, an den richtigen Empfänger weiterleiten, bliebe das ganze wahrscheinlich auch noch unbemerkt.

PKI und Digitale Signatur

Besonderes Merkmal der Public Key Infrastructure (PKI) ist die Zertifizierungstelle. Das ist eine allgemein anerkannte Stelle, deren Aufgabe es ist, die jeweils einmaligen Schlüsselpaare (privater und öffentlicher Schlüssel, siehe asymmetrischen Verschlüsselung natürlichen Personen fest zuzuordnen und dies den Benutzern mittels "Zertifikaten" zu bestätigen.

Grundlagen digitaler Signaturen

Analog zu asymmetrischen Verschlüsselungsverfahren gibt es auch Signaturverfahren mit öffentlichem Schlüssel. In asymmetrischen Verschlüsselungsverfahren kann jeder, der den passenden öffentlichen Schlüssel besitzt, dem Besitzer eines privaten Schlüssels Nachrichten schicken, die nur dieser wieder entschlüsseln kann. Signaturverfahren haben allgemein das Ziel, die Funktionalität gewöhnlicher Unterschriften für digitale Dokumente nachzubilden. Erfüllt sein soll also:

jeder soll in der Lage sein, eine Unterschrift zu verifizieren,

nur der Unterzeichner soll in der Lage sein, eine für ihn gültige Unterschrift zu erzeugen.

Anders als bei gewöhnlichen Unterschriften kommt noch hinzu, dass digitale Unterschriften das unterschriebene Dokument vor nachträglicher Veränderung schützen. Während bei einem auf Papier geschlossenen Vertrag zumindest denkbar ist, dass nach Unterzeichnung ein Betrüger zum Beispiel noch Text hinzufügt und dadurch in nur schwer nachweisbarer Weise den Sinn des Vertrages ändert, soll die Verifikation einer digitalen Signatur fehlschlagen, wenn jemand an der unterschriebenen Datei nach ihrer Erstellung Veränderungen vorgenommen hat.

Moderne Signaturverfahren erreichen diese Ziele in folgendem Sinne:

jeder, der den öffentlichen Signaturschlüssel des Signierers kennt, kann digitale Signaturen mit relativ geringem Aufwand überprüfen,

wer den privaten Signaturschlüssel des Signierers nicht kennt, ist praktisch nicht in der Lage, in dessen Namen Dokumente zu signieren und

wer den privaten Signaturschlüssel des Signierers einer Datei nicht kennt, kann die Datei praktisch nicht verändern, ohne dass die Signatur ungültig wird.

Dabei beziehen sich, wie in der Kryptographie insgesamt üblich, alle Aussagen auf den gegenwärtigen wissenschaftlichen Kenntnisstand. Es ist durchaus möglich, dass heute übliche Signaturverfahren in der Zukunft gebrochen werden können; dazu lassen sich aber keine Aussagen machen.

Zum Teil lassen sich digitale Signaturverfahren relativ direkt aus asymmetrischen Verschlüsselungsverfahren ableiten, zum Beispiel im Fall des weitverbreiteten RSA-Verschlüsselungssystems. Es gibt aber auch Signaturverfahren, die kein Analogon in asymmetrischen Verschlüsselungsverfahren haben und umgekehrt.

Grundlagen Public-Key-Infrastrukturen

Public-Key-Infrastrukturen lösen das Problem der sicheren Verteilung öffentlicher Schlüssel für Public-Key-Verschlüsselungsverfahren und digitale Signaturverfahren. Dabei wird vorausgesetzt, dass ein öffentlicher Signaturschlüssel einer Zertifizierungsstelle auf fälschungssicherem Wege im Voraus an alle Teilnehmer der PKI verteilt wird. Außerdem wird vorausgesetzt, dass die Zertifizierungsstelle die Identität aller Teilnehmer zuverlässig verifizieren kann und dass sie selbst eine für alle Teilnehmer vertrauenswürdige Institution ist.
Vereinfacht funktioniert dann die Verteilung öffentlicher Schlüssel über die PKI so:
Die Zertifizierungsstelle erstellt einen Text, in dem der öffentliche Schlüssel einer Person zugeordnet wird, und verschlüsselt dies aber mit ihrem geheimen Schlüssel.
Die Zertifizierungsstelle schreibt etwa: " Public Key Nr. 1234 gehört peter@bsi.bund.de" und signiert dies mit ihrem Private Key.
Weil der öffentliche Schlüssel der Zertifizierungsstelle allen bekannt ist, kann jeder überprüfen, dass dieser Text durch die Zertifizierungsstelle unterschrieben und seither nicht verändert wurde.
Sofern Sie der Zertifizierungsstelle vertrauen, können Sie dann auch darauf vertrauen, dass dieser Public Key einer ganz bestimmten Person gehört.

Symmetrische Verschlüsselung

Caesar-Chiffre

Bereits aus der Antike ist die Verwendung verschiedener symmetrischer Verschlüsselungsverfahren überliefert. Die am besten bekannten dürften die durch die Spartaner genutzte Skytale und die nach ihrem bekanntesten überlieferten Nutzer benannte Caesar-Chiffre sein. Bei der Caesar-Chiffre handelt es sich um ein sehr einfaches Buchstabenersetzungs-Schema.
Der folgende Text ist ein Beispiel für ein mögliches Chiffrat " DQJULIILPPRUJHQJUDXHQ"

Sobald man die Idee hat, ein Verschlüsselungsverfahren ähnlich der Caesar-Chiffre hinter diesem Chiffrat zu vermuten, erkennt man hier recht schnell: jeder Buchstabe wurde durch den dritten im Alphabet auf ihn folgenden ersetzt, wobei für die letzten Buchstaben des Alphabetes die Konvention eingeführt wird, dass sich das Alphabet nach Z wiederholt.
Der verschlüsselte Text heißt in Klarschrift also: " Angriff im Morgengrauen".

Die Caesar-Chiffre kann allgemein definiert werden als folgendes Verfahren: gegeben einen Text bestehend nur aus Großbuchstaben und einen aus einem Buchstaben bestehenden Schlüssel (im Beispiel "D") ersetze jeden Buchstaben des Textes durch den Buchstaben, der ihm im Alphabet im gleichen Abstand folgt wie der Schlüssel dem A (im Beispiel drei Schritte).

Ein sicheres Verfahren: das One-Time-Pad

Es gibt aber auch andere Chiffrier-Mechanismen, die nur sehr schwer oder überhaupt nicht geknackt werden können. Als Beispiel geben wir kurz ein (was den Schutz der Vertraulichkeit der übertragenen Informationen betrifft) absolut sicheres Verschlüsselungsverfahren an, das sich ohne technische Hilfsmittel einsetzen lässt.

Wir gehen dabei von der Caesar-Chiffre aus. Einer ihrer offensichtlichen Schwachpunkte ist die sehr kleine Anzahl möglicher Schlüssel: bei einem Alphabet von 26 Buchstaben gibt es nur 26 mögliche Schlüssel, die ein Angreifer einfach durchprobieren kann, bis er den Klartext findet. Ein erster Ansatz zur Verbesserung der Caesar-Chiffre läge daher in einer Vergrößerung des Schlüsselraumes. Ein Weg, dies zu erreichen, bestünde darin, anstatt eines Schlüsselbuchstabens ein Schlüsselwort zu verwenden und dieses buchstabenweise wie in der Caesar-Chiffre zum Klartext zu "addieren".

In dem Beispiel kommt das als erster Buchstabe des Chiffrats wie folgt zustande:
an derersten Stelle des Schlüssels steht ein "C". Daran liest man ab, dass an dieser Stelle ein " A" im Klartext durch ein " C" ersetzt werden soll, ein "B" durch ein "D", ein "C" durch ein "E" und so weiter.
Im Klartext findet sich ein "B": folglich steht im Chiffrat an dieser Stelle ein "D".

Dieses Verfahren funktioniert so wie beschrieben nur, wenn das Schlüsselwort die gleiche wie oder eine größere Länge hat als die zu verschlüsselnde Nachricht. Es ist in der beschriebenen Form zunächst auch noch sehr unsicher. Wenn aber noch zusätzlich

der Schlüssel aus einer vollkommen zufällig gewählten Buchstabenfolge passender Länge besteht und

der Schlüssel nur zur Verschlüsselung einer einzigen Nachricht verwendet wird (beziehungsweise bereits einmal in einer Verschlüsselungsoperation benutzte Buchstaben des Schlüssels niemals wiederverwendet werden),

dann liefert eine Kenntnis des Chiffrats einem Angreifer, der keine Informationen über den Schlüssel hat, keinerlei Information über den Klartext.

Man bezeichnet dieses Verschlüsselungsverfahren auch als das One-Time-Pad.

Einschränkend zu beachten sind zusätzlich einige weitere Punkte, zum Beispiel:

nach einmaliger Verwendung muss der Schlüssel vernichtet werden (oder darf wenigstens nie mehr verwendet werden), da schon eine zweimalige Verwendung des gleichen Schlüssels mit verschiedenen Nachrichten das Verfahren unsicher macht. Auch bereits verwendete Teile eines Schlüssels dürfen nie mehr wiederverwendet oder bekannt werden!

ein Angreifer, der Teile des Schlüssels kennt, kann auch die entsprechenden Teile der Nachricht problemlos entschlüsseln,

die Integrität der übertragenen Nachrichten wird in keiner Weise durch das Verfahren geschützt.

Man sieht daran: auch ein Verschlüsselungsverfahren, das durch eine sehr starke theoretische Sicherheitsgarantie gestützt wird, kann noch nicht-optimale kryptographische Eigenschaften haben, zu denen die Sicherheitsgarantie keine Aussage macht. In der Entwicklung und wissenschaftlichen Bewertung moderner kryptographischer Systeme muss deshalb eine große Anzahl unterschiedlicher Sicherheitsziele und Angriffs-Szenarien berücksichtigt werden.

Moderne symmetrische Chiffren

Ein wichtiger Nachteil des One-Time-Pads ist natürlich zudem die sehr große Menge an benötigtem Schlüsselmaterial: für jede verschlüsselte Verbindung zwischen zwei Parteien benötigt man einen Schlüssel, der genauso groß ist wie sämtliche Nachrichten, die sicher ausgetauscht werden sollen, zusammengenommen.Die sichere Verteilung dieser Schlüssel ist insbesondere dann, wenn mehrere Parteien miteinander kommunizieren können sollen, schwierig.

Dennoch ist das One-Time-Pad tatsächlich in wesentlichem Umfang eingesetzt worden. Eine moderne Variante sind quantenkryptographische Systeme, die das Problem des sicheren Schlüsselaustausches mit physikalischen Mitteln lösen. Es gibt auch andere in der Kryptographie wichtige Konstruktionen, die auf den Ideen hinter dem One-Time-Pad aufbauen.

Moderne symmetrische Kryptoverfahren benötigen im Gegensatz zum One-Time-Pad nur geringe Mengen an geheimen Schlüsseln, um zu funktionieren. Zumindest unter dem Vorbehalt, dass die meisten Sicherheitsgarantien der modernen Kryptographie nicht absolut sind und künftige wissenschaftliche Fortschritte also heute für sicher geltende Verfahren brechen könnten, wird dabei ein sehr hohes Sicherheitsniveau erreicht. Das grundsätzliche Problem der Verteilung geheimen Schlüsselmaterials "im Voraus" bleibt bestehen.

# data[].attributes.attachment_link.description
Bei der asymmetrischen Verschlüsselung gibt es im Gegensatz zur symmetrischen Verschlüsselung immer zwei sich ergänzende Schlüssel. Ein Schlüssel der Public Key - dient für das Verschlüsseln einer Nachricht, ein anderer - der Private Key - für das Entschlüsseln. Beide Schlüssel zusammen bilden ein Schlüsselpaar.

# data[].attributes.attachment_link.readable_text
Beantwortet folgende Fragen:

1)Was sind die Unterschiede zwischen statischen und dynamischen einerseits und kontinuierlichen und diskreten Systemen andererseits?

2)Mit welchem Ziel und aus welchen Gründen werden Wachstumsprozesse modelliert und anschließend simuliert

3)Was ist ein Wirkungsdiagramm und wie hängen die Begriffe "System" und "Wirkungsdiagramm" zusammen?

4)Was bedeuten die Begriffe "gleichsinnige bzw. gegensinnige Wirkung" sowie "eskalierender bzw. stabilisierender Rückkopplungskreis"?

5)Was sind Bestandsgrößen und Änderungsraten

1)statische/dynamische Systeme: Bei dynamischen Systemen ändert sich der Systemzustand, bei statischen nicht

Kontinuierliches System:ein System,dessen Variablen sich kontinuierlich ändern, so dass jedem reellen Wert der Zeit ein Zustand des Systems zugeordnet werden kann. Seine Zeitentwicklung kann durch ein System von Differentialgleichungen bestimmt werden, die angeben, wie schnell sich jede Variable bei einem gegebenen Zustand des Systems ändert.

Diskretes System:ein System, dessen Variablen sich von einem Zeitschritt zum nächsten ändern, ohne dass irgendein Zustand des Systems zwischen diesen Zeiten angenommen wird. Seine Zeitentwicklung wird durch eine Abbildung bestimmt, die angibt, welchen Wert die Variablen zum Zeitpunkt annehmen, wenn ihre Werte zum Zeitpunkt und möglicherweise zu weiteren, früheren Zeitpunkten , gegeben sind.

2)Wachstumsprozesse werden modelliert um sie nachzuvollziehen, simuliert werden sie natürlich aus dem gleichen Grund aber auch um zu herauszufinden, wie der Wachstumsprozess weiter verläuft

3) Ursache-Wirkungs-Diagramm -> graphische Darstellung von , die zu einem Ergebnis führen oder dieses entscheidend beeinflussen. Dabei werden die verstärkenden und hemmenden Wirkung mit berücksichtigt. Alle Problemursachen sollen so identifiziert und ihre Abhängigkeiten mit Hilfe des Diagramms dargestellt werden. Das Diagramm wird beispielsweise angewendet zur systematischen und vollständigen Ermittlung von Problemursachen und Analyse und Strukturierung von Prozessen. Ein Wirkungsdiagramm hilft bei der Analyse des Systems.

4) gleichsinnige Wirkung: Zunahme von einer Ursache= Zunahme von der anderen Ursache

gegensinnige Wirkung: Zunahme von einer Ursache = Abnahme von der anderen Ursache

Eine Rückkopplung , ist ein Mechanismus in signalverstärkenden oder informationsverarbeitenden Systemen, bei dem ein Teil der Ausgangsgröße direkt oder in modifizierter Form auf den Eingang des Systems zurückgeführt wird.

stabilisierender Rückkopplungskreis:Ungerade Zahl von gegensinnigen Wirkungen in einer Wirkungskette= gegensinnige Gesamtwirkungbedeutet-> tendenziell eine Stabilisierung des Systems

eskalierender Rückkopplungskreis:gerade Anzahl von gleichsinnigen Wirkungen in einer Wirkungskette= gleichsinnige Gesamtwirkung ->bedeutet tendenziell eine Destabilisierung des Systems

5)Bestandsgröße:besitzt zu Beginn der Simulation einen bestimmten Anfangswert ändert im Laufe der Simulation durch Einwirkungen (Zuflüsse / Abflüsse) ihren Wert additiv

Änderungsrate: kann mehrere Eingänge besitzen, aus denen der Wert der Änderungsrate berechnet werden kann. Die Änderungsrate beinhaltet die Änderungsgeschwindigkeit der zugeordneten Zustandsgrößen. Der Wert wird zu jedem Zeitpunkt der Simulation aus den einwirkenden Systemelementen berechnet. -> Maß dafür, wie schnell sich die Größe verändert.

# data[].attributes.attachment_link.description
Beantwortet folgende Fragen: 1)Was sind die Unterschiede zwischen statischen und dynamischen einerseits und kontinuierlichen und diskreten Systemen andererseits? 2)Mit welchem Ziel und aus welchen Gründen werden Wachstumsprozesse modelliert und anschließend simuliert 3)Was ist ein Wirkungsdiagramm und wie hängen die Begriffe "System" und "Wirkungsdiagramm" zusammen? 4)Was bedeuten die Begriffe "gleichsinnige bzw.

# data[].attributes.attachment_link.readable_text
Im Prinzip ist eine Verschlüsselung mit One-Time-Pad nichts anderes als eine Verschlüsselung nach Vigenère mit dem entscheidenden Einschränkung, der Schlüssel hat die gleiche Länge wie der Originaltext und sollte zufällig gewählte Zeichen enthalten.

In der Praxis ist die Addition von zwei Zeichen mod 26 recht unpraktisch. Stattdessen benutzt man auf der "Bitebene" (wenn also alle Zeichen als Folge von 0en und 1en aufgelöst sind) mit dem Schlüsselwort, ebenfalls eine Folge von 0en und 1en eine XOR-Verknüpfung statt. Dabei gilt die Vorschrift
(vgl. dazu die Hausaufgaben)

XOR ist die entweder oder Operation, d.h. a XOR b ist genau dann wahr, wenn a wahr und b falsch oder wenn a falsch und b wahr sind.

Wir schreiben ein Java-Programm, das eine One-Time-Pad Verschlüsselung mittels XOR realisiert.
Dabei sollen zwei maximal 100 Zeichen umfassende Strings, die nur aus 0en und 1en bestehen, eingelesen werden (Klartext und Schlüssel, beide gleich groß)). Als Ergebnis soll der verschlüsselte String ausgegeben werden.

XOR läßt sich mit dem ^-Operator in Java realisieren. Wir schreiben im Moment keine Verschlüsselungsmethode für die Klasse Krypt.java , da wir die Struktur der bisherigen Methoden noch nicht einhalten können. Wir verweisen hier auf das nachfolgende Projekt.

 String klarTextS,schluesselS; String geheimTextS="";  //klarTextS, schluesselS und geheimTextS sind Strings - //gearbeitet wird aber mit Boolschen 'Buchstaben')   boolean[] klarText = new boolean[10]; boolean[] schluessel = 10];new boolean[10]; boolean[] geheimText = new boolean["Eingabe Klartext : "); klarTextS=Console.in.readWord(); "Eingabe Schluessel: "); schluesselS=Console.in.readWord();//Klartext einlesen System.out.print(//Schlüssel einlesen System.out.print(0;n<10;n++){ klarText[n] = klarTextS.charAt(n)=='1'?//Folge aus Nullen und Einsen in Bool-Arrays einlesen  for(int n='1'?0;n<10;n++){ geheimText[n]=(klarText[n]^schluessel[n]); geheimTextS=geheimTextS+(true:false; schluessel[n] = schluesselS.charAt(n)=='1':'0'); } System.out.println("Geheimtext : "+geheimTextS); } }true:false; }for(int n=char)(geheimText[n]?

Eingabe Klartext : 1001111101
Eingabe Schluessel: 1010101011
Geheimtext : 0011010110

Sind AND oder OR Alternativen

Man könnte auf die Idee kommen ob man nicht auch mit AND- oder einer OR-Verknüpfung auch verschlüsseln könne. Die Antwort muss nein heißen. Die Verschlüsselung ist nicht bijektiv und demnach lässt sich ein z.B. mit AND verschlüsselter Text nicht mehr entschlüsseln. So wird der Klartextbuchstabe 0 mit dem Schlüsselbuchstabe 0 ebenso zu 0 verschlüsselt, wie der Klartextbuchstabe 1. Es sind also nicht mehr alle Forderungen Shannons an einen Verschlüsselungsalgorithmus einhalten.

Interessante Links

Applets zu diversen Verschlüsselungsverfahren:
http://members.magnet.at/wilhelm.m.plotz/Bin/CipherClerk.html

Enigma - Applet:
http://homepages.tesco.net/~andycarlson/enigma/enigma_j.html

# data[].attributes.attachment_link.description
Im Prinzip ist eine Verschlüsselung mit One-Time-Pad nichts anderes als eine Verschlüsselung nach Vigenère mit dem entscheidenden Einschränkung, der Schlüssel hat die gleiche Länge wie der Originaltext und sollte zufällig gewählte Zeichen enthalten. In der Praxis ist die Addition von zwei Zeichen mod 26 recht unpraktisch.

# data[].attributes.attachment_link.readable_text
Das One-Time-Pad (Abkürzung: OTP, deutsch: Einmalverschlüsselung oder Einmalschlüssel-Verfahren, wörtlich Einmal-Block, nicht zu verwechseln mit dem Einmal-Passwort-Verfahren) ist ein symmetrisches Verschlüsselungsverfahren zur geheimen Nachrichtenübermittlung. Kennzeichnend ist, dass ein Schlüssel verwendet wird, der (mindestens) so lang ist wie die Nachricht selbst. Das OTP ist informationstheoretisch sicher und kann nachweislich nicht gebrochen werden - vorausgesetzt, es wird bestimmungsgemäß verwendet.

Das Verfahren wurde zum ersten Mal durch den amerikanischen Kryptologen Frank Miller (1842-1925) bereits im Jahr 1882 vorgeschlagen, bevor es - 35 Jahre später - durch seinen Landsmann Gilbert Vernam (1890-1960) zum Patent angemeldet wurde. Der Amerikaner Joseph O. Mauborgne (1881-1971) setzte diese Idee um und nannte das Verfahren One-Time Pad (deutsch: Einmal-Block). Kurz darauf arbeiteten auch die Deutschen Werner Kunze, Rudolf Schauffler und Erich Langlotz an dieser Methode. Sie schlugen im Jahr 1921 vor, Blöcke, die mit zufällig erstellten Ziffern bedruckt waren, zur Überschlüsselung der damaligen diplomatischen Codes zu verwenden, und bezeichneten diese als i-Wurm (individueller Wurm). Diese Methode wurde vom diplomatischen Dienst der Weimarer Republik auch tatsächlich eingesetzt.

Seit dieser Zeit bis zum heutigen Tag, speziell auch während der Zeit des Kalten Krieges, wurde und wird dieses Verfahren verwendet. Beispielsweise war der „ Heiße Draht" (auch als das „Rote Telefon" bekannt), also die hochsichere direkte Fernschreibverbindung zwischen dem amerikanischen Präsidenten und dem sowjetischen Generalsekretär, durch ein Einmalschlüssel-Verfahren geschützt.

Das One-Time-Pad gehört zu den polyalphabetischen Substitutionsverfahren, bei denen die einzelnen Buchstaben (oder Zeichen) in jeweils andere Buchstaben (oder Zeichen) umgewandelt ( verschlüsselt) werden. Kennzeichnendes Merkmal der Einmalverschlüsselung ist die einmalige Verwendung eines zufälligen Schlüssels, der (mindestens) die gleiche Länge wie die zu verschlüsselnde Nachricht aufweist.

Sowohl der Klartext als auch der Schlüssel und das Chiffrat sind beim One-Time-Pad Zeichenfolgen derselben Länge. Während moderne Implementierungen des OTP auf Bits und Bytes basieren, lässt sich das OTP auch „klassisch" beispielsweise mithilfe der üblichen 26 Großbuchstaben des lateinischen Alphabets benutzen. Dies kann bei Bedarf leicht durch Kleinbuchstaben, Zahlzeichen oder Sonderzeichen erweitert werden. Zur Verschlüsselung wird der Schlüssel zeichenweise mit dem Klartext kombiniert. Die Art der Kombination ist beliebig und muss nicht geheimgehalten werden. Bei Verwendung von Bits ist eine Exklusiv-Oder-Verknüpfung (XOR) von Klartext- und Schlüsselbits gebräuchlich, weil diese besonders einfach durchzuführen ist. Alternativ kann aber auch eine andere Verknüpfung, beispielsweise eine zeichenweise Addition (ohne Übertrag) verwendet werden. Benutzt man Handmethoden und nur Großbuchstaben, empfiehlt sich die Addition. Hierzu werden die Buchstaben zumeist entsprechend ihrer Position im Alphabet durchnummeriert, wobei häufig eine Nummerierung von 0 bis 25 (A=0, B=1, ... Z=25) oder von 1 bis 26 (A=1, B=2, ... Z=26) erfolgt. Man kann sich auch für eine beliebige andere umkehrbare Zuordnung entscheiden. Dies hat keinen prinzipiellen Einfluss auf die Methode oder deren Sicherheit.

Grundlegende Voraussetzungen für die Sicherheit des Einmalschlüssel-Verfahrens sind: Der Einmalschlüssel muss

mindestens so lang sein wie die Nachricht,

gleichverteilt zufällig gewählt werden,

geheim bleiben und

darf nicht wiederverwendet werden, auch nicht teilweise.

Damit erfüllt das Einmalschlüsselverfahren Kerckhoffs' Prinzip, nach dem die Sicherheit eines Kryptosystems nicht von der Geheimhaltung des Algorithmus abhängen darf, sondern nur von der Geheimhaltung des Schlüssels, in idealer Weise. Die vier Bedingungen der Schlüsselwahl stellen zusammen mit der Beschreibung des Verfahrens sicher, dass die folgenden Voraussetzungen erfüllt sind:

Es gibt genauso viele Schlüssel wie mögliche Chiffrate,

Zu jedem Klartext-Chiffrat-Paar gibt es genau einen Schlüssel, der auf den Klartext angewendet das Chiffrat ergibt.

Unter diesen Bedingungen ist das Verfahren informationstheoretisch sicher (auch perfekte Sicherheit genannt) und kann auch mit beliebig hohem Rechenaufwand nicht gebrochen werden. Allein mit Kenntnis des Schlüssels kann der Geheimtext entschlüsselt werden. Diesen zu erraten oder anderweitig zu erschließen ist unmöglich, da jeder mögliche Schlüssel mit der gleichen Wahrscheinlichkeit auftreten kann. Zudem gibt es keine Möglichkeit, herauszufinden, ob ein Schlüssel richtig erraten wurde oder nicht. Würde man den Schlüssel nicht, wie oben vorausgesetzt, zufällig wählen, sondern beispielsweise Textpassagen verwenden, dann wäre diese Eigenschaft nicht gegeben.

Verwandt mit dem One-Time-Pad ist die Stromverschlüsselung, bei welcher der Schlüssel pseudozufällig aus einem kürzeren Schlüssel, einer PIN oder einem Pass- oder Kennwort erzeugt wird. Andere historische und auch aktuelle kryptographische Verfahren verwenden Schlüssel, die in der Regel deutlich kürzer sind als die Länge des zu verschlüsselnden Klartextes. Diese Verfahren weisen - im Gegensatz zum OTP - sämtlich keine perfekte Sicherheit auf.

Das Einmalschlüsselverfahren ist gut geeignet für eine maschinelle Realisierung. Im Gegensatz zu vielen modernen kryptographischen Methoden (wie DES, PGP oder AES), die wegen ihrer Komplexität auf Computer angewiesen sind, eignet sich das One-Time-Pad jedoch ebenso gut zur manuellen Durchführung der Ver- und Entschlüsselung.

Eine einfache Handmethode zur Verschlüsselung ist beispielsweise die buchstabenweise Addition von Klartext und Schlüssel. Hierzu ersetzt man zunächst mithilfe einer beliebigen Substitutionstabelle die Buchstaben des Klartextalphabets durch Zahlen. Im einfachsten Fall ordnet man den 26 Großbuchstaben des lateinischen Alphabets Zahlen zu, die ihrer Position im Alphabet entsprechen. Mit anderen Worten, man nummeriert das Alphabet wie folgt durch:

A B C D E F G H I J  K  L  M  N  O  P  Q  R  S  T  U  V  W  X  Y  Z
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26

Jetzt ist eine buchstabenweise Addition leicht möglich. Beispielsweise ergibt die Addition von A und F den Buchstaben G, entsprechend ihren Platznummern 1 + 6 = 7. Falls die Summe den Wert 26 überschreiten sollte, so zieht man einfach 26 ab ( Modulo-Operation) und erhält so wieder einen der 26 Alphabetbuchstaben. Beispielsweise X plus U ist numerisch 24 + 21 = 45, nach abziehen von 26 ergibt sich 19 und damit der Buchstabe S, also X + U = S.

Die Zusammenhänge bei der Addition von Buchstaben lassen sich an der folgenden Tabelle, die Ähnlichkeit mit einer klassischen Tabula recta hat, übersichtlich darstellen:

A B C D E F G H I J K L M N O P Q R S T U V W X Y ZA B C D E F G H I J K L M N O P Q R S T U V W X Y Z AB C D E F G H I J K L M N O P Q R S T U V W X Y Z A BC D E F G H I J K L M N O P Q R S T U V W X Y Z A B CD E F G H I J K L M N O P Q R S T U V W X Y Z A B C DE F G H I J K L M N O P Q R S T U V W X Y Z A B C D EF G H I J K L M N O P Q R S T U V W X Y Z A B C D E FG H I J K L M N O P Q R S T U V W X Y Z A B C D E F GH I J K L M N O P Q R S T U V W X Y Z A B C D E F G HI J K L M N O P Q R S T U V W X Y Z A B C D E F G H IJ K L M N O P Q R S T U V W X Y Z A B C D E F G H I JK L M N O P Q R S T U V W X Y Z A B C D E F G H I J KL M N O P Q R S T U V W X Y Z A B C D E F G H I J K LM N O P Q R S T U V W X Y Z A B C D E F G H I J K L MN O P Q R S T U V W X Y Z A B C D E F G H I J K L M NO P Q R S T U V W X Y Z A B C D E F G H I J K L M N OP Q R S T U V W X Y Z A B C D E F G H I J K L M N O PQ R S T U V W X Y Z A B C D E F G H I J K L M N O P QR S T U V W X Y Z A B C D E F G H I J K L M N O P Q RS T U V W X Y Z A B C D E F G H I J K L M N O P Q R ST U V W X Y Z A B C D E F G H I J K L M N O P Q R S TU V W X Y Z A B C D E F G H I J K L M N O P Q R S T UV W X Y Z A B C D E F G H I J K L M N O P Q R S T U VW X Y Z A B C D E F G H I J K L M N O P Q R S T U V WX Y Z A B C D E F G H I J K L M N O P Q R S T U V W XY Z A B C D E F G H I J K L M N O P Q R S T U V W X YZ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

In der kursiv gedruckten oberen Zeile und in der ersten Spalte am linken Rand sind die beiden zu addierenden Summanden angegeben. Im Kreuzungspunkt innerhalb der Tabelle lässt sich die Summe ablesen, also das Ergebnis der Summation von Klartextbuchstaben und Schlüsselbuchstaben. Dies ist der entsprechende Buchstabe des Geheimtextes.

Zur Verschlüsselung wird man einen zufälligen Schlüssel benutzen, der in diesem Beispielfall passenderweise ebenfalls aus den 26 Großbuchstaben zusammengesetzt ist und dessen Länge (mindestens) der Länge des zu verschlüsselnden Klartextes entspricht. Entscheidend für die Sicherheit der Verschlüsselung ist, dass die einzelnen Buchstaben des Schlüssels wirklich zufällig verteilt sind, unvorhersagbar sind und in keinerlei Zusammenhang untereinander stehen. Als Beispiel für einen zufälligen Schlüssel dient die folgende Buchstabenfolge:

S = WZSLXWMFQUDMPJLYQOXXB

Der Schlüssel S ist in diesem Beispiel recht kurz, er umfasst nur 21 Buchstaben und ist bei bestimmungsgemäßer Verwendung sehr schnell „verbraucht", nämlich bereits nach Verschlüsselung eines Textes aus 21 Buchstaben.

Beispielsweise soll der folgende Klartext K verschlüsselt werden:

K = ANGRIFFIMMORGENGRAUEN

Zur Verschlüsselung werden Klartext K und Schlüssel S, wie oben erläutert, buchstabenweise addiert. Als „Summe" (K + S = G) erhält man nach der so durchgeführten Einmalverschlüsselung den Geheimtext G:

G = XNZDGCSODHSEWOZFIPSCP

Der im Ergebnis erhaltene Geheimtext G ist von einem Zufallstext nicht zu unterscheiden und kann prinzipiell mit keiner noch so gearteten kryptoanalytischen Angriffsmethode (weder jetzt noch in Zukunft) entziffert werden. Allein die Kenntnis des Schlüssels S erlaubt es, aus dem Geheimtext G durch Subtraktion des Schlüssels wieder den Klartext K zu gewinnen. Ohne den Schlüssel kann man prinzipiell alle denkbaren und mehr oder weniger sinnvollen Buchstabenkombinationen aus 21 Buchstaben „konstruieren". Theoretisch könnte ein Angreifer dies probieren. Er würde so eine Unmenge an Sätzen erhalten, die in beliebigen Sprachen beliebige Informationen verkünden würden, beispielsweise

K' = WIKIPEDIAFINDENWIRGUT

mit dem dazu „passenden" Schlüssel, der der Differenz zwischen Geheimtext G und dem konstruierten Pseudo-Klartext K' entspricht (S' = G - K'):

S' = AEOUQXOFCBJQSJLIZXLHV

Dieser Schlüssel S' erfüllt die Bedingung, dass die buchstabenweise Summe von ihm mit dem oben erzeugten (falschen) Klartext K' genau den gleichen Geheimtext ergibt wie die Summe aus dem echten, aber dem Angreifer unbekannten Schlüssel S mit dem echten, aber dem Angreifer ebenso unbekannten Klartext K. So kann der Angreifer eine unübersehbare Fülle von denkbaren Klartext-Schlüsselpaaren konstruieren, die in (buchstabenweiser) Summe alle den gleichen echten Geheimtext ergeben. Er hat jedoch keine Möglichkeit, daraus auf den echten Klartext zurückzuschließen. Auch Brute Force, also das erschöpfende Durchprobieren aller möglichen Schlüssel, führt nicht zum Erfolg. Der Angreifer kann zwar so - sogar ohne überhaupt den Geheimtext zu kennen - alle denkbaren Texte mit 21 Buchstaben erzeugen, unter denen natürlich auch der ursprüngliche sein wird. Es gibt jedoch keinerlei Anhaltspunkte, zu entscheiden, welcher aus der Unmenge der durchaus sinnvollen Texte der tatsächliche Klartext ist. Solange ihm der Schlüssel nicht in die Hände fällt, bleibt der Klartext auf ewig ein Geheimnis.

Um diese Sicherheit nicht zu gefährden, sollte der Einmalschlüssel nach bestimmungsgemäßem Gebrauch unwiederbringlich vernichtet werden.

Angriffsmöglichkeiten

Bei korrekter Anwendung des Einmalschlüsselverfahrens ist OTP, wie der amerikanische Wissenschaftler Claude Shannon in den 1940er-Jahren zeigte, nachweislich sicher und kann nicht gebrochen werden. In der praktischen Anwendung können jedoch Fehler passieren, die einen Einbruch möglich machen. Ursache dafür ist die Verletzung von grundlegenden Sicherheitsmaßnahmen.

Ausspähen des Schlüssels

Ein möglicher Fehler ist, den Einmalschlüssel nicht geheim zwischen Sender und Empfänger auszutauschen, sodass er durch Dritte ausgespäht werden kann. Auch eine sichere Aufbewahrung des Schlüssels ist essentiell. Im Gegensatz zu Passwörtern oder Kennwörtern lässt sich ein Einmalschlüssel kaum merken. Er muss auf irgendeinem Medium, sei es Papier, Datendiskette, CD-ROM oder USB-Stick gespeichert werden. Solch ein Medium - und mit ihm der Schlüssel - kann leicht kopiert werden. Ebenso darf nicht vergessen werden, den Einmalschlüssel nach Gebrauch sicher und unwiederbringlich zu vernichten. Gelingt es dem Angreifer, den Schlüssel nachträglich zu finden oder zu restaurieren, so ist die Kommunikation nicht mehr geheim.

Kryptologisch unsichere Schlüssel

Ein Kardinalfehler ist, als Einmalschlüssel keine zufällige Buchstabenfolge, sondern eine Textpassage zu benutzen. Selbst wenn der verwendete Text einmalig ist und niemandem (außer den beiden Kommunikationspartnern) bekannt ist, weisen Buchstabenfolgen, die aus einem „sinnvollen" Text stammen, im Gegensatz zu zufälligen Buchstabenfolgen (Zufallstexten), statistisch auswertbare Abhängigkeiten auf, die eine Entschlüsselung möglich machen können.

Damit aus dem verschlüsselten Text ohne Schlüssel nicht wieder das Original rekonstruiert werden kann, muss der Schlüssel kryptologisch sicher sein, das heißt, er darf von einer echt zufälligen Zahlen- beziehungsweise Buchstabenfolge nicht zu unterscheiden sein. Ist er dies nicht, so kann ein Angreifer unter Umständen durch Kryptoanalyse, auch ohne Kenntnis des Schlüssels, den Text entschlüsseln.

Um einen kryptologisch sicheren Schlüssel zu erzeugen, wird im Idealfall ein physikalischer Zufallszahlengenerator verwendet, da nur ein solcher echt zufällige, das heißt nicht-deterministische, Werte liefert.

Grundsätzlich kann auch ein Generator für Pseudozufallszahlen verwendet werden. Dann darf der Schlüssel jedoch nicht so lang sein, dass man aus ihm auf den internen Zustand des Generators schließen könnte, denn sonst könnten alle darauffolgenden Werte vorhergesagt werden. Das ist bei einfachen Generatoren (wie zum Beispiel Kongruenzgeneratoren) bereits nach wenigen Werten der Fall. Bei kryptographisch sicheren Generatoren können dies erheblich längere Folgen sein, sie sind aber ebenfalls deterministisch und können theoretisch dennoch geknackt werden.

Mehrfachverwendung des Einmalschlüssels

Ein in der praktischen Anwendung (Beispiele: Lorenz-Schlüsselmaschine und Venona) schon häufig gemachter Fehler ist, mehr als nur die beiden, allein für Sender und Empfänger bestimmten Kopien des Einmalschlüssels herzustellen und zu verteilen oder den Schlüssel mehr als einmal zur Verschlüsselung zu verwenden. Schon eine zweimalige Verwendung eines Einmalschlüssels genügt, um die Kommunikation erfolgversprechend angreifen zu können.

Der Angreifer geht dabei von folgender Überlegung aus: Angenommen, der Absender hat für beide verschlüsselten Nachrichten (versehentlich) denselben Schlüssel verwendet, dann kann der Angreifer die Differenz der beiden verschlüsselten Texte analysieren. Klartexte und folglich auch Differenzen von Klartexten zeigen nämlich im Gegensatz zu Zufallstexten eine Reihe von Auffälligkeiten, die statistisch ausgewertet und zur Entzifferung ausgenutzt werden können. So zeigt die Buchstabenhäufigkeit von Differenztexten ebenso charakteristische Auffälligkeiten wie bspw. die von Klartexten oder von monoalphabetisch verschlüsselten Texten.

Die folgende Tabelle zeigt als Ergebnis einer Auszählung der Differenz von zwei deutschen Texten aus jeweils einer Million Buchstaben die relativen Häufigkeiten der Buchstaben in ‰ ( Promille). Bei einer Gleichverteilung würde man jeden der 26 Buchstaben mit einer Häufigkeit von 1/26, also mit 38,5 ‰ erwarten.

Bei Differenztexten - falls sie von zwei Klartexten oder von zwei nach dem Einmalschlüssel-Verfahren mit identischem Schlüssel verschlüsselten Geheimtexten stammen - dominiert der Buchstabe Z mit etwa 77 ‰, der durch Koinzidenzen von identischen Buchstaben in beiden Klartexten und damit auch (bei zweifacher Verwendung desselben Einmalschlüssels) in beiden Geheimtexten auftritt. Ein Nebenmaximum tritt beim Buchstaben M mit 50 ‰ auf. Ursache dafür sind Koinzidenzen der in deutschsprachigen Texten häufigen Buchstaben E und R beziehungsweise R und E, die beide die gleiche Differenz, nämlich 13, aufweisen. Falls der Angreifer diese Auffälligkeiten am Differenztext entdeckt, bestätigt dies seinen Verdacht der Mehrfachverwendung eines Einmalschlüssels (siehe auch: Koinzidenzindex). Basierend auf weiteren statistischen Abhängigkeiten und mithilfe von speziellen Differenztextbasen sowie passender Trigramm-, Tetragramm- und Pentagramm-Tabellen (siehe ) und rechnergestützter Untersuchung der verschiedenen Fälle können die Geheimtexte nun erfolgversprechend angegriffen werden.

Auf diese Weise kann das theoretisch unknackbare Einmalschlüssel-Verfahren plötzlich dennoch gebrochen werden, falls bei der praktischen Anwendung Fehler passieren.

Variiert die Länge der verschlüsselten Nachrichten oder die Rate des Nachrichtenaustauschs, so lassen sich dadurch, unabhängig vom Verschlüsselungsverfahren, Rückschlüsse auf den Inhalt ziehen. Ein probates Gegenmittel hierzu sind „ Füllsprüche ", die dem Gegner Funkaktivität vortäuschen, auch dort, wo keine Nachrichten ausgetauscht werden.

Das One-Time-Pad benötigt einen Schlüssel, der genauso lang ist wie die Nachricht selbst. Um beispielsweise die gesamten Daten eines Festplattenlaufwerks zu verschlüsseln, ist ein zweites Festplattenlaufwerk (mit mindestens gleicher Größe) zur Speicherung des Schlüssels nötig.

Zur Wahl des Schlüssels ist ein physikalischer Zufallszahlengenerator nötig, der in der Regel in spezieller Hardware realisiert wird. Die Sicherheit des One-Time-Pads hängt von der Güte des Zufallszahlengenerators ab. Eine weniger aufwendige Alternative zum One-Time-Pad ist eine Stromchiffre, die mit einem Pseudozufallsgenerator auskommt, aber dafür keine informationstheoretische Sicherheit besitzt.

Will man Nachrichten mit dem OTP-Verfahren verschlüsselt übertragen, muss der Schlüssel über einen anderen (sicheren) Kanal übertragen werden als die Nachricht. Beispielsweise kann eine CD mit Schlüsseln durch einen Boten überbracht werden, während die damit verschlüsselten Nachrichten über das Internet übertragen werden. Aufgrund des hohen logistischen Aufwands konnte sich das One-Time-Pad für die Verschlüsselung in größeren Kommunikationsnetzen nicht durchsetzen.

Das One-Time-Pad ist informationstheoretisch gegen Kryptanalyse sicher und kann nicht entziffert werden, wenn der Schlüssel genauso lang ist wie die Nachricht und aus Zeichen besteht, die zufällig und unabhängig sind, und wenn er nur einmal zur Verschlüsselung verwendet wird. Unter diesen Voraussetzungen kann der Geheimtext nur mit Kenntnis des Schlüssels entschlüsselt werden. Um die nur einmalige Verwendung des Schlüssels sicherzustellen, empfiehlt es sich, den Schlüssel unmittelbar nach Benutzung unwiderruflich zu löschen.

Andere Verschlüsselungsverfahren (wie AES) erreichen ihre Sicherheit durch den immensen Berechnungsaufwand der theoretisch denkbaren Entzifferung, der auf absehbare Zeit praktisch nicht realisierbar ist. Mit anderen Worten, einem potenziellen Angreifer fehlt es an notwendigen Ressourcen (zum Beispiel Rechenleistung oder Zeit), um seinen Entzifferungsversuch erfolgreich durchführen zu können. Die Sicherheit des One-Time-Pad dagegen beruht auf der einmaligen Verwendung des Schlüssels sowie der zufälligen Wahl des verwendeten Schlüssels. Richtig angewendet, bietet es für die zweiseitige geheime Kommunikation unübertreffliche Sicherheit und kann auch mit beliebig hoher Rechenleistung nicht gebrochen werden.

Friedrich L. Bauer: Entzifferte Geheimnisse. Methoden und Maximen der Kryptologie. 3., überarbeitete und erweiterte Auflage. Springer, Berlin u. a. 2000, ISBN 3-540-67931-6.

Steven M. Bellovin: Frank Miller - Inventor of the One-Time Pad. Cryptologia. Rose-Hulman Institute of Technology. Taylor & Francis, Philadelphia PA 35.2011,3 (Juli), S. 203-22. .

Robert Louis Benson: The VENONA Story. Center for Cryptologic History, NSA, Fort Meade, USA (PDF; 0,8 MB). Abgerufen: 25. Juli 2021.

Rudolf Kippenhahn: Verschlüsselte Botschaften: Geheimschrift, Enigma und Chipkarte. Rowohlt, Hamburg 1999. ISBN 3-499-60807-3.

Dirk Rijmenants: Is One-time Pad History? Cipher Machines & Cryptology, 2010 (PDF; 0,1 MB). Abgerufen: 5. Januar 2011.

Dirk Rijmenants: The Complete Guide to Secure Communications with the One Time Pad Cipher Cipher Machines & Cryptology, 2010 (PDF; 0,2 MB). Abgerufen: 5. Januar 2011.

1. Steven M. Bellovin: Frank Miller: Inventor of the One-Time Pad. In: Cryptologia. Bd. 35, Ausg. 3, Rose-Hulman Institute of Technology. Taylor & Francis, Philadelphia (Pennsylvania) 3. Januar 2011, , S. 203-22, online auf Columbia.edu, abgerufen am 31. Januar 2017 (PDF; 2,4 MB).

2. Simon Singh: Geheime Botschaften. Hanser, München / Wien 2000, ISBN 978-3-446-19873-9, S. 178, online auf DNB.de.

3. Johannes A. Buchmann: Introduction to Cryptography. Springer, New York 2001, ISBN 978-1-4419-9003-7, Kap.4, doi:10.1007/978-1-4419-9003-7 (springer.com [abgerufen am 31. Januar 2017]).

4. Claude Shannon: Communication Theory of Secrecy Systems (PDF; 563 kB). Bell System Technical Journal, Band 28, 1949 (Oktober), S. 656-715.

# data[].attributes.attachment_link.description
Das One-Time-Pad (Abkürzung: OTP, deutsch: Einmalverschlüsselung oder Einmalschlüssel-Verfahren, wörtlich Einmal-Block, nicht zu verwechseln mit dem Einmal-Passwort-Verfahren ) ist ein symmetrisches Verschlüsselungsverfahren zur geheimen Nachrichtenübermittlung. Kennzeichnend ist, dass ein Schlüssel verwendet wird, der (mindestens) so lang ist wie die Nachricht selbst. Das OTP ist informationstheoretisch sicher und kann nachweislich nicht gebrochen werden - vorausgesetzt, es wird bestimmungsgemäß verwendet.

# data[].attributes.attachment_link.readable_text
The unbreakable code

The One-Time Pad, or OTP is an encryption technique in which each character of the plaintext is combined with a character from a random key stream. Originally described in 1882 by banker Frank Miller (USA), it was re-invented in 1917 by Gilbert Vernam and Joseph Mauborgne. When applied correctly, the OTP provides a truely unbreakable cipher. It is named after the sheets of paper (pads) on which the key stream was usually printed. It also exists asOne Time Tape (OTT) .

The image on the right shows a typical OTP booklet as it was used by agents of the former Soviet Union (USSR) during the 1960s. It consists of a stack of small very thin pages, each with a series of random 5-digit numbers on them. Each page was destroyed immediately after use.

OTPs like this, were commonly used for sending coded messages via a Russian spy radio set such as the R-353 , often in relation to the mysterious Numbers Stations on the short wave radio bands. The OTP booklet shown here is from the internal collection of the Dutch Intelligence Agency AIVD .

In this section, we shows a selection of OTP systems from a variety of sources and countries. Although the exact operating procedure varies between OTP systems, we will try to give examples whenever possible. Real OTP booklets are extremely rare as they were normally destroyed after use. The ones that did survive are generally in the hands of the intelligence and law enforcement agencies that used or confiscated them. Click any of the thumbnails below for further details.

OTP systems on this website

The theory behind the OTP is that the encryption key has at least the same length as the actual message (i.e. the plaintext) and consists of truely random numbers. Each letter of the plaintext is 'added' to one element from the OTP using modulo-addition. This results in a ciphertext that has no relation with the plaintext when the key is unknown. At the receiving end, the same OTP is used to retrieve the original plaintext. For this to work, the following rules are mandatory:

1. The OTP should consist of truely random characters (noise).

2. The OTP (i.e. the key) should have the same length as the plaintext (or longer).

3. Only two copies of the OTP should exist.

4. The OTP should be used only once.

5. Both copies of the OTP are destroyed immediately after use.

Only if the above rules are strictly obeyed, the OTP is absolutely safe. Combining numbers with the plaintext manually, is a time-consuming task. It is therefore sometimes thought that OTPs are no longer practical. With modern computer technology however, the entire task of coding and decoding, can easily be automated, just like it was done in the past on teleprinter systems , but you should bear in mind that in practice there is no such thing as a secure personal computer.

Although it may sound strange, manual OTP ciphers are still being used today (2015) for sending secret messages to agents (spies) via the Numbers Stations , or One-Way Voice Links (OWVL) , that you may have heard on the short-wave radio bands. For a detailed description of the One-Time Pad Cipher and its history, complete with numerous examples, we would like to recommend the excellent paper Secure Communications with the One Time Pad Cipher, by Dirk Rijmenants[4].

➤ Read now (off-site)

The major problem with OTPs, is their distribution. A unique set of OTP booklets needs to be issued and distributed to each individual spy or agent abroad. As the OTP was destroyed immediately after use, sufficient and timely supply of new OTPs had to be guaranteed.

OTPs were often smuggled into the country by using concealments like the one shown in the image on the right. In this case a common travel kit is cleverly converted into a concealment device by the East-German secret service.

➤ More information

Another popular method for distributing and hiding OTP booklets, was by printing them at very small size and hiding them inside common objects like ballpoints, photoframes and, as shown in the image on the right, inside a walnut.

The walnut concealment was very popular with KGB agents in Western Europe for many years, until it was discovered by the West-Germans.

➤ Walnut concealment
➤ Other concealments

OTP systems come in many forms and flavours. The Russian OTP shown above, contains only numbers. It requires the letters of a message to be converted into numbers, before applying the OTP. It is also possible however, to use an OTP based on letters.

An example of such a letter-based OTP is shown in the image on the right. It's a stack of approx. 30 pages that are stapled together. The cover at the left, contains a folded alphabet table that is used in the translation process.

Some OTPs are so small that they can easily be hidden inside a small object. More examples and detailed photographs below. Some OTPs are so small that they can be fitted inside a slide frame.

All OTP photos in this section are courtesy Detlev Vreisleben (Germany)[2] and © Crypto Museum.

When used properly, OTPs are inherently safe. But when they are used incorrectly, e.g. by reusing them, they be a cryptologic nightmare. A good example of improper use is described by Matt Blaze in an article about the book Compromised by former FBI counterintelligence agent Peter Strzok[5]. He describes how secret OTP-encrypted messages were sent to Russian illegals 1 in the US, via a Numbers Station in Cuba which had a good coverage throughout the US.

The station would broadcast message in morse code and voice 24 hours a day, interleaving real messages with dummy traffic, so that it was not revealed to an interceptor how often and how many real messages were sent. However, the US and Canada. FBI discovered (as did others) that dummy traffic could easily be discriminated from real traffic, as it did not contain the number 9. This was probably caused by a faillure of the random number generator used for the dummy traffic, or a bug in the software that handled it. With this knowledge, the FBI was able to correlate the real messages to the times that messages were decoded by a Russian illegal couple they had under surveillance. It eventually led to the arrest of an several Russian illegals in the

In the espionage trade, an illegal is a foreign person who lives in a country under a false or assumed identity, also known as alegend, for the purpose of spying.

OTP booklets, such as the one shown above, have been captured during the Cold War by Western intelligence agencies on a number of occassions. One documented example is the capture of a Dutch man, who acted as an East-German agent in The Netherlands, in 1969. When he was finally exposed, the Dutch intelligence agency BVD (now: AIVD ) found a partly used OTP booklet in his home, along with a fully operational R-353 spy radio set , a burst encoder and cassettes [1].

➤ More about the R-353 radio

# data[].attributes.attachment_link.description
The unbreakable code The One-Time Pad, or OTP is an encryption technique in which each character of the plaintext is combined with a character from a random key stream. Originally described in 1882 by banker Frank Miller (USA), it was re-invented in 1917 by Gilbert Vernam and Joseph Mauborgne.

# data[].attributes.body
Schlüssel kann nur einmal verwendet werden

Schlüssel muss sicher übergeben werden

Das One-Time-Pad benötigt einen Schlüssel, der genauso lang ist wie die Nachricht selbst.

Um die gesamten Daten eines Festplattenlaufwerks zu verschlüsseln, ist ein zweites Festplattenlaufwerk (mit gleicher Größe) zur Speicherung des Schlüssels nötig.

# data[].attributes.body
Hohe Sicherheit, da es nur einmal verwendet wird und zufällig ist

Geheimtext kann nur mit Kenntnis des Schlüssels entschlüsselt werden

Das One-Time-Pad ist informationstheoretisch gegen Kryptanalyse sicher und kann nicht entziffert werden, wenn der Schlüssel genauso lang ist wie die Nachricht und aus Zeichen besteht, die zufällig und unabhängig sind, und wenn er nur einmal zur Verschlüsselung verwendet wird.