BLAKE cryptografische hash-functies kennisbank - Bitcoinsaltcoins.nl
Altcoins/Bitcoins traden bij Bitvavo met iDEAL - BONUS!

BLAKE cryptografische hash-functies kennisbank

BLAKE en BLAKE2 zijn cryptografische hash-functies gebaseerd op een idee van Dan Bernstein. Hij bedacht de ChaCha Stream Cipher. Net als SHA-2 zijn er twee varianten die verschillen in de woordgrootte. ChaCha werkt op een 4 x 4 reeks woorden. BLAKE combineert herhaaldelijk een 8 woorden hash-waarde met 16 berichtwoorden, waarbij het ChaCha-resultaat wordt afgekapt om de volgende hash-waarde te verkrijgen. BLAKE-256 en BLAKE-224 gebruiken woorden van 32 bits en produceren samenvattingsgrootten van respectievelijk 256 bits en 224 bits. BLAKE-512 en BLAKE-384 gebruiken 64-bit woorden en produceren samenvattingsgrootten van respectievelijk 512 bits en 384 bits.

BLAKE2b is sneller dan SHA-3, SHA-2, SHA-2 en MD5 op 64-bits x64 en ARM architecturen. BLAKE2 biedt een beveiliging die superieur is aan SHA-2 en vergelijkbaar is met die van SHA-3.

Geschiedenis van BLAKE algoritmes

BLAKE werd ontworpen aan de NIST hash-functiecompetitie door Jean-Philippe Aumasson, Luca Henzen, Willi Meier en Raphael C.-W. Phan. In 2008 waren er 51 inzendingen. BLAKE bereikte de laatste ronde bestaande uit vijf kandidaten maar verloor in 2012 van Keccak.

Het algoritme

Net als SHA-2 is BLAKE er in twee varianten: een die 32 bits woorden gebruikt, gebruikt voor het berekenen van hashes tot 256 bits lang en een die 64-bits woorden gebruikt, gebruikt voor het berekenen van hashes tot 512 bits lang. De kernbloktransformatie combineert 16 invoerwoorden met 16 werkvariabelen, maar slechts 8 woorden worden tussen blokken bewaard. Het gebruikt een tabel met 16 constante woorden en een tabel met 10 16-element permutaties.

σ [0] = 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

σ [1] = 14 10 4 8 9 15 13 6 1 12 0 2 11 7 5 3

σ [2] = 11 8 12 0 5 2 15 13 10 14 3 6 7 1 9 4

σ [3] = 7 9 3 1 13 12 11 14 2 6 5 10 4 0 15 8

σ [4] = 9 0 5 7 2 4 10 15 14 1 11 12 6 8 3 13

σ [5] = 2 12 6 10 0 11 8 3 4 13 7 5 15 14 1 9

σ [6] = 12 5 1 15 14 13 4 10 0 7 6 3 9 2 8 11

σ [7] = 13 11 7 14 12 1 3 9 5 0 15 4 8 6 2 10

σ [8] = 6 15 14 9 11 3 0 8 12 2 13 7 1 4 10 5

σ [9] = 10 2 8 4 7 6 1 5 15 11 9 14 3 12 13 0

De kernbewerking werkt op een kolom of diagonaal van 4 woorden, die wordt gecombineerd met 2 woorden bericht m[] en twee constante woorden n[]. Het wordt 8 keer per volledige ronde uitvoert.

j ← σ [r% 10] [2 × i]             // Indexberekeningen

k ← σ [r% 10] [2 × i + 1]

a ← a + b + (m [j] ⊕ n [k])    // Stap 1 (met invoer)

d ← (d ⊕ a) >>> 16

c ← c + d                    // Stap 2 (geen invoer)

b ← (b ⊕ c) >>> 12

a ← a + b + (m [k] ⊕ n [j])    // Stap 3 (met invoer)

d ← (d ⊕ a) >>> 8

c ← c + d                    // Stap 4 (geen invoer)

b ← (b ⊕ c) >>> 7

In het bovenstaande r is het ronde getal (0-13) en i varieert van 0 tot 7.

De verschillen met de ChaCha kwartronde functie

  • De toevoeging van de berichtwoorden is toegevoegd.
  • De draairichtingen zijn omgekeerd.

De 64-bits versie (die niet bestaat in ChaCha) is identiek, maar de rotatiebedragen zijn respectievelijk 32, 25, 16 en 11 en het aantal ronden is verhoogd tot 16.

Blake coins

  • TrumpCoin
  • BlakeCoin
  • Netko
  • SecureCoin
  • Vcash

Blake256 coins

  • Decred
  • Photon

Blake2b Coins

  • Siacoin
  • SpaceCoin
  • RaiBlocks

Blake256r8 coins

  • Photon
  • Vcash

Blake256r14 coins

  • Decred