Qual a diferença entre criptografia simétrica e assimétrica?
Questão 2. Crie um arquivo em PHP que exiba na tela o resultado de dois tipos de criptografias one-way, são elas: MD5 e SHA1. Você deverá criptografar a palavra “ifro” e o resultado deverá ser exibido na tela.
Soluções para a tarefa
Criptografia simétrica nada mais é do que um algorítimo (“programa”) que embaralha as informações tonando estas inlegíveis. Para que a informação volte a ser legível é preciso inserir a (senha de sessão ou key session) criada no processo de encriptação.
O nome senha de sessão ou key session foi assim definido pois para cada envio uma nova senha ou algorítimo criptográfico pode ser redefinido.
Vamos a uma breve explicação. Na criptografia simétrica devemos escolher um algorítimo criptográfico e definir uma senha, está senha por sua vez será utilizada tanto para codificar quanto para descodificar a informação. Se você pretende enviar para alguém um arquivo codificado utilizando criptografia simétrica, seu receptor deve saber qual algorítimo foi utilizado e ter conhecimento da senha definida por você.
Agora enfrentamos outro grande problema, como podemos enviar de forma segura nossa senha para alguém? Por telefone, SMS, E-mail, pessoalmente? Nem um destes meios é seguro pois toda comunicação pode ser monitorada e interceptada, até mesmo conversas cara-a-cara são perigosas tendo em vista a questão da espionagem, que pode capturar conversas em ambiente aberto a mais de 400 metros. Isso não é ficção e sim realidade!
Para resolver o problema acima podemos utilizar a criptografia assimétrica.
Na criptografia assimétrica a chave utilizada para codificar alguma coisa é diferente da chave utilizada para descodificar, ou seja, as chaves NÂO são iguais.
Nesta criptografia temos o conceito de chave publica e chave privada.
Chave publica: Pode ser do conhecimento de todos, está chave é utilizada para codificar a informação/arquivo;Chave privada: Está deve ser mantida em segredo, pois é utilizada para descodificar o arquivo.Sendo assim tanto o usuário da máquina A quanto da B, possuem suas chaves publicas e privadas. Se o usuário da máquina A quiser enviar algo para o usuário da máquina B, basta utilizar a chave publica do usuário B para codificar sua mensagem, já que está chave pode ser do conhecimento de todos. Se o usuário da máquina B quiser enviar algo para a máquina A basta utilizar a chave publica do usuário A para codificar sua mensagem.
Os algorítimos simétricos são mais rápidos do que os algorítimos assimétricos, muita das vezes isso leva os usuários a utilizarem a primeira opção, mas ainda sim você pode usar um algorítimo assimétrico para transferir pelo menos a senha criada para o algorítimo simétrico, já que não se trata de uma informação muito longa.