Encriptação Quantica
A criptografia é uma ciência que permite o transporte e armazenamento seguro e secreto da informação. A encriptação consiste em alterar controladamente a informação no momento em que é enviada ou armazenada, de forma a que quem não conhece a chave (código) de desencriptação, não a consiga compreender.
Existe actualmente uma infinidade de formatos de encriptação, umas públicas, outras mais pessoais/privadas. Um exemplo de um formato público é o MD5, que é o formato usado na encriptação das passwords dos users dos fóruns em PHP. As pessoais/privadas serão tantas quantas a imaginação dos programadores o permitir. Por exemplo:
Um banco norte americano inventou uma forma de tratar o pin dos cartões de crédito dos clientes bastante peculiar, e até engraçada, permito-me. Aquando do preenchimento dos formulários de abertura de conta, o cliente deve indicar como quer que o pin do cartão de crédito seja tratado, mediante uma série de operações de adição e/ou subtracção. Então, por exemplo, pode dizer que quer somar 8 ao primeiro dígito, subtrair 4 ao segundo, somar 2 ao terceiro e subtrair 1 ao último.
1º -> +8
2º -> –4
3º -> +2
4º -> –1
O banco, mediante esta informação, envia o código pin para o cliente em carta normalíssima e em conjunto com o próprio cartão, coisa que sabemos não poder ser feito em Portugal.
(Aqui, em Portugal, é enviado primeiro o pin em envelope sigilo e só posteriormente é enviado o cartão, para que, ao existir uma intercepção na entrega, o prevaricador não fique na posse de todos os dados e com a possibilidade de fazer pagamentos ou levantamentos ilegais.)
Ora, o cliente do banco acima referido só terá de aplicar as operações - que combinou com o banco - ao pin enviado. Por exemplo: o pin enviado pelo banco é 7589. Então o cliente soma 8 a 7 que dá 15, logo 5, porque descarta o dígito mais à esquerda; subtrai 4 a 5 que dá 1; soma 2 a 8 que dá 10, logo 0; e subtrai 1 a 9 que dá 8.
7 -> + 8 = 5
5 -> – 4 = 1
8 -> + 2 = 0
9 -> – 1 = 8
Então o pin correcto é 5108, portanto, o pin enviado pelo banco é controladamente falso.
Este é um exemplo de encriptação pessoal ou privada. Outro exemplo de encriptação privada é usar uma chave que muda automaticamente de minuto a minuto. Como? Simples, eu faço um programa e digo ao utilizador que a password de entrada é primeiro os minutos e depois as horas. Então às 12:45h a password é 4512, mas às 12:46h a password já é 4612.
Mas, e se eu quiser distribuir o meu programa por vários clientes? Como é? Todos os clientes ficam a saber todas as passwords de todos os programas! Tá mal! Pois está, e para isso não acontecer elaboro uma rotina no próprio programa em que é o próprio utilizador a definir o filosofia da sua encriptação. Dirá ao programa, por exemplo, que a password será primeiro os minutos, mas de forma inversa e depois as horas de forma correcta. Então a password para aquele utilizador específico será 5412, às 12:45h.
Ainda posso introduzir outras variáveis, tais como o dia, o mês e/ou o ano e alterná-los conforme me der na veneta. Uma password muito fixe seria 542122ram7002, às 12:45h do dia 22 de Mar de 2007.
Este tipo de encriptação é tão eficaz que posso permitir que esteja um cusco a ver-me digitar a password. É que quando o gajo tentar entrar no programa já a password é diferente, desde que tenha passado um minuto depois de eu a ter introduzido.
No entanto, através de métodos complicadíssimos de desprogramação, os chamados decompilers, pode conseguir-se ler um programa compilado e descobrir a password ou a filosofia da password. Também se pode interceptar a informação antes de chegar ao destinatário e, aplicando os métodos públicos de desencriptação, ficar na posse dessa mesma informação e ainda se a pode reenviar para o destinatário, de modo a que ele não se aperceba que a informação foi interceptada.
O princípio da incerteza de Heisenberg diz-nos que se quisermos observar as características de uma partícula, teremos de adicionar luz (fotões) à dita e que ao adicionarmos esta luz, as suas características se alteram. Logo, nunca conseguiremos saber como se compõe a partícula num determinado momento, porque para isso lhe teremos de alterar irremediavelmente as características. A pensar nisto, inventaram um método de encriptação a que chamaram criptografia quântica, ainda em desenvolvimento, que consiste na observação da polarização de fotões enviados de um emissor para um receptor.
Resumidamente, os fotões vibram e se vibram todos na mesma direcção, diz-se que estão polarizados. Esta polarização pode dar-se em duas direcções perpendiculares uma à outra, ou seja, se a direcção da polarização de alguns dos fotões for horizontal, a de outros será vertical (- |), se for diagonal a 45º, a de outros será diagonal a 135º (\ /).
Então, usando filtros polarizadores, posso só deixar passar os fotões com polarização vertical, ou só os com polarização horizontal (Os óculos de sol são um filtro polarizador. Só deixam passar os fotões com uma determinada polarização. Por isso é que não vemos a luz em todo o seu esplendor quando os usamos). O emissor e o receptor definem o que é "0" e o que é "1" (p.e. o 0 é o "–" e o 1 é o "|") e se numa palavra de 8 bits passam, no polarizador, o 3, o 6 e o 7. A minha palavra é 00100110.
Mas existe aqui um pequeno senão: como os fotões são gajos muito irrequietos, pode passar um, ou mais fotões, com polarização diagonal num filtro de polarização vertical. Esta probabilidade é de 50%, logo, a solução mais viável é enviar a palavra duas vezes e analisar como chegaram ao receptor.
Depois disto, é necessário que o receptor diga ao emissor que palavras recebeu e o emissor vai dizer quais os bits que estão certos. Pegando no exemplo anterior, se o emissor disser que estão certos os bits 2, 4, 5, 6 e 8, então a chave de encriptação irá ser 00010 e passarão a usa-la para toda a informação subsequente.
A grande vantagem:
Imaginemos que temos um cusco a meio do caminho a tentar ler esta troca de informação. Ao conseguir ler a palavra enviada pelo emissor, esta é alterada irremediavelmente pelo princípio da incerteza, uma vez que o cusco tem de testar a polarização dos fotões, introduzindo outro elemento nas características destes. Consegue ler a informação enviada, mas nunca conseguirá reenvia-la para o receptor sem mácula, porque já foi inegavelmente alterada. Quando o receptor trocar a chave com o emissor, esta nunca funcionará, porque o indiscreto curioso a alterou definitivamente.
Escusado será dizer que tudo isto se passa à velocidade da luz, claro.