THEORY — P vs NP und warum SHA-256 als schwer gilt
Begleitnotiz zum Laborlog (README.md). Zielgruppe: erfahrene Softwareentwickler, die die
Mathematik hinter "P vs NP" und hinter der vermuteten Härte kryptografischer Hashfunktionen
verstehen wollen. Keine Angriffsrezepte, nur Begriffe, Ergebnisse und Quellen.
1. P, NP, NP-vollständig
Entscheidungsproblem. Eine Sprache L ⊆ {0,1}* — "Ist die Eingabe x in L?". Komplexität wird in der Eingabelänge n = |x| gemessen, und zwar asymptotisch und im schlechtesten Fall.
- P: Probleme, die eine deterministische Turingmaschine in Zeit O(n^k) für ein festes k
entscheidet. Faustregel "effizient lösbar".
- NP: Probleme, bei denen jede Ja-Instanz einen kurzen Zeugen (Zertifikat) w mit
|w| ≤ poly(n) besitzt, den ein Polynomialzeit-Verifizierer V(x, w) prüfen kann.
Faustregel "Lösung schwer zu finden (vielleicht), aber leicht zu prüfen". Äquivalent:
von einer nichtdeterministischen Maschine in Polynomialzeit entscheidbar.
- Trivial gilt P ⊆ NP. Offen ist, ob P = NP. Das ist eines der sieben
Millennium-Probleme des Clay Mathematics Institute.
- NP-schwer: Jedes NP-Problem lässt sich in Polynomialzeit darauf reduzieren
(Karp-Reduktion, A ≤ₚ B). **NP-vollständig** = NP-schwer *und* in NP.
- Cook–Levin-Satz (Cook 1971, Levin 1973): SAT (Erfüllbarkeit boolescher Formeln) ist
NP-vollständig. Karp (1972) zeigte danach 21 weitere klassische Probleme als NP-vollständig
(Clique, Rucksack, Hamiltonkreis, ...). Ein Polynomialzeitalgorithmus für *ein*
NP-vollständiges Problem ergäbe P = NP.
Intuition für Entwickler: Ein NP-Problem ist ein Suchproblem mit einem schnellen
Unit-Test. SAT ist "universell", weil man jeden Polynomialzeit-Verifizierer als Schaltkreis
hinschreiben und den Schaltkreis in eine CNF-Formel übersetzen kann (Tseitin-Kodierung). Genau
das macht sha_sat.py mit (reduzierten Runden von) SHA-256.
2. Warum ein Hash-Urbild "in NP" liegt — und die Feinheit dabei
Sei H eine Hashfunktion. Die Suchfrage "finde x mit H(x) = y" hat einen offensichtlichen Zeugen: x selbst. Prüfen heißt H(x) einmal berechnen — für SHA-256 linear in der Nachrichtenlänge. Als Entscheidungsproblem formuliert (damit man Suche per Bit-für-Bit-Präfixabfrage darauf zurückführen kann):
PRE_H = { (y, p, n) : es gibt x mit |x| ≤ n, x beginnt mit Präfix p, und H(x) = y }
Der Zeuge ist x, der Verifizierer rechnet H(x) und vergleicht → PRE_H ∈ NP. Mit P = NP könnte man durch ≤ n Präfixabfragen ein Urbild in Polynomialzeit konstruieren (Suche-auf-Entscheidung- Reduktion). Daher die verbreitete Aussage "P = NP bricht die Kryptografie".
Die Feinheit: SHA-256 ist eine feste, endliche Funktion mit 256 Bit Ausgabe. Asymptotische Komplexität ist über endlichen Objekten bedeutungslos: Jedes endliche Problem ist formal O(1) (eine Nachschlagetabelle mit 2^256 Einträgen ist "konstant"). Saubere Aussagen benötigen eine Familie H_n (z. B. Ausgabelänge, Wortbreite oder Rundenzahl wachsen mit n). Für SHA-256 selbst ist die relevante Größe daher keine Komplexitätsklasse, sondern eine konkrete Zahl: Bitoperationen bzw. Hashauswertungen, die ein bester Angriff braucht ("konkrete Sicherheit", vgl. Bellare–Rogaway). Die Mini-SHA-Familie im Labor (Wortbreite 8/12/16) ist genau der Versuch, so eine Familie empirisch zu messen.
3. Warum ein Beweis von P = NP nicht automatisch einen praktischen Algorithmus liefert
- Riesige Polynome und Konstanten. P sagt nur "O(n^k) für irgendein k". Ein Algorithmus mit
n^1000 oder mit Konstante 2^1000 ist polynomiell und trotzdem völlig nutzlos
("galaktischer Algorithmus"). Reales Beispiel milderer Art: der AKS-Primzahltest (Agrawal,
Kayal, Saxena 2004) bewies PRIMES ∈ P, praktisch wird aber weiterhin mit den schnelleren
probabilistischen Tests (Miller–Rabin) gearbeitet.
- Nichtkonstruktive Beweise. Man kann die Existenz eines Polynomialzeitalgorithmus
beweisen, ohne ihn anzugeben. Prominent: Der Graph-Minor-Satz von Robertson–Seymour impliziert,
dass jede minorenabgeschlossene Graphklasse in Polynomialzeit erkennbar ist — über eine
endliche Liste verbotener Minoren, die man im Allgemeinen nicht kennt.
- Levins universelle Suche zeigt die Kehrseite: Falls P = NP, gibt es einen *explizit
angebbaren* Algorithmus, der NP-Suchprobleme in Polynomialzeit löst (er simuliert alle
Programme parallel und prüft deren Ausgaben). Er ist "optimal bis auf einen konstanten
Faktor" — aber dieser Faktor ist exponentiell in der Länge des unbekannten guten Programms.
Formal polynomial, praktisch wertlos.
- Endliche Größe zählt. Selbst ein n^3-Algorithmus nützt bei SHA-256 nur, wenn die
versteckte Konstante deutlich unter 2^256 bleibt — der Asymptotik ist das egal.
4. Warum P ≠ NP allein die Sicherheit von SHA-256 nicht begründet
Umgekehrt würde ein Beweis von P ≠ NP für Hashfunktionen fast nichts liefern:
- Worst Case vs. Average Case. NP-Schwere bedeutet: irgendwelche Instanzen sind schwer.
Kryptografie braucht, dass *zufällige* Instanzen (zufälliger Zielwert y = H(x) für zufälliges x)
fast immer schwer sind. Es gibt NP-vollständige Probleme, deren typische Instanzen leicht sind
(z. B. zufälliges 3-SAT weit weg von der Phasenübergangsschwelle).
- Einwegfunktionen. Das passende Konzept ist die Einwegfunktion f: effizient berechenbar,
aber für jeden effizienten Gegner ist die Wahrscheinlichkeit, zu f(x) bei zufälligem x
*irgendein* Urbild zu finden, vernachlässigbar. Bekannt: Existenz von Einwegfunktionen ⇒ P ≠ NP.
Die Umkehrung ist offen. Impagliazzos "Fünf Welten" (1995) beschreibt die möglichen Universen:
*Algorithmica* (P = NP), *Heuristica* (NP schwer nur im Worst Case), *Pessiland* (schwere
Durchschnittsprobleme, aber keine Einwegfunktionen), *Minicrypt* (Einwegfunktionen existieren,
Hashing/Signaturen möglich), *Cryptomania* (auch Public-Key). Wir *hoffen*, in Cryptomania zu
leben; bewiesen ist keine dieser Welten.
- Kein Reduktionsbeweis für SHA-256. Selbst wenn Einwegfunktionen existieren, folgt daraus
nicht, dass gerade SHA-256 eine ist. Für SHA-256 gibt es keine Reduktion auf ein
wohlstudiertes mathematisches Problem (anders als bei RSA/Faktorisierung oder Gitterverfahren).
Seine Sicherheit ist eine **heuristische, empirische Annahme**.
- Keine NP-Vollständigkeit. Hash-Urbilder sind vermutlich nicht NP-vollständig. Das ist
eher ein Merkmal: Probleme mit garantiert genau einer/wenigen Lösungen und "strukturlosem"
Verhalten passen schlecht zu NP-Vollständigkeit (vgl. die Klasse TFNP für totale
Suchprobleme, und den Befund, dass NP-vollständige Probleme unter plausiblen Annahmen keine
geeignete Basis für Einwegfunktionen liefern).
5. Warum SHA-256 trotzdem als schwer gilt
Generische Schranken. Für eine ideale Zufallsfunktion mit 256 Bit Ausgabe kostet - ein Urbild bzw. zweites Urbild ≈ 2^256 Auswertungen (Brute Force), - eine Kollision ≈ 2^128 (Geburtstagsparadoxon). Quantencomputer helfen nur polynomiell: Grover (1996) senkt die Urbildsuche auf ≈ 2^128 Quantenschritte; für Kollisionen bringen Quantenalgorithmen bei realistischen Kostenmodellen kaum Vorteil (Bernstein 2009). Zum Maßstab: 2^128 Operationen liegen jenseits jeder physikalisch plausiblen Rechenleistung; die gesamte Bitcoin-Mining-Leistung liegt grob bei 2^95 SHA-256- Auswertungen pro Jahr (Größenordnung 10^21 Hashes/s) — immer noch um den Faktor 2^33 unter 2^128.
Design. SHA-256 (NIST FIPS 180-4) ist eine Merkle–Damgård-Konstruktion über eine
Kompressionsfunktion mit 64 Runden aus Addition mod 2^32, Rotationen und bitweiser Logik
(ARX-Stil plus Ch/Maj). Die Mischung von Arithmetik über ℤ/2^32 und über GF(2) verhindert, dass
eine einzige algebraische Sichtweise die Funktion vereinfacht; der Nachrichtenexpansions-Plan
sorgt dafür, dass jedes Nachrichtenwort in vielen Runden wieder auftaucht. Nach wenigen Runden
ist jede Ausgabe ein hochgradiges, "zufällig aussehendes" Polynom der Eingabe (Lawineneffekt).
Die Laborbefunde spiegeln das: Cube-Summen sehen nach ~6 Vorwärtsrunden zufällig aus, und ab
Runde 17 ist das einfache Zurückrechnen nicht mehr möglich (README.md, Step 3).
Empirische Evidenz: Sicherheitsmarge. Jahrzehnte öffentlicher Kryptanalyse haben nur rundenreduzierte Varianten gebrochen. Größenordnung der veröffentlichten Ergebnisse (Stand der Literatur, grob): - praktische Kollisionen: 31 von 64 Schritten (Mendel–Nad–Schläffer 2013; Li–Liu–Wang,
EUROCRYPT 2024),
- semi-free-start-Kollisionen: ~39 Schritte,
- theoretische Urbildangriffe (deutlich unter 2^256, aber weit über praktikabel): ~45 Schritte
(Khovratovich–Rechberger–Savelieva, FSE 2012),
- Unterscheider: ~46 Schritte. Für die vollen 64 Runden ist nichts Besseres als generische Suche bekannt. Diese Lücke zwischen "gebrochen" und "voll" ist die Sicherheitsmarge — das eigentliche Argument der Praxis.
Generische Solver als Indiz. SAT-Solver sind sehr gut auf strukturierten industriellen
Instanzen, aber bei Hash-Urbildern finden sie keine Abkürzung: Im Labor skaliert CaDiCaL
grob mit 2^(0,8k) bei großer Konstante und ist für alle getesteten Größen langsamer als
Brute Force (README.md, Step 1/3). Das passt zur Erwartung, dass gut entworfene Hashfunktionen
keine Struktur bieten, die Konfliktlernen ausnutzen könnte.
6. Warum P vs NP so schwer zu beweisen ist (Barrieren)
Drei Ergebnisse zeigen, dass die naheliegenden Beweistechniken prinzipiell nicht reichen: - Relativierung (Baker–Gill–Solovay 1975): Es gibt Orakel A mit P^A = NP^A und Orakel B mit
P^B ≠ NP^B. Beweise, die nur Simulation/Diagonalisierung nutzen, gelten für alle Orakel und
können die Frage daher nicht entscheiden.
- Natural Proofs (Razborov–Rudich 1997): Eine große Klasse kombinatorischer
Schaltkreis-Untergrenzen-Beweise würde — falls sichere Pseudozufallsfunktionen existieren —
sich selbst widerlegen. Hübsche Pointe: Gerade die Existenz guter Kryptografie macht
"natürliche" Beweise von P ≠ NP unmöglich.
- Algebrisierung (Aaronson–Wigderson 2009): verallgemeinert die Relativierungsbarriere auf
algebraische Techniken wie Arithmetisierung.
Folge: Konsens in der Community ist P ≠ NP (Umfragen von Gasarch: deutliche Mehrheit), ein Beweis gilt aber als weit entfernt. Die Kryptografie verlässt sich deshalb nicht darauf, sondern auf konkrete, öffentlich geprüfte Annahmen und Sicherheitsmargen.
7. Kurzfassung
| Aussage | Status |
|---|---|
| Hash-Urbild prüfen ist leicht → Urbildsuche ∈ NP | wahr (für eine Familie H_n) |
| P = NP ⇒ SHA-256 praktisch gebrochen | nein, nicht automatisch (Konstanten, Nichtkonstruktivität, feste Größe) |
| P ≠ NP ⇒ SHA-256 sicher | nein (Worst vs. Average Case; keine Reduktion für SHA-256) |
| Einwegfunktionen existieren ⇒ P ≠ NP | wahr; Umkehrung offen |
| SHA-256 sicher | heuristische Annahme, gestützt auf Design + ~25 Jahre Kryptanalyse + Rundenmarge |
Quellen
- S. A. Cook, "The Complexity of Theorem-Proving Procedures", STOC 1971.
- L. A. Levin, "Universal Sequential Search Problems", Problemy Peredachi Informatsii, 1973.
- R. M. Karp, "Reducibility Among Combinatorial Problems", 1972.
- M. R. Garey, D. S. Johnson, Computers and Intractability, Freeman 1979.
- S. Arora, B. Barak, Computational Complexity: A Modern Approach, Cambridge UP 2009
(Kap. 2: NP; Kap. 9: Kryptografie; Kap. 23: Natural Proofs).
- L. Fortnow, "The Status of the P versus NP Problem", Communications of the ACM 52(9), 2009.
- S. Aaronson, "P =? NP", in Open Problems in Mathematics, Springer 2016.
- Clay Mathematics Institute, Millennium Prize Problems: "P vs NP" (S. Cook, offizielle
Problembeschreibung).
- R. Impagliazzo, "A Personal View of Average-Case Complexity", CCC 1995 (fünf Welten).
- O. Goldreich, Foundations of Cryptography, Vol. 1, Cambridge UP 2001 (Einwegfunktionen).
- T. Baker, J. Gill, R. Solovay, "Relativizations of the P =? NP Question", SIAM J. Comput. 1975.
- A. Razborov, S. Rudich, "Natural Proofs", JCSS 55, 1997.
- S. Aaronson, A. Wigderson, "Algebrization: A New Barrier in Complexity Theory", ACM TOCT 2009.
- M. Agrawal, N. Kayal, N. Saxena, "PRIMES is in P", Annals of Mathematics 160, 2004.
- N. Robertson, P. D. Seymour, "Graph Minors XX: Wagner's Conjecture", JCTB 92, 2004.
- NIST FIPS 180-4, Secure Hash Standard, 2015.
- P. Rogaway, T. Shrimpton, "Cryptographic Hash-Function Basics", FSE 2004 (Urbild-/Kollisionsbegriffe).
- L. K. Grover, "A Fast Quantum Mechanical Algorithm for Database Search", STOC 1996.
- D. J. Bernstein, "Cost Analysis of Hash Collisions: Will Quantum Computers Make SHARCS
Obsolete?", SHARCS 2009.
- F. Mendel, T. Nad, M. Schläffer, "Improving Local Collisions: New Attacks on Reduced SHA-256",
EUROCRYPT 2013.
- Y. Li, F. Liu, G. Wang, "New Records in Collision Attacks on SHA-2", EUROCRYPT 2024.
- D. Khovratovich, C. Rechberger, A. Savelieva, "Bicliques for Preimages: Attacks on
Skein-512 and the SHA-2 Family", FSE 2012.
- W. Gasarch, "The Third P =? NP Poll", SIGACT News 50(1), 2019.