Poucas pessoas sabem qual a diferença entre codificação e criptografia. Dois termos que estão bastante relacionados, mas são bem diferentes. O único fator em comum entre os dois conceitos é o objetivo de garantir a confidencialidade da informação, escondendo o sentido dos dados para todos aqueles que estejam fora da comunicação.
Quando a semântica e a sintaxe são importantes na segurança?
Em primeiro lugar, vale a pena mencionar que a criptografia é parte de um campo muito mais amplo que a criptologia, incluindo outras áreas como a criptoanálise e a esteganografia. Particularmente, a criptografia se concentra em estudar métodos para fazer com que uma mensagem não possa ser lida por um terceiro (sem autorização), ou seja, garantir a confidencialidade das informações.
Aqueles que desejam esconder o significado da mensagem podem escolher uma entre as duas opções: usar algoritmos de criptografia ou codificar a mensagem. A criptografia se baseia na aplicação de um algoritmo que costuma usar uma chave para transformar a estrutura e a composição das informações que pretende proteger, de modo que, caso seja interceptada por um terceiro, não será compreendida.
O uso do tipo de chave é o fator que determina se é uma criptografia é simétrica ou assimétrica. No primeiro caso, uma mesma chave é utilizada para criptografar a mensagem, o que a transforma em um método rápido e simples comparado com a criptografia assimétrica, na qual é utilizado um esquema de chave pública e privada; a pública é utilizada para criptografar e a privada para descriptografar.
Além de garantir a confidencialidade das informações, o esquema de criptografia assimétrica oferece uma alternativa para o desenvolvimento de assinaturas digitais, com as quais o receptor de uma mensagem pode verificar a autenticidade da origem da informação. Além disso, é possível verificar se houve algum tipo de modificação dos dados desde a origem.
Do outro lado está a codificação, que simplesmente consiste em aplicar um processo de conversão dos componentes de uma mensagem com o intuito de que não seja compreendida. As regras de transformação entre um sistema e outro serão definidas a fim de seja possível compreender o conteúdo da mensagem. Por fim, quando nos referimos a criptografar uma mensagem, relacionamos com a ocultação de informações com base na sintaxe da mensagem, ou seja, alterando os símbolos que a compõe; em troca, a codificação se baseia na alteração semântica da mensagem, o que está relacionado com o significado da informação.
Esclarecendo outros termos
Como membros da comunidade de segurança focados na conscientização dos usuários, muitas vezes, nos encarregamos de desvendar mitos e esclarecer as principais diferenças.
Um termo que ganha ambiguidade, pela forma como é utilizado, é a definição de hacker. Embora todos saibamos que o termo está relacionado com a curiosidade de uma pessoa para entender o completo funcionamento de um sistema, ainda existem aqueles que erroneamente associam a um pirata informático ou a alguém que está focado em atividades relacionadas ao cibercrime.
Encontramos também outros equívocos que poderiam ser classificadas como históricos, assim como acontece com o conceito de vírus e códigos maliciosos. Embora muitos já saibam que falar de um vírus é apontar para um tipo de código malicioso (malware, em Inglês), algumas pessoas usam o termo para se referir a qualquer ameaça informática, talvez pelo fato de que o vírus foi o primeiro nome para essas ameaças; ao passar do tempo, ficou no subconsciente de muitos e ainda está em uso, apesar de ser uma das ameaças com menores taxas de propagação. Particularmente, nos últimos anos tornou-se muito popular uma ameaça conhecida como ransomware, e é normal ouvir muitos usuários se referirem a esta ameaça como um vírus.
Além disso, também é muito comum encontrar declarações imprecisas quando alguns usuários se referem às vulnerabilidades e sobre como estas podem ser exploradas. Por um lado, temos as falhas no projeto ou na implementação de um aplicativo, sistema ou dispositivo, que são conhecidas como vulnerabilidades. Todos os sistemas operacionais, dispositivos e aplicativos têm vulnerabilidades, nenhum escapa; no entanto, para que uma vulnerabilidade possa ser aproveitada é preciso que um exploit seja desenvolvido.
É quando podemos lidar com o mito de que há sistemas invulneráveis; é claro que todos os sistemas têm vulnerabilidades, e os mais utilizados são os que possuem o maior número de exploits.
Sem dúvida, existem vários conceitos que podem gerar confusão, seja pela sua sútil diferença, uso ou mesmo pelos conceitos enraizados no subconsciente coletivo ou mitos que se espalham entre os usuários.