O que é a encriptação RSA e como funciona?

criptografia RSA é um sistema que resolve o que já foi um dos maiores problemas em criptografia: Como você pode enviar a alguém uma mensagem codificada sem ter uma oportunidade para se anteriormente compartilhar o código com eles?

Este artigo irá ensinar-lhe tudo o que você precisa saber sobre como a encriptação RSA foi desenvolvida, como funciona, a matemática por trás dela, para o que é usada, bem como alguns dos maiores problemas de segurança que enfrenta., Aprender sobre a RSA lhe dará algum conhecimento fundamental que o ajudará a entender quantas partes da nossa vida online são mantidas seguras.

o que é a encriptação RSA?digamos que quer contar um segredo ao seu amigo. Se estás mesmo ao lado deles, podes sussurrar. Se você está em lados opostos do país, isso obviamente não vai funcionar. Você poderia escrevê-lo e enviá-lo para eles, ou usar o telefone, mas cada um desses canais de comunicação é inseguro e qualquer um com uma motivação forte o suficiente poderia facilmente interceptar a mensagem.,se o segredo fosse suficientemente importante, não se arriscaria a escrevê–lo normalmente.espiões ou um funcionário dos correios podem estar a ver o seu correio. Da mesma forma, alguém pode estar a escutar o seu telefone sem o seu conhecimento e a registar todas as chamadas que faz.

uma solução para impedir que os bisbilhoteiros acedam ao conteúdo da mensagem é encriptar o mesmo. Isto significa basicamente adicionar um código à mensagem que o transforma em confusão. Se o seu código é suficientemente complexo, então as únicas pessoas que serão capazes de Acessar a mensagem original são aquelas que têm acesso ao código.,

Se você teve a chance de compartilhar o código com seu amigo de antemão, então qualquer um de vocês pode enviar uma mensagem criptografada a qualquer momento, sabendo que vocês os dois são os únicos com a capacidade de ler o conteúdo da mensagem. Mas e se não tivesses oportunidade de partilhar o código antes?

Este é um dos problemas fundamentais da criptografia, que tem sido abordado por sistemas de criptografia de chave pública (também conhecido como criptografia assimétrica) como RSA.

sob criptografia RSA, as mensagens são criptografadas com um código chamado de chave pública, que pode ser compartilhado abertamente., Devido a algumas propriedades matemáticas distintas do algoritmo RSA, uma vez que uma mensagem foi criptografada com a chave pública, ela só pode ser decifrada por outra chave, conhecida como chave privada. Cada usuário RSA tem um par de chaves que consiste em suas chaves públicas e privadas. Como o nome sugere, a chave privada deve ser mantida em segredo.os sistemas de encriptação de chave pública diferem da cifra de chave simétrica, onde tanto o processo de encriptação como de descodificação utilizam a mesma chave privada., Estas diferenças tornam a encriptação de chave pública como a RSA útil para comunicar em situações em que não houve oportunidade de distribuir chaves com segurança de antemão.

algoritmos de Chave Simétrica têm suas próprias aplicações, tais como criptografar dados para uso pessoal, ou para quando existem canais seguros que as chaves privadas podem ser compartilhadas.

Ver também: criptografia de chave pública

onde é utilizada a encriptação RSA?

a encriptação RSA é frequentemente usada em combinação com outros esquemas de encriptação, ou para assinaturas digitais que podem provar a autenticidade e integridade de uma mensagem., Não é geralmente usado para criptografar mensagens inteiras ou arquivos, porque é menos eficiente e mais pesado em recursos do que criptografia de chave simétrica.

para tornar as coisas mais eficientes, um arquivo geralmente será criptografado com um algoritmo de chave simétrica, e então a chave simétrica será criptografada com criptografia RSA. Sob este processo, apenas uma entidade que tenha acesso à chave privada RSA será capaz de descriptografar a chave simétrica.

sem ser capaz de Acessar a chave simétrica, o arquivo original não pode ser descriptografado., Este método pode ser usado para manter mensagens e arquivos seguros, sem levar muito tempo ou consumir muitos recursos computacionais.

a encriptação RSA pode ser usada em vários sistemas diferentes. Ele pode ser implementado em OpenSSL, wolfCrypt, cryptlib e uma série de outras bibliotecas criptográficas.como um dos primeiros sistemas de encriptação de chave pública amplamente utilizados, a RSA lançou as bases para grande parte das nossas comunicações seguras. Ele era tradicionalmente usado em TLS e também era o algoritmo original usado na criptografia PGP., RSA ainda é visto em uma série de navegadores da web, e-mail, VPNs, chat e outros canais de comunicação.

RSA também é muitas vezes usado para fazer conexões seguras entre os clientes de VPN e servidores de VPN. Sob protocolos como OpenVPN, TLS handshakes podem usar o algoritmo RSA para trocar chaves e estabelecer um canal seguro.

o fundo da encriptação RSA

como mencionamos no início deste artigo, antes da encriptação de chave pública, foi um desafio comunicar-se de forma segura se não tivesse havido uma oportunidade de trocar chaves com segurança de antemão., Se não houvesse uma oportunidade de compartilhar o código antes do tempo, ou um canal seguro através do qual as chaves poderiam ser distribuídas, não havia maneira de se comunicar sem a ameaça de inimigos serem capazes de interceptar e acessar o conteúdo da mensagem.só nos anos 70 é que as coisas começaram a mudar. O primeiro grande desenvolvimento para o que agora chamamos de criptografia de chave pública foi publicado no início da década por James H. Ellis., Ellis não conseguiu encontrar uma maneira de implementar seu trabalho, mas foi expandido por seu colega Clifford Cocks para se tornar o que agora sabemos como criptografia RSA.

a peça final do quebra-cabeça é o que agora chamamos de troca de chaves Diffie-Hellman. Malcolm J. Williamson, outro colega de trabalho, descobriu um esquema que permitiu que duas partes compartilhassem uma chave de criptografia, mesmo que o canal estivesse sendo monitorado por adversários.todo este trabalho foi realizado na Agência de inteligência do Reino Unido, a sede de Comunicações do Governo( GCHQ), que manteve a descoberta classificada., Em parte devido a limitações tecnológicas, o GCHQ não conseguia ver um uso para criptografia de chave pública na época, então o desenvolvimento ficou parado na prateleira recolhendo poeira. Foi apenas em 1997 que o trabalho foi desclassificado e os inventores originais da RSA foram reconhecidos.vários anos depois, conceitos similares começaram a se desenvolver na esfera pública. Ralph Merkle criou uma forma inicial de criptografia de chave pública, que influenciou Whitfield Diffie e Martin Hellman no projeto da troca de chaves Diffie-Hellman.,

As ideias de Diffie e Hellman estavam faltando um aspecto importante que faria seu trabalho uma fundação da criptografia de chave pública. Esta era uma função de Sentido Único que seria difícil de inverter. Em 1977, Ron Rivest, Adi Shamir e Leonard Adleman, cujos Apelidos formam o acrônimo RSA, chegaram a uma solução após um ano de trabalho sobre o problema.

the MIT-based academics made their breakthrough after a Passover party in 1977., Depois de uma noite de bebedeira, Rivest foi para casa, mas em vez de dormir, ele passou a noite febrilmente escrevendo um artigo que formalizou sua idéia para a necessária função de ida.

A ideia foi patenteada em 1983 pelo MIT, mas não foi até os primeiros dias da internet que o algoritmo RSA começou a ver a adoção como uma importante ferramenta de segurança.

como funciona a encriptação RSA?

o seguinte vai ser um pouco de uma simplificação, porque muitos leitores provavelmente foram marcados por seu professor de matemática do ensino médio., Para evitar que a matemática se descontrole demasiado, estaremos a simplificar alguns conceitos e a utilizar números muito mais pequenos. Na realidade, a criptografia RSA usa números primos que são muito maiores em magnitude e há algumas outras complexidades.

existem vários conceitos diferentes que você terá que dar a volta à sua cabeça antes de podermos explicar como tudo se encaixa. Estas incluem funções de alçapão, gerando primos, função totiente de Carmichael e os processos separados envolvidos na computação das chaves públicas e privadas usadas nos processos de criptografia e decriptografia.,

funções de armadilha

a encriptação RSA funciona sob a premissa de que o algoritmo é fácil de calcular em uma direção, mas quase impossível em reverso. Como exemplo, se lhe dissessem que 701.111 é um produto de dois números primos, você seria capaz de descobrir o que esses dois números são?

mesmo com uma calculadora ou um computador, a maioria de nós não teria nenhuma idéia de onde começar, muito menos ser capaz de descobrir a resposta. Mas se virarmos as coisas, torna-se muito mais fácil., Qual é o resultado de:

907 x 773

Se você estava entediado o suficiente, você teria sido capaz de sacar seu telefone ou talvez calculá-lo em sua cabeça para descobrir que a resposta é mencionados anteriormente 701,111. Estes 907 e 773 são os números primos que respondem à nossa primeira pergunta, O que nos mostra que certas equações podem ser fáceis de descobrir de uma maneira, mas aparentemente impossíveis ao contrário.

outro aspecto interessante desta equação é que é simples descobrir um dos números primos se você já tem o outro, bem como o produto., Se você disse que 701,111 é o resultado de 907 multiplicado por outro número primo, você pode descobrir o outro primeiro-com a equação a seguir:

701,111 ÷ 907 = 773

uma vez que a relação entre estes números é simples de calcular em uma direção, mas incrivelmente difícil em sentido inverso, a equação é conhecida como a porta da armadilha função. Esteja ciente de que, enquanto o exemplo acima é difícil para as pessoas de descobrir, os computadores podem fazer a operação em uma quantidade trivial de tempo.

Por causa disso, RSA usa números muito maiores., O tamanho dos números primos em uma implementação real RSA varia, mas em 2048-bit RSA, eles se uniriam para fazer chaves com 617 dígitos de comprimento. Para o ajudar a visualizá-lo, uma chave seria um número deste tamanho:

gerando números primos

as funções do alçapão mencionadas acima formam a base para o funcionamento dos sistemas de encriptação de chave pública e privada. As suas propriedades permitem que as chaves públicas sejam partilhadas sem pôr em perigo a mensagem ou revelar a chave privada. Eles também permitem que os dados sejam criptografados com uma chave de uma maneira que só pode ser decifrada pela outra chave do par.,

o primeiro passo para cifrar uma mensagem com RSA é gerar as chaves. Para fazer isso, precisamos de dois números primos (p e q) Que são selecionados com um teste de primalidade. Um teste de primalidade é um algoritmo que encontra eficientemente números primos, como o teste de primalidade Rabin-Miller.

os números primos em RSA precisam ser muito grandes, e também relativamente distantes. Números que são pequenos ou mais próximos juntos são muito mais fáceis de quebrar. Apesar disso, nosso exemplo vai usar números menores para tornar as coisas mais fáceis de seguir e computar.,digamos que o teste de primalidade nos dá os números primos que usamos acima, 907 e 773. O próximo passo é descobrir o módulo de elasticidade (n), usando a fórmula a seguir:

n = p x q

Onde p = 907 e q = 773

, Assim:

n = 907 x 773

n = 701,111

Carmichael do totient função

uma Vez que temos n, nós usamos Carmichael do totient função:

λ(n) = lcm (p − 1, q − 1)

Se tem sido um tempo desde que você bateu a matemática nos livros didáticos, os itens acima pode parecer um pouco assustador., Você pode saltar sobre esta parte e apenas confiar que a matemática funciona, caso contrário, ficar com a gente para mais alguns cálculos. Tudo será explicado com o máximo de detalhes possível para ajudá-lo a entender o básico.

para aqueles que não estão cientes, λ (n) representa o totiente de Carmichael para n, Enquanto lcm significa o menor múltiplo comum, que é o menor número em que p e q podem se dividir. Existem algumas maneiras diferentes de descobrir isso, mas o mais fácil é confiar em uma calculadora on-line para fazer a equação para você., Então, vamos colocar os nossos números na equação:

λ(701,111) = lcm (907 − 1, 773 − 1)

λ(701,111) = lcm (906, 772)

Usando a calculadora do link acima, este dá-nos a:

λ(701,111) = 349,716

Gerar a chave pública

Agora que temos Carmichael do totient de nossos números primos, é hora de descobrir a nossa chave pública. Sob RSA, chaves públicas são compostas de um número primo e, bem como n. o número e pode ser qualquer coisa entre 1 e o valor de λ(n), que em nosso exemplo é 349,716. ,

porque a chave pública é compartilhada abertamente, não é tão importante para e ser um número aleatório. Na prática, e é geralmente definido em 65.537, porque quando números muito maiores são escolhidos aleatoriamente, torna a encriptação muito menos eficiente. Para o exemplo de hoje, vamos manter os números pequenos para fazer cálculos eficientes. Digamos que:

e = 11

nossos dados criptografados finais são chamados de cifrotexto (c). Nós derivamo-lo de nossa mensagem de texto simples (m), aplicando a chave pública com a seguinte fórmula:

C = me mod n

Nós já chegamos com e e nós sabemos n Também., A única coisa que precisamos de explicar é mod. Está um pouco fora da profundidade deste artigo, mas refere-se a uma operação modulo, o que significa essencialmente o restante que resta quando você divide um lado pelo outro. Por exemplo:

10 mod 3 = 1

isto é porque 3 vai para 10 três vezes, com um resto de 1.de volta à nossa equação. Para manter as coisas simples, digamos que a mensagem (m) que queremos criptografar e manter em segredo é apenas um único número, 4., Vamos plug tudo em:

c = me mod n

c = 411 mod 701,111

c = 4,194,304 mod 701,111

Novamente, para fazer o módulo operação fácil, vamos estar usando uma calculadora on-line, mas você é bem-vindo a descobrir por si mesmos. Inserindo 4,194,304 para a calculadora on-line, dá-nos a:

c = 688,749

Portanto, quando usamos RSA para criptografar a nossa mensagem, 4, com a nossa chave pública, ele nos dá o texto cifrado de 688,749., Os passos anteriores podem ter parecido um pouco pesado demais em matemática, mas é importante reiterar o que realmente aconteceu.tínhamos uma mensagem de 4, que queríamos manter em segredo. Aplicámos uma chave pública, o que nos deu o resultado encriptado de 688.749. Agora que está encriptado, podemos enviar o número 688.749 para o dono do par de chaves. Eles são a única pessoa que será capaz de descriptografá-lo com sua chave privada. Quando o descodificarem, verão a mensagem que estávamos a enviar, 4.,

gerando a chave privada

na encriptação RSA, uma vez que os dados ou uma mensagem tenham sido transformados em cifrotexto com uma chave pública, ela só pode ser decifrada pela chave privada a partir do mesmo par de chaves. As chaves privadas são compostas por d e N. já sabemos n, e a seguinte equação é usada para encontrar d:

D =1/e mod λ(n)

na geração da secção de chave pública acima, já decidimos que no nosso exemplo, e seria igual a 11. Da mesma forma, sabemos que λ(n) é igual a 349,716 do nosso trabalho anterior sob a função totiente de Carmichael., As coisas tornam-se um pouco mais complicadas quando nos deparamos com esta secção da fórmula:

1/e mod

esta equação pode parecer que lhe está a pedir para dividir 1 por 11, mas não é esse o caso. Em vez disso, isto apenas simboliza que precisamos calcular o inverso modular de e(que neste caso é 11) e λ (N) (que neste caso é 349,716).

isto significa essencialmente que, em vez de executar uma operação modulo padrão, estaremos usando o inverso em vez disso., Isto é normalmente encontrado com o algoritmo euclidiano estendido, mas está um pouco fora do escopo deste artigo, então vamos apenas copiar e usar uma calculadora online em vez disso., Agora que entendemos tudo o que está acontecendo, vamos plug nossas informações na fórmula:

d =1/11 mod 349,716

Para executar esta operação, simplesmente introduza 11 (ou qualquer valor que você pode ter para e se você tentar isso com o seu próprio exemplo) onde diz Inteiro e 349,716 (ou qualquer valor de λ(n) se você tentar isso com o seu próprio exemplo) onde diz Módulo na calculadora on-line, que estava relacionado acima., Se você tiver feito isso corretamente, você deve obter um resultado em que:

d = 254, 339

Agora que temos o valor de d, podemos descriptografar as mensagens que foram criptografados com a nossa chave pública usando a fórmula a seguir:

m = cd mod n

agora podemos voltar para o texto cifrado que nós criptografados sob a Gerar a chave privada seção. Quando codificámos a mensagem com a chave pública, deu-nos um valor de C de 688.749. De cima, sabemos que d é igual a 254.339. Também sabemos que n é igual a 701.111. Isto nos dá:

m = 688,749254,339 mod 701,11.,

Como você deve ter notado, tentar levar um número para a 254,339 th poder pode ser um pouco demais para a maioria das calculadoras normais. Em vez disso, vamos usar uma calculadora de descodificação RSA online. Se você quisesse fazer uso de outro método, você aplicaria os poderes como normalmente faria e realizaria a operação de Módulo da mesma forma que fizemos na seção de gerar a chave pública.,

Na calculadora do link acima, digite 701,111 onde diz Fornecimento de Módulo: N, 254,399 onde diz Chave de Descriptografia: D, e 688,749 onde ele diz que o texto Cifrado a Mensagem em formato numérico, como mostrado abaixo:

Depois de ter inserido os dados, atingiu Descriptografar, que irá colocar os números através de desencriptação fórmula que foi listado acima. Isto lhe dará a mensagem original na caixa abaixo. Se você fez tudo corretamente, você deve obter uma resposta de 4, que foi a mensagem original que criptografamos com a nossa chave pública.,

como funciona a encriptação RSA na prática

as secções acima devem dar-lhe uma compreensão razoável de como funciona a matemática por detrás da encriptação de chave pública. Pode ser um pouco confuso, mas mesmo aqueles que não compreenderam as complexidades das equações podem esperar tirar algumas informações importantes sobre o processo.

nas etapas listadas acima, temos mostrado como duas entidades podem se comunicar de forma segura sem terem previamente compartilhado um código. Em primeiro lugar, cada um deles precisa de criar os seus próprios pares de chaves e partilhar a chave pública uns com os outros., As duas entidades precisam manter suas chaves privadas secretas para que suas comunicações permaneçam seguras.

Uma vez que o remetente tenha a chave pública de seu destinatário, eles podem usá-la para criptografar os dados que eles querem manter seguros. Uma vez que tenha sido criptografado com uma chave pública, ele só pode ser decifrado pela chave privada do mesmo par de chaves. Mesmo a mesma chave pública não pode ser usada para descriptografar os dados. Isto é devido às propriedades das funções de alçapão que mencionamos acima.

Quando o destinatário recebe a mensagem criptografada, eles usam sua chave privada para acessar os dados., Se o destinatário quiser devolver as comunicações de uma forma segura, pode então encriptar a sua mensagem com a chave pública da parte com a qual está a comunicar. Mais uma vez, uma vez que foi criptografado com a chave pública, a única maneira que a informação pode ser acessada é através da chave privada correspondente.

desta forma, a encriptação RSA pode ser usada por partes previamente desconhecidas para enviar dados entre si. Partes significativas dos canais de comunicação que usamos em nossas vidas on-line foram construídas a partir desta fundação.,

como são as mensagens mais complicadas encriptadas com RSA?

em nosso exemplo, simplificamos muito as coisas para torná-lo mais fácil de entender, e é por isso que nós só criptografamos uma mensagem de “4”. Ser capaz de encriptar o número 4 não parece particularmente útil, então você pode estar se perguntando como você pode encriptar um conjunto mais complicado de dados, como uma chave simétrica (que é o uso mais comum de RSA), ou mesmo uma mensagem.,

algumas pessoas podem ficar perplexas com a forma como uma chave como “n38cb29fkbjh138g7fqijnf3kaj84f8b9f…” ou uma mensagem como “Compre-me uma sanduíche” pode ser criptografada por um algoritmo como RSA, que lida com números e não Letras. A realidade é que toda a informação que nosso processo de computadores é armazenado em binário (1s e 0s) e nós usamos padrões de codificação como ASCII ou Unicode para representá-los de forma que os seres humanos podem entender (letras).,

isto significa que chaves como “n38cb29fkbjh138g7fqijnf3kaj84f8b9f…” e mensagens como “buy me a sandwich” já existem como números, que podem ser facilmente computados no algoritmo RSA. Os números por que são representados são muito maiores e mais difíceis de gerir, e é por isso que preferimos lidar com caracteres alfanuméricos em vez de uma mistura de binários.

Se você quisesse criptografar uma chave de sessão mais longa ou uma mensagem mais complexa com RSA, ela simplesmente envolveria um número muito maior.,

Padding

quando RSA é implementado, ele usa algo chamado padding para ajudar a prevenir uma série de ataques. Para explicar como isto funciona, vamos começar com um exemplo. Digamos que estava a enviar uma mensagem codificada para um amigo: “querida Karen, “” espero que esteja bem.” Ainda vamos jantar amanhã?

inceramente,

James

digamos que codificou a mensagem de uma forma simples, alterando cada letra para a que a segue no alfabeto. Isto mudaria a mensagem para:

Efbs Lbsfo,

j ipqf zpv BSF xfmm., Bsf xf tujmm ibwjoh ejoofs upnpsspx?

Zpvst tjodfsfmz,

Kbnft

Se os seus inimigos interceptaram esta letra, existe um truque que eles poderiam usar para tentar decifrar o código. Eles podem olhar para o formato da sua carta e tentar adivinhar o que a mensagem pode estar dizendo. Eles sabem que as pessoas normalmente começam suas cartas com “Olá”,” Olá”,” querido ” ou uma série de outras convenções.se eles tentassem aplicar “Hi” ou “Hello” como a primeira palavra, eles veriam que não se encaixaria no número de personagens. Eles poderiam então tentar “querida”., Encaixa, mas isso não significa necessariamente nada. Os atacantes tentariam e ver onde os levava. Então eles mudariam as letras “e”, “f”, “b”, E “s” com “d”, “e”, “a”, E ” r ” respectivamente. Isto dar-lhes-ia:

Laseo querido,

J ipqe zpv são xemm. São xe tujmm iawjoh djooes upnpsspx?

Zpvrt tjoderemz,

Kanet

ainda parece bastante confuso, por isso os atacantes podem tentar olhar para algumas outras convenções, como a forma como concluímos as nossas cartas. As pessoas muitas vezes adicionam “de” ou “gentil respeito” no final, mas nenhum destes se encaixam no formato., Em vez disso, os atacantes podem tentar “atenciosamente” e substituir as outras cartas para ver onde eles chegam. Alterando o “z”, “p”, “v”, “t”, “j”, “s”, “d” e “m” com “y”, “o”, “u”, “s”, “i”, “n”, “c” e “l”, respectivamente, eles iriam chegar:

Caro Lasen,

eu ioqe você está xell. Xe tuill iawinh dinnes uonossox?

atenciosamente,

Kanet

Após essa modificação, parece que os atacantes estão começando a chegar a algum lugar. Eles encontraram as palavras “eu”, “você” e “são”, além das palavras que compõem suas suposições iniciais.,

vendo que as palavras estão em ordem gramatical correta, os atacantes podem estar bastante confiantes de que estão indo na direção certa. Até agora, eles provavelmente também perceberam que o código envolvia cada letra sendo alterada para a que segue no alfabeto. Uma vez que eles percebem isso, torna fácil traduzir o resto e ler a mensagem original.

o exemplo acima era apenas um código simples, mas como você pode ver, a estrutura de uma mensagem pode dar pistas aos atacantes sobre o seu conteúdo., Claro, foi difícil descobrir a mensagem apenas a partir de sua estrutura e levou algumas suposições educadas, mas você precisa ter em mente que os computadores são muito melhores em fazer isso do que nós somos. Isso significa que eles podem ser usados para descobrir códigos muito mais complexos em um tempo muito mais curto, com base em pistas que vêm da estrutura e outros elementos.

Se a estrutura pode levar a um código sendo rachado e revelar o conteúdo de uma mensagem, então precisamos de alguma maneira de esconder a estrutura, a fim de manter a mensagem segura. Isto leva-nos ao enchimento.,

Quando uma mensagem é almofadada, os dados aleatórios são adicionados para esconder as pistas de formatação originais que podem levar a uma mensagem criptografada sendo quebrada. Com RSA, as coisas são um pouco mais complicadas, porque uma chave criptografada não tem a formatação óbvia de uma carta que ajudou a nos dar pistas em nosso exemplo acima.

apesar disso, os adversários podem usar uma série de ataques para explorar as propriedades matemáticas de um código e quebrar dados criptografados. Devido a esta ameaça, implementações de RSA usam esquemas de estofamento como OAEP para incorporar dados extras na mensagem., Adicionar este preenchimento antes da mensagem ser encriptada torna o RSA muito mais seguro.

assinar mensagens

RSA pode ser usado para mais do que apenas cifrar dados. Suas propriedades também fazem dele um sistema útil para confirmar que uma mensagem foi enviada pela entidade que afirma tê-la enviado, bem como para provar que uma mensagem não foi alterada ou adulterada.,

Quando alguém quer provar a autenticidade de sua mensagem, pode computar um hash (uma função que pega dados de um tamanho arbitrário e transforma-o em um valor de comprimento fixo) do texto simples, em seguida, assiná-lo com sua chave privada. Eles assinam o hash aplicando a mesma fórmula que é usada em decriptação (m = cd mod n). Uma vez que a mensagem foi assinada, eles enviam esta assinatura digital para o destinatário ao lado da mensagem.,

Se um destinatário receber uma mensagem com uma assinatura digital, pode usar a assinatura para verificar se a mensagem foi autenticamente assinada pela chave privada da pessoa que afirma tê-la enviado. Eles também podem ver se a mensagem foi alterada pelos atacantes depois que ela foi enviada.

para verificar a assinatura digital, o destinatário primeiro usa a mesma função de hash para encontrar o valor de hash da mensagem que recebeu., O destinatário então aplica a chave pública do remetente para a assinatura digital, usando a fórmula de criptografia (C = me mod n), para dar-lhes o hash da assinatura digital.

comparando o hash da mensagem que foi recebida ao lado do hash da assinatura digital cifrada, o destinatário pode dizer se a mensagem é autêntica. Se os dois valores são os mesmos, a mensagem não foi alterada desde que foi assinada pelo remetente original. Se a mensagem tivesse sido alterada por um único personagem, o valor de hash seria completamente diferente.,

RSA security & ataques

como a maioria dos sistemas de criptografia, a segurança do RSA depende de como ele é implementado e usado. Um factor importante é o tamanho da chave. Quanto maior o número de bits em uma chave (essencialmente quanto tempo a chave é), mais difícil é quebrar através de ataques como Força bruta e factoring.

Uma vez que algoritmos de chave assimétrica como RSA podem ser quebrados por fatoração de inteiros, enquanto algoritmos de chave simétrica como AES não podem, chaves RSA precisam ser muito mais longas para alcançar o mesmo nível de segurança.,

atualmente, o maior tamanho de chave que foi facturado é de 768 bits de comprimento. Isto foi feito por uma equipe de acadêmicos ao longo de um período de dois anos, usando centenas de máquinas.

Uma vez que a factoring foi concluída até o final de 2009 e o poder de computação cresceu significativamente desde então, pode-se assumir que uma tentativa de intensidade semelhante poderia agora Fator uma chave RSA muito maior.apesar disso, o tempo e os recursos necessários para este tipo de ataque coloca-o fora do alcance da maioria dos hackers e no Reino dos Estados-nação., O melhor Comprimento da chave a usar dependerá do seu modelo de ameaça individual. O Instituto Nacional de normas e Tecnologia recomenda um tamanho-chave mínimo de 2048 bits, mas Chaves de 4096 bits também são usadas em algumas situações em que o nível de ameaça é maior.o Factoring é apenas uma forma de quebrar o RSA. Uma série de outros ataques têm o potencial de quebrar a criptografia com uma menor quantidade de recursos, mas estes dependem da implementação e outros fatores, não necessariamente RSA em si. Alguns destes incluem:

os números primos são realmente aleatórios?,

algumas implementações de RSA usam geradores de números aleatórios fracos para chegar com os números primos. Se estes números não são suficientemente aleatórios, torna-se muito mais fácil para os atacantes para os factorizar e quebrar a encriptação. Este problema pode ser evitado usando um gerador de números pseudo-aleatórios criptograficamente seguro.

a má geração de chaves

as chaves RSA têm de estar dentro de certos parâmetros para serem seguras. Se os primos p e q estiverem muito próximos, a chave pode ser facilmente descoberta. Da mesma forma, o número d que constitui parte da chave privada não pode ser muito pequeno., Um valor baixo torna fácil de resolver. É importante que estes números sejam de comprimento adequado para manter a chave segura.

ataques de canais laterais

estes são um tipo de ataque que não quebram o RSA diretamente, mas em vez disso usam informações de sua implementação para dar dicas de atacantes sobre o processo de criptografia. Esses ataques podem incluir coisas como analisar a quantidade de energia que está sendo usada, ou análise de previsão de ramificações, que usa medições de tempo de execução para descobrir a chave privada.

outro tipo de ataque de canal lateral é conhecido como um ataque de timing., Se um atacante tem a capacidade de medir o tempo de decriptação no computador de seu alvo para um número de mensagens criptografadas diferentes, esta informação pode tornar possível para o atacante para determinar a chave privada do alvo.

a maioria das implementações do RSA evitam este ataque adicionando um valor único durante o processo de encriptação, o que remove esta correlação. Este processo é chamado de blindagem criptográfica.

a encriptação RSA é segura para o futuro?

a boa notícia é que o RSA é considerado seguro de usar, apesar destes possíveis ataques., A ressalva é que ele precisa ser implementado corretamente e usar uma chave que cai dentro dos parâmetros corretos. Como acabamos de discutir, implementações que não usam estofamento, usam números primos de tamanho inadequado ou têm outras vulnerabilidades não podem ser consideradas seguras.

Se quiser usar a encriptação RSA, certifique-se de que está a usar uma chave de pelo menos 1024 bits. Aqueles com modelos de maior ameaça devem ficar com chaves de 2048 ou 4096 bits se quiserem usar RSA com confiança., Enquanto você estiver consciente das fraquezas que a RSA tem e usá-lo corretamente, você deve se sentir seguro para usar a RSA para compartilhamento de chaves e outras tarefas semelhantes que requerem criptografia de chave pública.

Ver também: tipos de encriptação comuns explicados

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *