Loading
Study Reminders
Support
Text Version

Set your study reminders

We will email you at these times to remind you to study.
  • Monday

    -

    7am

    +

    Tuesday

    -

    7am

    +

    Wednesday

    -

    7am

    +

    Thursday

    -

    7am

    +

    Friday

    -

    7am

    +

    Saturday

    -

    7am

    +

    Sunday

    -

    7am

    +

Fondamenta di CryptographyProf. Dr. Ashish Choudhury (Ex) Infosys Foundation Career Development Chair ProfessorInternational Institute of Information Technology-BengaluruLecture-03Historical Ciphers And Loro CryptanalysisHello ognuno, benvenuti alla terza lezione. Il piano per questa lezione è il seguente. (Fare Slide Time: 00 :34) In questa lezione discuteremo di alcuni dei cifrati storici come il cifrario di turno, cifratura di sostituzione mono alfabetica e polpa di sostituzione alfabetica e vedremo la loro criptanalisi, ovvero vedremo quanto sono stati rotti questi ciffi. Vedremo le lezioni che impariamo da questi cifrari storici. E infine, discuteremo i principi della crittografia moderna. (Consulta Slide Time: 00 :56) Quindi, discutiamo il cifrario di turno che è un processo di crittografia simmetrica molto semplice e nel cifrario di turno il testo di pianura e i caratteri di testo cifrati appartengono all'alfabeto di qualche lingua naturale. Così per esempio ipotizziamo che i caratteri in chiaro e cifrato appartengano all'alfabeto inglese impostato cioè, l'insieme di lettere a a z. E il processo di crittografia qui è quello di spostare ogni istanza del carattere di testo semplice da parte di k posizioni in avanti. E il processo di decodifica è quello di ripassare ogni carattere cifrato da k posizioni in direzione retromarcia. E il turno qui cioè il valore di k sarà uno dei valori incaldi del set da 0 a 25, che viene selezionato casualmente dall'algoritmo di generazione chiavi. Quindi, l'interpretazione matematica del cifrario di turno è la seguente. Dal momento che i caratteri di testo pianeggianti sono appartenenti alla serie a z, interpretiamo il personaggio „ un "come simbolo 0 caratteri „ b" come simbolo 1 e nello stesso modo interpretiamo il personaggio „ z " come il simbolo 25. Ovvero una mappatura che supponiamo sia disponibile sia al mittente che al destinatario o a qualsiasi terzo che utilizzerà un'istanza di cifratura di turno. Ora lo spazio chiave qui è il set da 0 a 25. Perché il valore effettivo di turno cioè k sarà uno del valore in modo casuale selezionato in questo set. E lo spazio in chiaro e lo spazio cifrato saranno l'insieme di stringhe sul set da 0 a 25. Perché il mio testo in chiaro sarà qualsiasi testo in inglese dove i personaggi del testo di pianura saranno mappati all'alfabeto nel set da 0 a 25. E allo stesso modo, il testo di cifratura che sarà qualche testo sul set da 0 a 25, sarà interpretato come qualche stringa sul set da 0 a 25. Così sintatticamente, l'algoritmo di generazione chiavi per il cifrario di turno è il seguente. L'algoritmo di generazione chiave sta andando a produrre un valore uniformemente casuale e cioè „ k " che sarà il valore di spostamento che mittente e destinatario useranno e questo turno sarà un valore casuale dallo spazio chiave. Quindi, la notazione qui appartenente al subscript R denota che l'output dell'algoritmo di generazione chiavi, ovvero „ k " è selezionato casualmente sullo spazio chiave. E casualità qui è la casualità uniforme. Quindi la notazione si fa? denota che il valore è uniformemente selezionato sul set „ K ". Ecco quindi l'interpretazione della notazione appartenente al subscript r. La sintassi per l'algoritmo di crittografia del cifrario di turno è la seguente. Immaginate quindi di ricevere un testo inglese che stiamo interpretando come una stringa sul set da 0 a 25. Il che significa che ogni carattere del testo di pianura è un simbolo nel set da 0 a 25.So la crittografia del carattere di testo in chiaro avviene come segue, noi prendiamo il carattere di testo pianeggiante mi e abbiamo il valore di turno che sarà qualsiasi del valore compreso nell'intervallo da 0 a 25. E algoritmo di crittografia produce e si cimentano con il carattere di testo di cifratura, dove il carattere di testo dell'ith è la sommatoria di un carattere di testo chiaro con il passaggio modulo 26. Ora questa operazione modulo 26 assicura che, facciamo il wraparound se si va effettivamente oltre il valore 25.What Ti intendo per questo è, se, ad esempio, il tuo mi il carattere in chiaro si dice „ a ", e se il mio valore di „ k" è dire 25, giusto o dire il mio carattere di testo semplice, diciamo „ b ", e se il mio valore di „ k" è 25, poi se „ b " viene mappato a 1, e il mio k è 25. E se aggiungo da 25 a 1, in realtà, incrocerò il valore, la gamma di valori consentiti per i caratteri cifrati, ovvero da 0 a 25. Questo significa che devo fare un avvolgetto e quell' effetto di avvolgita sta accadendo facendo l'operazione modulo. Ecco quindi che il processo di crittografia del cifrario di turno e analogamente abbiamo la corrispondente operazione di decodifica, dove prendiamo il carattere di testo di ithcipher, il valore di turno e per recuperare il carattere di testo ithplain, riperdiamo semplicemente le posizioni di „ k " indietro dal carattere di testo cifrato. E se richiesto, facciamo il avvoltoio facendo l'operazione modulo, modulo 26. (Fare Slide Time: 05 :25) Così ora cerchiamo di analizzare la sicurezza del cifrario di turno e faremo l'analisi nel modello di attacco possibile più semplice e cioè il modello di attacco solo cifrato, dove lo scenario è il seguente, supponiamo di avere un mittente e un destinatario e mittente ha crittografato un testo inglese composto da caratteri „ l " dove ognuno dei caratteri appartiene al set da 0 a 25. E c'è un valore casuale di spostamento che è stato già concordato tra il mittente e il destinatario. L'avversario ha intercettato il testo di cifratura che consiste in caratteri di testo di „ l " e sa che il carattere cifrato è legato all'ignoto carattere in chiaro da questa relazione. Così anche qui mi è che il k è sconosciuto all'aggressore. E l'obiettivo dell'aggressore è recuperare il messaggio. Quindi il più semplice attacco possibile che l'avversario può lanciare qui è quello che ci chiamiamo l'attacco della forza bruta. E l'idea alla base di un attacco di forza bruta è la seguente. Quello che l'avversario deve fare è, sa che il valore di k sconosciuto è uno dei valori possibili nell'intervallo da 0 a 25. Quindi quello che può fare è prendere il cifrato c e può pensare nella sua mente tutti i possibili valori candidati di k e può provare a decodificare il testo di cifratura come per il candidato k stesso, perché conosce anche il corrispondente processo di decodifica. E non appena colpisce la chiave candidata per cui la decodifica restituisce un testo significativo, per senso intendo un testo inglese significativo, sa che ha colpito sulla chiave giusta e da qui il messaggio recuperato è infatti il messaggio giusto con alta probabilità. E questo attacco è molto facile da lanciare perché qui l'avversario deve fare il calcolo cioè la decodifica del testo di cifratura solo con 26 chiavi candidate, che è molto facile da perform.Di conseguenza, possiamo dire che il cifrario di turno può essere molto facilmente rotto facendo solo un attacco di forza bruta. Quindi l'importante lezione che impariamo da questo attacco è quella che ci chiamiamo sufficiente principio di spazio chiave che afferma che qualsiasi cifratura sicura dovrebbe avere uno spazio chiave enormemente grande, ovvero, l'insieme delle chiavi candidate dovrebbe essere enormemente grande, in modo che diventi poco pratico per quell' avversario fare un attacco di forza bruta. Questa è la condizione minima di minima condizione necessaria, condizione che richiediamo per il nostro cifrario di essere sicura. (Fare Slide Time: 07 :49) Così ora vediamo come possiamo risolvere il problema che è associato al cifrario di turno per prevenire un attacco di forza bruta. E questo porta ad un altro interessante cifrario che chiamiamo come mono alfabeto di sostituzione alfabetica. E l'idea qui è invece di spostare ogni carattere di quercia dalla stessa cifra sconosciuta k, spostiamo ogni carattere di quercia da un importo diverso in uno ad una mappatura. Quello che intendo qui è il seguente: sappiamo che i personaggi querelanti potrebbero essere uno qualsiasi dei personaggi della gamma a a z, o da 0 a 25. Quello che facciamo è mappare questo carattere di testo semplice in uno ad una mappatura alla serie di caratteri cifrati a z. Il che significa che la chiave sarà una permutazione segreta del set da 0 a 25, che si farà conoscere solo al mittente e al destinatario. Ad esempio, se prendiamo questa specifica permutazione che associa il carattere di testo pianeggiante a a b, che significa nel testo di pianura ovunque il carattere di testo pianeggiante sia un, tutte quelle istanze di un essere sostituite da b nello stesso modo ovunque nel testo di pianura, abbiamo il carattere c tutte quelle istanze di c saranno sostituite da z e così via. Dal momento che il ricevitore conosce anche la stessa permutazione segreta sulla ricezione del testo cifrato deve solo eseguire l'operazione inversa ovunque si stia vedendo il carattere cifrato z, deve sostituirlo con c e così via. Così l'operazione di decodifica può essere eseguita dal destinatario. Ora potete vedere lo spazio chiave candidato qui è estremamente grande, ovvero, il set di chiavi possibili è in realtà 26 fattoriale perché ogni chiave non è altro che una permutazione del set a z e ci potrebbero essere 26 fattoriali di questo tipo. Quindi se l'avversario cerca di fare un attacco di forza bruta, che abbiamo visto nel contesto del cifrario di turno, la quantità di forza bruta o il calcolo che l'avversario deve eseguire è di ordine di grandezza 2 alla potenza 88 (288), che è un'enorme quantità di calcolo. Il che significa che possiamo decisamente dire che l'attacco di forza bruta non è possibile lanciarsi sopra la codifica sostitutiva di turno. (Fare riferimento Slide Time: 09 :52) Ma questo non significa necessariamente che questo sia l'unico attacco possibile sul cifrario della sostituzione mono alfabetica. Infatti, si scopre che c'è un attacco molto interessante, che chiamiamo come attacco di analisi della frequenza. E questo attacco può essere lanciato su qualsiasi cifrario, dove lo spazio di testo sottostante è una lingua naturale che è in realtà il caso nel nostro esempio, perché stiamo valutando un'ambientazione dove il testo di pianura è in realtà testo inglese. Quindi, l'idea qui è di sfruttare la ridondanza che è disponibile in qualsiasi lingua naturale ad esempio, l'inglese. Quello che intendo per ridondanza è il seguente. Se consideriamo grande, lungo testo inglese e sappiamo che su una media il carattere E si verifica più frequentemente rispetto a qualsiasi altro personaggio. Nello stesso modo in cui sappiamo su una media in lungo testo in inglese, il carattere T si verifica più frequentemente rispetto al carattere U e così via. Non solo abbiamo la frequenza media di inglese disponibile per il lungo testo in inglese, possiamo anche dire che siamo disponibili con la frequenza media dei bigrammi inglesi in lungo testo in inglese, per esempio sappiamo che nel lungo testo in inglese su una media il bigram „ si verifica più frequentemente rispetto al bigram „ nd " e così via. E allo stesso modo abbiamo la frequenza di più popolari trigrammi inglesi e così via. E questo è un dato pubblico a disposizione di qualsiasi utente dell'universo. Quindi, l'idea alla base dell'analisi della frequenza è che anche se ogni carattere del testo di pianura è stato mappato ad un diverso carattere cifrindaco, il rapporto tra il carattere cifermico più frequentemente presente e un carattere di testo semplice è conservato. Ciò significa che se l'aggressore vede un testo cifrato enormemente lungo corrispondente alla crittografia di un testo di pianura inglese enormemente lungo, e ciò che l'avversario può fare è può esibirsi o può preparare un grafico simile al grafico della frequenza media inglese in cui gli dirà quale personaggio di testo si sta verificando più frequentemente rispetto ad altri caratteri cifrati e così via. Quindi per esempio, immaginate che dopo aver preparato questo avversario grafico scopriate che il carattere ipertestuale R si verifica la quantità massima di tempo. Quindi, quello che avversario può pensare nella sua mente di decifrare il carattere di testo R corrisponde al carattere di testo semplice E e così via. Allo stesso modo, il rapporto tra il testo di cifratura più frequentemente presente e il bigramma di testo pianeggiante più frequente è conservato e così on.Quindi, facendo il confronto, l'avversario può facilmente scoprire la corrispondente permutazione segreta tra lo spazio del carattere di testo pianeggiante e uno spazio di caratteri di testo di codifica che il mittente e il destinatario gestiscono l'istanza di cifratura di sostituzione mono alfabetica. Così, come potete vedere, anche senza fare l'attaccante della forza bruta, l'avversario potrebbe facilmente recuperare la permutazione segreta. E da qui il cifrario sostitutivo della mono alfabetica può essere molto facilmente rotto nel testo di cifratura solo modello di attacco. (Fare Slide Time: 12 :54) Così ora vediamo un altro interessante cifrario storico che chiamiamo cifratura di sostituzione poli-alfabetica, e che viene anche chiamato Vigenere cifrato dopo il nome del suo inventore. E l'idea qui è quella di sistemare il problema potenziale che c'era in contesto di cifratura di sostituzione mono alfabetica. Ovvero, l'idea qui è quella di invocare più istanze di cifratura di turno in modo tale che in ogni ricorrenza, un carattere di testo semplice sia mappato a diverso carattere cifrato. Ciò significa che non capita che ovunque il carattere di querelazione sia un essere sempre getsmattato a un carattere cifrato specifico che non accadrà, questo significherà che il rapporto tra il carattere più ricorrente in chiaro e il carattere cifermico più frequentemente presente venga disturbato. E il modo in cui realizziamo questo è il seguente. Così di nuovo qui il messaggio e lo spazio di testo pianeggiante e lo spazio cifrato è il set di tutti i possibili è una serie di stringhe sul set da 0 a 25. E lo spazio chiave ora sarà una stringa di lunghezza t, dove t è anche casualmente selezionata dall'algoritmo di generazione chiavi e il valore di t potrebbe essere qualsiasi cosa con il valore minimo di t essere 1. E il valore della chiave sarà qualsiasi stringa di lunghezza t sul set da 0 a 25. Questo significa che il tuo algoritmo di generazione chiavi in uscita sta andando a produrre una chiave composta da t caratteri, dove t è anche casualmente selezionata dall'algoritmo di generazione della chiave. E ogni personaggio della chiave sarà uno dei valori nel set da 0 a 25 a destra, cioè un algoritmo di generazione chiavi. E l'algoritmo di crittografia avviene come segue. Quindi immaginate che il mittente abbia un testo di pianura, quello che sender farà è il seguente che suddivide il suo testo di pianura in blocchi di t, t, t, potrebbe essere il caso che il cliente non sia in realtà un multiplo di t. Questo potrebbe essere possibile che l'ultimo blocco possa non essere un multiplo di t. Ma per semplicità supponiamo che l'ultimo blocco sia anche un multiplo di t. Una volta che il messaggio è diviso in blocchi di dimensioni t, t e t. L'idea qui è quella di criptare ogni blocco usando la chiave eseguendo un'istanza di cifratura di turno. Ovvero produciamo il blocco di testo cifrato come segue. Immaginate quindi che i personaggi del blocco ith siano mi1, mi2 e mit. Quindi ci sono t tali caratteri. E abbiamo i personaggi chiave k1, k2 e kt.So, l'idea qui è che produciamo l'ith ciphertext, con i caratteri dei blocchi di testo di ith sono ci1, ci2 e cit, dove si ottiene il carattere jima del blocco ittico cifrato spostando l'ithjth character text by the shift kj modulo 26. (Fare Slide Time: 15 :44) Quindi fatemi dimostrare cosa esattamente sto cercando di dire. Immaginate che il valore di t sia 6 qui ok e la chiave che viene generata casualmente dall'algoritmo di generazione chiave supponiamo sia il carattere “ cipher ” e cioè la cartina c a 2, a i a 8 e così via. Questo significa che questa è la chiave casuale generata dall'algoritmo di generazione della chiave. Ed è noto sia al mittente sia al destinatario destro. Ora supponiamo che il testo in chiaro che il mittente vuole criptare sia il messaggio inglese, “ thiscryptosystemisnotsecure ”. Quindi quale sarà il primo passo per crittografare la visualizzazione in testo sarà quello di mappare ciascuno dei caratteri nel testo della pianura al set da 0 a 26, ovvero ai caratteri da 0 a 26. Così ad esempio, t viene mappato a 19, h viene mappato a 7 e così via. Una volta convertito il testo della pianura inglese in lettere nella gamma da 0 a 26, accanto dividiamo il messaggio in blocchi di 6 6 6 perché le nostre chiavi di dimensione 6 caratteri, così come potete vedere, in questo particolare esempio, l'ultimo blocco non è un multiplo di 6, quindi è composto da soli 3 simboli, questo va bene. Ora quello che facciamo è criptare il primo blocco come segue. La chiave per il nostro esempio è la stringa 8.2.2015 7 4 e 17, quello che facciamo è aggiungere queste lettere sono i simboli o i numeri al blocco 19 8.7.2018 2 e 17 e ognuno dell'aggiunta viene eseguito modulo 26.Namely, il carattere 19 viene spostato di 2. E dato che non stiamo attraversando la gamma da 0 a 26, otteniamo 21. Allo stesso modo, il carattere 7 viene spostato del 8 per ottenere il carattere 15. E allo stesso modo l'ultimo carattere del primo blocco che è 17 viene spostato dall'importo 17 per ottenere il carattere 6. Così ora potete vedere visto che stiamo effettivamente attraversando la gamma da 0 a 25, facciamo l'operazione mod 26 per fare il wrapper. E a seguito di fare il avvoltoio otteniamo il carattere cifrato come 6. Allo stesso modo prendiamo il secondo blocco, e ancora aggiungiamo i caratteri della chiave uno per uno e facciamo l'operazione modulo 26 e di conseguenza, una volta ottenuto i caratteri di testo cifrati dove gli alfabeti appartengono al set da 0 a 26. Ognuno di quei caratteri dell'alfabeto viene mappato nuovamente sul set di caratteri inglesi. E come risultato, la stringa “ vpxzgiaxivwpubttmjpwizitwzt ” sarà la crittografia, questa stringa sarà la crittografia del testo di pianura “ thiscryptosystemisnotsecure ”. Alla ricezione finale il ricevitore andrà anche a eseguire la stessa operazione, dividerà il testo cifrato in blocchi di 66 6. E in questo caso l'ultimo blocco sarà composto da 3 caratteri, interpretarli come simboli nell'intervallo da 0 a 25 e poi sottrarre ciascuno il carattere chiave modulo 26 per ottenere indietro il querelante. Ecco il modo in cui eseguiremo l'operazione di crittografia e di decodifica nel cifrario Vigenere. E ora l'idea qui è la seguente. Se si vede la crittografia, e se si vede il testo semplice e il testo cifrato, quello che ho evidenziato qui sono tutte le istanze del simbolo „ s. Vedi ogni istanza del simbolo „ s " viene mappato a diverso carattere di testo. Ad esempio, la prima istanza del carattere di testo semplice s viene mappato a z a destra. La seconda istanza della lettera s viene mappata su v e così via. E il motivo che sta accadendo è perché ogni volta che il valore s viene spostato di diverso importo, che dipende dalla posizione del carattere di querelazione s che significa dove esattamente si sta operando, e da quanto importo si è spostato, la quantità di spostamento da cui si sta spostando non sarà uguale in tutte le istanze della lettera s. Perché questo dipende dalla posizione della lettera s oltre che dal valore del carattere della chiave che verrà utilizzato per spostare l'istanza di s. Giusto, di conseguenza, in realtà siamo in qualche modo fastidiosi lo schema che è disponibile tra il testo di pianura e il carattere di testo di cifratura, questo significa che non possiamo più dire che il carattere cifrangente più frequente corrisponde al carattere più ricorrente in chiaro e così via. (Fare Slide Time: 20 :06) Quindi, ora potete vedere uno può sentire che Vigenere cifrare è davvero difficile da spezzare, ma si scopre che in realtà possiamo eseguire la crittografia di Vigenere cifrate che significa che possiamo spezzare il cifrario Vigenere nel modello di cifratura solo modello di attacco. E l'attacco avviene facendo un approccio di due fasi. Nella fase 1, l'obiettivo sarà quello di determinare la lunghezza di t ovvero la dimensione del periodo della chiave di diritto. Quindi, ricordate, t potrebbe essere qualsiasi valore a partire dal 1 in poi e ci sono diversi metodi ben noti, e un metodo interessante per determinare il valore di t. Così, ad esempio, si può usare il metodo Kasiski " s o un altro metodo interessante chiamato indice di coincidenza del metodo e così via. Una volta che conosciamo il valore di t, nel palco 2 quello che faremo è recuperare indietro i caratteri sconosciuti della chiave.E una volta che conosciamo i caratteri sconosciuti della chiave, possiamo facilmente eseguire l'operazione di decodifica e recuperare il testo della pianura. Quindi, quello che farò è supporre che sappiamo come determinare il valore di t e lo lascio come assegnazione per voi per passare attraverso i riferimenti e vedere questi metodi e scoprire come si può calcolare esattamente il valore di t sconosciuta. Quello che Iam discuterà è il seguente è che una volta che il valore di t è noto, come scoprire i personaggi sconosciuti della chiave chiave. E l'idea qui sarà quella di eseguire le istanze indipendenti di analisi della frequenza. Quello che intendo dire con questo è immaginare l'avversario ha ottenuto il testo cifrato perché ci assumiamo di essere nell'unico modello di attacco cifrato e il suo obiettivo è quello di scoprire il testo di pianura sconosciuto. L'avversario conosce il seguente che, se consideriamo il primo carattere cifrato, e poi il (t + 1) esimo carattere cifrato e poi (2 t + 1) esimo carattere cifrato e così via. Poi questo costituisce un flusso di caratteri di testo di cifratura. E questo flusso di caratteri di testo è legato al flusso sconosciuto di caratteri di testo di pianura composto dal primo carattere di testo di pianura, (t + 1) esimo carattere di testo chiaro, (2 t + 1) esimo carattere di testo chiaro e così via dal rapporto è che il flusso di carattere cifrato è in realtà una versione spostata del flusso corrispondente dei caratteri di testo pianeggiante, dove la quantità di spostamento è k1, che esattamente l'avversario vuole compenere. (Fare Slide Time: 22 :33) Allo stesso modo l'avversario può pensare al secondo flusso di cifrari composto dal secondo carattere di testo e (2 + t) esimo testo di cifratura carattere e così via. E sa che tutto il secondo flusso di carattere di testo di cifratura è legato ad un altro flusso di carattere di testo semplice, ovvero il flusso di caratteri di testo pianeggiante composto da m2 e m (2 + t) e così via. Dal rapporto che tutti sono di versione spostata, dove la quantità di spostamento è di qualche valore sconosciuto di k2 e così via. Ciò significa dal punto di vista dell'aggressore ciò che l'aggressore può fare è solo separare e formare flussi indipendenti di carattere cifrato, e deve ora solo eseguire un'analisi di frequenza su ciascuno di questi flussi indipendenti. E se supponiamo che il testo in chiaro sia sufficientemente lungo, il corrispondente testo cifrato è anche sufficientemente lungo, quindi eseguendo l'analisi di frequenza su questi flussi dipendenti t dipendenti, l'avversario potrebbe facilmente recuperare i caratteri sconosciuti della chiave.E di qui potrebbe recuperare completamente la chiave. Ecco allora che è un metodo interessante per fare l'analisi cripta di Vigenere cifratura destra. (Fare Slide Time: 23 :45) Quindi quali sono le lezioni che abbiamo imparato dai cifrari storici. Le lezioni che abbiamo imparato sono le seguenti. Tutti possono essere facilmente rottamate nel testo di un solo testo di attacco. Quindi immaginate quanto potrebbero essere corrotti se consideriamo questo testo cifrato o questo processo di crittografia ad essere operato in un modello di attacco più forte, diciamo che il modello di attacco KPA e il modello di attacco CPA lì l'avversario sarà privilegiato con alcune ulteriori informazioni. Così ad esempio, se si considera questo modello di attacco CPA, allora l'avversario non solo ha accesso al cifrato, avrà anche accesso all'oracolo di crittografia e quindi potrebbe più tranquillamente rompere il processo di crittografia sottostante. Un'altra lezione che abbiamo imparato dai cifrati storici è il principio chiave spaziale sufficiente, che dice che la condizione minima necessaria che ogni cifratura sicura dovrebbe avere è quella di garantire che il suo spazio chiave sia sufficientemente grande da rendere l'attacco della forza bruta infeasibile. E nel complesso, la lezione più importante che abbiamo imparato dai cifrari storici è che progettare cifratura sicura è effettivamente un compito duro e impegnativo. I cifrati sono stati proposti in un arco di tempo e le persone hanno pensato di essere sicure, ma alla fine tutte erano mal rotte. (Vedi Slide Time: 24 :59) Che ci porta alla differenza tra la crittografia classica e quella moderna. Se si considera la crittografia classica, non era una scienza era perlopiù un'arte perché non c'erano fondazioni scientifiche, nessuna definizione corretta, nessuna prova di sicurezza matematica e di conseguenza il risultato finale è stato molto disastroso. Mentre la crittografia moderna è una scienza e si basa su solide basi scientifiche e principi. Namely i 3 principi della crittografia moderna sono: principio 1 sono definitioniformali di sicurezza formali dove noi definiamo correttamente e matematicamente cosa intendiamo esattamente per sicurezza. Principio 2states che una volta che abbiamo la definizione e procediamo a costruire un primitivo che soddisfi una determinata definizione, allora dovremmo proprio affermare qualsiasi supposizione o cioè supponenza non comprovata, che stiamo utilizzando nella nostra costruzione. Guardando avanti vedremo in questo corso che tutti i primitivi cripto che stiamo per progettare la loro sicurezza si baseranno su alcune ipotesi di durezza non comprovate. Così il principio 2 afferma chiaramente che dovremmo proprio dichiarare nella nostra costruzione, qual è esattamente l'assunzione sottostante utilizzata nella nostra costruzione e principio 3 afferma che una volta che abbiamo la costruzione dobbiamo dimostrare formalmente che effettivamente la costruzione che abbiamo dato soddisfa la definizione che abbiamo dato nella fase 1. Quindi, questo mi porta alla fine di questa lezione. Per concludere, abbiamo discusso di alcuni dei cimici storici e di quanto fossero mal rotti. E discutiamo anche di alcune importanti lezioni che abbiamo imparato dai cifrari storici, e abbiamo discusso dei principi della crittografia moderna. Spero che ti sia piaciuta questa lezione. Thankte.