< Return to Video

Constructions (11 min)

  • 0:00 - 0:04
    No último segmento, o que é explicado que um sistema de criptografia de chave pública. E nós
  • 0:04 - 0:08
    definido o que isso significa para um sistema de criptografia de chave pública para ser seguro. Se você
  • 0:08 - 0:11
    lembre-se, necessária segurança contra ataques ativos. E, em particular, nós
  • 0:11 - 0:15
    segurança texto definido da cifra escolhida como nossa meta. Esta semana, nós vamos construir dois
  • 0:15 - 0:19
    famílias de sistemas públicos de criptografia de chave que são escolhidos texto cifrado seguro. E em
  • 0:19 - 0:23
    este segmento, nós vamos começar pela construção de públicos-chave de criptografia,
  • 0:23 - 0:27
    um conceito chamado de um alçapão permutação. Então vamos começar pela definição de um
  • 0:27 - 0:31
    conceito geral chamada uma função alçapão. Então, o que é uma função alçapão?
  • 0:31 - 0:35
    Bem, uma função de alçapão, basicamente, é uma função que vai de algum conjunto X para alguns
  • 0:35 - 0:40
    conjunto Y. E é realmente definido por um triplo de algoritmos. Há uma geração
  • 0:40 - 0:44
    algoritmo, a função f, eo inverso da função f. Assim, a geração
  • 0:44 - 0:48
    algoritmo, basicamente o que ele faz quando você executá-lo, ele irá gerar um par de chaves, uma
  • 0:48 - 0:52
    chave pública e uma chave secreta. A chave pública vai definir uma função específica
  • 0:52 - 0:57
    a partir do conjunto X para o Y. conjunto E, então, a chave secreta que vai definir o inverso
  • 0:57 - 1:02
    função agora da Y definido para o conjunto X. Então a idéia é que você pode avaliar
  • 1:02 - 1:07
    função em qualquer ponto usando um PK de chave pública e, em seguida, você pode inverter essa função
  • 1:07 - 1:12
    usando a chave secreta, SK. Então, o que quero dizer com inversão? Mais precisamente, se
  • 1:12 - 1:17
    olhada em qualquer par de chaves e segredo de chave pública gerada pelo algoritmo de geração de chaves
  • 1:17 - 1:22
    G, em seguida, acontece que se eu avaliar a função no ponto X, e então eu
  • 1:22 - 1:26
    avaliar o inverso no ponto resultante, eu deveria receber o X ponto original
  • 1:26 - 1:31
    para trás. Assim, a imagem que você deve ter em sua mente, há é este conjunto X grande e
  • 1:31 - 1:36
    este grande conjunto Y E então, esta função irá mapear qualquer ponto X a um ponto em Y,
  • 1:36 - 1:42
    e isto pode ser feito usando a chave pública. Assim, novamente, em qualquer ponto X pode ser mapeado para
  • 1:42 - 1:47
    um ponto no Y. E, então, se alguém tem a chave secreta, então basicamente eles podem ir em
  • 1:47 - 1:54
    direção inversa, aplicando, este sk chave secreta. Assim agora que nós
  • 1:54 - 1:58
    entender o que é uma função de alçapão, vamos definir o que significa para um alçapão
  • 1:58 - 2:03
    função para ser seguro. E por isso vamos dizer que este triplo, (G, F, F inversa), é seguro
  • 2:03 - 2:07
    se de fato essa função F (PK.) é o que se chama uma função de uma maneira. E deixe-me
  • 2:07 - 2:11
    explicar o que uma, o que é uma função de uma maneira. A ideia é que, basicamente, o
  • 2:11 - 2:16
    função pode ser avaliada em qualquer ponto, mas invertendo é difícil sem a
  • 2:16 - 2:20
    SK chave secreta. Portanto, vamos definir que com mais precisão. Como de costume, definir que o uso de uma
  • 2:20 - 2:24
    jogo. Então aqui temos o nosso jogo entre o desafiante eo adversário. E o jogo
  • 2:24 - 2:27
    procede como se segue. Basicamente, o desafiante irá gerar uma chave pública e
  • 2:27 - 2:32
    uma chave secreta. E então eles vão gerar um aleatório X. Ele vai enviar a chave pública
  • 2:32 - 2:36
    sobre o adversário e, em seguida, ele irá avaliar a função no ponto X e
  • 2:36 - 2:40
    enviar o Y resultando também para o adversário. Portanto, tudo o adversário começa a
  • 2:40 - 2:45
    vemos é apenas uma chave pública, que define qual é a função, e então ele começa a
  • 2:45 - 2:49
    ver a imagem dessa função em um ponto X aleatório, e é objetivo é, basicamente, para inverter
  • 2:49 - 2:54
    função neste ponto Y. Okay, então ele gera alguns principal X. E nós dissemos que o
  • 2:54 - 2:59
    função alçapão é seguro se a probabilidade de que o anúncio, o adversário inverte
  • 2:59 - 3:03
    o indicado no ponto y é negligenciável. Em outras palavras, dada a probabilidade de que y
  • 3:03 - 3:07
    o adversário é capaz de alterar a imagem de pré y é na verdade um insignificante
  • 3:07 - 3:12
    probabilidade e se isso é verdade para todos os algoritmos eficientes, então dizemos que esta
  • 3:12 - 3:18
    função trapdor é segura. Então, novamente de forma abstrata, é um muito interessante
  • 3:18 - 3:22
    conceito em que você pode avaliar a função para a frente muito
  • 3:22 - 3:26
    facilmente. Mas então ninguém pode avaliar a função na direção inversa, a menos
  • 3:26 - 3:30
    eles têm esse alçapão, o SK chave secreta, que então, de repente, lhes permite
  • 3:30 - 3:35
    . Então, usando o conceito de uma função de alçapão,
  • 3:35 - 3:40
    não é muito difícil construir um sistema de criptografia de chave pública, e deixe-me mostrar-lhe como
  • 3:40 - 3:44
    para fazê-lo. Então aqui nós temos a nossa função de alçapão, (G, F e F inversa). O outro
  • 3:44 - 3:48
    ferramenta que vamos precisar é um esquema de criptografia simétrica, e eu vou
  • 3:48 - 3:52
    supor que este esquema de criptografia é realmente seguro contra ataques ativos, portanto, em
  • 3:52 - 3:55
    especial que eu precisava para fornecer criptografia autenticado. Observe que a
  • 3:55 - 4:01
    sistema de criptografia simétrica tem chaves em K ea função alçapão leva insumos
  • 4:01 - 4:06
    em X. Esses são dois grupos diferentes e por isso estamos também vai precisar da função hash.
  • 4:06 - 4:10
    que vai de X a K. Em outras palavras, ele mapeia elementos do conjunto X em chaves para
  • 4:10 - 4:14
    os sistemas de criptografia simétrica. E agora, uma vez que temos esses três componentes,
  • 4:14 - 4:18
    pode realmente construir o sistema de criptografia de chave pública da seguinte forma: assim que a chave
  • 4:18 - 4:22
    geração para o sistema de criptografia de chave pública é, basicamente, exatamente o mesmo que
  • 4:22 - 4:26
    geração a chave para a função de alçapão. Então corremos G para a porta da armadilha
  • 4:26 - 4:30
    função, temos uma chave pública e uma chave secreta. E esses são vai ser o público e
  • 4:30 - 4:34
    chaves secretas para o sistema de criptografia de chave pública. E como criptografar e descriptografar? Vamos
  • 4:34 - 4:39
    início com criptografia. Assim, o algoritmo de encriptação leva uma chave pública e uma mensagem
  • 4:39 - 4:44
    como entrada. Então, o que ele vai fazer é que vai gerar um aleatória X da capital conjunto
  • 4:44 - 4:49
    X. Será então aplicar a função alçapão para esta aleatória X, para se obter Y. Assim
  • 4:49 - 4:53
    Y é a imagem de X sob a função alçapão. Em seguida, ele vai em frente e
  • 4:53 - 4:58
    gerar uma chave simétrica hash X. Portanto, esta é uma chave simétrica para a simétrica
  • 4:58 - 5:03
    sistema de chave. E então, finalmente, ele criptografa 'm' a mensagem de texto simples usando essa chave que foi
  • 5:03 - 5:08
    acabou de gerar. E então ele produz o valor de Y que apenas computado, o que é
  • 5:08 - 5:13
    a imagem de X, ao longo da encriptação sob o sistema de forma simétrica, a mensagem de M. Então
  • 5:13 - 5:18
    que é como criptografia funciona. E eu quero enfatizar novamente que a função alçapão
  • 5:18 - 5:23
    só é aplicada a este valor aleatório X, enquanto que a própria mensagem é criptografada
  • 5:23 - 5:28
    utilizando um sistema de chave simétrica usando uma chave que foi derivado a partir do valor que X
  • 5:28 - 5:33
    escolheu aleatoriamente. Portanto, agora que entendemos criptografia, vamos ver como descriptografar.
  • 5:33 - 5:37
    Enquanto o algoritmo de decodificação leva uma chave secreta como entrada, eo texto cifrado.
  • 5:37 - 5:42
    O texto cifrado em si contém dois componentes, o valor de Y eo valor C.
  • 5:42 - 5:46
    Então o primeiro passo que vamos fazer, é que vamos aplicar a transformação inversa,
  • 5:46 - 5:50
    a função inversa porta armadilha para o valor de Y, e que nos dará de volta o
  • 5:50 - 5:54
    X originais que foi escolhido durante a criptografia. Então, agora deixe-me perguntar, como fazer
  • 5:54 - 6:00
    derivamos a chave simétrica K descriptografia deste X que apenas obteve? Bem,
  • 6:00 - 6:05
    de modo que é uma pergunta fácil. Nós basicamente X de hash novamente. Isso dá-nos apenas como K
  • 6:05 - 6:09
    durante a criptografia. E agora que temos essa chave de criptografia simétrica, podemos aplicar
  • 6:09 - 6:14
    o, o algoritmo de descriptografia simétrica para descriptografar o texto cifrado C. Ficamos com a
  • 6:14 - 6:18
    M mensagem original e é isso que nós de saída. Então, é assim que a chave pública
  • 6:18 - 6:22
    funciona o sistema de criptografia foram esta função alçapão só é usado para criptografar
  • 6:22 - 6:27
    algum tipo de um valor aleatório X ea mensagem real é criptografada usando a
  • 6:27 - 6:31
    sistema simétrica. Assim, em fotos aqui, temos a mensagem M, obviamente, a simples
  • 6:31 - 6:36
    texto poderia ser muito grande. Então, aqui nós temos o corpo do texto decifrado que
  • 6:36 - 6:40
    pode ser bastante longo, na verdade é criptografada usando o sistema simétrico. E então, novamente
  • 6:40 - 6:44
    eu enfatizo que a chave para o sistema simétrico é simplesmente o hash de X.
  • 6:44 - 6:48
    E então o cabeçalho da mensagem cifrada é simplesmente esta aplicação do alçapão
  • 6:48 - 6:53
    para esta função aleatória X que nós escolhemos. E assim, durante a descriptografia o que acontece é
  • 6:53 - 6:57
    que primeiro descriptografar o cabeçalho para obter X e então nós decifrar o corpo usando o
  • 6:57 - 7:02
    sistema simétrica para realmente obter o texto original planície M. Assim como de costume quando eu
  • 7:02 - 7:07
    mostrar-lhe um sistema como este, obviamente você vai querer verificar que a descriptografia de fato é
  • 7:07 - 7:11
    inversa de criptografia. Mas mais importante que você quer perguntar porque é que esta
  • 7:11 - 7:15
    sistema seguro. E de fato há um teorema a segurança agradável aqui que diz. Isso se
  • 7:15 - 7:19
    a função de porta armadilha que nós começamos com é segura. Em outras palavras, essa é uma
  • 7:19 - 7:23
    função de sentido único se o adversário não tenha uma chave secreta. A simétrica
  • 7:23 - 7:27
    sistema de criptografia fornece criptografia autenticado. E a função hash é uma
  • 7:27 - 7:31
    oráculo aleatório, o que significa simplesmente que é uma função aleatória do conjunto X para
  • 7:31 - 7:35
    , o conjunto de teclas de K. Assim, um oráculo aleatório é uma espécie de uma idealização do, o que é um
  • 7:35 - 7:38
    função hash é suposto ser. Na prática, é claro, quando você vem para
  • 7:38 - 7:42
    implementar um sistema como este, você só iria usar, SHA-256, ou qualquer um dos
  • 7:42 - 7:47
    outras funções hash que discutimos em sala de aula. Assim, sob essas três condições em
  • 7:47 - 7:52
    fato de o sistema que acabamos de descrever é escolhido texto cifrado seguro por isso é CCA
  • 7:52 - 7:56
    seguro, o ro pouco aqui apenas denotar o fato de que a segurança é definida em que é chamado
  • 7:56 - 8:01
    um modelo oráculo aleatório. Mas, isso é um detalhe que na verdade não é tão importante para
  • 8:01 - 8:05
    discussão aqui, o que eu quero que você lembre-se é que se a função alçapão
  • 8:05 - 8:09
    é, de facto, uma função de porta segura armadilha. O sistema de criptografia simétrica é seguro
  • 8:09 - 8:13
    contra adulteração de modo que fornece criptografia autenticado. E H
  • 8:13 - 8:17
    é em certo sentido, uma boa função hash. É uma função aleatória, o que na prática
  • 8:17 - 8:22
    você só usar SHA-256, então na verdade o sistema que acabamos mostrou é CCA
  • 8:22 - 8:28
    seguro, é escolhido cifrado seguro. Devo dizer-lhe que há realmente uma ISO
  • 8:28 - 8:32
    padrão, define esse modo de criptografia, de criptografia de chave pública. ISO
  • 8:32 - 8:36
    estandes para International Standards Organization. Então, na verdade, esta especial
  • 8:36 - 8:40
    sistema foi realmente padronizada, e isso é uma coisa boa de usar. Vou me referir a
  • 8:40 - 8:45
    este como o criptografia ISO nos segmentos mais próximos. Para concluir este segmento, eu quero
  • 8:45 - 8:49
    para avisá-lo sobre uma forma incorreta de usar uma função alçapão para construir um
  • 8:49 - 8:53
    sistema de criptografia de chave pública. E de fato este método pode ser a primeira coisa que
  • 8:53 - 8:58
    vem à mente, e ainda é completamente insegura. Então deixe-me mostrar-lhe, como não
  • 8:58 - 9:02
    encrypt usando uma função de alçapão. Bem a primeira coisa que pode vir à mente
  • 9:02 - 9:06
    é, bem, vamos aplicar a função alçapão diretamente à mensagem M. Assim,
  • 9:06 - 9:10
    Criptografar simplesmente por aplicação de uma função para a mensagem M, e nós descriptografar simplesmente por
  • 9:10 - 9:14
    aplicação F inversa à C texto cifrado para recuperar a mensagem original M. Então
  • 9:14 - 9:19
    funcionalmente, isto é, de facto, decriptação é o inverso de encriptação, e ainda este
  • 9:19 - 9:23
    é completamente inseguro para muitas, muitas razões diferentes. A maneira mais fácil de ver
  • 9:23 - 9:27
    que este é inseguro, é que é simplesmente, esta é a criptografia determinista.
  • 9:27 - 9:31
    Você percebe não há aleatoriedade ser usados aqui. Quando criptografar uma mensagem
  • 9:31 - 9:34
    Você percebe não há aleatoriedade ser usados aqui. Quando criptografar uma mensagem
  • 9:34 - 9:38
    semanticamente seguro. Mas, na verdade, como eu disse, quando instanciar este alçapão
  • 9:38 - 9:42
    função com implementações particular, por exemplo com a porta de armadilha RSA
  • 9:42 - 9:45
    função, então há muitos, muitos ataques que são possíveis nesta
  • 9:45 - 9:49
    construção particular, e por isso você não deve nunca, nunca, nunca usá-lo, e eu vou
  • 9:49 - 9:53
    repetir isso ao longo deste módulo, e de fato no segmento seguinte, eu vou lhe mostrar uma
  • 9:53 - 9:57
    número de ataques contra esta implementação particular. Ok então, o que eu gostaria
  • 9:57 - 10:01
    você a lembrar é que você deve estar usando um sistema de criptografia como o ISO
  • 10:01 - 10:05
    padrão, e você nunca deve aplicar a função alçapão diretamente ao M. mensagem
  • 10:05 - 10:09
    Embora no próximo segmento veremos outras maneiras de criptografar usando uma armadilha
  • 10:09 - 10:13
    função porta que também são corretas, mas este método particular, é claramente, claramente
  • 10:13 - 10:18
    incorreta. Ok, então agora que entendemos como construir criptografia de chave pública
  • 10:18 - 10:21
    dada uma função alçapão, a próxima questão é como construir alçapão
  • 10:21 - 10:24
    funções, e vamos fazer isso no próximo segmento.
Title:
Constructions (11 min)
Video Language:
English
erickshowplay added a translation

Portuguese, Brazilian subtitles

Revisions