Keccak-Funktion – Astha Yadav

Free Bitcoins: FreeBitcoin | BonusBitcoin

Coins Kaufen: Bitcoin.deAnycoinDirektCoinbaseCoinMama (mit Kreditkarte)Paxfull

Handelsplätze / Börsen: Bitcoin.de | KuCoinBinanceBitMexBitpandaeToro

Lending / Zinsen erhalten: Celsius NetworkCoinlend (Bot)

Cloud Mining: HashflareGenesis MiningIQ Mining


SHA ist eine Familie von kryptografischen Hash-Funktionen, die von NSA entwickelt wurden. SHA-0 und SHA-1 waren jedoch anfällig für Angriffe, weshalb NIST 2007 einen Wettbewerb zur Bestimmung von SHA-3 ausschrieb. Das Keccak-Team war der Gewinner des Wettbewerbs im Jahr 2012. Im Jahr 2014 nahm NIST einige Änderungen an der Keccak-Einreichung vor und veröffentlichte FIPS 202 (Federal Information Processing Standards). 2015 wurde es zum offiziellen SHA3.

Andere Anwendungen von Keccak neben der kryptografischen Hash-Funktion sind die Authentifizierung, Verschlüsselung und die Erzeugung von Pseudozufallszahlen. Ethereum verwendet ebenfalls den gleichen Keccak-Algorithmus, das Protokoll verwendet jedoch eine Version des Algorithmus.

Die Keccak-Funktion basiert auf der Schwammfunktion. Die Schwammfunktion bietet im Grunde eine besondere Möglichkeit, Hash-Funktionen zu verallgemeinern. Hierbei handelt es sich um eine Funktion, deren Eingabe eine Zeichenfolge mit variabler Länge ist und deren Ausgabe auf einer Permutation mit fester Länge basiert. Die Schwammkonstruktion besteht aus einigen Begriffen.

Abbildung 1: Schwammaufbau

Hier,

r: rate {Größe des Teils des Zustands, der geschrieben und gelesen wird}

b: Breite der Bitblöcke {Berechnet mit (5 x 5 x w) wobei w = pow (2, l). Hier haben wir l = 6 genommen, was b = 1600 ergibt.

c: capacity = b-r {Größe eines Teils des Zustands, der von Eingabe und Ausgabe unberührt bleibt}

d: Länge der Ausgabezeichenfolge

N: Länge der Eingabezeichenfolge

f: Permutationsfunktion (Absorptionsphase), Zustandstransformationsfunktion (Quetschphase)

Z: Bitfolge (die kombiniert wird, um eine Ausgabezeichenfolge der Länge d zu bilden)

Z = Schwamm[f,pad,r](N, d)

S: Zustand, der aus b Bits besteht und aus r und c besteht

Schritte, um die Ausgabe zu erhalten:

In der absorbierenden Phase:

  1. Die Eingabezeichenfolge sei N. Fülle die Eingabe mit der Auffüllfunktion auf und bezeichne das Ergebnis als P. Wir füllen die Eingabe mit der Länge auf, in der wir die Länge von P als n erhalten, wobei n = Länge (P) / r das Ergebnis als Ganzzahl erhält.

Hier ist die Auffüllfunktion ein 10 * 1-Muster, d. H. So etwas wie 1000… 01, wobei die Länge der Auffüllfunktion von 0 bis (r-1) variieren kann.

2. Brechen Sie nun das P in n aufeinanderfolgende Teile. Bezeichnen Sie diese Zeichenfolgen als P (0), P (1), …, P (N-1).

3. Nun initialisieren wir den Zustand S mit einer Folge von b '0'-Bits. In diesem Fall sind es 1600 Bits.

4. Nun für jedes P (i):

I. Addiere c Anzahl von 0 Bits zu P (i), so dass die endgültige Länge von P (i) b ist.

II. XOR (P (i), S).

III. Wenden Sie die Blockpermutationsfunktion auf Schritt II an. Das Ergebnis ist S (neu).

Übergang in die Quetschphase:

5. Initialisieren Sie eine leere Zeichenfolge Z.

6. Während Länge (Z) <d:

I. Hänge die ersten r Bits von S an Z an.

II. Wenn Z <d Bits ist, dann wende f auf S an. Das Ergebnis ist nun Snew.

7. Schneiden Sie die Bits Z bis d ab.

Kommen wir nun zu dem, was in den Permutationsblöcken passiert. Hier wird die Funktion f = Keccak-f verwendet[1600] für SHA3. Es wird eine Permutation verwendet, die aus AND-, NOT- und XOR-Operationen besteht. Der Zustand ist ein Array von 5 × 5 × w Bits, wobei w definiert ist als w = Leistung (2, 1). Da wir hier l = 6 verwenden, ist w = 1600. Wir verwenden also 1600 Bit als Länge der Eingabe S. Let ein[[ich][[ j][[k]sei bissig (5ich + j) × w + k des Eingangs. Diese Blockpermutationsfunktion verwendet 12 + 2l Runden mit fünf Schritten. Die fünf Schritte sind θ (Theta), ρ (rho), π (Pi), χ (Chi) und ι (Jota).

Fazit

Die am ursprünglichen Keccak-Algorithmus vorgenommenen Änderungen umfassen die Änderung des Paddings, mit der zukünftige Baum-Hashing-Modi sowie die aktuellen SHAKE-Ausgaben bei gleichen Sicherheitsparametern und Nachrichteneingaben unterschiedliche Digests generieren können.

Glückliches Lernen Learning

Free Bitcoins: FreeBitcoin | BonusBitcoin

Coins Kaufen: Bitcoin.deAnycoinDirektCoinbaseCoinMama (mit Kreditkarte)Paxfull

Handelsplätze / Börsen: Bitcoin.de | KuCoinBinanceBitMexBitpandaeToro

Lending / Zinsen erhalten: Celsius NetworkCoinlend (Bot)

Cloud Mining: HashflareGenesis MiningIQ Mining

By continuing to use the site, you agree to the use of cookies. more information

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.

Close