Introdução a Criptografia


Natanael Fonseca
Arquiteto de Software




                                        1
Ementa
1.    Princípios básicos da Segurança da Informação
2.    Introdução a Criptografia;
      –   Criptografia;
      –   Criptograma;
      –   Ciframento e Desiframento;
      –   CriptoAnálise;
      –   Criptologia;
      –   Anagrama;
      –   Esteganografia.
3.    Um pouco de história;
      –   ATBASH;
      –   Cítala Espartana;
      –   Ciframento de César;
      –   Cifrário de Vigenére;
4.    Criptografia de chave simétrica;
5.    Criptografia de chave assimétrica;
6.    Diffie-Hellman;
7.    Modelo Hibrido;
8.    SSL;
9.    Assinatura Digital;
10.   Funções de Hash;



                                                      2
Princípios Básicos da Segurança da
              Informação
• Confidencialidade:
   – Significa proteger informações contra sua revelação para alguém
     não autorizado.
• Autenticidade:
   – Está associado com identificação correta de um usuário ou
     computador.
• Integridade:
   – Consiste em proteger a informação contra modificação sem a
     permissão explícita do proprietário daquela informação.
• Disponibilidade:
   – Consiste na proteção dos serviços prestados pelo sistema de
     forma que eles não sejam degradados ou se tornem
     indisponíveis sem autorização

                                                                   3
Criptografia

Do grego, Kryptós: “escondido, oculto” e Graphein: “escrita”. È a arte
ou ciência de escrever mensagens ocultas ou codificadas, ou seja,
consiste em técnicas que procuram tornar possível a comunicação
secreta entre dois agentes, sobre um canal aberto.




                                                                     4
Criptograma
• É um texto cifrado que obedece a um código e a uma lógica
  pré-determinados para decifrar a mensagem. O criptograma
  pode ser montado envolvendo números, letras, números e
  letras e símbolos gráficos.




                                                              5
Ciframento e Deciframento
• Cifrar uma mensagem, consiste em aplicar uma técnica de
  criptografia para obter um criptograma a partir de um
  mensagem.

• Decifrar uma mensagem, consiste em aplicar uma técnica de
  criptografia para obter a mensagem original contida em um
  criptograma.




                                                          6
CriptoAnálise
A criptoanálise é a arte de tentar descobrir o texto cifrado
e/ou a lógica utilizada em sua encriptação (chave).
As pessoas que participam desse esforço são denominadas
criptoanalistas. Da fusão da criptografia com a
criptoanálise, forma-se a criptologia.



       http://www.cryptool.org/en/jcryptool




                                                         7
Criptologia

• É a disciplina científica que reúne e estuda os conhecimentos
  (matemáticos, computacionais, psicológicos, filológicos, etc.) e
  técnicas necessários à criptoanálise (solução de criptogramas) e
  à criptografia (escrita codificada).




                                                                8
Anagrama
• (do grego ana = "voltar" ou "repetir" + graphein = "escrever")
  é uma espécie de jogo de palavras, resultando do rearranjo
  das letras de uma palavra ou frase para produzir outras
  palavras, utilizando todas as letras originais exatamente uma
  vez. Um exemplo conhecido é o nome da personagem
  Iracema, claro anagrama de América, no romance de José de
  Alencar.




                                                               9
Esteganografia

Do grego: ("escrita escondida"). É o estudo e uso das
técnicas para ocultar a existência de uma mensagem
dentro de outra. Em outras palavras, esteganografia é o
ramo particular da criptologia que consiste em fazer
com que uma forma escrita seja camuflada em outra a
fim de mascarar o seu verdadeiro sentido.



                                                      10
Técnicas de Esteganografia

•   Ruído;
•   Espalhando a Informação;
•   Ordenação;
•   Dividindo a Informação;




                                     11
Criptografia e Esteganografia


Nunca confundir, Pois são conceitos diferentes !

“Enquanto a primeira oculta o significado, a
segunda oculta a existência da mensagem.”



                                                   12
Um pouco de História
Ao que se tem conhecimento, as técnicas de
criptografia mais antigas, foram usadas para
construir:

        »   ATBASH
        »   Cítala Espartana;
        »   Ciframento de César;
        »   Substituição MonoAlfabética;
        »   Cifrário de Vigenére;
        »   Dentre outros..............muitos outros.........


                                                                13
ATBASH
Na Bíblia, o livro de Jeremias usa um código extremamente simples do
alfabeto hebreu para a história de Babel: a primeira letra do alfabeto hebreu
(Aleph) é trocada pela última (Taw), a segunda letra (Beth) e trocada pela
penúltima (Shin) e assim sucessivamente. Destas quatro letras deriva o
nome da cifra: Aleph Taw Beth SHin - ATBASH. l Aplicando o sistema do
Atbash ao alfabeto latino obtemos a seguinte tabela de substituição:


  A     B     C    D     E     F    G     H    I     J     K    L     M
  Z     Y     X    W     V     U    T     S    R     Q     P    O     N




                                                                           14
Cítala Espartana
Uma forma de transposição utiliza o primeiro dispositivo de criptografia
militar conhecido, a cítala espartana, que remonta ao séc. V a.C. O cítala
consiste num bastão no qual é enrolada uma tira de couro ou pergaminho,
como mostrado na figura abaixo.

O remetente escreve a mensagem ao longo do bastão e depois desenrola
a tira, a qual então se converteu numa seqüência de letras sem sentido. O
mensageiro usa a tira como cinto, com as letras voltadas para dentro.

O destinatário, ao receber o "cinto", enrola-o no seu bastão, cujo diâmetro
é igual ao do bastão do remetente. Desta forma, pode ler a mensagem.




                                                                         15
Ciframento de César
• Apesar da sua simplicidade (ou exatamente devido a ela), esta cifra foi
  utilizada pelos oficiais sulistas na Guerra de Secessão americana e pelo
  exército russo em 1915.
•
  A cifra ROT13, que surgiu em 1984 na USENET, baseia-se numa
  substituição na posição 13 (A por N, B por O, etc).
•
  Com o uso de dois discos concêntricos contendo todas as letras do
  alfabeto, a substituição se torna extremamente simples. Estes discos,
  inclusive, já foram utilizados como brinquedo que fazia a alegria de muitas
  crianças (... e de adultos também).



                                                                          16
Cifrário de Vigenére
• O uso das carreiras de Vigenère é muito sujeito a erros. A
  leitura é penosa e, depois de algum tempo, bastante
  fatigante. Trabalhar com réguas sobre a tabela de alfabetos
  cifrantes também acaba cansando. Devido a este fato, a partir
  de 1880, muitos criptólogos passaram a utilizar a chamada
  Régua de Saint-Cyr .




                                                             17
Chave simétrica
• Esse é um tipo de chave mais simples, onde o emissor e o
  receptor fazem uso da mesma chave, isto é, uma única chave
  é usada na codificação e na decodificação da informação.
  Existem vários algoritmos que usam chaves simétricas, como
  o DES, o IDEA, e o RC.




                                                               18
Algoritmos de Chave Simétrica
•   DES (Data Encryption Standard): criado pela IBM em 1977, faz uso de chaves de 56
    bits. Isso corresponde a 72 quatrilhões de combinações. É um valor absurdamente
    alto, mas não para um computador potente. Em 1997, esse algoritmo foi quebrado
    por técnicas de "força bruta" (tentativa e erro) em um desafio promovido na
    internet;
•   IDEA (International Data Encryption Algorithm): criado em 1991 por James Massey
    e Xuejia Lai, o IDEA é um algoritmo que faz uso de chaves de 128 bits e que tem uma
    estrutura semelhante ao DES. Sua implementação em software é mais fácil do que a
    implementação deste último;

•   RC (Ron's Code ou Rivest Cipher): criado por Ron Rivest na empresa RSA Data
    Security, esse algoritmo é muito utilizado em e-mails e faz uso de chaves que vão de
    8 a 1024 bits. Possui várias versões: RC2, RC4, RC5 e RC6. Essencialmente, cada
    versão difere da outra por trabalhar com chaves maiores.

    Há ainda outros algoritmos conhecidos, como o AES (Advanced Encryption Standard)
    - que é baseado no DES - , o 3DES, o Twofish e sua variante Blowfish, entre outros.



                                                                                      19
Vantagens no uso da chave
          simétrica

• Desempenho;
• Simplicidade;
• Constante Atualização;




                              20
Desvantagens das chaves
            simétricas

• A necessidade constante de chave secreta;
• Dificuldade para gerenciar grandes
  quantidades de chaves em larga escala;
• Dificuldade para iniciar uma comunicação
  segura entre entidades desconhecidas;



                                              21
Chave assimétrica
Também conhecida como "chave pública", a chave
assimétrica trabalha com duas chaves: uma denominada
privada e outra denominada pública. Neste método, um
emissor deve criar uma chave de codificação e enviá-la ao
receptor. Essa é a chave pública. Uma outra chave deve ser
criada para a decodificação. Esta, a chave privada, é secreta.




                                                                 22
Algoritmos de Chave Assimétrica
•   RSA (Rivest, Shamir and Adleman): criado em 1977 por Ron Rivest, Adi Shamir e
    Len Adleman nos laboratórios do MIT (Massachusetts Institute of Technology), é
    um dos algoritmos de chave assimétrica mais usados. Nele, números primos são
    utilizados da seguinte forma: dois números primos são multiplicados para se obter
    um terceiro valor. Porém, descobrir os dois primeiros números a partir do terceiro
    é muito trabalhoso. Se dois números primos grandes forem usados na
    multiplicação, será necessário usar muito processamento para descobrí-los,
    tornando essa tarefa praticamente inviável. Basicamente, a chave privada no RSA
    são os números multiplicados e a chave pública é o valor obtido;

•   ElGamal: criado por Taher ElGamal, esse algoritmo faz uso de um problema
    matemático conhecido por "logaritmo discreto" para se tornar seguro. Sua
    utilização é freqüente em assinaturas digitais.

    Existem ainda outros algoritmos, como o DSA (Digital Signature Algorithm), o
    Schnorr (praticamente usado apenas em assinaturas digitais) e Diffie-Hellman.




                                                                                    23
Desvantagens
• Lentidão no processamento;
   – Grandes quantidades de informações sendo criptografadas pode ser um
     problema.


• Confiança no repositório de chaves públicas;

   – Possibilidade de escolher quem terá a chave;

• Encontrar uma maneira de confiar na informação;

   – Como garantir que a chave pública de João é realmente de João ?



                                                                           24
Diffie-Hellman
• Método de criptografia desenvolvido por Whitfield
  Diffie e Martin Hellman e publicado em 1976.
• O algoritmo pode ser usado para a distribuição de
  chaves, mas não para cifrar ou decifrar mensagens.




                                                       25
Modelo Hibrido
• Trata-se de utilizar o melhor dos dois mundos.

  – Encapsulamento da chave usando chave assimétrica;

     • Ex: RSA.


  – Encapsulamento dos dados usando chave simétrica;

     • Ex: DES.

                                                       26
Modelo Hibrido




                 27
O Conhecido SSL(HTTPS)




                         28
Assinatura Digital




                     29
Funções de Hash
• O que é Hash ?

• O conceito teórico diz que :

• "hash é a transformação de uma grande
  quantidade de informações em uma pequena
  quantidade de informações".


                                         30
Uso do HASH
Sua utilização como componente de assinatura digital, é
necessária em virtude da lentidão dos algoritmos
assimétricos, ou seja, em vez disso é empregada uma
função de HASH, que gera um valor pequeno.

Algoritmos de hash mais usados, são:
   •   MD4;
   •   MD5;
   •   SHA-1;
   •   WHIRPOOL.


                                                    31
Referencias
• Hook, David. Beginning Cryptography with Java, 1. ed. Wrox
  Press, 2005. ISBN:0764596330.

• Knudsen, Jonathan B. Java Cryptography, 1. ed. O'Reilly, 1998.
  ISBN: ISBN: 1-56592-402-9.

• Silva, Lino Sarlo Da. Public Key InfraEstructire - PKI, 1. ed.
  NOVATEC, 2004. ISBN: 8575220462.

• Singh, Simon. Livro dos Codigos, 1. ed. Record, 2001. ISBN:
  8501055980.



                                                                   32

Introdução a criptografia

  • 1.
    Introdução a Criptografia NatanaelFonseca Arquiteto de Software 1
  • 2.
    Ementa 1. Princípios básicos da Segurança da Informação 2. Introdução a Criptografia; – Criptografia; – Criptograma; – Ciframento e Desiframento; – CriptoAnálise; – Criptologia; – Anagrama; – Esteganografia. 3. Um pouco de história; – ATBASH; – Cítala Espartana; – Ciframento de César; – Cifrário de Vigenére; 4. Criptografia de chave simétrica; 5. Criptografia de chave assimétrica; 6. Diffie-Hellman; 7. Modelo Hibrido; 8. SSL; 9. Assinatura Digital; 10. Funções de Hash; 2
  • 3.
    Princípios Básicos daSegurança da Informação • Confidencialidade: – Significa proteger informações contra sua revelação para alguém não autorizado. • Autenticidade: – Está associado com identificação correta de um usuário ou computador. • Integridade: – Consiste em proteger a informação contra modificação sem a permissão explícita do proprietário daquela informação. • Disponibilidade: – Consiste na proteção dos serviços prestados pelo sistema de forma que eles não sejam degradados ou se tornem indisponíveis sem autorização 3
  • 4.
    Criptografia Do grego, Kryptós:“escondido, oculto” e Graphein: “escrita”. È a arte ou ciência de escrever mensagens ocultas ou codificadas, ou seja, consiste em técnicas que procuram tornar possível a comunicação secreta entre dois agentes, sobre um canal aberto. 4
  • 5.
    Criptograma • É umtexto cifrado que obedece a um código e a uma lógica pré-determinados para decifrar a mensagem. O criptograma pode ser montado envolvendo números, letras, números e letras e símbolos gráficos. 5
  • 6.
    Ciframento e Deciframento •Cifrar uma mensagem, consiste em aplicar uma técnica de criptografia para obter um criptograma a partir de um mensagem. • Decifrar uma mensagem, consiste em aplicar uma técnica de criptografia para obter a mensagem original contida em um criptograma. 6
  • 7.
    CriptoAnálise A criptoanálise éa arte de tentar descobrir o texto cifrado e/ou a lógica utilizada em sua encriptação (chave). As pessoas que participam desse esforço são denominadas criptoanalistas. Da fusão da criptografia com a criptoanálise, forma-se a criptologia. http://www.cryptool.org/en/jcryptool 7
  • 8.
    Criptologia • É adisciplina científica que reúne e estuda os conhecimentos (matemáticos, computacionais, psicológicos, filológicos, etc.) e técnicas necessários à criptoanálise (solução de criptogramas) e à criptografia (escrita codificada). 8
  • 9.
    Anagrama • (do gregoana = "voltar" ou "repetir" + graphein = "escrever") é uma espécie de jogo de palavras, resultando do rearranjo das letras de uma palavra ou frase para produzir outras palavras, utilizando todas as letras originais exatamente uma vez. Um exemplo conhecido é o nome da personagem Iracema, claro anagrama de América, no romance de José de Alencar. 9
  • 10.
    Esteganografia Do grego: ("escritaescondida"). É o estudo e uso das técnicas para ocultar a existência de uma mensagem dentro de outra. Em outras palavras, esteganografia é o ramo particular da criptologia que consiste em fazer com que uma forma escrita seja camuflada em outra a fim de mascarar o seu verdadeiro sentido. 10
  • 11.
    Técnicas de Esteganografia • Ruído; • Espalhando a Informação; • Ordenação; • Dividindo a Informação; 11
  • 12.
    Criptografia e Esteganografia Nuncaconfundir, Pois são conceitos diferentes ! “Enquanto a primeira oculta o significado, a segunda oculta a existência da mensagem.” 12
  • 13.
    Um pouco deHistória Ao que se tem conhecimento, as técnicas de criptografia mais antigas, foram usadas para construir: » ATBASH » Cítala Espartana; » Ciframento de César; » Substituição MonoAlfabética; » Cifrário de Vigenére; » Dentre outros..............muitos outros......... 13
  • 14.
    ATBASH Na Bíblia, olivro de Jeremias usa um código extremamente simples do alfabeto hebreu para a história de Babel: a primeira letra do alfabeto hebreu (Aleph) é trocada pela última (Taw), a segunda letra (Beth) e trocada pela penúltima (Shin) e assim sucessivamente. Destas quatro letras deriva o nome da cifra: Aleph Taw Beth SHin - ATBASH. l Aplicando o sistema do Atbash ao alfabeto latino obtemos a seguinte tabela de substituição: A B C D E F G H I J K L M Z Y X W V U T S R Q P O N 14
  • 15.
    Cítala Espartana Uma formade transposição utiliza o primeiro dispositivo de criptografia militar conhecido, a cítala espartana, que remonta ao séc. V a.C. O cítala consiste num bastão no qual é enrolada uma tira de couro ou pergaminho, como mostrado na figura abaixo. O remetente escreve a mensagem ao longo do bastão e depois desenrola a tira, a qual então se converteu numa seqüência de letras sem sentido. O mensageiro usa a tira como cinto, com as letras voltadas para dentro. O destinatário, ao receber o "cinto", enrola-o no seu bastão, cujo diâmetro é igual ao do bastão do remetente. Desta forma, pode ler a mensagem. 15
  • 16.
    Ciframento de César •Apesar da sua simplicidade (ou exatamente devido a ela), esta cifra foi utilizada pelos oficiais sulistas na Guerra de Secessão americana e pelo exército russo em 1915. • A cifra ROT13, que surgiu em 1984 na USENET, baseia-se numa substituição na posição 13 (A por N, B por O, etc). • Com o uso de dois discos concêntricos contendo todas as letras do alfabeto, a substituição se torna extremamente simples. Estes discos, inclusive, já foram utilizados como brinquedo que fazia a alegria de muitas crianças (... e de adultos também). 16
  • 17.
    Cifrário de Vigenére •O uso das carreiras de Vigenère é muito sujeito a erros. A leitura é penosa e, depois de algum tempo, bastante fatigante. Trabalhar com réguas sobre a tabela de alfabetos cifrantes também acaba cansando. Devido a este fato, a partir de 1880, muitos criptólogos passaram a utilizar a chamada Régua de Saint-Cyr . 17
  • 18.
    Chave simétrica • Esseé um tipo de chave mais simples, onde o emissor e o receptor fazem uso da mesma chave, isto é, uma única chave é usada na codificação e na decodificação da informação. Existem vários algoritmos que usam chaves simétricas, como o DES, o IDEA, e o RC. 18
  • 19.
    Algoritmos de ChaveSimétrica • DES (Data Encryption Standard): criado pela IBM em 1977, faz uso de chaves de 56 bits. Isso corresponde a 72 quatrilhões de combinações. É um valor absurdamente alto, mas não para um computador potente. Em 1997, esse algoritmo foi quebrado por técnicas de "força bruta" (tentativa e erro) em um desafio promovido na internet; • IDEA (International Data Encryption Algorithm): criado em 1991 por James Massey e Xuejia Lai, o IDEA é um algoritmo que faz uso de chaves de 128 bits e que tem uma estrutura semelhante ao DES. Sua implementação em software é mais fácil do que a implementação deste último; • RC (Ron's Code ou Rivest Cipher): criado por Ron Rivest na empresa RSA Data Security, esse algoritmo é muito utilizado em e-mails e faz uso de chaves que vão de 8 a 1024 bits. Possui várias versões: RC2, RC4, RC5 e RC6. Essencialmente, cada versão difere da outra por trabalhar com chaves maiores. Há ainda outros algoritmos conhecidos, como o AES (Advanced Encryption Standard) - que é baseado no DES - , o 3DES, o Twofish e sua variante Blowfish, entre outros. 19
  • 20.
    Vantagens no usoda chave simétrica • Desempenho; • Simplicidade; • Constante Atualização; 20
  • 21.
    Desvantagens das chaves simétricas • A necessidade constante de chave secreta; • Dificuldade para gerenciar grandes quantidades de chaves em larga escala; • Dificuldade para iniciar uma comunicação segura entre entidades desconhecidas; 21
  • 22.
    Chave assimétrica Também conhecidacomo "chave pública", a chave assimétrica trabalha com duas chaves: uma denominada privada e outra denominada pública. Neste método, um emissor deve criar uma chave de codificação e enviá-la ao receptor. Essa é a chave pública. Uma outra chave deve ser criada para a decodificação. Esta, a chave privada, é secreta. 22
  • 23.
    Algoritmos de ChaveAssimétrica • RSA (Rivest, Shamir and Adleman): criado em 1977 por Ron Rivest, Adi Shamir e Len Adleman nos laboratórios do MIT (Massachusetts Institute of Technology), é um dos algoritmos de chave assimétrica mais usados. Nele, números primos são utilizados da seguinte forma: dois números primos são multiplicados para se obter um terceiro valor. Porém, descobrir os dois primeiros números a partir do terceiro é muito trabalhoso. Se dois números primos grandes forem usados na multiplicação, será necessário usar muito processamento para descobrí-los, tornando essa tarefa praticamente inviável. Basicamente, a chave privada no RSA são os números multiplicados e a chave pública é o valor obtido; • ElGamal: criado por Taher ElGamal, esse algoritmo faz uso de um problema matemático conhecido por "logaritmo discreto" para se tornar seguro. Sua utilização é freqüente em assinaturas digitais. Existem ainda outros algoritmos, como o DSA (Digital Signature Algorithm), o Schnorr (praticamente usado apenas em assinaturas digitais) e Diffie-Hellman. 23
  • 24.
    Desvantagens • Lentidão noprocessamento; – Grandes quantidades de informações sendo criptografadas pode ser um problema. • Confiança no repositório de chaves públicas; – Possibilidade de escolher quem terá a chave; • Encontrar uma maneira de confiar na informação; – Como garantir que a chave pública de João é realmente de João ? 24
  • 25.
    Diffie-Hellman • Método decriptografia desenvolvido por Whitfield Diffie e Martin Hellman e publicado em 1976. • O algoritmo pode ser usado para a distribuição de chaves, mas não para cifrar ou decifrar mensagens. 25
  • 26.
    Modelo Hibrido • Trata-sede utilizar o melhor dos dois mundos. – Encapsulamento da chave usando chave assimétrica; • Ex: RSA. – Encapsulamento dos dados usando chave simétrica; • Ex: DES. 26
  • 27.
  • 28.
  • 29.
  • 30.
    Funções de Hash •O que é Hash ? • O conceito teórico diz que : • "hash é a transformação de uma grande quantidade de informações em uma pequena quantidade de informações". 30
  • 31.
    Uso do HASH Suautilização como componente de assinatura digital, é necessária em virtude da lentidão dos algoritmos assimétricos, ou seja, em vez disso é empregada uma função de HASH, que gera um valor pequeno. Algoritmos de hash mais usados, são: • MD4; • MD5; • SHA-1; • WHIRPOOL. 31
  • 32.
    Referencias • Hook, David.Beginning Cryptography with Java, 1. ed. Wrox Press, 2005. ISBN:0764596330. • Knudsen, Jonathan B. Java Cryptography, 1. ed. O'Reilly, 1998. ISBN: ISBN: 1-56592-402-9. • Silva, Lino Sarlo Da. Public Key InfraEstructire - PKI, 1. ed. NOVATEC, 2004. ISBN: 8575220462. • Singh, Simon. Livro dos Codigos, 1. ed. Record, 2001. ISBN: 8501055980. 32