Se as linguagens de programação fossem carros...
2904 registros
0 hoje
6 nesta semana
13 neste mês| 87,4% | | Brasil |
| 9,8% | | Portugal |
| 0,8% | | EUA |
| 0,2% | | Espanha |
| 0,1% | | Japão |
| Hoje: | 116 |
| Ontem: | 1311 |
| Esta semana: | 2763 |
| Semana passada: | 6313 |
| Este mês: | 6230 |
| Mês passado: | 55669 |
| Total: | 166551 |
| Funções de mão única |
|
|
|
| Criptografia Numaboa - Chave Pública |
| Escrito por vovó Vicki |
| Ter, 02.10.2007 19:33 |
|
A noção de funções de mão única é fundamental na criptografia de chave pública. As funções de mão única, apesar de não serem um protocolo, são peças fundamentais na construção dos algoritmos assimétricos, também conhecidos como algoritmos de chave pública. O que são funções de mão únicaFunções de mão única são funções relativamente fáceis de calcular, mas quase impossíveis de reverter ou desfazer. Matematicamente falando, se tivermos o valor de x, é fácil calcular f(x), mas se tivermos o valor f(x), é muito difícil encontrar o valor de x. O "difícil" ou "quase impossível" quer dizer que nem em um milhão de anos todos os computadores do mundo trabalhando juntos seriam capazes de calcular o valor reverso. É um exagero quando se afirma que funções de mão única são absolutamente irreversíveis. Aliás, nunca chegou a ser provado que tais funções realmente existam, como também não existe nenhuma evidência de que possam ser construídas. Apesar disto, existem muitas funções que têm o jeitão de mão única: podemos calculá-las com eficiência, mas, com os meios atuais, não se conhece um modo fácil de revertê-las. Por exemplo, x2 é fácil de calcular, mas a raiz quadrada de x é muito mais difícil de se obter. Filosofanças à parte, para dar continuidade a este texto vamos considerar as funções de mão única como sendo impossíveis de serem revertidas. Para o que servem funções de mão únicaFunções de mão única não são apropriadas para encriptar mensagens porque o texto cifrado não pode ser revertido para se obter novamente o texto claro. Se é impossível obter o texto claro de uma mensagem cifrada com uma função de mão única, então para que todo este papo? Bem, é que existem algumas funções deste tipo que possuem uma passagem secreta ou alçapão. Uma função de mão única com alçapão (trapdoor one-way function) mantém as características da família (fácil de calcular e impossível de reverter), mas, quando se conhece o segredo, os dois cálculos ficam fáceis. A coisa é mais ou menos assim: conhecendo o valor de x, calcular o valor de f(x) é fácil; calcular x conhecendo o valor de f(x) é impossível; calcular x conhecendo f(x) e o segredo y é fácil. Uma caixa de correio é uma boa comparação que pode ser feita com estas funções especiais: a abertura da caixa é pública, qualquer um pode jogar uma carta dentro da caixa. Abrir a caixa de correio já é outra conversa: é preciso detonar a caixa com uma marreta ou a pessoa autorizada pode abri-la sem muito esforço porque possui a chave. A criptografia de chave pública funciona baseada neste princípio. Você pode ler mais a respeito no artigo {vicki_il}Criptografia de chave pública@349@99{/vicki_il}. Funções hash de mão únicaFunções hash de mão única possuem vários nomes: funções de compressão, funções de contração, digesto de mensagem, impressão digital (fingerprint), checksum criptográfico, checagem de integridade de dados (DIC - data integrity check), código de detecção de manipulação (MDC - manipulation detection code), código de autenticação de mensagem (MAC - message authentication code) e código de autenticação de dados (DAC - data authentication code). Este montão de nomes tem uma explicação. As funções hash de mão única fazem parte de um novo filão criptográfico descoberto recentemente. Os autores precisavam dar nomes às suas descobertas para publicá-las e divulgá-las nos meios científicos. À medida em que foram sendo aplicadas na prática, acabaram recebendo mais alguns nomes e apelidos. Isto é uma coisa típica da modernidade. As funções hash de mão única (as hash manetas Já com uma função hash de mão única a coisa muda de figura. É fácil gerar uma impressão digital de uma string, mas é muito difícil criar uma string que produza o mesmo resultado. Isto aumenta consideravelmente o grau de confiança na comparação de impressões digitais de strings e nos leva a um novo patamar de segurança. Até que alguém apareça com novidades! |
| Atualização Qui, 03.04.2008 16:02 |