








































































Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Encontra documentos específicos para os exames da tua universidade
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Computacao Quantica
Tipologia: Notas de estudo
1 / 80
Esta página não é visível na pré-visualização
Não perca as partes importantes!









































































i
i
Nilton Hideki Takagi
Monografia para cumprimento dos créditos da disciplina PROJETO SUPERVISIONADO, do curso de bacharelado em Ciência da Computação da Universidade Federal de Mato Grosso.
Aprovada por:
Prof. Gilson A. R. Lima, Dsc. (Orientador)
Prof. Alberto S. de Arruda, Dsc.
Prof. Arlenes Silvino Silva, Dsc.
Cuiabá, MT- BRASIL NOVEMBRO DE 2003
i
i
Fundamentos Matemáticos da Criptografia Quântica 73 p. 29,7 cm [UFMT/Departamento de Ciência da Computação, 2003]. Monografia de Conclusão de Curso - 1.Criptografia 2.Criptografia Quântica 3.RSA, Protocolo B
iii
iii
Ao Professor Dr. G.A.R. Lima pela orientação, boa vontade em ensinar, dedicação e confiança depositada. À Fabiola, pela compreensão e incentivo.
iv
iv
Resumo da monografia apresentada ao Curso de Bacharelado em Ciência da Computação / UFMT como parte dos requisitos necessários para a obtenção do grau de Bacharel em Ciência da Computação.
Nilton Hideki Takagi
Novembro/
Orientador: Prof. Dr. G.A.R. Lima
Departamento: Ciências da Computação
Este estudo aborda os aspectos matemáticos envolvidos na criptografia quântica um novo método para comunicações secretas que oferece garantia de segurança máxima por ser fundamentado na inviolabilidade de uma lei da natureza ‘R SULQFtSLR GH LQFHUWH]DGH+HLVHQEHUJ”.
ii
ii
4.1 - Criptografia Quântica 60 4.2 - Sistema de Distribuição de Chaves Quânticas 63 4.3 - Segurança de Protocolos Quânticos 64 4.4 – Implementação Prática do QKD 66
Criptologia é uma ciência matemática que se dedica ao estudo de métodos de comunicação secreta. É composta pelas disciplinas de criptografia∗^ e criptoanálise#. A criptografia estuda os métodos para cifrar ou codificar uma mensagem de modo que só o destinatário legítimo é capaz de interpretar o conteúdo da mensagem sendo ilegível para terceiros e intrusos. O procedimento inverso, chamado de decifragem, é o objetivo de estudo da criptoanálise. Decodificar é o procedimento que o usuário legítimo do código realiza quando recebe uma mensagem codificada e quer lê-la. Já decifrar é o procedimento feito para ler uma mensagem codificada sem ser um destinatário legítimo. O principal propósito da criptografia é permitir a transmissão de mensagem por canais não seguros empregando técnicas matemáticas para tornar o conteúdo da mensagem restrita ao destinatário legítimo. Esta ciência é tão antiga quanto à própria escrita, porém somente depois da Segunda Guerra Mundial, com a invenção do computador e o desenvolvimento da teoria da informação [1-4] a criptografia realmente floresceu. Atualmente a criptografia está fundamentada em torno de algoritmos complexos para cifrar mensagens e são usados largamente em comunicação diplomáticas, militar e transações comerciais. A segurança depende de técnicas matemáticas para codificar e decodificar uma mensagem. É necessário que os códigos sejam difíceis de decifrar mesmo com a ajuda de um computador. Em 1976 Diffie e Hellman [5] conceberam a idéia de códigos de domínio público (podem ser revelados a qualquer pessoa sem comprometer a segurança de uma mensagem particular) para aplicações comerciais. O RSA [6] foi o primeiro código de chave pública desenvolvido. O código funciona com duas chaves. Uma chave%^ (pública), que junto com o texto original são usados como LQSXW para o algoritmo de codificação e uma chave privada que junto com o criptograma+^ são usados como LQSXW para o algoritmo de decodificação. A segurança da mensagem depende inteiramente do processo de gerar e distribuir as chaves. Caso um intruso adquirira a chave pública
∗ (^) Disciplina de criptologia que trata dos princípios, dos meios e dos métodos de transformação de documentos com o objetivo de
% Criptoanálise - métodos de analisar mensagens cifradas com o objetivo de decifrá-las. Uma chave secreta é constituída de uma longa seqüência de bits de números primos gerados aleatoriamente por um código difícil
"coroa", ou qualquer superposição dos dois. Como se a moeda pudesse cair com as duas faces para cima ao mesmo tempo. Se você atribuir o estado lógico "0" para "cara" e "1" para "coroa", você poderia, com uma moeda quântica, superpor os estados lógicos que classicamente são excludentes. Essa estranha propriedade da superposição já foi demonstrada muitas vezes em laboratórios de física em todas as partes do mundo, é uma verdade incontestável. Essa diferença tem conseqüências dramáticas para a computação e representa um ganho inimaginável de velocidade de processamento, pois todas as seqüências de bits possíveis em um computador poderiam ser manipuladas simultaneamente. A demonstração deste ganho de velocidade foi feita em 1993 por Peter Shor [9]. Ele desenvolveu um algoritmo quântico para fatorar números inteiros grandes. O tempo que um algoritmo clássico gasta para realizar a fatoração de um número de 1024 ELWV é 100 mil anos e o algoritmo de Shor, realiza a mesma tarefa em 4,5 minutos. No âmbito da computação, a criptografia é fundamental para que se possa garantir a segurança quanto à alteração intencional ou acidental de informações que necessite, de sigilo. Enquanto a criptografia clássica emprega várias técnicas matemáticas para restringir o acesso de intrusos ao conteúdo de uma mensagem, na criptografia quântica ao contrário, a informação é protegida por uma lei natural e assim garantindo segurança total. A característica de segurança da comunicação quântica é estabelecida pelo principio de incerteza de Heisenberg. Este estudo aborda os aspectos matemáticos da criptografia clássica, quântica e sua aplicação em sistemas de distribuição de chaves. No capítulo 1 será abordada a criptografia clássica sob a ótica matemática, conceito de chave, números primos, aritmética modular, fatoração e o sistema de distribuição de chaves públicas. No capítulo 2 será abordado os fundamentos da teoria quântica, conceito de fóton, dualidade partícula-onda, princípio de incerteza de Heisenberg, capacidade de observação, principio de superposição de estados e polarização da luz. No capítulo 3 será abordado o formalismo matemático do principio de superposição de estados, vetor de estado, variáveis dinâmicas, operadores lineares relações conjugadas, e observáveis. No capítulo 4, será abordada a criptografia quântica, protocolo de comunicação quântica e sistema quântico de distribuição de chaves, e o potencial de uso da criptografia quântica como protocolo de comunicação segura.
A Criptografia é a ciência que lança mão de recursos matemáticos para cifrar e decifrar mensagens. O ato de cifrar consiste em transformar um texto normal em texto cifrado, e o ato de decodificar é a operação inversa, consiste em transformar um texto cifrado em texto normal. Conforme é ilustrado na Figura 1.1.
)LJXUD – Criptografia sem o uso de chaves
A arte da criptografia iniciou a cerca de 2.500 anos atrás e teve uma importante função na história desde então. Talvez um dos mais famosos criptogramas, foi os bilhetes de Zimmermann, na primeira Guerra Mundial. Quando o criptograma foi decifrado em 1917, por volta desta época Gilbert S. Vernam da AT & T e o Major Joseph O. Maubougne do exército Norte Americano desenvolveram o primeiro código inquebrável chamado de cifras de Vernam, porém não chamou muita atenção provavelmente porque era necessário usar chaves grandes (do mesmo tamanho da mensagem). Durante a Segunda Guerra Mundial, os Aliados foram capazes de decifrar as mensagens secretas transmitidas pelos Alemães e Japoneses, assim começou o interesse científico pelo estudo da criptografia. Em meados de 1970, os pesquisadores Whitfield Diffie, Martin E. Hellman e Ralph C. Merkle da Universidade de Stanford, idealizaram o sistema de Criptografia de Chave Pública [10]. Pouco tempo depois, em 1977, Ronald L. Rivest, Adi Shamir e Leonard M. Adleman do Instituto de Tecnologia de Massachusetts, desenvolveram uma aplicação prática [11] de Criptosistema de Chave Pública. A idéia do criptosistema de chave pública é a seguinte: Seja um usuário, o qual chamaremos de Alice que possui um par de chaves (uma pública e uma privada),Alice envia a sua chave pública para alguém. Esse alguém, o qual chamaremos de Bob, usa a chave pública de Alice para criptografar e enviar uma mensagem à Alice. Após usar a chave para encriptar, nem mesmo Bob conseguirá
Método de Criptografia / Procedimento de codificação
Método de Decriptografia / Procedimento de decodificação
Texto Criptografado ou criptograma
Texto Normal Texto Normal
criptografia Convencionais+[12]. Os algoritmos convencionais são geralmente públicos
e as partes que desejam comunicar-se usam uma chave secreta que deverá ser utilizada em conjunto com o algoritmo. A chave secreta consiste de uma VWULQJ randômica de ELWV de tamanho variável (40 ELWV, 56 ELWV, 64 ELWV, 128 ELWV, 192 ELWVe 256 ELWV). Atualmente, é aconselhável a adoção de no mínimo chaves de 128 ELWV [12]. Para explicar como o sistema funciona, é preciso descrever com mais detalhes os aspectos matemáticos da criptografia clássica, especialmente o conceito de chave,como são geradas e de que forma um algoritmo de criptografia usa essas chaves para codificar uma mensagem.
Antigamente a segurança das cifras dependia do total segredo dos procedimentos de criptografia e decriptografia. Hoje esses procedimentos são conhecidos publicamente, mas as chaves são secretas. A chave é usada para controlar e personalizar os processos de criptografia e decriptografia. Se um intruso interceptar o criptograma e conhecer o método usado de criptografia não poderá, sem a chave, tirar qualquer proveito da mensagem original. Conseqüentemente, o texto codificado pode ser transmitido em um canal público como internet. A chave, no entanto precisa ser enviado por algum canal seguro. A segurança do criptograma depende do tamanho das chaves. Em 1940, Claude E. Shannon, do Laboratório Bell, demonstrou que se a chave usada para encriptar for pequena, um intruso poderá obter algumas informações sobre a mensagem a partir do criptograma [1-4,12,13]. Ao contrário, se a chave for grande a mensagem pode ser completamente e incondicionalmente secreta para um intruso. Isso é conseguido de duas maneiras: a) usando o criptosistema de Vernam, o qual a chave da mensagem é genuinamente do tamanho da mensagem e usada somente uma única vez, b) usando chaves composta por um número muito grande (128 bits por exemplo). Veremos a seguir os fundamentos matemáticos da criptografia de chave pública. Apresentaremos de uma forma simples o processo de gerar chaves utilizando números muito grandes.
∗ (^) Neste estudo consideramos técnicas clássicas todas as técnicas que não fazem uso de conceitos quânticos.
A criptografia de chave pública ou assimétrica utiliza duas chaves que são relacionadas por uma função matemática. O que uma chave encripta a outra decripta. Mesmo estando relacionadas entre si, elas são significativamente diferentes [14]. Para que isto ocorra, o algoritmo de criptografia (&) e o algoritmo de decriptografia (') devem atender a três requisitos matemáticos:
i. '(&( 0 )) 0 , onde M seria a mensagem, ii. É excessivamente difícil deduzir ' de &, iii. &não pode ser decifrado através do ataque de texto simples escolhido.
O primeiro requisito diz que se for aplicado ' a um criptograma &( 0 ), obtermos a mensagem original 0. O segundo requisito diz que será difícil deduzir o algoritmo de decriptografia através do algoritmo de criptografia, fato que não acontece na criptografia simétrica. O terceiro requisito expõe a liberdade de qualquer pessoa não autorizada a analisar o algoritmo de criptografia, daí a razão dele ser público. Um método muito utilizado e que realmente satisfaças os três requisitos é conhecido pelas iniciais de seus criadores, R. L. Rivest, A. Shamir e L. Adleman (RSA). A seguir veremos como funciona o método RSA e os conceitos matemáticos usados.
O algoritmo RSA trabalha com dois parâmetros (dois números primos∗) que vamos chamar de S e T. Para codificar uma mensagem usando o RSA é suficiente conhecer o produto dos dois números, que vamos chamaremos de Q. Para decodificar uma mensagem é preciso conhecer os números primos S e T. A chave de codificação do RSA é, portanto constituída essencialmente pelo número Q = S X T. Por isso Q também é conhecido como FKDYHS~EOLFD. Já a chave de decodificação é constituída pelos primos S e T. Cada usuário tem que manter sua chave privada secreta para não comprometer a segurança do método.
∗ (^) Número primo - um número é primo se ≠± 1 e os únicos divisores de são ± 1 e ± . Portanto 2, 3, 5 e –7 são primos, mas 45 = 5X9 não é primo. Um número inteiro, diferente de ± 1, que não é primo é chamado de composto. Logo 45 é composto.
em seguida quebramos a seqüência de números acima em blocos menores que Q. Deve-se tomar cuidado para que os blocos não comecem por 0 (zero), uma vez que a maneira de escolher os blocos não é única. A maneira como foi escolhido os blocos, obtemos:
1 3 1 - 4 - 3 0 - 2 8 - 9 9 - 1 4 9 - 9 - 1 1 2 - 7 - 1 0 2 - 8 1 - 8 2 - 1 1 4 - 1 8 - 2 7 - 2 4
que não correspondem a nenhuma unidade lingüística. A chave pública RSA consiste em dois números naturais (H,Q) e denotado por Kc(H,Q). A chave privada consiste do mesmo número Q e outro número G denotado por Kd(G,Q). Para gera um par de chaves, os seguintes passos são executados: a) escolha aleatória de dois números primos grandes S e T. Depois calcula-se o valor de Q = S X T e o valor da função de Euler Q). Q) = (S - 1) (T - 1) b) Escolher um número H< Q, tal que o mdc (H Q)) = 1 e que 1 < H Q). Com isso temos a chave pública Ke(H,Q). c) Para gerar a chave privada o número natural calculado é: d = H-1^ PRG Q)) de forma que, H X G PRG Q)), com 1 G Q) e assim a chave privada Kd(G,Q) é gerada.
A fim de que entendamos melhor o processo de codificação, é necessário que saibamos um pouco mais sobre aritmética modular.
Quando 15+15 são 6? Se analisarmos esta soma sem questionar, falaremos sem medo que nunca. Agora, se pensarmos em horas, esta conta está correta, pois 15 horas mais 15 horas são 6 horas. Qualquer fenômeno cíclico como este, vai se tornar
uma aritmética distinta da que conhecemos no segundo grau. Esta aritmética é conhecida como aritmética modular. Vamos agora construir uma relação de equivalências no conjunto dos inteiros. Diremos que, pulando Q em Q, todos os inteiros são equivalentes; ou ainda, dois inteiros cuja diferença é um múltiplo de Q são equivalentes. Formalmente, diremos que dois inteiros D e E são congruentes módulo Q se DE é um múltiplo de Q. Se D e E são congruentes módulo Q, escrevemos
Em exemplos numéricos,
Voltando ao pensamento do ciclo de horas e fazendo uma analogia com o primeiro exemplo numérico, 7 seria equivalente as nossas 24 horas. Quantos dias teríamos com 10 horas? No exemplo teríamos 1 dia e mais 3 horas. As horas a serem calculadas (10 horas) menos o resto (3 horas) deve ser um múltiplo exato das horas que indicam um dia (7horas).
A seqüência de números acima diz de que é muito mais simples encontrar o resto lançando mão das regras da aritmética modular. Imagine o trabalho de encontrar o resto de um número na ordem de grandeza de 10^135.
bem da segurança, vamos ver que a fatoração de Q por enquanto não é tão fácil assim.
Dado um número Q, se quisermos fatorá-lo podemos faze-lo de uma forma simples, dividindo Q por 2 até Q- 1. Se algum destes inteiros dividir Q, então achamos um fator de Q. É evidente que a busca não deve passar de Q - 1 pois um número inteiro não pode ter um fator maior que ele próprio. Porém não precisamos fazer esta
que seja maior que 1. Portanto, seja um número composto Q e seu fator I > 1. Então
exceção desta busca de fatoração é quando o número é primo, daí o menor fator maior que 1 é ele mesmo. Então, no pior dos casos é quando Q for um número primo. O número de laços
portanto raiz de Q= 10^50. Seria necessário 10^50 laços, presumindo que um computador hoje executa 10^10 divisões por segundo, teríamos 10^40 segundos para descobrir que Q é primo. Se levarmos em conta que 10^40 corresponde a 10^31 anos, fica inviável fatorar um número deste tamanho. Existem outros métodos de fatoração. Um método muito interessante e o de Fermatι. A idéia do algoritmo é tentar achar inteiros positivos [ e \ tais que Q= [^2 - y^2. Aplicando o algoritmo de Fermat fica fácil descobrir seus fatores desde que a diferença entre eles seja pequena. Numa multiplicação de dois números primos grandes como os usados na criptografia RSA, deve-se tomar cuidado de não se escolher primos próximos, pois poderá ser facilmente fatorado pelo algoritmo de Fermat, comprometendo toda a segurança da Criptografia. Se os primos forem bem escolhidos, se torna inviável a fatoração pelos computadores atuais como demonstrado no parágrafo anterior. O procedimento usado para criar as chaves é fundamental para a segurança do processo de criptografia. Porém, somente uma boa chave não impede que intrusos
ι (^) O Francês, O Francês, Pierre de Fermat, nasceu em 1601, magistrado da corte de Toulouse, era matemático nas horas vagas.
consigam burlar o sigilo da informação. Uma tentativa de solucionar o problema da distribuição de chaves foi o sistema de distribuição de chave.
Uma das tentativas de solucionar o problema da distribuição das chaves secretas foi a criação de um Centro de Distribuição de Chaves (CDC), que é responsável pela comunicação entre pessoas aos pares. Para isto, o CDC deve ter consigo todas as chaves secretas dos usuários que utilizam seus serviços. O maior problema em torno do CDC, é que este constitui um componente centralizado, além de ser gerenciado por pessoas que podem de alguma forma comprometer a segurança. Os problemas mais comuns estão relacionados a seguir:
i. Autenticação dos parceiros: Como o usuário pode ter a certeza de que está realmente utilizando o sistema que ele deseja e não um sistema clonado? ii. Integridade dos dados transmitidos: Como garantir que os dados não sofram alterações durante a transmissão? iii. Segredo nas comunicações: Como impedir que o conteúdo da transmissão seja conhecido por outras pessoas? iv. Origem dos dados: Como o sistema pode ter certeza que realmente o usuário é quem diz ser?
É necessário que o modelo utilizado resolva todos esses problemas. Uma forma de realizar isto é a utilização de certificados digitais. Um certificado digital associa a identidade de uma pessoa ou processo a um par de chaves criptográficas (uma pública e outra privada) que, usadas em conjunto, fornecem a comprovação da identidade. É uma versão digital de um documento de identificação (Cédula de Identidade) e serve como prova de identidade e é reconhecida [16]. A fim de facilitar o uso da Criptografia de Chave Pública, criou-se a Infraestrutura de Chaves Públicas (ICP)∗. A ICP é responsável pela distribuição e validade dos certificados de chaves públicas. A estrutura da ICP é baseada em uma Autoridade Certificadora de certificados que realiza todas as funções de gerência de certificados. Apesar de todos os mecanismos de segurança disponível nos sistemas de chave pública este sistema não é totalmente seguro.
∗ (^) ICPs existentes hoje no Brasil – ICP-Gov, ICP-Brasil, ICP-OAB, SERASA e CEF.