# 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.