O que é criptografia?
Criptografia é a prática de proteger informações por meio do uso de algoritmos codificados, hashes e assinaturas. As informações podem estar em repouso (como um arquivo em um disco rígido), em trânsito (como comunicação eletrônica trocada entre duas ou mais partes) ou em uso (durante a computação de dados). A criptografia tem quatro objetivos principais:
- Confidencialidade: disponibiliza as informações somente para usuários autorizados.
- Integridade: garante que as informações não tenham sido manipuladas.
- Autenticação: confirma a autenticidade das informações ou a identidade de um usuário.
- Não repúdio: impede que um usuário negue compromissos ou ações anteriores.
A criptografia usa vários algoritmos criptográficos de baixo nível para atingir um ou mais desses objetivos de segurança das informações. Essas ferramentas incluem algoritmos de encriptação, algoritmos de assinatura digital, algoritmos de hash e outras funções. Esta página descreverá alguns dos algoritmos criptográficos de baixo nível mais usados.
Para que serve a criptografia?
A criptografia tem origem no envio de informações confidenciais entre figuras militares e políticas. As mensagens deveriam ser criptografadas para parecerem textos aleatórios para qualquer pessoa, exceto para o destinatário pretendido.
Atualmente, as técnicas originais de encriptação foram completamente rompidas. Elas foram rompidas a ponto de serem encontradas apenas nas seções de enigmas de alguns jornais. Felizmente, o campo fez grandes avanços em segurança, e os algoritmos usados hoje dependem de análises e matemática rigorosas para sua segurança.
À medida que a segurança avançou, o campo da criptografia se expandiu para incluir uma gama mais ampla de objetivos de segurança. Isso inclui autenticação de mensagens, integridade de dados, computação segura e muito mais.
A criptografia compõe a base da sociedade moderna. É a base de inúmeras aplicações de Internet através do Secure Hypertext Transfer Protocol (HTTPS), da comunicação segura de texto e voz e até de moedas digitais.
O que é encriptação?
Um algoritmo de encriptação é um procedimento que converte uma mensagem de texto não criptografado em um texto cifrado criptografado. Os algoritmos modernos usam matemática avançada e uma ou mais chaves criptografadas. Isso torna relativamente fácil criptografar uma mensagem, mas praticamente impossível descriptografá-la sem conhecer as chaves.
As técnicas de encriptação se dividem em duas categorias, simétricas e assimétricas, com base em como suas chaves funcionam.
O que é criptografia de chave simétrica?
Os algoritmos criptográficos de chave simétrica usam as mesmas chaves de encriptação tanto para a encriptação do texto não criptografado quanto para a desencriptação do texto cifrado. A encriptação simétrica requer que todos os destinatários da mensagem tenham acesso a uma chave compartilhada.
As ilustrações a seguir mostram como a encriptação e a desencriptação funcionam com chaves e algoritmos simétricos, presumindo que todas as partes compartilhem a mesma chave.
Na primeira ilustração, uma chave simétrica e um algoritmo são usados para converter uma mensagem de texto não criptografado em texto cifrado. A segunda ilustração mostra a mesma chave secreta e algoritmo simétrico sendo usados para transformar o texto cifrado em texto não criptografado.
Uma das cifras de bloco mais populares é o Advanced Encryption Standard (AES - Padrão Avançado de Criptografia). Essa cifra de bloco oferece suporte para chaves de 128, 192 ou 256 bits. O AES geralmente é combinado com o Galois/Counter Mode (GCM) e é conhecido como AES-GCM para criar um algoritmo de encriptação autenticado.
O AES é o padrão da indústria para encriptações realizadas em todo o mundo. Sua segurança é bem compreendida e implementações eficientes de software e hardware estão amplamente disponíveis.
O que é criptografia assimétrica (chave pública)?
A criptografia assimétrica (ou de chave pública) consiste em um amplo conjunto de algoritmos. Estes são baseados em problemas matemáticos que são relativamente fáceis de executar em uma direção, mas que não podem ser facilmente revertidos.
Um exemplo famoso desse tipo de problema é o problema da fatoração: para números primos p e q cuidadosamente escolhidos, podemos calcular o produto N=p*q rapidamente. No entanto, dado apenas N, é muito difícil recuperar p e q.
Um algoritmo criptográfico de chave pública comum baseado no problema de fatoração corresponde a função Rivest-Shamir-Adleman (RSA). Quando combinado com um esquema de preenchimento apropriado, a função RSA pode ser usada para várias finalidades, incluindo encriptação assimétrica.
Um esquema de encriptação é chamado assimétrico se utiliza uma chave (a chave pública) para criptografar dados, e uma chave diferente, mas matematicamente relacionada (a chave privada), para descriptografar dados.
Deve ser computacionalmente inviável determinar a chave privada se a única coisa que se conhece é a chave pública. Portanto, a chave pública pode ser amplamente distribuída enquanto a chave privada é mantida em segredo e segura. Juntas, as chaves são chamadas de par de chaves.
Um esquema de encriptação assimétrica popular é o RSA-OAEP, que é uma combinação da função RSA com o esquema de preenchimento Optimal Asymmetric Encryption Padding (OAEP). O RSA-OAEP é normalmente usado apenas para codificar pequenas quantidades de dados porque é lento e possui textos cifrados muito mais extensos que o texto não criptografado.
O que é encriptação híbrida?
Em razão de algoritmos de chave pública, como RSA-OAEP, serem menos eficientes do que suas contrapartes simétricas, eles não são comumente usados para criptografar dados diretamente. No entanto, desempenham um papel importante no ecossistema criptográfico ao fornecer um meio para trocas de chaves.
Para usar a encriptação simétrica, as partes devem compartilhar uma chave. Embora essa chave possa ser enviada por um canal criptografado existente, não haveria necessidade de uma nova chave se já tivéssemos um canal seguro. Em vez disso, resolvemos o problema de trocas de chaves usando criptografia de chave pública.
Aqui estão dois métodos comuns para a troca de chaves simétricas.
- Encriptação assimétrica. Uma das partes gera uma chave simétrica e, em seguida, criptografa a chave usando um algoritmo, como o RSA-OAEP, para a chave pública da outra parte. O destinatário pode decodificar o texto cifrado usando a chave privada para recuperar a chave simétrica.
- Troca de chaves de Diffie-Hellman (DH). O Diffie-Hellman é um tipo diferente de algoritmo criptográfico de chave pública. Ele foi projetado especificamente para ajudar as partes a concordar com uma chave simétrica na ausência de um canal seguro. O Diffie-Hellman é baseado em um problema matemático diferente quando comparado à função RSA e é menos flexível. No entanto, possui construções mais eficientes, o que o torna preferível em alguns casos de uso.
Essa combinação de criptografia de chave pública para trocas de chaves e criptografia simétrica para criptografia de dados em massa é conhecida como encriptação híbrida.
A encriptação híbrida usa as propriedades exclusivas da criptografia de chave pública para trocar informações secretas em um canal não confiável com a eficiência da encriptação simétrica. Isso garante uma solução prática completa para privacidade de dados.
A encriptação híbrida é usada extensivamente em protocolos de transferência de dados para a Web, como no Transport Layer Security (TLS). Quando você se conecta a um site que usa HTTPS (HTTP seguro com TLS), o navegador negociará os algoritmos criptográficos que protegem sua conexão. Isso inclui algoritmos para trocas de chaves, encriptação simétrica e assinaturas digitais.
O que é uma assinatura digital?
Os esquemas de assinatura digital são um tipo de criptografia de chave pública que garante integridade, autenticidade e não repúdio dos dados.
O processo de assinatura pode ser considerado como criptografar o arquivo usando uma chave privada. O signatário usa a chave privada para produzir uma “assinatura” em um documento digital, como um arquivo ou um pedaço de código.
Essa assinatura é exclusiva do par documento/chave privada e pode ser anexada ao documento e verificada com a chave pública do signatário. Dois algoritmos comuns para assinaturas digitais são RSA com Esquema de Assinatura Probabilística (RSA-PSS) e Algoritmo de Assinatura Digital (DSA).
O que é um código de autenticação de mensagens?
Um código de autenticação de mensagem (MAC) corresponde à versão simétrica de uma assinatura digital. Com um MAC, duas ou mais partes compartilham uma chave. Uma das partes cria uma etiqueta do MAC, que corresponde à versão simétrica de uma assinatura digital, e a anexa ao documento. Outra parte pode verificar a integridade da mensagem ao usar a mesma chave utilizada na criação da etiqueta.
Observe que diversas partes compartilham a chave utilizada na criação das etiquetas do MAC, portanto, os MACs não podem ser usados para autenticação ou não repúdio, pois não está claro qual parte criou a etiqueta.
Os MACs podem ser algoritmos autônomos, como o código de autenticação de mensagens por hash (HMAC). No entanto, como a integridade da mensagem é quase sempre uma garantia valiosa, ela é frequentemente integrada a algoritmos de encriptação simétrica como o AES-GCM.
O que é hash na criptografia?
Uma função de hash criptográfica é uma ferramenta que transforma dados arbitrários em uma “impressão digital” de extensão fixa. As funções de hash são projetadas para que seja difícil encontrar duas entradas diferentes que tenham a mesma impressão digital e para que seja difícil encontrar uma mensagem cuja impressão digital corresponda a um valor fixo.
Ao contrário dos esquemas de encriptação, esquemas de assinatura e MACs, as funções de hash não possuem uma chave. Qualquer pessoa pode calcular o hash de uma determinada entrada e a função de hash sempre produzirá o mesmo resultado considerando a mesma entrada.
As funções de hash são um componente essencial em algoritmos e protocolos criptográficos maiores. Isso inclui algoritmos de assinatura digital, algoritmos com MAC dedicados, protocolos de autenticação e armazenamento de senhas.
O que é criptografia de curva elíptica?
A criptografia de curva elíptica (ECC) é uma técnica de criptografia de chave pública baseada na teoria matemática das curvas elípticas.
A maior vantagem da ECC é que ela pode fornecer um nível de proteção semelhante às técnicas mais tradicionais, porém com chaves menores e operações mais rápidas. A eficiência da ECC a torna adequada para uso em dispositivos com poder computacional relativamente baixo, como telefones celulares.
A ECC pode ser usada para trocas de chaves eficientes ao utilizar uma variante da curva elíptica de Diffie-Hellman (ECDH) ou para assinaturas digitais ao utilizar o algoritmo de assinatura digital com curvas elípticas (ECDSA). Devido à sua velocidade e flexibilidade, a ECC é amplamente utilizada em aplicações na Internet.
O que é criptomoeda?
A criptomoeda é uma moeda digital na qual as transações são verificadas e os registros são mantidos por um sistema descentralizado e não por uma autoridade centralizada. A criptomoeda é um exemplo de uma aplicação de criptografia.
A criptomoeda usa diversos algoritmos criptográficos de baixo nível diferentes para criar uma plataforma confiável e segura. A criptomoeda usa muitos dos conceitos discutidos nesta página, por exemplo, criptografia de curva elíptica, assinaturas digitais, funções de hash e muito mais. Juntos, esses algoritmos permitem que a confiança e a responsabilidade sejam construídas sem uma autoridade centralizada.
O que é criptografia pós-quântica?
Nas últimas décadas, houve um investimento significativo em computação quântica. Computadores quânticos usam física quântica e podem resolver problemas matemáticos, como o problema de fatoração, que são computacionalmente inviáveis para computadores clássicos.
Um computador quântico de grande escala quebraria os criptossistemas de chave pública usados atualmente, incluindo criptossistemas baseados nas funções de Rivest-Shamir-Adleman (RSA). Uma quebra nesses algoritmos significaria a perda de confidencialidade e autenticação de diversas aplicações e protocolos usados.
Embora existam, atualmente, pequenos computadores quânticos, eles são pequenos demais para quebrar algoritmos criptográficos. Não se sabe se ou quando um computador quântico criptograficamente relevante (CRQC) estará disponível. São necessários avanços científicos significativos para o desenvolvimento de um CRQC.
A criptografia pós-quântica (PQC) refere-se a algoritmos criptográficos executados nos computadores usados atualmente, os quais não são conhecidos por serem vulneráveis a um computador quântico de grande escala.
Saiba mais sobre a participação da pesquisa e engenharia da AWS em projetos de criptografia de resistência quântica e grupos de trabalho com a comunidade criptográfica global em criptografia pós-quântica da AWS.
O que é computação criptográfica?
As ferramentas introduzidas até agora permitem que você use encriptação em repouso e em trânsito. Antigamente, os dados tinham que ser decodificados antes que pudessem ser usados em uma computação. A computação criptográfica preenche esse déficit fornecendo ferramentas para operar diretamente em dados protegidos criptograficamente.
O termo computação criptográfica abrange uma ampla gama de tecnologias, incluindo computação multipartidária segura, encriptação homomórfica e encriptação consultável. Embora difiram em detalhes, essas tecnologias protegem criptograficamente os dados de uma maneira que permite realizar computação nos dados protegidos e, ao mesmo tempo, preservar a confidencialidade desses dados.
Quais serviços criptográficos a AWS fornece aos clientes?
Os serviços criptográficos da AWS utilizam uma ampla variedade de tecnologias de encriptação e armazenamento que podem garantir a integridade de seus dados em repouso ou em trânsito. A AWS oferece diversas ferramentas para operações criptográficas:
- O AWS CloudHSM fornece módulos de segurança de hardware (HSMs) que podem armazenar com segurança uma variedade de chaves criptográficas, incluindo chaves raiz e chaves de dados.
- O AWS Key Management Service (KMS) fornece ferramentas para a geração de chaves-raiz e outras chaves de dados. O AWS KMS também interage com muitos outros produtos da AWS para criptografar os dados específicos do produto.
- O SDK de criptografia da AWS fornece uma biblioteca de criptografia do lado do cliente para implementar operações de encriptação e desencriptação em todos os tipos de dados.
- O Amazon DynamoDB Encryption Client fornece uma biblioteca de criptografia do lado do cliente para codificar tabelas de dados antes de enviá-las para um serviço de banco de dados, como o Amazon DynamoDB.
- O AWS Secrets Manager fornece encriptação e alternância de segredos criptografados usados com bancos de dados compatíveis com a AWS.
Muitos produtos da AWS dependem desses serviços criptográficos durante a transferência ou armazenamento de dados. Para obter uma lista desses produtos e uma visão geral de como eles usam práticas criptográficas, consulte Other AWS Services (Outros produtos da AWS).
A AWS também fornece bibliotecas criptográficas de código aberto:
- O AWS libcrypto (AWS-LC) fornece uma biblioteca criptográfica de uso geral mantida pela equipe de criptografia da AWS para a AWS e seus clientes. A base são o código do projeto Google BoringSSL e do projeto OpenSSL. O AWS-LC contém implementações C portáteis de algoritmos necessários para aplicações TLS e comuns. Para execução de algoritmos complexos, versões de conjuntos otimizadas estão inclusas para x86 e para ARM.
- O s2n-tls fornece uma implementação dos protocolos TLS/SSL projetada para ser simples, pequena, rápida e ter a segurança como prioridade.
Você também pode conferir o Amazon Science Blog e o AWS Security Blog. Neles, detalhamos o que estamos fazendo para desenvolver, comparar e criar protótipos de pesquisas criptográficas. Escrevemos sobre computação criptográfica, criptografia pós-quântica, código criptográfico verificado e muito mais.
Como posso usar serviços criptográficos na AWS que estejam em conformidade com regulamentações governamentais ou profissionais?
Os serviços criptográficos da AWS estão em conformidade com uma ampla variedade de padrões de segurança criptográfica, facilitando a proteção de seus dados sem se preocupar com regulamentações governamentais ou profissionais. Para obter uma lista completa de conformidades com os padrões de segurança de dados da AWS, consulte Programas de conformidade da AWS.
Próximas etapas da criptografia na AWS
Obtenha acesso instantâneo ao nível gratuito da AWS.