Você está na página 1de 4

Funções e Criptografia

Epksvmxqs he qsglmpe

Criptografia de chave pública precisa de duas chaves. Uma chave informa como criptografar (ou
codificar) uma mensagem e isso é "público" para que qualquer pessoa possa usá-la. A outra chave
permite decodificar (ou descriptografar) a mensagem. Esse código de descriptografia é mantido em
sigilo (ou privado), de modo que apenas a pessoa que conhece a chave pode descriptografar a
mensagem. Também é possível para a pessoa com a chave privada criptografar uma mensagem com
a chave privada, então qualquer um que tenha a chave pública pode descriptografar a mensagem,
embora isso pareça ser de pouca utilidade se você estiver tentando manter algo secreto!

O Primeiro Algoritmo Geral de Chaves Públicas usou o que chamamos de Algoritmo de Mochila.
Embora agora saibamos que esse algoritmo não é seguro, podemos usá-lo para ver como esses tipos
de mecanismos de criptografia funcionam.

O algoritmo da mochila funciona assim:


Imagine que você tenha um conjunto de pesos diferentes que você pode usar para fazer qualquer
peso total necessário, adicionando combinações de qualquer um desses pesos juntos.
Vamos ver um exemplo:
Imagine que você tinha um conjunto de pesos 1, 6, 8, 15 e 24. Para empacotar uma mochila pesando
30, você poderia usar pesos 1, 6, 8 e 15. Não seria possível empacotar uma mochila que pesa 17, mas
isso pode não importar.
Você pode representar o peso 30 pelo código binário 11110 (um 1, um 6, um 8, um 15 e nenhum 24).

01100001 01101100 01100111 01101111 01110010 01101001 01110100 01101101 01101111 00100000 01100100
01100001 00100000 01101101 01101111 01100011 01101000 01101001 01101100 01100001

O algoritmo da mochila funciona assim:


Imagine que você tenha um conjunto de pesos diferentes que você pode usar para fazer qualquer
peso total necessário, adicionando combinações de qualquer um desses pesos juntos.
Vamos ver um exemplo:
Imagine que você tinha um conjunto de pesos 1, 6, 8, 15 e 24. Para empacotar uma mochila pesando
30, você poderia usar pesos 1, 6, 8 e 15. Não seria possível empacotar uma mochila que pesa 17, mas
isso pode não importar.
Você pode representar o peso 30 pelo código binário 11110 (um 1, um 6, um 8, um 15 e nenhum 24).
Exemplo:

Texto pleno 10011 11010 01011 00000


Mochila 1 6 8 15 24 1 6 8 15 24 1 6 8 15 24 1 6 8 15 24
Texto cifrado 1 + 15 + 24 = 40 1 + 6 + 15 = 22 6 + 15 + 24 = 45 0=0

Que peso total é possível fazer?

Então, se alguém lhe enviar o código 38, isso só pode vir do texto simples 01101.
Quando o Algoritmo Mochila é usado na criptografia de chave pública, a ideia é criar dois
problemas diferentes de mochila. Um é fácil de resolver, o outro não. Usando a mochila fácil, a
mochila dura é derivada dela. A mochila dura torna-se a chave pública. A mochila fácil é a chave

1
privada. A chave pública pode ser usada para criptografar mensagens, mas não pode ser usada
para descriptografar mensagens. A chave privada descriptografa as mensagens.

Um problema fácil de mochila é aquele em que os pesos estão em uma sequência em que o
próximo termo da seqüência é maior que a soma de todos os termos precedentes. Por exemplo,
o set {1, 2, 4, 9, 20, 38} está na forma que mencionamos, mas o set {1, 2, 3, 9, 10, 24} não é porque
10 <1 + 2 + 3 + 9.

É fácil resolver uma mochila superescorante. Basta pegar o peso total da mochila e compará-lo
com o maior peso da seqüência. Se o peso total for menor que o número, então não está na
mochila. Se o peso total for maior que o número, ele estará na mochila. Subtraia o número do
total e compare com o próximo número mais alto. Continue trabalhando dessa maneira até o
total chegar a zero. Se o total não chegar a zero, então não há solução.

Então, por exemplo, se você tem uma mochila que pesa 23 que foi feita a partir dos pesos da
série de superesferas {1, 2, 4, 9, 20, 38} então ela não contém o peso 38 (como 38> 23 )
mas contém o peso 20; deixando 3;
que não contém o peso 9 ainda deixando 3;
que não contém o peso 4 ainda deixando 3;
que contém o peso 2, deixando 1; que contém o peso 1.
O código binário é, portanto, 110010.

É muito mais difícil descriptografar um problema de mochila não superenxertante. Dê a um


amigo uma mochila e um total e veja porque este é o caso.
Um algoritmo que usa uma mochila super-incrustante para a chave privada (fácil) e uma mochila
não superescritível para a chave pública foi criado por Merkle e Hellman. Eles fizeram isso
pegando um problema de mochila supercroral e convertendo-o em um não-superencrescente
ser tornada pública, usando a aritmética de módulo.

Fazendo a chave pública

Para produzir uma sequência normal de mochila, pegue uma sequência superescorante; por
exemplo. {1, 2, 4, 10, 20, 40}. Multiplique todos os valores por um número, n, módulo m. O
módulo deve ser um número maior que a soma de todos os números na sequência, por
exemplo, 110. O multiplicador não deve ter fatores em comum com o módulo. Então, vamos
escolher 31. A sequência normal da mochila seria:

1 × 31 mod (110) = 31
2 × 31 mod (110) = 62
4 × 31 mod (110) = 14
10 × 31 mod (110) = 90
Mod 20 × 31 (110) = 70
40 × 31 mod (110) = 30

Então a chave pública é: {31, 62, 14, 90, 70, 30} e


a chave privada é {1, 2, 4, 10, 20,40}.

Vamos tentar enviar uma mensagem que esteja em código binário:


100100111100101110
A mochila contém seis pesos, então precisamos dividir a mensagem em grupos de seis:
100100
111100
101110
Isso corresponde a três conjuntos de pesos com totais da seguinte forma
100100 = 31 + 90 = 121
111100 = 31 + 62 + 14 + 90 = 197
101110 = 31 + 14 + 90 + 70 = 205
Portanto, a mensagem codificada é 121 197 205.

2
Agora o receptor tem que decodificar a mensagem ...
A decodificação da pessoa deve conhecer os dois números 110 e 31 (o módulo e o
multiplicador). Vamos chamar o módulo "m" e o número que você multiplica por "n".
Precisamos de n − 1, que é um inverso multiplicativo de n mod m, ou seja, n (n − 1) = 1 mod m

Neste caso, calculei n-1 como sendo 71.

Tudo o que você tem que fazer é multiplicar cada um dos códigos 71 mod 110 para encontrar o
total na mochila que contém {1, 2, 4, 10, 20, 40} e, portanto, decodificar a mensagem.
A mensagem codificada é 121 197 205:

121 × 71 mod (110) = 11 = 100100


197 × 71 mod (110) = 17 = 111100
205 × 71 mod (110) = 35 = 101110

A mensagem decodificada é:
100100111100101110.
Assim como eu pensei!

Códigos de mochila simples e curtos são muito fáceis de quebrar para serem de uso real. Para
que um código de mochila seja razoavelmente seguro, ele precisaria de mais de 200 termos,
cada um com comprimento de 200 bits.

A B C D E F G

H I J K L M N

O P Q R S T U

V X Y W Z

3
Funções e Criptografia
Epksvmxqs he qsglmpe

MATERIAL
Calculadora CASIO fx-82 LA X, fx-991 LA X ou superior
Roteiro de atividade baseado no material de apoio ao Guia de Transição 2019 - Física

ANO/SÉRIE
1º Série do Ensino Médio

CRONOGRAMA
Quatro horas aula

ORIENTAÇÕES DIDÁTICAS E TÉCNICAS


Ana Claudia Cossini, Jalman Lima

COMPETÊNCIA ESPECÍFICA 4

Compreender e utilizar, com flexibilidade e precisão, diferentes registros de repre- sentação matemáticos
(algébrico, geométrico, estatístico, computacional etc.), na busca de solução e comunicação de
resultados de problemas.

HABILIDADE BNCC EM13MAT405


Utilizar conceitos iniciais de uma linguagem de programação na implementação de algoritmos
escritos em linguagem corrente e/ou matemática.

Você também pode gostar