CRIPTOGRAFIA
ALDANILSON LIRA MOURA
(aldo.lira@hotmail.com)
Comércio Eletrônico – André Luiz do Vale
Soares
Resumo
Criptografia que é um método seguro de proteger dados
armazenados ou em trânsito, em um meio cuja segurança não possa ser garantida
por outros controles, sendo assim veremos os conceitos básicos da criptografia,
a utilização da cifra como um método de
criptografar mensagens, tipos de criptografia com relação ao uso da chave, a
importância da privacidade, autenticação e assinaturas digitais como formas de
assegura dados em trânsito.
Palavras-chave: criptografia, chaves, privacidade, autenticação,
assinaturas digitais.
1. Introdução
O problema de segurança de dados
existe desde o momento em que alguém possua determinada informação e queira protegê-la.
O agravamento do problema com vasta
expansão de sistemas computacionais se tornou uma realidade. Ao mesmo tempo em
que as grandes empresas, principalmente os bancos, se preocuparam em dar a seus
usuários serviços fáceis de usar, tornaram acessíveis ao grande público
informação que nem sempre estavam bem protegidas contra acesso indevido, onde o
grande desafio passou a ser, então, criar sistemas próximos ao usuário, mas que
possuam proteção contra acesso e utilização indevida.
A criptografia é um método seguro de
proteger dados armazenados ou em trânsito em um meio cuja segurança não possa
ser garantida por outros controles.
A criptografia pode oferecer segurança na informática
somente onde e quando a confiança no significado da informação veiculada pelos
dados protegidos já tenha sido obtida ou fornecida por outros meios. Portanto,
a criptografia não oferece nenhuma solução mágica para problemas de segurança
na informática. O que oferece são truques para manipulação de probabilidades
que nos permitem escolher o terreno e o maneira como poderemos nos defender no
mundo dos bits.
Neste artigo veremos que um sistema
criptográfico, usado para obter segurança de arquivos ou de comunicação,
precisar atender a dois requisitos: privacidade e autenticação.
2. Conceitos básicos
A criptografia representa a
transformação de informação inteligível numa forma aparentemente ilegível, a
fim de ocultar informação de pessoas não autorizadas, garantindo privacidade.
A palavra criptografia tem origem grega
(kriptos = escondido, oculto e grifo = grafia) e define a arte ou ciência de
escrever em cifras ou em códigos, utilizando um conjunto de técnicas que torna
uma mensagem incompreensível, chamada comumente de texto cifrado, através de um
processo chamado cifragem, permitindo que apenas o destinatário desejado
consiga decodificar e ler a mensagem com clareza, no processo inverso, a
decifragem.
Há duas maneiras básicas de se
criptografar mensagens: através de códigos ou através de cifras. A primeira
delas procura esconder o conteúdo da mensagem através de códigos predefinidos
entre as partes envolvidas na troca de mensagens. Imagine o exemplo onde em uma
guerra, um batalhão tem duas opções de ação contra o inimigo: atacar pelo lado
direito do inimigo ou não atacar. A decisão depende da avaliação de um general
posicionado em um local distante da posição de ataque deste batalhão. É
acertado que se for enviado uma mensagem com a palavra "calhau", o
exército deverá atacar pela direita; se for enviada uma mensagem com a palavra "araçagy",
não deve haver ataque. Com isso, mesmo que a mensagem caia em mãos inimigas,
nada terá significado coerente. O problema deste tipo de solução é que com o
uso constante dos códigos, eles são facilmente decifrados. Outro problema é que
só é possível o envio de mensagens predefinidas. Por exemplo: não há como o
general mandar seu exército atacar pela esquerda.
O outro método usado para criptografar
mensagens é a cifra, técnica na qual o conteúdo da mensagem é cifrado através
da mistura e/ou substituição das letras da mensagem original. A mensagem é
decifrada fazendo-se o processo inverso ao ciframento. Os principais tipos de
cifras são:
Cifras de Transposição: método pelo
qual o conteúdo da mensagem é o mesmo, porém com as letras postas em ordem diferente.
Por exemplo, pode-se cifrar a palavra "CARRO" e escrevê-la
"ORARC";
Cifras de Substituição: neste tipo de
cifra, troca-se cada letra ou grupo de letras da mensagem de acordo com uma
tabela de substituição. As cifras de substituições podem ser subdivididas em:
Cifra de substituição simples,
monoalfabética ou Cifra de César: é o tipo de cifra na qual cada letra da
mensagem é substituída por outra, de acordo com uma tabela baseada geralmente
num deslocamento da letra original dentro do alfabeto. Ela é também chamada
Cifra de César devido ao seu uso pelo imperador romano quando do envio de
mensagens secretas. César quando queria enviar mensagens secretas a
determinadas pessoas, substituía cada letra "A" de sua mensagem
original pela letra "D", o "B" pelo "E", etc., ou
seja, cada letra pela que estava três posições a frente no alfabeto.
Cifra de substituição polialfabética:
consiste em utilizar várias cifras de substituição simples, em que as letras da
mensagem são rodadas seguidamente, porém com valores diferentes.
Cifra de substituição de polígramos:
utiliza um grupo de caracteres ao invés de um único caractere individual para a
substituição da mensagem. Por exemplo, "ABA" pode corresponder a
"MÃE" e "ABB" corresponder a "JKI".
Cifra de substituição por deslocamento:
ao contrário da cifra de César, não usa um valor fixo para a substituição de
todas as letras. Cada letra tem um valor associado para a rotação através de um
critério. Por exemplo, cifrar a palavra "CARRO" utilizando o critério
de rotação "023", seria substituir "C" pela letra que está
0(zero) posições a frente no alfabeto, o "A" pela letra que está 2
(duas) posições a frente, e assim por diante, repetindo-se o critério se
necessário.
A principal vantagem das cifras em
relação aos códigos é a não limitação das possíveis mensagens a serem enviadas,
além de ser tornarem mais difíceis de serem decifradas.
As cifras são implementadas através de
algoritmos associados a chaves, longas seqüências de números e/ou letras que
determinarão o formato do texto cifrado.
3. Chaves
O conceito de chave apresentado é um
tanto abstrato, mas se pensarmos no criptosistema como um conjunto de
algoritmos, as chaves são elementos fundamentais que interagem com os
algoritmos para a cifragem/decifragem das mensagens. A figura 1 ilustra bem
esta relação.

figura 1 – Cifragem e decifragem de uma mensagem
Para entender melhor o conceito de
chave, considere o exemplo de cifras de substituição por deslocamento descrito
anteriormente. Nele, o critério utilizado para a cifragem das mensagens não é
nada mais que a chave usada pelo algoritmo. No caso também da cifra de
substituição simples, poderia-se dizer que o algoritmo de cifragem seria algo
do tipo "deslocamento de n letras à frente", onde n seria a chave.
Do ponto de vista do usuário, as chaves
de criptografia são similares as senhas de acesso a bancos e a sistema de
acesso a computadores. Usando a senha correta, o usuário tem acesso aos
serviços, em caso contrário, o acesso é negado. No caso da criptografia, o uso
de chaves relaciona-se com o acesso ou não à informação cifrada. O usuário deve
usar a chave correta para poder decifrar as mensagens.
Tomando-se ainda a comparação aos
sistemas de acesso a computadores, senhas dos serviços descritos acima podem
possuir diferentes tamanhos, sendo que quanto maior for a senha de um usuário,
mais segurança ela oferece. Assim como estas senhas, as chaves na criptografia
também possuem diferentes tamanhos, e também seu grau de segurança está
relacionado com sua extensão.
Na criptografia moderna, as chaves são
longas seqüências de bits. Visto que um bit pode ter apenas dois valores, 0 ou
1, uma chave de três dígitos oferecerá 23 = 8 possíveis valores para a chave.
Sendo assim, quanto maior for o tamanho da chave, maior será o grau de
confidencialidade da mensagem.
4. Tipos de criptografia em relação ao uso de chaves
Há basicamente dois tipos de
criptografia em relação ao uso de chaves. Quando podemos cifrar e decifrar uma
mensagem usando a mesma chave tanto para o ciframento quanto para o
deciframento, dizemos estar usando um sistema de criptografia por chave
simétrica ou chave secreta. Caso estas chaves sejam diferentes, fala-se de um
sistema de chaves assimétricas ou chave pública. A seguir, veremos com mais
detalhes cada um deles.
4.1 Criptografia por chave secreta
No caso do uso de chave secreta, tanto
o emissor quanto o receptor da mensagem cifrada devem compartilhar a mesma
chave, que deve ser mantida em segredo por ambos. A figura 2 ilustra o processo
de criptografia por chave secreta, mostrando que a mesma chave que atua para a
cifragem da mensagem, é utilizada para sua posterior decifragem.

Figura 2 – Processo de criptografia por
chave secreta
Se uma pessoa quer se comunicar com
outra com segurança, ela deve passar primeiramente a chave utilizada para
cifrar a mensagem. Este processo é chamado distribuição de chaves, e como a
chave é o principal elemento de segurança para o algoritmo, ela deve ser
transmitida por um meio seguro. Porém, se existe um meio seguro de se enviar a
chave, por que não enviar a própria mensagem por este meio? A resposta para
esta questão é que meios seguros de comunicação são geralmente caros e mais
difíceis de serem obtidos e utilizados, sendo então razoável sua utilização uma
única vez, mas não continuamente.
Existe outro problema no processo de
distribuição das chaves. Imaginando-se o caso de três pessoas – A, B e C – que
queiram se comunicar utilizando chaves secretas. Serão necessárias 3 (três)
chaves: uma compartilhada entre A e B, outra entre A e C, e a última entre B e
C, como descrito pela figura 3
. 

Figura 3 –
Comunicação usando chaves secretas
Se mais pessoas forem inclusas neste
sistema de comunicação, mais chaves serão necessárias. No caso de mais duas
pessoas, mais sete chaves serão necessárias. Em geral, se n pessoas querem se
comunicar utilizando chave secreta, serão necessárias n(n-1)/2 chaves,
gerando um grande problema para o gerenciamento de chaves entre grandes grupos
de usuários.
Uma das tentativas de solucionar o
problema da distribuição das chaves secretas foi a criação de um centro de
distribuição de chaves (Key Distribution Center - KDC), que seria responsável
pela comunicação entre pessoas aos pares. Para isto, o KDC deve ter consigo
todas as chaves secretas dos usuários que utilizam seus serviços. Por exemplo,
imagine a situação descrita pela figura 4, onde A quer mandar uma mensagem
secreta para B. Para isto, ele manda a mensagem para o KDC usando sua chave
secreta. O KDC recebe esta mensagem, decifrando com a chave secreta de A,
depois o KDC a cifra novamente usando agora a chave secreta de B, e a envia
para o mesmo.
O maior problema em torno do KDC, é que
este constitui um componente centralizado, além de ser gerenciado por pessoas
que podem, casualmente, serem corrompidas.

Figura 4 – O Centro de Distribuição de
Chaves (KDC)
Em relação ao uso das cifras, os
algoritmos de chaves secretas utilizam dois tipos de cifra:
Cifras de corrente: quando se cria uma
chave aleatória com o mesmo tamanho do texto a ser cifrado, e combina-se a
chave com a mensagem a ser enviada.
Cifras de Bloco: aceita um grupo de
bits ou bloco de dados, podendo ser utilizados em cadeia. São geralmente usados
para grandes quantidades de dados.
4.2
Principais algoritmos que utilizam chave secretas:
DES – (Data
Encription Standard). Baseado num algoritmo desenvolvido pela IBM chamado Lucifer,
é o padrão utilizado pelo governo americano para a criptografia de seus dados
desde 1978. Em 1981, foi adotado como padrão pela ANSI com o nome de DEA, como
tentativa de padronizar procedimentos de cifragem do segmento privado,
especialmente instituições financeiras. O DES utiliza cifras de blocos de 64
bits usando uma chave de 56 bits, fazendo uma substituição monoalfabética sobre
um alfabeto de 264 símbolos.
Triple-DES –
Baseia-se na utilização três vezes seguidas do DES com chaves diferentes.
RC2, RC4 –
Algoritmos criados pelo Professor Ronald Rivest, são proprietários da RSA Data
Security. Estes algoritmos usam chaves que variam de 1 a 1024 bits de extensão.
Com chaves pequenas (menores que 48 bits), são códigos fáceis de serem
quebrados, e como são proprietários, não se tem muitas informações sobre sua
segurança com chaves extensas. RC2 é uma cifra de bloco, similar ao DES. RC4 é
uma cifra de corrente, onde o algoritmo produz uma corrente de pseudo-números
que são cifrados através de uma operação lógica XOR com a própria mensagem.
IDEA – Sigla
que designa International Data Encryption Algorithm é um algoritmo de cifragem
de bloco desenvolvido na Suíça e publicado em 1990. IDEA utiliza uma chave de
128 bits. É um algoritmo que ainda não pode ser conceituado como forte, devido
a seu pouco tempo de vida, porém aparenta ser robusto. Sua chave com 128 bits
elimina a possibilidade de alguém usar computadores atuais para ataques por
força bruta.
Skipjack –
Algoritmo secreto desenvolvido pela National Security Agency para uso por
civis. É o coração do chip Clipper, desenvolvido pela NSA.
4.3
Criptografia por chave pública
A criptografia por chave pública,
também conhecida com criptografia assimétrica, é aquela baseada no uso de pares
de chaves para cifrar/decifrar mensagens. As duas chaves são relacionadas
através de um processo matemático, usando funções unidirecionais para a
codificação da informação. Uma chave, chamada chave pública, é usada para
cifrar, enquanto a outra, chamada chave secreta, é usada para decifrar.
Uma mensagem cifrada com uma chave
pública só pode ser decifrada pela outra chave secreta com a qual esta
relacionada. O processo é ilustrado na figura 5. A chave usada para cifrar
recebe o nome de chave pública porque ela deve ser publicada e amplamente
divulgada pelo seu possuidor, fazendo com que qualquer pessoa possa lhe enviar
mensagens cifradas. Já a chave usada para decifrar as mensagens, deve ser
mantida em sigilo. Geralmente, os usuários deste tipo de criptografia publicam
suas chaves públicas em suas home pages, assinaturas dos E-mails, etc.

Figura 5 – Processo de
criptografia por chave pública
5. Privacidade
O problema da privacidade consiste em
evitar que um oponente seja capaz de obter partes ou totalidade do texto em
claro através da interceptação do texto cifrado.
Para conseguir privacidade, há dois
requisitos básicos:
É preciso que seja computacionalmente
impraticável fazer-se a criptoanálise para determinar sistematicamente a
transformação de decifrar Dk, através do texto cifrado do
interceptador Ck, mesmo que o texto em claro M seja conhecido e
É preciso que seja computacionalmente
impraticável fazer a criptoanálise para determinar sistematicamente o texto em
claro M através do texto cifrado C.
6. Autenticação
A autenticação consiste em prevenir a
substituição do texto cifrado C por texto falso C’, sem que isto tenha sido
detectado. Consiste também em evitar a utilização do sistema por um usuário não
autorizado, que se faça passar por um usuário legitimo do sistema.
Para a autenticação, há três requisitos
básicos:
a) é preciso se seja computacionalmente impraticável a
criptografia para determinar sistematicamente a transformação Ek, através do
texto cifrado dado Ck, mesmo que o texto em claro M seja conhecido.
b) é preciso que seja computacionalmente impraticável
fazer a criptoanálise para determinar sistematicamente texto cifrado C’ tal que
Dk, (C’) seja texto claro válido no conjunto {M}, onde {M}é o espaço
das mensagens em claro e
c) um usuário tem que se identificar para outro de
maneira inequívoca, que não deixe margem para falsificações.
Mesmo conseguindo autenticação segura,
ainda se está sujeito ao problema das mensagens perdidas, retransmissão de mensagens
validas e reutilização de chaves para múltiplas conversações.
Estes
problemas são resolvidos através do uso protocolos de autenticação e de
distribuição de chaves adequadas.
7. Assinaturas digitais
O crescimento de sistemas distribuídos,
principalmente os utilizados em serviços de transações bancárias, estaria
seriamente comprometido se não tivesse sido desenvolvido métodos de obter uma
assinatura digital que fosse de certa maneira semelhante às assinaturas sobre
papel.
Uma assinatura digital deve possuir as
seguintes propriedades:
a) Impossibilidade de falsificação: somente o autor
verdadeiro deverá ser capaz de criar a assinatura.
b) Autenticidade: deve haver um modo simples e que não
deixe duvida de demonstrar validade de uma assinatura em caso de disputa, mesmo
muito tempo depois da emissão da assinatura.
c) Impossibilidade de negação: mais tarde, é necessário
quem seja impossível para o autor da assinatura negar sua autoria.
d) Baixo custo e alta conveniência: quanto mais simples e
mais barato seu custo, melhor é o método.
8. Referências
Modelo_Artigo - http://www.sbc.org.br/reic/submissaodeartigosformatacao.html.
Arruda, José Ricardo Campelo. “Segurança de dados e criptografia”,
1993
Fernando Antonio Mota Trinta; Rodrigo Cavalcanti de
Macêdo, Departamento de Informática, Universidade
Federal de Pernambuco, 1998.

Nenhum comentário:
Postar um comentário