bom então pessoal a gente está falando trabalhando com cifras de bloco né E quando eu falei do Aécio no final da gravação eu disse que usar as cifras de bloco de maneira pura sem utilizar o modo de operação eles não me traz segurança ou então nós vamos ver o que que são esses modos de operação e por que que eu tenho que usar basicamente esses modos de operação eles vão definir como a cifra de bloco é aplicada para cifrar uma mensagem bem diferentes modos de operação da o Electronic House would have a dream esse carne
aqui não está a segurança nenhum a gente tem o CDC e era um dos modos de operação mais utilizados hoje um os que estão aparecendo mais utilizada ao alterou e depois tem algumas variações e eles mudam um pouco minha forma como os algoritmos as cifras de blocos são a misturadas do Objetivo maior aqui ó esse aqui é o é o receber né telefone roubo esse modo mais de uma relação mais filhos Esse é o modo de operação que eu pego um bloquinho aqui ó na entrada do texto Claro e se frustrando essas carros então eu
tenho um texto cifrado aqui se eu pegar um outro texto Claro pense né cada um desses em 1616 bikes 128 bits e seu cifra ele com a mesma chave que é o que a gente acaba fazendo esse texto cifrada Ian se esses dois textos Claros foram iguais os dois textos cifrados vão ser iguais eu vou pegar mais um pedacinho de texto cifrado texto Claro e cifra usando a mesma chave o texto cifrado vai ser igual eu achei esse site que vocês estão vendo ainda quantos bloquinhos de 16 bytes de igual nesta tela né Cada bloquinho
e azul aqui ó é igual ao outro isso vai me trazer uma um efeito e não é desejado se usar o iOS que seja usando esse modo de operação que caiu seja basicamente sem modo de operação né Então aqui tem só falando sobre como texto cifrado né como eu cif como eu decidi fazer para cifrar o texto claro eu aplico algoritmos de cifragem atento tenho antecipado e para deixar eu pego e aplico aqui espero uma texto pa só faça o processo inverso bom então o mesmo bloco de texto Claro na entrada vai gerar a mesma
saída e isso é problemático na prática eu vou pegar aqui um exemplo né imagine essa figura nessa parte branca e a parte preta e a parcelada Ninja aqui ó se Vocês pegaram esses bloquinhos de parte branca quando eu se fala ele vai ser igual na saída quando eu pegar esses bloquinhos de preto ele vai ser igual isso vai me gerar algum efeito parecido com esse que daquilo você tão vendo que o que era Branco ficou parece igual o que era preto ficou igual a esse eu juntar todos esses blocos isso vai me dar essa impressão
e aqui lembre na desde que eu falei para vocês quando a gente está trabalhando com segurança a gente não pode passar informação alguma para o atacante e aqui o que eu tô fazendo eu já sei quais blocos e são iguais no texto Claro Independente de ser essa figura você é um texto são som eu tô a informação eu tô passando aqui esse conjunto de boxe aqui é igual no texto lá esse conjunto de blocos aqui é igual o texto fala se fosse um som e assim a mesma coisa se fosse um texto e a ser
a mesma coisa isso não é desejado o que eu quero efetivamente é alguma coisa assim parece um ruído e me parece que eu não consigo identificar coisa alguma aqui eu não sei se só seu texto não sei se vai ter uma figura eu não sei se só que é som eu não sei é isso que eu gostei e esse modo de operação que tá aqui ó e basicamente é sem modo de operação ele acaba me gerando problema então o que que eu vou fazer eu vou tentar pegar agora esses blocos que são cifrados e vou
tentar embaralhar eles um pouco mais e como é que eu vou fazer isso usando o exemplo o Cyber Walking tem um modo de operação o que que ele tá fazendo aqui ó e vocês vão mulher que tem algumas características e são novas Mineiro verifica em que ele tem algum algo que no início chamados vetor de inicialização o que que é esse setor de inicialização é um bloco de 128 bits aleatórios isso aqui é gerado de maneira aleatória ou seja são 128 bits aleatórios como é que eu faço agora para fazer assim faz esse e maiúsculo
que tem aqui né é um algoritmo é uma cifra colocar por exemplo é essa que a gente viu anteriormente fazer com o texto Claro se ele embaralhar o texto Claro ele vai fazer uma operação de choro com o retorno de inicialização Então imagina e agora no texto a entrando para ser cifrado já não é igual ao texto Claro porque ele foi alterado pelo choque com o setor de inicialização e o ifro aquele texto na com a chave isso vai me dar um texto cifrado aqui embaixo que que eu vou fazer com esse texto cifrado agora
velho eu vou pegar ele e vou usar ele como vetor de inicialização o próximo bloco então o que que eu vou fazer agora para pegar o texto Claro no próximo bloco e vou fazer um choro com o texto cifrado do bloco anterior que que vai acontecer agora vai acontecer fio o bloco que vai estar entrando aqui ó é diferente desse bloco que entrou aqui mesmo se esses dois copos de texto Claro sejam iguais com isso esse texto cifrado que vai estar aqui vai ser diferente desse texto cifrado que do bloco anterior e Se vocês fizerem
esse encadeamento né essa cadeia cada bloco mesmo que o meu texto para aquecer e os textos cifrados que eu vou ter aqui embaixo vão ser o que vão ser diferentes e com isso eu digito aquele problema que eu tinha ali do pinguim da porque agora mesmo que eu tenho os pedacinhos Branco cada pedacinho branco vai ser se fado de uma maneira diferente em cada pedacinho branco vai mexer lá um texto cifrado diferente cada pedacinho Preto vai gerar um texto se fala diferente e aí no final eu vou ter um embaralhamento que eu desejo Então se
vocês tiverem aqui a por exemplo o texto cifrado um é esse cara que tá aqui eu faço o que eu sifro na eu chamo minha função de cifragem por exemplo aresto dias eu tenho essa dentro de seu desse podia-se as horta podia ser qualquer uma daquelas outras cifras que eu tenho lá e o que que eu fosse falar eu vou cifrado texto Claro uniforme 1 e depois de inicialização Tá bom então isso me dá um texto se fato Então esse meu texto de fala como é que eu chego no texto claro eu vou fazer o
que o processo e das o que que eu vou fazer eu vou pegar o texto cifrado vou decifrar usando a chave e depois Este resultado eu vou fazer um short um retorno de inicialização então aqui ó esse texto Claro aqui de cima é o que eu vou aplicar o algoritmo de decifrar vou pegar o texto cifrado ou decifrar com a chave né vou fazer isso e no final eu faço o short com quem o choro Live como é que eu decifro Este texto que isso aqui isso vai ficar como exercício para vocês para vocês a
língua pensava a participar esse texto Claro para cifrar esse texto claro o que eu vou pegar esse texto Claro vou fazer um choro o texto cifrado e vou cifrar Este resultado ou o meu algoritmo de criptografia com a sala isso vai me dar esse esse fato dois o texto se o texto claro que que eu vou fazer depois vocês fazem isso nesse formato aqui eu vou pegar esse texto se falado vou decifrar ele com a chave e o resultado disso eu vou fazer no shopping com quem com o texto cifrado anterior né ou um bloco
de texto cifrado ter então tô fazendo isso na até chegar no i-ésimo blog Então pensa em como é que seria feito para o i-ésimo box questão de de usar esses modos de operação eu preciso também fazer um preenchimento né Eu não sei se você já tinha me perguntado isso mas Imaginem o seguinte nem outro texto Claro é divisível pelo tamanho do bloco né lembra que eu tenho blocos de 128 bits Mas nem todo texto é divisível por 128 pode ser tem um texto que eu tenho no final eu tenho a sua 15 mais pode ser
que no final eu tenho dez bairros e o que que eu faço com aqueles outros Valentes que estão faltando né para chegar em 16 para chegar em 128 bits a hora e o meu gosto final ele tem menos de 16 watts na não tem 16 bairros redondinho eu sei o que a gente chama de preenchimento ou de febre e aí existe um padrão para fazer esse preenche mesmo esse preenchimento um dos padrões que a gente tem é o pkcs7 bom e o que é que ele disse ele me diz basicamente o seguinte se o meu
último bloco não tem 16 bytes eu tenho que fazer um preenchimento ou seja se eu tenho 15 balões eu sempre um byte com o número um então eu coloco um byte lá no final como um e o meu último bloco tem 14 watts o que que eu faço eu coloco dois bytes com o número dois seja 22 se o último bloco tem 13 bytes então Eu preencho 13 bytes e coloca o número 13 ele se eu tiver e assim sucessivamente se eu tiver doze Valentes eu coloco 4 bytes que é o número 4 porque é
isso porque quando eu decifrar o meu terço eu vou olhar por último byte e vou ver que nunca no seu tem ali se eu tenho o número um eu descarto White porque eu sei que isso aí foi o Perry se ela eu tenho o número dois um dos dois vai porque eu sei que aquilo ali opera se tiver um número três eu descarto três mais e assim sucessivamente Ó o meu problema aqui ó é o que que acontece se a mensagem é múltipla do tamanho do bloco o que que acontece eu vou fazer uma pausa
aqui para vocês darem uma pensado bom então o que é que eu faço Mas e as mensagens é múltiplo do tamanho do bloco eu coloco um bloco adicional e dentro desse bloco adicional né 1 128 bits 16-bits eu encho esse bloco de números 16 o que agora o meu algoritmo ficava analisado né Toda vez que eu decifrar eu olho o último bloco eu vejo o último bate eu vejo número tem ali se ele tem uma descarga tomate se a 32 outros casos dois lados e assim eu vou fazendo se a gente vai dizer que eu
descarto Bloco Inter eu já o bloco inteiro porque eu sei que aquele bloco de pé tá então esse esse pedem ele vai ser bem importante para eu fazer esse preenchimento muitas vezes a gente vai usar uma brother ele sem o pede sem esse preenchimento ele não consegue decifrar a mensagem tal então às vezes ele vai trazer o meu bloco A tua mensagem não é múltiplo de 16 não é múltiplo de 128 vezes é porque vocês não usavam pedem um e às vezes não consegue engravidar Mas então se você tenha o a questão de pele né
propriedades do CDC babydoll vetor inicialização aleatório a mesma mensagem de entrada então pode encher a diferentes saídas O que é ótimo imagine o seguinte eu quero se falar mesmo a mensagem de novo se eu tiver um pedem que ela desculpa se eu tiver um Henrique é diferente então a minha cifra completamente diferente e aí o atacante ele não vai saber se o teu tô cifrando de novo é a mesma mensagem que eu tinha se falado anteriormente ou seja isso traz uma característica muito legal se um bloco de texto para mudar então todos os blocos cifrados
subsequentes são afetados né Isso vai ser uma propriedade útil quando a gente for falar de código de autenticação de mensagem que é quando a gente quer trabalhar com a questão de integridade por enquanto a gente está trabalhando com o algoritmo para a privacidade da lembre que a gente vai trabalhar com privacidade autenticação e integridade da e não-repúdio e cada uma dessas questões a gente vai ter mais à frente então se todo mundo fosse de todo ter um bloco de texto de fato por perdido o que você vê se consegue se recuperar mas ele perde só
aquele bloco né agora você perdeu um bike aí isso pode embaralhar tudo na Então é isso pode atrapalhar toda a a decifrar uma questão aqui que é ruim é que esse modo de operação eu não consigo paralisada eu não consigo cifrar de maneira paralela porque assim faz um bloco tem que se falar o balcão anterior para situar o próximo tem que participar do bloco anterior e assim sucessivamente ó eu fica com uma pergunta será que eu consigo decifrar de maneira paralisado é uma pergunta para vocês tá bom o modo de operação agora vocês vão ver
que esses modos de operação eles vão mudando um pouquinho né e aquilo que ele vai tentar transformar é fazer com que a cifra de bloco pareçam a cifra de fluxo Olha só como é que funciona esse modo de operação né ele pega esse depois de inicialização criatório e cifra este vetor de inicialização ou ameaçado estamos aqui vai te dar um valor aqui e foi afetado Pela chave sabe e ele vai pegar o meu texto Claro e vai fazer um chora deste carinha com o meu texto Claro e vai me dar o tecido aqui Este resultado
ele vai fazer o que ele vai se falar de novo com a chave isso vai me dar algo que ele vai fazer um short com meu texto Claro vocês tão vendo que tá começando aparecer uma cifra de fluxo né Se vocês levaram porque o que que ele tá fazendo com o texto Claro aqui ó só chora Oi tá fazendo o soro Claro que ele tá pegando aqui ó um texto que foi cifrado tem um objetivo que foi usado minha chave né então ele começa aparecer uma cifra de fluxo aqui da nossa questão é se um
bloco inteiro do texto cifrado for perdido ele consegue se recuperar depois eu vou fazer algumas perguntas para vocês se o mate acredita perdido então não consegue né os dados podem não podem ser decifrado Veja uma outra característica que tem nesse modo de operação cês tão vendo que neste modo de operação ó eu não preciso do algoritmo de decifrar Eu só preciso algoritmo o que decifrar mas eu não preciso de decifrar a mensagem por que porque olha como é que eu decifro eu pego o meu texto lá como é que eu vou decifrar como é que
eu vou chegar no meu texto Claro o vetor de inicialização vai ir junto com a bom então cara que faz esse falar ele vai fazer o que ele tem a chave lá depois a gente vai ver como é que a gente passa distribuição de chamada mas ele vai pegar o cartãozinho desse atenção vai cifrado com a chave vai pegar Este resultado vai pegar Este resultado aqui ó vai fazer um short com o texto cifrado e eu vou achar o texto Claro lembra então um ano tá entendendo por isso que é por isso que ele disse
que ele parece uma cifra de fluxo lá e ele faz isso e eu chego no texto claro que eu tenho aqui então eu só preciso do algoritmo de e se fa eu não preciso agora do algoritmo de decifrar claro que continua não sendo possível né eu fazer o que eu se fraco paralelamente aqui tem uma pergunta que eu vou deixar para vocês também será que é possível decifrar paralelamente né porque e como então volta em ali nessa figura e pensa em Verificar como é que eu faço o processo de decifrar e veja o que que
eu preciso para ver se fala e vejo se eu consigo fazer isso de maneira parar e o Outback ele é essencialmente Aparecida O meu anterior ele é essencialmente uma cifra de fluxo aqui ó em vez de eu pegar o resultado do texto Claro que não chora e usar na cifra para cifrar o próximo bloco eu pego e só interior né eu pego antes de fazer o choro e aí agora se vocês olharem eu tenho texto Claro texto Claro texto Claro e eu vou fazendo Choro com esses bichos que vem aqui da minha cifragem do vetor
de inicialização E aí eu faço isso aqui Vem para cá e agora parece que eu tenho parece uma cifra de fluxo não porque agora eu tô fazendo o que eu tô fazendo xó quase parecidos com o andar interno né pessoal parecido É que eu uso a chave diversas vezes eu não deveria mas a este bloco vai aparecer o que vai aparecer uma tá parece não é o que eu uso eu vou acabar os Anderson me achava diversas vezes e no até pedra não deveria mas eu fiz aqui foi aparecer com uma cifra de e aqui
de novo né as operações justificarem situação exatamente as mesmas assim cúpula cifras de Luan tá em terra seja eu se Fruet para nesse pra depois eu faço a mesma coisa lá então ela é efetivamente a cifra de o último modo que eu quero falar pra vocês que se chama de counterblow na CTR ele tá ficando muito popular e vocês a vão entender porque primeiro me empresta o teu vetor de inicialização Eu tenho um vetor de inicialização que eu chamo de contador Inicial na realidade isso aqui é um de inicialização falta eu olho para ele como
sendo um número então eu olho para ele com o seu número e se vocês olharem para cada bloco eu vou incrementando esse é um número aleatório também cada bloco eu vou incrementando esse bloco na módulo 101 módulo 2 nascer na 128 porque os legal no final eu tenho que voltar pro início e aí o que que eu faço com esse contador eu sifro ele com a chave e aí eu uso Este resultado deste contador cifrado para fazer um choque com o meu texto Claro e a gente chegou um teste se fala e aí o que
que eu faço deixa o teu não aproveita esse pedaço aqui mas eu pego o meu computador e incremento um seu mexendo um bit o e eu tenho aqui no final é completamente diferente desse resultado que eu tenho aqui e eu não consigo ver essa relação entre esses caras que estão E aí eu pego esse cara e agora eu faço o que eu faço o choque comendo um texto claro eu nem vou isso próximo slide porque aqui vocês já devem conseguir verificar e agora eu posso para realizar na alergia usar o mesmo algoritmo para cifrar e
decifrar a cinco motivos nos dois módulos anteriores o que que acontece eu não posso estar analisar tanto a cifragem quanta decifrar agora eu posso aproveitar essas máquinas modernas que a gente tem e tem diversos processadores e tem diversos korsa Então o meu o algoritmo Agora ele pode fazer o que ele pode cifrar e decifrar diversos blocos ao mesmo tempo se eu jogasse para no outro então vocês imagem eu estou bem interforce e ganha bastante então assim como o USB Lan volto tiback ele é essencialmente uma cifra de fluxo né se preciso voltar a minha aqui
ó meu texto Flávio está sendo chifrado com um conjunto de bico é diferente em cada uma dessas etapas a esta mensagem tá Seria o andar inverte-se em cada mensagem eu usasse uma chave diferente mas como eu acabo usando a mesma chave de graças às vezes então isso não é uma vontade para mas ele é uma cifra de fluxo ele é essencialmente uma as operações decifrarmos principal são as mesmas eu não preciso decifrar né e agora eu consigo paralisar as duas operações tanto participar comparticipa e isso vai ser uma grande vantagem sobre o CVC que ele
não é para levar então aqui eu termino essa parte E aí um dos modos de operação e tem que ficar claro para vocês e os modos de operação tem que ser usado na praia eu te segurança quando eu tiver Então se frango alguma coisa mesmo usando a s que é uma cifra seguro mesmo que eu uso as1 chave de 256 se eu não usar algum modo de operação eu vou passando uma informação do atacante do atacante vai descobrir num determinado momento eu estou a FIFA não usem um modo de operação qual deles qualquer um aqui
a diferença entre usar um outro em termos de performance na basicamente ou em termos de qual é a operação que eu uso seu uso serve cifrar ou seu uso cifrar e decifrar ó o para gravação por aqui se vocês tiverem alguma dúvida vocês podem me perguntar seja pelo WhatsApp seja por e-mail é a hora que você desejar