504 Shares 2044 views

algoritmo de Diffie-Hellman: nomeação

Aparentemente, poucas pessoas hoje em dia, usando dados sobre os canais de comunicação inseguros, imagine o que o algoritmo de Diffie-Hellman. Na verdade, muitos não entendem e precisa. No entanto, os usuários de sistemas de computador, por assim dizer, mais curioso para entender isso não pode ferir. Em particular, a troca de chaves Diffie-Hellman pode ser útil para usuários que estão interessados em questões de segurança da informação e criptografia.

Qual é o método de Diffie-Hellman?

Se abordarmos a questão do algoritmo em si, mas sem entrar em detalhes técnicos e matemáticos, podemos defini-lo como um método de criptografia e descriptografia das informações transmitidas e recebidas entre dois ou mais usuários de computador ou outros sistemas que envolvem a troca de dados com o uso de um canal de comunicação desprotegida.

Como é evidente, na ausência do canal de protecção para interceptar ou modificar arquivos no processo de transmissão e recepção, e o atacante pode. No entanto, a distribuição de chaves Diffie-Hellman para o acesso ao transmitir e receber dados de tal forma que a adulteração é quase completamente eliminado. Neste informações de comunicação registrado com o canal de comunicação (sem proteção dela) torna-se segura, se ambas as partes usam a mesma chave.

pré-história

O algoritmo Diffie-Hellman foi apresentado ao mundo em 1976. Seus criadores se tornar Uitfrid Diffie e Martin Hellman, que em sua pesquisa de métodos de criptografia de dados segura e confiável com base no trabalho de Ralph Merkle, que desenvolveu o chamado sistema de distribuição de chave pública.

Mas se Merkle desenvolvido com base exclusivamente teórica, Diffie e Hellman apresentado ao público uma solução prática para este problema.

A explicação mais simples

Na verdade, o teste é baseado em tecnologias de criptografia de criptografia que são agora surpreendeu muitos especialistas neste campo. cifras antologia inclui uma longa história. A essência de todo o processo é garantir que existem duas partes, e-mailing, ou por algumas troca de dados com a ajuda de programas de computador. Mas a defesa é feito de tal forma que o algoritmo Diffie-Hellman-se requer que a chave de decodificação é conhecido por as duas partes (enviando e recebendo). Quando isso é absolutamente irrelevante qual deles irá gerar um número aleatório inicial (este ponto deve explicar ao considerar fórmulas fundamentais de cálculo).

Métodos de criptografia de dados de períodos anteriores

Para tornar mais claro, nota-se que a forma mais primitiva para criptografar os dados é, por exemplo, a ortografia não é esquerda para a direita, como é habitual na maioria dos scripts e direita para a esquerda. Da mesma forma, você pode facilmente usar e substituição de letras do alfabeto em um comunicado. Por exemplo, a palavra muda a segunda carta ao primeiro, o quarto – o terceiro e assim por diante. O mesmo documento com a visão de que pode ser um absurdo completo. No entanto, a pessoa que escreveu o código fonte, de acordo com a pessoa que tem que ler, em que ordem deve ser colocado determinados caracteres. Isso é chamado a chave.

Note-se que a maioria dos textos ainda não decifrados e escritos cuneiformes dos antigos sumérios e egípcios não são compreendidos cripto-analistas só por causa do fato de que eles não sabem como configurar a sequência desejada de caracteres.

E no nosso caso – a variante Diffie-Hellman assume que a chave de decodificação é conhecido por um número limitado de usuários. No entanto, e aqui é necessário fazer uma reserva, porque a interferência na transmissão dos dados criptografados deste tipo podem ser violados por terceiros, se eles vão resolver a substituição ou substituição de caracteres.

Escusado será dizer que agora há sistema de criptografia poderoso o suficiente com base em algoritmos tais como AES, mas eles não dão garantia total de proteção contra hackers dados de terceiros.

Bem, agora vamos nos concentrar no sistema de criptografia mais, a sua aplicação prática e do grau de proteção.

algoritmo de Diffie-Hellman: nomeação

O algoritmo foi criado de forma a garantir não só a privacidade dos dados durante a transmissão de um partido para o outro, mas também a fim de removê-los com segurança após o recebimento. Grosso modo, um tal sistema de transmissão deve garantir uma protecção total para todos os possíveis canais de comunicação.

Lembre-se, durante a Segunda Guerra Mundial, quando a inteligência de todos os países aliados, sem sucesso caçados para a máquina de criptografia chamado de "Enigma", pelo que transmitem mensagens codificadas para código Morse. Afinal, ele não poderia resolver o nenhum cifra, até mesmo a maneira que estamos falando, especialista em "avançado" em criptografia. Só depois de sua captura foi obtido a chave para decifrar as mensagens enviadas pela marinha alemã.

algoritmo de Diffie-Hellman: uma visão geral

Assim, o algoritmo envolve o uso de alguns conceitos básicos. Suponha que temos o caso mais simples, quando as duas partes (o usuário) estão presentes na conexão. Nós denotar-los como A e B.

Eles usam dois números X e Y, não são secreta neste canal de comunicação, para controlar a transferência. Toda a essência da questão resume-se, para criar em sua base de um novo tipo de valor que será a chave. Mas! A primeira chamada está a utilizar um grande número primo, e a segunda – sempre um número inteiro (divisível), mas inferior, de modo que o primeiro.

Naturalmente, os usuários concordam que esses números são mantidos em segredo. No entanto, porque o canal é inseguro, os dois números podem tornar-se partes interessadas conhecidas e outras. É por isso que as pessoas nas mesmas mensagens trocadas chave secreta para descriptografar a mensagem.

As fórmulas básicas para a chave de cálculo

Supõe-se que o Diffie-Hellman refere-se a um sistema de criptografia chamado simétrica, em que houve relatos de cifra assimrica. No entanto, se considerarmos os principais aspectos do cálculo das partes de host-chave, tem que lembrar, pelo menos álgebra.

Assim, por exemplo, cada um dos assinantes gera números aleatórios a e b. Eles sabem de antemão os valores de X e Y, que podem até mesmo ser "costuradas" no software necessário.

Ao enviar ou receber uma tal mensagem ao assinante uma calcula o valor de chave, a partir da fórmula A = x um mod y, enquanto que a segunda utiliza uma combinação de B = x b modificação y, seguido pelo envio da chave desencriptada para o primeiro utilizador. Este é o primeiro passo.

Agora, suponha que o terceiro em causa tem a sua disposição tanto os valores calculados de A e B. Ao mesmo tempo, ele não pode intervir no processo de transferência de dados, porque o segundo passo é saber como calcular uma chave comum.

A partir das fórmulas acima, você pode ficar no cálculo chave comum. Se você olhar para o exemplo Diffie-Hellman pode ser algo como isto:

1) calcula uma primeira chave de assinante com base em x pela fórmula B uma modificação y = x ab modificação y;

2) Em segundo lugar, com base na quantidade inicial e y preparado de acordo com a opção de protocolo de rede B, define uma chave de um parâmetro A existente: Uma modificação y = x b ba y mod.

Como você pode ver, os valores finais, mesmo quando graus de permutação coincidem. Assim, decodificação de dados por ambas as partes é reduzida, como se costuma dizer, a um denominador comum.

Vulnerabilidade na intervenção no processo de transferência de dados

Como você poderia esperar, a intervenção de terceiros não está excluída. No entanto, neste caso, é o inicialmente especificar o número de 10 100, ou mesmo 10.300.

Escusado será dizer que nenhum de hoje para criar uma senha ou código de acesso geradores para determinar o número em si não pode (exceto que as opções intermediárias iniciais e finais e não para intervenção no sistema de transmissão). Levaria muito tempo que a vida na Terra vai acabar. No entanto, as lacunas de tal sistema de segurança ainda está lá.

Na maioria das vezes eles estão associados com o conhecimento do logaritmo discreto. Se tal conhecimento é para quebrar o algoritmo de Diffie-Hellman, pode ser (mas apenas para os parâmetros iniciais e finais, tal como mencionado acima). Outra coisa é que possuem tais unidades de conhecimento.

Usando o algoritmo para a plataforma Java

algoritmo de Diffie-Hellman é usado no Java exclusivamente com apelos como "cliente-servidor".

Em outras palavras, o servidor está pendente máquinas cliente de conexão. Quando essa conexão é feita, há um desempenho do algoritmo na procura de uma chave pública ou privada, e, em seguida, o usuário pode obter acesso completo a todas as funções e dados do próprio servidor. Às vezes isso é verdade mesmo em sistemas móveis, no entanto, esta muito poucas pessoas sabem, mais que a parte executiva das obras em modo invisível na forma de scripts executáveis.

Usando o algoritmo para a plataforma C (+ / ++)

Se você olhar para o Diffie-Hellman no «C» (+ / ++), então não é tão suave. O fato é que, por vezes, há um problema quando a maior parte do trabalho com os cálculos-se linguagem de programação associado com ponto flutuante. É por isso que ao definir um valor inteiro, ou ao tentar arredondamento (mesmo exponenciação), pode haver problemas em tempo de compilação. Especialmente se refere à função de uso indevido int.

No entanto, vale a pena prestar atenção ao resto dos componentes executáveis que, como regra, são as classes de trabalho, a mesma exponenciação ou biblioteca GMP acoplável relacionados.

algoritmos de criptografia modernos

Acredita-se que o Diffie-Hellman ainda é vencer, ninguém pode. Na verdade, foi ele quem serviu de base para o surgimento de tais sistemas conhecidos de protecção no domínio da criptografia de dados como AES128 e AES256.

No entanto, como mostra a prática, apesar da disponibilidade de números em abstrato não é percebido pelo homem, a maioria dos sistemas deste tipo uso somente o valor da primeira dúzia (não mais), mas o próprio algoritmo implica um número um milhão de vezes mais.

em vez de um epílogo

Em geral, provavelmente, já está claro o que constitui este sistema e quais são seus componentes algorítmica. Resta apenas acrescentar que é dotado de um potencial tão grande que totalmente quase ninguém usa.

Por outro lado, a vulnerabilidade no algoritmo de forma suficientemente clara. Julgue por si mesmo: na verdade, escrever um programa para calcular logaritmos discretos, quase todos de seu criador pode acessar não só para os parâmetros iniciais definidos pelo utilizador, mas também para a chave pública, que é gerado no sistema de criptografia e descriptografia.

No caso mais simples é suficiente para fazer a instalação do executável de Java-applet, que pode ser usado até mesmo em comunicações móveis. Claro, o usuário não vai saber sobre isso, mas seus dados serão capazes de explorar ninguém.