-
na semana passada, aprendemos a teoria dos números que é necessário para a criptografia de chave pública.
-
Esta semana vamos colocar esse conhecimento para trabalhar, e vamos construir uma
-
seguras número de sistemas públicos de criptografia de chave. Mas, primeiro, precisamos definir o que
-
é a criptografia de chave pública, eo que isso significa para a criptografia de chave pública para ser
-
é seguro? Então deixe-me lembrá-lo que, em um esquema de criptografia de chave pública, há uma
-
algoritmo de criptografia que normalmente é representado por E, e há uma decodificação
-
algoritmo que denotamos por D. No entanto, aqui, o algoritmo de criptografia tem um
-
chave pública, enquanto o algoritmo de descodificação leva uma chave secreta. Este par é chamado um
-
par de chaves. E a chave pública é usada para criptografar mensagens, enquanto a chave secreta
-
é utilizado para decifrar mensagens. Assim, neste caso uma mensagem m é criptografar usando
-
a chave pública eo que sai do que é o c texto cifrado. E da mesma forma o
-
cifrado é alimentada no algoritmo de descodificação e usando a chave secreta, o que
-
sai do algoritmo de descodificação é o m mensagem original. Agora chave pública
-
criptografia tem muitas aplicações. Na semana passada vimos o clássico de uma aplicação que
-
é a configuração da sessão, ou seja, de troca de chaves e agora estamos apenas olhando para troca de chaves
-
que é seguro contra a espionagem só. E se você se lembrar da forma como o protocolo
-
obras, basicamente de Alice, o que ela faria se ela gerar um segredo de chave pública
-
par. Ela iria enviar a chave pública para Bob. Bob irá gerar uma aleatória X, o qual
-
vai servir como seu segredo compartilhado, e então ele envia X criptografadas para Alice,
-
criptografada com sua chave pública. Alice pode descriptografar, recuperar X e agora ambos
-
tem esse X segredo compartilhado que eles podem usar para comunicar de forma segura com um
-
outro. O atacante, é claro, tudo o que ele consegue ver é apenas a chave pública, o
-
criptografia de X sob a chave pública, a partir do qual ele não deveria ser capaz de obter qualquer
-
informações sobre X. E nós vamos definir que, mais precisamente para entender
-
o que significa não ser capaz de aprender qualquer coisa sobre X. criptografia de chave pública
-
realmente tem muitas outras aplicações. Por exemplo, é muito útil na
-
não aplicações interativas. Então, acho que de um sistema de e-mail por exemplo. Então, aqui, Bob
-
quer enviar e-mail para Alice, e como Bob envia o e-mail, o e-mail passa de
-
retransmissão de email para retransmitir emails até que finalmente chega Alice, altura em que Alice deve
-
descriptografar. A forma como o sistema de e-mail está configurado, é projetado para o tipo de
-
não-interativas locais onde Bob envia o e-mail. E, em seguida, Alice é suposto
-
recebê-lo. E Alice não deve ser para comunicar com Bob para descodificar
-
e-mail o. Portanto, neste caso, por causa da interatividade não, não há oportunidade
-
para a criação de um segredo compartilhado entre Alice e Bob. Portanto, neste caso, qual seria
-
acontecer é, basicamente, Bob teria, seria enviar o e-mail criptografado, usando de Alice, pública
-
chave. Então ele envia o e-mail. Qualquer pessoa no mundo pode enviar o e-mail criptografado para
-
Alice, criptografados usando sua chave pública. Quando Alice recebe este e-mail, ela utiliza
-
chave o seu segredo para descriptografar o texto cifrado e recuperar a mensagem de texto simples.
-
Claro que a única ressalva em um sistema como este é que, de facto, Bob precisa de alguma forma
-
obter a chave pública de Alice Então, por agora estamos apenas indo supor que Bob já tem
-
chave pública de Alice, mas mais tarde, na verdade, quando falamos sobre digitais
-
assinaturas nós vamos ver como, este pode realmente ser feito de forma muito eficiente utilizando o que há de
-
chamado de gerenciamento de chave pública e como eu disse nós vamos realmente voltar para que em uma tarde
-
tempo. Mas a principal coisa que eu quero que você lembre-se, é que a criptografia de chave pública é
-
usado para a instalação da sessão. Isso é muito comum na web, onde a chave pública
-
criptografia é usada para criar uma chave segura entre um navegador da web e e servidor web.
-
E a criptografia de chave pública também é muito útil para aplicações não-interativas,
-
onde qualquer pessoa no mundo, não interativa, precisa enviar uma mensagem
-
para Alice, que pode criptografar a mensagem utilizando a chave pública de Alice, e Alice pode descriptografar
-
e recuperar o texto puro. Então deixe-me lembrá-lo em detalhe um pouco mais que um
-
sistema de criptografia de chave pública é. Bem, ela é composta de três algoritmos G, E, e
-
D. G é chamado o algoritmo de geração de chave. Basicamente o que ele vai fazer é que vai
-
gerar esse par de chaves, a chave pública ea chave secreta. Como escrevi aqui, G leva
-
sem argumentos, mas na vida real, G, na verdade não ter um argumento chamado a segurança
-
parâmetro que especifica o tamanho das teclas que são gerados por esta chave
-
algoritmo de geração. Então há esses algoritmos de criptografia, como de costume que tomar uma
-
chave pública e uma mensagem e produzir uma mensagem cifrada em um algoritmo de descodificação que
-
pega a chave correspondente secreta e um texto cifrado e produz uma correspondente
-
mensagem. E como de costume para a consistência nós dizemos que se criptografar uma mensagem sob uma
-
dada chave pública e, então, decifrar com uma correspondente chave secreta que deve começar a
-
volta mensagem original. Agora o que isso significa para uma criptografia de chave pública a ser
-
seguro? Vou começar por definir, a segurança contra a espionagem.
-
E então vamos definir a segurança contra ataques ativos. Assim, a maneira para
-
definir a segurança contra a espionagem é muito semelhante com o caso simétrico nós temos
-
já esta semana passada, então nós vamos passar por isso rapidamente, assim como uma revisão.
-
Basicamente jogo o ataque é definido como segue. Definimos estes dois experimentos,
-
nula experiência e experimentação. No experimento em ambos o desafiante está indo
-
gerar um público e um par de chave secreta. Ele vai dar ao público
-
chave para o adversário. O adversário mundo vai querer saída de duas mensagens M0 e M1 de
-
comprimento igual e então o que ele recebe de volta é a criptografia de m0 ou o
-
criptografia de m1. No experimento que ele recebe de zero a criptografia de m0. No experimento
-
que ele recebe a criptografia de m1. E, em seguida, o adversário é suposto dizer que um
-
ele conseguiu. Ele começa a criptografia de m0 ou ele conseguiu a criptografia de m1? Assim
-
neste jogo, o atacante só fica um texto cifrado. Isto corresponde a uma
-
ataque escutas onde ele simplesmente escutado sobre esse texto cifrado C. E agora
-
seu objetivo é saber se o texto cifrado C é a criptografia de M0 ou M1. Não
-
adulteração no texto cifrado C é permitido ainda. E como sempre dizemos que o
-
esquema de criptografia de chave pública semanticamente seguro se o atacante não pode
-
distinguir de zero experiência de um experimento. Em outras palavras, ele não pode
-
dizer se ele chegou a criptografia de M0, ou a criptografia de M1. Antes de seguir em frente
-
aos ataques ativos, quero mencionar uma relação rápida entre a definição que
-
acabamos de ver, E a definição de, de segurança espionagem para simétrico
-
cifras. Se você se lembrar, quando falamos de segurança espionagem para simétrico
-
cifras, foi possível distinguir entre o caso em que a chave é usada uma vez, e no caso
-
onde a chave é usada várias vezes. E, de fato, vimos que, há uma clara
-
separação. Por exemplo, a almofada de uma única vez. É seguro se a chave é usada para criptografar uma
-
única mensagem, mas é completamente inseguro se a chave é utilizada para encriptar múltipla
-
mensagens. E, de fato, tivemos duas definições diferentes se você se lembra, tivemos uma
-
definição de um tempo de segurança, e depois tivemos uma definição separada, o que era
-
mais forte, quando a chave foi usada várias vezes. A definição que eu mostrei no
-
slide anterior é muito similar à definição de um tempo para segurança
-
cifras simétricas. E, de fato, verifica-se que para a criptografia de chave pública, se um
-
sistema é seguro em uma chave única vez, em certo sentido, também é seguro por um tempo, muitos
-
chave. Em outras palavras, não temos explicitamente dar ao invasor a capacidade
-
para, criptografias de mensagens de solicitação de sua escolha. Porque ele poderia apenas criar as
-
criptografias sozinho. Ele recebe a chave pública e, portanto, ele pode, por
-
se criptografar qualquer mensagem que ele gosta. Como resultado qualquer par de chave pública secreta em alguns
-
sentido inerentemente é usada para criptografar mensagens múltiplas porque o atacante
-
poderia ter apenas criptografados muitas, muitas mensagens de sua escolha usando o dado
-
chave pública que nós apenas lhe deu na primeira etapa. E assim, como resultado, na verdade,
-
definição de um segurança o tempo é suficiente para implicar a segurança do tempo e muitos
-
é por isso que nos referimos ao conceito como indistinguibilidade sob uma planície escolhida
-
texto anexar. Portanto, esta é apenas uma questão menor para explicar por que as configurações do público
-
criptografia, nós não precisamos de uma definição mais complicado para capturar
-
segurança escutas. Agora que entendemos de segurança espionagem, vamos
-
olhada adversários mais poderosos que podem realmente montar ataques ativos. Assim, em
-
particular, vejamos o exemplo de e-mail. Então, aqui, temos o nosso amigo Bob
-
que quer enviar e-mail para sua amiga Caroline. E Caroline acontece a ter, um
-
conta no Gmail. E a maneira como isso funciona é, basicamente, o email é enviado para o
-
servidor do Gmail, criptografado. O servidor decifra o e-mail Gmail, olha para o destinado
-
destinatários. E então, se é, o destinatário é Caroline, que
-
encaminha o e-mail para Caroline. Se o destinatário é o atacante, que
-
encaminha e-mail até o atacante. Esta é semelhante à forma como realmente funciona o Gmail
-
porque o remetente enviar o e-mail criptografado em SSL para o servidor do Gmail.
-
O servidor do Gmail iria encerrar a SSL e, em seguida, encaminhar e-mail até o
-
recipientes apropriados. Agora, suponha que Bob criptografa o e-mail usando um sistema que
-
permite que o adversário para mexer com o texto cifrado sem ser detectado. Para
-
exemplo, imagine que este e-mail é criptografada usando o Modo Contador, ou algo parecido
-
que. Então, quando o atacante intercepta este e-mail, ele pode alterar o destinatário,
-
de modo que agora o destinatário diz attacker@gmail.com, e sabemos que, para
-
modo de contador, por exemplo, isso é muito fácil de fazer. O atacante sabe que o
-
e-mail destina-se a Caroline, ele está apenas interessado no corpo do email. Assim, ele pode
-
facilmente alterar o destinatário de e-mail para attacker@gmail.com e agora, quando o servidor
-
recebe o e-mail, ele vai decifrá-lo, ver que o destinatário é suposto ser
-
atacante, e encaminhar o corpo para o atacante. E agora, o atacante foi capaz de
-
ler o corpo do e-mail que foi destinado para Caroline. Então esta é uma
-
exemplo clássico de um ataque ativo, e você percebe que o atacante poderia fazer
-
aqui, é possível decodificar qualquer texto cifrado, onde o destinatário é o seguinte:
-
atacante. Assim, qualquer texto cifrado, onde o texto simples começa com as palavras "Para: atacante". Portanto, nossa meta é
-
para projetar sistemas de chave pública que são seguros, mesmo que o atacante pode manipular
-
com texto cifrado e, possivelmente, cyphertexts decifrar certos. E novamente, eu quero
-
ressaltar que aqui o objetivo do atacante era fazer com que o corpo da mensagem. O atacante
-
já sabia que o e-mail destina-se a Caroline. E tudo o que tinha a fazer era
-
apenas alterar o destinatário, se destina. Portanto, este ataque motiva a adulteração
-
definição de texto cifrado escolhido segurança. E na verdade, esta é a noção de padrão de
-
de segurança para criptografia de chave pública. Então deixe-me explicar como o ataque [aqui Proceedes] e como eu
-
disse que nosso objetivo é construir sistemas que sejam seguros ao abrigo do presente muito, muito conservadora
-
noção de criptografia. Portanto, temos um esquema de criptografia (G, E, D). E digamos
-
que é definido sobre um espaço e uma mensagem cifrada (M, C) e como de costume estamos
-
vai definir dois experimentos, experiência zero, e um experimento. Então, 'b' aqui
-
diz que se o adversário está a implementar a zero experimento ou experiência
-
um. O desafiante começa por gerar uma chave pública e uma chave secreta, e, em seguida, dá
-
chave pública para o adversário. Agora, o adversário pode dizer: "Bem, aqui são um bando
-
de mensagens cifradas, por favor, decifrá-los para mim. "Então, aqui o adversário apresenta
-
texto cifrado C1 e ele fica a decodificação de texto cifrado C1, ou seja, M1. E ele fica
-
fazer isso de novo e de novo, então ele envia texto cifrado C2, e ele fica a descriptografia,
-
que é M2, cifrado C3, e que ele recebe o M3 descodificação, e assim por diante e assim por diante.
-
Finalmente, o adversário diz: "Esta fase de quadratura é mais", e agora ele
-
apresenta basicamente duas mensagens de comprimento igual, M0 e M1 como normal, e ele
-
recebe em resposta ao desafio cifrado C, que é a criptografia de M
-
zero ou a criptografia de um M. Dependendo se estamos em zero ou experiência
-
experimento um. Agora, o adversário pode continuar a emitir estes texto cifrado
-
consultas. Assim, ele pode continuar a pedidos de emissão, de descriptografia. Então ele envia uma
-
texto cifrado, e ele recebe uma decodificação desse texto cifrado, mas é claro que, agora, não
-
tem que ser uma advertência. Se o atacante poderia enviar texto cifrado arbitrária de sua escolha,
-
é claro, ele poderia quebrar o desafio. O que ele faria se ele se submeteria a
-
desafio cifrado C como uma consulta de descriptografia. E então ele seria informado se
-
na fase de desafio foi-lhe dada a criptografia de M0 ou a criptografia de M1.
-
Como resultado, colocamos esta limitação aqui, que diz que ele pode de fato apresentar qualquer
-
texto cifrado de sua escolha senão. Para o texto cifrado desafio. Assim, o invasor
-
poderia pedir a decodificação de qualquer mensagem cifrada de sua escolha que não seja o
-
desafio cifrado. E mesmo que ele foi dado todos estes decryptions, ele ainda
-
não deve ser capaz de dizer se ele foi dado a criptografia de M0 ou o
-
criptografia de M1. Então você percebe esta é uma definição muito conservadora. Ele dá a
-
poder atacante mais do que aquilo que vimos no slide anterior. No slide anterior,
-
o invasor pode descriptografar mensagens apenas quando o texto simples começou com as palavras
-
"para: atacante". Aqui, nós estamos dizendo que o atacante pode decifrar qualquer mensagem cifrada de sua escolha,
-
enquanto é diferente do desafio cifrado C. Ok? E então, seu
-
objetivo é dizer se o texto cifrado desafio é a criptografia de M0 ou o
-
criptografia de M1. E como de costume, se ele não pode fazer isso, em outras palavras, a sua
-
comportamento em zero experiência é basicamente o mesmo que o seu comportamento no experimento
-
um, então ele não foi capaz de distinguir a criptografia de M0 da criptografia de
-
M1, embora tivesse todo esse poder Então dizemos que o sistema é escolhido
-
texto cifrado seguro, CCA seguro. E às vezes há uma sigla, a sigla
-
para isso é indistinguibilidade sob um ataque de texto cifrado escolhido, mas eu sou apenas
-
vai dizer CCA garantido. Então vamos ver como isso captura, o exemplo de e-mail que vimos
-
antes. Assim, suponhamos que o sistema de criptografia a ser utilizado é tal que apenas dada a
-
criptografia de uma mensagem que o atacante pode mudar o destinatário a partir de
-
Alice dizer, para Charlie. Então aqui está como gostaríamos de ganhar o jogo CCA. Bem no
-
primeiro passo ele deu a chave pública do curso. E então o que o atacante vai fazer
-
é que ele iria emitir duas mensagens de comprimento igual, ou seja, na primeira mensagem, os
-
corpo é zero. Na segunda mensagem o corpo é um. Mas ambas as mensagens são
-
destinado a Alice. E em resposta, ele seria dado o desafio cifrado C.
-
Ok, então agora aqui temos o nosso desafio cifrado C. Agora, o que o atacante é
-
vai fazer é que ele vai usar o seu, a sua capacidade aqui para modificar a que se destina
-
destinatário. E ele vai mandar de volta um texto cifrado C, onde C 'é a criptografia
-
da mensagem de Charlie com o corpo sendo o corpo b desafio. Então, se você lembrar é
-
zero ou um. Agora, porque o texto sem formatação é diferente, sabemos que o
-
texto cifrado também deve ser diferente. Assim, em particular, C nobre deve ser diferente do
-
o desafio cifrado C, yeah? Assim, o primeiro-C aqui deve ser diferente do C. E
-
, como resultado, o desafiante pobre tem agora para descriptografar por definição do jogo CCA.
-
O desafiante deve descriptografar qualquer texto cifrado que não é igual a um desafio
-
texto cifrado. Assim, o desafiante decifra dar o adversário M prime. Basicamente, ele
-
deu a B adversário, e agora o adversário pode produzir o B desafio e
-
ele ganha o jogo com vantagem de um. Então, vantagem que ele com este regime especial
-
é um deles. Então, simplesmente porque o atacante foi capaz de mudar o texto cifrado desafio
-
de um recipiente para outro que lhe permite, para ganhar o jogo com CCA
-
única vantagem. Então, como eu disse, escolhido texto cifrado segurança acaba realmente é
-
a noção correta de segurança para os sistemas públicos de criptografia de chave. E é muito,
-
conceito muito interessante, certo? Basicamente, de alguma forma mesmo que o atacante tem essa capacidade
-
a qualquer coisa que ele quer decifrar. Diferentemente do texto cifrado desafio, ainda que ele não pode
-
aprender o que o texto cifrado é desafio. E assim o objetivo para o restante deste módulo
-
e realmente o módulo seguinte, bem, é a construção de sistemas CCA seguras. É
-
realmente incrível que isso é possível e eu vou mostrar para você
-
exatamente como fazê-lo. E, na verdade esses sistemas CCA seguros que construímos são o
-
aquelas que são utilizadas no mundo real. E cada vez que um sistema tem tentado implantar
-
um mecanismo de criptografia de chave pública que não é seguro CCA alguém surgiu com uma
-
ataque e foi capaz de quebrá-lo. E vamos ver alguns desses ataques exemplo
-
efectivamente nos segmentos mais próximos.