domingo, 17 de março de 2013

Assinatura e Certificação Digital - Criptografia Assimétrica


A criptografia de chave simétrica faz utilização de uma única chave para criptografar e descriptografar uma mensagem, embora uma mensagem ou um grupo de mensagens possam ter diferentes chaves. A desvantagem significativa nas cifras de criptografia simétrica se encontra na necessária preocupação e gerenciamento das chaves. O melhor seria se duas partes interessadas em uma comunicação pudessem compartilhar chaves diferentes e manter a troca segura das mensagens cifradas, porém para existência deste cenário assumindo o contexto apenas da criptografia simétrica, o número de chaves requeridas aumentariam ao quadrado sobre o número de usuários da grande rede mundial, e rapidamente necessitaria de um complexo sistema de gerenciamento destas chaves para mantê-las fortemente secretas. Ainda que existissem estas possibilidades citadas existiria outro problema, estabelecer uma chave secreta na comunicação entre duas partes, enquanto um canal secreto ainda não existe, ou melhor, nenhuma das duas partes conhece a chave ou não foi combinada uma. Então como poderia determinar a chave de comunicação de maneira segura, a garantir que nenhum terceiro pudesse interceptar a chave e consequentemente a mensagem?
            Em 1976, Whitfield Diffie e Martin Hellman propuseram uma solução, um modelo denominado Chaves Públicas, e por estar dentro do campo da criptografia é também o sinônimo de Criptografia Assimétrica, onde discursam que: duas chaves matematicamente relacionadas entre si, porém totalmente diferentes são utilizadas para cifrar e decifrar mensagens, sendo estas chaves chamadas de Chaves Públicas e Chaves Privadas. O modelo foi apresentado e mostrado como sendo possível em um protocolo que ficou conhecido como “Troca de Chaves Diffie-Helllman” do inglês Diffie-Hellman Key Exchange protocol. O sistema de chaves públicas é possibilitado quando da geração do par de chaves (a chave pública e a chave privada), sendo que a um terceiro deve ser computacionalmente impossível ou inviável a descoberta de uma das chaves correspondente tendo conhecimento de alguma, ou seja, dada uma chave pública não deve ser possível ou viável a descoberta da chave privada e vice-versa, mesmo sendo ciente de que as duas chaves sejam matematicamente relacionadas.
            Nos sistemas de criptografia de chaves públicas, cada parte interessada na comunicação deve ter seu par de chaves, e a propriamente dita chave pública deve ser distribuída livremente, de maneira inversa, a chave privada deve ser mantida em total sigilo. Faz jus a conhecimento o comum e porque não tradicional exemplo de Alice e Bob, onde para ilustração é assumido para Alice As como sendo a chave secreta de Alice e Ap a sua chave pública,  e ainda assumindo para Bob Bs  como a chave secreta de Bob e Bp a sua chave pública, sendo que cada chave especifica uma função que pode ser aplicada a qualquer mensagem dentro do conjunto de mensagens permitidas ou existentes, em outras palavras a chave pública de Alice gera um função que é especificada por sua chave privada e é naturalmente diferente da função especificada pela chave secreta ou pública de Bob. Pode-se denotar as funções As() e Ap() para chave secreta e  pública de Alice respectivamente e Bs() e Bp() para chave secreta e pública de Bob respectivamente, onde tendo menção de que as chaves são pares coincidentes, as mesmas geram funções que são inversas uma da outra, podendo tirar a prova da seguinte maneira;
Seja M uma mensagem, é válido, por exemplo, afirmar para Alice que;
M = As( Ap( M ) );
            Sendo estas funções de permutação, não importa a ordem em que são aplicadas as funções, pois uma aplicada sobre a outra sempre deve retornar a mensagem decifrada, então pela permutação é válido ainda afirmar que;
M = Ap( As( M ) );
            Para que a comunicação seja fidedigna e o sistema de criptografia de chaves públicas tenha pleno sucesso é essencial que os portadores de suas chaves privadas as mantenham em total sigilo, e que, por exemplo, somente Alice e ninguém mais possa calcular As(M), desta maneira a informação processada por As(M) é a garantia e assinatura de Alice nos termos de entidades lógicas ou digitais. Na contramão desta necessidade, as chaves públicas devem existir em um diretório de acesso público, de maneira que se, por exemplo, Bob quer enviar uma mensagem para Alice e quer a garantia de que somente Alice terá acesso a esta mensagem, o mesmo deverá obter a chave pública de Alice no tal diretório público, calcular a mensagem cifrada com a função MC=Ap(M) e enviar MC para Alice. No tráfego da mensagem até Alice, um terceiro poderá interceptar a mensagem sem maiores problemas, porém a mensagem se encontrará ininteligível para o mesmo, e somente Alice com sua chave secreta e calculando M=As(MC) terá conhecimento do real conteúdo da mensagem.
A tal solução ao problema existente quanto a criptografia simétrica, o modelo assimétrico foi apresentado e mostrado como sendo possível em um protocolo que ficou conhecido como “Troca de Chaves Diffie-Helllman” do inglês Diffie-Hellman Key Exchange protocol. Em 1978, Ronald Rivest, Adi Shamir e Len Adleman desenvolveram o RSA, sendo um outro sistema de criptografia assimétrica baseado também nas chaves públicas. Sendo o Diffie-Hellman e o RSA os primeiros a serem apresentados publicamente e mostrando a alta qualidade do modelo criptográfico, se tornaram então os algoritmos mais utilizados no contexto deste tipo cifra, porém existem outros tão bons quanto, por exemplo, o DSA (que está para Digital Signature Algorithm), Cramer-Shoup cryptosystem, ElGamal encryption dentre outros que utilizam a técnica denominada de curvas elípticas. Enfim, o modelo surgiu e também várias implementações do mesmo, dando a possibilidade aos usuários de escolha por conta do nível de confiança no algoritmo, se houve ataque ao mesmo, ou outros quesitos que levam a decisão por um ou por outro sistema.
Há relatos de que o modelo de criptografia simétrica já havia sido elaborado por volta de 1970, por um membro da GCHQ que é um acrônimo para Government Communications Headquarters, que é a agência de inteligência inglesa responsável pelo fornecimento de sinais e garantia de informação ao governo das forças armadas do Reino Unido. A alegação ainda afirma que os algoritmos Diffie-Hellman e RSA também haviam sido desenvolvidos anteriormente por Malcolm J. Williamson e Clifford Cocks respectivamente. Porém como a indicação fora feita tão tardiamente, os algoritmos e a história concreta continuam a girar em meio dos nomeados algoritmos Diffie-Hellman e RSA.

Nenhum comentário:

Postar um comentário

Obrigado por deixar seu comentário. Volte sempre.