printf: Qual a importância do algoritmo MD5 para a autenticação de softwares?
João: O algoritmo MD5 é uma função hash, sendo utilizada para autenticação. Imagine que você tem um software e queira disponibilizá-lo para download no seu site. Então, para garantir a autenticidade de seu software, você pode utilizar o MD5 e criar um selo de autenticidade. Nesse caso, se alguém modificar uma vírgula do seu arquivo, o selo criado pelo MD5 também muda. Então, se alguém acessar o seu site e colocar um vírus no seu software, tal fato será facilmente detectado. Você pode provar que aquele software, com o vírus, não é o original, pois, utilizando o algoritmo MD5, o selo associado ao software com vírus é diferente do selo original.
printf: Qual o tipo de criptografia usado nos principais sites de compra? É totalmente seguro?
João: Em geral, disponibilizar mercadoria em um site de compras não está associado a questões de segurança. Temos nesse caso, uma questão de marketing. O problema da segurança aparece, em geral, no momento da efetivação da compra. E nesse caso, vários problemas podem ocorrer para o comprador e para o vendedor. Quem compra não sabe se vai receber a mercadoria e quem vende que não sabe receberá o pagamento. Além disso, há o problema da autenticidade de quem está comprando. Alguém pode efetuar uma compra, se passando por outra pessoa.
Para resolver tais problemas, há várias estratégias. Mas, freqüentemente, tais soluções são caras ou importunam tanto os clientes que o vendedor pode perder a venda. Uma solução desse tipo seria, por exemplo, utilizar certificados digitais dos compradores. Entretanto, tal solução é inviável, pois os compradores não estão interessados em ter certificados digitais. Assim, no final das contas, temos um jogo: Para os vendedores eletrônicos é melhor correr algum risco e continuar tendo clientes para seus produtos. Resta saber até que ponto eles estão dispostos a correr riscos para ter clientes dispostos a comprar.
printf: Qual a importância dos números primos na criptografia?
João: Existem vários algoritmos criptográficos que são baseados em números primos. Posso citar um dos mais importantes, o RSA. Ele se fundamenta no conhecimento da teoria dos números primos. É a partir dos teoremas dessa teoria que tal algoritmo criptográfico é definido. Além do RSA, a maioria dos algoritmos criptográficos de chave pública se fundamenta na teoria dos números, principalmente dos números primos. Portanto, compreender os números primos é muito importante para o estudo da criptografia e da segurança de dados em geral.
printf: Quais são os principais tipos de criptografia?
João: Os principais tipos de criptografia são: criptografia de chave pública ou assimétrica; e criptografia de chave secreta ou simétrica. A criptografia de chave pública ou assimétrica é um método de criptografia que utiliza um par de chaves: uma chave pública e uma chave privada.
A chave pública é distribuída livremente para todos os correspondentes, enquanto a chave privada deve ser conhecida apenas pelo seu dono. Num algoritmo de criptografia assimétrica, uma mensagem cifrada com a chave pública pode somente ser decifrada pela sua chave privada correspondente.
Os algoritmos de chave pública podem ser utilizados para autenticidade e confidencialidade: Confidencialidade: A chave pública é usada para cifrar mensagens, com isso apenas o dono da chave privada pode decifrá-la.
Autenticidade: A chave privada é usada para cifrar mensagens, com isso garante-se que apenas o dono da chave privada poderia ter cifrado a mensagem que foi decifrada com a 'chave pública', e que a mensagem não foi forjada.
Os algoritmos de chave simétrica (também chamados de Sistemas de Chave Simétrica, criptografia de chave única, ou criptografia de chave secreta) são uma classe de algoritmos para a criptografia, que usam chaves criptográficas relacionadas para as operações de cifragem ou decifragem (ou cifra/decifra, ou cifração/decifração).
A chave de cifragem pode ser idêntica à de decifragem ou poderá existir uma transformação simples entre as duas chaves. As chaves, na prática, representam um segredo, partilhado entre duas ou mais partes, que podem ser usadas para manter um canal confidencial de informação. Usa-se uma única chave, partilhada por ambos os interlocutores, na premissa de que esta é conhecida apenas por eles.