Loading
Nota de Estudos
Study Reminders
Support
Text Version

Construção Prática de Cifradores de Bloco

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 Informações Technology-BengaluruLecture-19Practical Construções do Bloco Cifradores Parte IWelcome to palestra 18, nesta palestra discutiremos sobre as construções práticas de cifras de blocos. E esta será a parte 1 da discussão sobre as construções práticas de cifras de blocos. (Consulte o Tempo do slide: 00 :41) Então, o roteiro desta palestra é o seguinte, começaremos a discutir sobre paradigma de difusão de confusão e então veremos como instanciar o paradigma de difusão da confusão utilizando rede de permutação de substituição ou SPN. Mais tarde em durante a nossa parte 2 da discussão sobre construções práticas bloco cifrado, veremos que como a SPN desempenha um papel muito crucial na concepção de uma das cifras de blocos mais popularmente usadas, a saber: DES. (Consulte o Tempo do slide: 01 :10) Então, vamos iniciar nossa discussão sobre paradigma de difusão de confusão. Então, esse paradigma foi introduzido por Claude Shannon. E a ideia subjacente aqui é de que estamos interessados em projetar uma permutação chaveada aleatória, certo. Então esse é o nosso objetivo, queremos construir um aleatório olhar chaveado permutação F com um comprimento de bloco maior combinando várias permutações de aparência aleatória, que também são permutações chaveadas. Mas com um pequeno comprimento de bloco, portanto, as permutações aleatórias com comprimento de bloco pequeno aquelas são denotadas por fi. E para basicamente o paradigma de difusão de confusão faz é ele dizer como compor ou combinar esse olhar aleatório permutações com comprimento de bloco pequeno para obter uma permutação de aparência aleatória com um comprimento de bloco maior, certo. E a maneira como fazemos a composição é de tal forma que a escolha das permutações menores fi são determinadas pela chave secreta de sua permutação de tamanho maior. (Consulte o Tempo do slide maior: 02 :17) Então, para demonstrar como funciona exatamente o paradigma de difusão da confusão, deixe-me dar um exemplo onde meu objetivo é construir a permutação chaveada F com comprimento de bloco de 128 bits usando várias permutações chaveadas de comprimento de bloco de 8 bits, certo. Então, eu imploro seu perdão aqui, portanto, as permutações de tamanho menor, não são permutações chaveadas, são permutações inchaveadas. Haverá permutações verdadeiramente aleatórias e o que basicamente o paradigma de difusão da confusão faz é: Ele informa como compor esses pequenos tamanhos de bloco deschaveados e obter um comprimento de blocos maiores, a permutação chaveada. Por isso, para a finalidade de demonstração, vamos supor que temos várias permutações aleatórias, mapeando 8 bits para 8 bit cordas. E usando que o nosso objetivo é computar ou construir uma permutação chaveada F de comprimento de bloco de 128 bits. Assim, a forma como vamos projetar a função F é a seguinte. Então, analisamos o fx de entrada para a função F como uma sequência de 16 bytes, portanto, aqueles bytes eu amdenotando como x1, x2, x16. E a razão pela qual eu estou dividindo-a em bytes é porque nós somos dados à nossa disposição várias permutações, mapeando 8 bits para 8 bits, certo. Então, é por isso que a entrada x para a permutação chaveada F é dividida em bytes aqui. (Consulte o Tempo do slide: 03 :44) Então imagine que você tem o conjunto de todas as permutações mapeando 8 bit string para 8 bit strings. Então esse conjunto, eu estou denotando por essa notação da sub 8 direita. Por isso, cada um desses pequenos círculos, você pode imaginar que é um mapeamento de permutação 8 bit string a 8 bit direito string. E cada uma dessas permutações, digamos, se eu pegar esse particular fi permutação fi. Você pode interpretá-lo como uma tabela formada por 28entries, certo. Então você pode imaginá-lo como uma tabela formada por 28entries em que a primeira entrada denota o valor da permutação na entrada ao todo 0. A segunda entrada denota o valor da permutação na entrada 001 e assim como que a última entrada denotam o valor da permutação na entrada 111. Assim, assim, como que você terá 28rows, e cada linha será basicamente formada por 3 bits, e 3 bits, a saber, o valor da permutação nos inputs.Assim, nesse sentido, posso imaginar ou interpretar cada uma dessas pequenas permutações fi como uma tabela formada por 211 bits, certo. (Consulte o Tempo do slide: 04 :57) Então, como que você tenha várias tais tabelas e cada uma dessas tabelas eu estou denotando como um círculo vermelho aqui. E uma coleção de todos aqueles círculos vermelhos basicamente é o meu conjunto Perm8 ok. (Consulte o Tempo do slide: 05 :07) Assim, a maneira como vamos construir a permutação chaveada F é a seguinte, escolhemos aleatoriamente 16 permutações f1, f2, f16 deste conjunto maior. E dizer que as permutações aleatoriamente escolhidas de 16 permutações que eu escolhi são denotadas por este círculos amarelos. E cada uma dessas 16 permutações mapeando de 8 bit 8 bit cordas podem ser individualmente interpretadas como uma sequência de 211 bits. Isto porque como eu disse anteriormente, cada uma das permutações pode ser interpretada como uma tabela formada por 211 bits. Assim, a escolha da primeira pequena permutação que corresponde a uma sequência k1, a escolha da próxima permutação que será a sequência k2. E como que a escolha do 16º mapeamento de permutação 8 bit string para 8 bit string pode ser interpretada como outra sequência de 211 bits ok. (Consulte o Tempo do slide: 06 :09) E agora uma vez que escolhemos aleatoriamente as permutações de 16, que vão ser usadas para a construção da função F, a chave geral para a grande permutação F é a concatenação das tabelas individuais. A saber, a concatenação de k1, k2, k16 e se concatenar todas as cordas, obtenho a chave geral para a função F. Então, é fácil perceber que o tamanho de chave para a função Fa que estamos interessados em construir será de 215 bits. Porque cada uma das permutações menores que vou utilizar é denotada por 211 bits e tenho 16 tais permutações. Por isso, no geral o tamanho da chave para a permutação maior F é 215bits. E uma vez que decidi o valor da chave, a saída da função chaveada Fk sobre a entrada x é determinada a ser o valor da primeira permutação de tamanho pequeno f1 operada no primeiro byte, concatenada com o valor da segunda permutação menor f2 no segundo byte da entrada x. E como que o valor da 16º permutação de tamanho menor no 16º byte da entrada. E se eu concatenar todas essas saídas individuais, é isso que vai ser a minha saída da função keyedfunction f k na entrada x. Sendo assim, é assim que vamos construir uma função F usando várias permutações de tamanho menor. Agora a vantagem de construir a função maior Fk como esta é a seguinte. (Consulte o Tempo do slide: 07 :56) Se eu teria tentado diretamente construir uma Fk de função, o mapeamento certo diz 128 bit cordas a 128 bit cordas. Em seguida, isso teria me exigido para realmente armazenar uma tabela formada por 2135 bits, pois aquela tabela terá 2128 entradas. E cada entrada teria consistido ainda mais em 8 bits. Por isso, é por isso que o tamanho geral dessa tabela teria sido de 2135 bits. Mas a forma como construímos a função Fk combinando várias permutações menores de 16, só preciso armazenar uma chave de tamanho 215 bits. E basta se eu apenas armazenar o valor do k a saber, a descrição das 16 permutações menores que eu escolhi. E que suplência para avaliação do valor de F em qualquer entrada x. Portanto, essa é a vantagem de construir a função chaveada ou permutação chaveada Fk por esse paradigma de difusão de confusão. Então agora você pode estar se perguntando por que exatamente o nome confusão e difusão neste termo confusão de difusão de paradigma, o que exatamente causa confusão e o que exatamente causa a difusão. (Consulte o Tempo do slide: 09 :13) Então, vamos entrar nos detalhes, então este é o caminho no nosso exemplo construímos a keyedfunction Fk. Então, a função de tamanho menor f1, f2, f16 que escolhemos aqui, eles são chamados como funções redondas e eles são dependentes da chave, certo. Assim, isso cria uma confusão a partir do ponto de vista de um adversário. No sentido se um adversário quer computar o valor de Fk (x), mas ele não está ciente do valor de k. Então o adversário não sabe o que exatamente são as 16 funções redondas que vou usar. E, a partir do ponto de vista do adversário, poderia ser qualquer 16 funções a partir desta coleção de todas as permutações mapeando 8 bit cordas para 8 bit cordas. E um tamanho desta coleção de todas as permutações mapeando 8 bit cordas para 8 bit cordas é enormemente grande. Assim, isso significa que adversário será completamente confuso ou sem noção do que exatamente é o valor da chave, isso significa o que exatamente são as 16 funções redondas. E daí, adversário não pode prever o que exatamente vai ser o valor de Fk (x) mesmo que tenha visto vários valores de Fk (x), para vários x dele é escolha no passado. Então, isso cria o aspecto da confusão nesse paradigma. (Consulte o Tempo do slide: 10 :30) No entanto, verifica-se que mesmo que a descrição da função chaveada Fk que construímos é muito concisa. Ou seja, exige-nos armazenar apenas 215 bits, não é pseudo aleatório, certo. Por isso, lembre-se de que a propriedade da pseudo permutação aleatória é essa. Se eu tiver 2 entradas x e x ’ e se eu computar o valor de Fk (x) e Fk (x ’) com relação à mesma chave, então mesmo que x e x ’ difere em um único bit ou em um único byte, as saídas devem ser significativamente diferentes. Isso é o que esperamos de uma permutação verdadeiramente aleatória e se eu disser que Fk é uma pseudo permutação aleatória, então basicamente eu espero um comportamento quase similar da função resultante Fk (x). (Consulte o Tempo do slide: 11 :26) Mas verifica-se que a maneira como construímos a função Fk (x), esta propriedade não é alcançada. É fácil perceber que se eu tiver 2 entradas, x e x ’ que difere apenas no primeiro byte, então a saída de Fk (x) e Fk (x ’) diferirá apenas no primeiro byte. Todos os demais 16, 17, 15 bytes da saída de Fk (x) e Fk (x ’) será exatamente o mesmo. E não é isso que exatamente você espera de uma pseudo permutação aleatória. Assim, a maneira como convivemos com essa dificuldade é que realmente aplicamos a lógica que utilizamos na construção de Fk (x) várias vezes introduzindo o que chamamos de etapa de difusão. (Consulte o Tempo do slide: 12 :05) Então, deixe-me entrar em um pouco mais de detalhes, então imagine que temos a entrada x para a função Fk, que estamos interessados em construir, e temos o valor da chave. O que fazemos é que dependendo do valor da chave, determinamos as permutações dimensionadas menores que vamos aplicar nos bytes individuais de x. E depois de obtermos o resultado das funções redondas individuais sobre os respectivos bytes, o que fazemos é aplicarmos uma mistura permutações. Ou seja, apenas embaralhamos os bits do resultado intermediário que acabamos de obter. (Consulte o Tempo do slide: 12 :44) E o que dizemos é que esta uma iteração de confusão seguida por uma iteração dessa permutação de mistura constitui 1 redondo. E aí repetimos novamente esse processo, isso significa que apenas não fazemos saída o que obtemos após 1 rodada como a saída de Fk (x), seja qual for a saída que obtemos no final da primeira rodada, que é considerada a entrada x para a iteração seguinte. E, novamente, dependendo do valor da chave, determinamos as funções redondas que vamos utilizar. Nós aplicamos as funções redondas individuais na saída intermediária e novamente fazemos uma permutação misturadora. E depois repetimos esse processo para várias iterações por vários número fixo de rodadas. E, ao repetir esse processo por várias rodadas, é garantido que mesmo havendo uma única alteração na bit de entrada, ela afeta sobre vários bits de saída. Como toda iteração, o resultado da mistura de permutação fará com que os bits da produção intermediária sejam embaralados. E é isso que cria uma difusão do ponto de vista do adversário e é por isso que o nome confusão difere paradigma. A confusão é criada porque o valor da chave não é conhecido para o adversário. E é por isso que a escolha das funções redondas não seria conhecida pelo adversário. E a difusão é causada por causa da permutação de mistura que garante que após cada final de cada rodada seja qual for a saída que obtemos que seja embaralada. E isso é como resultado quando vamos para o início das próximas iterações, as próximas funções redondas serão aplicadas em bytes diferentes. Assim, isso cria uma difusão, o que garante que mesmo havendo uma única alteração no bit de entrada, isso afeta vários bits de saída e garante que a Fk de permutação chaveada geral (x) que obtivemos comporte-se como uma pseudo permutação aleatória, direita. (Consulte o Tempo do slide: 14 :39) Para que esteja em um nível muito alto, o paradigma de difusão da confusão. E depois de fazer esse processo para várias iterações, a saída resultante é denotada como Fk (x). (Consulte o Tempo do slide: 14 :49) Então agora vamos discutir sobre a rede de permutação de substituição ou SPN em suma, o que implementa o paradigma de difusão da confusão. E este SPN é um bloco de construção muito importante usado na construção de cifras de blocos práticos como o DES, que discutiremos na próxima palestra. E este SPN implementa o paradigma de difusão da confusão, mas com poucas diferenças. A diferença mais importante é que, em vez de escolher funções redondas que são dependentes essenciais, estaremos agora a utilizar funções redondas independentes e publicamente conhecidas, que denotamos por Si ou que também são chamadas de caixas S. Porque eles são conhecidos como caixas de substituição que significa, se eu voltar atrás e se eu vejo a descrição do paradigma de difusão da confusão. No paradigma de difusão da confusão, a confusão estava por vir porque o valor da chave estava determinando as funções redondas que estamos usando. (Consulte o Tempo do slide: 15 :51) Mas na rede de permutação de substituição, não há funções redondas que são dependentes chave, tudo é publicamente conhecido. Então, agora você pode estar se perguntando que se as funções redondas que nós vamos usar no SPN são publicamente conhecidas e essenciais independentes, como exatamente a confusão vai ser trazida a partir de respeito ao ponto de vista do adversário. Pois bem, a confusão vem porque apesar de as caixas S serem conhecidas publicamente, as caixas S são aplicadas em uma entrada, que depende do valor da chave. A saber, se eu quiser aplicar a caixa S em uma entrada x, então nós não computamos diretamente o valor da caixa S na entrada x. Mas sim sobre o valor de x, XORed com o valor da chave e que garante que mesmo que o valor da descrição da caixa S seja publicamente conhecido. A entrada exata em que a caixa S é operada não é conhecida a partir do ponto de vista do atacante. E é isso que cria aquele aspecto de confusão do paradigma de difusão da confusão. (Consulte o Slide Time: 16 :52) Então, novamente para demonstrar como exatamente um SPN funciona, vamos discutir como exatamente nós vamos construir uma permutação chaveada com um tamanho de bloco de 64 bit. Supondo que estamos dadas 8 S caixas, certo. Por isso, aqueles como caixas que denotamos como S1, S2, S8 e eles são publicamente conhecidos que são essenciais independentes. Portanto, esta é a entrada x para a minha permutação chaveada que me interessa construir a qual denoço como x. E o primeiro passo na arquitetura SPN será a etapa de mixagem de chave, onde utilizamos uma sub chave de 64 bit e mascará-la com a minha entrada atual x. (Consulte o Tempo do slide: 17 :36) E seja qual for a saída que obtiver que eu a analiso como coleção de 8 bytes, e agora este individual 8bytes perpassa as 8 S caixas, que são conhecidas publicamente. Por isso, o primeiro passo onde realmente fazemos o mascaramento da entrada: entrada atual com a sub chave, essa etapa é indicada como a etapa de mixagem da chave. E esta etapa de mistura de chave é seguida por uma etapa de substituição, em que o resultado da etapa de mixagem de chave são interpretados como bytes individuais e eles passam pelas caixas individuais S. E como resultado, agora obtenho uma saída intermediária de 64 bit e a etapa de substituição é seguida por uma etapa de permutação, onde fazemos o embaralhamento. A saber, aplicamos uma permutação de mistura e esta permutação misturadora também será publicamente conhecida. Por isso, em toda essa arquitetura, tudo será publicamente conhecido, exceto o valor da chave, o adversário não estaria sabendo o valor da chave.Fora isso, será conhecer toda a arquitetura, será saber a descrição das caixas S, será saber a descrição da permutação de mixagem e assim por diante. E uma vez aplicamos a permutação de mixagem que termina 1 redondo, e então aplicamos este processo novamente. Isso significa que vamos para a próxima rodada que significa qualquer que seja a saída intermediária que obtemos no final da permutação de mistura que serve como entrada x para a próxima iteração. E então, novamente vamos passar pelo mesmo processo. E depois de fazê-lo para várias iterações, o resultado final é tratado como o resultado da permutação chaveada resultante que construímos usando a arquitetura SPN ok. (Consulte o Tempo do slide: 19 :12) Então, se eu disser que tenho uma permutação chaveada projetada usando um SPN de r-round, então significa que fizemos r iterações de mixagem de chave seguidas de substituição, seguidas de permutação. E essas r-iterações são finalmente seguidas por uma rodada final de mixagem de chave, certo. Então, você pode estar se perguntando por que essa rodada de 1 minutos de mistura de chave final após a iteração de rth. Bem, acontece que se não fizermos essa mistura de chave final no final do término do término da iteração de rth, então o efeito da iteração de rth, etapa de substituição e etapa de permutação são completamente inúteis. Porque o adversário conhece a descrição da etapa de permutação e a descrição da etapa de substituição. Diga se eu não aplico esta última rodada ou iteração final da mixagem de chave no final da iteração de rth. Em seguida, é tão bom quanto dizer que o efeito da etapa de substituição de iteração de rth e a etapa de permutação não vai ser aplicável. Então, é por isso que essa etapa final de mixagem de chave é útil. (Consulte o Tempo do slide: 20 :21) E agora, a questão vem é como determinamos essas sub chaves para a rodada individual. Então, nós assumimos que temos uma chave mestra k para a função Fk (x) que estamos interessados em construir. E essas 64 bit sub chaves são selecionadas a partir desta chave mestra como por um algoritmo de planejamento de chaves conhecido publicamente, certo. Digamos que depende de como exatamente o meu algoritmo de planejamento chave é projetado e este algoritmo de planejamento de chaves também será publicamente conhecido. Porque lembre-se, a única coisa que um emissor e um receptor que vão operar esta Fk de permutação chaveada compartilhará é o valor da chave. Fora isso, esperamos que eles não devam ter nenhuma informação pré-compartilhada. Sendo assim, é por isso que a descrição das caixas S, a descrição da permutação de mixagem, a descrição do algoritmo de agendamento de chaveamento tudo está disponível no público domain.Assim, dependendo do comprimento da chave mestra, determinamos um algoritmo de planejamento chave segundo o qual decidimos qual subconjunto da chave mestra vai servir como a sub-chave para a i-ésima iteração e essa descrição será publicamente conhecida. (Consulte o Tempo do slide: 21 :31) Então, um teorema muito importante que podemos provar é que, se as caixas S que estamos usando na arquitetura de SPN são permutações, então as chaveadas função Fk que vamos obter no final de qualquer SPN de r-redonda vai ser uma permutação. Isso significa que é um a um e sobre o mapeamento e não importa o que exatamente é o valor de r. Desde que você garanta que essas caixas S sejam invertíveis, a função de chaveamento geral Fk que vamos obter implementando um SPN de r-round vai ser um direito de permutação chaveada. E a prova para isso simplesmente decorre do fato de que na extremidade de recebimento se a chave mestra também é conhecida no receptor, então o efeito de cada rodada do SPN é invertível. (Consulte o Tempo do slide: 22 :28) Por exemplo, imagine que o remetente tenha usado uma entrada x e ele tenha operado um SPN de r-redondo e ele tenha obtido o valor y. E imagine que o receptor sabe o valor de y e também sabe o mestre chave k direito. Agora, o objetivo do receptor é voltar com exclusividade da saída y para a entrada x. Então, vamos ver se ele pode reverter de volta o efeito da última iteração, right.Então, uma vez que essa permutação de mistura é publicamente conhecida, a partir desta saída y, receptor pode voltar para esta etapa intermediária. Pois a permutação de mixagem é publicamente conhecida, de modo que como resultado em inverso desta saída y com relação a esta permutação de mistura. A entrada que teria dado essa saída y com relação a esta permutação de mistura pode ser exclusivamente computada por ser um permutação.Agora, uma vez que chegamos aqui, isso significa que chegamos ao estado onde conhecemos a saída das caixas S 8 S caixas e cada uma dessas caixas S são invertíveis. Como resultado, podemos reverter o efeito de cada uma dessas caixas S e chegamos à saída da etapa de mixagem da chave. E agora, se eu quiser voltar da saída da etapa de mixagem da chave para a entrada anterior, o que temos que fazer é basicamente temos que tirar ou temos que fazer o XOR dessa sub chave que eu teria usado na última iteração. E que podemos computar desde que saibamos o valor da chave mestra, e o algoritmo de planejamento de chaves esteja anyhow disponível publicamente. Isso significa qualquer entidade que saiba o valor da chave e y pode inversamente inverter a saída y e obter de volta a entrada x. E como resultado podemos dizer que a construção geral Fk (x) que construímos é de fato uma permutação chaveada. (Consulte o Tempo do slide: 24 :24) Então, agora vamos chegar às propriedades de segurança da permutação chaveada que obtivemos ao operar um SPN de r-redondo, certo. Então, a construção é bem direta, agora o importante que temos que discutir é sobre o aspecto da segurança. Agora, verifica-se que a segurança de qualquer Fk de permutação chaveada, que obtivemos executando um SPN de r-redondo, depende da escolha exata das caixas S que estamos usando, a escolha exata da permutação de mixagem que estamos usando, e a escolha exata de agendamento de chaves que estamos usando direito. Assim, na arquitetura do SPN, até agora não discuti o que exatamente devem ser as propriedades das caixas S. Nós apenas exigimos que as caixas S devem ser invertíveis para garantir que o Fk geral (x) que obtemos também é invertível. Mas para as propriedades de segurança, a saber, para garantir que a sua permutação chaveada Fk (x) seja uma permutação pseudoaleatória, precisamos de algumas propriedades desejáveis a partir dessas caixas S. Da mesma forma precisamos de algumas propriedades desejáveis da permutação de mixagem e do algoritmo de agendamento de chaves direito. Acontece que não há regras de acerto rígido ou condições suficientes. A saber, não se sabe que se garantimos certa lista de propriedades com relação às caixas S misturando permutação e algoritmo de agendamento de chaves, então a construção resultante sempre vai ser uma pseudo permutação aleatória. Não existem tais regras de cookbook ou algoritmos disponíveis. Mas acontece que esperamos certas propriedades desejáveis a partir das caixas do S subjacente, misturando permutações e algoritmo de planejamento de chaves para garantir que a permutação chaveada resultante se comporte de fato como uma pseudo permutação aleatória. (Consulte o Tempo do slide: 26: 12) Então há uma propriedade importante chamada efeito avalanche e o que exatamente efeito avalanche significa é que, se construímos uma Fk de permutação chaveada usando um SPN de r-round, então esperamos que mesmo uma pequena alteração na entrada de Fk deve produzir uma saída significativamente diferente. Agora a questão é, como garantir que como escolher um SPN que garanta que a Fk resultante projetada usando o SPN realmente atinja esse efeito de avalanche. Assim, para o momento supõem que projetamos ou estamos usando S caixas as caixas S publicamente conhecidas e a permutação de mixagem tendo as seguintes propriedades. (Consulte o Tempo do slide: 26 :58) As caixas S que estamos usando que são conhecidas publicamente e conhecidas do adversário possuem a propriedade que: mesmo havendo alteração de 1 bit de entrada na caixa S, garante-se que haja pelo menos 2 bits de saída nos bits de saída de S caixa que diferem direito. Isso significa o que eu estou dizendo é que assume que você tem a caixa S tendo a propriedade que se você operá-lo com entrada x e entrada x ’, onde x e x ’ difere apenas em digamos 1 bit, então as saídas resultantes y e y ’ difere em pelo menos 2 bits.   Minha corrente direita meia a R0, ela simplesmente vai e serve como a próxima L metade. E eu aplico a função redonda atual, a saber, f1 na minha atual meia direita e XOR ela com a minha meia corrente meia para obter a próxima metade direita. E isto é o que fazemos em cada iteração, o que difere ou o que poderia diferir é exatamente a escolha das funções redondas individuais. Mas a operação sábia a estrutura das operações que estamos realizando em cada iteração é exatamente a mesma. (Consulte o Slide Time: 41:41) E, novamente, não vou provar isso mas tínhamos visto em uma de nossas palestras anteriores, que independentemente do que exatamente são suas funções redondas individuais, para qualquer valor de R e qualquer escolha das funções redondas, a função geral, a rede Feistel composta, a função geral que obtivemos pela rede composta pelo Feistel é de fato uma funciona.Então, isso me leva ao final desta palestra. Só para relembrar nesta palestra, vimos blocos de construção de 2important a saber, rede SPN e Feistel, que utilizamos nas construções de cifras de blocos práticos. E em nossa próxima palestra, discutiremos que como esses 2 blocos de construção são usados para projetar algumas das cifras do bloco mundial real como DES e AES, obrigado.