Loading
Nota de Estudos
Study Reminders
Support
Text Version

Arquitetura Padrão De Criptografia De Dados

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

    +

Fundamentos de CryptographyProf. Dr. Ashish Choudhury (Ex-) Infosys Foundation Career Development Cátedra Instituto de Technology-BengaluruLecture-20Practical Construções de cifras de Bloco Parte IIHello todos, bem-vindos à palestra 19. Nesta palestra continuaremos nossa discussão a respeito das construções práticas de cifras de blocos. O roteiro desta palestra é o seguinte. (Consulte o Slide Time: 00 :46) Vamos ver que como usar a rede SPN e Feistel, podemos projetar uma cifração de blocos altamente popular que chamamos de DES. Discutiremos também algumas armadilhas do DES e como essas armadilhas motivaram a construção de outra cifra popular de blocos chamada AES e veremos um panorama de altíssimo nível de AES. Antes de continuar mais adiante, gostaria de ressaltar aqui que por que durante toda essa discussão, estou continuamente usando o termo construções práticas de cifras de blocos. Porque esta é a maneira como instanciamos nossas funções pseudo-aleatórias, permutações pseudo-aleatórias e fortes permutações pseudoaleatórias na realidade. No entanto, verifica-se que não temos garantias de segurança prováveis para o DES, triplo DES, AES. É só que desde a sua descoberta, nenhuma falha prática foi identificada e nenhuma falha de segurança foi identificada. E é por isso que acreditamos que DES, DES triplo, AES se comportam como permutação pseudoaleatória e fortes permutações pseudoaleatórias. Considerando que as construções de permutações pseudoaleatórias e pseudo aleatórias-funções baseadas em uma forma funções que tínhamos visto em algumas de nossas palestras anteriores, são provavelmente seguras, porque temos uma prova de segurança matemática de que de fato satisfazem as definições de função pseudo-aleatória, permutações pseudoaleatórias. Mas a razão pela qual chamo aquelas construções como construções teóricas, é que apesar de serem eficientes, há tempo de execução é polinomial nos parâmetros de segurança subjacentes. Os polinômios subjacentes são tão enormes que não podemos permitir que eles usem na prática. Considerando que, as construções práticas que vamos discutir nesta palestra com base na SPN, rede Feistel, são altamente eficientes. Mas o lado negativo é que você não tem nenhuma garantia de segurança matemática, apenas tem garantia de segurança heurística, ou seja, desde que eles são descobertos, nenhuma violação de segurança foi identificada. E é por isso que podemos usá-los com segurança para instanciar qualquer primitivo de criptografia em que você deseja instanciar funções pseudo-aleatórias, permutações pseudoaleatórias etc. Por isso, vamos iniciar nossa discussão aqui. (Consulte o Tempo do slide: 03 :08) Então iniciamos a discussão com relação ao Padrão de Criptografia De Dados ou DES. Ela foi projetada pela IBM, com a ajuda da NSA em 1970, adotada como padrão pelos Estados Unidos em 1977. A forma original do DES opera com uma chave de tamanho 56 bits e é por isso que ela não é mais considerada segura. Porque a forma original do DES é suscetível a um ataque de força bruta, a saber, se um adversário recebe um par (?,?) ou vários (?,?) pares, onde? é o valor do DES com relação a um desconhecido 56 bit chave e entrada?, onde o? entrada é conhecida pelo adversário. Em seguida, apenas fazendo cálculos de ordem 256, adversário pode recuperar a chave. Por isso, é por isso que a segurança da proposta original do DES foi reforçada e foi assim que obtivemos a nova construção, que chamamos de 3-DES, que também discutiremos nesta palestra e ela tem um tamanho de chave maior. (Consulte o Tempo do slide: 04 :13) O DES tem grande importância histórica porque é um dos criptográficos mais estudados. E mesmo que a forma original do DES seja suscetível ao ataque de força bruta, ela é vulnerável ao ataque de força bruta, não significa que tenha alguma falha de design grave. Namelyever desde 1970, nenhuma falha de segurança foi relatada na arquitetura ou no design da DES.A única reclamação é que ela opera com uma chave de tamanho pequeno, isso é tudo. E nesta palestra, vamos discutir apenas as ideias de alto nível do algoritmo. Estes não são os detalhes exatos e a discussão que vamos ter nesta palestra não é boa de propósito de implementação. Se você está interessado em implementar o DES, deve consultar algumas das fontes relevantes que são dadas no livro didágalo por Katz-Lindell. (Consulte o Slide Time: 05 :12) Assim, a arquitetura do DES é a seguinte. Basicamente é uma rede Feistel de 16 voltas, mapeando 64 bit de entrada para saída de 64 bit. E a chave para a rede Feistel é de 56 bits. E haverá um algoritmo de agendamento de chave publicamente conhecido com base no qual estaremos determinando 48 bit chave redonda para cada uma das iterações individuais. Por isso, cada uma dessas iterações individuais vai usar um subconjunto de 48 bits da chave mestra do tamanho 56 bits. E o planejamento do qual 48-bit subconjunto da chave mestra que eu amarei para cada iteração será publicamente conhecido. (Consulte o Tempo do slide: 06 :01) Agora vamos nos concentrar nas funções redondas individuais. Por isso, lembre-se de que, conforme a descrição da rede Feistel, as funções redondas poderiam ser qualquer função redonda arbitrária, ela não precisa ser invertível. Então, se eu me concentrar na função? ?hround, que leva a chave de tamanho 48 bits, e uma direita-metade da corrente?-entrada de 32 bits. Por que 32 bits? Pois lembre-se como per a arquitetura da Feistelrede, cada corrente?-entrada ou cada saída intermediária, será analisada como uma coleção de parte esquerda e uma parte direita, onde a parte esquerda será de 32 bits e a parte direita será de 32 bits. (Consulte o Tempo do slide: 06 :40) Então é por isso que minha função redonda individual será uma função chaveada, com uma chave de 48-bit e uma entrada de 32-bit. E acontece que a função redonda não é nada, mas um 1 redondo é SPN. E é por isso que você pode interpretar o DES para ser um tipo de permutação chaveada obtida por compor ambas as 1-redondas SPN e?-round Feistel network, onde? = 16. Então, em certo sentido, na verdade estamos tentando obter o melhor dos dois primitivos aqui. Então, para a função rodada do DES, você tem uma etapa de mixagem de chave, você tem uma etapa de substituição e você tem uma etapa de mixagem. (Consulte o Tempo do slide: 07 :23) Então agora deixe-nos ir um pouco mais fundo na descrição da função redonda do DES. Então imagine, esta é a função? ?hround. Será que vai levar uma sub-chave??, determinada por um algoritmo de agendamento de chaves publicamente conhecido, de tamanho 48 bits. E vai levar uma entrada de bloco, nomeadamente o R-part com relação à rede Feistel, cujo tamanho é de 32 bits. Então em SPN, o primeiro passo é a etapa de mixagem de chave e na etapa de mixagem de chave, nós realmente executamos o XOR da sub-chave com a entrada de bloco. Mas se você ver, a entrada do bloco é de tamanho 32 bits e o tamanho da chave é de 48 bits. Por isso, temos uma incompatibilidade para realizar a operação XOR. (Consulte o Tempo do slide: 08 :10) Então é por isso que executamos uma função de expansão aqui, que será publicamente conhecida. E o que exatamente a função de expansão faz é, basicamente duplica metade dos bits do bloco input.Namely, para a entrada de 32-bit R, alguns dos 16 bits da entrada R-input, eles são duplicados para obter uma entrada de 48-bit, que agora é usada para fazer a etapa de mixagem de chave aqui. (Consulte o Tempo de deslizar: 08 :34) Agora uma vez que fazemos a mixagem de chave, analisamos a saída intermediária como uma coleção de 8 peças de 6 bits cada. E cada um desses 6 bits individuais passam por uma caixa S. Agora o aspecto interessante aqui é que ao contrário do SPN, onde exigimos que cada caixa S seja uma permutação ou para ser um mapeamento de 1 a 1, as caixas S aqui, elas não são inversíveis. Como as entradas das caixas S são 6bits enquanto que as saídas das caixas S são 4 bits. Mas basta ter caixas S como esta porque lembre-se, este SPN redondo de 1 vai servir como a função redonda para uma rede Feistel. E para a rede Feistel, não exigimos que as funções redondas sejam invertíveis. Por isso, apesar de estas caixas S não serem invertíveis, está bem. Assim, uma vez que obtemos a saída da etapa de mixagem de chave, analisamos como 8 peças de 6 bits cada, faça cada uma das peças individuais de 6 bits perpassar as respectivas caixas S. (Consulte o Tempo do slide: 09 :50) E obtenha uma saída de 32-bit e então aplicamos a mixagem-permutação, que será publicamente conhecida para obter a saída da função? ?hround. Então essa é a descrição interna da sua função? ?hround do DES. E as caixas S e as permutações de mistura que são usadas em cada uma das funções redondas da rede Feistel no interior do DES, têm propriedades muito especiais. E aquelas propriedades especiais que vamos discutir muito em breve. O que eu quero ressaltar aqui é que as caixas S e a permutação de mixagem que são usadas aqui, são tão cuidadosamente projetadas, que até mesmo uma pequena modificação pode levar a graves vulnerabilidades de segurança. (Consulte o Tempo do slide: 10 :37) Agora vamos ver como exatamente essas caixas S no contexto de DES se parecem. Por isso, para sua referência estou tomando a primeira caixa S e estou levando a descrição nesta primeira caixa S da Wikipédia. Assim, cada caixa S você pode imaginar aqui como uma tabela de consulta de 4 × 16 e cada entrada na tabela consiste em uma sequência de 4-bit. Pois lembre-se da saída de uma caixa S é uma saída de 4-bit e cada linha na tabela é uma permutação do conjunto 0 15. Então você pode ver aqui, em cada uma das 4 linhas, você tem o valor de 0 a 15, ocorrendo exatamente uma vez, mas dispostos em alguma ordem arbitrariamente. E já que cada uma das cordas de 0 15, pode ser representada por 4 bits, é por isso que eu estou dizendo que cada entrada nesta tabela basicamente consiste em 4 bits. Agora como exatamente nós vamos acessar essa tabela de consulta? Por isso, lembre-se, a entrada para S box é uma entrada de 6-bit. (Consulte o Tempo do slide: 11 :35) Assim, a entrada 6 bits da caixa S, determine a entrada que vamos procurar nesta tabela de consulta e como exatamente analisamos os 6 bits de entrada. Por isso, o primeiro e o último bit dos insumos da caixa S, eles determinam o seu número de linha. Então, é por isso que você pode ver ao longo das linhas, eu estou apenas focando no primeiro bit e no último bit, o meio 4 bits, eu não estou focando. Os 4 bits do meio, eles são usados para acessar um número de coluna particular. Por isso, é por isso que ao longo das colunas, são os 4 bits do meio que se destacam e é por isso que temos 16 colunas possíveis. Agora, a forma como os números de 0 a 15 estão dispostos nesta caixa S é para garantir que se você alterar a entrada da caixa S por 1 bit então deverá resultar na alteração de pelo menos 2 bits de saída da caixa S. (Consulte o Tempo de Slides: 12 :34) Então, vamos ver se ele é assegurado ou não. Por isso, vamos primeiro tentar ver qual será exatamente o valor da primeira caixa S sobre a entrada, digamos 011110. Então, desde 0 e 0 são usados para número de linha que significa que queremos ter a primeira linha e então temos que ir para a coluna número 1111. Então, a saber, chegamos à última coluna na primeira fila, que tem o valor 7, que no Binário é de 0111. E agora deixe de usá-lo qual será o valor desta primeira caixa S em uma entrada, digamos 011111, que difere da entrada 011110 em exatamente um bit. Por isso, o primeiro bit e o último bit são usados para acessar a linha que significa que temos que ir para a segunda linha. E aí temos que ir para o número da coluna acessada pelo meio 4 bits, que 1111. Então isso significa que isso irá para a última entrada na segunda linha, que é de 8, que no Binário é de 1000. E essa saída é diferente da saída anterior 0111 em pelo menos 2 bit posições. Por isso agora é fácil perceber que, devido às propriedades acima, cada caixa S define uma função de 4 1. E por que ele define uma função de 4 a 1 é porque você tem entradas de 6 bits e tem uma saída de 4 bits. Então isso significa que haverá 4 entradas de mapeamento para a mesma saída. (Consulte o Tempo do slide: 15 :06) Então, a função de expansão do DES e a permutação da mixagem, eles também possuem algumas propriedades importantes aqui. Por isso, já discutimos as propriedades que exigimos da caixa S, basicamente elas garantem que se houver uma mudança de 1 bit de entrada então a saída difere em pelo menos 2 bit posições. Agora a função de expansão e a permutação de mixagem eles também possuem algumas propriedades importantes. Então, a permutação de mistura tem a propriedade de que a saída de cada caixa S afetará as caixas de entrada of6 S na próxima iteração. Isso significa que se eu considerar a primeira caixa S aqui, você tem 4 bits de saída vindos daqui. E se eu fizer uma permutação misturadora, a permutação de mistura é projetada de tal forma que a saída da permutação de mistura seguida da função de expansão que eu amarei para aplicar na próxima iteração garante que haverá 6 S caixas cujos insumos serão diferindo here.Então, a função de expansão, a saber, a função de expansão, a saber, quais 16 bits da entrada são replicados, e as permutações de mistura que determinam a operação embaralhada, ambas garantem essa propriedade importante, a saber, a saída de cada caixa S afeta a entrada de 6 S caixas na iteração seguinte. E lembre-se de que por que estamos interessados nessas propriedades especiais das caixas de mistura de permutação e S. (Consulte o Tempo do slide: 16 :29) Basicamente nosso objetivo aqui é obter bom efeito avalanche e apenas relembrar o que exatamente é efeito avalanche. O efeito avalanche garante que se você tem uma permutação chaveada??, construída usando uma rede Feistel ou SPN, então você exige isso??? deveria ter a propriedade que?? (?) e?? (? ′) deve diferir em número significativo de posições de bits, mesmo que? e? ′ difere apenas em menos número de bits, digamos mesmo em 1 bit. E nós tínhamos visto na última palestra que se você tem algumas propriedades especiais da permutação de mistura e das caixas S, podemos atingir esse efeito de avalanche. (Consulte o Tempo do slide: 17 :16) E esse é o princípio que estamos seguindo nas caixas S e uma função de mixagem e expansão que estamos usando no DES. Acontece que 16 rodadas que estamos usando aqui na Feistelnetwork é muito importante. Pois se você não usa uma rede de 16 round Feistel e usa uma rede menos redonda Feistel, então há ataques fáceis na rodada reduzida DES. Mas se você o operar com 16 rodadas completas, então as únicas queixas que foram relatadas até agora é a reclamação de tamanho de chave curta. A saber, 256 força bruta de brutas pode ser lançada, dada a velocidade de computação atual. (Consulte o Tempo do slide: 17 :52) Outra reclamação com o DES é o comprimento de bloco curto. Por isso, o comprimento do bloco aqui é de 64 bits. E agora você pode estar se perguntando que como um comprimento de bloco curto pode ter uma consequência sobre a segurança da cifra geral do bloco. Por isso, relembra o modo de contra-operação da cifra do bloco, ou a permutação pseudoaleatória. E tínhamos visto na CPA-análise de segurança do modo contador de operação que a segurança CPA do modo contador de operação depende de quanto de probabilidade o aleatório?? que usamos em criptografar o desafio plaintexto se repete em qualquer uma das consultas de oráculo de criptografia. E o valor do??? e a probabilidade do?? ficando repetido, depende do comprimento de bloco real da permutação chaveada subjacente. Então? o tamanho do bloco é aqui e se o meu tamanho de bloco é pequeno do que a probabilidade do aleatório?? que é usado para criptografar o desafio que o autor do desafio se repete, torna-se significativamente alto. Sendo assim, essas são as 2 denúncias relatadas com relação à construção original do DES. Fora isso nenhuma vulnerabilidade severa foi relatada até agora. (Consulte o Tempo de Slide: 19 :16) (Consulte O Tempo Deslizante: 19 :17) Então agora vamos ver como podemos ir aumentando o tamanho da chave. Nosso objetivo será aumentar o tamanho do DES original. E há 2 abordagens para projetar uma cifra de bloco modificado ou DES modificado onde você pode operar a construção modificada com uma chave de tamanho maior. A primeira abordagem será fazer modificações internas no design existente para tratar de chave de tamanho maior.A saber, você faz modificações no algoritmo de agendamento de chaves existentes, você faz modificações nas caixas S, faz modificação na função de expansão e mistura permutações e assim on.Infelizmente, essa abordagem não é nada recomendada, pois acabou que mesmo uma leve modificação na estrutura do DES existente tem graves consequências de segurança. Então, não podemos nos dar ao luxo de fazer modificações na estrutura interna do DES para garantir que tenhamos uma DESoperação modificada com um tamanho de chave maior. A segunda abordagem que é recomendada é realmente incorporar uma chave maior em uma moda de caixa preta sem fazer modificações internas. Por exemplo, vamos ver como exatamente uma criptografia dupla vai funcionar e a discussão que vamos ter será muito genérica, ela é aplicável com relação a qualquer cifra de blocos. Mas, pela simplicidade, você sempre pode considerar DES em sua mente. Então, imagine que temos uma permutação chaveada que é uma cifra de blocos segura e prática, cujo tamanho chave é? bits, comprimento de bloco é l bits tamanho de andsaída é l bits. E como é uma cifra de bloco praticamente segura, o melhor ataque possível é de ordem 2?. Agora imagine eu compor essa construção existente para obter o que chamamos como uma cifra de bloco de criptografia dupla, que agora opera com uma chave de tamanho 2? bits. Mas um comprimento de bloco de l bits e dando uma saída de l bits. E a forma como eu projetei essa cifra de bloco de encriptação dupla é basicamente eu parsethe key? para a cifragem de bloco de criptografia dupla como 2 partes independentes? 1 e? 2 cada uma? bits.Eu opero primeiro a cifra do bloco existente com a? 1 parte com a entrada? e eu obtenho uma saída?, que é de l bits. E então tratar isso? saída, como a entrada para a segunda chamada para a cifra do bloco existente com a? 2 parte da minha chave de cifrão de criptografia dupla cifrada. Então é assim que eu estou fazendo uma criptografia dupla. (Consulte o Tempo do slide: 22 :15) E como você pode ver aqui, eu não estou fazendo nenhuma modificação em tudo na descrição ou no design da cifra do bloco existente. A cifra do bloco existente é operada como ela é, por exemplo, se a sua existente? é DES, então o que estamos basicamente tentando fazer aqui é estamos tentando projetar o DES duplo, onde o tamanho da chave será agora 112 bits. A primeira parte será? 1, a segunda parte será? 2. E basicamente o que eu estou fazendo aqui é eu estou apenas invocando o DES duas vezes, e é isso que o meu duplo DES é considerado. Então agora temos que analisar ou argumentar é a nova cifra de bloco de encriptação dupla que temos design praticamente seguro ou not? (Consulte o Tempo do slide: 23 :00) Isso significa, é o melhor ataque possível de ordem 22 ?ou not? (Consulte o Tempo do slide: 23 :07) Curiosamente, a resposta é não, e há um ataque muito interessante que chamamos de encontro no ataque do meio. Onde podemos mostrar que ao lançar este encontro no ataque do meio, o adversário pode recuperar a chave desconhecida da cifra de bloco de criptografia dupla com uma complexidade de ordem 2?, que é muito menos de 22?. Então imagine que adversário tem vários pares (?,?). Pela simplicidade imagine que tem um par (?,?), onde? é o resultado da cifra de bloco de criptografia dupla com uma entrada conhecida?. Mas com uma chave desconhecida que é uma concatenação de? 1followed por? 2. E o que vamos mostrar é um ataque a saber, encontrar-se no ataque do meio onde um adversário pode recuperar a chave desconhecida com cálculo de ordem? × 2?. (Consulte O Tempo De Deslizamento: 24 :05) A ideia aqui é a seguinte, basicamente adversário tem que fazer força bruta em 2 direções opostas. Na primeira direção, o que ela faz é, ela realiza uma força bruta sobre todo o candidato? 1, e há 2 ?candidatas? 1. Para cada candidato? 1, opera a construção existente? com respeito à entrada conhecida? e obter as saídas intermediárias, que ele chama de?. E armazena todos aqueles (?1,?) pares em uma lista chamada? -list ou lista de esquerda, essa é a primeira força bruta que ela executa. (Consulte o Tempo do slide: 24 :46) E o que ele realiza é que é preciso o? saída que está disponível com o adversário e que agora executa a força bruta reversa. A saber, desempenha a força bruta com respeito a todos os candidatos? 2. Mas com respeito ao inverso da função? sobre a saída?, a saber, leva cada candidato? 2 e computar o inverso da saída? disponível para ele sob esse candidato? 2 e obter o correspondente? e armazenam esses pares (?2,?) em uma lista chamada R-list. Sendo assim, essa é a segunda força bruta que ela está realizando. (Consulte o Tempo de Slides: 25 :25) Então, a primeira força bruta que executa sua complexidade é de ordem 2?, a segunda força bruta que executou paralela sua complexidade é de ordem 2?. E agora, o que adversário tem a fazer é, classifica a lista de esquerda e a lista certa bem de acordo com o? valores. (Consulte o Tempo do slide: 22 :51) E uma vez que tenha o ordenado? -list e? -list de acordo com o? valores, o que o adversário basicamente tem que fazer é, ele tem que ver se tem um par (?1,? 1) no? -list e um par (?2,? 2) na? -list, tal que? 1 =? 2 segura. Se for esse o caso, então o candidato? 1 concatenou-se com o candidato? 2is o candidato real? usado para a criptografia dupla. Agora, qual é exatamente a ideia deste ataque? Se você vir a construção da criptografia dupla, para fazer a criptografia dupla, de? vamos? ?1 (?). E então a partir?? (?) teríamos ido para?, a saber: teríamos obtido? ?2 (??1 (?)). Uma outra maneira de interpretar a mesma construção é que a partir?, eu poderia ter realmente realizado?? − 21 (?). E a partir daqui, a mesma coisa que eu poderia ter obtido se eu teria computado? ?1 (?). Então, isso é basicamente que adversário está tentando fazer, adversário brute forçando na direção dianteira, ele isbrute forçando na direção inversa. E tentar ver se para algum candidato? 1 e para candidato? 2, chega ao mesmo ponto ou não. E definitivamente haverá um candidato? 1 e um candidato? 2 onde a reunião vai acontecer. Aquele ponto de encontro basicamente dá a ele o candidato? .E para obter o adversário do ponto de encontro basicamente tem que realizar um cálculo de ordem? 2?.It tem que executar 2 forças brutas e então tem que fazer a triagem, e então tem que descobrir o ponto de encontro. Então, como você pode ver, apesar de termos construído agora uma cifra de bloco de criptografia dupla, com uma chave de tamanho 2? bits. E esperamos que o melhor ataque possível deve ser de ordem 22?. (Consulte o Tempo do slide: 27 :55) Acontece que ao fazer um cálculo de apenas ordem? 2?, o adversário pode recuperar a chave. E daí aumentar o tamanho da chave fazendo uma criptografia dupla não é suficiente. (Consulte o Slide Time: 28 :03) Assim, isso nos leva ao que nos chamamos de tripla criptografia. Por isso, novamente, imagine que você tem uma cifra de blocos já existente, praticamente segura. E agora estamos definindo uma nova cifra de blocos baseada na criptografia tripla. Temos 2 variantes possíveis possíveis. Na primeira variante, de fato operamos a construção segura existente com 3 chaves independentes de tamanho? bits como follows:?new?1,? 2, ?3 (?) aproximadamente? ?3 (? − 1 ?2 (??1 (?))) Nós primeiro aplicamos a construção existente em? com relação à porção? 1 da chave, seja qual for a saída que obtiver, eu inverti-la com relação à porção? 2, seja qual for a saída que obtiver, novamente aplico a construção existente com relação a? 3 da parte da chave. E é isso que vai ser a saída geral da tripla encriptação com relação à chave a saber? 1 | | ?2 | | ?3, essa é a primeira variante. (Consulte o Tempo do slide: 29 :05) A segunda variante de fato vai operar com relação a apenas 2 chaves independentes de tamanho? bits cada um como follows:?new?1,? 2 (?) atrás? ?1 (? − 1 ?2 (??1 (?))) Ele irá invocar, 3 invocações do?, a primeira chamada será?? − 21and novamente, a terceira chamada será? ?1. (Consulte o Tempo do slide: 29: 2) Agora você pode estar se perguntando por que a invocação do meio em ambas as variantes é?? − 1, em vez de??. Ora, a segurança sábia não é uma preocupação, porque se a construção existente??? é uma permutação pseudo aleatória forte praticamente segura ou cifrada de bloco, então podemos provar que assim é?? − 1. Portanto, não importa se a invocação do meio é? ?2or?? − 21, ambas são suficientes no que diz respeito à segurança. (Consulte o Tempo do slide: 30 :00) A única razão que a invocação do meio é uma função inversa e não uma função encaminhada é garantir a compatibilidade com retrocesso. Ou seja, se eu garantir que a porção? 1 da chave e a? 2 porção da chave e a? 3 porção da chave para a cifra do bloco de criptografia tripla são todas iguais, então basicamente a cifra de bloco baseado em criptografia tripla torna-se equivalente à construção existente. Isso significa, se minha construção existente? era DES e minha construção tripla baseada em criptografia é triplo DES. Aí se eu tenho uma implementação de software de triplo DES e se eu quiser obter um efeito de DES original, então eu não tenho que fazer nenhuma modificação na implementação de software de triplo DES, o que basicamente eu tenho que fazer é pegar uma chave de tamanho 3? bits onde eu asseguro que a primeira porção da chave e a segunda porção da chave e a terceira porção da chave são todas iguais. Se eu usar o tipo especial de chave e usar a implementação de software do triplo DES, basicamente acabo obtendo o efeito do DES original.   Eles satisfazem a definição de definição baseada em indistinguibilidade. O lado negativo é que eles não podem ser usados praticamente porque o tempo de execução é enormemente comparado às instanciações práticas como DES e AES. Obrigado.