Ich denke es gibt einige Missverständnisse hier zum Thema SHA-3 Algorithmus und der allgemeinen Software Sicherheit.
Korrekt ist dass eine US Behörde namens National Institute of Standards and Technology (NIST), die für Standardisierungsprozesse zuständig ist, ein Wettbewerb organisiert hat um den Nachfolger für SHA-2 zu bestimmen. Es nahmen viele Teams an der Ausschreibung teil. Der Algorihtmus namens Keccak, der von Guido Bertoni, Michaël Peeters und Gilles Van Assche entwickelt wurde, setzte sich durch. Der NIST hat einige Parameter von Keccak verändert und diese veränderte Version zum neuen SHA-3 Standard erklärt. Hierzu kann man im Buch Mastering Ethereum folgendes lesen:
However, during the period when Ethereum was developed, the NIST standardization was not yet finalized. NIST adjusted some of the parameters of Keccak after the completion of the standards process, allegedly to improve its efficiency. This was occurring at the same time as heroic whistleblower Edward Snowden revealed documents that imply that NIST may have been improperly influenced by the National Security Agency to intentionally weaken the Dual_EC_DRBG random-number generator standard, effectively placing a backdoor in the standard random number generator. The result of this controversy was a backlash against the proposed changes and a significant delay in the standardization of SHA-3. At the time, the Ethereum Foundation decided to implement the original Keccak algorithm, as proposed by its inventors, rather than the SHA-3 standard as modified by NIST.
Da aber diverse Kontroversen um diese US Behörden existieren entstand eine Spaltung. Obwohl der NIST ihre eigene Keccak Version zum SHA-3 Standard erklärt haben, nutzen viele heute immer noch die ursprüngliche Keccak Variante. Beide Varianten produzierten anhand eines gleichen Strings unterschiedliche Hashes. Bei der Implementierung müssen sich die Entwickler also immer zwischen SHA-3 und Keccak entscheiden. Und so wie ich das verstehe nutzt Bitcoin den SHA-3 Standard, also die vom NIST veränderte Keccak Version während z.B. Ethereum die unveränderte Keccak Variante nutzt.
Heißt das nun der SHA-3 Standard von NIST enthält eine Hintertür? Nein. Es geht einfach darum dass der NIST den Algorihtmus verändert hat. Diese Änderungen beeinträchtigen offiziell die Sicherheit des Algorithmus nicht oder nur vernachlässigbar gering. Offiziell bedeutet dass bisher niemand beweisen konnte dass durch die NIST Änderungen der Algorihtmus geknackt werden kann.
Die Aussage dass eine mögliche Schwachstelle in SHA-3 von Informatikern bisher längst bemerkt worden wäre ist in mehrerer Hinsicht falsch. Das Alter einer Software und dessen Verbreitung stellt keine Garantie gegen Sicherheitslücken dar. Es gibt immer wieder Fälle wo in Jahrzehnte altem Code Sicherheitslücken gefunden werden. Hier ein Beispiel für ein 17 Jahre alte Sicherheitslücke in einer weit verbreiteten Software:
Sicherheitslücken die zu einer Manipulation der Software führen muss man von kryptographischen Prozessen unterscheiden. Ein Bitcoin Programm, das den Bitcoin Protokoll implementiert, kann Sicherheitslücken haben. Das ist nicht so kritisch. Wenn man in so einer Software unerlaubte Operationen ausführt, die kryptographische Vorgaben missachten, dann wird das übrige Netzwerk diese nicht umsetzen. Kritisch wäre es nur wenn das gesamte Bitcoin Netzwerk die selbe Software nutzt. Dann wäre es theoretisch denkbar das alle Netzteilnehmer das Bitcoin Protokoll verletzen. Es wäre dann ein Art ungewollter Hardfork das die Bitcoin Regeln verletzt bzw. verändert. Dieses Szenario ist aber äußerst unwahrscheinlich.
Was die mathematische Sicherheit kryptographischer Funktionen wie SHA-3 angeht ist es nochmal anders. Das schauen sich dann auch eher Mathematiker an und weniger die Informatiker. Und in der Mathematik ist es so dass das Wissen über mathematische Strukturen und Gesetzmäßigkeiten sich mit der Zeit wandelt. Neue Erkenntnisse ermöglichen neue Wege mit Zahlen umzugehen. Und kein Mathematiker kann prinzipiell ausschließen dass der SHA-3 Algorithmus eine mathematische Schwachstelle enthält. Oder um genauer zu sein bisher gab es keinen solchen mathematischen Beweis. Die Mathematik ist wie ein unendlicher Dschungel wo man immer wieder was neues entdecken kann. Und manche Erkenntnisse führen dazu das einst als sicher betrachtete Konstrukte nicht mehr sicher sind.
Und an diesem Punkt kommen die Zweifel an offiziellen Standards. Die NSA gehört zu den größten Arbeitgebern für Mathematiker und Kryptographen. Wie wahrscheinlich ist es dass die NSA trotz massiver Kapazitäten an Köpfen und Technik auf dem selben Stand ist wie das öffentliche Wissen? Es ist durchaus möglich dass die NSA in einigen Bereichen exklusives Wissen angesammelt hat.
Aber niemand weiß in welchen Bereichen die NSA mehr weiß und welche Algorithmen davon wirklich betroffen sind. Man muss auch beachten das die NIST Standards auch US Behörden betreffen. Man kann sich fragen inwiefern die USA unsichere Algorithmen empfehlen, in einer Zeit wo auch Mächte wie China große Kapazitäten besitzen. Man will den eigenen Behörden und Unternehmen ja auch kein Standard aufdrücken was die Spionage für ausländische Mächte ebenfalls vereinfacht.
Einfach zu behaupten der SHA-3 Standard von NIST sei unsicher ist eine sehr gewagte Behauptung.
Wie kommt man eigentlich zu so einer Gewissheit? Wenn die NSA einen leistungsfähigen Quantencomputer entwickelt hat und diesen geheim hält, wie sollen wir davon erfahren? Man kann nicht einfach davon ausgehen dass dieses Wissen einfach so in die Öffentlichkeit schwappt.
Und solange es keinen massiven Angriff auf Bitcoin gibt wird man die Existenz einer solchen Technik vorerst auch nicht bemerken.
Ich glaube die Fähigkeiten von Quantencomputern sind so kritisch. Bevor diese Technologie offiziell zur Verfügung steht, wird es zuerst eine ganze Weile exklusive Technologie weniger Staaten bleiben. Mit technologischem Fortschritt von großer Tragweite ist es oft so. Der Staat besitzt es zuerst und erst später die Öffentlichkeit. Da wo heute Google oder IBM stehen im Bezug auf Quantencomputer stand die NSA vielleicht in den 80er oder 90er.
Als die Allierten damals die Enigma Verschlüsselt geknackt haben, haben sie auch nicht sämtliche entschlüsselte Botschaften militärisch verwertet. Denn sonst hätte der Feind bemerkt dass ihre Verschlüssel geknackt ist und nichts mehr taugt. Ich denke heute wäre das nicht anders. Wenn man etablierte kryptographische Methoden knackt, wird man das so nutzen dass es möglichst nicht auffällt.