Wie ein Hacker einen Pin

erinnert, wenn Sie mehr als ein paar Bankkarten, Türeingabes-Keycodes oder andere kleine numerische Kennwörter haben, mit denen Sie sich erinnern können, wird es schließlich ein Mühe sein. Das Schlimmste ist für mich eine Bankkarte für ein Geschäftskonto, das ich einmal in einem blauen Mond verwende. Ich habe es wahrscheinlich acht Mal in fünf Jahren benutzt, und dann gaben sie mir eine neue Karte mit einer neuen Pin. Seufzen.

Schnell, was ist meine Pin?
Wie würde eine normale Person mit einer Proliferation von Pins umgehen? Sie würden die Zahlen auf ein Blatt Papier aufschreiben und in ihrer Brieftasche halten. Wir alle wissen, wie das endet, richtig? Eine verlorene Brieftasche und mehrere leere Bankkonten. Wie würde ein Hacker es handhaben? Schreiben Sie jede Zahl auf die Karte selbst, aber verschlüsselt, natürlich, mit dem einzigen unzerbrechlichen Verschlüsselungsschema, mit dem einzigen unzerbrechlichen Verschlüsselungsschema da draußen: das einmalige Pad (OTP).

Der OTP ist eine seltsame Ente zwischen Verschlüsselungsmethoden. Sie sollen in Ihrem Kopf entschlüsselt werden, aber solange der geheime Schlüssel sicher bleibt, sind sie steinig fest. Wenn Sie jemals versucht haben, die S-Boxen zu kodieren, und all das, was das Hinzufügen, Verschieben und Mischen, das mit einer normalen Verschlüsselungsmethode weitergeht, sind ots erfrischend einfach. Der Kompromiss ist ein “langer” Schlüssel, aber ein OTP ist absolut perfekt, um Ihre Pins zu verschlüsseln.

Der erste Teil dieses Artikels scheint der freundliche “Life-Hack” -Pablum zu sein, den Sie an anderer Stelle bekommen, aber verzweifeln Sie nicht, es ist auch eine Hintertüreinführung in den OTP. Die zweite Hälfte taucht in das einmalige Pad mit einer tiefen Krypto-Intuition, einiger freundlicher Mathematik ein, und hoffentlich ein überzeugendes Argument, das Ihre verschlüsselten Stifte aufschreiben, ist das Richtige zu tun. Auf dem Weg liste ich die drei Dinge auf, die Sie beim Implementieren eines OTP falsch machen können. (Und keiner von ihnen wird dich schockieren!) Aber am Ende bricht meine Pin-Verschlüsselungslösung einen der drei und bleibt trotzdem. Neugierig? weiter lesen.

Die Pin-Lösung

Also zuerst die Lösung für das Bankkarten-Problem: Schreiben Sie Ihre PIN verschlüsselt mit einem Geheimnis, das nur Sie kennen. Anstatt sich an eine vierstellige Zahl für jede neue Karte erinnern zu müssen, benötigen Sie nur eine vierstellige Zahl für immer. Der Schlüssel ist, ein Verschlüsselungsschema auszuwählen, das leicht genug ist, um rückgängig zu machen, damit Sie nicht zu seltsam aussehen, wenn Sie aufgefordert werden, die PIN in das Fenster des Bankkenntnissen einzugeben. Dies ist die klassische Verwendung der OTP – eine Verschlüsselung, die Sie in Ihrem Kopf rückgängig machen können.

Wählen Sie zunächst eine geheime vierstellige Zahl aus. Dann subtrahieren Sie diese Nummer von Ihrem PIN und schreiben Sie das Ergebnis auf Ihre Karte. Um Ihre PIN zu erhalten, wenn Sie vor dem Bankkenntnis stehen, schauen Sie einfach auf die Karte und fügen Sie die Geheimzahl zurück. Der Kassierer wird denken, dass Sie Ihre PIN auf der Karte geschrieben haben. Fühlen Sie sich frei, sich selbst zu fühlen, weil Sie ein unzerbrechliches Verschlüsselungssystem verwendet haben.

Anstelle von normaler Hinzufügung und Subtraktion, mit dem Tragen und der Kreditaufnahme über Ziffern, möchten Sie Modulo-10 Math verwenden – Hinzufügen oder Subtrahieren von zehn von dem Ergebnis, wenn sie außerhalb des Bereichs 0-9 kommt. Wir sprechen darüber, warum unten, aber hier ist hier ein Arbeitsbeispiel.

Angenommen, die Pin ist 1234 – es muss so jemand passieren, oder? – Und meine zufällige Geheimzahl ist natürlich 1337. Lass uns verschlüsseln. Das Subtrahieren von 1 von 1 gibt eine Null, also schreibe ich das unten. Das Subtrahieren von 3 von 2 gibt -1, an dem der Modulo-10-Arithmetik in diesem Fall hereinkommt. In diesem Fall wird -1 um 9 durch Zugabe von zehn. 3 – 3 = 0 und 4 – 7 = 7, Mod-10. Meine Karte hat jetzt 0907 darauf geschrieben.

Jetzt entschlüsseln wir uns. Blick auf die Karte, sehe ich ein 0 und füge ein 0 hinzu und füge den 1. 9 + 3 = 12 hinzu, also müssen wir zehn zehn subtrahieren, um 2 zu erreichen. Lassen Sie alle führenden 1s fallen.) 0 + 3 = 3 und 7 + 7 = 14 -> 4 <. Ich tippe 1234 ein, und das Geld ist mein! Sobald Sie den Hang haben, Ihre geheime Anzahl an jede andere Nummer hinzuzufügen, werden Sie digit-wise mod-10 überrascht, wie schnell es funktioniert. Probieren Sie es aus und sehen Sie, ob Sie innerhalb von zehn Minuten gut darin werden. Einmalige Pads Ein Einmalkissen ist sowohl das einfachste symmetrische Verschlüsselungsschema und auch vollständig unzerbrechlich. Es hat drei entscheidende Merkmale, von denen zwei oben demonstriert wurden, und deren von ihnen falsch ist, können katastrophal sein. Das wichtigste Merkmal eines OTP besteht darin, dass das Kennwort zufällig sein muss, und die gleiche Länge wie der Text, den er verschlüsselt - daher das vierstellige Geheimnis für die PIN. In einem OTP dreht sich alles um das Geheimnis, was auch der Achilles-Fersen ist. Bei einer vierstelligen Zahl ist ein vierstelliges Geheimnis kein Problem. Stellen Sie sich jedoch vor, dass Sie Gigabyte verschlüsselte Fotos Ihres Urlaubs an einen Freund senden möchten. Das ist viel Schlüsselmaterial, um sich auf Hand und Geheimnis zu halten. Original von [matt_crypto], öffentlicher DomainsEcond, der Methode der Kombination der Nachricht mit dem Geheimnis, muss der Modulo-Arithmetik ähnlich sein, indem sie den Satz verschlüsselter Zeichen und den Satz von Klartextzeichen - der PIN in unserem Beispiel - in unserem Beispiel - zuordnen müssen eins zu eins. Mod-10 gewährleistet dies leicht: Beide befinden sich im Bereich von 0-9. Vielleicht sind Sie mit dem XOR-Betreiber auf binären Daten vertraut, das ist das gleiche wie entweder Addition or subtraction, mod-2. ( 0 + 0 = 0, 0 + 1 = 1, 1 + 0 = 1, and 1 + 1 = 2 -> 0. QED.) You can also use letters and wrap the alphabet around at “z” like the Caesar cipher or ROT13, which is just mapping the alphabet into numbers and doing math mod-26.

Third, and maybe this is a corollary of the first, you shouldn’t re-use the secret in a one-time pad. You’d think that this was obvious, since it’s even in the name of the encryption method, but it’s hard to do in practice. and in fact, my PIN-encryption scheme breaks this rule by using the same secret across multiple keys. We’ll get into that soon.

Messing up the perfect Encryption

Why is a OTP unbreakable? breaking most encryption schemes often boils down to probability and statistics. For instance, if you encrypt a text with the Caesar cipher above, each letter in the plaintext is mapped to another single letter every time it occurs in the ciphertext. If you know that the original text is in English, where the most commonly used letter is “e”, it’s a good bet that if “q” is the most common letter in the ciphertext, it stands for “e”. That is, we find statistical similarities between the plaintext and the ciphertext, and use them to make a bridge between the two.

Using a secret key that is as long as the plaintext, and randomly chosen, breaks any statistical relationship with the ciphertext. given a specific ciphertext written down on my card, every PIN from 0000 to 9999 is possible, and if the key was chosen randomly, is equally likely. There is no information about the plaintext in the ciphertext — that’s essentially Claude Shannon’s proof (absolutely classic PDF) in a nutshell. and that’s why an OTP is unbreakable.

DIANA one-time Pad [US NSA], Public DomainThis is actually the key to understanding the field of cryptography: it is an attempt to scramble up the information about the plaintext during the encryption process so that even though a shorter key is used, no statistically relevant traces of the plaintext remain. This desire for short keys isn’t just a matter of convenience either: imagine that you and Hackaday had to previously exchange 500 KiB of random data just to download this article and read it. imagine the length of the WiFi password that you’d have to write down for guests! This is the sense in which the OTP is trivial and uninteresting — it may be unbreakable, but the secrets are just too long for most applications. real crypto is about finding algorithms that break the statistical relationship with a minimum of key material.

With that in mind, you can screw up an OTP implementation by using a short or non-random password. imagine using 1 as your password and repeating it as necessary; our ciphertext would read 2345, and the PIN would be guessed on the second try. You also want to use a random password; picking 0000 because it makes the math easy is the only thing worse than the above. (Although, strictly speaking, I’d re-roll if I got 0000, 1111, 9999, 1234, 4321, or similar.) Anyway, don’t use your birthday. Old phone numbers of childhood friends might be acceptable.

The role of modulo arithmetic is a little more subtle. Whatever function is used, the set of possible characters in the plaintext has to map one-to-one with the ciphertext. Warum? imagine that you used simple addition instead of mod-10 addition. To get the last digit of our PIN ciphertext, we used 4 – 7 = -3 -> 7 and decrypted with 7 + 7 = 14 -> 4. If we wrote down -3 instead, an attacker would know that our last digit couldn’t be greater than 6 because adding 9, the maximum value, gives only 6. We’ve leaked information by having a larger set in the ciphertext than in the plaintext.

And that leaves the last way to mess up: re-using the “one-time” pad. Obvious, right? Falsch.

Lorenz Machine, Public Domain
On one hand, reuse is a definite liability. Re-using a password in a very similar encryption scheme broke “Tunny”, an important code during WWII. A 4,000 character encrypted message was sent but not received correctly. The sender re-sent the message, with the same secret but made small changes in the text, using different abbreviations and so on. This gave the Allies enough to break Tunny and reverse engineer the machine that encrypted it. Spiel ist aus.

Here’s the math that made the Tunny decrypt work, and should convince you to almost never reuse a key. If we encode the messages A and B with the secret key C, and someone overhears both, they can just mod them together to get (A mod C) mod (B mod C) = (A mod B) mod C mod C = A mod B, where mod is the bitwise or number-wise modulo operator that we’re now used to. since taking the binary modulo is its own reverse, the result is something that’s related to both plaintexts, and independent of the secret key.

From here, comparing smart guesses for A and B and comparing them with the A mod B result can break the code. So if you’re pretty sure that “attack” appears in both texts (crypto types always encrypt “attack at dawn”),Dann können Sie in verschiedenen Positionen moddding “Angriff” zusammen versuchen, bis Sie ein Match mit einem Mod B erhalten.

Ein Überraschungsende.

Aber hier ist der letzte Twist! Wir können davon entfernen, den geheimen Schlüssel über alle unsere Bankkarten, auch trotz der obigen Mathematik, wiederverwendet. Warum? weil die Pins selbst zufällig sind. Im Gegensatz zu den in der Kriegszeit gesendeten Natürlichkeitsnachrichten ist ein Mod B ebenso zufällig wie ein Mod C, wenn sowohl A als auch B zufällige Pins sind.

So erinnert sich ein Hacker, der sich an Pins erinnert: Wenn Sie viel über das einmalige Pad lernen, wie man es brechen kann, und wie es trotzdem nützlich ist, wenn die Nachricht, die es zum Schutz muss, ist kurz. Und wie, für bestimmte Nachrichten können Sie die Regeln sogar brechen.

Leave a Reply

Your email address will not be published. Required fields are marked *

Related Post