Criptografia

Criptografia é o estudo dos princípios e técnicas pelas quais as informações podem ser transformadas, da sua forma original para outra ilegível, de forma que possa ser conhecida apenas por seu destinatário, este que detém uma chave que lhe permite decifrar a mensagem.

Desde os tempos mais antigos a humanidade sempre precisou trocar mensagens entre si, porem por vários motivos certas mensagens somente podiam ser lidas por um grupo de indivíduos, nesse âmbito o homem descobriu que poderia fazer alterações (cifras) nas mensagens transmitidas de modo que elas não fizessem sentido e só quem possuía um segredo para decifrar a mensagem é que podia interpreta-la. É nesse contesto que surgi este conceito de criptografia. 

A palavra “Criptografia” é de origem grega (kryptos que significa oculto ou secreto e graphos que significa escrever). 

 Assim, a criptografia foi criada para codificar ou cifrar mensagem, utilizando um conjunto de técnicas que tornam uma mensagem ilegível, mensagem essa chamada de Texto Cifrado, através de um processo chamado cifragem, permitindo apenas ao destinatário indicado descodificar e ler a mensagem. O processo inverso é chamado de decifragem, em que o destinatário decodifica a mensagem cifrada obtendo assim uma mensagem chamada de Texto Aberto (mensagem legível enviada por quem a cifrou). 

Há duas maneiras de criptografar mensagens: através de Códigos ou através de Cifras

A criptografia através de códigos consiste em esconder conteúdo da mensagem através de códigos predefinidos entre as partes (emissor e recetor) envolvidas na troca de mensagens.  

O problema desta maneira de criptografar mensagens é que com o uso constante dos códigos predefinidos, estes são facilmente decifrados. 

A outra maneira de criptografar mensagens que é através de Cifras consiste em cifrar mensagens misturando ou substituindo as letras da mensagem original. A decifragem ocorre no processo inverso. 

Os principais tipos de cifra são: 

1 – Cifras de Transposição: neste tipo de cifra, o conteúdo da mensagem é o mesmo, mas com as letras colocadas na ordem inversa. 

Ex.: SISTEMA que na ordem inversa corresponde à AMETSIS. 

2 – Cifras de Substituição:  neste tipo de cifra, troca-se cada letra ou grupo de letras da mensagem pelas existentes na tabela de substituição. 

As Cifras de Substituição subdividem-se em: 

a) Cifra de substituição simples, Mona alfabética ou Cifra de César 

 É o tipo de cifra na qual cada letra da mensagem é substituída por outra baseada num deslocamento da letra original dentro do alfabeto. 

É também conhecida por Cifra de César, usado pelo imperador romano Júlio César para se comunicar com seus generais.  

O algoritmo usado é bem simples: cada caractere do texto aberto é substituído pelo 

 caractere numa certa posição sucessiva no alfabeto. Assim, considerando k = 2 (duas posições a frente no alfabeto), a letra “A” seria substituída pela letra “C”, a letra “B” pela “D”, assim sucessivamente. 

Ex.: Mensagem aberta: Sistema Operativo 

Mensagem cifrada com k=1: Tjtfnb Pqfsujwp 

b) 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, mas com valores diferentes. 

c) Cifras 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. 

Ex.: ABA pode corresponder a MÃE e ABB corresponde a JKL 

d)Cifra de Substituição por Deslocamento 

Esta cifra não usa um valor fixo de substituição como na Cifra de César, mas sim, cada letra tem um valor associado para a rotação através de um critério. 

Ex.: Cifrar a palavra VASO utilizando critério de rotação 021. 

Seria substituir V pela letra que está 0(zero) posições a frente no alfabeto, A pela letra   2(duas) posições a frente, e assim por diante, repetindo-se o critério se necessário. 

As cifras em relação aos códigos levam vantagem, pois não se limitam das possíveis mensagens a serem criptografadas e também tornam mais difíceis de serem decifradas. 

Chaves 

 As chaves são elementos fundamentais que interagem com os algoritmos para a cifragem/decifragem das mensagens. 

No seguinte exemplo: 

Texto aberto: sistema operativo 

Texto cifrado com k = 1: tjtufnb pqfsbujwp 

é a chave.  As chaves na criptografia 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 sequê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. 

Tipos de criptografia 

Existem dois tipos de criptografia: a simétrica e a assimétrica. No modelo computacional esta tarefa de alterar a mensagem original assim como o processo de descodificação dessa mensagem (decifragem) é feita por algoritmos complexos o suficiente para tornar quase impossível a decifragem desta mensagem por pessoas que não detém a chave. 

Criptografia Simétrica  

A criptografia simétrica oferece ao usuário duas funções, cada uma com dois argumentos: uma para cifrar e outra para decifrar.  

Convencionaremos usar Enc(m; k) para a função que cifra e Dec(m; k) para a função que decifram com a chave k.  

Evidentemente, é necessário que Dec(Enc(m; k); k) = m para todos m e k. A função que transforma a mensagem (que chamamos de texto claro) em algo irreconhecível (que chamamos de texto cifrado) deve necessariamente ser difícil de inverter sem o argumento k, de outra forma qualquer um com acesso à mensagem poderia facilmente decifrá-la. Ao algoritmo usado para calcular as funções Enc e Dec damos o nome de cifra. 

  

Criptografia Assimétrica 

Um problema dos esquemas simétricos de encriptação é que cada par de usuários que queira se comunicar em sigilo precisa compartilhar uma chave secreta. Se a Marta e o João estão fisicamente distantes e não podem fazê-lo de maneira simples, um esquema simétrico não é útil.  

A criptografia assimétrica permite que diferentes usuários se comuniquem em sigilo sem este problema. Neste modelo de criptografia, tanto o João assim como a Marta tem duas chaves uma pública (conhecida de todos, possivelmente divulgada na Internet) e outra privada. Quando Marta precisa cifrar uma mensagem para o João, usa a chave pública do João (disponível publicamente).  Ao receber a mensagem, o João pode decifrá-la usando sua chave privada.