< Return to Video

criptografia Formato preservação (13 min)

  • 0:00 - 0:04
    Neste segmento, quero falar sobre outra forma de criptografia, chamado formato
  • 0:04 - 0:07
    criptografia preservar. Esta é mais uma vez algo que surge na prática bastante
  • 0:07 - 0:11
    frequência, especialmente quando se trata de números de cartão de crédito de encriptação. E, assim,
  • 0:11 - 0:14
    vamos ver como ele funciona. Lembre-se que um número de cartão de crédito é típico 16
  • 0:14 - 0:19
    dígitos, divididos em quatro blocos de quatro dígitos cada. Você provavelmente já ouviu antes
  • 0:19 - 0:23
    que os primeiros seis dígitos são o que é chamado o número BIN, que representam o
  • 0:23 - 0:28
    ID emitente. Por exemplo, todos os cartões de crédito emitidos pela VISA sempre começam com o dígito
  • 0:28 - 0:34
    quatro; todos os cartões de crédito emitidos pela MasterCard início com dígitos 51 a 55, e
  • 0:34 - 0:39
    assim por diante e assim por diante. Os próximos nove dígitos são de fato o número da conta que é
  • 0:39 - 0:43
    específico para a, para o cliente em particular e do último dígito é uma soma de verificação
  • 0:43 - 0:48
    que é calculado a partir dos últimos quinze dígitos. Portanto, há cerca de 20.000 grande
  • 0:48 - 0:53
    números e por isso, se você fizer o cálculo acontece lá fora, são cerca de dois a 42
  • 0:53 - 0:57
    números de cartão de crédito possíveis, o que corresponde a cerca de 42 bits de
  • 0:57 - 1:01
    informação que você precisa para codificar se você quiser representar um número de cartão de crédito
  • 1:01 - 1:06
    compacta. Agora o problema é este. Suponha que nós queríamos para criptografar cartão de crédito
  • 1:06 - 1:11
    números, de modo que quando o utilizador swipes o número do cartão de crédito no ponto do
  • 1:11 - 1:15
    terminal de venda, principalmente no, você sabe, o dinheiro comerciantes registar. O dinheiro
  • 1:15 - 1:19
    registo, este é chamado o terminal de ponto de venda, vai em frente e criptografa o
  • 1:19 - 1:23
    número de cartão de crédito usando um pay-chave e está codificado toda a maneira até que ele vai
  • 1:23 - 1:27
    para o banco ou até mesmo além do que, talvez até todo o caminho quando se vai
  • 1:27 - 1:31
    para Visa. Agora, o problema é que estes números de cartão de crédito realmente passar através
  • 1:31 - 1:35
    muitos, muitos, muitos pontos de processamento. Todos eles esperar obter basicamente algo
  • 1:35 - 1:40
    que se parece com um número de cartão de crédito como um resultado. Então, se nós simplesmente queria criptografar
  • 1:40 - 1:44
    algo no ponto final, a um ponto final, e descodificar na outra extremidade
  • 1:44 - 1:48
    ponto, na verdade não é assim tão fácil, porque se tudo que fizemos foi criptografá-la utilizando AES,
  • 1:48 - 1:53
    , mesmo que apenas usou AES determinista. A saída do cartão de crédito encriptado
  • 1:53 - 1:57
    número seria 128 bloco bit. Dezasseis bytes que seria, que teria de ser
  • 1:57 - 2:02
    enviado a partir de um sistema para o outro, até que atinja o seu destino. Mas cada um dos
  • 2:02 - 2:06
    estes processadores, então, teria que ser mudado, porque eles estão todos esperando
  • 2:06 - 2:10
    obter números de cartão de crédito. E assim a questão é, podemos criptografar no dinheiro
  • 2:10 - 2:14
    registo, de modo que a criptografia resultante se parece com um cartão de crédito
  • 2:14 - 2:19
    número. E, como resultado, nenhum destes sistemas intermediários teria de ser
  • 2:19 - 2:23
    alterado. Apenas os pontos de extremidade teria de ser alterado. E ao fazê-lo seria
  • 2:23 - 2:27
    realmente obter end-to-end encryption sem ter que realmente mudar um monte de
  • 2:27 - 2:32
    software ao longo do caminho. Então a questão é, novamente, podemos ter esse mecanismo
  • 2:32 - 2:37
    chamado criptografia formato de preservação, onde a encriptação de um cartão de crédito próprio produz
  • 2:37 - 2:41
    algo que se parece com um cartão de crédito? Então é isso que eu Bolt-. O crédito criptografado
  • 2:41 - 2:45
    número do cartão deve se parecer com um número válido de cartão de crédito regular. Então este é o
  • 2:45 - 2:49
    objetivo de preservar o formato de criptografia. Mais abstratamente o que é que estamos tentando fazer,
  • 2:49 - 2:54
    é basicamente construir uma permutação pseudo-aleatório no ponto zero de S menos um
  • 2:54 - 2:59
    Para qualquer dado S. Assim, para o conjunto de números de cartão de crédito, S seria mais ou menos, você
  • 2:59 - 3:04
    saber, dois para o 42. Na verdade, ele vai ser, não exatamente dois para o 42. Vai
  • 3:04 - 3:08
    ser alguns números engraçadas que está em torno de dois a 42. E nosso objetivo é construir uma PRP
  • 3:08 - 3:14
    que funciona exactamente no intervalo, de zero a S menos um. E o que está dado como entrada
  • 3:14 - 3:20
    é, PRF. Digamos, algo como AES, que atua em blocos muito maiores, por exemplo, atua em
  • 3:20 - 3:24
    dezesseis blocos de bytes. Então, nós estamos tentando, de alguma forma, diminuir o domínio do
  • 3:24 - 3:30
    PRF para ajustá-la os dados que nos são dadas. E as perguntas é basicamente como
  • 3:30 - 3:34
    para fazer isso. Bem, uma vez que temos uma tal construção, podemos facilmente nos para
  • 3:34 - 3:38
    cartão encriptar números de crédito. O que faria é que a levaria a um crédito dado
  • 3:38 - 3:42
    número do cartão. Gostaríamos de codificá-lo de tal forma que agora ele é representado como um número entre
  • 3:42 - 3:47
    zero eo número total de números de cartão de crédito. Então, nós aplicamos a nossa PRP para que
  • 3:47 - 3:52
    seria criptografar este número de cartão de crédito, você sabe, usando o número dois da construção
  • 3:52 - 3:56
    o segmento de criptografia determinística. E então poderíamos mapear o número final de volta para
  • 3:56 - 4:01
    ser regular, para olhar como val, regular o número do cartão, de crédito válido e, em seguida, enviar
  • 4:01 - 4:05
    este ao longo do caminho. Então isso é como, isso é novamente criptografia expansão não. O
  • 4:05 - 4:09
    melhor que podemos fazer, como eu disse antes é criptografar usando um PRP, exceto novamente o
  • 4:09 - 4:14
    desafios técnicos que precisam de um PRP, que age sobre esse conjunto engraçado olhar especial
  • 4:14 - 4:20
    de zero a S-1 para esse valor pré determinado de S. Portanto, meu objetivo é mostrar-lhe como
  • 4:20 - 4:23
    para construir isso e uma vez vemos como fazê-lo, você também vai saber como criptografar
  • 4:23 - 4:28
    número de cartão de crédito de modo que o resultado em texto cifra é em si um cartão de crédito
  • 4:28 - 4:33
    número. Assim, as obras de construção em duas etapas. A primeira coisa que fazemos é diminuir
  • 4:33 - 4:39
    PRF nosso a partir do conjunto de 0,1 ao fim, digamos a zero um para o 128 e, no caso de
  • 4:39 - 4:44
    AES, duas 0,1 para o T, onde T é o mais próximo potência de dois para o valor S. Assim
  • 4:45 - 4:50
    palavra S é algum número louco em torno de dois a 41. T seria basicamente, em seguida, 42
  • 4:50 - 4:55
    porque essa é a potência mais próxima dos dois que está logo acima do valor de S. Assim, o
  • 4:55 - 4:59
    construção é basicamente vou usar o Ruby construção [inaudível]. O que usar
  • 4:59 - 5:05
    PRF F é primo. Que actua sobre os blocos de tamanho dois sobre dois. Então, imagine por exemplo
  • 5:05 - 5:10
    , no caso de cartão de crédito, t seria 42, porque dois dos 42 nós dissemos é o
  • 5:10 - 5:15
    próxima potência de dois que é maior do que, que, de s. S é o número de crédito,
  • 5:15 - 5:20
    número total de cartões de crédito. Então, vamos precisar de um PRF agora que atua em 21 byte
  • 5:20 - 5:26
    entradas. Portanto, uma forma de fazer isso é simplesmente tomar a cifra de bloco AES, tratá-lo como um
  • 5:26 - 5:30
    PRF em 128 entradas de bytes, e depois simplesmente truncar a saída para o mínimo
  • 5:30 - 5:35
    significativo de 21 bytes. Ok, então que nos foi dado um valor de byte 21. Gostaríamos de acrescentar
  • 5:35 - 5:40
    zeros a ele, para que cheguemos 128 bytes como resultado. Gostaríamos de aplicar AES para que e
  • 5:40 - 5:45
    então seria truncar volta para 21 bytes. Agora eu devo te dizer que isso é realmente
  • 5:45 - 5:49
    uma maneira simples de fazer isso, mas na verdade não é a melhor maneira de fazê-lo há
  • 5:49 - 5:54
    maneiras realmente melhores para truncar um PRF. Em n bits para ap, PRF em dois mais de dois bits.
  • 5:54 - 5:58
    Mas para os nossos fins, para efeitos deste segmento, o método de truncamento eu disse
  • 5:59 - 6:03
    é bom o suficiente. Então vamos usar esse método particular. Ok, então agora, nós temos
  • 6:03 - 6:09
    convertido nossa cifra de bloco AES em um PRF em dois mais de dois bits, digamos, em 21 bits. Mas
  • 6:09 - 6:14
    o que realmente queremos é uma PRP. E assim o que vamos fazer é que vamos ligar nossa nova PRF, F
  • 6:14 - 6:18
    privilegiada, diretamente na construção [inaudível]. Se você se lembra, este é
  • 6:18 - 6:22
    basicamente uma construção fiestal. Dizemos isso, quando falamos sobre DES. Somente
  • 6:22 - 6:27
    Luby-Rackoff usado três rodadas, e sabemos que este converte um PRF seguro em
  • 6:27 - 6:32
    uma PRP seguro em duas vezes o tamanho do bloco. Em outras palavras, começamos a partir de um PRF seguro
  • 6:32 - 6:37
    em 21 bits, e que nos dará e Luby-Rackoff nos dará uma PRF seguro em
  • 6:37 - 6:41
    42 bits, que é o que queríamos. Agora, devo dizer-lhe que os parâmetros de erro
  • 6:41 - 6:46
    na construção [inaudível] não são tão bons quanto poderiam ser. E, de fato, um
  • 6:46 - 6:50
    melhor coisa a fazer é usar sete rodadas de Fiestal. Em outras palavras, nós vamos fazer
  • 6:50 - 6:55
    este sete vezes cada vez que vamos usar uma chave diferente. Então você notar, aqui, estamos
  • 6:55 - 6:59
    usando apenas três teclas. Deveríamos estar usando deveríamos estar fazendo isso por sete vezes usando
  • 6:59 - 7:04
    sete chaves diferentes. E depois há um bom resultado, devido a [inaudível], que
  • 7:04 - 7:07
    mostra que a construção [inaudível], basicamente, tem como boa erro [inaudível]
  • 7:07 - 7:11
    termos como possível. Assim, os termos de erro no teorema de segurança vai ser basicamente dois
  • 7:11 - 7:16
    ao razoável T.. Portanto, agora temos uma permutação pseudo-aleatório que opera em estreita
  • 7:16 - 7:22
    potência de dois para o valor de S. Mas isso não é bom o suficiente. Nós realmente deseja obter um
  • 7:22 - 7:27
    pseudo-aleatório permutação no ponto zero de S menos um. Assim, dois passos nos levarão
  • 7:27 - 7:31
    para baixo de zero para o T, para o ponto zero real para o S menos um que nós somos
  • 7:31 - 7:35
    interessado polegadas E essa construção é, novamente, muito, muito bonito, então deixe-me mostrar
  • 7:35 - 7:39
    como ele funciona. Então, novamente, nós estamos dando esta PRP, que opera em uma potência de dois.
  • 7:39 - 7:44
    E nós queremos ir para baixo a um PRP, que opera em algo, um pouco menor.
  • 7:44 - 7:49
    Ok, então aqui está sobre as obras de construção. Basicamente, nós estamos dando entrada do X nos conjuntos
  • 7:49 - 7:53
    zero a S menos um que nós queremos. E o que vamos fazer é que vamos
  • 7:53 - 7:57
    reiterar o seguinte procedimento novamente e novamente. Então, primeiro de tudo, mapear X em
  • 7:57 - 8:02
    esta variável temporária Y. E agora estamos só vai criptografar a entrada X e colocar o
  • 8:02 - 8:07
    resultado em Y. Se Y está dentro do nosso conjunto de destino, paramos e mostramos Y. Se
  • 8:07 - 8:12
    novamente e novamente e novamente até que finalmente Y
  • 8:12 - 8:17
    cai em nosso conjunto de destino e que a saída desse valor. Assim, em uma imagem, deixe-me
  • 8:17 - 8:23
    explicar como isso funciona. Então, vamos começar de um ponto no nosso conjunto de destino. E agora, agora nós
  • 8:23 - 8:27
    aplicar o, E a função e nós pode ser mapeado para este ponto fora de nosso alvo
  • 8:27 - 8:31
    set, então nós não vamos parar. Então agora nós aplicamos a função E novamente, então poderíamos
  • 8:31 - 8:35
    ser mapeados para esse ponto e agora vamos aplicar a função E mais uma vez e agora tudo de uma
  • 8:35 - 8:39
    repente, mapear a este ponto, e então paramos, e que de saída do nosso. Ok, então
  • 8:39 - 8:44
    que? é como nós mapear pontos entre de zero a S menos um, para outros pontos do
  • 8:44 - 8:48
    zero a S menos um. Deve ser muito claro que esta é inversível. Para inverter,
  • 8:48 - 8:52
    tudo o que eu vou fazer é que eu só descriptografar e caminhada, de certa forma, na direção oposta. Assim
  • 8:52 - 8:56
    eu vou decifrar, e em seguida, descriptografar, e em seguida, descriptografar, até que finalmente, eu cai na
  • 8:56 - 9:00
    conjunto, de zero a S menos um. E isso me dá o inverso do ponto que eu queria
  • 9:00 - 9:05
    para. Portanto, este é, de fato, um PRP. A questão é se é uma PRP seguro, e
  • 9:05 - 9:09
    veremos que em apenas um minuto. Mas antes disso, deixe-me perguntar, quantas
  • 9:09 - 9:13
    iterações que você espera que vamos precisar? E eu quero lembrá-lo novamente, antes de
  • 9:13 - 9:20
    eu lhe fazer essa pergunta, que, de fato, S é menor que dois para o T. Mas é mais
  • 9:20 - 9:25
    do que dois para o T menos um. Assim, em particular, S é maior do que dois para o T
  • 9:25 - 9:30
    mais de dois. E a minha pergunta para vocês agora é quantas iterações que vamos precisar de
  • 9:33 - 9:35
    média. Até que esse processo converge. Portanto, a resposta é que nós vamos precisar de dois
  • 9:35 - 9:39
    iterações, então realmente apenas um pequeno número constante de iterações. E assim este
  • 9:39 - 9:43
    nos dará um mecanismo muito, muito eficiente, que vai nos mover para baixo de zero
  • 9:43 - 9:49
    um ao T para zero para o S-1. Agora, quando falamos de segurança, verifica-se
  • 9:49 - 9:53
    passo isso aqui é apertado. Em outras palavras, não há realmente nenhuma segurança adicional
  • 9:53 - 9:59
    custo para ir para baixo a partir de dois para o T para zero para S-1. E a razão que é verdade,
  • 9:59 - 10:03
    na verdade é novamente um teorema muito aguda para provar, mas eu, não vou fazê-lo aqui. Talvez
  • 10:03 - 10:08
    eu vou deixá-lo como um exercício para vocês para discutir. Que diz que se você me der
  • 10:08 - 10:12
    quaisquer dois conjuntos Y e X, em que Y está contido dentro de X, em seguida, aplicar a
  • 10:12 - 10:17
    transformação que acabamos de ver a uma permutação aleatória de X para X realmente
  • 10:17 - 10:21
    dá uma permutação aleatória de Y a Y. Então, isso significa que se começamos com uma verdadeira
  • 10:21 - 10:26
    permutação aleatória de X, você vai acabar com uma permutação verdadeiramente aleatória Y. E
  • 10:26 - 10:29
    desde, bem, a permutação estamos começando com é indistinguível
  • 10:29 - 10:33
    aleatória X, vamos acabar com uma permutação que é indistinguível
  • 10:33 - 10:38
    aleatória Y. Ok, então esta é uma construção muito apertado e como eu disse, o primeiro passo
  • 10:38 - 10:42
    realmente é, basicamente, a análise é a mesma que a análise de Lou Rockoff B.. Em
  • 10:42 - 10:46
    verdade, é melhor usar como eu disse, a análise Parthenon em sete rodadas. Assim
  • 10:46 - 10:50
    realmente aqui, há um pouco de custo em segurança. Mas, em geral, temos um
  • 10:50 - 10:56
    construção que é seguro para PRP efectivamente. Não tão boa segurança
  • 10:56 - 11:00
    parâmetros, mas, no entanto, este é um bom PRP seguro de que podemos construir a
  • 11:00 - 11:05
    realmente vai operar no intervalo de zero x menos um. Isto por sua vez vai permitir para
  • 11:05 - 11:09
    encriptar números de cartão de crédito, que o texto cifrado se parece com um cartão de crédito
  • 11:09 - 11:13
    número. E novamente, eu quero enfatizar que não há integridade aqui. O melhor
  • 11:13 - 11:17
    podemos conseguir aqui é apenas a segurança CPU determinística. No texto cifrado
  • 11:17 - 11:21
    , integridade e não aleatoriedade em tudo. Okay. Então isso conclui este módulo. E como
  • 11:21 - 11:26
    habitual quero apontar para um material de leitura de que você pode dar uma olhada se
  • 11:26 - 11:30
    você estiver interessado em aprender mais sobre tudo o que discutimos neste módulo.
  • 11:30 - 11:34
    Então, primeiro de tudo, a construção HKDF que falamos para a derivação de chave é
  • 11:34 - 11:39
    descrita em um artigo a partir de 2010 por Hugo Krawczyk. Criptografia determinístico, o
  • 11:39 - 11:44
    modo SIV que descrevemos é discutido neste artigo aqui. O modo que ENE
  • 11:44 - 11:50
    descrito que nos permite construir um, uma permutação [inaudível] pseudo-aleatório é
  • 11:50 - 11:54
    descrito neste artigo aqui por [inaudível]. Tweakable cifras de bloco que
  • 11:54 - 11:59
    realmente levou para o modo de operação XDS que é usado para criptografia de disco é
  • 11:59 - 12:05
    descrito neste artigo aqui. E, finalmente, um formato de criptografia reservando é descrito
  • 12:05 - 12:10
    neste último artigo que eu apontar para aqui. Ok então isso conclui este módulo.
  • 12:10 - 12:14
    E no próximo módulo vamos começar a olhar para como fazer troca de chaves.
Title:
criptografia Formato preservação (13 min)
Video Language:
English
erickshowplay added a translation

Portuguese, Brazilian subtitles

Revisions