HASH

Die Klasse in Python 3

Perfektionierter RC4 von Ron Rivest mit N = 256 Spielkarten

Letzte Änderungen

Der Parameter a nimmt alle Werte von null bis 62 an, nicht 128 wie in Spritz oder 240 oder auch 241 wie zuvor. Vor der Ausgabe wird die Funktion Shuffle dreimal aufgerufen. Damit ist die Hashfunktion jetzt hundert Prozent sicher, wahrhaft sicher für die Ewigkeit. Die Funktion Shuffle wird in der Funktion Squeeze jetzt immer, für jeden Wert des Parameters a, aufgerufen.

Zufallszahlen

Kurz gefasst

N Karten mischen, im Kreis, einem Ziffernblatt mit zwei Zeigern, anordnen.

Folgendes wird so oft wiederholt wie Zufallswerte benötigt werden.

Ein Zeiger wird immer um eins weitergedreht, der zweite Zeigen um den Wert,
auf den der erste Zeiger zeigt. Der zweite Zeiger wird dann auf die Position gedreht,
auf die er zeigt. Die Karten, auf die beide Zeiger zeigen, werden vertauscht. Sie
weren so ständig weiter gemischt.
Der Wert, auf den der zweite Zeiger zeigt, ist der deterministisch berechnete Zufallswert.
Eine abweichende, ungerade Schrittweite w = 3, 5, 7, … ist ebenso gut.

Aufbauend auf dieser Idee, können wir auch eine einfache Hashfunktion konstruieren. Dies ist viel einfacher
und mindestens ebenso sicher wie SHA-2. Auch wenn SHA-2 wahrscheinlich sicher ist.

Spritz/RC4 ist noch besser entsprechend dem Motto:

Sensation

- vermeintlich sicherer NIST-Standard SHA-1 nach über 20 Jahren geknackt.


Eine Hashfunktion, die tatsächlich die Berechnung von Kollisionen praktisch zu 100 Prozent ausschließt.

SPRITZ-HASH ohne CRUSH

Quellcode in Python




Beliebigen Text eingeben und SPRITZ-HASH berechnen!
Message Digest (unverändert)