Para entender os processos criptográficos modernos é necessário conhecer outros conceitos básicos, os quais estão descritos abaixo:
Algoritmo
O algoritmo criptográfico é a fórmula matemática que transforma uma mensagem legível por qualquer pessoa (texto claro) em uma mensagem criptografada, isto é, cujo conteúdo está embaralhado e só pode ser decifrado por quem possua a chave certa. Um exemplo de algoritmo simples seria associar números às letras do alfabeto e depois adicionar duas unidades para cada "letra ímpar" e subtrair uma unidade para cada "letra par" na mensagem codificada. Assim, a letra "A" (1) seria transformada em "C" (1+2=3) e a letra "R" (18) seria transformada em "Q" (18-1=17). Usando a fórmula citada, a palavra "criptografia" seria representada da seguinte maneira.
Texto claro
C
R
I
P
T
O
G
R
A
F
I
A
Texto cifrado
E
Q
K
O
S
Q
I
Q
C
E
K
C
Os algoritmos usados atualmente são muito mais complexos e requerem programas de computador para serem processados, mas o conceito é equivalente. Há vários algoritmos em uso, criados especificamente para cada tipo de criptografia. Os algoritmos para criptografia simétrica mais comuns são: DES (Data Encryption Standard, ou Padrão de Criptografia de Dados), usado como um padrão no mundo inteiro desde 1977; Triple DES; IDEA; RC4; RC5 e Blowfish. O AES (Advanced Encryption Standard) foi adotado recentemente como padrão pelo governo norte-americano. Dois algoritmos de criptografia assimétrica bastante usados são RSA e ElGamal.
Alguns algoritmos tornaram-se públicos desde que foram criados, outros surgiram como uma fórmula secreta que depois foi quebrada e publicada. Mas, ao contrário do que possa parecer, o fato de um algoritmo ser conhecido publicamente não o torna menos seguro. O segredo todo está nas chaves, que são usadas em combinação com as fórmulas matemáticas e são diferentes para cada usuário. Pode-se fazer uma comparação com fechaduras e chaves do mundo físico. As especificações para fabricação de uma fechadura podem estar disponíveis para qualquer pessoa, e mesmo assim a segurança das residências ainda estará garantida, pois cada fechadura, ainda que de uma mesma marca, só é aberta por uma chave em particular.
Chave
Uma chave criptográfica moderna é uma seqüência de bits (unidade básica de informação digital) de variados tamanhos. A chave normalmente é gerada pelo próprio usuário, a partir de uma senha ou frase codificada com o algoritmo correspondente. Quanto mais bits tiver uma chave, teoricamente mais difícil será adivinhá-la. A quantidade máxima de chaves que se pode gerar é dada pela fórmula 2n onde n é igual ao número de bits da chave. Assim, uma chave de 40 bits poderá gerar 240 possíveis combinações, o que equivale a mais de um trilhão de possibilidades.
A maioria dos algoritmos atuais possui chaves de 128 bits, o que garante segurança por muitos e muitos anos ainda. Para se ter uma idéia, em 1996 um grupo de renomados especialistas calculou que seria necessária uma chave de 90 bits para proteger as comunicações até o ano de 2016. Uma chave de 128 bits é cerca de 275 bilhões de vezes mais difícil de adivinhar do que uma de 90 bits, e mesmo os mais potentes computadores modernos levariam, em tese, milhares de anos para conseguir realizar a tarefa.
Os valores acima se referem a chaves de criptografia simétrica. Para a criptografia assimétrica, as chaves possuem cálculos mais complexos e outros valores. Chaves assimétricas consideradas seguras hoje são encontradas com tamanhos de 1024 ou 2048 bits.
O que se percebe, portanto, é que já há tecnologia suficiente para garantir plenamente a privacidade das comunicações contemporâneas. Mas, na prática, outros fatores influenciam na segurança de uma chave. As senhas e frases que o usuário escolhe para gerar sua chave precisam ser longas o suficiente e o algoritmo a ela associado também deve ser de qualidade. Além disso, o usuário deverá guardar sua chave privada em lugar seguro, pois se ela for roubada (por um cavalo de Tróia, por exemplo) de nada adiantará usar a criptografia mais segura do mundo.
Hash
Hash é o nome dado a uma função matemática que calcula valores para uma mensagem e a representa esquematicamente. Funciona como uma impressão digital de um documento. A partir de um hash se consegue o chamado "digest message", ou "resumo da mensagem". Com o hash pode-se identificar de modo único uma mensagem ou um arquivo digital. Isto porque a função que o produz calcula o resumo da mensagem a partir de textos de qualquer tamanho, mas não se consegue chegar até o texto integral a partir do seu resumo. Ou seja, é uma função de mão única.
A função hash tem larga aplicação na criptografia e serve tanto para diminuir o tamanho de mensagens cifradas e agilizar sua transmissão, como para autenticar um documento eletrônico. Um campo de aplicação em que o hash é essencial é o da assinatura digital. Nomes de funções de hash usadas atualmente são SHA1 (Secure Hash Algorithm 1) e MD5.