às Cifra Aleatória Fieiras Defiição ( ) Uma -bit ifra por bloos é uma fução : V K V, tal que para ada -bit K K, (P, K) é uma fução ivertível (a fução de eriptação para K) de V para V, deotada por K (P). A fução iversa é a fução de deseriptação, deotada D K (C). A expressão C = K (P) deota o fato de que o texto ifrado C resulta da eriptação do texto laro ( plaitext ) P, usado-se para tal a have K. é desigado o omprimeto do bloo. A utilização de bloos de igual omprimeto tato para o texto laro omo para o texto ifrado evita a expasão da iformação. Fieiras Sempre que o omprimeto da mesagem a ifrar ultrapassa o omprimeto do bloos é eessário dividir a mesagem em bloos, as formas de o fazer será disutida à frete. Defiição (Cifra Aleatória) Uma (verdadeira) ifra aleatória é uma ifra por bloos que implemeta todas as 2! bijeções de 2 elemetos. Cada uma das 2! haves, espeifía uma dessas bijeções. Uma ifra deste tipo requereria log 2 (2!) ( 1,44)2 bits, ou aproximadamete 2 -vezes o úmero de bits de um bloo da mesagem. O valor exessivo que isso represeta tora este tipo de ifra impratiável. 69 / 246 70 / 246 Cifra Aleatorizada Cifra Aleatorizada Fieiras Defiição (Cifra Aleatorizada) Uma ifra aleatorizada é uma fução de um espaço de textos laros V, para um espaço de textos ifrados V m, m >, om o retirar de elemetos de um espaço de úmeros aleatórios R = V t. é defiida por : V K R V m, tal que, para ada have K e R R, (P, K, R), também esrita omo, R K (P), aplia P V a C V m ; e existe uma fução iversa (fução de deseriptação), de V m K V. Fieiras Uma ifra por bloos (simples) é uma fução determiístia, ada par de texto laro P e have K é trasformado um úio texto ifrado. m otraste uma ifra aleatorizada assoia o par (P, K) om um ojuto de C (P,K) de bloos ifrados elegíveis, sempre que P é ifrado, om uso da have K, o resultado de um gerador aleatório R esolhe, de forma ão determiístia um dos bloos elegíveis. De forma a garatir a ivertibilidade, para ada have fixa K, e para todo o texto laro P os sub-ojutos C (P,K) têm de ser disjutos. sta téia implia expasão da iformação. 71 / 246 72 / 246
Fieiras Preehimeto Uma ifra por bloos eripta os textos laros em bloos de omprimeto fixo om -bits (usualmete = 64), para mesages que exedam esse omprimeto a mesagem é partiioada em bloos de omprimeto -bits, sedo ada um dos bloos eriptado de forma separada. Se o omprimeto da mesagem ão for um múltiplo de é eessário preeher de alguma forma a mesagem de forma a que tehamos um múltiplo de. Fieiras Preehimeto Método de Preehimeto 1 trada: x, texto laro;, omprimeto (em bits) do bloo. Saída: x 0, texto laro preehido de forma a ter um omprimeto múltiplo de. 1 Coatear a x o meor úmero de (possivelmete zero) 0-bits eessários para obter um texto ujo omprimeto seja um múltiplo de. Método de Preehimeto 2 trada: x, texto laro;, omprimeto (em bits) do bloo. Saída: x 0, texto laro preehido de forma a ter um omprimeto múltiplo de. 1 Coatear a x um úio 1-bit. 2 Coatear de seguida o meor úmero de (possivelmete zero) 0-bits eessários para obter um texto ujo omprimeto seja um múltiplo de. 73 / 246 74 / 246 Fieiras Prós e Cotras dos Métodos de Preehimeto O método de preehimeto 1 é ambíguo - os evetuais 0-bits o fim do texto origial ão se oseguem distiguir daquelas que foram aresetados o proesso de preehimeto. Um tal método é aeitável se o omprimeto do texto laro (ates do preehimeto) é sabido, por outros meios, pelo destiatário da mesagem. O método 2 ão é ambíguo. Quado o omprimeto do texto origial é já um múltiplo do omprimeto do bloo, resulta do método a riação de um bloo extra. Fieiras Os métodos mais usuais de partiioar uma mesagem em bloos são: letroi CodeBoo. Cipher-Blo Chaiig. Cipher FeedBa. xistem outros modos: Output FeedBa (OBF); Couter Mode (CTR); Offset-Codeboo Mode (OCM). 75 / 246 76 / 246
Fieiras Modo de letroi Codeboo () uma mesagem é partiioada em bloos de omprimeto -bit e estes são eriptados separadamete. Chave x j 1 j x j = x j riptar Deseriptar Chave Algoritmo trada: have de omprimeto (bits), bloos de omprimeto (em bits) de texto laro, x 1,... x t. Saída: produz bloos de texto ifrados 1,..., t 1 Cifrar: para 1 j t, j K (x j ). 2 Deifrar: para 1 j t, x j 1 K ( j). Fieiras Propriedades do modo de operação : 1 de texto laro idêtios: sob a mesma have resultam em bloos ifrados idêtios. 2 Depedêias etre bloos: os bloos são ifrados de forma idepedete etre si. A re-ordeação dos bloos de texto ifrado resulta o re-ordeameto dos bloos de texto laro. 3 Propagação de rros: um ou mais erros em bits um úio bloo de texto ifrado afeta somete esse bloo. Para uma ifra típia, o deseriptar de um tal bloo é etão aleatório (om era de 50% de reuperação de texto laro). 4 Perdas de iformação: a reuperação de bits perdidos as froteiras dos bloos ão é possível. 77 / 246 78 / 246 Fieiras Nota (Utilização do modo ) Dado que os bloos de texto ifrado são idepedetes us dos outros a substituição maliiosa de bloos o modo (por exemplo a iserção de um bloo muito frequete) ão afeta a deseriptação dos bloos adjaetes. Mais, os bloos ifrados ão esodem os padrões, isto é bloos ifrados idêtios impliam bloos de texto laro idêtios. Por esta razão o modo ão é reomedável para mesages de omprimeto maior do que um bloo, ou os asos em que a have é usada mais do que uma vez. Nota (re-siroização vs. erros as froteiras) Por re-siroização etede-se a reuperação por erros (sem perda de iformação) os bloos. Por erros as froteiras etede-se a perda de bits as froteiras dos bloos. Fieiras Modo de Cipher-blo Chaiig utiliza um vetor de iiialização de -bits. x 0 Chave riptar 1 Chave x j = x j Deseriptar Algoritmo trada: K, have de omprimeto (bits), 0 bloo iiial de omprimeto -bits, bloos de omprimeto (em bits) de texto laro, x 1,... x t. Saída: produz bloos de texto ifrados 1,..., t. 1 Cifrar: 0 0. Para 1 j t, j K ( x j). j 2 Deifrar: 0 0. Para 1 j t, x j 1 K (j). 80 / 246 0 79 / 246
Fieiras : 1 de texto laro idêtios: sob a mesma have e bloo iiial resultam em bloos ifrados idêtios. Mudado o bloo iiial, a have, ou um primeiro bloo de texto laro (por exemplo, om um etrada aleatória) resulta um texto ifrado diferete. 2 Depedêias etre bloos: a depedêia etre bloos faz om que o texto ifrado j depeda de x j e de todos os bloos de texto laro preedetes. O re-ordear dos bloos de texto ifrado afeta a orreta deifração do texto global. 3 Propagação de erros: um erro um úio bit o texto ifrado j afeta o deifrar dos bloos j e, isto dado que x j depede de j e de. Nessas odições o bloo x j, reuperado de j, é tipiamete, aleatório (50% errados), e o bloo x j+1 tem um bit errado preisamete aode o bloo j tiha. O adversário pode etão plaear uma alteração o bloo x j+1, alterado para tal o bloo j. 4 Reuperação de erros: um erro (iluido a perda de um ou mais bloos) um bloo j afeta somete o bloo que se lhe segue de imediato, o bloo j+2 ão é afetado pelo erro oorrido em j. Fieiras Nota (Propagação de rros a ) mbora o modo osiga reuperar de erros os bloos ifrados, modifiações o bloo de texto laro x j durate a eriptação alteram os bloos ifrados subsequetes. Isto tem efeitos a usabilidade dos modos om eadeameto para apliações que requeiram aessos aleatórios de leitura/esrita à iformação eriptada. O modo é uma alterativa esses asos. Nota (Itegridade do Vetor de Iiialização em ) quato que o vetor de iiialização o modo ão eessita de permaeer sereto, a sua itegridade tem de ser protegida, isto dado que modifiações maliiosas ao mesmo permitem ao adversário fazer modifiações (em bits) previsíveis ao primeiro bloo de texto laro reuperado. Usar um vetor de iiialização sereto é uma forma de impedir isso, o etato se a itegridade da mesagem é um requerimeto é eessário usar um outro tipo de meaismo. 81 / 246 82 / 246 Fieiras Modo de Cipher feedba () r-bit arateres/r-bit re-alimetação. quato o modo proessa o texto laro bits de ada vez (usado uma ifra de bloos de omprimeto ), algumas apliações podem requerer que um bloo de r-bits seja eriptado e trasmitido sem demoras, para um dado r < (usualmete r = 1 ou r = 8). r-bits mais à esquerda x j I 0 desloameto r-bits Chave r I j O j riptar j r desloameto r-bits r I j O j Deseriptar Chave x j = x j Fieiras Modo de Algoritmo trada: K, have de omprimeto (bits), I 0 bloo iiial de omprimeto -bits, bloos de omprimeto r-bits de texto laro, x 1,... x t, 1 r. Saída: produz bloos, de omprimeto r-bits, de texto ifrados 1,..., t. 1 Cifrar: I 1 I 0 (I 1 é o valor o registo de desloameto, para 1 j t). 1 O j (I j ) (álulo do resultado da ifra por bloos). 2 o j os r-bits mais à esquerda de O j 3 j x j o j (trasmite o bloo ifrado, de omprimeto r-bits, j ). 4 I j+1 2 r I j + j mod 2 (desloa j para o lado esquerdo do registo de desloameto). 2 Deifrar: I 1 I 0. Para 1 j t, x j j o j, aode o j, O j, e I j são alulados da forma já desrita. 83 / 246 84 / 246
Fieiras Propriedades do modo de operação. 1 de texto laro idêtios: assim omo para o modo de operação a mudaça do bloo iiial resulta um bloo ifrado diferete. O bloo iiial ão eessita de ser sereto. 2 Depedêias etre bloos: similar ao modo de operação, o bloo j depede dos bloos x j e x j 1. Cosequetemete o re-ordear dos bloos ifrados afeta a deifração. Para uma orreta deifração é eessário que os /r -bloos preedetes estejam orretos (de forma a que o registo de desloameto oteha um valor orreto). Fieiras Propriedades do modo de operação (otiuação). 3 Propagação de erros: um ou mais bits um úio r-bit bloo ifrado j afeta a deseriptação desse e dos próximos /r bloos ifrados, ou seja até que bits de texto ifrado sejam proessados, após o que o bloo om erros j foi desloado para fora do registo de desloameto. O texto laro reuperado x j vai deferir do bloo origial x j preisamete a posição (em bits) a qual j otém o erro; os outros bloos de texto laro iorretamete reuperados são tipiamete vetores aleatórios, i.e. têm 50% de bits em erro. Cosequetemete um adversário podem ausar modifiações previsíveis um dado bit de x j, por alteração do bit orrespodete em j. 85 / 246 86 / 246 Fieiras Propriedades do modo de operação (otiuação). 4 Reuperação de erros: o modo é auto-siroizável, de forma similar ao, mas requer /r de bloos ifrados para reuperar. 5 Débito: para r <, o débito derese por um fator de /r (vs. ) dado que ada exeução de só dá origem a r bits de texto ifrado. Nota ( e a Fução de ) Dado que a fução de eriptação é usada, o modo, tato para a eriptação omo para a deseriptação, este modo ão pode ser usado em ojução om ifras de have públia. Nesses asos deve-se usar o modo. Fieiras Se uma ifra por bloos é suseptível a um ataque por proura exaustiva da have (devido a um omprimeto da have iadequado), etão a eriptação do mesmo bloo mais do que uma vez pode aumetar a seguraça. As téias para a eriptação múltipla podem ser usadas em ojução om os modos de operação já estudados, o passa a deotar a eriptação múltipla em vez de simples. 87 / 246 88 / 246
Fieiras Defiição ( em Casata) em Casata Uma ifra em asata é a oateação de L 2 ifras por bloos (desigados por estágios) ada uma om uma have idepedete. O texto laro é a etrada para o primeiro estágio, sedo a saída deste estágio a etrada do seguite. A saída do estágio L é a saída da ifra em asata. No aso mais simples, todos os estágios uma ifra em asata têm haves de omprimeto, e bloos de omprimeto. As ifras de ada estágio podem ser diferetes (ifra em asata geéria), ou serem todas a mesma (asata de ifras idêtias). Fieiras Defiição ( ) A eriptação múltipla é similar à asata de L ifras idêtias, mas os estágios podem ão ser idepedetes, e para um dado estágio podemos ter a fução de eriptação ou a sua orrespodete iversa D = 1. Dois asos importates de múltipla eriptação são a dupla e tripla eriptação. Texto Claro P K 1 K 2 M Defiição (Dupla ) Texto Cifrado C A dupla eriptação é defiida por (x) = K2 ( K1 (x)), aode deota uma ifra por bloos om have K. 89 / 246 90 / 246 Fieiras Texto Claro P K 1 K 3 K 2 A B (1) (2) (3) Texto Cifrado C Defiição (Tripla ) A tripla eriptação é defiida por (x) = (3) K 3 ( (2) K 2 ( (1) K 1 (x))), ode (j) deota ou, ou D K = 1. O aso (x) = K3 (D K2 ( K1 (x))), é usualmete desigado por -D- tripla eriptação. O sub-aso K 1 = K 3 é usualmete desigado por tripla eriptação de duas haves. Fieiras Na dupla eriptação é usual usar dois estágios idepedetes K 1 e K 2. Na tripla eriptação, de forma a poupar reursos o que se refere à gestão de haves, é usual usar haves depedetes dos estágios. A -D- tripla eriptação om K 1 = K 2 = K 3 é equivalete a uma eriptação simples. 91 / 246 92 / 246
Fieiras em m otraste ao modo de operação das ifras simples, os modos múltiplos são variates de eriptações múltiplas ostruídas por oateação de modos simples seleioados. Por exemplo, a ombiação de três s em modo de operação simples é desigado por -triplo-itero. -triplo-itero x 0 0 0 Fieiras em Uma alterativa é o modo desigado por -triplo-extero, em que temos a omposição de uma eriptação tripla om um modo de operação simples, ou seja uma apliação (extera) do modo de operação, após a apliação sequeial de três. x 0 K 1 riptar K 2 riptar K 3 riptar K 1 (1) K 2 (2) K 3 (3) 93 / 246 94 / 246 Fieiras em Com hardware espeífio (repliado), os modos múltiplos tais omo o -triplo-itero podem ser sequeiados ( pipelied ), permitido deste modo uma efiiêia próxima da eriptação simples, sedo por isso mais vatajoso que o -triplo-extero. Nota (Seguraça do modo -triplo-itero) Muitos dos modos múltiplos de operação são mais fraos que o orrespodete modo múltiplo (isto é, eriptação múltipla a fuioar omo uma só ifra para o modo de operação simples extero). m algus asos (por exemplo, --) ão são sigifiativamete mais fortes que uma eriptação simples. m partiular, sob algus tipos de ataques, o -triplo-itero é sigifiativamete mais frao do que o -triplo-extero. 95 / 246 Fieiras mbora pareça otra-ituitivo, é possível ostruir exemplos aode uma asata de ifras reduz a seguraça. No etato, em geral tem-se que: Fato (Seguraça de em Casata) Uma asata de (om haves idepedetes) ifras é pelo meos tão segura omo a primeira ifra ompoete. Uma asata de ifras de permutações (por exemplo ifras aditivas) é tão segura omo a ompoete mais segura. 96 / 246
Fieiras Uma forma de tetar aumetar a difiuldade de ripto-aálise de uma ifra é dada pela omposição de ifras. A omposição de ivoluções ão é eessariamete uma ivolução. No etato as ivoluções podem ser failmete ompostas de forma a se obter uma fução de erta forma mais ompliada e que é fáil de iverter. Por exemplo, se 1, 2,..., t são ivoluções, etão a iversa de = 1, 2,..., t é 1 = t, t 1,..., 1, isto é a omposição das ivoluções pela ordem iversa. Fieiras Produto As ifras simples de substituição e de trasposição ão são muito seguras. No etato a ombiação delas pode riar ifras bastate mais seguras do que as ifras de partida. Cifra Produto Sejam M = C = K o ojuto de todas as sequêias biárias de omprimeto 6. O úmero de elemetos de M é 2 6 = 64. Seja m = (m 1 m 2... m 6 ) e sejam: (1) (m) = m, aode K, (2) (m) = (m 4 m 5 m 6 m 1 m 2 m 3 ). A operação deotada é o ou-exlusivo (XOR). (1) é uma ifra de substituição poli-alfabétia, (2) é uma ifra de trasposição (sem have). A ifra produto é dada por (1) (2). Na termiologia iglesa desiga-se este tipo de ifras um roud. 97 / 246 98 / 246 Fieiras Defiição (Cofusão) Cofusão e Difusão Uma ifra é dita adiioar ofusão sempre que aumetar a omplexidade da relação etre a have e o texto ifrado. Uma ifra de substituição adiioa ofusão a uma ifra produto. Defiição (Difusão) A difusão refere-se ao espalhar dos bits uma mesagem de forma que qualquer redudâia o texto laro seja espalhada ao logo do texto ifrado. Uma ifra de trasposição adiioa difusão a uma ifra produto. Temos etão que uma ifra produto omposta de uma substituição e de uma trasposição adiioa ofusão e difusão ao proesso de eriptação. Fieiras Implemete a seguite ifra produto. xeríio Prátio 5 Cifra Produto Sejam M = C = K o ojuto de todas as sequêias biárias de elemetos om 16 bits de omprimeto (dois bytes ). (1) (m) = m, aode K, (2) (m) = (m 13 m 14 m 15 m 16 m 9 m 10 m 11 m 12 m 5 m 6 m 7 m 8 m 1 m 2 m 3 m 4 ). A ifra produto é dada por (1) ( (2) (m)). Preehimeto ão âmbiguo. Modo de operação. de uma have pelo utilizador. Iterfae trada/saída: fiheiros e liha de omado. Implemetação (ifrar/deifrar) em C (ou C++). 99 / 246 100 / 246