Notas de projeto de arquitetura de sistema (83) - criptografia e descriptografia

A tecnologia de criptografia tem uma longa história. Desde os tempos antigos, houve transmissão e armazenamento de informações, e a tecnologia de criptografia foi usada. Desde então, por um longo período de tempo, as tecnologias de criptografia e descriptografia foram amplamente adotadas em áreas especiais como militar, política, diplomacia e finanças. Depois de um longo período de pesquisa e desenvolvimento, uma disciplina-criptografia relativamente completa foi formada. A criptografia é uma ciência que estuda métodos de criptografia, os princípios da comunicação secreta, bem como métodos de descriptografia e métodos de decifrar códigos.

O processo de criptografia e descriptografia é aproximadamente o seguinte: primeiro, o remetente da informação está pronto para enviar a forma original da informação, chamada de texto simples. Então, após uma série de transformações no texto simples, outra forma de informação que não pode refletir diretamente o significado do texto simples é chamada de texto cifrado. O processo de conversão de texto simples em texto cifrado é chamado de criptografia. O conjunto de regras ou métodos usados ​​na criptografia é chamado de algoritmo de criptografia. Depois de receber o texto cifrado, o receptor restaura o texto cifrado em texto simples para obter o conteúdo específico da informação.Este processo é chamado de descriptografia. Ao descriptografar, uma série de métodos ou regras correspondentes ao algoritmo de criptografia também são usados.Este método ou regra é chamado de algoritmo de descriptografia.

No processo de criptografia e descriptografia, as informações dos parâmetros controlados pelas partes comunicantes controlam o processo específico de criptografia e descriptografia.Este parâmetro é chamado de chave. A chave é dividida em uma chave de criptografia e uma chave de descriptografia, que são usadas no processo de criptografia e no processo de descriptografia, respectivamente. No processo de criptografia e descriptografia, se a chave de criptografia usada é a mesma que a chave de descriptografia ou a outra pode ser facilmente calculada a partir de uma, esse método é chamado de criptosistema de chave simétrica ou criptosistema de chave única. Por outro lado, se as chaves de criptografia e descriptografia não forem iguais, ou for difícil calcular uma da outra, é chamado de criptosistema de chave assimétrica ou criptosistema de chave pública ou criptosistema de chave dupla.

1 algoritmo de criptografia de chave simétrica

Por um longo período de tempo no passado, as pessoas sempre usaram a criptografia de chave simétrica para criptografar e descriptografar informações. Até agora, a criptografia de chave simétrica ainda é um método comum de criptografia muito importante. Em um criptosistema de chave simétrica, a mesma chave é usada nos processos de criptografia e descriptografia, ou mesmo se a chave de criptografia e a chave de descriptografia forem diferentes, é fácil calcular uma da outra. Obviamente, neste criptosistema, a chave torna-se o núcleo de toda a comunicação secreta e a segurança de todo o sistema de criptografia é totalmente baseada no sigilo da chave. Se a chave for exposta, todo o criptossistema perderá completamente sua confidencialidade. Portanto, a confidencialidade da chave é a chave para a segurança e confidencialidade do sistema de criptografia de chave simétrica, e ela deve ser armazenada e transmitida adequadamente por meio de um canal confiável.

Existem muitos algoritmos de criptografia de chave simétrica, como DES (Data Encryption Standard), IDEA (International Data Encryption Algorithm), Skipjack, 3DES, GDES, New DES, Lucifer, FEARN, LOKI91, RC4, RC5, etc.

1.1 algoritmo DES

O algoritmo DES é um algoritmo de criptografia publicado pelo governo dos Estados Unidos em 1977. Por causa de sua implementação simples e bom efeito de criptografia, ele foi amplamente usado em todo o mundo por um longo tempo. Ele criptografa os dados por meio de iterações e permutações muito complexas, de modo que uma tentativa de decifrar não consiga obter nenhuma informação efetiva do texto criptografado. Por este método de criptografia, se um método exaustivo for usado para atacar, levará mais de 200 anos para ser crackeado por um computador que pode realizar 10.000 decifragens por segundo.Veja-se que o algoritmo DES tem um bom efeito de confidencialidade. . Além disso, o algoritmo DES não é complicado de implementar, além de ser facilmente implementado no software, ele já foi implementado no chip, o que o torna muito conveniente de usar.

O processo do algoritmo DES, em termos simples, é dividir o texto simples a ser criptografado em segmentos de dados de 64 bits como entrada e, em seguida, usar 52 subchaves geradas de acordo com a mudança de chave de 64 bits para realizar a substituição inicial e 16 Repita as rodadas, inverta a permutação inicial e obtenha o texto cifrado de 64 bits. O processo de descriptografia do DES é quase o mesmo que o processo de criptografia, mas a ordem em que as subchaves são usadas é diferente. Parte dos parâmetros K1K2K3 ... K16 usados ​​na sequência durante a criptografia são usados ​​na sequência K16K15K14 ... K1 durante a descriptografia. Os outros algoritmos são exatamente os mesmos, o que também é um aspecto que o DES é fácil de usar.

1.2 algoritmo IDEA

O tamanho do segmento de dados processado pelo IDEA na operação de criptografia também é de 64 bits, mas o comprimento da chave usado é de 128 bits e um algoritmo de criptografia mais complexo é usado para garantir que não seja facilmente decifrado.

IDEA é um algoritmo de criptografia com alta força de criptografia e não houve nenhum ataque efetivo a esse algoritmo até agora. Se um computador pode gerar e executar 1 bilhão de chaves por segundo, levará 1.013 anos para adivinhar a chave IDEA, o que mostra que a força da criptografia do IDEA é muito alta.

Além disso, o IDEA é muito conveniente de implementar, seja por meio de software ou hardware. O algoritmo IDEA processa dados em unidades de 64 bits. Antes da criptografia, o texto simples a ser criptografado é dividido em segmentos de dados de 64 bits e, em seguida, criptografado separadamente. O processo de descriptografia do IDEA é basicamente o mesmo que o processo de criptografia. A diferença é que o método de geração da subchave de descriptografia é diferente do método de geração da subchave de criptografia. O outro processo de operação de descriptografia é o mesmo da criptografia, que também divide o segmento de dados de 64 bits em quatro. Segmento de dados de 16 bits e, em seguida, por meio de oito rodadas de transformação iterativa e uma rodada de transformação de saída, o resultado de texto simples correspondente pode ser obtido.

2 Algoritmo de criptografia de chave assimétrica

O método de criptografia de chave simétrica usa a mesma chave para criptografar e descriptografar, que é salva pelo remetente e destinatário ao mesmo tempo, e a mesma chave é usada para criptografar e descriptografar. O principal problema com esse método é que o processo de geração, importação, armazenamento, gerenciamento e distribuição de chaves é relativamente complicado, especialmente à medida que o número de usuários aumenta, a demanda por chaves aumenta exponencialmente. Em um sistema de informação em grande escala, a distribuição e o gerenciamento de um grande número de chaves é um problema difícil de resolver. Por exemplo, se houver n usuários no sistema e a comunicação de senha precisar ser estabelecida entre cada dois usuários, cada usuário no sistema deve dominar (n -1) / 2 chaves, e o número total de chaves necessárias no sistema é n * (n -1) / 2. No caso de 10 usuários, cada usuário deve ter 9 chaves, e o número total de chaves no sistema é 45. Para 100 usuários, cada usuário deve ter 99 chaves e o número total de chaves no sistema é 4.950. Isso também considera apenas a situação em que apenas uma chave de sessão é usada para comunicação entre os usuários. Se sessões diferentes precisarem alterar chaves diferentes, o número total de chaves será maior. A geração, gerenciamento e distribuição de um número tão grande de chaves é um problema difícil de lidar.

Diferente do método de criptografia de chave simétrica, a tecnologia de criptografia de chave assimétrica precisa usar duas chaves diferentes ao criptografar e descriptografar informações, por isso também é chamada de método de criptografia de chave dupla. Em sua operação, ele primeiro gera um par de chaves, uma das quais é uma chave secreta, que é mantida pelo usuário e não pode ser divulgada para o mundo exterior, chamada de chave privada; a outra é uma chave pública, que pode ser divulgada para o mundo externo, mesmo em diretórios públicos Listado em, conhecido como chave pública, por isso também é chamado de método de criptografia de chave pública. Apenas a chave privada pode descriptografar os dados criptografados com a chave pública, e os dados criptografados com a chave privada só podem ser descriptografados com a chave pública. No processo de comunicação, se o remetente quiser enviar informações confidenciais ao destinatário, as informações precisam ser criptografadas com a chave pública do destinatário primeiro e, em seguida, enviadas ao destinatário. O destinatário pode descriptografá-las sem problemas com sua chave privada. No entanto, mesmo que outras pessoas recebam o texto criptografado, elas não poderão interpretá-lo corretamente, de modo a atingir o objetivo de comunicação confidencial.

No método de criptografia de chave pública, para obter um bom efeito de criptografia, o algoritmo deve ser: é muito fácil gerar a chave no cálculo, é fácil realizar a criptografia do texto simples no caso de chave pública conhecida; É computacionalmente fácil descriptografar o texto cifrado no caso da chave; embora as duas chaves usadas para criptografar e descriptografar sejam matematicamente relacionadas, quando a chave pública é conhecida, é necessário obter a chave privada É computacionalmente inviável; se a chave pública e o texto cifrado forem conhecidos, é computacionalmente inviável obter o texto simples. Somente fazendo os pontos acima, a decifração do algoritmo pelo invasor pode ser efetivamente evitada.

Existem muitos algoritmos de criptografia de chave assimétrica, como RSA, cifra mochila, McEliece, Diffe Hellman, Rabin, Ong Fiat Shamir, algoritmo de prova de conhecimento zero, curva elíptica, EIGamal, etc. Aqui, apresentamos principalmente o princípio de criptografia do RSA.

Entre os muitos algoritmos de criptografia de chave pública, o algoritmo de criptografia RSA com o nome deles proposto por Ron Rivest, Adi Shamir e Leonard Adleman em 1977 é o mais famoso. E é o primeiro algoritmo que pode ser usado para criptografia de dados e assinatura digital. Já se passaram mais de 20 anos desde que o RSA foi proposto. Ele sofreu vários ataques e foi gradualmente aceito pelas pessoas. É geralmente considerado um dos métodos atuais de criptografia de chave pública excelentes. Por ser fácil de entender e operar, é amplamente utilizado. No entanto, a segurança da RSA não foi provada teoricamente.

A segurança do RSA depende da decomposição de grandes números, ou seja, é muito fácil obter o produto de dois grandes números (por exemplo, um número decimal maior que 100 dígitos), mas é muito difícil decompor um grande número em dois números primos.

No sistema de criptografia RSA, cada usuário tem uma chave pública PK = (N, e) e uma chave privada SK = (N, d), onde N é o produto de dois grandes números primos. Para melhor confidencialidade, geralmente Ambos pegam dois grandes números primos com mais de 100 dígitos e os multiplicam para obter N. e e d são calculados de acordo com um determinado algoritmo, embora exista uma certa relação de cálculo entre N, e e d, o invasor não pode resolver d de acordo com N e e, de modo a realizar a criptografia assimétrica.

O algoritmo de criptografia RS A pode ser usado não apenas para criptografar informações, mas também para verificação de identidade ou assinatura digital do remetente. Por exemplo, o usuário B deseja enviar uma mensagem m para A, e A deve ter certeza de que a mensagem foi enviada pelo próprio B. Para esse fim, B usa sua própria chave privada SK = (N, d) para criptografar as informações para obter o texto cifrado c e, em seguida, envia c para A. Depois que A recebe o texto cifrado, ele usa a chave pública PK = (N, e) de B para descriptografar o texto cifrado para obter o texto simples. Desta forma, após a verificação, A pode confirmar que a mensagem m é realmente enviada por B, porque apenas B tem a chave privada correspondente à chave pública. Mesmo que outras pessoas conheçam a chave pública, elas não podem adivinhar ou calcular a chave privada de B. Faça-se passar por ele para enviar mensagens criptografadas.


Acho que você gosta

Origin blog.csdn.net/deniro_li/article/details/108808004
Recomendado
Clasificación