Criptografia PGP com algoritmo RSA
O teclado PGP pode ser gerado usando uma variedade de algoritmos de criptografia; No entanto, quando você gera manualmente as teclas PGP, ele fornece RSA Como a opção de algoritmo padrão. O algoritmo RSA foi criado por “Rivest-Shamir-Adleman" em 1978. Ele usa chaves públicas e privadas para criptografia e descriptografia de dados. Por exemplo, um cliente envia ao servidor sua chave pública e solicita alguns dados. Em seguida, o servidor criptografa os dados com a ajuda da chave pública do cliente e envia para eles. Depois de receber os dados, o cliente os descriptografa utilizando sua chave privada.
A RSA permite que você proteja seu arquivo ou mensagem antes de enviá -los. O uso do RSA no método de criptografia PGP permite certificar seus dados, para que o receptor saiba se é alterado ou modificado durante a transmissão. Este artigo irá guiá-lo sobre Criptografia PGP em Java usando o RSA algoritmo. Além disso, também demonstraremos um programa Java para criptografia e descriptografia PGP no Linux. Então vamos começar!
Observação: Antes de entrar no processo de criptografia PGP em Java, instale Java JDK no seu sistema Linux se você não o tiver já.
Como instalar o Java JDK 17 no Linux
Para instalar Java JDK 17 Em seu sistema, primeiro, pressione “Ctrl+alt+t”Para abrir o terminal e executar o seguinte comando curl:
$ curl -o https: // download.oráculo.com/java/17/mais recente/jdk-17_linux-x64_bin.alcatrão.gzA saída sem erros declara que o download é concluído. Agora, vamos extrair o “JDK-17_LINUX-X64_BIN.alcatrão.gz”Com a ajuda do"alcatrão”Comando:
$ tar -xvf jdk-17_linux-x64_bin.alcatrão.gzNa próxima etapa, vamos mover o “JDK-17.0.1”Diretório extraído para o“/optar/”Localização:
$ sudo mv jdk-17.0.1 /opt /jdk17Depois disso, defina a variável de ambiente Java e adicione o caminho:
$ export java_home =/opt/jdk17Até este ponto, você instalou e configurou Java JDK em seu sistema. Para a versão de verificação, digite o “Java”Comando com o“-versão”Opção:
$ java --versionCriptografia PGP em Java usando RSA
Agora, seguiremos em frente e criaremos um programa Java para criptografar e descriptografar uma mensagem com a ajuda das teclas PGP. O algoritmo que vamos usar é “RSA", com "PKCS1”Enchendo e“BCE”Modo de bloco. O "BCE”Ou o modo de livro de código eletrônico é a abordagem mais direta usada para processar uma sequência de blocos de mensagens, enquanto o“ “PKSC1”O preenchimento auxilia na RSA na definição das propriedades matemáticas do par de chaves do PGP e o processo de criptografia.
Primeiro de tudo, criaremos um “RSA" aula:
classe pública RSAEsse "RSA”A classe terá duas variáveis, a“chave privada" e a "chave pública”:
Private PrivateKey PrivateKey;Atribuiremos o valor às teclas PGP definidas usando um “TECHERGERGERERATOR”. O "TECHERGERGERERATOR”Será utilizar o“RSA”Algoritmo para gerar os valores do teclado PGP no construtor da classe RSA:
public rsa ()Na próxima etapa, criaremos um “codificar()" e "decodificar()”Função que será usada para codificar e decodificar a mensagem com o“base64”(Binário para texto) Encoder e decodificador:
private string cody (byte [] dados)Agora, adicione um Encrypt () função na classe RSA. No "Encrypt ()”Função, primeiro converteremos a mensagem adicionada em bytes, pois a criptografia especificada pode ser feita usando uma matriz de bytes. Depois de fazer isso, especificaremos o algoritmo, o modo de bloco e o preenchimento como “RSA/BCE/PKCS1Padding" para "cifra”Objeto. Então, inicializaremos a cifra com o “Encrypt_mode”E o PGP“chave pública”.
Esta função Encrypt () usará nosso PGP “chave pública”Para criptografar a mensagem e retornar os bytes criptografados:
public String Encrypt (Mensagem String) lança ExceçãoDa mesma forma, definiremos outra função chamada “descriptografar ()”Para decodificar as cordas que usarão nosso PGP“chave privada”Para descriptografar a mensagem criptografada no “Decrypt_mode” e devolver a matriz descriptografada:
public string decrypt (string criprytedmessage) lança exceçãoAgora, vamos verificar o "principal()" funcionalidade do método. Em "principal(),", Em primeiro lugar, definiremos duas cordas"EncryptedMessage" e "DecryptedMessage”. O “EncryptedMessage” Irá compreender a forma criptografada da nossa string adicionada “Isso é Linuxhint.com”Que iremos criptografar usando a função RSA Encrypt () e a“ “DecryptedMessage”A variável armazenará a mensagem descriptografada:
public static void main (string [] args)Implementação da criptografia PGP em Java
Esperamos que nossas instruções fornecidas ajudem você a entender o código acima do público. Esta seção implementará o código Java de criptografia PGP fornecido em nosso sistema Linux para mostrar sua saída. Para esse fim, em primeiro lugar, criaremos um “RSA.Java”Arquivo Java usando o“Nano" editor:
$ sudo nano rsa.JavaSeu "RSA.Java" O arquivo será inicialmente assim:
Agora, adicione o seguinte código em seu “RSA.Java”Arquivo e pressione“Ctrl+o”Para salvar as alterações adicionais:
importar javax.cripto.Cifra;Em seguida, compilar o “RSA.Java”Arquivo escrevendo o seguinte comando:
$ javac rsa.JavaA compilação do arquivo especificado resultará em “RSA”Arquivo binário, execute -o para obter a saída da criptografia e descriptografia do PGP no seu terminal Linux:
$ java rsaDa saída, você pode conferir as cordas criptografadas e descriptografadas:
Conclusão
A criptografia PGP permite enviar mensagens ou e -mails com segurança usando sua combinação de “Público" e "Privado" chaves. Para mostrar que um remetente é o legítimo proprietário de comunicação, ele fornece uma assinatura digital para chaves privadas e públicas. A criptografia PGP também é usada para confirmar se uma mensagem é entregue ao receptor pretendido ou não. Este artigo o guiou sobre Criptografia PGP em Java usando o RSA algoritmo. Além disso, também demonstramos um programa Java para criptografia e descriptografia PGP em nosso sistema Linux.