Loading
Note di Apprendimento
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-BangaloreLecture-13CPA SecurityHello ognuno, benvenuto alla lezione 12. Il piano per questa lezione è il seguente. (Fare Slide Time: 00 :32) In questa lezione discuteremo i limiti dei cifrari di flusso. E introdurremo il concetto di sicurezza CPA e vedremo le motivazioni degli attacchi CPA nello scenario del mondo reale. (Fare Slide Time: 00 :46) Quindi, ricordiamo il cifrario di flusso. Così nel flusso di flusso abbiamo un generatore pseudo casuale, giusto, che prende un seme casuale di l bit e ti dà un output di L bit e risultato è pseudo casuale nel senso che l'output non può essere distinto dall'esito di un generatore di numeri davvero casuale. Così l'algoritmo di crittografia del cifrario di flusso espande sostanzialmente il seme per la crittografia usando il pseudo generatore casuale trattando la chiave per l'algoritmo di crittografia come il seme per il generatore pseudo casuale. E l'output espanso dello pseudo generatore casuale viene utilizzato come un pad per mascherare il tuo messaggio. E nell'algoritmo di decriptazione facciamo solo il reverse operation. Quindi quello è un cifrario di flusso. Quindi la prima restrizione che viene imposta dalla cifratura di flusso è che non è un messaggio multi - messaggio sicuro. Questo significa che possiamo usare la cifratura di flusso solo per criptare un messaggio usando una chiave, non possiamo crittografare più messaggi usando la stessa chiave.E il motivo principale è che l'algoritmo di crittografia in qualsiasi cifratura di flusso è deterministico perché all'interno dell'algoritmo di crittografia, ci espanderemo la chiave utilizzando pseudo generatore casuale. Questo significa che se voglio cifrare un testo semplice m sotto la chiave k, porterà allo stesso cifrato c, giusto. Quindi se ho un messaggio dice 00. E se ho una chiave k, e se voglio cifrare un messaggio 00 usando la stessa chiave più volte, otterrò sempre lo stesso cifrato perché il mio algoritmo di crittografia non è randomizzato. Non c'è casualità interna come parte del processo di codifica di cifratura del flusso. E in base a questa idea, possiamo in realtà dare un'istanziazione dell'esperimento di sicurezza multi - messaggio COA dove possiamo mostrare un avversario in grado di identificare concretamente quale messaggio è crittografato dallo sfidante nell'esperimento. Ecco quindi l'istanza dell'esperimento. Dato che si tratta di un esperimento di sicurezza COA multi - messaggio, il nostro avversario sostanzialmente sottopone un paio di vettoriali di messaggi dove nel 0 vettore abbiamo 2 messaggi composti da tutti 0s.Whereas nel primo vettore m1 il primo blocco dei messaggi è il primo messaggio è tutto 0s mentre il secondo messaggio è tutto 1s. Ora come per le regole dell'esperimento, lo sfidante qui eseguirà l'algoritmo di generazione della chiave e deciderà casualmente l'indice m0 o m1 che vuole criptare. E di conseguenza prepara il cifrato di sfida per l'avversario dove il vettore cifrato di sfida è denotato da C vettore e consisterà in 2 right.Now, notate che il modo in cui l'avversario ha presentato la coppia di messaggi di sfida m0 e m1, l'avversario sa che se il vettore cifrario di sfida è una crittografia del vettore m0, allora sia c1 che c2 saranno identici perché entrambi sarebbero stati la crittografia dello stesso messaggio poi tutto il 0s. Mentre l'avversario sa che se la sfida cifrata è una crittografia del vettore di messaggi m1, allora sicuramente il testo di cifratura c1 sarà diverso dal cifrato c2.Perché il messaggio è nel primo vettore m1 sono diversi. Quindi in base a questa intuizione, il nostro avversario sta andando in uscita come segue che uscirà il bit b = 0 se e solo f c1 = c2. E ora è facile vedere che il nostro avversario sta per produrre il bit giusto. Ovvero, identificherà correttamente il messaggio di sfida che viene crittografato nel lato challenge cifrato c vettore con probabilità 1.Because se effettivamente il 0 vettore è criptato nel vettore C, quindi sicuramente c1 = c2. Mentre se il vettore del messaggio m1 sarebbe stato crittografato nella sfida, cifrato C, allora c1 non è uguale a c2. Così chiaramente il nostro avversario va a vincere questo gioco con probabilità 1, e che mostra che in un cifrario di flusso non possiamo cifrare più messaggi usando la stessa chiave, al massimo possiamo crittografare solo un singolo messaggio. (Fare Slide Time: 04 :52) La seconda restrizione imposta dal cifrario di flusso è che supporta la crittografia di soli messaggi di lunghezza fissa. Quindi per esempio immaginate di avere un cifrario di flusso sopra lo spazio dei messaggi di L bit, giusto. Quindi, immaginare mittente ha un messaggio che ha dimensioni più di L bit. Ad esempio, immaginate che il mittente abbia un messaggio composto da 2 L bit. Ora, un modo ingenuo di crittografare questo messaggio sarebbe stato quello di dividere il tuo messaggio in 2 blocchi ciascuno di dimensioni L bit, L bit. E crittografare ciascuno dei blocchi di messaggi m1 e m2 utilizzando il tasto k eseguendo 2 istanze dell'algoritmo di codifica di cifratura del flusso e il testo cifrato risultante sarà c1, c2. Ora la domanda è: questo metodo per dividere il tuo messaggio più grande in blocchi di dimensioni L più piccoli e crittografare ogni singolo blocco di messaggi è COA protetto o meno. E si scopre che la risposta è no. Questo a causa del problema che è stato l'algoritmo di crittografia di flusso è deterministico. Questo significa, se ho un messaggio più grande composto da diversi blocchi di L bit, e se ho ripetuto blocchi in questo messaggio più grande, allora ovunque che stia comparendo quel blocco che si ripete, otterrò gli stessi blocchi di testo cifrati perché lo stesso k usato per criptare tutti quei blocchi, e non c'è casualità interna come parte dell'algoritmo di codifica. Quindi in base a questa debolezza possiamo in realtà creare un'istanza dell'esperimento di sicurezza del singolo messaggio COA, e mostrare che effettivamente esistono una strategia avversaria, che può chiaramente identificare quale messaggio è stato crittografato dallo sfidante. Ecco quindi l'istanza dell'esperimento di sicurezza del singolo messaggio COA. Così, in questa istanza l'avversario sottopone 2 messaggi m0 e m1. E sottolineo che si tratta di un'istanza di un singolo esperimento di COA perché il nostro obiettivo è dimostrare che c'è un avversario in grado di distinguere la crittografia di 2 messaggi più grandi dove la nostra strategia di crittografia è quella di dividere i messaggi più grandi in piccoli blocchi e crittografare in modo indipendente quei blocks.Così, in questo caso sostanzialmente l'avversario sta sottoponendo 2 grandi messaggi, m0 e m1, dove m0basically è composto da 2 blocchi di tutti i 0s e m1 sarebbero costituiti dal primo blocco essendo tutto il 0s e il secondo blocco è tutto 1s. Ora, lo sfidante prepara la sfida cifrata e a farlo, sostanzialmente sfidante gestisce l'algoritmo di generazione chiavi del cifrario e ottiene una chiave casuale e decide casualmente o il messaggio m0 o m1 per la crittografia. Quindi in base all'indice b che viene scelto casualmente dallo sfidante, lo sfidante prepara la sfida cifrata composta da 2 blocchi di testo c1 e c2. E notate che qui l'avversario sa che se la sfida cifrare è una crittografia di m0, allora sicuramente c1 e c2 saranno uguali perché il nostro processo di crittografia è un algoritmo deterministico. D'altra parte il ouradversary sa che se la sfida cifrata C è una crittografia del messaggio m1, allora sicuramente il blocco di testo di cifratura c1 sarà diverso dal blocco di testo del cifrario c2.Perché i blocchi interni nel messaggio m1 sono diversi. Così, in base a questa strategia, l'avversario produrrà la sua produzione come segue outputs b = 0 se e solo se c1 = c2. Ed è facile vedere che la strategia avversaria in questo caso effettivamente identifica correttamente quale messaggio è stato crittografato nella sfida cifrare c con probabilità 1, questo significa che il 100% di possibilità l'avversario sta andando a distinguere la crittografia di m0 da una crittografia di m1. E da qui questo processo di suddividere il tuo messaggio più grande in blocchi di L bit, L bit e crittografare ogni blocco eseguendo un'istanza di cifratura di flusso ma con la stessa chiave k non è un meccanismo sicuro di meccanismo. (Fare Slide Time: 08 :58) Così, come potete vedere che sia le debolezze che abbiamo sottolineato nel contesto della cifratura di flusso sia per il fatto che l'algoritmo di crittografia nel cifrario del flusso è un algoritmo deterministico. E da qui è arrivato il momento di partire per un processo di crittografia randomizzato per liberarci di queste 2 carenze. (Fare Slide Time: 09 :16) Quindi quello che ora faremo a fianco è che introdurremo un modello di attacco più forte, ovvero il modello di attacco in chiaro scelto, che chiamiamo anche un CPA. E poi vedremo che quando costruiremo il processo di crittografia, che sono CPA sicure, possiamo effettivamente liberarci sia dei problemi che delle carenze che abbiamo riscontrato nel contesto di cifratura di flusso. Così prima di entrare nei dettagli formali del modello di attacco CPA, vediamo alcune applicazioni mondiali reali che vogliamo effettivamente catturare nel nostro modello di attacco. Questo è un esempio preso nel contesto della seconda guerra mondiale. Così questo esempio dimostra sostanzialmente come sostanzialmente l'esercito britannico abbia rotto i codici tedeschi ottenendo effettivamente un servizio di oracolo di crittografia dall'esercito tedesco. Così quello che ha fatto l'esercito britannico è il seguito. Hanno piantato le mine di mare in località note che io denotano per dire location 1, posizione 2 e posizione 3 e così via. E quello che l'esercito tedesco ha fatto praticamente è ogni qualvolta in realtà hanno trovato una mina di mare piantata in un luogo specifico, stavano mandando indietro l'identità di quelle località nel loro quartier generale in una moda criptata, a destra. Così qui abbiamo il mittente, l'esercito tedesco che sta effettivamente scoprendo le sedi delle miniere di mare e la headquarter si comporta come il destinatario. E c'è una chiave casuale chiave comune stabilita tra il mittente e il destinatario. E ogni qualvolta il mittente e cioè in questo contesto, l'esercito tedesco stava individuando le località della miniera di mare, stavano crittografando l'identità di quelle località sotto una chiave sconosciuta k e la rimandando al destinatario, ovvero la sede centrale. E quando questa comunicazione criptata stava accadendo, giusto, quello che ha fatto l'esercito britannico è sostanzialmente hanno intercettato questa comunicazione criptata. E sapevano quale messaggio è stato effettivamente crittografato, giusto. Quindi ciò che non è noto all'esercito britannico qui è la chiave k, che non è nota all'esercito britannico, ma quello che l'esercito britannico conosce in questo particolare esempio è quello che il messaggio è stato crittografato e comunicato al destinatario. Quindi in un certo senso possiamo immaginare che in questo esempio l'esercito britannico, si stia comportando come avversario, giusto. Perché è seduto tra il mittente e il destinatario e sta in qualche modo ottenendo un servizio di oracolo di crittografia, nel senso che l'esercito britannico costringeva i tedeschi a criptare i messaggi della scelta dell'esercito britannico. E anche questo senza lasciare che il mittente o il destinatario cioè l'esercito tedesco, consapevoli di questo fatto, giusto. Il motivo per cui lo definiamo come un servizio di oracolo che il mittente che sta effettivamente inviando i messaggi crittografati non è consapevole del fatto che è influenzato a criptare messaggi di scelta degli avversari. Così è il tipo di scenario d'attacco che è realmente accaduto nel contesto mondiale reale. E se si vede il nostro testo di codifica solo modello di attacco, sicuramente questo tipo di scenario non viene catturato nel nostro testo di codifica solo modello di attacco, perché si tratta di un attacco più potente, che può accadere e che non viene catturato correttamente, oppure non viene catturato in modo corretto nel modello di cifratura solo modello di attacco. (Fare Slide Time: 12 :38) Ora vediamo un altro esempio che motiva il modello di attacco in chiaro scelto. E questo è di nuovo nel contesto della guerra mondiale. E qui lo scenario è il seguito dell'esercito giapponese che in realtà stavano tenendo traccia dei movimenti della US Navy e si comporta come un mittente e il loro quartier generale indietro il Giappone è il ricevitore e hanno una chiave condivisa k. E in qualche modo, durante la guerra mondiale, la US Navy ha intercettato un messaggio che il giapponese sta progettando di attaccare una località chiamata AF.So AF era una sorta di location codificata. Così, dopo aver trascorso una quantità significativa di tempo, la US Navy non è stata in grado di confermare cosa corrisponde esattamente la posizione codificata AF. Ma hanno fortemente creduto che spicca per le isole di midway che è una piccola isola negli USA. Ma non erano sicuri se esattamente AF corrisponda all'isola di midway o meno. Quindi cosa confermare la loro intuizione o capire in sostanza ciò che ha fatto l'esercito statunitense è che hanno ottenuto un servizio di oracolo di crittografia dai giapponesi, in sostanza i giapponesi hanno costretto i giapponesi a criptare l'amessage della loro scelta e senza lasciare che l'esercito giapponese sapesse di questo fatto. Così come ha fatto la US Navy, questo è il seguente. Quindi quello che hanno praticamente fatto è semplicemente che hanno semplicemente, hanno istruito la forza che si trovava all'isola di midway per comunicare un messaggio alla sede statunitense affermando che le forniture di acqua dolce sono basse alle isole di midway. E questo messaggio è stato inviato in chiaro, e in realtà volevano che i giapponesi intercettasse questo messaggio. E questo messaggio è stato intercettato dall'esercito giapponese. E non appena l'esercito giapponese ha effettivamente intercettato questo messaggio, hanno fatto una comunicazione criptata alla loro headquarter sotto la chiave k che non era nota all'esercito statunitense e il messaggio criptato era sostanzialmente corrispondente al messaggio che AF è basso sull'acqua. E la comunicazione criptata è stata poi intercettata dalla Marina degli Stati Uniti. E ora si vede chiaramente che non appena questo messaggio criptato è stato intercettato, la US Navy è stata confermata che effettivamente AF corrisponde all'isola di midway. Così ora potete vedere qui, la US Navy ha praticamente agito come una seduta avversaria tra il mittente e il destinatario, e in qualche modo hanno ottenuto un servizio di oracolo di crittografia dal mittente, ovvero l'esercito giapponese in questo contesto. E una volta confermato che AF corrisponde all'isola di midway, in sostanza sono finite a dispiegare truppe aggiuntive nell'isola di Midway. E il giapponese ha pensato che effettivamente le isole Midway effettivamente abbiano un approvvigionamento idrico basso, cosa che in realtà non era. Quindi in realtà stavano puntando l'isola di midway. Non stavano anticipando che le truppe si siano rafforzate nel midway Island.E in realtà l'esercito giapponese finì per ammalarsi di pesanti vittime. Ecco, ancora, questo è un esempio di attacco vero e proprio attacco mondiale che non può essere catturato correttamente nel modello di cifratura solo modello di attacco. (Fare Slide Time: 15 :42) Che significa ora dobbiamo andare su un modello di attacco più forte che chiamiamo modello di attacco CPA. E lo scenario nel modello di attacco CPA è il seguente. Abbiamo un mittente e un ricevitore e una chiave casuale comune è in qualche modo concordata tra le 2 entità. E qui l'avversario è ipotizzabile per ottenere il servizio di oracolo di crittografia sia dal mittente che dal destinatario per semplicità come ipotizza l'ottenimento del servizio di oracolo di crittografia dal mittente. Quindi quello che intendo per i servizi di oracolo di crittografia è sostanzialmente che l'avversario in qualche modo ottiene l'accesso alla crittografia “ casella ” (tra virgolette). E in sostanza l'avversario può influenzare il senderto criptare qualunque avversario testo in chiaro voglia di crittografare senza lasciare realmente il senderknow o essere consapevole del fatto che il mittente sta effettivamente crittografando messaggi di istruzione avversaria. E questo può accadere per qualsiasi numero di query finché il tempo di esecuzione dell'aggressore è fattibile o computazionalmente delimitato. Quindi in questo caso, ad esempio, l'avversario può prima ottenere una crittografia del messaggio m1 e poi in base alla crittografia del messaggio m1 può decidere il prossimo quale messaggio dovrebbe chiedere la crittografia dall'oracolo di crittografia. Così per esempio m2 e come questo può interrogativamente interrogare l'oracolo di crittografia, giusto. Quindi quello che intendo per query adattative è che questo avversario non presenta tutte le sue query di crittografia in un solo colpo, il nostro avversario potrebbe essere un avversario più intelligente. E in base alle risposte che l'avversario ha visto dalla precedente interazione con l'oracolo di crittografia, può decidere cosa chiedere dall'oracolo di cifratura nelle successive query. In quel senso il nostro avversario è un avversario adattativo.E una volta che l'avversario ha avuto accesso all'oracolo di cifratura e ha preparato un database di diverse coppie (messaggi, cifrate), siamo tutti quei corrispondenti cifrati sono le crittografie del corrispondente testo di pianura sotto la stessa chiave sconosciuta k. L'obiettivo dell'avversario è il seguente: un messaggio fresco è criptato, e viene intercettato dal nostro avversario, e l'obiettivo dell'avversario è sostanzialmente quello di calcolare qualche funzione del testo di pianura sottostante in questo fresco testo cifrato. Sottolineo che potrebbe essere il caso che un messaggio fresco che sia stato crittografato e ora venga intercettato dall'avversario potrebbe già appartenere alla lista dei messaggi per i quali l'avversario avrebbe ottenuto la query oracolo di crittografia. Quando diciamo che vogliamo costruire uno schema sicuro CPA, il nostro schema dovrebbe occuparsi di questo scenario come wellright. (Fare Slide Time: 18 :07) Così ora facciamo diventare la definizione di CPA security un po' più formale attraverso il nostro esperimento. Abbiamo quindi un processo di crittografia conosciuto pubblicamente su alcuni spazi di messaggio noti e abbiamo un avversario delimitato dal punto di vista computazionale. E la nomenclatura dell'esperimento è la seguente. Chiamiamo l'esperimento come? ?????,? ??? rispetto all'avversario A posto contro uno schema Π e questo è un unico messaggio di sicurezza CPA.Siamo sostanzialmente l'obiettivo dell'aggressore è quello di identificare quale messaggio è stato crittografato in sostanza, deve distinguere la crittografia tra la crittografia di 2 messaggi in base al servizio di oracolo di crittografia, e n qui è il parametro di sicurezza. Quindi su un livello molto alto il gioco è composto da 4 tappe. Abbiamo una fase di allenamento pre - sfida, abbiamo una fase di sfida, abbiamo una fase di allenamento post sfida e abbiamo una fase di uscita. Se confrontiamo questo esperimento con il nostro gioco di sicurezza COA, allora la fase di sfida e di uscita rimane la stessa del gioco COA. Le novità qui sono la fase di formazione pre - sfida e la fase di allenamento post sfida. Andiamo dunque un po' più a fondo in quello che sono esattamente queste fasi di allenamento pre - challenge e post challenge. Così nella fase di allenamento pre - sfida, in sostanza il nostro avversario ottiene il servizio di oracolo di crittografia. Così sottopone diversi messaggi di sua scelta in modo adattabile e chiede la crittografia di quei messaggi. Quindi, per lo scopo della semplicità qui, ho rappresentato tutte le query oracole di crittografia presentate in un solo go. Ma questo potrebbe non essere il caso, il nostro avversario può presentare qualsiasi messaggio di sua scelta in base alla risposta che ha visto in precedenza. Quindi una volta che queste query di crittografia vengono inoltrate al nostro sfidante, quello che lo sfidante fa è rispondere ai thesequeries. E questo modello in sostanza l'avversario ottiene l'accesso al servizio di oracolo di crittografia dove può influenzare il mittente per criptare qualunque messaggio l'avversario si senta, e per rispondere alle query oracole di crittografia, ciò che lo sfidante fa è, esegue l'algoritmo di chiavi di generazione o ottiene un tasto casuale e codifica i messaggi di oracolo di crittografia m1, m2, …, mq come per l'algoritmo di crittografia dello schema Π. Quindi non c'è alcuna restrizione sul numero di query, che tipo di query l'avversario può inoltrare per le query oracle di crittografia e così via. L'unica limitazione è che il tempo di esecuzione dell'avversario deve essere computazionalmente delimitato e cioè dovrebbe essere una qualche funzione polinomiale del nostro parametro di sicurezza che rinforzza automaticamente una restrizione sulla coda, ovvero il numero di query che l'avversario può chiedere. Ecco quindi che si tratta di una fase di allenamento pre - sfida. (Fare Slide Time: 20 :59) Ora nella fase di sfida, l'avversario sfida il nostro sfidante e sottopone una coppia di messaggi dallo spazio di testo pianeggiante. Dal momento che si tratta di un singolo esperimento di sicurezza dei messaggi, l'unica limitazione alla coppia di messaggi di sfida è che le lunghezze dovrebbero essere le stesse. A parte che non c'è assolutamente alcuna restrizione che significa che il messaggio è m0 m1 potrebbe essere uno qualsiasi dei messaggi che l'avversario ha già interrogato come parte delle query oracole di crittografia. Così per distinguere i messaggi m0 e m1 che sono stati presentati come parte della fase di sfida, qui sto usando un colore diverso. Ma valore saggio ci potrebbe essere uno qualsiasi dei messaggi che l'avversario ha già interrogato in passato nella fase di formazione pre - sfida. Ora, lo sfidante deve preparare la sfida cifrata e a fare quello che lo sfidante fa è decidere casualmente se criptare il messaggio m0 o se criptare un messaggio m1.E una volta che ha deciso quale messaggio deve criptare, codifica quel particolare messaggio. Quindi il messaggio criptato è denotato da mb e con probabilità metà mb potrebbe essere m0 e con probabilità metà mb potrebbe essere m1. E ora la sfida per l'avversario è quella di identificare cosa esattamente è stato crittografato in c * se si tratta di m0 o se si tratta di m1. Ora, quello che facciamo qui è in realtà dare all'aggressore maggiore potenza qui right.Così, una volta che l'avversario vede la sfida cifrare di nuovo lasciamo che l'avversario ottenga l'accesso al servizio di oracolo di crittografia e questo fondamentalmente modella il fatto che nella vera e propria sessione mondiale tra il mittente e il destinatario potrebbe consistere in diversi messaggi e avversari potrebbe essere interessato a identificare o spezzare la sicurezza di un solo messaggio particolare in quella sessione in base a qualunque query oracle che potrebbe arrivare prima che il testo cifrato venga comunicato e dopo che quel cifrato venga comunicato. Così da modellare che, praticamente stiamo dando all'avversario un servizio di oracolo di crittografia post sfida, dove ancora può chiedere la crittografia di qualsiasi messaggio di sua scelta tra cui i messaggi di sfida, m0 o m1. Non c'è assolutamente alcuna restrizione. Può adattare in modo adattabile l'interrogazione oracolo e in risposta, imparerà la crittografia di quei messaggi. L'unica limitazione è che il numero di query deve essere superiore a delimitato da qualche funzione polinomiale del parametro di sicurezza l.Ora, una volta che l'avversario ottiene quella fase di allenamento pre - challenge, fase di allenamento post sfida, in base alle risposte che ha ottenuto, deve individuare ciò che è stato crittografato nella sfida cifrappica c *, ovvero deve identificare se si tratta di m0 o se si tratta di m1 crittografato in c *. Quindi, questa è un'istanza di un singolo messaggio una sicurezza CPA speriment.Now, la definizione di singolo messaggio di sicurezza della CPA è che diciamo che il nostro schema Π è un unico messaggio CPA sicuro o semanticamente singolo CPA sicuro, se per ogni algoritmo di tempo polinomiale probabilistico che partecipa a questo esperimento c'è qualche funzione trascurabile negl (n), tale che la probabilità di avversaria di vincere questo esperimento, che denunziamo come? (? outputs?? =?) ≤ 1 +? ??? (?) che significa la probabilità che A outputs o identifica il messaggio 2right che è stato crittografato in c *, è superiore a metà più quella funzione trascurabile, dove la probabilità è effettivamente presa sulla casualità del nostro sfidante e la casualità del nostro avversario. Ricordate quindi che tutte queste istanze di esperimento sono sperimentate in modo casuale, perché il verificatore si avvale di alcune monete casuali per decidere quale messaggio criptare, qual è l'algoritmo di generazione chiavi in uscita e la casualità interna che verrà utilizzata come parte del processo di codifica. Ecco perché la probabilità supera la casualità sullo sfidante. E nello stesso modo l'avversario potrebbe chiedere delle query oracole di crittografia, dove la natura delle query può essere determinata casualmente sulla base delle monete interne dell'avversario. Ecco quindi la nostra definizione di sicurezza del singolo messaggio CPA. E ciò che questa implicazione garantisce è che questo processo di suddivisione dei messaggi più grandi in piccoli blocchi e di crittografare ogni singolo blocco da un'istanza del regime Π è garantito per fornirti la sicurezza CPA.Ecco perché per il resto della nostra discussione ci concentreremo sulla progettazione di uno schema sicuro CPA solo per i messaggi di lunghezza fissa. Così questo mi porta alla fine di questa lezione, basta che riassumo quello che avevamo visto in questa lezione, abbiamo discusso delle 2 carenze di qualsiasi cifratura di flusso. La prima carenza è che non possiamo cifrare più messaggi, cioè la riusabilità chiave è una grande questione. E il secondo problema è che possiamo cifrare messaggi di sola lunghezza fissa Non possiamo utilizzare un processo di codifica che sia COA sicuro per un messaggio di lunghezza fissa per criptare i messaggi lunghi arbitrari dividendo i lunghi messaggi arbitrari in piccoli blocchi singoli e crittografando ogni blocco utilizzando la stessa chiave. Questo non ti darà una garanzia di sicurezza COA. Abbiamo anche introdotto la nozione di CPA security e avevamo visto qualche vera motivazione mondiale o esempi reali del mondo dove l'avversario può davvero lanciare un attacco CPA. E avevamo visto che nel mondo CPA, la sicurezza del singolo messaggio e la sicurezza dei messaggi multipli sono equivalenti. Grazie.