Cifrado PGP con algoritmo RSA
El Keypair PGP se puede generar utilizando una variedad de algoritmos de cifrado; Sin embargo, cuando generas manualmente las teclas PGP, proporciona RSA Como la opción de algoritmo predeterminada. El algoritmo RSA fue creado por "Rivest-Shamir-Adleman" en 1978. Utiliza claves públicas y privadas para cifrado de datos y descifrado. Por ejemplo, un cliente envía al servidor su clave pública y solicita algunos datos. Luego, el servidor cifra los datos con la ayuda de la clave pública del cliente y se los envía. Después de recibir los datos, el cliente los descifra utilizando su clave privada.
RSA le permite asegurar su archivo o mensaje antes de enviarlos. El uso de RSA en el método de cifrado PGP le permite certificar sus datos, por lo que el receptor sabe si está alterado o modificado durante la transmisión. Este artículo te guiará sobre Cifrado PGP en Java utilizando el RSA algoritmo. Además, también demostraremos un programa Java para el cifrado y descifrado de PGP en Linux. Entonces, comencemos!
Nota: Antes de saltar al proceso de cifrado PGP en Java, instale Java JDK en su sistema Linux si aún no lo tiene.
Cómo instalar Java JDK 17 en Linux
Para instalar Java JDK 17 En su sistema, en primer lugar, presione "Ctrl+Alt+T"Para abrir el terminal y luego ejecutar el siguiente comando CURL:
$ curl -o https: // descargar.oráculo.com/java/17/último/jdk-17_linux-x64_bin.alquitrán.GZLa salida sin error declara que la descarga se completa. Ahora, extraeremos el "jdk-17_linux-x64_bin.alquitrán.GZ"Con la ayuda de los siguientes"alquitrán" dominio:
$ TAR -XVF JDK-17_LINUX-X64_BIN.alquitrán.GZEn el siguiente paso, moveremos el "JDK-17.0.1"Extraído directorio al"/optar/" ubicación:
$ sudo MV JDK-17.0.1 /opt /jdk17Después de eso, configure la variable de entorno Java y agregue la ruta:
$ exporta java_home =/opt/jdk17Hasta este punto, ha instalado y configurado Java JDK en su sistema. Para la versión de verificación, escriba el "Java"Comando con el"-versión" opción:
$ java --versiónCifrado PGP en Java usando RSA
Ahora, avanzaremos y crearemos un programa Java para encriptar y descifrar un mensaje con la ayuda de las teclas PGP. El algoritmo que vamos a usar es "RSA", con "PKCS1"Pading y"BCE" Modo bloque. El "BCE"O el modo de libro de código electrónico es el enfoque más directo utilizado para procesar una secuencia de bloques de mensajes, mientras que el"Pksc1"El relleno ayuda a RSA a definir las propiedades matemáticas del par de claves PGP y el proceso de cifrado.
En primer lugar, crearemos un "RSA" clase:
clase pública RSAEste "RSA"La clase tendrá dos variables, la"llave privada" y el "Llave pública":
Private Key PrivateKey;Asignaremos el valor a las claves PGP definidas usando un "Keypairgenerator". El "Keypairgenerator"Utilizará el"RSA"Algoritmo para generar los valores de KeyyPair PGP en el constructor de la clase RSA:
public rsa ()En el siguiente paso, crearemos un "codificar()" y "descodificar()"Función que se utilizará para codificar y decodificar el mensaje con el"base64"(Binario a texto) codificador y decodificador:
Private String code (byte [] data)Ahora, agregue un encrypt () función en la clase RSA. En el "encrypt ()"Función, primero convertiremos el mensaje agregado en bytes ya que el cifrado especificado se puede hacer utilizando una matriz de bytes. Después de hacerlo, especificaremos el algoritmo, el modo de bloque y el relleno como "RSA/ECB/PKCS1 Padding" para "cifrar" objeto. Luego, inicializaremos el cifrado con el "CiCrypt_Mode"Y el PGP"Llave pública".
Esta función cifrado () usará nuestro PGP "Llave pública"Para cifrar el mensaje y devolver los bytes encriptados:
public String CiCrypt (Mensaje de cadena) lanza la excepciónDel mismo modo, definiremos otra función llamada "Decrypt ()"Para decodificar las cadenas que usarán nuestro PGP"llave privada"Para descifrar el mensaje encriptado en el "Decrypt_mode" y devuelve la matriz descifrada:
Public String Decrypt (String CiCrypTedMessage) lanza la excepciónAhora, revisemos el "principal()" Funcionalidad del método. En "principal(),", En primer lugar, definiremos dos cuerdas"Cifrado" y "DecrypteedMessage". El "CifrypedMessage" Compensará la forma encriptada de nuestra cadena adicional "Esto es linuxhint.comunicarse"Que encriptaremos usando la función RSA CiCrypt () y la"DecrypteedMessage"Variable almacenará el mensaje descifrado:
public static void main (string [] args)Implementación del cifrado PGP en Java
Esperamos que nuestras instrucciones dadas le ayuden a comprender el código anterior. Esta sección implementará el código Java de cifrado PGP proporcionado en nuestro sistema Linux para mostrarle su salida. Para este propósito, en primer lugar, crearemos un "RSA.Java"Archivo Java usando el"nano" editor:
$ sudo nano rsa.JavaSu "RSA.Java" El archivo inicialmente se verá así:
Ahora, agregue el siguiente código en su "RSA.Java"Archivo y presione"CTRL+O"Para guardar los cambios adicionales:
Importar Javax.cripto.Cifrar;A continuación, compile el "RSA.Java"Archivo escribiendo el siguiente comando:
$ Javac RSA.JavaLa compilación del archivo especificado dará como resultado un "RSA"Archivo binario, ejecútelo para obtener la salida de cifrado y descifrado PGP en su terminal de Linux:
$ java rsaDesde la salida, puede consultar las cadenas cifradas y descifradas:
Conclusión
El cifrado PGP le permite enviar mensajes o correos electrónicos de forma segura utilizando su combinación de "Público" y "Privado" llaves. Para mostrar que un remitente es el propietario legítimo de la comunicación, proporciona una firma digital para claves privadas y públicas. El cifrado PGP también se usa para confirmar si un mensaje se entrega al receptor previsto o no. Este artículo te guió sobre Cifrado PGP en Java utilizando el RSA algoritmo. Además, también demostramos un programa Java para el cifrado y descifrado de PGP en nuestro sistema Linux.