Your SlideShare is downloading. ×
  • Like
Introduzione ad ECHO
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Introduzione ad ECHO

  • 143 views
Published

In queste slide presentiamo brevemente ECHO, un algoritmo proposto per la gara di SHA3. Questa trattazione non vuole essere completa ed esaustiva ma solo una introduzione all'algoritmo.

In queste slide presentiamo brevemente ECHO, un algoritmo proposto per la gara di SHA3. Questa trattazione non vuole essere completa ed esaustiva ma solo una introduzione all'algoritmo.

Published in Technology , Business
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
143
On SlideShare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
0
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. INTRODUZIONE A ECHO
    Approfondimento di Crittografia I
    Riccardo Ciovati e Annalisa Berti
  • 2. Overview
    Una breve introduzione all’algoritmo
  • 3. Cos’è ECHO
    ECHO è un algoritmo candidato per SHA3
    Disegnato dal Cryptographic Research Group agli Orange Labs
    Ispirato ad AES
    Attualmente accettato per il round 2 della competizione
  • 4. Il design di ECHO
    Richieste del NIST:
    Mantenimento delle proprietà di SHA2:
    Dimensione dell’input (224,256,384,512bits)
    Preimageand second-preimageresistence
    Messagedigest di 224,256,384 e 512 bits
    Lunghezza massima del messaggio di almeno 2^64bits
    Implementabile ed efficiente sia hardware che in software
  • 5. Il design di ECHO
    La filosofia degli autori:
    Semplicità: Un algoritmo semplice è anche facile da analizzare
    Riutilizzo di AES: Usa AES nella versione a 128bit. Questo permetterà di sfruttare future implementazioni di tale algoritmo oppure di trarre beneficio dal supporto offerto dai micriprocessori
  • 6. Funzionamento
    Come funziona ECHO
  • 7. Domain extention (1/2)
    In base alla lunghezza desiderata dell’output vengono utilizzate due diverse funzioni di compressione:
    Compress512 per hash di lunghezza di 224bit o 256bit
    Compress1024 per hash di lunghezza di 384bit o 512bit
    A ogni iterazione la funziona di compressione prendere in input i seguenti valori:
    Il valore corrente della chainingvariable , Vi-1 ,di lunghezza Csize
    Il blocco del messaggio da processare, che ha lunghezza Msize = 2048 – Csize
    Il numero totale di unpaddedmessagebits alla fine di questa iterazione, Ci
    Il Salt
  • 8. Domain extention (2/2)
  • 9. Macro fasi dell’hashing
    Inizializzazione
    Messagepadding
    Compressione
    Finalizzazione
  • 10. 1)Inizializzazione
    La fase di inizializzazione consiste in:
    Assegnare al contatore C il valore 0
    Assegnare alla chainingvariable un valore costante in base alla dimensione dell’hash che si vuole ottenere
  • 11. 2)Messagepadding
    Serve per ottenere un messaggio multiplo di Msize
    Viene aggiunto un bit “1” a fine messaggio e X bit “0” con X = Msize – ((Hashlength + 144) modMsize) - 1
  • 12. 3)Compressione (1/2)
    Il Messaggio + padding ottenuto viene suddiviso in t blocchi da MsizeconMsizeche vale:
    1536 bit se 224≤Hsize ≤256
    1024 bit altrimenti
    Viene settata la compressionfunction da utilizzare
    Comincia iterazione su ogni blocco:
    Input: Vi = compressfunction(Vi-1, Mi,Ci,SALT)
    1. Suddivido il blocco Mi in blocchi da 128 bit.
    2. Vi-1 suddiviso in n stringhe da 128 bit, con n che vale:
    224≤Hsize ≤256: 4 stringhe (Vi=512)
    384≤Hsize ≤512: 8 stringhe (Vi=1024)
  • 13. 3)Compressione (2/2)
    Vengono eseguite le seguenti operazioni:
    Mixing Chaining
    8 round (10 se compress1024 ) da 3 passi ciascuno:
    BIG.SubWords
    BIG.ShiftRow
    BIG.MixColumns
    BIG.Final
  • 14. Mixing ChainingVariable
    Viene creata una matrice di stato S di dimensione 4x4 nella quale viene disposta la chainingvariable e il messaggio.
    Nel caso 224≤Hsize ≤256: la prima colonna di chainingvariable e le restante di messaggio.
    Nel caso 384≤Hsize ≤512: nelle prime due colonne la chainingvariablee nelle due restanti il messaggio.
    La struttura su cui si basa e il funzionamento ha delle analogie con AES.
  • 15. BIG.SubWords(S,SALT,K)
    Sia k un contatore interno che inizialmente è impostato al valore Ci. Siano k1 e k2 così definiti:
    k1 = k||64 bit a 0
    k2 = SALT
    Per ogni word da 128 bit di S viene eseguita la seguente operazione:
    wi’ = AES(AES(wi,k1),k2)
    k viene incrementato
  • 16. BIG.ShiftRow(S)
    Il funzionamento è analogo a quello di AES. In questa implementazione però lavora su word da 128bit e non su byte.
  • 17. BIG.MixColumns(S)
    Anche queste operazione è analoga a quella che troviamo nell’algoritmo AES e ovviamente è esteso poiché lavora su una matrice più ampia. Le 4 colonne di word da 128bit vengono viste come 64 colonne da un byte ciascuna. A ciascuna di queste colonne viene applicato la trasformazione MixColumns presente in AES.
  • 18. BIG.Final(S)
    Si occupa alla fine degli otto round di aggiornare la chainingvariablein modo che possa diventare l’input della successiva iterazione. In figura esempio di BIG.Final nella funzione compress512:
    w0 ,w1 ,…w15 : Matrice contenente gli output delle iterazioni precedenti
    m0 ,m1 ,…m12: Blocco del messaggio considerato.
    vi-1: chainingvariable presa in ingresso da questa iterazione
  • 19. 4)Finalizzazione
    Finiti i blocchi, l’output della funzione hash sono gli Hsizebit più significativi della chainingvariable.
    Esempio con compress512: La chainingvariableha dimensione 512bit. Se si vuole ottenere un output di 224bit, è sufficiente prendere i 224 più significativi. Nel caso compress1024 la dimensione della chainingvariableè doppia ma il funzionamento è analogo.
    Si deduce che sono supportati anche dimensione di hash intermedi rispetto a quelli richiesti dal NIST.
  • 20. Riferimenti
    Pagina ufficiale degli autori di ECHO
    Nist sha3 specifications