Prévia do material em texto
Criptografia de chave pública e RSA Licensed to Wellington Vichinhevski Kruk - well@wknetworks.com.br - 096.466.679-02 SST Santos, Marcel Criptografia de chave pública e RSA / Marcel Santos Ano: 2020 nº de p.: 11 Copyright © 2020. Delinea Tecnologia Educacional. Todos os direitos reservados. Licensed to Wellington Vichinhevski Kruk - well@wknetworks.com.br - 096.466.679-02 Criptografia de chave pública e RSA 3 Apresentação Neste momento, iremos estudar sobre a criptografia de chave pública e RSA. Vamos iniciar nosso estudo vendo os aspectos históricos da criptografia, analisando pelos problemas centrais da criptografia simétrica e como o algoritmo Diffie-Hellman pode vir a auxiliar no estabelecimento de uma chave secreta compartilhada. Na sequência, analisaremos os criptossistemas e aplicações de chave pública. Nosso foco será nos elementos necessários para a encriptação convencional e de chave pública. Por fim, faremos uma análise dos requisitos para a criptografia de chave pública. Criptossistemas de chave pública Quando falamos sobre a história da criptografia, o desenvolvimento da criptografia de chave pública é a maior e talvez a única verdadeira revolução. Desde o seu início, até os tempos atuais, praticamente todos os sistemas criptográficos têm sido baseados nas ferramentas elementares da substituição e permutação. No começo do século XX, com a invenção de complexas máquinas mecânicas e eletromecânicas, tais como a máquina com rotores Enigma, foi possível avançar na criptografia simétrica, substituindo algoritmos, que, em sua essência, eram calculados à mão. O rotor eletromecânico permitiu a elaboração de sistemas de cifra incrivelmente complexos. Com a disponibilidade dos computadores, sistemas ainda mais complexos foram criados, e o mais importante foi o esforço Lucifer, da IBM, que culminou com o Data Encryption Standard (DES). Atenção Licensed to Wellington Vichinhevski Kruk - well@wknetworks.com.br - 096.466.679-02 4 Mas tanto as máquinas de rotor, quanto o DES, embora representando avanços significativos, ainda contavam com ferramentas básicas de substituição e permutação. Portanto, com a realização de pesquisas, desenvolvimento e aplicação de algoritmos simétricos ao longo dos anos, criou-se a criptografia de chave pública, que oferece uma mudança radical em relação ao que era feito antes. Por um lado, os algoritmos de chave pública são baseados em funções matemáticas, em vez de substituição e permutação. A criptografia de chave pública é assimétrica, que consiste no uso de duas chaves distintas. Já a criptografia simétrica utiliza apenas uma chave. O uso de duas chaves tem profundas consequências nas áreas de confidencialidade, distribuição de chave e autenticação. É importante ressaltar que a segurança de determinado esquema de criptografia depende do tamanho da chave e do processamento computacional dedicado à quebra da codificação. No que tange à resistência à criptoanálise, não existem embasamentos que confirmem a superioridade ou as vantagens de uma em relação à outra. Antigamente, o processo de cifragem era utilizado para a troca de mensagens, sobretudo em assuntos ligados à guerra, ao amor e à diplomacia. O primeiro uso registrado da criptografia foi em torno de 1900 a.C., no Egito, quando um escriba utilizou hieróglifos fora do padrão em uma inscrição. Curiosidade Por fim, há uma sensação de que a distribuição de chave é trivial, quando se utiliza a criptografia de chave pública, em comparação com o tratamento um tanto desajeitado que é envolvido com os centros de distribuição de chave para a criptografia simétrica. Na verdade, é preciso haver alguma forma de protocolo, geralmente abrangendo um agente central, e os procedimentos envolvidos não são mais simples nem mais eficientes do que aqueles exigidos para a criptografia simétrica. Licensed to Wellington Vichinhevski Kruk - well@wknetworks.com.br - 096.466.679-02 5 Princípios de criptossistemas de chave pública O conceito de criptografia de chave pública surge da busca por uma resolução de dois problemas vinculados à criptografia simétrica: Primeiro É o da distribuição de chaves que, sob a encriptação simétrica, requer que dois comunicantes já compartilhem uma chave que, de alguma forma, foi distribuída a eles; ou o uso de um centro de distribuição de chaves. Whitfield Diffie, um dos descobridores da encriptação de chave pública, raciocinou que esse segundo requisito anulava a essência da criptografia: a capacidade de manter sigilo total sobre a sua própria comunicação. Segundo Que estava aparentemente não relacionado com o primeiro, foi o de assinaturas digitais. Se o uso da criptografia tivesse que se tornar comum, não apenas nas situações militares, mas para fins comerciais e particulares, então as mensagens e os documentos eletrônicos precisariam do equivalente das assinaturas utilizadas nos documentos em papel. O algoritmo Diffie-Hellman permite que dois lados que não possuem conhecimento prévio um do outro estabeleçam uma chave secreta compartilhada em um canal público e inseguro (BASTA; BROWN, 2014). Criptossistemas e suas Aplicações de chave pública Os algoritmos assimétricos contam com uma chave para encriptação e uma chave diferente, porém relacionada, para a decriptação. Eles possuem uma característica peculiar: é computacionalmente inviável determinar a chave de decriptação com o conhecimento apenas do algoritmo de criptografia e da chave de encriptação. Além disso, alguns algoritmos, como o RSA (Rivest-Shamir-Adleman), por exemplo, também exibem esta característica: qualquer uma das duas chaves relacionadas pode ser usada para a encriptação, com a outra para a decriptação. Licensed to Wellington Vichinhevski Kruk - well@wknetworks.com.br - 096.466.679-02 6 Encriptação convencional e de chave pública ENCRIPTAÇÃO CONVENCIONAL ENCRIPTAÇÃO DE CHAVE PÚBLICA Necessário para funcionar: 1. O mesmo algoritmo com a mesma chave é usado para encriptação e decriptação. 2. O emissor e o receptor precisam compartilhar o algoritmo e a chave. Necessário para funcionar: 1. Um algoritmo é usado para encriptação, e o relacionado, para decriptação com um par de chaves, uma para encriptação e outra para decriptação. 2. O emissor e o receptor precisam ter, cada um, uma chave do par (não a mesma). Necessário para segurança: 1. Uma das duas chaves precisa permanecer secreta. 2. Deverá ser impossível, ou pelo menos impraticável, decifrar uma mensagem se uma das chaves foi mantida secreta. 3. O conhecimento do algoritmo, mais uma das chaves, mais amostras do texto cifrado precisam ser insuficientes para determinar a outra chave. Fonte: Adaptada de Stallings (2015). Um esquema de encriptação de chave pública possui cinco elementos: • Texto claro: mensagem original a ser criptografada. • Algoritmo de encriptação: responsável pela execução da encriptação. • Chaves pública e privada: códigos utilizados para realizar o processo de en- criptação e decriptação. As modificações feitas pelo algoritmo variam de acordo com as chaves apresentadas na entrada do processo. • Texto cifrado: mensagem criptografada, ou seja, é incorporado um processo de embaralhamento das informações contidas na mesma, realizado pela jun- ção de texto claro e chave. • Algoritmo de decriptação: realiza o processo de transformação da mensa- gem criptografada no texto original. Licensed to Wellington Vichinhevski Kruk - well@wknetworks.com.br - 096.466.679-02 7 Criptossistema de chave pública: sigilo Fonte: Adaptada de Stallings (2015) Os sistemas de chave pública são caracterizados pelo uso de um algoritmo criptográfico com duas chaves, uma mantida privada e uma disponível publicamente. Dependendo da aplicação, o emissor utiliza a chave privada do emissor ou a chave pública do receptor, ou ambas, para realizar algum tipo de função criptográfica. Em termos gerais, podemos classificar o uso dos criptossistemasde chave pública em três categorias: Encriptação/decriptação: o emissor encripta uma mensagem com a chave pública do destinatário. Licensed to Wellington Vichinhevski Kruk - well@wknetworks.com.br - 096.466.679-02 8 Assinatura digital: com a chave privada, o emissor “assina” a mensagem que deseja enviar. Esse processo é realizado por meio da execução de algoritmo criptográfico aplicado à mensagem. Troca de chave: emissor e receptor realizam a troca de chave de sessão. Há diversas técnicas existentes que incorporam as respectivas chaves privadas. Alguns algoritmos são adequados para todas as três aplicações, enquanto outros só podem ser usados para algumas delas. Requisitos para a criptografia de chave pública Um algoritmo de criptografia é considerado computacionalmente fácil caso consiga atender a pelo menos um dos requisitos: 1) o custo para quebrar a criptografia ultrapassa o valor da informação cifrada; 2) o tempo necessário para quebrar a criptografia é maior que a vida útil da informação cifrada. Caso não sejam atendidos, esse algoritmo é computacionalmente inviável. Licensed to Wellington Vichinhevski Kruk - well@wknetworks.com.br - 096.466.679-02 9 Diffie e Hellman estabeleceram as condições a que esses algoritmos precisam atender, conforme abordado a seguir: 1. É computacionalmente fácil para uma parte B gerar um par (chave pública PUb, chave privada PRb). 2. É computacionalmente fácil para um emissor A, conhecendo a chave pública e a mensagem a ser encriptada, M, gerar o texto cifrado correspondente. 3. É computacionalmente fácil que o receptor B decripte o texto cifrado resultante, utilizando a chave privada para recuperar a mensagem original. 4. É computacionalmente inviável que um invasor, conhecendo a chave pública, PUb, determine a chave privada, PRb. 5. É computacionalmente inviável que um invasor, conhecendo a chave pública, PUb, e um texto cifrado, C, recupere a mensagem original, M. Podemos incluir um sexto requisito que, embora útil, não é necessário para todas as aplicações de chave pública. 6. As duas chaves podem ser aplicadas em qualquer ordem. Curiosidade Licensed to Wellington Vichinhevski Kruk - well@wknetworks.com.br - 096.466.679-02 10 Fechamento Estudamos mais a fundo sobre a criptografia de chave pública e RSA, vendo alguns aspectos históricos de como a criptografia foi baseada no uso de ferramentas elementares da substituição e permutação. Passamos, na sequência, pelos dois problemas centrais da criptografia simétrica, analisando como o algoritmo Diffie-Hellman auxilia no estabelecimento de uma chave secreta compartilhada. No segundo tópico de estudo, estudamos sobre os criptossistemas e aplicações de chave pública. Vimos os elementos necessários para a encriptação convencional e de chave pública funcionarem, e os cinco elementos básicos para esquemas de encriptação de chave pública. Finalizamos nosso estudo com a análise dos requisitos para a criptografia de chave pública, elencando e analisando as condições necessárias que os algoritmos de encriptação precisam atender. Licensed to Wellington Vichinhevski Kruk - well@wknetworks.com.br - 096.466.679-02 11 Referências BASTA, A.; BROWN, M. Segurança de computadores e teste de invasão. Tradução de Lizandra Magon de Almeida. São Paulo: Cengage Learning, 2014. STALLINGS, W. Criptografia e segurança de redes: princípios e práticas. Tradução de Daniel Vieira. Revisão técnica de Paulo Sérgio Licciardi Messeder Barreto e Rafael Misoczki. 6. ed. São Paulo: Pearson Education do Brasil, 2015. Licensed to Wellington Vichinhevski Kruk - well@wknetworks.com.br - 096.466.679-02