Lyra2

Lyra2 ist ein speicherfestes Passwort-Hashing-Schema, das auch kryptografisches Schlüsselmaterial ableiten kann. Es wurde von Marcos A. Simplicio Jr., Leonardo C. Almeida, Ewerton R. Andrade, Paulo C. F. dos Santos und Paulo S. L. M. Barreto an der Universität von São Paulo entworfen.[1]
Lyra2 war Finalist beim Passwort-Hashing-Wettbewerb 2013–2015 und erhielt besondere Anerkennung. Argon2, nicht Lyra2, wurde als Gewinner des Wettbewerbs ausgewählt.[2]
Zweck
Von Menschen ausgewählte Passwörter enthalten normalerweise weniger Entropie als kryptografische Schlüssel. Wenn eine Passwortdatenbank oder eine verschlüsselte Datei abgerufen wird, kann ein Angreifer die Vermutungen offline testen. Ein Passwort-Hashing-Schema erhöht die Kosten für jede Schätzung, da es konfigurierbare Berechnungen und bei einem speicherintensiven Design erheblichen Speicher erfordert.
Lyra2 gehört zu diesem passwortbasierten Zweig der größeren Key derivation function-Familie. Es akzeptiert ein Passwort, Salt, die gewünschte Ausgabelänge und Kostenparameter. Seine Ausgabe kann je nach Anwendung als Passwortprüfer gespeichert oder als Schlüsselmaterial verwendet werden.[1] Ein Salt trennt Datensätze, die dasselbe Passwort verwenden; es ist normalerweise nicht geheim.
Design
Lyra2 besteht aus einem kryptografischen sponge, einer Konstruktion mit einem internen Zustand, der Eingaben absorbiert und später pseudozufällige Ausgaben ausdrückt. Der Algorithmus speichert Zwischenwerte in einer Speichermatrix und ruft sie während der Verarbeitung erneut auf. Das Verwerfen von Teilen dieser Matrix, um Speicherplatz zu sparen, zwingt einen Auswerter dazu, Werte neu zu berechnen, was den Zeit-Speicher-Kompromiss kostspielig machen soll.[1]
Die Spezifikation unterteilt die Bewertung in drei große Phasen:
- Bootstrapping und Setup absorbieren das Passwort, Salt und Parameter und initialisieren dann die Speichermatrix.
- Wandering überprüft und modifiziert Zeilen der Matrix entsprechend den Werten, die aus dem sich entwickelnden Schwammzustand abgeleitet werden. Der Zeit-Kosten-Parameter steuert wiederholte Arbeiten.
- Wrap-up absorbiert einen endgültigen Matrixwert und quetscht die angeforderte Ausgabe aus dem Schwamm.
Die wichtigsten Kostenparameter sind die Anzahl der Wanderdurchgänge (T) und die Abmessungen der Speichermatrix: Zeilen (R) und Spalten (C). Bei einer Sponge-Bitrate von b belegt die Matrix b × R × C Bits. Die Ausgabelänge und die zugrunde liegenden Einstellungen für Permutation, Bitrate, Rotation und reduzierte Runde des Schwamms sind ebenfalls Teil der Spezifikation.[1] Diese Konfigurierbarkeit ermöglicht es einem Implementierer, die Verarbeitungszeit zu erhöhen, ohne unbedingt den Speicher zu erhöhen, oder eine größere Matrix für eine Plattform mit mehr Speicher auszuwählen.
Das Papier beschreibt zwei benannte Erweiterungen. Lyra2-δ ändert den Anteil der Matrixzellen, die während des Wanderns erneut besucht werden, um die Nutzung der Speicherbandbreite anzupassen. Lyra2p führt mehrere synchronisierte Sponge-Instanzen über Abschnitte einer gemeinsam genutzten Matrix aus, sodass eine legitime Multicore-Plattform die Speichernutzung erhöhen oder ohne die gleiche Erhöhung der Latenz arbeiten kann.[1] Dies sind parametrisierte Varianten des Forschungsdesigns, keine unabhängigen Standards.
Sicherheitsbegründung
Die Autoren von Lyra2 haben das sich ändernde Speicherzugriffsmuster und die wiederholten Zeilenaktualisierungen entworfen, um Angreifer zu bestrafen, die weniger Speicher als die konfigurierte Menge behalten. Eine verworfene Zeile muss möglicherweise aus einem früheren Zustand wiederhergestellt und nach späteren Aktualisierungen erneut wiederhergestellt werden, sodass die Reduzierung des Spitzenspeichers zusätzliche Arbeit mit sich bringt. Die Autoren versuchten auch, den Widerstand gegen Seitenkanalbeobachtung mit dem Widerstand gegen Implementierungen mit kostengünstigem, langsamerem Speicher in Einklang zu bringen und die Kosten für dedizierte FPGA- oder ASIC-Implementierungen zu erhöhen.[1] Dies sind Designziele und Analysen aus dem Papier; Sie garantieren nicht, dass jede Implementierung oder jeder Parametersatz sicher ist.
Die Setup-Phase verwendet ein vorhersehbares Zugriffsmuster, während die Wanderphase Zeilen aus dem sich entwickelnden internen Status auswählt. Die Unterscheidung spiegelt einen Kompromiss wider: Der datenabhängige Zugriff kann den Widerstand gegen einige Strategien mit geringem Arbeitsspeicher erhöhen, kann jedoch Informationen über Caches oder andere Seitenkanäle offenlegen. Die Alternativen und Varianten des Papiers ermöglichen es den Implementierern, verschiedene Punkte in diesem Kompromiss zu wählen, was bedeutet, dass die genaue Version und Konfiguration Teil jedes Sicherheitsanspruchs sind.[1]
Das Passwort-Hashing bleibt durch die Passwortqualität und die betrieblichen Optionen begrenzt. Eine niedrige Speicher- oder Zeiteinstellung reduziert die Angriffskosten, während eine übermäßige Einstellung einen Denial-of-Service ermöglichen kann. Implementierungen erfordern außerdem eindeutige Salts, authentifizierte Parameterspeicherung, gegebenenfalls Vergleiche mit konstanter Zeit, begrenzte Eingabegrößen und einen Migrationsplan für stärkere Einstellungen.
Passwort-Hashing-Wettbewerb
Der Passwort-Hashing-Wettbewerb lud zur Einreichung öffentlicher Vorschläge für einen modernen Passwort-Hashing-Standard ein. Lyra2 erreichte die Endrunde und war neben Catena, Makwa und Yescrypt eines von vier Programmen, die eine besondere Anerkennung erhielten. Die Jury wählte Argon2 im Juli 2015 zum Gesamtsieger.[2]
Durch die besondere Anerkennung wurde Lyra2 als bemerkenswertes Forschungsdesign und nicht als allgemeine Empfehlung für den Einsatz anerkannt. Aktuelle Protokoll- oder Plattformrichtlinien können eine andere Funktion spezifizieren. RFC 9106 bietet beispielsweise eine implementierterorientierte Spezifikation und empfohlene Profile für Argon2id.[3]
Verwendung als Arbeitsnachweis
Modifizierte Konstruktionen mit dem Namen Lyra2 wurden in verkettete Proof-of-Work-Algorithmen aufgenommen, die von einigen Kryptowährungen verwendet werden, darunter Lyra2RE und Lyra2REv2. Diese Mining-Algorithmen kombinieren mehrere Funktionen und können die Parameter oder Rolle von Lyra2 ändern. Ihre Verwendung sollte nicht als Beweis dafür gewertet werden, dass das ursprüngliche Passwort-Hashing-Schema für jede Mining- oder Passwort-Speicheranwendung geeignet ist.
Implementierungsstatus
Die Autoren veröffentlichten mit dem Wettbewerbsbeitrag Referenzmaterial und Code. Anwendungen sollten die genaue Version und die Parameter identifizieren, die sie implementieren. Das Kopieren des Algorithmus aus dem sekundären Pseudocode, das Weglassen der Validierung oder die Auswahl veralteter Einstellungen kann die Interoperabilität beeinträchtigen und die beabsichtigten Kostenannahmen ungültig machen.
Referenzen
- ↑ 1,0 1,1 1,2 1,3 1,4 1,5 1,6 Marcos A. Simplicio Jr. et al., “Lyra2: Efficient Password Hashing with High Security against Time-Memory Trade-Offs”, 2015
- ↑ 2,0 2,1 Password Hashing Competition, “Candidates, finalists and special recognitions”, accessed 13 September 2026
- ↑ Alex Biryukov et al., RFC 9106, “Argon2 Memory-Hard Function for Password Hashing and Proof-of-Work Applications”, September 2021