SlideShare una empresa de Scribd logo
1 de 20
INTRODUZIONE A ECHO Approfondimento di Crittografia I Riccardo Ciovati e Annalisa Berti
Overview Una breve introduzione all’algoritmo
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
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
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
Funzionamento Come funziona ECHO
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
Domain extention (2/2)
Macro fasi dell’hashing Inizializzazione Messagepadding Compressione Finalizzazione
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
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
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)
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
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.
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
BIG.ShiftRow(S) Il funzionamento è analogo a quello di AES. In questa implementazione però lavora su word da 128bit e non su byte.
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.
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
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.
Riferimenti Pagina ufficiale degli autori di ECHO Nist sha3 specifications

Más contenido relacionado

Destacado

NI Media Developments and Trends 2011
NI Media Developments and Trends 2011NI Media Developments and Trends 2011
NI Media Developments and Trends 2011Kantar
 
Introduzione ad ECHO
Introduzione ad ECHOIntroduzione ad ECHO
Introduzione ad ECHOrciovati
 
TGI mobile phone ownership trends
TGI mobile phone ownership trendsTGI mobile phone ownership trends
TGI mobile phone ownership trendsKantar
 
Social media and urban residents in China
Social media and urban residents in ChinaSocial media and urban residents in China
Social media and urban residents in ChinaKantar
 
Clickstream 2015 Q2 deck
Clickstream 2015 Q2 deckClickstream 2015 Q2 deck
Clickstream 2015 Q2 deckKantar
 
Gb tgi 2014 q4 updated
Gb tgi 2014 q4 updatedGb tgi 2014 q4 updated
Gb tgi 2014 q4 updatedKantar
 
Latest additions to the Q4 2015 TGI study
Latest additions to the Q4 2015 TGI studyLatest additions to the Q4 2015 TGI study
Latest additions to the Q4 2015 TGI studyKantar
 
Kantar Media - Mobile Qualitative Research
Kantar Media - Mobile Qualitative ResearchKantar Media - Mobile Qualitative Research
Kantar Media - Mobile Qualitative ResearchKantar
 
Cashless Society Charts
Cashless Society ChartsCashless Society Charts
Cashless Society ChartsKantar
 

Destacado (9)

NI Media Developments and Trends 2011
NI Media Developments and Trends 2011NI Media Developments and Trends 2011
NI Media Developments and Trends 2011
 
Introduzione ad ECHO
Introduzione ad ECHOIntroduzione ad ECHO
Introduzione ad ECHO
 
TGI mobile phone ownership trends
TGI mobile phone ownership trendsTGI mobile phone ownership trends
TGI mobile phone ownership trends
 
Social media and urban residents in China
Social media and urban residents in ChinaSocial media and urban residents in China
Social media and urban residents in China
 
Clickstream 2015 Q2 deck
Clickstream 2015 Q2 deckClickstream 2015 Q2 deck
Clickstream 2015 Q2 deck
 
Gb tgi 2014 q4 updated
Gb tgi 2014 q4 updatedGb tgi 2014 q4 updated
Gb tgi 2014 q4 updated
 
Latest additions to the Q4 2015 TGI study
Latest additions to the Q4 2015 TGI studyLatest additions to the Q4 2015 TGI study
Latest additions to the Q4 2015 TGI study
 
Kantar Media - Mobile Qualitative Research
Kantar Media - Mobile Qualitative ResearchKantar Media - Mobile Qualitative Research
Kantar Media - Mobile Qualitative Research
 
Cashless Society Charts
Cashless Society ChartsCashless Society Charts
Cashless Society Charts
 

Similar a Approfondimento ECHO

Prestashop Privilege Escalation through Cryptographic Attack
Prestashop Privilege Escalation through Cryptographic Attack Prestashop Privilege Escalation through Cryptographic Attack
Prestashop Privilege Escalation through Cryptographic Attack Francesco Lacerenza
 
4 Protocollo Ip
4 Protocollo Ip4 Protocollo Ip
4 Protocollo Ipacapone
 
Sistema Binario E Codice Informatico
Sistema Binario E Codice InformaticoSistema Binario E Codice Informatico
Sistema Binario E Codice Informaticovapiegold
 
Introduzione al livello di rete e Dijkstra algorithm
Introduzione al livello di rete e Dijkstra algorithmIntroduzione al livello di rete e Dijkstra algorithm
Introduzione al livello di rete e Dijkstra algorithmorestJump
 
Schema di watermarking robusto per un bitstream jpeg cifrato
Schema di watermarking robusto per un bitstream jpeg cifratoSchema di watermarking robusto per un bitstream jpeg cifrato
Schema di watermarking robusto per un bitstream jpeg cifratoGianmarco Beato
 
Dsp cosa sono i digital signal processor - seconda parte - 2010-10-19
Dsp  cosa sono i digital signal processor  - seconda parte - 2010-10-19Dsp  cosa sono i digital signal processor  - seconda parte - 2010-10-19
Dsp cosa sono i digital signal processor - seconda parte - 2010-10-19Ionela
 
Relazione Modellazione e Simulazioni Numeriche: Percolazione
Relazione Modellazione e Simulazioni Numeriche: PercolazioneRelazione Modellazione e Simulazioni Numeriche: Percolazione
Relazione Modellazione e Simulazioni Numeriche: PercolazioneRiccardo Melioli
 
5 Indirizzamento Ip
5 Indirizzamento Ip5 Indirizzamento Ip
5 Indirizzamento Ipacapone
 
B Esercizi Tcp
B Esercizi TcpB Esercizi Tcp
B Esercizi Tcpacapone
 
Algoritmo probabilistico di tipo montecarlo per il list decoding elaborato
Algoritmo probabilistico di tipo montecarlo per il list decoding   elaboratoAlgoritmo probabilistico di tipo montecarlo per il list decoding   elaborato
Algoritmo probabilistico di tipo montecarlo per il list decoding elaboratodanielenicassio
 
F Temi D Esame
F Temi D EsameF Temi D Esame
F Temi D Esameacapone
 
Presentazione Oz - Mozart
Presentazione Oz - MozartPresentazione Oz - Mozart
Presentazione Oz - Mozartfede
 
Architettura dell'Elaboratore Elettronico (Computer)
Architettura dell'Elaboratore Elettronico (Computer)Architettura dell'Elaboratore Elettronico (Computer)
Architettura dell'Elaboratore Elettronico (Computer)Luca Santoro
 
Dal modello a memoria condivisa al modello a rete, impossibilità del consenso...
Dal modello a memoria condivisa al modello a rete, impossibilità del consenso...Dal modello a memoria condivisa al modello a rete, impossibilità del consenso...
Dal modello a memoria condivisa al modello a rete, impossibilità del consenso...Luca Marignati
 
C Esercizi Indirizzamento
C Esercizi IndirizzamentoC Esercizi Indirizzamento
C Esercizi Indirizzamentoacapone
 

Similar a Approfondimento ECHO (20)

Prestashop Privilege Escalation through Cryptographic Attack
Prestashop Privilege Escalation through Cryptographic Attack Prestashop Privilege Escalation through Cryptographic Attack
Prestashop Privilege Escalation through Cryptographic Attack
 
4 Protocollo Ip
4 Protocollo Ip4 Protocollo Ip
4 Protocollo Ip
 
Sistema Binario E Codice Informatico
Sistema Binario E Codice InformaticoSistema Binario E Codice Informatico
Sistema Binario E Codice Informatico
 
Reti Logic
Reti LogicReti Logic
Reti Logic
 
Introduzione al livello di rete e Dijkstra algorithm
Introduzione al livello di rete e Dijkstra algorithmIntroduzione al livello di rete e Dijkstra algorithm
Introduzione al livello di rete e Dijkstra algorithm
 
DataLink LAN
DataLink LANDataLink LAN
DataLink LAN
 
Schema di watermarking robusto per un bitstream jpeg cifrato
Schema di watermarking robusto per un bitstream jpeg cifratoSchema di watermarking robusto per un bitstream jpeg cifrato
Schema di watermarking robusto per un bitstream jpeg cifrato
 
Dsp cosa sono i digital signal processor - seconda parte - 2010-10-19
Dsp  cosa sono i digital signal processor  - seconda parte - 2010-10-19Dsp  cosa sono i digital signal processor  - seconda parte - 2010-10-19
Dsp cosa sono i digital signal processor - seconda parte - 2010-10-19
 
Prot-09 pchar
Prot-09 pcharProt-09 pchar
Prot-09 pchar
 
Relazione Modellazione e Simulazioni Numeriche: Percolazione
Relazione Modellazione e Simulazioni Numeriche: PercolazioneRelazione Modellazione e Simulazioni Numeriche: Percolazione
Relazione Modellazione e Simulazioni Numeriche: Percolazione
 
Presentazione Tesi
Presentazione TesiPresentazione Tesi
Presentazione Tesi
 
5 Indirizzamento Ip
5 Indirizzamento Ip5 Indirizzamento Ip
5 Indirizzamento Ip
 
B Esercizi Tcp
B Esercizi TcpB Esercizi Tcp
B Esercizi Tcp
 
Algoritmo probabilistico di tipo montecarlo per il list decoding elaborato
Algoritmo probabilistico di tipo montecarlo per il list decoding   elaboratoAlgoritmo probabilistico di tipo montecarlo per il list decoding   elaborato
Algoritmo probabilistico di tipo montecarlo per il list decoding elaborato
 
F Temi D Esame
F Temi D EsameF Temi D Esame
F Temi D Esame
 
Presentazione Oz - Mozart
Presentazione Oz - MozartPresentazione Oz - Mozart
Presentazione Oz - Mozart
 
Architettura dell'Elaboratore Elettronico (Computer)
Architettura dell'Elaboratore Elettronico (Computer)Architettura dell'Elaboratore Elettronico (Computer)
Architettura dell'Elaboratore Elettronico (Computer)
 
Dal modello a memoria condivisa al modello a rete, impossibilità del consenso...
Dal modello a memoria condivisa al modello a rete, impossibilità del consenso...Dal modello a memoria condivisa al modello a rete, impossibilità del consenso...
Dal modello a memoria condivisa al modello a rete, impossibilità del consenso...
 
Ip sec vulnerability
Ip sec vulnerabilityIp sec vulnerability
Ip sec vulnerability
 
C Esercizi Indirizzamento
C Esercizi IndirizzamentoC Esercizi Indirizzamento
C Esercizi Indirizzamento
 

Último

Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...Associazione Digital Days
 
ScrapeGraphAI: a new way to scrape context with AI
ScrapeGraphAI: a new way to scrape context with AIScrapeGraphAI: a new way to scrape context with AI
ScrapeGraphAI: a new way to scrape context with AIinfogdgmi
 
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”Associazione Digital Days
 
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...Associazione Digital Days
 
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...Associazione Digital Days
 
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...Associazione Digital Days
 

Último (6)

Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
 
ScrapeGraphAI: a new way to scrape context with AI
ScrapeGraphAI: a new way to scrape context with AIScrapeGraphAI: a new way to scrape context with AI
ScrapeGraphAI: a new way to scrape context with AI
 
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
 
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
 
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
 
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
 

Approfondimento ECHO

  • 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
  • 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
  • 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