Atualmente, a criptografia moderna se baseia na premissa de que os algoritmos criptográficos são públicos e chaves criptográficas são protegidas. Quanto maior for a chave criptográfica, maior será o esforço computacional para sua quebra.
Por exemplo, se tivermos uma chave de 3 bits de comprimento, precisaremos resolver o “mistério” que é 23 – possibilidades da representação binária elevada à quantidade de bits. Nesse caso teremos 8 possibilidades: 000, 001, 010, 011, 100, 101, 110, 111. Assim sendo, a cada bit acrescentado ao expoente, dobra-se a quantidade de combinações possíveis e, consequentemente, esforço computacional e tempo requeridos para exaurimento das possibilidades.
Testar possibilidades para quebrar uma chave criptográfica
Testar oito ou dezesseis possibilidades é algo trivial para um computador doméstico moderno, e isso ocorrerá numa fração de tempo tão curta que não dará tempo sequer de piscar os olhos.
A história nos ensina que a tecnologia em “estado da arte” de determinada época, torna-se popular e acessível às massas num futuro próximo. Para ilustrar essa afirmação, temos hoje em nossos smartphones uma tecnologia ordens de vezes mais avançada do que aquela que levou o homem à lua, menos de 50 anos depois.
Seguindo essa tendência, imaginemos que o computador mais rápido do planeta – Sunway TaihuLight, capaz de processar 93 quatrilhões de instruções por segundo, em breve esteja no bolso dos 7.5 bilhões de habitantes do planeta. Imaginemos também que todos esses habitantes se unam na tarefa de varrer todas as possibilidades de uma chave criptográfica simétrica com comprimento de 256 bits, já comum hoje em dia. Em quanto tempo varreremos todas as possibilidades de combinação de bits dessa chave?
Fazendo as contas: sete bilhões e quinhentos milhões de habitantes no planeta com poder computacional individual de calcular noventa e três quatrilhões de instruções por segundo. Isso resulta numa capacidade combinada de testar aproximadamente 22 milhões de bilhões de bilhões de bilhões de possibilidades por ano. Você não leu errado, não existem palavras duplicadas, se trata do numeral 22 seguido de trinta e três zeros.
Assim sendo, demoraríamos aproximadamente 5.2 milhões de bilhões de bilhões de bilhões de bilhões de anos para varrer todas as possibilidades de combinação dos 256 bits 0s e 1s. Considerando que o universo tem idade estimada em 13.3 bilhões de anos, demoraríamos muito mais tempo do que gostaríamos para conseguir tal façanha.