Loading
Note di Apprendimento
Study Reminders
Support
Text Version

Componimento CPA Secure Cipher e Secure MAC

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

    +

Fondamenti di Cryptography Dr. Ashish Choudhury Department of Computer Science Indian Institute of Technology - Bangalore Lecture – 34 Comporre CPA Secure Cipher con un Secure MAC Part I (Fare Slide Time: 00.34) Ciao a tutti, benvenuti a questa lezione, solo un rapido recap. Nell'ultima lezione avevamo visto la definizione di schema di crittografia autenticato e il piano per questa lezione è quello di costruire uno schema di crittografia così autenticato e cioè, in questa lezione vedremo come comporre un cifrario sicuro CPA e un MAC sicuro e ottenere uno schema di crittografia autenticato. Ci sono diversi approcci per comporre un cifrario sicuro CPA e un MAC sicuro. In questa lezione discuteremo uno di quegli approcci di comporre cioè, la cripta poi l'approccio autenticato. (Riferimento Slide Time: 01 :02) Quindi, il problema che ci interessa risolvere qui è che ci viene data una crittografia simmetrica sicura CPA e ci viene dato un codice di autenticazione dei messaggi e vogliamo combinarli o comporli per ottenere uno schema di crittografia autenticato. Quindi, abbiamo un sicuro Π CPA = (GenCPA, EncCPA, DecCPA) sul proprio spazio di testo pianeggiante, spazio chiave e uno spazio di testo cifrato. E abbiamo un Π MAC sicuro = (GenMAC, TagGen, TagVer) e ha il suo spazio di messaggio, lo spazio chiave e lo spazio dei tag e l'obiettivo qui è quello di arrivare con un modo genetico di comporre questi 2 primitivi tali che il modo in cui stiamo genericamente componiamo questi 2 primitivi porta sempre un sistema di crittografia autenticato. Quindi, quello che intendo per generico modo di comporre qui è che non mi concentrerei sull'istanziazione sottostante di Π CPA e il sottostante Π MAC. Noi li consideriamo solo come una scatola nera, supponiamo di ricevere qualche instanziamento e un'istanza arbitraria di un sistema sicuro CPA e di un'istanza arbitraria di sistema MAC sicuro e il nostro obiettivo è di comporli genericamente tali che siamo sempre garantiti ad ottenere uno schema di crittografia autenticato da quella composizione generica. Si scopre che ci sono diversi modi di comporre una crittografia simmetrica sicura di Π CPA e un MAC sicuro arbitrario Π ma tutti quei modi di composizione non devono darti necessariamente un cifrario di crittografia autenticato. Dunque, quello che faremo in questa lezione e la lezione successiva è che discuteremo il 3 degli approcci e in questa lezione; discuteremo solo del primo approccio. E dimostreremo che questo primo approccio ti porta sempre ad una cifratura di crittografia autenticata mentre, un restante 2 approcci non ha sempre bisogno di condurti a un cifrario di crittografia autenticato. (Riferimento Slide Time: 03.04) Quindi, discutiamo il primo approccio cioè, la cripta poi l'approccio autenticato. Tanto per ricordare ciò che abbiamo dato qui è; ci viene data una crittografia simmetrica sicura Π CPA e un MAC sicuro arbitrario Π e stiamo andando a comporre questi 2 primitivi per ottenere un cifrario di crittografia autenticato che ha il suo algoritmo di generazione chiavi, algoritmo di crittografia e crittografia. Lo spazio di messaggio di questo schema composto sarà lo spazio di messaggio del sottostante schema di sicurezza CPA, lo spazio chiave dello schema composto sarà un paio di chiavi, sono state scelte le prime chiavi; dove la prima parte della chiave apparterrà allo spazio chiave del processo di crittografia sicuro CPA e la seconda parte della chiave apparirà allo spazio chiave del codice di autenticazione del messaggio sottostante. E uno spazio di testo di cifratura dello schema composto sarà di nuovo una coppia, dove il primo componente della coppia apparterrà allo spazio di testo di cifratura dello schema sicuro CPA e il secondo componente del testo di cifratura apparterrà allo spazio del tag del codice di autenticazione del messaggio sottostante. Così si tratta di uno spazio di messaggio, di spazio chiave e di un tag di cifratura dello schema composto. Ora, vediamo come avviene esattamente la composizione in questa cripta quindi l'approccio autenticato, quindi l'algoritmo di generazione chiave dello schema composto è il seguente: esso esegue in modo indipendente l'algoritmo di generazione chiave dello schema di sicurezza CPA e l'output è fondamentale come per quell' algoritmo di generazione chiave che io denota da ke e indipendentemente esegue istanza dell'algoritmo di generazione chiavi del codice di autenticazione del messaggio e ottiene una chiave come per l'algoritmo di generazione chiavi del MAC che io denota da km. E la chiave complessiva o l'output complessivo della generazione chiave composta dell'algoritmo di generazione chiave per lo schema composto è considerato la coppia (ke, km). Sottolineo qui che la chiave (ke, km), sono indipendenti l'una dall'altra perché si ottengono eseguendo indipendentemente l'algoritmo di generazione chiave dello schema sicuro CPA e l'algoritmo di generazione chiavi del tuo MAC. Stiamo ipotizzando che questi 2 primitivi cioè lo schema sicuro CPA e il MAC, siano indipendenti l'uno dall'altro. Ora, vediamo l'algoritmo di cifratura dello schema composto, quindi immaginate di ricevere un testo semplice m che vogliamo ora criptare come per questo schema composto e come per nostra nozione, la chiave qui sostanzialmente è costituita da 2 parti; la prima parte della chiave è per lo schema sicuro CPA e la seconda parte della chiave è per l'informatica un MAC come per il codice di autenticazione del messaggio. Quindi potete immaginarlo come una scatola qui, che assume come input come il messaggio e la chiave, e come suggerisce il nome crittografare poi autenticarsi, quindi quello che faremo prima è cifrare il messaggio come per lo schema sicuro CPA utilizzando la parte ke della chiave complessiva per lo schema composto e produrrà un testo di cifratura c. Ora il testo di cifratura c è trattato come un messaggio per l'autenticazione e quello che ora andremo a fare; stiamo per compattare un tag per questo c; creare il c come messaggio e il tag è ora calcolato usando la seconda parte della chiave cioè km e qualunque cosa venga fuori da questo algoritmo di generazione di tag, lo denunceremo come t e ora, il testo di cifratura complessivo per questo schema composto sarà la parte c che abbiamo ottenuto crittografando il messaggio e la parte t che abbiamo ottenuto calcolando il tag sulla parte c, quindi è così che il testo di cifratura complessivo che abbiamo ottenuto da questa cripta poi l'approccio autenticato. Ora, vediamo come avviene la decodifica, quindi ancora l'algoritmo di decodifica prenderà una chiave che consisterà ulteriormente in 2 parti e ci vuole il testo di cifratura che è di nuovo composto da 2 parti; una parte c e la parte t. E ci vuole la chiave, ora per decodificare il testo di cifratura nello schema composto quello che facciamo è; eseguiamo per la prima volta la verifica del cartellino. Quindi stiamo solo eseguendo il reverse operation quello che abbiamo fatto per la crittografia nel processo di crittografia, quindi nel processo di crittografia abbiamo prima crittografato e poi abbiamo calcolato il tag, mentre la decodifica eseguiremo solo l'operazione nell'ordine inverso. Quindi, verifichiamo prima se il TagVer (,) = 1. Quindi se l'output è 1, questo significa che la parte t del testo di cifratura è effettivamente un tag valido sulla parte c del testo di cifratura, allora quello che facciamo è decodificare la parte c del testo di cifratura usando la parte ke del tasto complessivo e recuperare il testo di pianura. Mentre, se l'uscita della verifica del cartellino è di 0, allora non eseguiamo la decodifica come per lo schema sicuro CPA essere semplicemente box di output, quindi a seconda che la verifica del cartellino internamente superi 1 o 0, o finiamo per esternare il testo di pianura m o facciamo parte di parte indicando che il c concatenato con t, il testo di cifratura che stiamo ricevendo nell'algoritmo di decodifica è un testo di codifica non valido. Ecco quindi che comporremo la crittografia sicura CPA e un MAC sicuro come per la cripta poi l'approccio autenticato. (Riferimento Slide Time: 08 :49) Ora, vogliamo dimostrare formalmente che se lo schema di sicurezza della CPA; se la crittografia simmetrica che abbiamo assunto in questa composizione è CPA sicura e se il MAC che abbiamo preso in questa composizione è sicuro diciamo, forte CMA sicuro, poi indipendentemente da quale esattamente è l'istanziazione sottostante dello schema sicuro Π CPA e qual è esattamente l'istanziazione sottostante del componente MAC Π, il processo di codifica complessivo composto che abbiamo ottenuto è sempre uno schema di crittografia autenticato per uno spazio di messaggio che è lo spazio di messaggio del CPA sottostante schema sicuro, quindi è un teorema che vogliamo dimostrare. Quindi, prima di entrare nei dettagli formali della prova, cerchiamo prima di tutto di capire, qual è esattamente l'intuizione, perché esattamente questa affermazione teorica è vera. Quindi, trivialmente è facile vedere che lo schema composto è CPA sicuro perché lo schema composto sostanzialmente consiste in un processo di codifica composto, è costituito internamente dal sottostante schema di sicurezza CPA. L'unica differenza nello schema di crittografia autenticata è che come per la definizione di crittografia autenticata, richiediamo di avere sia la proprietà di integrità del testo di codifica sia la proprietà di sicurezza di CCA. Così, affermo qui che qualsiasi testo di cifratura (c*, t *) che sia diverso da diversi testi di cifratura legittima che un avversario ha visto in passato si decodifica sempre a una emissione non valida e questo perché se in fondo c'è un avversario malevolo che vuole forgiare un nuovo testo di cifratura, diciamo (c*, t *) che è diverso dal precedente testo di cifratura che ha visto nell'esperimento CCA come risposta dal servizio di crittografia Oracle. Poi questo significa che internamente, l'avversario deve creare o deve calcolare un tag t * sul messaggio c * sotto il km chiave sconosciuto, solo se questo è il caso possibile per un avversario, allora solo l'avversario potrebbe arrivare o può forgiare un testo di cifratura (c*, t *) che è diverso da tutto il testo di cifratura legittimo che ha visto come risposta dal servizio di crittografia Oracle. Ma quella sarà una violazione della forte sicurezza CMA del MAC sottostante, quindi ricordate che stiamo ipotizzando che il MAC sottostante sia forte di CMA sicuro e se è forte CMA sicuro, allora è molto improbabile che un tempo di polenta avversario basato su diversi testi di cifratura che si vede in passato potrebbe arrivare con il nuovo testo di cifratura della forma (c*, t *), dove t * è un tag su c *, dove c * è trattato come il messaggio. Quindi questa è la prima osservazione qui che significa, se è difficile per un avversario arrivare con il nuovo testo di cifratura legittimo che si decodifica a un output non nullo, allora significa che qualsiasi aggressore CCA dal punto di vista di quell' aggressore CCA, il servizio di decodifica Oracle è completamente inutile perché se in fondo cerca di creare un nuovo testo di cifratura, non può farlo perché creare un nuovo testo di cifratura legittima è bello come forgiare il codice di autenticazione del messaggio sottostante che può fare solo con molto meno probabilità. E questo significa che qualsiasi nuovo testo di cifratura o qualsiasi nuova stringa di bit, c concatenato t che cerca di creare e sottoporsi al servizio Oracle di decodifica torneranno sempre indietro a lui e questo significa che il servizio di decodifica Oracle è completamente inutile per un tale attaccante CCA e da qui un tale aggressore di CCA si riduce sostanzialmente a un'istanza di un attaccante CPA e che significa automaticamente che se il nostro schema composto Π è CPA sicuro. Questo significa, sostanzialmente quello che stiamo ora facendo è; stiamo riducendo l'aggressore CCA a un CPA attacker e dal momento che il nostro schema composto Π utilizza e sottostante schema sicuro CPA per il calcolo della parte c del testo di cifratura, sarà garantito che anche c concatenato t sarà CPA sicuro, vi darà la crittografia sicura CPA. Ecco allora come idea complessiva, il crudo della prova qui è quello di dimostrare in sostanza che il modo in cui stiamo componendo il MAC e lo schema sicuro CPA, il servizio di decodifica Oracle sarà inutile per qualsiasi aggressore CCA e qualsiasi aggressore CCA sostanzialmente si riduce a un CPA attacker e dato che stiamo utilizzando un sistema sicuro CPA internamente per eseguire la crittografia nello schema composto, lo schema composto sarà anche CPA sicuro. Tuttavia, si scopre che anche se questa intuizione è molto semplice per capire formalmente che questo attraverso riduzioni è il compito impegnativo. (Riferimento Slide Time: 13.44) Dunque, passiamo nei dettagli della prova di riduzione qui, quindi sto conservando il processo di codifica e il processo di decodifica dello schema composto e immaginate di avere un attaccante CCA arbitrario che sta partecipando ad una ricorrenza dell'esperimento CCA contro questo schema composto Π, così come per le regole dell'esperimento CCA è l'ACCA avversario avrà accesso sia alla crittografia Oracle sia al servizio Oracle di decodifica. E quello che ho fatto qui è che sto mostrando l'interazione di questo avversario con il servizio di crittografia Oracle con la prima scatola e con la seconda scatola, sto sostanzialmente denotando l'interazione di questo avversario con il servizio di decodifica Oracle. Quando sto dicendo il servizio di crittografia Oracle; perché si tratta di un servizio di crittografia Oracle perché l'avversario non conosce il valore della parte di ke casuale e il km parte della chiave per lo schema composto che l'oracolo di cifratura sta per cifrare per criptare il querelante che l'avversario presenterà. Allo stesso modo, quando l'avversario chiede la decodifica del testo di cifratura, l'avversario non starebbe conoscendo la parte ke e il km parte della chiave dello schema composto che la decodifica Oracle dello schema composto sta per utilizzare per rispondere alle query Oracle di decodifica di questo avversario. Quindi, ora prima di passare alla riduzione formale, permettetemi di introdurre alcune definizioni qui. Così, in ogni caso del gioco CCA, chiamerò un testo di cifratura (c | t) per essere un nuovo testo di cifratura, se le seguenti condizioni resistono. La prima condizione è che ACCA non abbia ottenuto il testo di cifratura dalla sua crittografia Oracle e o il testo di cifratura (c | t) è diverso dal testo di sfida ricevuto da questo avversario nel gioco CCA. Quindi, se una qualsiasi di queste 2 condizioni regge, allora chiamerò quel testo di cifratura (c | t) per essere un nuovo testo di cifratura. In sostanza, la definizione di un nuovo testo di cifratura è che è nuova nel senso che l'avversario ha prodotto questa stringa da sola che significa, non ha visto questa stringa come la crittografia di qualsiasi messaggio della sua scelta che ha inoltrato al servizio di crittografia Oracle o è diverso dalla crittografia della coppia di contestazioni di querelle che l'aggressore CCA presenterà nel gioco CCA. Se una qualsiasi di queste 2 condizioni regge, allora io chiamo questo bit string (c | t) per essere un nuovo testo di codifica, ora permettetemi di definire in evento che ho chiamato come query valida e questo evento valido query denota l'evento che questo ACCA di CCA sottopone un nuovo testo di codifica alla sua decodifica Oracle tale che la decodifica di questo nuovo testo di cifratura sotto la chiave sconosciuta seguito da km è un output legittimo che significa, il suo output è bot, quindi è l'evento valido per la query. Quindi, affermo che se il MAC sottostante che sto utilizzando nello schema composto è forte CMA sicuro, allora la probabilità con cui si verifica la query valida dell'evento è trascurabile, quindi lo dimostreremo in seguito. Per il momento ipotizza che questa affermazione sia vera, mi metto in pausa anche qui per un attimo e vorrei sottolineare qui che cos' è esattamente l'evento valido per la query.Se vedi da vicino il modo in cui ho definito l'evento valido query che è quasi uguale a quello che l'aggressore CCA potrebbe infrangere la proprietà di integrità del testo di codifica in presenza del servizio Oracle di crittografia così come in presenza del servizio Oracle di crittografia perché valida interrogazione significa che questo aggressore ACCA è in grado di inventarsi un nuovo testo di cifratura, diverso da qualsiasi testo di cifratura che ha visto come risposta dal servizio di crittografia Oracle così come il testo di cifratura che è diverso; così come è diverso dal testo di impugnatura tale che la sua decodifica sia un output non bot. Questo è proprio quello che richiediamo quando diciamo che un avversario vuole spezzare la proprietà di integrità del testo di cifratura ma nella proprietà di integrità del testo di cifratura, l'obiettivo dell'avversario è quello di arrivare con il nuovo testo di cifratura, un nuovo testo di codifica valido, basato solo sulle cifrature dei messaggi della sua scelta che significa, solo in presenza di un servizio di crittografia Oracle. Ma ora, questo evento valido per query è l'evento che l'aggressore CCA potrebbe arrivare con un testo di cifratura forgiato la cui decodifica è un output legittimo, anche l'avversario ha avuto accesso al servizio di crittografia Oracle nonché al servizio Oracle di decodifica. Questo significa, se a tutta questa rivendicazione che sto rivendicando qui o facendo qui è vero che significa, la probabilità che l'evento valido si verifichi con la probabilità trascurabile, se questa affermazione è vera. Che automaticamente, implica che il mio processo di crittografia che ho fatto; ho progettato qui componendo lo schema sicuro CPA e il MAC ha anche la proprietà di integrità del testo di codifica che significa, la probabilità con cui la proprietà di integrità del testo di cifratura sarà soddisfatta è sempre superiore delimitata dalla probabilità con cui la query valida può verificarsi in presenza di qualsiasi aggressore CCA. E se effettivamente dimostro che la probabilità che la query valida dell'evento si verifichi con la probabilità trascurabile, implica automaticamente che la proprietà di integrità del testo di cifratura sia soddisfatta anche dal mio schema. Quindi ci toccherà di nuovo questo fatto più avanti, quando dimostreremo la proprietà di integrità del testo di cifratura dello schema composto. (Riferimento Slide Time: 19 :28) Ma per il momento, supplisce che questa affermazione sia vera. Quindi ora voglio dimostrare che il schema composto che abbiamo progettato qui è effettivamente CCA sicuro, quindi cerchiamo di calcolare che qual è la probabilità che qualsiasi aggressore CCA che attacca questo schema composto sia in grado di vincere l'istanza del gioco CCA che significa, qual è la probabilità che l'output dell'esperimento CCA sia di 1? La probabilità che questo avversario possa vincere il gioco CCA può essere ulteriormente divisa in 2 casi cioè primo caso in cui l'avversario può vincere il gioco CCA sotto la presenza dell'evento che si verifica una query valida e secondo caso in cui l'avversario può vincere il gioco CCA anche quando l'evento valido non si verifica. Questa è una probabilità complessiva dell'aggressore CCA che vince il gioco CCA. E poi quello che posso fare è che questa prima quantità qui posso sempre delimitata dalla probabilità che si verifichi una query valida evento, quindi è così che ottengo un limite superiore sulla probabilità complessiva con cui l'avversario può vincere il gioco CCA. Quindi questa è una probabilità complessiva e quello che sto per mostrare è che se il mio sottostante processo di crittografia simmetrica nello schema composto è CPA sicuro, allora quello che proverò è che la probabilità che l'aggressore CCA possa vincere il gioco anche in assenza della query valida dell'evento è superiore a 1/2 + trascurabile. Intuitivamente questo è vero perché se l'evento valido la query non avviene che significa, tutto il nuovo testo di cifratura che l'aggressore CCA sta andando a presentare alla decodifica Oracle sta per restituirgli una parte di uscita, poi sostanzialmente questo aggressore CCA si riduce a un'istanza di CPA attacker e è il mio processo di crittografia simmetrica sottostante è CPA sicuro, poi significa automaticamente che la probabilità complessiva dell'aggressore CCA di vincere il gioco è in alto delimitato da 1/2 + trascurabile. Quindi, questa è una pretesa che proverò subito, quindi ora ipotizziamo per il momento che effettivamente questa affermazione sia vera, allora sto già affermando che la probabilità con cui può verificarsi la query valida dell'evento è trascurabile e se effettivamente proverò questa nuova affermazione che sto facendo qui che la probabilità che questo aggressore CCA possa vincere il gioco in assenza della query valida dell'evento è superiore delimitata da ½ + trascurabile. Poi, ottengo che nel complesso la probabilità che l'aggressore CCA possa vincere il gioco è in alto delimitato da ½ + negl (n) + qualche altra funzione trascurabile e una somma di 2 funzione trascurabile è anche una funzione trascurabile, quindi questo dimostrerà che la probabilità che il CCA aggressore sia in grado di vincere il gioco CCA è ½ + negl (n) e da qui lo schema è il CCA sicuro. Quindi, ora vediamo la prova di questa nuova rivendicazione, che sto facendo qui. (Riferimento Slide Time: 22 :33) Quindi, voglio dimostrare che se la crittografia simmetrica sottostante che sto utilizzando nello schema composto è CPA sicura, allora questa probabilità è delimitata da ½ + negl (n) e questo sto per stabilire precedentemente attraverso una riduzione. Quindi, immaginate un attaccante CCA arbitrario che sta suonando un'istanza del gioco CCA contro lo schema composto Π, usando un tale aggressore sto andando a progettare un altro aggressore che lo dengo come ACPA, il cui obiettivo è quello di vincere un'istanza del gioco CPA contro il sottostante processo di crittografia simmetrica che viene utilizzato nello schema composto. Quindi, sostanzialmente l'obiettivo di questo avversario ACPA è quello di vincere un'istanza del gioco CPA contro il processo di crittografia simmetrica sottostante che sto utilizzando nello schema composto. Quindi nella parte sinistra laterale in sostanza, della riduzione complessiva si ha una ricorrenza del gioco CPA ma contro il sottostante schema di crittografia simmetrica che viene utilizzato nello schema composto e sulla parte destra laterale dell'esperimento si ha una ricorrenza del gioco CCA. Questo ACPA avversario svolgerà un duplice ruolo; sulla parte sinistra laterale della riduzione si comporta come avversario in un'istanza del gioco CPA, mentre nella parte destra parte dell'esperimento si comporta come verificatore per un'istanza del gioco CCA contro lo schema composto. Quindi, ora vediamo come avvengono esattamente le interazioni in questa riduzione, quindi quando questo avversario ACPA richiama l'avversario ACCA. L'ACCA avversario può chiedere per le query Oracle di crittografia, dove sottopone diversi testi di pianura e chiesto le crittografie di quei messaggi come per lo schema composto, per rispondere a quelle query, ciò che l'avversario ACPA fa è semplicemente inoltra quelle query come se volesse conoscere la crittografia di quei messaggi come per il sottostante schema di crittografia simmetrica. Ora, quello che il verificatore per il gioco CPA sta andando a fare è rispondere a queste query e rispondere a quelle query, picchia la chiave come per l'algoritmo di generazione chiavi del sottostante schema di crittografia simmetrica che io dengo di ke e sta andando a criptare quei messaggi e il testo di cifratura qui che sono restituiti all'avversario ACPA sono sostanzialmente la crittografia di questi messaggi mi si trova sotto la chiave ke.Now, questo avversario ACPA, deve agire come verificatore e deve rispondere alle query Oracle di crittografia che ha visto nella parte CCA dell'esperimento così, quello che farà è rispondere alle query Oracle di crittografia, questo avversario ACPA stesso picchia una chiave uniformemente casuale dallo spazio chiave del MAC sottostante come per la generazione chiave dell'algoritmo della componente MAC e di quello che sta andando a fare è: sta andando a compattarsi tag ti si trova sul testo codificato che aveva visto dal verificatore della parte CPA dell'esperimento della riduzione. Ognuno di quelli che ci sono concatenati con i tetti ti vengono rimandati indietro come la risposta dal servizio di crittografia Oracle all'ACCA avversario. Quindi, se vedete da vicino qui quello che sta accadendo qui in sostanza, l'avversario ACCA prevede la crittografia di questi messaggi m1, m2, .. ms come per lo schema composto Π. E come sarebbe stata calcolata esattamente la crittografia per questi messaggi, sarebbe stato calcolato per prima crittografare questi messaggi come per il sottostante schema di crittografia simmetrica, quindi ecco qual è la parte qui e sopra di essa verrà calcolato uno strato di tag di autenticazione dei messaggi ed è quello che sta facendo questo avversario ACPA. Quindi, se considero solo la vista di questo ACCA avversario, la vista è esattamente la stessa che ci si sarebbe aspettata quando partecipa all'istanza del gioco CCA e vede la risposta di questa crittografia Oracle query dal corrispondente esperimento. Quindi, la distribuzione saggia la distribuzione di probabilità del testo di cifratura all'avversario ACCA finalmente vede in risposta alle sue query Oracle di crittografia è esattamente uguale a per un'istanza del gioco CCA che prevede. La differenza qui è che ora l'interazione dell'avversario è sostanzialmente con l'attaccante CPA che sta elaborando lo strato di MAC tag sul testo di cifratura che sta vedendo dal verificatore o dall'esperimento o dall'esperimento CPA. Ecco, ecco come le query Oracle di crittografia sono gestite da questo avversario ACPA. Ora supponiamo che questo aggressore CCA chieda le query Oracle di decodifica e cioè supporre, sottopone un testo di cifratura (c | t) e chiede la decodifica di tale testo di cifratura. Ora, quello che questo avversario ACPA deve fare: deve agire da verificatore per l'esperimento CCA e deve decriptare quei testi di cifratura. Ma non può decodificare completamente quei testi di cifratura perché per aver decodificato quei testi di cifratura, è necessario avere sia il km parte della chiave sia la parte ke della chiave. La parte km della chiave è disponibile con questo attaccante CPA ma la parte ke della chiave è disponibile con l'esperimento; con l'esperimento CPA che non può andare a prendere perché se può recuperare la parte ke del gioco CPA, poi trivialmente questo avversario ACPA può vincere il gioco CPA. La sfida per questo ACPA avversario è sostanzialmente quella di vincere l'esperimento CPA anche senza conoscere il tasto ke, quindi il modo in cui questo avversario ACPA sta andando a rispondere a queste query Oracle di decodifica è il seguente: vede se questa stringa (c | t) che è stata presentata dall'aggressore CCA per il servizio di decodifica Oracle è già presente nell'elenco del testo di cifratura che questo avversario ACPA ha inviato all'avversario in risposta ad una query Oracle di crittografia. In sostanza, verifica se il testo di cifratura è un risultato di crittografia di uno qualsiasi dei messaggi precedenti per i quali l'avversario ACCA ha chiesto il servizio di crittografia Oracle, se così è accaduto che effettivamente questo è il caso allora ciò che questa avversaria ACPA fa è; basta rispondere con il messaggio m come uscita del servizio Oracle di decodifica per il testo di cifratura (c | t). D'altra parte, se questo avversario ACPA vede che il testo di cifratura (c | t) è una nuova stringa che non è presente nell'elenco del testo di cifratura che ha già inviato come risposta alle query Oracle di crittografia all'ACCA avversaria, allora sostanzialmente la risposta per questo servizio Oracle di decodifica per tale nuovo testo di codifica è bot, ecco qual è la strategia di questo ACPA avversario per rispondere al servizio Oracle di decodifica. Ora, come per il gioco CCA, questo ACCA avversario presenterà un paio di contestazioni in chiaro (m0, m1) e ciò che questo avversario ACPA fa è semplicemente portare avanti quei testi in chiaro come la contestazione nella parte CPA di questa riduzione. Quello che questo esperimento CPA fa è che decide casualmente uno dei messaggi per la crittografia e crittografare il messaggio di testo come per la chiave ke e cosa questo avversario ACPA fa è aggiunge il proprio layer di tag di autenticazione del messaggio su c * trattando c * come il tag come per il km chiave e che ha inviato come testo di sfida il testo a questo avversario ACCA. Di nuovo se si vede la vista dell'avversario che significa, la distribuzione di probabilità del testo di sfida e l'avversario ACCA si vede è esattamente la stessa che questo avversario ACCAavrebbe visto partecipando ad una vera e propria istanza del gioco CCA. Il testo di cifratura (c*, t *) sarebbe stato calcolato prima crittografando il mb di messaggi sotto una chiave ke, che è uniformemente casuale. E poi seguirlo aggiungendo uno strato di tag sotto un km chiave, anch'esso uniformemente casuale ed è così che è esattamente la distribuzione del testo della sfida (c*, t *) che questo avversario ACCA sta vedendo in questo esperimento. In questa lezione abbiamo visto come comporre la crittografia simmetrica sicura CPA e un MAC sicuro e utilizzando la cripta quindi autenticarsi in modo tale che lo schema composto sia sempre provabilmente