Criptografia SimétricaCriptografia Simétrica
Prof. Eduardo BastosProf. Eduardo Bastos
Terminologia BásicaTerminologia Básica
plaintext (texto claro) plaintext (texto claro) – mensagem original– mensagem original
ciphertext (texto cifrado) ciphertext (texto cifrado) – mensagem codificada– mensagem codificada
cipher (cifracipher (cifra) ) – algoritmo para transformar plaintext to – algoritmo para transformar plaintext to ciphertext ciphertext
key (chave) key (chave) - informação usada no cifrador conhecida - informação usada no cifrador conhecida apenas pelo emissor/receptor apenas pelo emissor/receptor
encipher (criptografar) encipher (criptografar) – converter plaintext em – converter plaintext em ciphertextciphertext
decipher (descriptografar) decipher (descriptografar) – converter ciphertext em – converter ciphertext em plaintextplaintext
Terminologia BásicaTerminologia Básica
criptografiacriptografia- estudo dos princípios e métodos de - estudo dos princípios e métodos de criptografiacriptografia
criptoanálisecriptoanálise ( (codebreakingcodebreaking)) – estudo do princípios e – estudo do princípios e métodos para decifrar textos cifrados sem o métodos para decifrar textos cifrados sem o conhecimento da chaveconhecimento da chave
criptologiacriptologia- campo do conhecimento que envolve tanto - campo do conhecimento que envolve tanto a criptografia quanto a criptoanálisea criptografia quanto a criptoanálise
CriptologiaCriptologia
CriptologiaCriptologia
CriptografiaCriptografia
Sistema criptográfico caracterizado por:Sistema criptográfico caracterizado por: tipo de operações usadastipo de operações usadas
• substituição / transposição/ produtosubstituição / transposição/ produto
número de chaves utilizadasnúmero de chaves utilizadas• chave única, simétrica ou privada / duas chaves, chave única, simétrica ou privada / duas chaves,
assimétrica ou públicaassimétrica ou pública
modo como o texto claro é processadomodo como o texto claro é processado• bloco / fluxo (bloco / fluxo (stream)stream)
CriptoanáliseCriptoanálise
O objetivo é recuperar a chave e não a mensagem O objetivo é recuperar a chave e não a mensagem original original
Abordagens gerais:Abordagens gerais: Ataque criptoanalíticoAtaque criptoanalítico
• Baseia-se na natureza do algoritmo mais o conhecimento das Baseia-se na natureza do algoritmo mais o conhecimento das características gerais do texto claro e amostras plain-ciphercaracterísticas gerais do texto claro e amostras plain-cipher
Ataque por força brutaAtaque por força bruta• Teste de cada chave em um texto cifrado até que uma tradução intelegível Teste de cada chave em um texto cifrado até que uma tradução intelegível
seja obtida.seja obtida.
CriptossistemaCriptossistema
Criptografia SimétricaCriptografia Simétrica
Ou convencional / chave privada / chave única.Ou convencional / chave privada / chave única.
Emissor e receptor compartilham uma chave comum.Emissor e receptor compartilham uma chave comum.
Todos os algoritmos clássicos de criptografia são de Todos os algoritmos clássicos de criptografia são de chave privada.chave privada.
Único tipo antes da invenção dos algoritmos de chave Único tipo antes da invenção dos algoritmos de chave pública na década de 70.pública na década de 70.
Técnica ainda muito utilizada.Técnica ainda muito utilizada.
Modelo de Criptografia SimétricaModelo de Criptografia Simétrica
RequisitosRequisitos
Dois requisitos para uma criptografia Dois requisitos para uma criptografia simétrica segura:simétrica segura: algoritmo de criptografia fortealgoritmo de criptografia forte chave secreta conhecida apenas pelo emissor e chave secreta conhecida apenas pelo emissor e
receptorreceptor
MatematicamenteMatematicamente::Y Y = E= EKK((XX))
X X = D= DKK((YY)) Assume-se que E é conhecidoAssume-se que E é conhecido Canal seguro para a distribuição da chaveCanal seguro para a distribuição da chave
Ataques CriptoanalíticosAtaques Criptoanalíticos
Mais definições…Mais definições… Incondicionalmente seguroIncondicionalmente seguro
Não importa quanto poder computacional ou tempo Não importa quanto poder computacional ou tempo disponíveis, a cifra não pode ser quebrada disponíveis, a cifra não pode ser quebrada
Computacionalmente seguroComputacionalmente seguro Custo para quebrar > info codificadaCusto para quebrar > info codificada Tempo para quebrar > vida útil da infoTempo para quebrar > vida útil da info
Ataque por força brutaAtaque por força bruta
sempre possível tentar cada chavesempre possível tentar cada chave maioria dos ataques, proporcional ao tamanho da chavemaioria dos ataques, proporcional ao tamanho da chave assume um texto claro conhecido ou reconhecido (não assume um texto claro conhecido ou reconhecido (não
pode ser criptografado, por exemplo) pode ser criptografado, por exemplo)
Cifras de substituição clássicasCifras de substituição clássicas
Onde letras do texto original (Onde letras do texto original (plaintextplaintext) são ) são trocadas por outras letras ou por outros trocadas por outras letras ou por outros símbolossímbolos
Se o plaintext é visto como uma seqüência de Se o plaintext é visto como uma seqüência de bits, a substituição envolve trocar cada padrão bits, a substituição envolve trocar cada padrão de bits de de bits de plaintextplaintext por padrões de bit por padrões de bit ciphertextciphertext
Cifras de substituição clássicasCifras de substituição clássicas
Cifra de CésarCifra de César Cifra PlayfairCifra Playfair Cifra de HillCifra de Hill Cifra de VigenèreCifra de Vigenère One-Time PadOne-Time Pad
Cifras de substituição clássicasCifras de substituição clássicas
Cifra de CésarCifra de César Cifra PlayfairCifra Playfair Cifra de HillCifra de Hill Cifra de VigenèreCifra de Vigenère One-Time PadOne-Time Pad
Cifra de CésarCifra de César
cifra de substituição mais antiga conhecidacifra de substituição mais antiga conhecida idealizada por Julius Caesar idealizada por Julius Caesar utilizada para fins militaresutilizada para fins militares troca cada letra pela 3a. letra subseqüentetroca cada letra pela 3a. letra subseqüente
Exemplo:Exemplo:FESTA CONFIRMADA NO PROXIMO SABADO A NOITEFESTA CONFIRMADA NO PROXIMO SABADO A NOITEIHVWD FRQILUPDGD QR SURALPR VDEDGR D QRLWHIHVWD FRQILUPDGD QR SURALPR VDEDGR D QRLWH
Cifra de CésarCifra de César
pode ser definida como:pode ser definida como:a b c d e f g h I j k l m n o p q r s t u w x y za b c d e f g h I j k l m n o p q r s t u w x y z
D E F G H I J K L M N O P Q R S T U V W X Y D E F G H I J K L M N O P Q R S T U V W X Y A B CA B C
matematicamente, associar um número a matematicamente, associar um número a cada letracada letraa b c d e f g h i j k l m n o p q r s t u v w x y za b c d e f g h i j k l m n o p q r s t u v w x y z
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 250 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
e definir a cifra de césar como:e definir a cifra de césar como:c c = E= Ekk((pp) = () = (p p + + kk) mod (26); ) mod (26);
p p = D= Dkk(c) = (c – (c) = (c – kk) mod (26); ) mod (26);
Cifra de CésarCifra de César
Cifra de CésarCifra de César
Gere o Gere o cyphertextcyphertext das frases abaixo das frases abaixo utilizando o cifrador de Cesar :utilizando o cifrador de Cesar :
reuniao de formatura pela manha reuniao de formatura pela manha (k = 3)(k = 3) encontre-me no estacionamento encontre-me no estacionamento (k = 3)(k = 3) cifra de cesar cifra de cesar ((k = 18)k = 18) criptografia criptografia (k = 20)(k = 20) reuniao no bar reuniao no bar (k = 7)(k = 7)
Criptoanálise da Cifra de CesarCriptoanálise da Cifra de Cesar
Possui somente 26 cifrasPossui somente 26 cifras A pode ser mapeado para A,B,..Z A pode ser mapeado para A,B,..Z
Podemos simplesmente testar todas as chaves Podemos simplesmente testar todas as chaves (ataque de força bruta) e reconhecer o (ataque de força bruta) e reconhecer o plaintextplaintext. . (díficil de estiver criptografado)(díficil de estiver criptografado)
Criptoanálise da Cifra de CesarCriptoanálise da Cifra de Cesar
CARACTERÍSTICASCARACTERÍSTICAS
Algoritmo de criptografia e Algoritmo de criptografia e descriptografia são conhecidosdescriptografia são conhecidos
Existem apenas 25 chaves a Existem apenas 25 chaves a serem experimentadasserem experimentadas
A linguagem do A linguagem do plaintextplaintext é é conhecida e facilmente conhecida e facilmente reconhecidareconhecida
meet me after the toga party
Cifra de CésarCifra de César
Utilize a planilha Excel do site da cadeira para Utilize a planilha Excel do site da cadeira para quebrar por força bruta as seguintes mensagens quebrar por força bruta as seguintes mensagens cifradas em César:cifradas em César:
• TXFQ ZSTX IJXJ LZWF SHFJ RXNX YJRF XBJG XFTR TXFQ ZSTX IJXJ LZWF SHFJ RXNX YJRF XBJG XFTR ZNYT NSYJ QNLJ SYJXZNYT NSYJ QNLJ SYJX
• MLMD MUBQ ZIZV WBIA JWIAMLMD MUBQ ZIZV WBIA JWIA
Utilize a planilha Excel do site da cadeira como Utilize a planilha Excel do site da cadeira como base para construir um cifrador de Cesar. A planilha base para construir um cifrador de Cesar. A planilha deverá receber o valor de deverá receber o valor de k k e o e o plaintextplaintext, gerando o , gerando o ciphertextciphertext. .
Cifras MonoalfabéticasCifras Monoalfabéticas
Ao invés de simplesmente utilizar ‘rotação’, as letras Ao invés de simplesmente utilizar ‘rotação’, as letras poderiam ser misturadas de modo aleatóro.poderiam ser misturadas de modo aleatóro.
Cada letra do plaintext é mapeada para uma letra Cada letra do plaintext é mapeada para uma letra aleatória definida dentro de uma permutação dos 26 aleatória definida dentro de uma permutação dos 26 caracteres. caracteres.
Chave possui tamanho de 26 caracteresChave possui tamanho de 26 caracteres
Plain: abcdefghijklmnopqrstuvwxyzPlain: abcdefghijklmnopqrstuvwxyzCipher: DKVQFIBJWPESCXHTMYAUOLRGZNCipher: DKVQFIBJWPESCXHTMYAUOLRGZN
Plaintext: ifwewishtoreplacelettersPlaintext: ifwewishtoreplacelettersCiphertext: WIRFRWAJUHYFTSDVFSFUUFYA Ciphertext: WIRFRWAJUHYFTSDVFSFUUFYA
Segurança das cifras Segurança das cifras monoalfabéticasmonoalfabéticas
total de 26! = 4 x 1026 chavestotal de 26! = 4 x 1026 chaves
com tantas chaves, a cifra pode ser vista como com tantas chaves, a cifra pode ser vista como segura.segura.
… … mas está !!!ERRADO!!! mas está !!!ERRADO!!!
O problema está na característica da linguagem.O problema está na característica da linguagem.
Criptoanálise e redundância nas Criptoanálise e redundância nas linguagenslinguagens
Linguagem humana é redundante Linguagem humana é redundante
Letras não são iguamente utilizadasLetras não são iguamente utilizadas
Existem tabelas para freqüências únicas, duplas Existem tabelas para freqüências únicas, duplas e triplas para várias linguagense triplas para várias linguagens
http://www.numaboa.com/criptografia/criptoanalise/310-frequencia-portugues
Freqüência - Língua InglesaFreqüência - Língua Inglesa
Criptoanálise - DesafioCriptoanálise - Desafio
mp oqpwjnp tbabcp jqfnpt fwokpqbq mp oqpwjnp tbabcp jqfnpt fwokpqbq bkhvnbt uvkmfqbajkjcbcft cf bkhvnbt uvkmfqbajkjcbcft cf tfhvqbmdbtfhvqbmdb
http://www.numaboa.com/criptografia/criptoanalise/310-frequencia-portugues
Cifra de PlayfairCifra de Playfair
Nem mesmo um grande número de Nem mesmo um grande número de chaves em uma cifra monoalfabética chaves em uma cifra monoalfabética oferece segurança oferece segurança
A cifra Playfair criptografa mais de uma A cifra Playfair criptografa mais de uma letra ao mesmo tempoletra ao mesmo tempo
Matriz de chavesMatriz de chaves
Uma matriz 5X5 de letras baseada em uma Uma matriz 5X5 de letras baseada em uma palavra chave palavra chave
Colocar a palavra-chave(sem duplicação)Colocar a palavra-chave(sem duplicação) Preencher o resto da matriz com outras letrasPreencher o resto da matriz com outras letras
MM OO NN AA RR
CC HH YY BB DD
EE FF GG I/JI/J KK
LL PP QQ SS TT
UU VV WW XX ZZ
CriptografandoCriptografando
Texto criptografado duas letras por vez:Texto criptografado duas letras por vez:1.1. Se um par é uma letra repetida, insira ‘X’Se um par é uma letra repetida, insira ‘X’
2.2. Se ambas as letras estão na mesma linha, troque Se ambas as letras estão na mesma linha, troque cada uma pela letra da direita (fila circular) cada uma pela letra da direita (fila circular)
3.3. Se ambas as letras estão na mesma coluna, troque Se ambas as letras estão na mesma coluna, troque cada letra pela letra abaixo dela (fila circular)cada letra pela letra abaixo dela (fila circular)
4.4. Se não, cada letra é trocada pela letra na mesma Se não, cada letra é trocada pela letra na mesma linha e coluna da outra letra do par. linha e coluna da outra letra do par.
CriptografandoCriptografando
MM OO NN AA RR
CC HH YY BB DD
EE FF GG I/JI/J KK
LL PP QQ SS TT
UU VV WW XX ZZ
EDUARDOBASTOS
KCXMDKAHBXPRXA
Segurança da cifra PlayfairSegurança da cifra Playfair
Segurança maior do que os monoalfabéticos (26 Segurança maior do que os monoalfabéticos (26 x 26 = 676 digramas)x 26 = 676 digramas)
Necessitará de 676 entradas na tabela de Necessitará de 676 entradas na tabela de freqüência para analisar (versus 26 para uma freqüência para analisar (versus 26 para uma cifra monoalfabética) cifra monoalfabética)
Utilizada na 1a. Guerra MundialUtilizada na 1a. Guerra Mundial eg. by US & British military in WW1eg. by US & British military in WW1
Pode ser quebrada, pois ainda mantém a Pode ser quebrada, pois ainda mantém a estrutura do estrutura do plaintextplaintext
Cifras de TransposiçãoCifras de Transposição
Também chamadas de Também chamadas de cifras de permutaçãocifras de permutação
Escondem a mensagem modificando a ordem Escondem a mensagem modificando a ordem das letrasdas letras
Sem alteração das letras reais utilizadasSem alteração das letras reais utilizadas
Pode ser reconhecida porque mantém a mesma Pode ser reconhecida porque mantém a mesma distribuição de freqüência do texto original. distribuição de freqüência do texto original.
Cifras de transposição (Cifras de transposição (rail fence)rail fence)
Escrever as letras da mensagem na diagonal Escrever as letras da mensagem na diagonal em um número de linhas e lê-la linha a linha. em um número de linhas e lê-la linha a linha.
Ex (profundidade 2):Ex (profundidade 2):m e m a t r h t g p r ym e m a t r h t g p r y e t e f e t e o a a te t e f e t e o a a t
ciphertextciphertextMEMATRHTGPRYETEFETEOAATMEMATRHTGPRYETEFETEOAAT
Mais complexidade…Mais complexidade…
Transposição mais complexaTransposição mais complexa Escrever as letras da mensagem em linhas em Escrever as letras da mensagem em linhas em
um específico número de colunas um específico número de colunas Reordenar as colunas de acordo com a chaveReordenar as colunas de acordo com a chave Mais de um estágio pode ser aplicadoMais de um estágio pode ser aplicado
Key: 4 3 1 2 5 6 7Key: 4 3 1 2 5 6 7Plaintext: a t t a c k pPlaintext: a t t a c k p o s t p o n eo s t p o n e d u n t i l td u n t i l t w o a m x y zw o a m x y zCiphertext: TTNAAPTMTSUOAODWCOIXKNLYPETZCiphertext: TTNAAPTMTSUOAODWCOIXKNLYPETZ
Cifras de ProdutoCifras de Produto
Cifras que utilizam substituições ou Cifras que utilizam substituições ou transposições não são seguras em função das transposições não são seguras em função das características da linguagemcaracterísticas da linguagem
Uso de várias cifras em seqüência tornam a Uso de várias cifras em seqüência tornam a tarefa mais complexa, mas: tarefa mais complexa, mas:
Duas substituições -> substituição mais complexa Duas substituições -> substituição mais complexa Duas transposições -> transposição mais complexa Duas transposições -> transposição mais complexa Substituição + Transposição -> Substituição + Transposição -> Cifra de ProdutoCifra de Produto
‘‘pulo’ para cifradores mais modernos e pulo’ para cifradores mais modernos e complexos (ex: DES)complexos (ex: DES)
Máquina de RotorMáquina de Rotor
EsteganografiaEsteganografia
uma alternativa a criptografiauma alternativa a criptografia
esconde a existência da mensagemesconde a existência da mensagem Utiliza somente um sub-conjunto das letras/palavras Utiliza somente um sub-conjunto das letras/palavras
em uma mensagem maior marcada de algum modoem uma mensagem maior marcada de algum modo Utiliza o LSB de um gráfico ou de um arquivo de somUtiliza o LSB de um gráfico ou de um arquivo de som
desvantagemdesvantagem Alto overhead para esconder poucos bits.Alto overhead para esconder poucos bits.
Cifradores ModernosCifradores ModernosDES/3DESDES/3DES
Data Encryption Standard (DES)Data Encryption Standard (DES)
US standardUS standard 64 bit plain text blocks64 bit plain text blocks 56 bit key56 bit key broken in 1998 by Electronic Frontier broken in 1998 by Electronic Frontier
FoundationFoundation special purpose US$250,000 machinespecial purpose US$250,000 machine with detailed published descriptionwith detailed published description less than three daysless than three days DES now worthlessDES now worthless
DES DES
DES DES
Cifradores Modernos Cifradores Modernos AESAES
Advanced Encryption Advanced Encryption StandardStandard
NIST issued call for proposals for an Advanced NIST issued call for proposals for an Advanced Encryption Standard (AES) in 1997Encryption Standard (AES) in 1997 security strength equal to or better than 3DESsecurity strength equal to or better than 3DES significantly improved efficiencysignificantly improved efficiency symmetric block ciphersymmetric block cipher with with block length 128 bitsblock length 128 bits key lengths 128, 192, and 256 bitskey lengths 128, 192, and 256 bits evaluation include security, computational efficiency, evaluation include security, computational efficiency,
memory requirements, hardware and software memory requirements, hardware and software suitability, and flexibilitysuitability, and flexibility
AESAES issued as FIPS 197 in 2001issued as FIPS 197 in 2001
AES DescriptionAES Description
assume key length 128 bitsassume key length 128 bits input a 128-bit blockinput a 128-bit block ( (square matrix of bytes)square matrix of bytes)
copied into state arraycopied into state array, m, modified at each stageodified at each stage after final stage, state copied to outputafter final stage, state copied to output
128-bit key (square matrix of bytes)128-bit key (square matrix of bytes) expanded into array of 44 32-bit key schedule wordsexpanded into array of 44 32-bit key schedule words
byte orderingbyte ordering by column by column 1st 4 bytes of1st 4 bytes of 128-bit input occupy 1st column128-bit input occupy 1st column 1st 4 bytes of expanded key1st 4 bytes of expanded key occupy 1st columnoccupy 1st column
AES AES Encryption Encryption
and and DecryptionDecryption
AES Encryption RoundAES Encryption Round
AES AES
Demonstração applet Java AESDemonstração applet Java AES