Eines fällt mir als Nicht-Kryptograf immer auf: Warum ist es so wichtig, Primzahlen zu verwenden? Was macht sie so besonders in der Kryptographie?
Hat jemand eine einfache kurze Erklärung? (Ich bin mir bewusst, dass es viele Grundierungen gibt und dass Angewandte Kryptographie die Bibel ist, aber wie gesagt: Ich möchte meinen eigenen kryptografischen Algorithmus nicht implementieren, und das, was ich gefunden habe, hat mein Gehirn explodieren lassen - keine 10 Seiten mathematischer Formeln Bitte :))
Danke für alle Antworten. Ich habe das akzeptiert, das mir das eigentliche Konzept am klarsten gemacht hat.
cryptography
primes
Michael Stum
quelle
quelle
a * b = 91
. Nun lösen Sie :13 * 7 = x
. Die zweite Gleichung ist viel schneller zu lösen (für einen Menschen oder einen Computer).Antworten:
Grundlegendste und allgemeinste Erklärung: Bei der Kryptographie dreht sich alles um die Zahlentheorie , und alle ganzzahligen Zahlen (außer 0 und 1) bestehen aus Primzahlen, sodass Sie sich in der Zahlentheorie häufig mit Primzahlen beschäftigen.
Insbesondere hängen einige wichtige kryptografische Algorithmen wie RSA entscheidend von der Tatsache ab, dass die Primfaktorisierung großer Zahlen lange dauert. Grundsätzlich haben Sie einen "öffentlichen Schlüssel", der aus einem Produkt von zwei großen Primzahlen besteht, die zum Verschlüsseln einer Nachricht verwendet werden, und einen "geheimen Schlüssel", der aus diesen beiden Primzahlen besteht, die zum Entschlüsseln der Nachricht verwendet werden. Sie können den öffentlichen Schlüssel öffentlich machen, und jeder kann ihn zum Verschlüsseln von Nachrichten an Sie verwenden, aber nur Sie kennen die Hauptfaktoren und können die Nachrichten entschlüsseln. Alle anderen müssten die Zahl berücksichtigen, was angesichts des aktuellen Standes der Zahlentheorie zu lange dauert, um praktikabel zu sein.
quelle
Einfach? Jep.
Wenn Sie zwei große Primzahlen multiplizieren, erhalten Sie eine große Nicht-Primzahl mit nur zwei (großen) Primfaktoren.
Das Faktorisieren dieser Zahl ist eine nicht triviale Operation, und diese Tatsache ist die Quelle vieler kryptografischer Algorithmen. Siehe Einwegfunktionen für weitere Informationen.
Nachtrag: Nur ein bisschen mehr Erklärung. Das Produkt der beiden Primzahlen kann als öffentlicher Schlüssel verwendet werden, während die Primzahlen selbst als privater Schlüssel verwendet werden. Alle Vorgänge an Daten, die nur rückgängig gemacht werden können, wenn einer der beiden Faktoren bekannt ist, sind für die Entschlüsselung nicht trivial.
quelle
Hier ist ein sehr einfaches und allgemeines Beispiel.
Der RSA-Verschlüsselungsalgorithmus, der üblicherweise auf Websites für sicheren Handel verwendet wird, basiert auf der Tatsache, dass es einfach ist, zwei (sehr große) Primzahlen zu nehmen und zu multiplizieren, während es äußerst schwierig ist, das Gegenteil zu tun - was bedeutet: Nehmen Sie a sehr große Zahl, gegeben, dass es nur zwei Primfaktoren hat, und finden Sie sie.
quelle
Es sind nicht so sehr die Primzahlen selbst wichtig, sondern die Algorithmen, die mit Primzahlen arbeiten. Insbesondere das Finden der Faktoren einer Zahl (eine beliebige Zahl).
Wie Sie wissen, hat jede Zahl mindestens zwei Faktoren. Primzahlen haben die einzigartige Eigenschaft, dass sie genau zwei Faktoren haben: 1 und sich selbst.
Der Grund, warum Factoring so wichtig ist, ist, dass Mathematiker und Informatiker nicht wissen, wie man eine Zahl faktorisiert, ohne einfach jede mögliche Kombination auszuprobieren. Versuchen Sie also zuerst, durch 2, dann durch 3, dann durch 4 usw. zu teilen. Wenn Sie versuchen, eine Primzahl zu faktorisieren - insbesondere eine sehr große -, müssen Sie (im Wesentlichen) jede mögliche Zahl zwischen 2 und dieser großen Primzahl versuchen. Selbst auf den schnellsten Computern wird es Jahre (sogar Jahrhunderte) dauern, bis die in der Kryptographie verwendeten Primzahlen berücksichtigt sind.
Es ist die Tatsache, dass wir nicht wissen, wie wir eine große Anzahl effizient faktorisieren können, die kryptografischen Algorithmen ihre Stärke verleiht. Wenn eines Tages jemand herausfindet, wie es geht, werden alle derzeit verwendeten kryptografischen Algorithmen veraltet sein. Dies bleibt ein offenes Forschungsgebiet.
quelle
n
ist nicht Prime &n = a * b
. Wenna > sqrt(n)
,b
muss kleiner sein und umgekehrt, sonsta * b > n
selbst, was unseren ursprünglichen Anspruch negieren würde. Um nach Prime zu suchen, prüfen wir nur bis sqrt.Weil niemand einen schnellen Algorithmus kennt, um eine ganze Zahl in ihre Primfaktoren zu zerlegen. Es ist jedoch sehr einfach zu überprüfen, ob sich eine Reihe von Primfaktoren mit einer bestimmten Ganzzahl multipliziert.
quelle
Es gibt einige gute Ressourcen, um Krypto hochzufahren. Hier ist eine:
Von dieser Seite:
Bruce Schneiers Buch Applied Cryptography ist ein weiteres. Ich kann dieses Buch nur empfehlen. Es macht Spaß zu lesen.
quelle
Um etwas konkreter darüber zu sein, wie RSA Eigenschaften von Primzahlen verwendet, hängt der RSA-Algorithmus entscheidend vom Euler-Theorem ab , das besagt, dass für relativ Primzahlen "a" und "N" a ^ e zu 1 Modulo N kongruent ist , wobei e ist die Totientenfunktion des Eulers von N.
Woher kommen Primzahlen? Um die Euler-Totientenfunktion von N effizient zu berechnen, muss die Primfaktorisierung von N bekannt sein. Im Fall des RSA-Algorithmus, bei dem N = pq für einige Primzahlen "p" und "q" ist, ist e = (p - 1) (q - 1) = N - p - q + 1. Ohne Kenntnis von p und q ist die Berechnung von e jedoch sehr schwierig.
Noch abstrakter verwenden viele krypotgrafische Protokolle verschiedene Falltürfunktionen, Funktionen , die einfach zu berechnen, aber schwer zu invertieren sind. Die Zahlentheorie ist eine reichhaltige Quelle für solche Falltürfunktionen (wie die Multiplikation großer Primzahlen), und Primzahlen sind für die Zahlentheorie von zentraler Bedeutung.
quelle
Ich würde das Buch A Mathematical Journey In Code vorschlagen . Das Buch hat ein schönes bodenständiges Gefühl, was überraschend ist, da es sich um Kryptographie handelt. Das Buch fasst Sarah Flanneries Reise vom Lernen von Rätseln als Kind zur Entwicklung des Cayley-Purser (CP) -Algorithmus im Alter von 16 Jahren zusammen. Es bietet eine erstaunlich detaillierte Erklärung der Einwegfunktionen, der Zahlentheorie und der Primzahlen und ihrer Beziehung zu ihnen Kryptographie.
Was dieses Buch noch spezifischer für Ihre Frage macht, ist, dass Sarah versucht hat, einen neuen Algorithmus für öffentliche Schlüssel mithilfe von Matrizen zu implementieren. Es war viel schneller als die Verwendung von Primzahlen, aber es wurde eine Lücke gefunden, die es ausnutzen konnte. Es stellte sich heraus, dass ihr Algorithmus besser als privater Verschlüsselungsmechanismus verwendet wurde. Das Buch ist ein großartiger Beweis für die Verwendung von Primzahlen zur Verschlüsselung, da es den Test der Zeit und die Herausforderungen sehr kluger Menschen bestanden hat.
quelle
Eine weitere Ressource für Sie. Sicherheit jetzt! In Episode 30 (~ 30 Minuten Podcast, Link zum Transkript) wird über Kryptografieprobleme gesprochen und erklärt, warum Primzahlen wichtig sind.
quelle
Ich bin kein Mathematiker oder Kryptiker, daher hier eine äußere Beobachtung in Laienbegriffen (keine ausgefallenen Gleichungen, sorry).
Dieses ganze Thema mit Erklärungen über gefüllt ist HOW Primzahlen in der Kryptographie verwendet wird, ist es schwer , jemand in diesem Thread auf einfache Art und Weise zu erklären , findet WARUM Primzahlen verwendet werden ... wahrscheinlich , weil jeder , dass das Wissen für selbstverständlich.
Nur wenn man das Problem von außen betrachtet, kann eine Reaktion wie: Wenn sie jedoch die Summen von zwei Primzahlen verwenden, warum nicht eine Liste aller möglichen Summen erstellen, die zwei Primzahlen erzeugen können?
Auf dieser Site gibt es eine Liste von 455.042.511 Primzahlen, wobei die höchsten Primzahlen 9.987.500.000 ( 10 Stellen) sind.
Die größte bekannte Primzahl (Stand Februar 2015) ist 2 hoch 257.885.161 - 1, was 17.425.170 Stellen entspricht.
Dies bedeutet, dass es keinen Sinn macht, eine Liste aller bekannten Primzahlen und noch weniger aller möglichen Summen zu führen. Es ist einfacher, eine Zahl zu nehmen und zu überprüfen, ob es sich um eine Primzahl handelt.
Das Berechnen großer Primzahlen an sich ist eine monumentale Aufgabe. Die umgekehrte Berechnung von zwei Primzahlen, die sowohl von Kryptographen als auch von Mathematikern miteinander multipliziert wurden, ist heute schwer genug .
quelle
Kryptografische Algorithmen beruhen im Allgemeinen für ihre Sicherheit auf einem "schwierigen Problem". Die meisten modernen Algorithmen scheinen das Faktorisieren sehr großer Zahlen als schwieriges Problem zu verwenden. Wenn Sie zwei große Zahlen miteinander multiplizieren, ist die Berechnung ihrer Faktoren "schwierig" (dh zeitaufwändig). Wenn diese beiden Zahlen Primzahlen sind, gibt es nur eine Antwort, was es noch schwieriger macht und garantiert, dass wenn Sie die Antwort finden, es die richtige ist, nicht irgendeine andere Antwort, die zufällig das gleiche Ergebnis liefert.
quelle
Ich denke, was in der Kryptographie wichtig ist, sind nicht die Primzahlen selbst, aber es ist die Schwierigkeit des Problems der Primfaktorisierung
Angenommen, Sie haben eine sehr sehr große ganze Zahl, von der bekannt ist, dass sie aus zwei Primzahlen m und n besteht. Es ist nicht einfach, m und n zu finden. Ein Algorithmus wie RSA hängt von dieser Tatsache ab.
Übrigens gibt es ein veröffentlichtes Papier über Algorithmen, die dieses Problem der Primfaktorisierung in akzeptabler Zeit unter Verwendung eines Quantencomputers "lösen" können. Neuere Algorithmen in der Kryptographie stützen sich möglicherweise nicht mehr auf diese "Schwierigkeit" der Primfaktorisierung, wenn der Quantencomputer in die Stadt kommt :)
quelle
Weil Faktorisierungsalgorithmen mit jedem gefundenen Faktor erheblich schneller werden. Wenn Sie beide privaten Schlüssel als Primzahl festlegen, wird sichergestellt, dass der erste gefundene Faktor auch der letzte ist. Im Idealfall sind auch beide privaten Schlüssel nahezu gleichwertig, da nur die Stärke des schwächeren Schlüssels von Bedeutung ist.
quelle
Primzahlen werden hauptsächlich in der Kryptographie verwendet, da sie viel Zeit in Anspruch nehmen, um festzustellen, ob eine bestimmte Zahl eine Primzahl ist oder nicht. Für den Hacker wird ein Algorithmus, der viel Zeit benötigt, um den Code zu brechen, für ihn unbrauchbar
quelle