top of page

Criptografia

Criptografia ou criptologia (em grego: kryptós, "escondido", e gráphein, "escrita")[1] é o estudo e prática de princípios e técnicas para comunicação segura na presença de terceiros, chamados "adversários".[2] Mais geralmente, a criptografia refere-se à construção e análise de protocolos que impedem terceiros, ou o público, de lerem mensagens privadas.[3] Muitos aspectos em segurança da informação, como confidencialidadeintegridade de dadosautenticação e não-repúdiosão centrais à criptografia moderna. A criptografia moderna existe na interseção das disciplinas de matemática,[4][5] ciência da computaçãoengenharia elétricaciência da comunicação e física. Aplicações de criptografia incluem comércio eletrônicocartões de pagamento baseados em chipmoedas digitaissenhas de computadores e comunicações militares.

Uma informação não-cifrada que é enviada de uma pessoa (ou organização) para outra é chamada de "texto claro" (plaintext). Cifragem é o processo de conversão de um texto claro para um código cifrado e decifragem é o processo contrário, de recuperar o texto original a partir de um texto cifrado. De fato, o estudo da criptografia cobre bem mais do que apenas cifragem e decifragem. É um ramo especializado da teoria da informação com muitas contribuições de outros campos da matemática e do conhecimento, incluindo autores como MaquiavelSun Tzu e Karl von Clausewitz. A criptografia moderna é basicamente formada pelo estudo dos algoritmos criptográficos que podem ser implementados em computadores.

 

Visão geral: objetivos

A criptografia tem quatro objetivos principais:

  1. confidencialidade da mensagem: só o destinatário autorizado deve ser capaz de extrair o conteúdo da mensagem da sua forma cifrada. Além disso, a obtenção de informação sobre o conteúdo da mensagem (como uma distribuição estatística de certos caracteres) não deve ser possível, uma vez que, se o for, torna mais fácil a análise criptográfica.

  2. integridade da mensagem: o destinatário deverá ser capaz de verificar se a mensagem foi alterada durante a transmissão.

  3. autenticação do remetente: o destinatário deverá ser capaz de verificar que se o remetente é realmente quem diz ser.

  4. não-repúdio ou irretratabilidade do remetente: não deverá ser possível ao remetente negar a autoria de sua mensagem.

Nem todos os sistemas ou algoritmos criptográficos são utilizados para atingir todos os objetivos listados acima. Normalmente, existem algoritmos específicos para cada uma destas funções. Mesmo em sistemas criptográficos bem concebidos, bem implementados e usados adequadamente, alguns dos objetivos acima não são práticos (ou mesmo desejáveis) em algumas circunstâncias. Por exemplo, o remetente de uma mensagem pode querer permanecer anônimo, ou o sistema pode destinar-se a um ambiente com recursos computacionais limitados.

.

Protocolos
maquina enigma.jpg

PROTOCOLOS 

 

Na ciência da computação, um protocolo é uma convenção que controla e possibilita uma conexão, comunicação, transferência de dados entre dois sistemas computacionais.

De maneira simples, um protocolo pode ser definido como "as regras que governam" a sintaxe, semântica e sincronização da comunicação. Os protocolos podem ser implementados pelo hardwaresoftware ou por uma combinação dos dois.

 

Propriedades típicas

 

É difícil generalizar sobre protocolos pois eles variam muito em propósito e sofistificação. A maioria dos protocolos especifica uma ou mais das seguintes propriedades:

  • detecção da conexão física subjacente ou a existência de um nó;

  • handshaking (estabelecimento de ligação);

  • negociação de várias características de uma conexão;

  • como iniciar e finalizar uma mensagem;

  • como formatar uma mensagem;

  • o que fazer com mensagens corrompidas ou mal formatadas;

  • como detectar perda inesperada de conexão e o que fazer em seguida.

 

Importância

 

O uso do funcionamento de protocolos difundidos e a expansão dos protocolos de comunicação é ao mesmo tempo um pré-requisito e uma contribuição para o poder e sucesso da Internet. O par formado por IP e TCP é uma referência a uma coleção dos protocolos mais utilizados. A maioria dos protocolos para comunicação via Internet é descrita nos documentos RFC do IETF.

Geralmente apenas os protocolos mais simples são utilizados sozinhos. A maioria dos protocolos, especialmente no contexto da comunicação em rede de computadores, são agrupados em pilhas de protocolo onde as diferentes tarefas que perfazem uma comunicação são executadas por níveis especializados da pilha.

Enquanto uma pilha de protocolos denota uma combinação específica de protocolos que trabalham conjuntamente, um modelo de referência é uma arquitetura de software que lista cada um dos níveis e os serviços que cada um deve oferecer. O modelo clássico OSI, em sete níveis, é utilizado para conceitualizar pilhas de protocolo.

 

Terminologia

O primeiro uso do termo criptógrafo (em oposição a criptograma) remonta ao século 19 - originou-se em O escaravelho de ouro, um romance de Edgar Allan Poe.[7]

Até os tempos modernos, a criptografia se referia quase que exclusivamente à encriptação, que é o processo de converter informações comuns (chamadas de texto puro) em texto ininteligível (chamado de texto cifrado).[8] A decriptação é o inverso, em outras palavras, passar o texto cifrado ininteligível de volta para texto puro. Uma cifra é um par de algoritmos que cria a criptografia e a descriptografia reversa. A operação detalhada de uma cifra é controlada tanto pelo algoritmo quanto em cada instância por uma "chave". A chave é um segredo (idealmente conhecido apenas pelos comunicantes), geralmente uma pequena sequência de caracteres, necessária para descriptografar o texto cifrado.

 

Formalmente, um "sistema de criptografia" é a lista ordenada de elementos de possíveis textos simples finitos, possíveis textos de cifra finitos, chaves finitas possíveis e os algoritmos de criptografia e decriptografia que correspondem a cada chave. As chaves são importantes formalmente e na prática real, já que cifras sem chaves variáveis ​​podem ser trivialmente rompidas apenas com o conhecimento da cifra usada e, portanto, são inúteis (ou mesmo contraproducentes) para a maioria dos propósitos.

Historicamente, as cifras costumavam ser usadas diretamente para criptografia ou descriptografia sem procedimentos adicionais, como verificações de autenticaçãoou integridade. Existem dois tipos de cripto-sistemas: simétricos e assimétricos. Em sistemas simétricos, a mesma chave (a chave secreta) é usada para criptografar e descriptografar uma mensagem. A manipulação de dados em sistemas simétricos é mais rápida do que sistemas assimétricos, já que geralmente usam comprimentos de chaves mais curtos.

 

Os sistemas assimétricos usam uma chave pública para criptografar uma mensagem e uma chave privada para descriptografá-la. O uso de sistemas assimétricos aumenta a segurança da comunicação.[9] Exemplos de sistemas assimétricos incluem RSA (Rivest-Shamir-Adleman) e ECC (Criptografia de curva elíptica). Modelos simétricos incluem o comumente usado AES (Advanced Encryption Standard) que substituiu o antigo DES (Data Encryption Standard).[10]

No uso coloquial, o termo "código" é freqüentemente usado para significar qualquer método de criptografia ou ocultação de significado. No entanto, na criptografia, código tem um significado mais específico. Significa a substituição de uma unidade de texto puro (ou seja, uma palavra ou frase significativa) por uma palavra-código (por exemplo, "canguru" substitui "ataque ao amanhecer").

Criptoanálise é o termo usado para o estudo de métodos para obter o significado de informação criptografada sem acesso à chave normalmente requerida para isso, ou seja, é o estudo de como quebrar algoritmos de criptografia ou suas implementações.

Alguns usam os termos criptografia e criptologia de maneira intercambiável em Português, enquanto outros (incluindo a prática militar dos EUA em geral) usam criptografia para se referir especificamente ao uso e prática de técnicas criptográficas e criptologia para se referir ao estudo combinado de criptografia e criptoanálise.[11][12] O inglês é mais flexível do que vários outros idiomas nos quais a criptologia(feita por criptólogos) é sempre usada no segundo sentido acima.

esteganografia é o estudo das técnicas de ocultação de mensagens dentro de outras, diferentemente da Criptografia, que a altera de forma a tornar seu significado original ininteligível. A Esteganografia não é considerada parte da Criptologia, apesar de a RFC 2828 informa que a esteganografia é às vezes incluída na criptologia.[13] A Esteganálise é o equivalente a criptoanálise com relação à Esteganografia.[14]

O estudo das características das línguas que têm alguma aplicação em criptografia ou criptologia (por exemplo, dados de frequência, combinações de letras, padrões universais, etc.) é chamado de criptolinguística.​

Esteganografia
Steganography_in_the_hand_of_John_Dee.pn
esteganografia em imagem.png

ESTEGANOGRAFIA

 

Esteganografia (do grego "escrita escondida") é o estudo e uso das técnicas para ocultar a existência de uma mensagem dentro de outra, uma forma de segurança por obscurantismo. O primeiro uso registrado da palavra data do ano de 1499, no livro Steganographia, de Johannes Trithemius.

Esteganografia é o ramo particular da criptologia que consiste em fazer com que uma forma escrita seja camuflada em outra a fim de mascarar o seu verdadeiro sentido. É importante frisar a diferença entre criptografia e esteganografia. Enquanto a primeira oculta o significado da mensagem, a segunda oculta a existência da mensagem.

Um exemplo básico de técnica moderna de esteganografia é a alteração do bit menos significativo de cada pixel de uma imagem colorida de forma a que ele corresponda a um bit da mensagem. Essa técnica, apesar de não ser ideal, pouco afeta o resultado final de visualização da imagem.

Utilização

A esteganografia inclui um vasto conjunto de métodos para comunicações secretas desenvolvidos ao longo da história. Dentre tais métodos, estão: tintas “invisíveis”, micropontos, arranjo de caracteres (character arrangement), assinaturas digitais, canais escondidos (covert channels), comunicações por espalhamento de espectro (spread spectrum communications), entre outras.

A esteganografia possui algumas aplicações práticas interessantes. Ela é uma das técnicas utilizadas para implementar mecanismos de verificação de direitos autorais em imagens e outras mídias. Além disso, pode ser utilizada para a divulgação de mensagens sem o conhecimento da existência dessas mensagens por parte de outros interessados.

Técnicas de esteganografias podem ser empregadas em diversos meios, digitais ou não, tais como textos, imagens, áudios, vídeos, e espalhamento de espectro.

Imagens

 

Muitas técnicas modernas possibilitam esconder informações dentro de imagens. A forma mais utilizada emprega a técnica denominada LSB (Least Significant Bit), que consiste em utilizar o bit menos significativo de uma determinada informação para armazenar um bit de uma nova informação. No caso de uma imagem com profundidade de cor de 24 bits, um bit de uma nova informação pode ser armazenado no bit menos significativo de cor dos pixels, ou seja, o bit menos significativo dos 24.

Considere o valor dos caracteres ASCII em binário da palavra "Wikipedia":

W i k i p e d i a

01110111 01101001 01101011 01101001 01110000 01100101 01100100 01101001 01100001

Na forma apresentada, a palavra "Wikipedia" é representada utilizando 72 bits. Sendo assim, precisaremos de uma imagem com no mínimo 72 pixels. Para armazenar a letra 'W', podemos utilizar o bit menos significativo de cor dos 8 primeiros pixels. O primeiro bit do caractere 'W' é 1, se o bit menos significativo do primeiro pixel for 1, o valor é mantido, caso contrário é trocado para 1. Caso o bit a ser armazenado tenha valor 0, por exemplo o quarto bit do caractere 'W', a mesma regra é usada, se o bit menos significativo do quarto pixel for 0, o valor é mantido, caso contrário é trocado. Este procedimento deve ser repetido por todos os bits de cada caractere. No fim teremos uma imagem armazenando a palavra "Wikipedia" com ruído de 1 bit por pixel. Para extrair a informação da imagem, basta fazer o processo reverso. Leia o valor de cor cada pixel e armazene apenas o bit menos significativo.

 

Provavelmente, será necessário armazenar o pixel que termina a informação.

É possível armazenar mais que um bit por pixel, porém isto aumentará o ruído da imagem. Uma maneira de armazenar mais informação, por exemplo, é armazenar um bit da nova informação no bit menos significativo de cada cor do pixel. Numa imagem RGB de 24 bit, as cores vermelho, verde e azul são representadas utilizando 8 bit cada uma. O mesmo processo apresentado anteriormente pode ser realizado para cada cor do pixel. Assim serão armazenados 3 bits por pixel.

Textos

Um exemplo trivial, que fica na fronteira entre esteganografia e criptografia: Windsurf Isso Kyrie! Ideal Para Este Dia Insuportavelmente Alegre ou Windows inova Kernel. Inovação pode expor dados incautos armazenados. Lendo apenas as iniciais de cada palavra acima teremos: Wikipedia. Com a utilização de um programa de computador, é possível criar implementações mais sofisticados utilizando fórmulas com valor binário ou ASCII dos caracteres.

Classificação da Esteganografia

classific.esteganografia.png

História

Ver artigo principal: História da criptografia

Antigamente, a cifragem era utilizada na troca de mensagens, sobretudo em assuntos ligados à guerra (no intuito de o inimigo não descobrir a estratégia do emissor da mensagem, caso se apoderasse dela), ao amor (para que os segredos amorosos não fossem descobertos pelos familiares) e à diplomacia (para que facções rivais não estragassem os planos de acordos diplomáticos entre nações). O primeiro uso documentado da criptografia foi em torno de 1900 a.c., no Egito, quando um escriba usou hieróglifos fora do padrão numa inscrição.

Entre 600 a.c. e 500 a.c., os hebreus utilizavam a cifra de substituição simples (de fácil reversão e fazendo uso de cifragem dupla para obter o texto original), sendo monoalfabético e monogrâmica (os caracteres são trocados um a um por outros), e com ela escreveram o Livro de Jeremias.

O chamado "Codificador de Júlio César" ou "Cifra de César" que apresentava uma das técnicas mais clássicas de criptografia, é um exemplo de substituição que, simplesmente, substitui as letras do alfabeto avançando três casas. O autor da cifragem trocava cada letra por outra situada a três posições à frente no alfabeto. Segundo o autor, esse algoritmo foi responsável por enganar muitos inimigos do Império Romano; no entanto, após ter sido descoberta a chave, como todas, perdeu sua funcionalidade.

Destacam-se os estudos de Blaise de Vigenère que constituíram um método muito interessante; é a cifra de Vigenère que utiliza a substituição de letras. Tal processo consiste na sequência de várias cifras (como as de César) com diferentes valores de deslocamento alfanumérico. A partir desse período, Renascença, a criptologia começou a ser seriamente estudada no Ocidente e, assim, diversas técnicas foram utilizadas e os antigos códigos monoalfabéticos foram, aos poucos, sendo substituídos por polialfabéticos.

Dos anos 700 a 1200, são relatados incríveis estudos estatísticos, em que se destacam expoentes como al-KhalilAlcindiIbn Dunainir e Ibn Adlan, que marcaram sua época. Na Idade Média, a civilização árabe-islâmica contribuiu muito para os processos criptográficos, sobretudo quanto à criptoanálise (análise da codificação, a procura de padrões que identificassem mensagens camufladas por códigos).

Na Idade Moderna, merecem destaque o holandês Kerckhoff e o alemão Kasiski. Modernamente, em 1918Arthur Scherbius desenvolveu uma máquina de criptografia chamada Enigma, utilizada amplamente pela marinha de guerra alemã em 1926, como a principal forma de comunicação.

Em 1928, o exército alemão construiu uma versão conhecida como "Enigma G", que tinha como garantidor de segurança a troca periódica mensal de suas chaves. Essa máquina tinha como diferencial ser elétrico-mecânica, funcionando com três (inicialmente) a oito rotores. Aparentava ser uma máquina de escrever, mas quando o usuário pressionava uma tecla, o rotor da esquerda avançava uma posição, provocando a rotação dos demais rotores à direita, sendo que esse movimento dos rotores gerava diferentes combinações de encriptação.

Assim, a codificação da mensagem pelas máquinas "Enigma" era de muito difícil decodificação, uma vez que, para isso, era necessário ter outra máquina dessas e saber qual a chave (esquema) utilizada para realizar a codificação.

A Colossus surgiu do esforço de engenharia reversa das forças aliadas em decriptar as mensagens da marinha e do exército alemão, só logrando efetivo êxito após se ter conseguido uma máquina Enigma alemã (furtada). Tais equipamentos foram, inicialmente, desenvolvidos como máquinas de decriptação, mas depois passaram a codificar mensagens das forças aliadas.

Depois, surgiram outras máquinas fisicamente semelhantes à Enigma (pareciam com antigas máquinas de escrever), porém foram aperfeiçoadas de forma a dificultar o mais possível a decriptação por quem não as possuísse.

Devido aos esforços de guerra, a criptografia passou a ser largamente utilizada. Em 1948Claude Shannon desenvolveu a Teoria Matemática da Comunicação, que permitiu grandes desenvolvimentos nos padrões de criptografia e na criptoanálise.

Durante a chamada "Guerra Fria", entre Estados Unidos e União Soviética, foram criados e utilizados diversos métodos a fim de esconder mensagens a respeito de estratégias e operações, criptografadas com diferentes métodos e chaves.

Diffie e Hellman revolucionaram os sistemas de criptografia existentes até 1976, a partir do desenvolvimento de um sistema de criptografia de chave pública que foi aperfeiçoado por pesquisadores do MIT e deu origem ao algoritmo RSA.

Além dos avanços da criptografia, a criptoanálise se desenvolveu muito com os esforços de se descobrir padrões e chaves, além da diversidade dos canais de propagação das mensagens criptografadas. Desses esforços, surgiram diversos tipos de criptografia, tais como por chave simétrica, por chave assimétrica, por hash e até a chamada criptografia quântica, que se encontra, hoje, em desenvolvimento.

Durante muito tempo, o termo referiu-se exclusivamente à cifragem, o processo de converter uma informação comum (texto claro) em algo não-inteligível; o qual chama-se texto cifrado. A decifragem é a tarefa contrária, dado uma informação não-inteligível convertê-la em texto claro. No uso coloquial, o termo "código" é usado para referir-se a qualquer método de cifragem ou similar. Em criptografia, "código" tem um significado mais específico, refere-se a substituição de uma unidade significativa (i.e., o significado de uma palavra ou frase) pelo substituto equivalente. Códigos não são mais usados na criptografia moderna, visto que o uso de cifras se tornou mais prático e seguro, como também melhor adaptado aos computadores.

Nos dias atuais, onde grande parte dos dados é digital, sendo representados por bits, o processo de criptografia é basicamente feito por algoritmos que fazem o embaralhamento dos bits desses dados a partir de uma determinada chave ou par de chaves, dependendo do sistema criptográfico escolhido. Atualmente, a criptografia é amplamente utilizada na WEB, em segurança a fim de autenticar os usuários para lhes fornecer acesso, na proteção de transações financeiras e em redes de comunicação.​​

historia
CifrasCodigos

Cifras e Códigos

 

cifra é um ou mais algoritmos que cifram e decifram um texto. A operação do algoritmo costuma ter como parâmetro uma chave criptográfica. Tal parâmetro costuma ser secreto (conhecido somente pelos comunicantes). A cifra pode ser conhecida, mas não a chave; assim como se entende o mecanismo de uma fechadura comum, mas não se pode abrir a porta sem uma chave real.

Na linguagem não-técnica, um Código secreto é o mesmo que uma cifra. Porém, na linguagem especializada os dois conceitos são distintos. Um código funciona manipulando o significado - que é o conceito, normalmente pela substituição simples de palavras ou frases. Uma cifra, ao contrário, trabalha com o significante - que é a forma, da representação da mensagem (letras, grupos de letras ou, atualmente, bits).

Por exemplo, um código seria substituir a frase "Atacar imediatamente" por "Mickey Mouse". Uma cifra seria substituir essa frase por "sysvst ozrfosyszrmyr". No Dia D, por exemplo, as praias de desembarque não eram conhecidas pelo seu nome próprio, mas pelos seus códigos (OmahaJuno, etc.). Basicamente, códigos não envolvem chave criptográfica, apenas tabelas de substituição ou mecanismos semelhantes. Códigos podem ser então encarados como cifras cuja chave é o próprio conhecimento do mecanismo de funcionamento da cifra.

Chave Criptográfica

Uma chave criptográfica é um valor secreto que interage com o algoritmo de encriptação. A fechadura da porta da frente da sua casa tem uma série de pinos. Cada um desses pinos possui múltiplas posições possíveis. Quando alguém põe a chave na fechadura, cada um dos pinos é movido para uma posição específica. Se as posições ditadas pela chave são as que a fechadura precisa para ser aberta, ela abre, caso contrário, não.​

Evolução
Criptografia Clássica

Podemos dizer que o uso da criptografia é tão antigo quanto a necessidade do homem em esconder a informação. Muitos pesquisadores atribuem o uso mais antigo da criptografia conhecido aos hieróglifos usados em monumentos do Antigo Egito (cerca de 4500 anos atrás). Diversas técnicas de ocultar mensagens foram utilizadas pelos gregos e romanos.

A criptografia pré-computacional era formada por um conjunto de métodos de substituição e transposição dos caracteres de uma mensagem que pudessem ser executados manualmente (ou até mesmo mentalmente) pelo emissor e pelo destinatário da mensagem. O surgimento de máquinas especializadas e, posteriormente, dos computadores ocasionou uma significativa evolução das técnicas criptográficas.

Criptografia Moderna

A era da criptografia moderna começa realmente com Claude Shannon, possivelmente o pai da criptografia matemática. Em 1949 ele publicou um artigo Communication Theory of Secrecy Systems com Warren Weaver. Este artigo, junto com outros de seus trabalhos que criaram a área de Teoria da Informação estabeleceu uma base teórica sólida para a criptografia e para a criptoanálise. Depois disso, quase todo o trabalho realizado em criptografia se tornou secreto, realizado em organizações governamentais especializadas (como o NSA nos Estados Unidos). Apenas em meados de 1970 as coisas começaram a mudar.

Em 1976 aconteceram dois grandes marcos da criptografia para o público. O primeiro foi a publicação, pelo governo americano, do DES (Data Encryption Standard), um algoritmo aberto de criptografia simétrica, selecionado pela NIST em um concurso onde foi escolhido uma variante do algoritmo Lucifer, proposto pela IBM. O DES foi o primeiro algoritmo de criptografia disponibilizado abertamente ao mercado.

O segundo foi a publicação do artigo New Directions in Cryptography por Whitfield Diffie e Martin Hellman, que iniciou a pesquisa em sistemas de criptografia de chave pública. Este algoritmo ficou conhecido como "algoritmo Diffie-Hellman para troca de chaves" e levou ao imediato surgimento de pesquisas neste campo, que culminou com a criação do algoritmo RSA, por Ronald Rivest, Adi Shamir e Leonard Adleman.

Criptografia Quântica

 

Desenvolvimento da técnica reunindo o conceito de criptografia e a teoria quântica é mais antigo do que se imagina, sendo anterior à descoberta da criptografia de Chave Pública. Stephen Wiesner escreveu um artigo por volta de 1970 com o título: "Conjugate Coding" que permaneceu sem ser publicado até o ano de 1983. Em seu artigo, Wiesner explica como a teoria quântica pode ser usada para unir duas mensagens em uma única transmissão quântica na qual o receptor poderia decodificar cada uma das mensagens porém nunca as duas simultaneamente, pela impossibilidade de violar uma lei da natureza (o princípio de incerteza de Heisenberg).[15]

Utilizando-se pares de fótons, a criptografia quântica permite que duas pessoas escolham uma chave secreta sem jamais terem se visto, trocado alguma mensagem ou mesmo algo material. A criptografia quântica oferece a possibilidade de gerar uma chave segura se o sinal é um objeto quântico, assim, o termo mais correto seria Distribuição de Chave Quântica (Quantum Key Distribution - QKD) e não Criptografia Quântica. É interessante notar que a Criptologia atual está amparada na Matemática mas com a introdução desse conceito de mensagens criptografadas por chaves quânticas a física passou a ter importância primordial no tema. O maior problema para implementação da Criptografia quântica ainda é a taxa de erros na transmissão dos fótons seja por via aérea ou fibra ótica. Os melhores resultados obtidos atualmente se dão em cabos de fibra ótica de altíssima pureza, e conseqüentemente elevadíssimo custo também, alcançando algo em torno de 70 km.

Por via aérea a distância chega a algumas centenas de metros e qualquer tentativa de se aumentar essa distância tanto em um quanto em outro método a taxa de erros se torna muito grande e inviabiliza o processo. O desenvolvimento de tecnologias que permitam o perfeito alinhamento dos polarizadores, fibras óticas melhores e amplificadores quânticos de sinais permitirá que o sistema de Distribuição de Chaves Quânticas venha a ser o novo padrão de segurança de dados.

A Criptografia Quântica se destaca em relação aos outros métodos criptográficos pois não necessita do segredo nem do contato prévio entre as partes, permite a detecção de intrusos tentando interceptar o envio das chaves, e é incondicionalmente segura mesmo que o intruso tenha poder computacional ilimitado. A única forma possível de falha no processo seria se utilizar de um ardil onde a comunicação fosse interceptada e substituída, tanto para o emissor quanto para o receptor, criando assim um canal de comunicação controlado pelo intruso. O processo ainda apresenta um elevado custo de implantação, mas o desenvolvimento tecnológico poderá torná-la acessível a todas as aplicações militares, comerciais e de fins civis em geral.

Shannon

Claude Shannon

 

Claude Elwood Shannon (30 de abril de 1916 — 24 de fevereiro de 2001) foi um matemáticoengenheiro eletrônico e criptógrafo estadunidense, conhecido como "o pai da teoria da informação".[2][3]

De 1932 a 1936, estudou matemática e engenharia elétrica na Universidade de Michigan.

Em 1948, publicou o importante artigo científico intitulado A Mathematical Theory of Communication enfocando o problema de qual é a melhor forma para codificar a informação que um emissor queira transmitir para um receptor. Neste artigo, trabalhando inclusive com as ferramentas teóricas utilizadas por Norbert Wiener, Claude Shannon propôs com sucesso uma medida de informação própria para medir incerteza sobre espaços desordenados (mais tarde complementada por Ronald Fisher, que criou uma medida alternativa de informação apropriada para medir incerteza sobre espaços ordenados).

 

Em 1949, em co-autoria com o também matemático estadunidense Warren Weaver (1894-1978), publicou o livro Teoria Matemática da Comunicação (The Mathematical Theory of Communication),[4] contendo reimpressões do seu artigo científico de 1948 de forma acessível também a não-especialistas - isto popularizou seus conceitos.

 

Entre 1946 e 1953, Claude Shannon integrou temporariamente o grupo reunido sob o nome de Macy Conferences, contribuindo para a consolidação da teoria cibernética junto com outros cientistas renomadosArturo RosenbluethGregory BatesonHeinz von FoersterJohn von NeumannJulian BigelowKurt LewinLawrence KubieLawrence K. FrankLeonard Jimmie SavageMargaret MeadMolly HarrowerNorbert WienerPaul LazarsfeldRalph Waldo Gerard Walter PittsWarren McCulloch e William Ross Ashby; além de Erik Erikson e Max Delbrück.

 

Shannon é famoso por ter fundado a teoria da informação com um artigo publicado em 1948. Mas a ele também é creditado como fundador tanto do computador digital como do projeto de circuito digital em 1937, quando, com 21 anos de idade e aluno de mestrado no MIT, ele escreveu uma tese demonstrando que uma aplicação elétrica utilizando álgebra booleana poderia resolver qualquer problema de lógica. Tem sido dito que esta foi a tese de mestrado de mais importância de todos os tempos.[5] Shannon contribui para o campo da criptoanálise durante a segunda guerra mundial.

 

Teoria booleana

 

Em 1932 Shannon começou a cursar a Universidade de Michigan, formando em 1936 com duas graduações de bacharelado em engenharia elétrica e matemática. Posteriormente, começou seus estudos de pós-graduação no Instituto de Tecnologia de Massachusetts (MIT), onde trabalhou com o analisador diferencial de Vannevar Bush, um computador lógico.[8]

 

Ao estudar os complexos circuitos ad hoc do analisador diferencial, Shannon viu que os conceitos de George Boole, inventor da álgebra booleana, poderiam ser úteis para várias coisas. Um documento eleborado a partir da sua tese de mestrado em 1937, A Symbolic Analysis of Relay and Switching Circuits,[9] foi publicado na edição de 1938 da Transactions of the American Institute of Electrical Engineers

Howard Gardner, da universidade de Harvard, chamou a tese de Shannon como "possivelmente a mais importante e também a mais famosa tese de mestrado do século."

 

Neste trabalho, Shannon provou que a álgebra booleana e a aritmética binária poderiam ser utilizadas para simplificar o arranjo dos relés eletromecânicos e então utilizados em comutadores para roteamento telefônico. Expandindo o conceito ele também mostrou que deveria ser possível a utilização de arranjos de relés para resolver problemas de álgebra booleana. A exploração dessa propriedade de interruptores elétricos criou a lógica e os conceitos mais básicos dos computadores digitais.

 

O trabalho de Shannon tornou-se o princinpal na área de circuitos digitais quando se tornou amplamente conhecido entre a comunidade de engenharia elétrica durante e após a segunda guerra mundial. O trabalho teórico rigoroso de Shannon substituiu completamente os métodos ad hoc que haviam prevalecido anteriormente.

 

Em 1940, Shannon se tornou pesquisador do Instituto nacional de Estudos Avançados em Princeton, Nova Jersey. Em Princeton, Shannon teve a oportunidade de discutir suas ideias com cientistas e matemáticos influentes como Hermann Weyl e John von Neumann, além de um encontro ocasional com Albert Einstein. Shannon trabalhou livremente em todas as áreas, e começou a moldar as ideias que se tornariam a teoria da informação.[10]

Class x Quant

Criptografia Clássica x Quântica

A criptografia quântica é um afluente em desenvolvimento da criptografia que utiliza os princípios da Mecânica Quântica para garantir uma comunicação segura. Com ela, emissor e receptor podem criar e partilhar uma chave secreta para criptografar e decifrar suas mensagens.

A criptografia quântica destaca-se face aos outros métodos criptográficos por não necessitar de comunicações secretas prévias, permitir a detecção de intrusos e ser segura mesmo que o intruso possua um poder computacional ilimitado. Na verdade, ela é totalmente segura, exceto nas situações em que o intruso consiga remover e inserir mensagens do canal de transmissão (poder ler e remover a mensagem, criar uma cópia e reenviá-la). Assim, esta técnica criptográfica seria mais segura que as utilizadas atualmente, pois se baseia em leis da física, enquanto as atuais asseguram os dados com base em funções que são secretas somente porque o poder computacional é limitado.

É importante observar que a criptografia quântica só será utilizada para produzir e distribuir as chaves, não para transmitir a mensagem. A chave gerada poderá ser utilizada com qualquer algoritmo de criptografia escolhido. O algoritmo mais comumente associado com a criptografia quântica é o one-time pad, pois ele tem comprovadamente uma segurança perfeita[1] quando usado com uma chave aleatória e do mesmo tamanho que a mensagem.[2] [3]

Criptografia Clássica

Ver artigo principal: Criptografia

A criptografia é uma ciência de comunicação que visa tornar secretos os dados transferidos e é cada vez mais essencial dado o crescimento das redes de computadores e das quantidades de dados transferidos. Para que as comunicações sejam seguras, é necessário garantir que o destinatário seja o único a compreender a mensagem e para tal utilizam-se chaves que permitem cifrar e decifrar a mensagem.

Existem dois modelos e criptografia baseados em chaves:

  • criptografia de chave secreta (ou criptografia simétrica): utiliza a mesma chave para cifrar e decifrar, por isso esta chave deve ser previamente conhecida por emissor e receptor.

  • criptografia de chave pública/privada (ou criptografia assimétrica): utiliza chaves distintas para o emissor (chave pública) e o receptor (chave privada), com a característica de que não é possível derivar a chave privada a partir da chave pública.

Limitações da Criptografia Clássica

A principal limitação da criptografia simétrica está na distribuição das chaves, pois após sua geração elas têm de ser enviadas para o emissor e destinatário. No entanto, a mensagem com a chave sofre o mesmo perigo de ser interceptada e precisaria de um meio seguro para ser enviada.

Na década de 70, com o desenvolvimento de sistemas que utilizavam uma chave pública para cifrar e uma chave privada para decifrar o problema ficou semi-resolvido, visto que não seria mais necessária a distribuição de chaves. Esse sistema é baseado em operações matemáticas que são mais fáceis de serem computadas num sentido que no outro. Infelizmente a segurança dos mesmos está apenas na limitação computacional, como a dificuldade de fatorização de números primos com muitos dígitos, os logaritmos discretos, entre outros.

Atualmente, o sistema mais comum (RSA) baseia-se na fatorização de números, porém com a constante evolução tecnológica e o desenvolvimento de computadores quânticos é possível que num futuro próximo a fatorização de números primos de grandes dimensões seja processada muito mais rapidamente, tornando este método de criptografia pouco viável.

Diferença entre Criptografia e Computação Quântica

Ver artigo principal: Computação Quântica

O conceito de Criptografia Quântica, no entanto, não deve ser confundido com o de computação quântica. A Computação Quântica é uma área da física e engenharia em desenvolvimento que pretende projetar e construir um computador que, em teoria, teria uma capacidade de processamento muito superior ao dos computadores atuais por conseguirem realizar cálculos simultâneos.

Um computador quântico é um dispositivo que executa cálculos fazendo uso direto de propriedades da mecânica quântica, tais como sobreposição e interferência. Teoricamente, computadores quânticos podem ser implementados e o mais desenvolvido atualmente trabalha com poucos qubits de informação. O principal ganho desses computadores é a possibilidade de resolver em tempo eficiente, alguns problemas que na computação clássica levariam tempo impraticável, como por exemplo: fatoração, busca de informação em bancos não ordenados, entre outros.

Distribuição de Chaves Quânticas

Para compreender este Sistema de Distribuição de Chaves são necessários alguns conhecimentos de Mecânica Quântica. Esta ciência nos diz que as partículas não existem num estado quânticoespecífico, mas sim em vários estados ao mesmo tempo, com diferentes probabilidades de estarem em cada um caso alguém as observe. O Princípio da Incerteza de Heisenberg garante-nos não ser possível determinar em simultâneo todos os estados físicos de uma partícula sem interferir na mesma, alterando-a de forma inegável. A comunicação quântica envolve criptografar informação em estados quânticos, ou qubits, ao invés dos bits usados na comunicação clássica. Normalmente, fótons (português brasileiro) ou fotões (português europeu) são usados como qubits.

A criptografia quântica explora certas propriedades desses estados quânticos para garantir sua segurança. Existem diferentes formas de distribuição de chaves quânticas, mas elas podem ser divididas em duas categorias principais, dependendo de qual propriedade ela utiliza.

Protocolos de Preparar e Medir 

Diferente da física clássica, o ato de medir é parte importante da mecânica quântica. Em geral, medir um estado quântico desconhecido irá modificar aquele estado de alguma forma. Isso pode ser explorado de forma a detectar um espião na comunicação, que necessariamente terá que medir um estado quântico e acabará por alterá-lo.

Protocolos baseados em Emaranhamento Quântico 

O estado quântico de dois (ou mais) objetos separados pode se tornar ligado de uma tal maneira que eles tem que ser descritos como um estado quântico emaranhado, não como objetos individuais. Isso é conhecido como emaranhamento quântico e significa, por exemplo, que realizar uma medida em um objeto irá afetar o outro. Se um par de objetos emaranhados é compartilhado por emissor e receptor, qualquer pessoa tentando interceptar uma das partículas irá alterar todo o sistema, permitindo que sua presença seja detectada.

Protocolo BB84

Esse protocolo, conhecido como BB84[4] em função de seus inventores e do ano de publicação[5], foi originalmente descrito utilizando os estados de polarização dos fótons para transmitir a informação. Ao trocarem entre as suas várias posições possíveis, os fótons vibram e se, num grupo de fótons, todos vibram na mesma direção, então eles estão polarizados. Utilizando filtros polarizadores é possível restringir a passagem aos fótons polarizados numa determinada direção, bloqueando os restantes. Para medir a polarização de um fóton são utilizadas bases de medida, que são compostas por duas direções que façam um ângulo reto. Por exemplo: horizontal e vertical, ou diagonal à esquerda e à direita. No entanto, qualquer dois pares de variáveis conjugadas pode ser utilizado para o protocolo.

Os estados de polarização mais utilizados são:

  • Base retilínea com vertical (0°) e horizontal (90°),

  • Base diagonal com os ângulos de 45° e 135°

  • Base circular com a direita e esquerda, seguindo a regra da mão direita.

Qualquer duas bases listadas acima são conjugadas uma das outra e então podem ser utilizadas para o protocolo. Nos exemplos a seguir, as bases retilínea e diagonal são utilizadas.

O emissor (tradicionalmente conhecido como Alice) e o receptor (Bob) estão conectados por um canal de comunicação quântica, que permite a transmissão de estados quânticos, por exemplo, fibra ótica, que permite a transmissão de fótons. Eles também se comunicam via um canal clássico público, como telefone ou internet. Nenhum desses canais precisa ser seguro; o protocolo é escrito assumindo-se que um espião (chamado de Eva) pode interferir de qualquer maneira com qualquer um dos canais.

O primeiro passo no protocolo BB84 é a transmissão quântica. Alice cria um bit aleatório (0 ou 1) e depois aleatoriamente seleciona uma das duas bases (retilínea ou diagonal nesse caso) para transmitir o fóton. Ela então prepara a polarização do fóton dependendo da base e do valor do bit. Alice então transmite um único fóton no estado especificado para o Bob, usando o canal quântico. Esse processo é repetido desde a criação do bit aleatório, com Alice anotando o valor do bit, a base utilizada e a hora que o fóton foi enviado.

A mecânica quântica diz que não existe medida possível que possa distinguir entre 4 estados diferentes de polarização, visto que eles não são todos ortogonais. A única medida possível é entre qualquer dois estados ortogonais (ou base). Se Bob, por exemplo, medir na base retilínea, ele terá como resultado ou horizontal ou vertical. Se o fóton foi criado inicialmente em uma dessas polarizações, então ele medirá o estado correto; mas se o fóton tiver sido criado na base diagonal, então a medida na base retilínea tornará o fóton polarizado vertical ou horizontalmente de maneira aleatória e a informação sobre sua polarização inicial será perdida.

Como Bob não sabe em que base os fótons foram criptografados, tudo que ele pode fazer é selecionar aleatoriamente uma base para cada medida. Ele faz isso para cada fóton recebido e anota o tempo, a base utilizada e o resultado da medida. Depois de Bob ter medido todos os fótons, ele se comunica com a Alice via um canal clássico público. Alice então informa a Bob a base que foi utilizada para preparar cada fóton e Bob informa as bases que ele utilizou para medi-los. Eles então descartam os valores medidos em que Bob usou a base errada. Segundo este método, as probabilidades de Bob utilizar os filtros corretos é de 50% (uma base de medida correta em duas possíveis). Logo, para se obter uma palavra binária de n bits, é necessário enviar o dobro de fótons.

 

 

 

 

 

 

 

 

 

Quando alguém (Bob ou Eva) ler a mensagem enviada, a mensagem é automaticamente alterada de forma irreversível, pois como já vimos, a medição da polarização dos fótons tem essa inevitável consequência. Assim, tudo o que quem interceptar as comunicações pode fazer é testar um conjunto de bases, ficando sem saber em quais acertou. Mesmo que Eva também intercepte as comunicações realizadas no canal público, ela ficará sem saber o valor da chave final. Isto porque através desta comunicação, apesar de se saber quais os fótons que contribuem para a chave não se sabe com que valor. Falaremos mais a seguir sobre algumas técnicas de espionagem.

Para testar se Eva estava interceptando a mensagem, Alice e Bob comparam um certo número de fótons na sua chave secreta. Se a terceira parte tiver conseguido alguma informação sobre a polarização dos fótons, isto irá introduzir erros nas medidas de Bob. Se mais de {\displaystyle p} bits forem diferentes, eles apagam essa chave e tentam novamente, possivelmente com um canal quântico diferente, uma vez que a segurança da chave não pode ser garantida. O número {\displaystyle p} é escolhido de forma que o número de bits conhecidos por Eva seja menor que ele, a amplificação da privacidade[6] pode ser utilizada para reduzir o conhecimento de Eva sobre a chave para um valor arbitrariamente pequeno, através da redução do tamanho da chave.

Protocolo E91 - Artur Ekert (1991)[7]

O protocolo de Ekert usa pares de fótons emaranhados. Eles podem ser criados por Alice, por Bob, ou por alguma fonte separada de ambos. Os fótons são distribuidos de forma que Alice e Bob tenham um fóton de cada par.

O protocolo se baseia em duas propriedades do emaranhamento. Primeiro, os estados emaranhados estão perfeitamente correlacionados, de forma que, se Alice e Bob medirem se suas partículas tem polarização vertical e horizontal, eles sempre obterão a mesma resposta, com 100% de probabilidade. O mesmo é verdade se os dois medirem qualquer outro par de polarizações complementares (ortogonais). No entanto, os resultados particulares são completamente aleatórios; é impossível para Alice prever se ela (ou Bob) obterão polarização vertical ou horizontal.

Segundo, qualquer tentativa de espionagem por parte de Eva irá destruir as correlações de forma que Alice e Bob poderão detectar sua presença.

Estado Atual da Criptografia Quântica

A aplicação da teoria da Criptografia Quântica já foi realizada em laboratório entre outros pela IBM. Porém apenas se obtiveram resultados satisfatórios para distâncias curtas entre o emissor e o receptor. Conseguiu-se que com cabos de fibra óptica de elevada pureza se comunicasse a uma distância que ronda os 70km. A uma distância maior, a taxa de erros de bits, causados pelo ‘’Principio da Incertezade Heisenberg’’ e por impurezas microscópicas na fibra óptica, cresce e inviabiliza a aplicabilidade do método. Também foi testada a comunicação pelo ar, sendo que esta apenas foi bem sucedida com distâncias na ordem das centenas de metros e com condições climáticas ideais. Espera-se que o desenvolvimento tecnológico permita fazer crescer estas distâncias.

A ‘’iD Quantique’’ (Suíça) comercializa aparelhos que efectuam criptografia quântica. A ‘’NOW Wireless’’ celebrou um contrato para distribuir o ‘’gateway MagiQ QPN’’, uma solução de criptografia quântica da ‘’MigicQtech’’ que permite a comunicação a mais de 120km de distância.

Segundo a revista ‘’New Scientist’’, nos EUA (Cambridge, Massachusetts) está em funcionamento um projecto chamado ‘’Quantum Network (Qnet)’’ e que é financiado pela ‘’Defense Advanced Research Projects Agency’’. Actualmente este projecto dispõe apenas de seis servidores, mas que se podem ligar a outros servidores através da Internet e usando Criptografia Quântica. O objectivo deste projecto é utilizar esta tecnologia em empresas de crédito, bancos e outros serviços financeiros que possibilitem aos seus clientes transacções electrónicas. A rede tem 10Km de extensão e liga a empresa BBN à Universidade de Harvard através de cabos de fibra óptica comuns.

Desafios na Comunicação com Criptografia Quântica

Sendo esta uma área recente e em expansão possui muitos desafios teóricos e práticos que necessitam de ser enfrentados para que as comunicações quânticas possam crescer. Alguns dos principais desafios são:

  1. Desenvolvimento de fontes de um fotão de tamanho reduzido e baixo custo.

  2. Desenvolvimento de repetidores quânticos para aumentar o alcance entre os utilizadores de uma rede quântica.

  3. Desenvolvimento de novos protocolos de criptografia quântica usando sistemas quânticos de mais de dois estados.

  4. Desenvolver protocolos de distribuição de chave pública, autenticação e assinatura digital.

  5. Promover a integração da rede quântica com a infra-estrutura actualmente existente.

  6. Formar hackers quânticos para testar a segurança dos protocolos.

Protocolo BB84.jpg

Algorítmos e Sistemas Criptográficos

Funções de Hash criptográfico, ou message digest

 

Sistemas Free/Open Source

 

Algoritmos assimétricos ou de chave pública

 

Algoritmos simétricos

  • Máquina Enigma (Máquina alemã de rotores utilizada na 2a Guerra Mundial)

  • DES - Data Encryption Standard (FIPS 46-3, 1976)

  • RC4 (um dos algoritmos criados pelo Prof. Ron Rivest)

  • RC5 (também por Prof. Ron Rivest)

  • Blowfish (por Bruce Schneier)

  • IDEA - International Data Encryption Algorithm (J Massey e X Lai)

  • AES (também conhecido como RIJNDAEL) - Advanced Encryption Standard (FIPS 197, 2001)

  • RC6 (Ron Rivest)

Algorítmos
Simétrica

Algorítmos de Chave Simétrica

Algoritmos de chave simétrica[1] são algoritmos para criptografia que usam a mesma chave criptográfica para encriptação de texto puro e decriptação de texto cifrado. A chave, na prática, representa um segredo compartilhado entre duas ou mais partes que pode ser usado para manter uma ligação de informação privada.[2] Este requisito de que ambas as partes possuam acesso à mesma chave secreta é uma das principais desvantagens da criptografia de chave simétrica, em comparação com a criptografia de chave pública (também conhecida como criptografia de chave assimétrica)[3] pois utilizam duas chaves (pública e privada).

A operação de chave simétrica é mais simples, pois existe uma única chave entre as operações. A chave, na prática, representa 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.[4]

Tipos

A criptografia de chave simétrica pode usar cifras de fluxo ou cifras de bloco.[5]

  • As cifras de fluxo criptografam os dígitos (normalmente bytes), ou letras (em cifras de substituição), de uma mensagem, uma de cada vez. Um exemplo é a Cifra de Vigenère.

  • As cifras de bloco pegam vários bits e os criptografam como uma única unidade, preenchendo o texto puro de modo que seja um múltiplo do tamanho do bloco. Blocos de 64 bits eram comumente usados. O algoritmo Advanced Encryption Standard (AES), aprovado pelo NIST em dezembro de 2001, e o modo de operação de codificação de bloco do GCM, usam blocos de 128 bits.

Implementações

Exemplos de algoritmos simétricos populares e bem reputados incluem

 

Velocidade

Os algoritmos de chave simétrica são geralmente menos demorados computacionalmente do que os algoritmos de chave assimétrica. Na prática, isto significa que um algoritmo de chave assimétrica de qualidade pode ser centenas ou milhares de vezes mais lento do que um algoritmo de chave simétrica de qualidade equivalente.

Segurança

Este sistema é tanto ou mais seguro quanto o for (1) a própria chave e (2) o meio em que ela foi dada a conhecer a ambos interlocutores — é comum a chave estar guardada num local que se “pensa” ser seguro.

Limitações

 

A desvantagem dos algoritmos de chave simétrica é a exigência de uma única chave secreta compartilhada, com uma cópia em cada extremidade. As chaves estão sujeitas à descoberta potencial por um adversário criptográfico, por isso necessitam ser mudadas freqüentemente e mantidas seguras durante a distribuição e no serviço. Essa exigência de escolher, distribuir e armazenar chaves sem erro e sem perda, é conhecida como “gerenciamento de chave”.

A fim de garantir a comunicação segura entre toda uma população de {\displaystyle n} pessoas, um total de {\displaystyle {\frac {n(n-1)}{2}}} chaves são necessárias. Freqüentemente os algoritmos assimétricos são muito mais lentos, são usados no início de uma sessão para distribuir chaves simétricas, então os algoritmos de chave simétrica mais elevados aumentam sua velocidade. Os mesmos problemas de distribuição de chave de confiança existem ainda no nível assimétrico, mas são um tanto mais tratáveis. Entretanto, a chave simétrica é gerada quase sempre em tempo real. Os algoritmos de chave simétrica não podem ser usados para finalidades de autenticação. Para finalidades de autenticação, geralmente são usadas funções de hash, por exemplo MD5.

Reversibilidade

As Funções de Criptografia devem, por definição, ser reversíveis desde que você precise estar apto ambas cifras e (providenciado que você tenha a chave certa) mensagens decifradas. Vários métodos foram usados historicamente para controlar isso. Houve as cifras do livro, em que a chave compartilhada é relacionada a algum índice em um livro, as cifras da autochave em que a chave é derivada parcialmente do plaintext (arquivo de texto), as cifras de grade (supostamente inventadas primeiramente pelo matemático italiano Girolamo Cardano) em que cada partido tem partes de papel idênticas com os furos cortados para colocar sobre a mensagem baixa a fim extrair a mensagem codificada, etc.

 

Em épocas modernas, depois que os computadores se tornaram disponíveis, a maioria de cifras simétricas foram baseadas em “rounds” repetidos. Um esquema muito simples para cada round é usado geralmente repetidamente como no seguinte exemplo genérico. Este método geral é atribuído geralmente a Horst Feistel. Os bits a serem codificados são divididos em duas porções de P1 e P2. P1 é inalterado, P2 é adicionado a uma função misturada de sentido único f (variado por uma chave) de P1.

Os dois resultados então são trocados. Isto é chamado de um “round”. Isto é onde a chave p1 e a chave p2, são vetores do bit; “,” é um operador da concatenação e f é uma função 

Desde que a saída do “round” ainda tenha o acesso ao valor P1, e a adição é uma operação reversível, então esta operação pode ser desfeita, para toda função “f” de um único sentido. Ao mesmo tempo em que um único round é inseguro, p1 é inalterado, repetindo a operação mais do que uma vez, freqüentemente com diferente funções e “chaves rounds”, melhora a força consideravelmente. Para decifrar rounds múltiplos, conseqüentemente cada round é desfeito na ordem inversa, para a decodificação, as chaves são aplicadas em ordens inversas. Após diversos rounds (tipicamente entre 8 e 64) de processamento, a saída torna-se assim “encriptada” que, no exemplo de cifras bem projetadas, nada mais rápido do que a busca da chave de força brutal é praticável. Com uma chave suficientemente longa, um ataque de força brutal pode ser tornado impraticável.​​

reversibilidade.png
Cript.Públic

Criptografia de chave pública​​

 

Criptografia de chave pública, também conhecida como criptografia assimétrica, é qualquer sistema criptográfico que usa pares de chaves: chaves públicas, que podem ser amplamente disseminadas, e chaves privadas que são conhecidas apenas pelo proprietário. Isto realiza duas funções: autenticação, onde a chave pública verifica que um portador da chave privada parelhada enviou a mensagem, e encriptação, onde apenas o portador da chave privada parelhada pode decriptar a mensagem encriptada com a chave pública.

O termo assimétrica vem deste uso de diferentes chaves para realizar essas funções opostas, cada uma a inversa da outra – como contrapartida da criptografia ("simétrica") convencional, a qual depende da mesma chave para realizar ambos.

Em um sistema de criptografia de chave pública, qualquer pessoa pode criptografar uma mensagem usando a chave pública do destinatário. Essa mensagem criptografada só pode ser descriptografada com a chave privada do destinatário. Para ser prática, a geração de uma chave pública e privada deve ser computacionalmente econômica. A força de um sistema de criptografia de chave pública depende do esforço computacional (fator de trabalho em criptografia) necessário para encontrar a chave privada de sua chave pública emparelhada. Segurança efetiva requer apenas manter a chave privada privada. A chave pública pode ser distribuída abertamente sem comprometer a segurança.[1]

Algoritmos de chave pública são baseados em problemas matemáticos que atualmente não admitem solução eficiente e são inerentes em determinados relacionamentos de fatoração inteiralogaritmo discreto, e curva elíptica. É computacionalmente fácil para um usuário gerar um par de chaves, uma pública e uma privada, e usá-lo para encriptação e decriptação. A força está na "impossibilidade" (computacionalmente impraticável) para uma chave privada gerada apropriadamente ser determinada pela sua chave pública correspondente. Assim, a chave pública pode ser publicada sem comprometer a segurança. Segurança depende apenas de manter secreta a chave privada, isto é, a chave privada nunca deve ser descoberta. Algoritmos de chave pública, diferente de algoritmos de chave simétrica, não exigem um canal seguro para a troca inicial de uma (ou mais) chave secreta entre as partes.

Por causa da complexidade computacional da encriptação assimétrica, ela é tipicamente usada apenas para transferir uma chave de encriptação simétrica pela qual a mensagem (e normalmente a conversa inteira) é encriptada. A encriptação/decriptação simétrica é baseada em algoritmos mais simples e muito mais rápidos.

Autenticação de mensagens envolve aplicar hash à mensagem para produzir um "resumo", e encriptar o resumo com a chave privada para produzir uma assinatura digital. Dessa forma qualquer um pode verificar essa assinatura (1) computando o hash da mensagem, (2) decriptando a assinatura com a chave pública do signatário, e (3) comparando o resumo computado com o resumo decriptado. A igualdade entre os resumos confirma que a mensagem não foi modificada já que ela foi assinada, e que o assinante, e ninguém mais, intencionalmente realizou a operação de assinatura — presumindo que a chave privada do assinante se manteve secreta para o assinante.

A descrição acima depende de um algoritmo de hash de tamanha qualidade tal que ele seja computacionalmente impossível de alterar ou encontrar uma mensagem substituta que produza o mesmo resumo. Porém estudos mostram que até com os algoritmos MD5 e SHA-1, produzir uma mensagem alterada ou substituta não é impossível.[2] O padrão atual de hash para encriptação é SHA-2. A própria mensagem pode ser usada no lugar do resumo.

Algoritmos de chave pública são ingredientes de segurança fundamentais em criptosistemas, aplicações e protocolos. Eles dão sustentação a vários padrões da Internet, tais quais Segurança da Camada de Transporte (SCT)S/MIMEPBB, e GPG. Alguns algoritmos de chave pública fornecem distribuição de chave e sigilo (e.g., Troca de chaves de Diffie–Hellman), outros fornecem assinaturas digitais (e.g., Algoritmo de Assinatura Digital), e alguns fornecem ambos (e.g., RSA).

Criptografia de chave pública encontra aplicações na disciplina de segurança de TI segurança da informação, entre outras. Segurança da informação (SI) lida com todos os aspectos de proteção da informação eletrônica ativa contra ameaças de segurança.[3] Criptografia de chave pública é usada como um método de garantir a confidencialidade, autenticidade e o não-repúdio de comunicações eletrônicas e de armazenamento de dados.

Entendendo

Criptografia de chave pública é frequentemente usada para garantir a segurança da comunicação eletrônica sobre um ambiente interconectado aberto tal como a internet, sem depender de um canal encoberto até para uma troca de chaves. Ambientes interconectados abertos são suscetíveis a uma variedade de problemas de segurança de comunicação tais quais ataque do homem-no-meio e outras ameaças à segurança.

 

Propriedades de segurança necessárias para comunicação tipicamente incluem que a comunicação que está sendo enviada não deva ser legível durante a transição (preservando confidencialidade), a comunicação não deve ser modificada durante a transição (preservando a integridade da comunicação), a comunicação deve ser originada por uma parte identificada (autenticidade do remetente) e para assegurar o não-repúdio (a não negação de envio da mensagem). Combinar criptografia de chave pública com um método de Encriptação de Chave Pública Envelopada (ECPE),[4] permite o envio seguro de uma comunicação sobre um ambiente interconectado aberto.

A técnica especial usada na criptografia de chave pública é o uso de algoritmos de chave assimétrica, nos quais a chave usada por uma das partes para realizar a encriptação ou a decriptação não é a mesma chave usada por outra parte em alguma operação. Cada usuário tem um par de chaves criptográficas – uma chave de encriptação pública e uma chave de decriptação privada. Por exemplo, um par de chaves usado para assinaturas digitais consiste em uma chave de assinatura privada e uma chave de verificação pública. A chave pública deve ser distribuída em larga escala, enquanto que a chave privada deveria ser conhecida somente pelo seu proprietário. As chaves são relacionadas matematicamente, mas os parâmetros são escolhidos de forma que seja inviável o cálculo da chave privada a partir da pública.

Em contraste, algoritmos de chave simétrica – variações dos quais tem sido usados por milhares de anos – usam apenas uma chave secreta, a qual deve ser compartilhada e mantida privada por ambos o remetente e o destinatário, por exemplo, em ambas encriptação e decriptação. Para usar um esquema de encriptação simétrico, o remetente e o destinatário devem, antecipadamente, compartilhar a chave de forma segura.

Como algoritmos de chave simétrica são quase sempre muito menos computacionalmente intensivos que os assimétricos, é comum trocar a chave usando um algoritmo de troca de chave, então transmitir dados usando uma chave e um algoritmo de chave simétrica. Privacidade Muito Boa (em inglês PGP) e a família SSL/TLS de esquemas usam esse procedimento, e são então chamados criptosistemas híbridos.

Descrição

Dois dos usos mais conhecidos de criptografia de chave pública são:

  • Encriptação de chave pública, na qual a mensagem é encriptada com a chave pública do destinatário. A mensagem não pode ser decriptada por ninguém que não possua a chave privada correspondente, o qual é presumidamente o proprietário da chave e a pessoa associada com a chave pública. Isto é utilizado numa tentativa de assegurar confidencialidade.

  • Assinaturas digitais, nas quais a mensagem é assinada com a chave privada do emissor e pode ser verificada por qualquer um que tenha acesso à chave pública do emissor. Essa verificação prova que o emissor teve acesso à chave privada, logo, ele provavelmente é a pessoa associada à chave pública. Isto também garante que a mensagem não foi adulterada, uma vez que qualquer manipulação da mensagem irá resultar em modificações no resumo de mensagem (em inglês message digest) codificado, a qual, caso contrário, se mantém imutável entre emissor e recipiente.

Uma analogia para encriptação de chave pública é a de uma caixa de correio. A caixa de correio é exposta e acessível ao público – sua localização (o endereço da rua) é, em essência, a chave pública. Qualquer um que saiba o endereço pode chegar e colocar uma mensagem escrita na caixa de correio. Porém, apenas a pessoa que possui a chave pode abrir a caixa e ler a mensagem.

Uma analogia para assinaturas digitais é a vedação de um envelope com um selo de cera pessoal. A mensagem pode ser aberta por qualquer um, porém a presença de um selo único autêntica o remetente.

Um problema central com o uso da criptografia de chave pública é a confiança/prova que uma chave pública específica é autêntica, isto é, que ela é correta e pertence a pessoa ou entidade reivindicada, e não foi adulterada ou substituída por um terceiro malicioso.

 

A abordagem mais comum para esse problema é usar uma infraestrutura de chave pública (ICP), na qual um ou mais terceiros – conhecidos como autoridades certificadoras – certificam a propriedade dos pares de chaves. Privacidade Muito Boa (em inglês PGP), além de ser uma estrutura de autoridade certificada, usa um esquema geralmente chamado de a "teia da verdade" (do inglês "web of trust"), que descentraliza essa autênticação de chaves públicas por um mecanismo central, e substitui endossos individuais do elo entre usuário e chave pública. Até agora, nenhuma solução completamente satisfatória para o "problema de autênticação de chave pública" foi encontrado.

História​

Nos primórdios da história da criptografia clássica, duas partes comunicantes dependeriam de uma chave que eles iriam trocar entre eles por meio de um método seguro, mas não criptográfico. Por exemplo, um encontro cara-a-cara ou uma troca, através de um correio confiável, poderia ser usada. Essa chave, que ambas as partes manteriam em segredo absoluto, poderia então ser usada para trocar mensagens encriptadas. Um número significativo de dificuldades práticas surgem com essa abordagem para distribuir chaves.

Em 1874, um livro de William Stanley Jevons[5] descreveu a relação de funções unidirecionais para criptografia, e continuou a debater o problema da fatoraçãousado para criar um função arapuca. Em Julho de 1996, o matemático Solomon Wolf Golomb disse: "Jevons antecipou a característica de chave do Algoritmo RSA para criptografia de chave pública, apesar de que ele certamente não inventou o conceito de criptografia de chave pública."[6]

Em 1970, James H. Ellis, um criptógrafo britânico no Government Communications Headquarters (GCHQ) do Reino Unido, concebeu a possibilidade da "encriptação não secreta", (agora chamada de criptografia de chave pública), mas não conseguiu ver uma forma de implementá-la. Em 1973, seu colega Clifford Cocks inventou o que hoje é conhecido como RSA, dando um método prático de implementação, e, em 1974, outro matemático e criptógrafo do QGCG, Malcolm J. Williamson desenvolveu o que agora é conhecido como a troca de chaves Diffie–Hellman. Nenhum desses parece ter sido colocado para uso prático, e suas invenções iniciais não se tornaram de conhecimento público até a pesquisa ser reclassificada como não-confidencial pelo governo britânico em 1997.[7]

Em 1976, um criptosistema de chave assimétrica foi publicado por Whitfield Diffie e Martin Hellman os quais, influenciados pelo trabalho de Ralph Merkle sobre distribuição de chave pública, divulgaram um método de acordo de chave pública. Esse método de troca de chave, que usa exponenciação em um corpo finito, se tornou conhecido como troca de chave Diffie–Hellman. Esse foi o primeiro método prático publicado para estabelecer uma chave secreta compartilhada sobre um canal de comunicações autenticado (mas não confidencial) sem o uso de um segredo compartilhado previamente. A "técnica de acordo de chave pública" se tornou conhecida como a técnica das charadas de Merkle, e foi inventada em 1974 e publicada em 1978.

Em 1977, uma generalização do esquema de Cocks foi independentemente inventado por Ron RivestAdi Shamir e Leonard Adleman, todos, na época, no Instituto de Tecnologia de Massachusetts (MIT). Esses autores publicaram seus trabalhos em 1978, e o algoritmo se tornou conhecido como RSA, de suas iniciais. RSA usa exponenciação modular do produto de dois números primos muito grandes, para encriptar e decriptar, realizando tanto a encriptação de chave pública como a assinatura digital de chave pública. Sua segurança está relacionada à extrema dificuldade de fatorar inteiros muito grandes, um problema para o qual não há uma técnica geral conhecida para resolver. Em 1979, Michael O. rabin publicou um criptosistema relacionado que provavelmente é seguro desde que a fatoração da chave pública permaneça difícil – mantém-se uma suposição que o RSA também desfruta dessa segurança.

Desde a década de 1970, um grande número e variedade de técnicas de encriptação, assinatura digital, acordo de chave, e outras técnicas vem sendo desenvolvidas no campo de criptografia de chave pública. O El Gamal, inventado por Taher ElGamal se baseia no similar e alto nível de dificuldade do problema do logaritmo discreto, assim como o aproximadamente relacionado DSA, o qual foi desenvolvido na Agência de Segurança Nacional (NSA) dos Estados Unidos e publicado pelo NIST como um padrão proposto.

A introdução de criptografia de curvas elípticas por Neal Koblitz e Victor S. Miller, independentemente e simultaneamente pela metade dos anos 80, tem obtido novos algoritmos de chave pública baseados no problema do logaritmo discreto. Apesar de ser matematicamente mais complexo, curvas elípticas fornecem menores tamanhos de chave e operações mais rápidas para segurança estimada aproximadamente equivalente.

Segurança

Alguns esquemas de encriptação podem ser provados como sendo seguros com base na dificuldade presumida de um problema matemático, como encontrar a fatoração inteira do produto de dois primos muito grandes ou computar logaritmos discretos. Note que "segurança" aqui tem um significado matematicamente preciso, e existem múltiplas definições (significativas) diferentes do que significa dizer que um esquema de encriptação é "seguro". A definição "correta" depende do contexto no qual o esquema será implantado.

A aplicação mais óbvia de um sistema de encriptação de chave pública é confidencialidade – uma mensagem que o emissor quer encriptar usando a chave pública do destinatário pode ser decriptada apenas pela chave privada correspondente do destinatário. Assumindo, claro, que nenhuma falha foi descoberta no algoritmo base usado. Outro tipo de aplicação em criptografia de chave pública é o de esquemas de assinatura digital. Em tal esquema, o usuário que quer enviar uma mensagem computa uma assinatura digital para essa mensagem, e então envia essa assinatura digital (junto com a mensagem) para o remetente desejado.

 

Esquemas de assinatura digital têm a propriedade de que assinaturas podem ser computadas apenas com o conhecimento da chave privada correta. Para verificar que a mensagem foi assinada pelo usuário e que não foi modificada, o destinatário precisa saber apenas a chave pública correspondente. Em alguns casos (e.g. RSA), um único algoritmo pode ser usado para encriptar e criar assinaturas digitais. Em outros casos (e.g., DAS) cada algoritmo pode ser usado apenas para um propósito específico.

Para alcançar tanto autênticação quanto confidencialidade, o emissor deve assinar a mensagem usando sua a chave privada, e então encriptar tanto a mensagem quanto a assinatura usando a chave pública do destinatário.

Essas características podem ser usadas para construir muitos outros (por vezes surpreendentes) protocolos criptográficos e aplicações, tais como moeda digitalacordo de chave de senha autenticada, acordo de chave de múltiplas partes, Serviços de marcação de tempo, protocolos de não-repúdio, etc.

Considerações práticas

Encriptação de Chave Pública Envelopada

Encriptação de Chave Pública Envelopada (EPKE) é o método que consiste em aplicar criptografia de chave pública e garantir que uma comunicação eletrônica é transmitida confidencialmente, tenha os conteúdos de comunicação protegidos contra modificações (integridade de comunicação) e não pode ser negado de ter sido enviado (não-repúdio). Esse é o método frequentemente usado quando se quer proteger a comunicação em um ambiente interconectado aberto como quando se utiliza o protocolo Transport Layer Security (TLS) ou o Secure Sockets Layer (SSL).

EPKE consiste de um processo de duas fases que inclui ambas a Encriptação de Chave pública (PKE) e uma assinatura digital. Ambas Encriptação de chave Pública e assinaturas digitais constituem o princípio da Encriptação de Chave Pública Envelopada (esses dois processos são descritos mais aprofundadamente em suas respectivas seções).

Para o EPKE funcionar efetivamente, é necessário que:

  • Todo participante da comunicação tenha seu par de chaves único. A primeira chave que é exigida é a chave pública e a segunda chave que é exigida é a chave privada.

  • As chaves pública e privada de cada pessoa devem ser matematicamente relacionadas nas quais a chave privada é usada para decriptar uma comunicação enviada usando a chave pública e vice-versa. Alguns algoritmos de encriptação assimétrica bem conhecidos são baseados no criptosistema RSA.

  • A chave privada deve ser mantida absolutamente privada pelo proprietário apesar de a chave pública poder ser publicada em um diretório público bem como com uma autoridade certificadora.

Para enviar uma mensagem usando EPKE, o emissor de uma mensagem primeiro assina a mensagem usando sua própria chave privada, isso garante o não-repúdio da mensagem. O emissor então encripta sua mensagem assinada digitalmente usando a chave pública do destinatário assim aplicando um envelope digital para a mensagem. Esse passo garante confidencialidade durante a transmissão da mensagem.

 

O destinatário da mensagem então usa sua chave privada para decriptar a mensagem assim removendo o envelope digital e então utiliza a chave pública do emissor para decriptar a assinatura digital do remetente. Nesse ponto, se a mensagem não sofreu alteração durante a transmissão, a mensagem estará em aberto para o destinatário.

Por causa da natureza computacionalmente complexa dos algoritmos assimétricos baseados no RSA, o tempo que leva para encriptar documentos ou arquivos muito grandes para serem transmitidos pode levar muito grande até que a transmissão seja completada. Para agilizar esse processo de transmissão, em vez de aplicar a assinatura digital do emissor para os arquivos ou documentos muito grandes, o emissor pode preferencialmente aplicar uma função hash nos documentos ou arquivos usando uma função hash criptográfica e então assinar digitalmente o valor do hash gerado, reforçando assim a não-repúdio.

 

Hashing é uma computação muito mais rápida para ser completada diferentemente de apenas o uso do algoritmo de assinatura digital baseado em RSA. O emissor então assinaria o novo valor do hash gerado e encriptaria os documentos ou arquivos originais com a chave pública do destinatário. A transmissão então ocorreria de forma segura e com confidencialidade e não-repúdio ainda intactos.

 

O destinatário então verificaria a assinatura e decriptaria os documentos ou arquivos encriptados com sua própria chave privada.

Nota: O emissor e o destinatário normalmente não conduzem o processo mencionado acima manualmente, em vez disso, preferencialmente, dependem de software sofisticado para completar o processo EPKE automaticamente.

Encriptação de Chave Pública

O objetivo da Encriptação de Chave Pública (PKE) é garantir que a comunicação que esteja sendo enviada seja mantida confidencial durante o transporte.

Para enviar uma mensagem usando PKE, o emissor de uma mensagem usa a chave pública do destinatário para encriptar conteúdos da mensagem. A mensagem encriptada é então transmitida eletronicamente para o destinatário e o destinatário pode então usar sua própria chave privada correspondente para decriptar a mensagem.

O processo de encriptação que usa a chave pública do destinatário é útil para preservar a confidencialidade da mensagem já que apenas o destinatário tem a chave privada correspondente para decriptar a mensagem. Assim, o remetente da mensagem não pode decriptar a mensagem uma vez que ele a tenha encriptado usando a chave pública do destinatário. Porém, PKE não lida com o problema de não-repúdio, já que a mensagem poderia ter sido enviada por qualquer pessoa que tenha acesso à chave pública do destinatário.

Assinaturas Digitais

Ver artigo principal: Assinatura digital

O objetivo de um esquema de assinatura digital é garantir que o emissor da comunicação que está sendo enviada seja conhecido para o destinatário e que o emissor da mensagem não possa repudiar uma mensagem que tiver enviado. Assim, o propósito das assinaturas digitais é garantir o não-repúdio de uma mensagem sendo enviada. Isso é útil em um cenário prático onde o remetente deseja fazer uma compra eletrônica de ações e o destinatário quer poder provar quem requisitou a compra. Assinaturas digitais não fornecem confidencialidade para a mensagem sendo enviada.

A mensagem é assinada usando a chave de assinatura privada do emissor. A mensagem assinada digitalmente é então enviada para o destinatário, que pode então usar a chave pública do remetente para verificar a assinatura.

Autoridade certificadora​

Para a Encriptação de Chave Pública Envelopada ser o mais segura possível, é necessário haver um "porteiro" (em inglês "gatekeeper") das chaves privada e pública, ou então qualquer um poderia publicar sua chave pública e se mascarar como o emissor planejado de uma comunicação. Esse "porteiro" de chave digital é conhecido como a Autoridade Certificadora. Uma autoridade certificadora é um terceiro confiável que pode emitir chaves privadas e públicas e assim certificar chaves públicas. Ela também funciona como um depósito para armazenar cadeias de chaves e garantir o fator de confiança.

Uma analogia postal

Uma analogia que pode ser usada para entender as vantagens de um Sistema assimétrico é imaginar duas pessoas, Alice e Bob, que estão enviando entre si mensagens secretas através do correio público. Nesse exemplo, Alice quer enviar uma mensagem secreta para Bob, e espera uma resposta secreta de Bob.

Com um sistema chave simétrica, Alice primeiro coloca a mensagem secreta numa caixa, e tranca a caixa usando um cadeado para o qual ela tem a chave. Então, ela manda a caixa para Bob pelo correio normal.

 

Quando Bob recebe a caixa, ele usa uma cópia idêntica da chave de Alice (que de alguma forma ele conseguiu obter previamente, talvez num encontro cara a cara) para abrir a caixa, e lê a mensagem. Bob pode então usar o mesmo cadeado para enviar sua resposta secreta.

Em um sistema de chave assimétrica, Alice e Bob têm cadeados separados. Primeiro, Alice pede a Bob para enviar o cadeado dele aberto através do correio normal, mas mantendo com ele a posse da chave. Quando Alice recebe o cadeado, usa-o para trancar a caixa contendo a mensagem dela, e manda a caixa trancada para Bob. Bob pode então destrancar a caixa com sua chave e ler a mensagem de Alice. Para responder, Bob deve fazer o mesmo, isto é, pegar o cadeado aberto de Alice e trancar a caixa antes de enviar de volta para ela.

A vantagem crítica em um sistema de chave assimétrica é que Bob e Alice nunca precisam enviar uma cópia da chave deles, um para o outro. Isso previne que um terceiro – talvez, nesse exemplo, um carteiro mal-intencionado que abrirá as caixas que não estiverem trancadas – copie uma chave enquanto a mesma está sendo transportada, permitindo que ele possa futuramente espiar as mensagens enviadas entre Alice e Bob. Então, no cenário de chave pública, Alice e Bob não precisam confiar tanto no serviço postal (o canal de comunicação). Além disso, se Bob fosse descuidado e permitisse que alguém copiasse a chave (privada) dele, as mensagens de Alice para Bob seriam comprometidas, mas as mensagens de Alice para outras pessoas continuariam sendo secretas, uma vez que outras pessoas forneceriam cadeados diferentes para Alice usar.

Outro tipo de Sistema de chave assimétrica, chamado um protocolo de três passos, não exige que nenhuma parte sequer toque o cadeado (ou a chave) do outro; Alice e Bob têm cadeados separados. Primeiramente, Alice coloca a mensagem secreta numa caixa, e tranca a caixa usando um cadeado para o qual apenas ela tem a chave. Ela então envia uma caixa para Bob através do correio comum. Quando Bob recebe a caixa, ele adiciona seu próprio cadeado para a caixa, e manda isso de volta para Alice. Quando Alice recebe a caixa com dois cadeados ela retira seu cadeado e manda a caixa de volta para Bob. Quando Bob recebe a caixa com apenas seu cadeado nela, Bob pode então destrancar a caixa com sua chave e ler a mensagem de Alice.

 

Note que esse esquema exige o uso de cifras comutativas para permitir que Alice possa remover a encriptação dela, até mesmo quando a encriptação de Bob estiver aplicada à caixa, e para Bob manter a caixa mesmo depois que Alice removeu a encriptação dela. -->Note que, nesse esquema, a ordem de decriptação NÃO é a mesma ordem de encriptação – isso só é possível se cifras comutativas forem utilizadas. Uma cifra comutativa é uma na qual a ordem de encriptação e decriptação é permutável, assim como a ordem dos fatores de uma multiplicação (i.e., A*B*C = A*C*B = C*B*A).

 

Esse método é seguro para certas escolhas de cifras comutativas, mas inseguro para outras others (e.g., um simples XOR). Por exemplo, sejam E1() e E2() duas funções de encriptação, e seja "M" a mensagem tal que Alice a encripta usando E1() e envia E1(M) para Bob. Bob então novamente encripta a mensagem como E2(E1(M)) e a envia para Alice. Agora, Alice decripta E2(E1(M)) usando E1(). Alice terá agora E2(M), significando que quando ela enviar novamente para Bob, ele irá ser capaz de decriptar a mensagem usando E2() e pegando "M". Apesar de nenhuma das chaves terem sido trocadas alguma vez, a mensagem "M" pode muito bem ser uma chave (e.g., a chave pública de Alice). Esse Protocolo de três passos é tipicamente usado na troca de chave.

Algoritmos reais: duas chaves ligadas

Nem todos os algoritmos de chave assimétrica operam precisamente dessa forma. Os algoritmos mais comuns têm a propriedade de que tanto Alice quanto Bob, são proprietários de duas chaves cada um, uma para encriptação e uma para decriptação. Em um esquema de encriptação de chave assimétrica seguro, a chave privada não deve ser dedutível a partir da chave pública. Isso é conhecido como encriptação de chave pública, já que uma chave de encriptação pode ser publicada sem comprometer a segurança das mensagens encriptadas com aquela chave.

Na analogia acima, Bob deve publicar instruções sobre como fazer um cadeado ("chave pública"). No entanto, os funcionamentos do cadeado são tais que é impossível (até onde se sabe) deduzir através das instruções dadas como exatamente fazer uma chave que pode abrir aquele cadeado (e.g., uma "chave privada"). Aqueles que desejam enviar mensagens a Bob devem usa a chave pública para encriptar a mensagem, Bob então pode usar sua própria chave privada para decriptá-la.

Em outro exemplo, temos Alice e Bob, cada um escolhendo uma chave aleatoriamente e então contactando o outro para comparar a profundidade de cada entalhe em suas chaves. Tendo determinado a diferença, uma caixa trancada é construída com um cadeado especial em que cada pino dentro dele é dividido em 2 pinos, combinando com os números das chaves deles. Agora a caixa poderá ser aberta com ambas as chaves, e Alice e Bob podem trocar mensagens dentro da caixa de maneira segura.

Fraquezas

Dos algoritmos de encriptação de chave simétrica, apenas a cifra de uso único (em inglês, One-Time Pad), ou OTP, pode ser provada como sendo segura contra qualquer adversário – não importando quanto poder computacional esteja disponível. Entretanto, não existe esquema de chave pública com essa propriedade, uma vez que todos os esquemas de chave pública estão suscetíveis a "ataques de procura de chave por força bruta". Tais ataques são impraticáveis se a quantidade de computação necessária para vencer – denominado o "fator trabalho" (em inglês "work factor") por Claude Shannon – estiver fora de alcance dos possíveis atacantes.

 

Em muitos casos, o fator trabalho pode ser incrementado simplesmente escolhendo uma chave maior. Mas outros algoritmos podem ter fatores trabalho muito mais baixos, tornando irrelevante a resistência a um ataque de força bruta. Alguns algoritmos especiais e específicos foram desenvolvidos para auxiliar no ataque a alguns algoritmos de encriptação de chave pública – tanto o RSA como o ElGamal têm ataques conhecidos que são muito mais rápidos que a abordagem por força bruta. Esses fatores mudaram dramaticamente em décadas recentes, tanto com o decréscimo do custo do poder computacional como com as novas descobertas matemáticas.

À parte da resistência para atacar um par de chaves particular, a segurança da hierarquia de certificação deve ser considerada quando se for implementar um sistema de chave pública. Algumas autoridades certificadoras – normalmente um programa construído com um propósito rodando em um computador servidor – atestam as identidades atribuídas a chaves privadas específicas para produzir um certificado digital. Certificados digitais de chave pública são tipicamente válidos por vários anos, então as chaves privadas associadas devem ser mantidas seguras durante esse tempo. Quando a chave privada usada para criação de certificado mais alta na hierarquia do servidor PKI é comprometida, ou acidentalmente divulgada, então um "ataque do homem no meio" é possível, tornando completamente inseguro qualquer certificado subordinado.

As maiores fraquezas foram encontradas para vários algoritmos de chave assimétrica que, outrora, eram promissores. O algoritmo 'knapsack packing' foi descoberto como sendo inseguro depois do desenvolvimento de um novo ataque. Recentemente, alguns ataques baseados em medições cuidadosas da quantidade exata de tempo, que leva para um hardware conhecido encriptar purotexto, têm sido usados para simplificar a procura por chaves de decriptação prováveis (ver "ataque de canal colateral"). Assim, o simples uso de algoritmos de chave assimétrica não garante segurança. Uma grande negociação de pesquisa ativa está atualmente a caminho para descobrir, e para proteger contra, novos algoritmos de ataque.

Outra vulnerabilidade de segurança possível no uso de chaves assimétricas é a possibilidade de um ataque do "homem no meio", no qual a comunicação de chaves públicas é interceptada por um terceiro (o "homem no meio") e então modificada para prover diferentes chaves públicas. Mensagens encriptadas e respostas também devem ser interceptadas, decriptadas, e re-encriptadas pelo atacante usando as chaves públicas corretas para segmentos de comunicação diferentes, em todas as instâncias, para evitar suspeitas.

 

Esse ataque pode parecer difícil de ser implementado na prática, mas não é impossível quando se utiliza mídia insegura (e.g., redes públicas, como a Internet ou formas de comunicação sem fio) – por exemplo, um funcionário mal-intencionado no provedor de serviço de internet (ISP) de Alice ou de Bob possivelmente achará a execução do ataque um tanto fácil. Na analogia postal anterior, Alice teria que se certificar que o cadeado retornado no pacote realmente pertence a Bob antes de ela remover o cadeado dela e enviar o pacote de volta. Caso contrário, o cadeado poderia ter sido colocado no pacote por um carteiro mal-intencionado fingindo ser Bob, enganando Alice.

Uma abordagem para prevenir tais ataques envolve o uso de uma autoridade certificadora, uma terceira parte confiável responsável pela verificação da identidade de um usuário no sistema. Essa autoridade emite um certificado digital resistente à adulteração e à fraude para os participantes. Tais certificados são blocos de dados assinados declarando que essa chave pública pertence àquela pessoa, companhia, ou outra entidade.

 

Essa abordagem também tem suas fraquezas – por exemplo, a autoridade certificadora emitindo o certificado deve ser confiada como tendo checado apropriadamente a identidade do dono de uma chave, deve assegurar a corretude de uma chave pública quando emite um certificado, e deve ter feito preparativos com todos os participantes para checar todos os certificados deles antes que as comunicações protegidas possam iniciar. Navegadores web, por exemplo, são supridos com uma longa lista de "certificados de identidade assinados por si mesmos" pelos provedores PKI – esses são usados para checar a boa fé da autoridade de certificado e então, em um segundo passo, os certificados de possíveis comunicadores.

 

Um atacante que poderia subverter qualquer uma dessas autoridades certificadoras a emitir um certificado para uma chave pública falsa poderia então montar um ataque do "homem no meio" tão facilmente quanto se o esquema de certificado não fosse usado. Apesar de seus problemas teóricos e em potencial, essa abordagem é amplamente utilizada. Exemplos incluem SSL e seu sucessor, TLS, que são comumente usados para providenciar segurança para navegadores web, por exemplo, de modo que eles possam ser usados para enviar detalhes de cartões de crédito para uma loja online de forma segura.

Custo computacional

Os algoritmos de chave pública são conhecidos até agora por serem relativamente caros computacionalmente comparados à maioria dos algoritmos de chave simétrica de segurança aparentemente equivalente. O fator diferença é o uso típico de chaves um tanto grandes. Isso tem importantes implicações para o uso prático deles. A maioria é usada em criptosistemas híbridos por razões de eficiência – em tal criptosistema, uma chave secreta compartilhada ("chave de sessão") é gerada por uma partem e essa chave de sessão bem mais breve é então encriptada pela chave pública de cada destinatário. Cada destinatário então utiliza a chave privada correspondente para decriptar a chave de sessão. Quando todas as partes tiverem obtido a chave de sessão, eles podem usar um algoritmo simétrico muito mais rápido para encriptar e decriptar mensagens. Em muitos desses esquemas, a chave de sessão é única para cada troca de mensagens, sendo pseudo-aleatoriamente escolhida por cada mensagem.

Associando chaves públicas a identidades

O elo entre a chave pública e seu "dono" deve ser correto, ou então o algoritmo deve funcionar perfeitamente e ainda assim pode ser completamente inseguro na prática. Assim como com a maioria das aplicações de criptografia, os protocolos usados para estabelecer e verificar esse elo são criticamente importantes. Associando uma chave pública ao seu dono é tipicamente feita por protocolos implementando uma infraestrutura de chave pública (ICP) – esses permitem que a validade da associação seja formalmente verificada por referência para uma terceira parte confiável na forma de uma autoridade certificadora hierárquica (e.g., X.509), um modelo confiável local (e.g., SPKI), ou um esquema de confiança da web, como o originalmente construído dentro do PGP e do GPG, e ainda até certo ponto usado com eles.

Seja qual for a garantia criptográfica dos protocolos, a associação entra a chave pública e seu proprietário é fundamentalmente uma questão de julgamento subjetivo na parte de terceira pessoa confiável, já que a chave é uma entidade matemática, enquanto que o dono – e a conexão entre dono e chave – não são. Por essa razão, o formalismo de uma infraestrutura de chave pública deve fornecer para afirmações explícitas da política seguida quando for fazer o julgamento. Por exemplo, o complexo e não totalmente implementado padrão X.509 permite a uma autoridade de certificado identificar sua política pelos meios de um identificador de objetos, o qual funciona como um índice em um catálogo de políticas registradas. Políticas devem existir por vários propósitos, indo do anonimato a classificações militares.

Relação aos eventos do mundo real

Uma chave pública será conhecida por um grande e, na prática, desconhecido conjunto de usuários. Todos os eventos exigindo revogação ou substituição de uma chave pública podem levar muito tempo para ter pleno efeito com todos que devem ser informados (i.e., todos aqueles usuários que possuírem a chave). Por essa razão, sistemas que devem reagir aos eventos em tempo real (e.g., sistemas de segurança crítica ou sistemas de segurança nacional) não devem usar encriptação de chave pública sem tomar muito cuidado. Existem quatro problemas de interesse:

Privilégio de revogação de chave

Uma revogação maliciosa (ou errônea) de algumas (ou todas) as chaves no sistema é provável, ou em segundo caso, certamente, para causar uma falha completa no sistema. Se chaves públicas podem ser revogadas individualmente, essa é a possibilidade. Todavia, existem abordagens de design que podem reduzir a chance real disso ocorrer. Por exemplo, por meio do certificado, nós podemos criar o que é chamado de "principal composto" (em inglês "compound principal") – tal principal pode ser "Alice e Bob tem Autoridade de Revogar". Agora, apenas Alice e Bob (em concerto) podem revogar uma chave, e nem Alice nem Bob podem revogar chaves sozinhos. Contudo, revogar uma chave agora requer ambos Alice e Bob estarem disponíveis, e isso cria um problema de dependência.

 

Em termos concretos, do ponto de vista de segurança, existe agora um "único ponto de falha" no sistema de revogação de chave pública. Um ataque de Negação de serviço bem-sucedido contra tanto Alice como Bob (ou ambos) bloqueará a revogação exigida. Na verdade, qualquer partição de autoridade entre Alice e Bob terá esse efeito, independente de como será feito.

Pelo fato do principal que permite à autoridade revogação para chaves ser muito poderoso, os mecanismos usados para controlá-lo deveriam envolver ambos o máximo de participantes possível (para proteger contra ataques maliciosos desse tipo), enquanto que ao mesmo tempo o mínimo de participantes possível (para assegurar que a chave possa ser revogada sem atraso perigoso). Certificados de chave pública que incluem uma data de expiração deve não corresponder a uma necessidade de revogação no mundo real – mas ao menos tais certificados não precisam ser rastreados por todo o sistema, também não é necessário que todos os usuários estejam em contato constante com o sistema o tempo todo.

Distribuição de uma nova chave

Depois de uma chave ser revogada, ou quando um usuário é adicionado ao sistema, uma nova chave deve ser distribuída de alguma maneira predeterminada. Assuma que a chave de Carol foi revogada (e.g., por exceder a data de expiração, ou por causa de um acordo da chave privada combinante de Carol). Até uma nova chave ser distribuída, Carol está efetivamente "fora de contato". Ninguém poderá enviar mensagens a ela sem violar protocolos do sistema (i.e., sem uma chave pública válida, ninguém pode encriptar mensagens para ela), e mensagens vindas dela não podem ser assinadas, pela mesma razão. Ou, em outras palavras, a "parte do sistema" controlada por Carol está, em essência, indisponível. Requisitos de segurança têm sido classificados como de mais alta importância que a disponibilidade do sistema em tais designs.

Alguém poderia deixar o poder de criar (ou certificar) chaves (bem como revogá-las) nas mãos de cada usuário – o design original de PGP o fez – mas isso traz problemas para o entendimento e a operação do usuário. Por razões de segurança, essa abordagem tem dificuldades consideráveis – se nada mais, alguns usuários ficarão esquecidos, ou desatentos, ou confusos. Por um lado, uma mensagem revogando um certificado de chave pública deveria se espalhar o mais rápido possível, por outro lado, partes do sistema devem ficar inoperantes "antes" de uma nova chave ser instalada. A janela de tempo pode ser reduzida a zero emitindo-se sempre uma nova chave junto com um certificado que revoga a antiga, mas isso requer co-locação de autoridade para não apenas revogar chaves mas também gerar novas chaves.

É muito provável uma falha no sistema como um todo se o principal (possivelmente combinado) que emite novas chaves falhe por emissão imprópria de chaves. Essa é uma instância de uma "exclusão mútua comum" – um design pode fazer a confiança de um sistema ser alta, mas apenas ao custo da disponibilidade do Sistema (e "vice versa").

Espalhando a revogação

A notificação de revogação do certificado de uma chave de ser espalhada para todos aqueles que podem potencialmente carregá-lo, e o mais rápido possível.

Existem dois meios de espalhar informação (i.e., uma revogação de chave) em um sistema distribuído: ou a informação é "empurrada" para os usuários de um ponto central (ou pontos), ou então ela é "puxada" de um ponto central (ou pontos) pelos usuários finais.

Empurrar a informação é a solução mais simples, pois uma mensagem é enviada para todos os participantes. Entretanto, não existe forma de saber se todos os participantes irão realmente "receber" a mensagem. Se o número de participantes for muito grande, e algumas das distâncias físicas ou da rede também forem grandes, então a probabilidade de sucesso completo (o qual é, em circunstâncias ideais, exigido para a segurança do sistema) será um tanto baixa. Em um estado parcialmente atualizado, o sistema é particularmente vulnerável a ataques de "negação de serviço" já que a segurança foi violada, e uma janela de vulnerabilidade continuará a existir contanto que alguns usuários nunca "peguem a palavra" (em inglês "get the word"). Colocando de outra maneira, empurrando mensagens de revogação de certificado não é nem fácil para proteger, nem é muito confiável.

A alternativa para empurrar é puxar. No extremo, todos os certificados contém todas as chaves necessárias para certificar que a chave pública de interesse (i.e., a chave pertencente ao usuário para o qual alguém deseja enviar uma mensagem, ou para o qual a assinatura está para ser verificada) ainda é válida. Nesse caso, pelo menos algum uso do sistema será bloqueado se o usuário não puder alcançar o serviço de verificação (i.e., um dos sistemas que podem estabelecer a validade atual da chave de outro usuário). Novamente, tal design de sistema pode ser feito tão confiável quanto alguém queira, ao custo da redução da segurança – quanto mais servidores para verificar a possibilidade de revogação de uma chave, maior será a janela de vulnerabilidade.

Outro trade-off é usar um serviço de verificação um pouco menos confiável, porém mais seguro, mas incluir uma data de expiração para cada uma das fontes de verificação. Quanto tempo esse "timeout" deveria ter é uma decisão que exige um trade-off entre a disponibilidade e a segurança que serão decididas a seguir, durante o design do sistema.

Recuperação de uma chave vazada

Assuma que o principal autorizou a revogação de uma chave e que ele decidiu uma chave específica deveria ser revogada. Na maioria dos casos, isso acontece após um fato – por exemplo, se torna conhecido que em algum momento no passado um evento ocorreu que colocou a chave privada em perigo. Permita-nos denotar o tempo no qual é decidido que esse comprometimento ocorreu como T.

Tal comprometimento tem duas implicações. Primeiramente, mensagens encriptadas com uma chave pública combinante (agora ou no passado) não podem mais ser consideradas secretas. Uma solução para evitar esse problema é utilizar o protocolo que tem sigilo perfeito na frente. Segundo, assinaturas feitas com o não mais confiável para ser realmente chave privada depois de tempo T não pode mais ser assumido como sendo autêntico sem informação adicional (i.e., quem, quando, onde, etc.) sobre os eventos liderando para a assinatura digital. Esses não estarão sempre disponíveis, e então todas as tais assinaturas digitais serão menos que acreditáveis. Uma solução para reduzir o impacto de vazar uma chave privada de um esquema de assinatura é usar timestamps.

Perda de sigilo e/ou autenticidade, até para apenas um usuário, tem implicações de segurança em todo o sistema, e uma estratégia para recuperar deve então ser estabelecida. Tal estratégia determinará quem tem autoridade para, e sob que condições alguém deve, revogar um certificado de chave pública. Alguém deve também decidir como espalhar a revogação, e idealmente, como lidar com todas as mensagens assinadas com a chave desde o tempo T (o qual raramente será conhecido de forma precisa). Mensagens enviadas para aquele usuário (o qual requer a chave privada adequada – agora comprometida – para decriptar) devem ser consideradas comprometidas também, não importa quando elas foram enviadas.

Exemplos​

Exemplos de técnicas de chave assimétrica para vários efeitos incluem:

Exemplos de algoritmos de chave assimétrica não adotados vastamente incluem:

Exemplos de notáveis – mas ainda inseguros – algoritmos de chave assimétrica incluem:

Exemplos de protocolos usando algoritmos de chave assimétrica incluem:

 

Consider
Cript.Negável

Criptografia Negável

 

Em criptografia e esteganografia, é entendido como criptografia negável as técnicas de criptografia cujo resultado permita que a existência de um arquivo cifrado ou mensagem seja negável, de tal forma de que um adversário não seja capaz de provar que tais informações existam.[1]

Os usuários desse tipo de criptografia podem negar de forma convincente que um conjunto de dados esteja cifrado ou que eles sequer existam. Tal alegação pode ser verdadeira ou falsa, pois é impossível provar o contrário sem a cooperação dos mesmos, dado que eles também podem legitimamente não ter acesso ou ciência da existência dos dados. A criptografia negável prejudica a capacidade do acusador de afirmar que existam dados criptografados ou que a pessoa de posse deles seja capaz de decifrá-los.

Função​

Normalmente um texto cifrado pode ser decifrado para obter um único texto em claro e, portanto, uma vez decifrado, o usuário não pode afirmar que a mensagem decifrada é diferente do original. A criptografia negável permite encriptar um texto e obter, se necessário, uma alternativa de texto simples que tem a função de "engodo". O atacante, mesmo se ele é capaz de forçar o usuário a produzir um texto claro não pode perceber qualquer diferença real entre o texto em claro e as alternativas. O usuário pode sempre defender-se, de tempos em tempos, escolhendo se quer produzir, a partir do mesmo texto cifrado, o verdadeiro texto original ou outro texto de disfarce.

A noção de "criptografia negável" foi usada por Julian Assange e Ralf Weinmann no Rubberhose filesystem e explicada em detalhe num artigo de Ran CanettiCynthia DworkMoni Naor, e Rafail Ostrovsky [2] em 1996.

 

Cenário

A criptografia negável permite que o remetente da mensagem cifrada possa negar o envio dessa mensagem. Isto requer uma terceira pessoa de confiança. Aqui está um cenário possível:

  1. Alice é a esposa de Bob, que suspeita que sua mulher esteja envolvida em adultério. Ela quer se comunicar com seu amante Carl em segredo. Ela cria duas chaves, uma com a intenção de mantê-la secreta, e outra destinada a ser sacrificada. Ela passa a chave secreta (ou ambas) a Carl.

  2. Alice constrói uma mensagem inofensiva M1 para Carl (destinada a ser revelada a Bob no caso de emergência) e uma carta de amor de conteúdo incriminatório M2 para Carl. O texto M1 é cifrado com a chave K1 e M2 com a chave K2. No momento da criptografia M1 e M2 são mescladas em uma única mensagem cifrada que é enviada para Carl.

  3. Carl usa sua chave privada K2 para decifrar M2 e lê o texto secreto.

  4. Bob descobre a mensagem cifrada para Carl, torna-se suspeitoso e constrange Alice de decifrar a mensagem.

  5. Alice usa a chave de sacrifício K1 e a revela a Bob que lê o texto inofensivo M1. E porque Bob não sabe a chave de outro, ele tem que assumir que não há outra mensagem M2.

Outro cenário possível é que Alice cria uma mensagem cifrada com instruções secretas para Bob e Carl. A mensagem tem instruções diferentes e cada um destinatário não deve ficar a conhecer as instruções do outro. Carl pode receber a mensagem só por meio de Bob.

  1. Alice constrói a mensagem cifrada (M1 com K1 e M2 com K2) e a envia para Bob.

  2. Bob usa sua chave K1 e lê as instruções M1. Não pode ler M2.

  3. Bob envia a mensagem cifrada para Carl.

  4. Carl usa sua chave K2 e lê as instruções M2. Não pode ler M1.

Formas modernas de criptografia negável

As modernas técnicas de criptografia negável exploram as propriedades de permutação pseudoaleatória de cifras por bloco, tornando-se impossível provar que o texto cifrado não corresponde a dados aleatórios, gerados por um gerador de números pseudoaleatórios criptograficamente seguro. Usa-se também este método em combinação com um ou mais dados chamariz que o usuário deseja manter plausivelmente segredos, e que serão revelados em caso de ataque, afirmando que isso é tudo que existe. Esta forma de criptografia negável às vezes é denotada como esteganografia.

Outro exemplo de criptografia negável é o sistema de ficheiros criptográfico que utiliza o conceito de níveis abstratos, onde cada nível é cifrado com uma chave diferente, e com níveis adicionais especiais, com função de "chaff", preenchidos de dados aleatórios. O usuário armazena alguns ficheiros "chamarizes" em um ou mais níveis, negando a existência de outros níveis com ficheiros secretos, dizendo que o espaço restante é ocupado por níveis de chaff. Fisicamente, este tipo de sistema de ficheiros é armazenado em um único diretório que contém ficheiros de tamanho igual e de marca temporal casual. Os nomes são gerados por acaso - se eles pertencem às níveis de chaff - ou são hash criptográficos de cadeias que identificam os blocos. Sistema de ficheiros Rubberhose e PhoneBookFS utilizam essa abordagem.

Outro método utilizado por alguns software de criptografia de disco é a criação de um segundo volume cifrado dentro de um volume com funções de recipiente. O volume é formatado com dados aleatórios cifrados[3] e então inicializado com um sistema de ficheiros que o usuário preenche com dados plausivelmente sensíveis. Após, internamente ao volume recipiente se insere um segundo volume escondido com os dados segredos que o usuário queira armazenar. Como em outros exemplos, a proteção do volume cifrado traz força das propriedades de permutação pseudoaleatória de cifras por bloco.[4]

A integridade do volume cifrado depende da possibilidade de não aumentar o tamanho dos dados contidos no volume do recipiente, até chegando a sobrescrever o espaço oculto cifrado alocado no interior. Talvez, no tempo pode ser necessário "congelar" o volume recipiente para preservar aquilo escondido, correndo o risco de torná-lo suspeito por causa das marcas temporais de último acesso e modificação, nunca atualizadas. FreeOTFE e BestCrypt podem conter mais volumes cifrados no volume recipiente, TrueCrypt é limitado a um único volume escondido.[5]

Críticas

A existência de um volume oculto pode ser afetada por implementações de criptografia com elementos previsíveis, ou por efeito de alguns ferramentas forensesque podem forçar a revelar a presença de dados cifrados, não-aleatórios.[6][7] Foi também sugerida a vulnerabilidade de volumes cifrados, se processados com o teste de ​​randomização chi-quadrado, e que seria necessária, depois de cada modificação de dados cifrados, uma inclusão de elementos de correção para reduzir o volume a um estado razoável de aleatoriedade.[8]

A criptografia negável foi também criticada por sua incapacidade de defender os usuários contra a coação e tortura (criptoanálise de mangueira de borracha). De fato, alguns usuários e os desenvolvedores têm medo de que a utilização mesma de instrumentos com apoio da criptografia negável possa empurrar os atacantes a não interromper as investigações, mesmo quando o usuário arremeda de cooperar, fornecendo a chave.[9]

© 2019 - 2024 by FMK. Updated Oct 2024.  Proudly created with Wix.com

bottom of page