Parte I - Introdução

O que é criptografia?

Criptografia é, de maneira simples, “escrever em códigos“, e é muito anterior à computação (aliás, é um dos impulsionadores da necessidade de computadores). Não vou dedicar linhas à uma abordagem histórica da criptografia, se você é curioso(a) entre no site NumaBoa que lá tem muita informação sobre isso. O que interessa é que a ciência da criptografia, a criptologia, é muito antiga. No começo, era bem simples. Coisa que com papel e caneta você faz. Hoje em dia, é muito mais complexa, códigos que se você colocar todos os computadores do mundo pra tentar quebrar vai precisar de mais tempo que a idade estimada do universo pra ter sucesso.

Hmm, já comecei a complicar. Códigos, quebrar? Ok, vou tentar ir com mais calma.

Em geral, a criptografia é o processo de transformar um texto compreensível (que chamaremos de mensagem) em um texto codificado (que chamaremos de código), usando uma fórmula matemática (que chamaremos de cifra). “Mas espera aí, fórmula matemática?“. Sim! Toda informação num computador, seja o que for, está armazenada na forma de números. Uma figura, um texto, etc. Tudo isso são números. Aplica-se uma fórmula sobre um número, ele vira outro número. De maneira simplificada, isso é a cifragem, ou seja: Você pega uma mensagem (número), aplica uma cifra (fórmula) e obtém um código (outro número).

Agora, você lembra que lá na escola você aprendeu uma coisa chamada função inversa? Aquela, que se aplicada sobre a resposta obtida na função, retorna o número original? Por exemplo, a função inversa de:

f(x) = x+1

é

g(x) = x-1

Simples, não? Quando fazemos isso, podemos dizer que estamos decifrando o código. Ou seja, pegamos um código (o número obtido na cifragem), aplicamos uma cifra inversa (função inversa) e obtemos nossa mensagem de volta. Você pode estar pensando: “Ok, mas este exemplo foi ridiculo“. Sim, pra nós, hoje em dia, chamar isso de criptografia pode parecer ridículo. Mas conta-se que o Grande Júlio César fez uso de uma cifra muito parecida, a famosa Cifra de César, que envolvia associar cada letra a um número e simplesmente fazer algo muito parecido com o que acabamos de fazer: somar 13 para cifrar, e tirar 13 para decifrar.

Na verdade está envolvida aí uma operação modular, ou seja, imagine os números como indo de 1 a 26 (para o caso das 26 letras do alfabeto). Se chegar a 27 você volta para o 1, e vice-versa, se chegar a 0, volta para o 26. Pra facilitar a compreensão e uso, coloque os números em um círculo. Mas note que a obtenção do módulo, matematicamente falando, nada mais é que obter o resto da divisão (28 mod(26) = 2, pois 28 dividido por 26, dá 1 e sobra 2). Pode parecer difícil, mas você certamente já usou isso antes, talvez apenas não percebeu: 15 horas no seu relógio digital, é indicado como 3 horas no seu relógio de ponteiro que representa as 24 horas do dia em módulo 12 (e 15/12 dá 1 com resto 3).

Claro que hoje em dia as coisas não são mais tão simples. As cifras evoluíram muito em complexidade, usando alguns artifícios da matemática que não vou comentar aqui por não atender o objetivo dos meus artigos. Mas aos curiosos, reforço o convite de conhecer o site NumaBoa que tem muita informação boa sobre o assunto.

Uma última coisa importante: o número 13 da cifra de César, pode ser considerado como um exemplo simples de uma coisa importante de qualquer cifra moderna. O número poderia ser qualquer um, de 1 a 25, certo? Ou seja, se você usar 12 para cifrar a mesma mensagem, o código obtido será diferente. Este valor que podemos escolher, e que afeta o resultado obtido, é o que chamamos de chave.

E como fica a questão de "quebrar uma criptografia"? Quebrar um código, que seria o jeito mais correto de se referir a isso, é o processo de obter a mensagem sem ter conhecimento da chave (e eventualmente sem ter conhecimento também da cifra utilizada). O ato de tentar obter esta quebra recebe o nome de criptoanálise. O criptonanalista dispõe de diversas técnicas para atingir seus objetivos, e novas técnicas estão sempre surgindo. Isso é importante, pois esta eterna corrida entre os criptólogos e os criptoanalistas é que força a produção de algoritmos e técnias de cifragem cada vez mais fortes e eficientes.

Note que, no caso de César, se não soubermos a chave e queremos descobrir a mensagem, a quebra é bem simples: precisamos apenas tentar as 25 possíveis, o que você pode fazer com lápis e papel em poucos minutos. E com um computador, nem se fala. (Brinque aqui com o cifrador de césar). Esse negócio de tentar todas as chaves possíveis é um dos jeitos mais conhecidos de quebrar um código, e recebe o nome de ataque de quebra por força bruta (faz sentido, né?). Uma boa cifra moderna precisa mais do que a idade estimada do universo pra ser quebrada assim, e depende de outros artíficios para que a quebra ocorra de maneira mais rápida. ;)

Considerações Finais

Com este artigo introdutório, apresentei da maneira mais simples que consegui alguns conceitos importantes. Antes de continuar, tenha certeza de ter claro pelo menos o conceito de mensagem, código, cifra, chave, criptoanálisequebra por força bruta.

Espero ter sido didático e não ter complicado muito. Se você não entendeu algo, tire suas dúvidas para que eu possa aprimorar meus artigos.

No próximo artigo vou dar uma introdução básica sobre o que é Criptografia Assimétrica. Não se assuste com o nome. Não é tão difícil assim ;)

Comments