Criptografia de Chave Pública
ao contrário da criptografia de chave simétrica, não encontramos o histórico do uso de criptografia de chave pública. É um conceito relativamente novo.
A criptografia simétrica era bem adequada para organizações como governos, militares e grandes corporações financeiras estavam envolvidas na comunicação classificada.,com a disseminação de redes de computadores mais inseguras nas últimas décadas, sentiu-se uma necessidade genuína de usar criptografia em maior escala. A chave simétrica foi considerada não prática devido aos desafios que enfrentava para a gestão de chaves. Isto deu origem aos sistemas de criptografia de chave pública.
O processo de criptografia e descriptografia é representado na ilustração a seguir −
As propriedades mais importantes de criptografia de chave pública esquema são −
-
chaves Diferentes são usadas para criptografia e descriptografia., Esta é uma propriedade que define este esquema diferente do esquema de encriptação simétrica.
-
cada receptor possui uma chave de descodificação única, geralmente referida como a sua chave privada.
-
O receptor necessita de publicar uma chave de encriptação, referida como a sua chave pública.
-
alguma garantia da autenticidade de uma chave pública é necessária neste esquema para evitar spoofing pelo adversário como o receptor. Geralmente, este tipo de sistema criptográfico envolve terceiros confiáveis que certificam que uma determinada chave pública pertence apenas a uma pessoa ou entidade específica.,
-
algoritmo de encriptação é complexo o suficiente para proibir o atacante de deduzir o texto simples a partir do cifrotexto e da chave de encriptação (pública).
-
embora as chaves privadas e públicas estejam relacionadas matematicamente, não é possível calcular a chave privada a partir da chave pública. Na verdade, parte inteligente de qualquer criptossistema de chave pública está em projetar uma relação entre duas chaves.
Existem três tipos de sistemas de encriptação de chave pública., Nós os discutimos nas seguintes seções-
RSA Cryptosystem
este cryptosystem é um dos sistemas iniciais. Continua a ser o sistema criptográfico mais utilizado até hoje. O sistema foi inventado por três estudiosos Ron Rivest, Adi Shamir e Len Adleman e, portanto, é chamado de criptossistema RSA.
veremos dois aspectos do sistema de criptografia RSA, em primeiro lugar a geração de par de chaves e em segundo os algoritmos de criptografia-decriptação.,
geração de par de chaves RSA
cada pessoa ou parte que deseje participar na comunicação usando criptografia precisa gerar um par de chaves, nomeadamente chave pública e chave privada. O processo seguido na geração das chaves é descrito abaixo
-
Gerar o RSA módulo de elasticidade (n)
-
Selecione duas grandes números primos, p e q.
-
Calcular n=p*q. Para o forte de encriptação inquebrável, seja n um número grande, normalmente um mínimo de 512 bits.,
-
-
encontrar o número derivado (e)
-
número e deve ser superior a 1 e inferior a (p − 1)(q − 1).
-
não deve haver factor comum para e E(p − 1) (q − 1) excepto para 1. Em outras palavras, dois números e E (p-1) (q – 1) são coprime.
-
-
forma a chave pública
-
o par de números (n, e) forma a chave pública RSA e é tornado público.,
-
Curiosamente, apesar de n é parte da chave pública, dificuldade em factorizing um grande número primo garante que o atacante não consegue encontrar em tempo finito os dois primos (p & q) utilizado para obter o n. Esta é a força da RSA.
-
-
Gerar a chave privada
-
Chave Privada d é calculada a partir de p, q, e e. Para um dado n e e, não é sem igual número de d.
-
Número d é o inverso de e módulo (p – 1)(q – 1)., Isto significa que d é o número menor que (p – 1)(q – 1), tal que, quando multiplicado por email, é igual a 1 módulo (p – 1)(q – 1).
-
Esta relação está escrito matematicamente como se segue −
-
ed = 1 mod (p − 1)(q − 1)
Estendida Euclidiana Algoritmo leva p, q, e e como entrada e dá como saída.
exemplo
um exemplo de geração de par de chaves RSA é dado abaixo. (For ease of understanding, the primes p & q taken here are small values. Praticamente, estes valores são muito elevados).,
-
deixe dois primos serem p = 7 e q = 13. Assim, módulo n = pq = 7 x 13 = 91.
-
Selecione e = 5, que é uma escolha válida, uma vez que não há um número que é fator comum de 5 e (p-1) (q− 1) = 6 × 12 = 72, excepto um.
-
o par de números (n, e) = (91, 5) forma a chave pública e pode ser disponibilizado a qualquer pessoa que desejemos ser capaz de nos enviar mensagens criptografadas.
-
Input p = 7, q = 13, e e = 5 para o algoritmo euclidiano alargado. A saída será d = 29.,
-
Verifique se o d calculado é correto por computação
de = 29 × 5 = 145 = 1 mod 72
-
Portanto, a chave pública é (91, 5) e chaves privadas é (91, 29).
encriptação e descodificação
Uma vez que o par de chaves foi gerado, o processo de encriptação e descodificação é relativamente simples e computacionalmente fácil.
curiosamente, RSA não opera diretamente em cadeias de bits, como no caso de criptografia de chave simétrica. Ele opera em números modulo n. portanto, é necessário representar o texto simples como uma série de números menos do que N.,
encriptação RSA
-
suponha que o remetente deseja enviar alguma mensagem de texto para alguém cuja chave pública é (n, e).
-
O remetente, em seguida, representa o texto sem formatação como uma série de números a menos do que n.
-
Para criptografar o primeiro texto simples P, que é um número aritmética módulo n. O processo de criptografia é matemática simples passo −
C = Pe mod n
-
Em outras palavras, o texto cifrado C, é igual ao de texto simples P multiplicado por si só e vezes e, em seguida, reduzido módulo n. Isso significa que C é um número menor que n.,
-
voltando ao nosso exemplo de Geração de Chaves com texto simples p = 10, obtemos cifrotexto c −
C = 105 mod 91
RSA decriptação
-
o processo de descodificação para RSA também é muito simples. Suponha que o receptor do par de chaves públicas (n, e) tenha recebido um cifrotexto C.
-
receptor levanta C ao poder da sua chave privada D. O módulo n do resultado será o P de texto simples.,
Plaintext = Cd mod n
-
Retornando novamente para o nosso exemplo numérico, o texto cifrado C = 82 iria ficar descriptografados número 10, utilizando a chave privada de 29
Plaintext = 8229 mod 91 = 10
RSA Análise
A segurança do RSA depende dos pontos fortes de duas funções separadas. O cryptosystem RSA é o sistema de criptografia de chave pública mais popular, cuja força é baseada na dificuldade prática de fatorar os números muito grandes.,
-
Função de Criptografia − é considerado como uma forma de função de conversão de texto simples em texto codificado e pode ser revertido apenas com o conhecimento da chave privada d.
-
a Geração da Chave − A dificuldade de determinar uma chave privada a partir de uma chave pública RSA é equivalente ao factoring o módulo n. Um invasor, portanto, não pode utilizar o conhecimento de uma chave pública RSA para determinar uma chave privada RSA, a menos que ele pode factor de n. É também uma maneira de função, passando a partir de p & q, os valores de a módulo n é fácil, mas o inverso não é possível.,
Se alguma destas duas funções for provada não de um só sentido, então a RSA será quebrada. Na verdade, se uma técnica de factoring eficientemente for desenvolvida então RSA não será mais segura.
a força da encriptação RSA diminui drasticamente contra ataques se o número P E q não são números primos grandes e/ ou chave pública escolhida e é um número pequeno.
criptossistema ElGamal
juntamente com RSA, existem outros sistemas de criptografia de chave pública propostos. Muitos deles são baseados em diferentes versões do problema do logaritmo discreto.,
criptossistema ElGamal, chamado variante da curva elíptica, é baseado no problema do logaritmo discreto. Ele deriva a força da suposição de que os logaritmos discretos não podem ser encontrados em um prazo prático para um dado número, enquanto a operação inversa da potência pode ser computada de forma eficiente.
vamos passar por uma versão simples de ElGamal que funciona com números modulo p. no caso de variantes de curvas elípticas, ele é baseado em sistemas de números bastante diferentes.,
Geração de ElGamal Par de Chaves
Cada usuário do ElGamal criptosistema gera o par de chaves através da seguinte forma −
-
a Escolha de um grande primeiro-p. Geralmente, um número primo de 1024 a 2048 bits de comprimento é escolhido.
-
escolhendo um elemento gerador g.
-
Este número deve estar entre 1 e p − 1, mas não pode ser qualquer número.
-
é um gerador do grupo multiplicativo de inteiros modulo p. isto significa que para cada inteiro M co-primo para p, Existe um inteiro k tal que gk=um mod n.,por exemplo, 3 é gerador do grupo 5 (Z5 = {1, 2, 3, 4}).
-
N | 3n | 3n mod 5 |
---|---|---|
1 | 3 | 3 |
2 | 9 | 4 |
3 | 27 | 2 |
4 | 81 | 1 |
-
Escolha a chave privada. A chave privada x é qualquer número maior que 1 e menor que p−1.
-
computando parte da chave pública., O valor y é calculado a partir dos parâmetros p, g e da chave privada x como se segue −
y = gx mod p
-
obtendo chave pública. A chave pública ElGamal consiste nos três parâmetros (p, g, y).por exemplo, suponha que p = 17 e que g = 6 (pode-se confirmar que 6 é um gerador do grupo Z17). A chave privada x pode ser qualquer número maior que 1 e menor que 71, então escolhemos x = 5. O valor y é então calculado como segue –
y = 65 mod 17 = 7
-
assim a chave privada é 62 e a chave pública é (17, 6, 7).,
encriptação e descodificação
a geração de um par de chaves ElGamal é comparativamente mais simples do que o processo equivalente para RSA. Mas a encriptação e a descodificação são um pouco mais complexas que a RSA.
ElGamal Criptografia
Suponha que o remetente deseja enviar um texto simples para alguém cujo ElGamal de chave pública é (p, g, y), então −
-
Remetente representa o plaintext como uma série de números modulo p.
-
Para criptografar o primeiro texto simples P, que é representado como um número modulo p., O processo de criptografia para obter o texto cifrado C é como segue:
- gerar Aleatoriamente um número k;
- Calcular dois valores de C1 e C2, onde −
C1 = gk mod pC2 = (P*yk) mod p
-
Envie o texto cifrado C, constituído de dois em separado os valores de (C1, C2), enviado em conjunto.,
-
Referindo-se aos nossos ElGamal a geração de chaves no exemplo dado acima, o plaintext P = 13 é codificada como segue:
- gerar Aleatoriamente um número, digamos k = 10
- Calcule os dois valores de C1 e C2, onde −
C1 = 610 mod 17C2 = (13*710) mod 17 = 9
-
Envie o texto cifrado C = (C1, C2) = (15, 9).,
ElGamal Descriptografia
-
Para descriptografar o texto cifrado (C1, C2) utilizando a chave privada x, as duas etapas seguintes são tomadas
-
Calcule a modular inverso de (C1)x módulo p, que é (C1)-x , geralmente referido como fator de descriptografia.,
-
Obter texto sem formatação usando a seguinte fórmula
-
C2 × (C1)-x mod p = Plaintext
-
No nosso exemplo, para descriptografar o texto cifrado C = (C1, C2) = (15, 9) utilizando a chave privada x = 5, a descriptografia fator é
15-5 mod 17 = 9
-
Extrato de texto simples P = (9 × 9) mod 17 = 13.
análise ElGamal
no sistema ElGamal, cada utilizador tem uma chave privada X. e tem três componentes do módulo de chave pública − prime p, gerador g e público Y = GX mod p., A força do ElGamal é baseada na dificuldade do problema do logaritmo discreto.
O tamanho da chave segura é geralmente > 1024 bits. Hoje até são usadas chaves de 2048 bits de comprimento. Na frente de velocidade de processamento, Elgamal é bastante lento, é usado principalmente para protocolos de autenticação chave. Devido à maior eficiência de processamento, variantes da curva elíptica de ElGamal estão se tornando cada vez mais populares.,
criptografia de curva elíptica (ECC)
criptografia de curva elíptica (ECC) é um termo usado para descrever um conjunto de ferramentas e protocolos criptográficos cuja segurança é baseada em versões especiais do problema do logaritmo discreto. Ele não usa números modulo p.
ECC é baseado em conjuntos de números que estão associados com objetos matemáticos chamados curvas elípticas. Existem regras para adicionar e computar múltiplos desses números, assim como existem para números modulo p.,
ECC inclui variantes de muitos esquemas criptográficos que foram inicialmente projetados para números modulares, como criptografia ElGamal e algoritmo de assinatura Digital.
acredita-se que o problema do logaritmo discreto é muito mais difícil quando aplicado a pontos em uma curva elíptica. Isso leva a mudança de números modulo p para pontos em uma curva elíptica. Também um nível de segurança equivalente pode ser obtido com chaves mais curtas se usarmos variantes elípticas baseadas em curvas.,
As chaves mais curtas resultam em dois benefícios-
- facilidade de gestão de chaves
- computação eficiente
estes benefícios tornam as variantes do esquema de encriptação baseadas em curvas elípticas altamente atraentes para aplicações onde os recursos de computação são limitados.os regimes RSA e ElGamal – uma comparação
vamos comparar brevemente os regimes RSA e ElGamal nos vários aspectos.
RSA | ElGamal |
---|---|
é mais eficiente para a criptografia. | é mais eficiente para decriptação., |
é menos eficiente para a decriptação. | é mais eficiente para decriptação. |
para um determinado nível de segurança, são necessárias chaves longas em RSA. | para o mesmo nível de segurança, são necessárias chaves muito curtas. |
é amplamente aceite e utilizado. | é novo e não muito popular no mercado. |