Criptografia e Segurança das Comunicações Cifras simétricas por locos Cifras por loco : /35 Cifras modernas () Para dificultar a quera do código, a chave deve ser o mais extensa possível. Tal critério esarra com a dificuldades Memorização Transmissão por via segura A moderna criptografia de chaves simétricas aseia-se na simplificação das chaves e no aumento da complexidade da cifra. xistem 2 aordagens: Bloco: cifrado um loco (série de elementos) de cada vez DS- Data ncryption Standard, aseada na rede de Feistel. AS- Advanced ncryption Standard, aseada na rede permutação e sustituição. Sequenciais: cifrado elemento a elemento (ex: RC4, A5/) Cifras por loco : 2/35
Cifras modernas (2) Vantagens das cifras de loco Maior dificuldade no ataque. Normas estaelecidas (NIST, ). Perda/alteração de its afecta apenas o loco (ou contrário das cifras sequenciais, que podem afectar a mensagem restante). Vantagens das cifras sequenciais Maior rapidez nas operações cifrar/decifrar. Maior facilidade na análise matemática. Usadas em cifras de sistemas de comunicações (ex: luetooth, GSM e 82.). Cifras por loco : 3/35 Cifras de loco () Definição: Numa cifra de loco, o texto a cifrar (tipicamente sequências de its) é partido em locos, todos do mesmo tamanho. A cifra é aplicada sucessivamente a cada loco. Se o texto não for de comprimento múltiplo do loco, os its que faltam no último loco são preenchidos de forma pré-determinada ( padding ). Conceptualmente, cifra por loco é uma sustituição num alfaeto gigantesco: num loco de n its há 2 n sustituições possiveis. Cifras por loco : 4/35
Cifras de loco (2) Operações de grupo: as cifras modernas de loco usam cominações de várias operações de grupos de its.. Caixa P: implementa uma permutação da entrada. () Permutação 5 5 A entrada 2345 é transposta para 4235 Cifras por loco : 5/35 Cifras de loco (3) (2) Permutação compressão (3) Permutação expansão 5 3 5 7 2. Rotações controladas: rotação circular de its, número de vezes determinados por valor u u >> Cifras por loco : 6/35
Cifras de loco (4) 3. Caixa S: implementa uma sustituição não-linear de n its de entrada por m its de saída. 4. Circuitos de Feistel: entrada de 2n its dividida em dois su-locos (esquerdo) e D (direito), que são permutados com um dos su-locos alterados. D ' F k D' = F(.k) D ' + D' D = F(.k) D' ' Nota: circuito de Feistel usado no DS, cifra de locos de 64 its com chaves de 56 its, extensivamente usada nos anos 7-9. Cifras por loco : 7/35 Cifras de loco (5) Prolema: decifrar locos demora tempo e é sujeita a falhas na transmissão dos criptogramas. Solução: prefixar mensagem com número de sequência e pós-fixar com checksum (por exemplo CRC).. Recolher número de sequência primeiro 2. Se for inválido, aandonar. 3. Verificar CRC. Se confirmar integridade da mensagem, decifrar então o criptograma. Mensagem Número de sequência CRC Cifras por loco : 8/35
AS () NIST ariu concurso em 97 para algoritmo de sustituição do 3DS, designado por AS- Advanced ncryption Standard. Foram usados como critérios de selecção:. Segurança: resistência à criptoanálise. 2. ficiência computacional e requisitos de memória. 3. Implementação: simplicidade no algoritmo, apropriado para implementação em SW e HW. Sumetidas 5 propostas, seleccionados 5 finalistas Rijndael (Rijmen e Daemen da U Leuven/Bélgica) - vencedor Serpent (de investigadores de U,D e Israel) Twofish (de Counterpane Las). RC6 (RSA) MARS (IBM) Cifras por loco : 9/35 AS (2) Desempate Rijndael/Serpent feito com ase na maior eficiência da implementação. Rijndael é um algoritmo de locos de 28 its. O algoritmo ase pode ser facilmente adaptado para múltiplo de 32 its (exemplos: 92 e 256 its). Formado por rondas. Facilmente implementado em processadores de 8 its, para smart cards. xemplos conhecidos de utilização da cifra AS: SSH, para acesso a terminais remotos. Sensor Zigee. Cifra WPA2 para Wi-Fi. Cifras por loco : /35
AS (3) a) Cifra: Cifra calculada por rondas Rondas da primeira à penúltima composta por quatro etapas ( permutação e 3 sustituições). ) Sustituição (caixa S). 2) Deslocamento linhas: permutação simples. 3) Mistura: aritmética sore GF(2 8 ). 4) Adição de chave. Texto pleno Adição chave Sustituição its Deslocamento Mistura Adição chave Sustituição its Deslocamento Adição chave Chave w[,3] Chave expandida w[4,7] w[4,43] Texto cifrado Cifras por loco : /35 AS (4) Texto colocado no estado corrente (State) - matrix 4 linhas por N colunas (N=tamanho loco/32). Para o AS, N=4 e o texto é espalhado ao longo das colunas. stado 8 its 2 5 S, = S, =4 S,2 =8 S,3 =2 S, = S, =5 S,2 =9 S,3 =3 S 2, =2 S 2, =6 S 2,2 = S 2,3 =4 28 its S 3, =3 S 3, =7 S 3,2 = S 3,3 =5 Cifras por loco : 2/35
AS (5) Chave expandida na matrix Roundey de 4 linhas por Nk colunas (Nk=tamanho chave/32). Nota: No AS, loco e chave de 28 its. Logo, N=Nk=4. Numero de rondas dada pela seguida taela: N=4 N=6 N=8 Nk=4 2 4 AS 28 its tem rondas Nk=6 2 2 4 Nk=8 4 4 4 Cifras por loco : 3/35 AS (6) ) Sustituição de its Cada Byte do estado sustituído pelo Byte indexado pela linha (4-its esquerdos) e coluna (4-its direitos). x: Byte 4A sustituído pelo valor S-ox(4,A)=D6 Nota: Informação extra disponível em Design of Rinjdael, Joan Daemen and Vincent Rijmen, Springer-Verlag Cifras por loco : 4/35
AS (7) Construção das caixas-s As caixas-s são definidas através de transformações em GF(2 8 ). A construção foi desenhada para o AS ser resistente aos ataques conhecidos. Curiosidade, não faz parte da avaliação. Inicializar as células por linhas com a célula mais à esquerda contendo no nile superior o número de linha. Linha preenchida com {},{},...{F}. Linha preenchida com {},{},...{F}. 2. Sustituir cada célula não nula pelo seu inverso multiplicativo em GF(2 8 ). Cifras por loco : 5/35 AS (8) 3. A cada Byte ( 7 6... ) aplicar a transformação i = i (i+4)mod 8 (i+5)mod 8 (i+6)mod 8 (i+7)mod 8 c i onde c i é o it i de 63: (c 7 c 6... c ) = () Curiosidade, não faz parte da avaliação Cifras por loco : 6/35 7 6 5 4 3 2 7 6 5 4 3 2
AS (9) 2) Deslocamento de linhas Deslocamento circular esquerdo em cada linha i de i posições. ste passo implementa uma permutação. Cifras por loco : 7/35 AS () 3) Mistura Cada coluna processada separadamente. Cada Byte sustituído por valor dependente de todos os 4 Bytes da coluna, prefazendo multiplicação em GF(2 8 ). Cifras por loco : 8/35
AS () 4) Adição de chave XOR em cada coluna a uma sequência de 4 Bytes da chave. m cada ronda a sequência avança 4 posições. Cifras por loco : 9/35 AS (2) 5) xpansão da chave O tamanho da chave a ser usada nas rondas é igual ao produto do comprimento do loco pelo número de rondas mais um. No AS, a chave de 28 its é expandida para uma taela de 44 palavras de 32 its.. Copiadas as 4 palavras iniciais da chave para a chave estendida 2. Ciclo de 4 palavras de cada vez, com w[i] dependente de w[i-] e w[i-4]. Se w[i] não for múltiplo de 4, aplicar XOR Se w[i] for múltiplo de 4, para w[i-] rodar + S-ox + XOR de w[i-4]. Cifras por loco : 2/35
AS (3) Cifras por loco : 2/35 AS (4) ) Decifra: Aplicar etapas na sequência inversa. Inverter operação em cada etapa. Sequência da chave expandida é igualmente invertida de w[4,43] até w[,3]. Cifras por loco : 22/35
AS (5) ) Ataques São conhecidos ataques a AS até 7 rondas, o que levanta preocupações pela pequena margem de conforto. Uma máquina que verifica 8 chaves/seg, demora 3 anos a varrer o espaço de chaves de 28 its. Nota: idade estimada do universo é de.3x anos. Presentemente (2), o espaço de chaves seguro ronda os 8 its. Admitindo a lei de Moore (poder computacional duplica em cada 8 meses) continuar válida em 26, nessa altura as máquinas são 2 33 mais potentes: sendo possível o ataque por força ruta, chaves de 8+33=3 its, em 26 AS-28 deve deixar de ser seguro. AS-92 e AS-256 deve continuar a ser suficiente em 26. Cifras por loco : 23/35 Modos criptográficos () [Definição] O modo criptográfico comina de formas distintas a chave e os textos (plano ou criptograma) para evitar o prolema de, numa cifra de locos, o mesmo texto plano com a mesma chave produzem o mesmo criptograma. Os ojectivos dos modos criptográficos são a confidencialidade e a integridade das mensagens. São conhecidos vários modos criptográficos: A. CB - lectronic Codeook B. CBC - Cipher Block Chaining C. CFB - Cipher Feedack D. OFB - Output Feedack. CTR - Counter Cifras por loco : 24/35
Modos criptográficos (2) A. CB: locos cifrados em paralelo. Vantagem: simples de operar, cifra/decifra podem ser paralelizadas. Inconveniente: fragmentos de texto plano repetidos (ex: ficheiros gráficos, caeçalhos de mail) resultam em fragmentos iguais no criptograma. Desaconselhado em protocolos criptográficos. Ci = Pi = D k k ( Pi ) ( C ) i missor P C D Receptor P P 2 C D P 2 Cifras por loco : 25/35 Modos criptográficos (3) Ataque por repetição de loco. Intruso intercepta mensagens cifradas de transferências entre os ancos A e B. 2. Intruso transfere várias vezes quantias fixas de amigos com contas em A (dando antecipadamente o $), para a sua conta no anco B. Assim consegue isolar a ordem cifrada de depósito para a sua conta no anco B. 3. Num dia movimentado, adiciona uma ordem cifrada de depósito para a sua conta no anco B em todas as transferências. Ao fim do dia levanta o seu saldo e desaparece. Contra-ataque: alterar frequentemente as chaves, ou usar encadeamento ( chaining ) com auxílio da criptograma anterior. Cifras por loco : 26/35
Modos criptográficos (4) B. CBC : função cifra exercida sore soma do criptograma anterior e texto plano. Ci = k ( Pi Ci ), C = IV Pi = Dk ( Ci ) Ci missor Receptor IV IV P P 2 C C 2 D D P P 2 Cifras por loco : 27/35 Modos criptográficos (5) IV-vector de inicialização é aleatório, pode ser púlico (não há prolemas, uma vez que os IV dos locos seguintes tamém são púlicos). O CBC representa uma extensão das cifras sequenciais. Vantagem: a decifra pode ser paralelizada. Inconvenientes: O modo CBC manifesta prolema do erro na transmissão de um it poder afectar todo o restante texto. A cifra é sequencial, a impossiilidade de paralelização da cifra não permite melhorar o desempenho. Nota: modo recomendado em Bruce Schneier; Applied Cryptography- Protocols, Algorithms and Source Code in C; John Wiley, 996 Cifras por loco : 28/35
Modos criptográficos (6) C. CFB função cifra exercida apenas sore criptograma anterior, o texto plano é somado depois. C i = Pi = D k k ( C ( C i i ) Pi, ) C i C IV = IV missor P P 2 C C 2 IV Receptor D D P P 2 Cifras por loco : 29/35 Modos criptográficos (7) Vantagens e inconvenientes do CBC tamém se manifestam no CFB.. Vantagem: a decifra pode ser paralelizada. Inconvenientes: O modo CFB manifesta prolema do erro na transmissão de um it poder afectar todo o restante texto. A cifra é sequencial: a impossiilidade de paralelização da cifra não permite melhorar o desempenho. O CFB revela vantagem extra de permitir pipeline (cada ronda depende da cifra da ronda anterior), útil para aplicações que exigem latência reduzida (ex: vídeo). Cifras por loco : 3/35
Modos criptográficos (8) D. OFB : função cifra é aplicada apenas ao resultado da anterior aplicação. Ci = Pi Oi, O = IV P = = ( ) i Ci Oi Oi k Oi Receptor missor P IV IV C P 2 C 2 P P 2 Cifras por loco : 3/35 Modos criptográficos (9) IV-vector de inicialização é aleatório, pode ser púlico. Devido à simetria da operação XOR, as funções de cifra e decifra são iguais. O OFB admite que os locos de texto sejam de comprimento menor que a chave. Vantagens: O modo OFB não manifesta prolema do erro na transmissão de its. Cifras por loco : 32/35
Modos criptográficos (). CTR : cifra exercida sore uma sequência não repetida (ex: nounce mais contador) e somada ao texto. Vantagens: Não exige enchimento. Permite paralelização. Nota: modo adoptado pelo WPA2 (comunicações de sistemas sem fios, norma I 82.i com cifra por AS). n+ctr n+ctr+ missor P P 2 C C 2 Receptor D D n+ctr P n+ctr+ P 2 Cifras por loco : 33/35 nchimento de locos () Algoritmos de cifra em loco em modos CB ou CBC exigem entrada ser múltipla da dimensão do loco. xistem diversas técnicas de enchimento ( padding ) de locos. Nos exemplos consideramos um loco para DS de 8B (64 its) terminado por fim. = 66h69h6dh2eh.. Todos os caracteres iguais a espaço. x: 66 69 6d 2e 2 2 2 2 2. Todos os caracteres iguais a NULL x: 66 69 6d 2e Cifras por loco : 34/35
nchimento de locos (2) 3. Caracteres NULL, excepto último que indica o número de caracteres de enchimento. x: 66 69 6d 2e 4 Para o modo CB, usar caracteres aleatórios em vez de NULL x: 66 69 6d 2e 58 B3 98 4 4. Todos os caracteres iguais ao número de caracteres de enchimento (PCS#5 e RFC263). x: 66 69 6d 2e 4 4 4 4 5. Primeiro caractere x8, restantes iguais a NULL. x: 66 69 6d 2e 8 Cifras por loco : 35/35