# 2. Operazioni
SHA-256 utilizza 4 operazioni basilari tra bit sulle words
.
# Right Shift (shr.rb
)
SHR^n(x) = x >> n
Sposta i bit di un certo numero di posizioni a destra. I bit spostati a destra sono persi.
# Rotate Right (rotr.rb
)
ROTR^n(x) = (x >> n) | (x << 32-n)
Spostare i bit di un certo numero di posizioni a destra, e mettere i bit spostati a sinistra. Questo può anche essere chiamato uno spostamento circolare a destra.
# Exclusive Or (xor.rb
)
x ^ y ^ z
L'operatore bitwise XOR
prende due bit in ingresso e produce un 1
se solo uno di essi è un 1
. Questo è utile per ottenere una rappresentazione bilanciata di più bit quando li si fonde insieme tramite più operazioni XOR
.
# Addizione (add.rb
)
(v + w + x + y + z) % 2^32
Questa è un'addizione intera standard, ma vincoliamo il risultato a un numero di 32 bit prendendo il risultato modulo 232.