Skip to content

Latest commit

 

History

History
36 lines (20 loc) · 1.51 KB

README.md

File metadata and controls

36 lines (20 loc) · 1.51 KB

O programa foi feito em Python e seu controle é por teminal.

O programa começa selecionando dois números primos aleatórios para serem usados como os valores "p" e "q". Os números variam de uma escala de 100 a 1000 para garantir a integridade da mensagem e não exigir processamento computacional excessivo nas próximas etapas.

Os valores da chave pública "n" e "e" e da chave privada "d" devem ser calculados da seguinte forma:

n = p * q

phi(n) = (p - 1) * (q - 1)

e = um valor maior que 1 e menor e coprimo com phi(n)

d * e mod phi(n) = 1 => a partir desta fórmula, deve-se encontrar um valor de d adequado!

Sobre números coprimos: Coprimo é quando um número em que todos os seus fatores não coincidem com os fatores de outro número exceto pelo número 1.

4 é coprimo de 5, pois 4 => 1, 2, 4 | 5 => 1, 5

8 é coprimo de 9, pois 8 => 1, 2, 4, 8 | 9 => 1, 3, 9

Para cifrar, cada caractere foi convertido para seu código em unicode e feito o seguinte cálculo:

m = caractere em unicode

c = caractere em unicode cifrado

Cifrar o caractere: c = m ** e mod n

Decifrar o caractere: m = c ** d mod n

Após a cifragem, os caracteres são juntados em uma string utilizando separadores aleatórios criados pelo programa para dar uma falsa impressão de onde começa e onde termina cada caractere. O programa utiliza esta string para decifrar. A string então é separada e cada caractere é decifrado, resultando na mensagem final:

"The information security is of significant importance to ensure the privacy of communications".