Cryptography Chave Público
Em 1976, Diffie e Hellman propuseram um tipo novo
de cryptography que distinguisse entre o encipherment e as chaves do
decipherment. Uma das chaves seria sabido
publicamente; o outro seria mantido confidencial por seu
proprietário. O cryptography classical requer o remetente e o
receptor compartilhar de uma chave comum. O cryptography chave
público não . Se a chave do encipherment for pública, para
emitir uma mensagem secreta encipher simplesmente a mensagem com a
chave pública do receptor. Emita-a então. O receptor
pode decifrá-la que usa sua chave confidencial.
James Ellis, um criptógrafo que trabalha para o grupo da
segurança da Comunicação-Eletrônica do governo britânico, dito
"mostrou a prova do conceito em um relatório de janeiro 1970 CESG
intitulado ' a possibilidade de encryption seguro de Digital do
Non-Segredo.'" Dois de seus colegas encontraram execuções
práticas. Este trabalho remanesceu classificado até 1997.
Porque uma chave é pública, e sua chave complementar
deve remanescer secreta, um cryptosystem chave público deve
encontrar-se com as seguintes três circunstâncias.
-
Deve ser computacionalmente fácil de encipher ou decifrar
uma mensagem dada a chave apropriada.
-
Deve ser computacionalmente infeasible derivar a chave
confidencial da chave pública.
-
Deve ser computacionalmente infeasible determinar a chave
confidencial de um ataque escolhido do plaintext
A cifra de RSA fornece o secrecy e o
authentication.
RSA
RSA é uma cifra da exponenciação. Escolha
dois números grandes p e q da prima, e deixe-os n = pq. O ff(n)
totient de n é o número dos números menos do que n com nenhuns
fatores na terra comum com n.
Nossos exemplos usarão números pequenos para finalidades
pedagogical. RSA real apronta deve ser ao menos 512 bocados cada
um, dando um modulus ao menos de 1.024 bocados. Na prática, RSA
é combinado com as funções cryptographic da mistura para impedir o
rearranjo dos blocos.
EXEMPLO: Deixe n = 10. Os números que são
menos de 10 e são (não tenha nenhum fator na terra comum com) n
relativamente principal são 1, 3, 7, e 9. Daqui, ff(10) = 4.
Similarmente, se n = 21, os números que são relativamente
principais a n for 1, 2, 4, 5, 8, 10, 11, 13, 16, 17, 19, e 20.
Assim f(21) = 12. |
Escolha um inteiro e < n que é relativamente principal ao
ff(n). Encontre um segundo inteiro d tais que ff(n) da
modificação do ed = 1. A chave pública é (e, n), e a chave
confidencial são d.
Deixe m ser uma mensagem. Então:
c = modificação n do m^e
e
m = modificação n do c^d
EXEMPLO: Deixe p = 7 e q = 11. Então
n = 77 e f(n) = 60. Alice escolhe e = 17, assim que sua chave
confidencial é d = 53. Neste cryptosystem, cada caráter do
plaintext é representado por um número entre 00 (A) e 25 (z);
26 representam um espaço em branco. Bob quer emitir a
Alice o MUNDO da mensagem "HELLO." Usando a respresentação
acima, o plaintext é 07 04 11 11 14 26 22 14 17 11 03. Usando a
chave pública de Alice, a mensagem cifrada é
07^17 modificação 77 = 28
04^17 modificação 77 = 16
11^17 modificação 77 = 44
...
03^17 modificação 77 = 75 ou 28 16 44 44 42 38 22 42 19 44 75. |
Além ao confidentiality, RSA pode fornecer o
authentication dos dados e da origem. Se Alice enciphers sua
mensagem usando sua chave confidencial, qualquer um pode lê-la, mas
se qualquer um a alterar, a mensagem cifrada (alterada) não pode ser
decifrada corretamente.
EXEMPLO: Suponha desejos de Alice para emitir a Bob
o MUNDO da mensagem "HELLO" de tal maneira que Bob será certo que
Alice o emitiu. Enciphers a mensagem com sua chave confidencial
e emite-a a Bob. Como indicado acima, o plaintext é
representado como 07 04 11 11 14 26 22 14 17 11 03. Usando a
chave confidencial de Alice, a mensagem cifrada é
07^53 modificação 77 = 35
04^53 modificação 77 = 09
11^53 modificação 77 = 44
...
03^53 modificação 77 = 05
ou 35 09 44 44 93 12 24 94 04 05. Além ao
authenticity da origem, Bob pode ser certo que nenhuma letra estêve
alterada.
Fornecer o confidentiality e o authentication requer
enciphering com a chave confidencial do remetente e a chave pública
do receptor. |
EXEMPLO: Suponha desejos de Alice para emitir a Bob
o MUNDO da mensagem "HELLO" na confiança e authenticated. Outra
vez, suponha que a chave confidencial de Alice é 53. Faça
exame da chave pública de Bob para ser 37 (fazendo sua chave
confidencial 13). O plaintext é representado como 07 04 11 11
14 26 22 14 17 11 03. O encipherment é
(07^53 modificação 77 = 07 da modificação
77)37
(04^53 modificação 77 = 37 da modificação
77)37
(11^53 modificação 77 = 44 da modificação
77)37
...
(03^53 modificação 77 = 47 da modificação
77)37
ou 07 37 44 44 14 59 22 14 61 44 47.
O receptor usa a chave confidencial do receptor decifrar a
mensagem e a chave pública do remetente para authenticate a. |
EXEMPLO: Bob recebe a mensagem cifrada acima, 07 37
44 44 14 59 22 14 61 44 47. O decipherment é
(07^13 modificação 77 = 07 da modificação
77)17
(37^13 modificação 77 = 04 da modificação
77)17
(44^13 modificação 77 = 11 da modificação
77)17
...
(47^13 modificação 77 = 03 da modificação
77)17 ou 07 04 11 11 14 26 22 14 17 11 03. Isto
corresponde ao MUNDO da mensagem "HELLO" do exemplo precedente. |
O uso de um sistema chave público fornece um tipo
técnico de nonrepudiation da origem. A mensagem é decifrada
usando a chave pública de Alice. Porque a chave pública é o
inverse da chave confidencial, only a chave confidencial poderia
enciphered a mensagem. Porque Alice é única quem sabe esta
chave confidencial, only poderia enciphered a mensagem. A
suposição subjacente é que a chave confidencial de Alice não
estêve comprometida, e que o rolamento chave público seu nome
realmente lhe pertence.
Na prática, ninguém usariam blocos do tamanho
apresentado aqui. A edição é que, nivele se n for muito
grande, se um caráter por o bloco enciphered, RSA puder ser quebrado
usando as técnicas usadas quebrar cifras classical da substituição.
Além disso, embora nenhum bloco individual não possa ser
alterado sem deteção (porque o atacante presumably não tem o acesso
à chave confidencial), um atacante pode rearranjar blocos e mudar o
meaning da mensagem.
EXEMPLO: Um general emite uma mensagem às matrizes
que pergunta se o ataque for sobre. As matrizes respondem com
"on" da mensagem enciphered usando uma cifra de RSA com um modulus
1,024-bit, mas cada letra enciphered separada. Um atacante
intercepta a mensagem e troca a ordem dos blocos. Quando o
general decifra a mensagem, lerá o "NO.," o oposto do plaintext
original.
Além disso, se o atacante souber que as matrizes
emitirão uma de duas mensagens (aqui, "NÃO" ou "on"), o atacante
pode usar uma técnica chamada "busca para diante" ou "precomputation"
quebrar a cifra. Para esta razão, o plaintext é acolchoado
geralmente com dados aleatórios para fazer acima um bloco. Isto
pode eliminar o problema para a frente de procurarar, porque o jogo de
plaintexts possíveis se torna demasiado grande ao precompute
praticàvel.
Um general diferente emite o mesmo pedido que no exemplo
acima. Outra vez, sedía as respostas com "on" da mensagem
enciphered usando uma cifra de RSA com um modulus 1,024-bit.
Cada letra enciphered separada, mas os primeiros seis bocados de
cada bloco contêm o número do bloco, os oito bocados seguintes
contêm o caráter, e os 1.010 bocados restantes contêm dados
aleatórios. Se o atacante rearranjar os blocos, o general
detectará que o bloco 2 chegou antes do bloco 1 (em conseqüência do
número nos primeiros seis bocados) e os rearranja. O atacante
também não pode o precompute os blocos determinar qual contem "O,"
porque teria que computar 21010 blocos, que é computacionalmente
infeasible. |
este é um artigo adicionado por Conta Kuriko