Cryptage PGP avec algorithme RSA
Le clés PGP peut être généré à l'aide d'une variété d'algorithmes de chiffrement; Cependant, lorsque vous générez manuellement les clés PGP, elle fournit RSA comme l'option d'algorithme par défaut. L'algorithme RSA a été créé par «Rivest-shamir-adleman" dans 1978. Il utilise des clés publiques et privées pour le cryptage et le décryptage des données. Par exemple, un client envoie au serveur sa clé publique et demande certaines données. Ensuite, le serveur crypte les données à l'aide de la clé publique du client et les envoie. Après avoir reçu les données, le client le décrypte en utilisant sa clé privée.
RSA vous permet de sécuriser votre fichier ou votre message avant de les envoyer. L'utilisation de RSA dans la méthode de chiffrement PGP vous permet de certifier vos données, de sorte que le récepteur sait s'il est modifié ou modifié pendant la transmission. Cet article vous guidera sur Cryptage PGP dans Java en utilisant le RSA algorithme. De plus, nous démontrerons également un programme Java pour le cryptage et le déchiffrement PGP dans Linux. Alors, commençons!
Note: Avant de sauter dans le processus de chiffrement PGP en Java, installez Java JDK sur votre système Linux si vous ne l'avez pas déjà.
Comment installer Java JDK 17 à Linux
Pour installer Java JDK 17 Sur votre système, tout d'abord, appuyez sur "Ctrl + alt + t”Pour ouvrir le terminal, puis exécuter la commande curl suivante:
$ curl -o https: // télécharger.oracle.com / java / 17 / dernier / jdk-17_linux-x64_bin.le goudron.gzLa sortie sans erreur déclare que le téléchargement est terminé. Maintenant, nous allons extraire le «JDK-17_LINUX-X64_BIN.le goudron.gz"Avec l'aide du dix-soi-disant"le goudron" commande:
$ TAR -XVF JDK-17_LINUX-X64_BIN.le goudron.gzDans la prochaine étape, nous déplacerons le «JDK-17.0.1»Répertoire extrait au«/opter/" emplacement:
$ sudo mv jdk-17.0.1 / opt / jdk17Après cela, définissez la variable d'environnement Java et ajoutez le chemin:
$ export java_home = / opt / jdk17Jusqu'à ce point, vous avez installé et configuré Java JDK sur votre système. Pour la version de vérification, tapez le «Java«Commande avec le«-version" option:
$ Java - VersionEncryption PGP en Java en utilisant RSA
Maintenant, nous allons avancer et créer un programme Java pour chiffrer et décrypter un message à l'aide de clés PGP. L'algorithme que nous allons utiliser est «RSA", avec "PKCS1"Tampon et"BCE»Mode de blocage. Le "BCE»Ou le mode de livre de code électronique est l'approche la plus simple utilisée pour traiter une séquence de blocs de messages, tandis que le«Pkc1«Le rembourrage aide RSA à définir les propriétés mathématiques de la paire de clés PGP et du processus de chiffrement.
Tout d'abord, nous créerons un «RSA" classe:
classe publique rsaCe "RSA«La classe aura deux variables, le«Clé privée" et le "Clé publique»:
Private PrivateKey Privatekey;Nous attribuerons la valeur aux clés PGP définies en utilisant un «Keypairgenerator". Le "Keypairgenerator"Je vais utiliser le"RSA”Algorithme pour générer les valeurs PGP KeyPair dans le constructeur de la classe RSA:
public rsa ()Dans la prochaine étape, nous créerons un «encoder()" et "décoder()”Fonction qui sera utilisée pour le codage et le décodage du message avec le«base64»(Binaire à Texte) Encodeur et décodeur:
Encode de chaîne privée (data byte [])Maintenant, ajoutez un Crypter() fonction dans la classe RSA. Dans le "Crypter()”Fonction, nous allons d'abord convertir le message ajouté en octets car le chiffrement spécifié peut être effectué en utilisant un tableau d'octets. Après cela, nous spécifierons l'algorithme, le mode bloc et le rembourrage comme «RSA / ECB / PKCS1PADDING" pour un "chiffrer" objet. Ensuite, nous initialiserons le chiffre avec le «Crypt_mode"Et le PGP"Clé publique".
Cette fonction Encrypt () utilisera notre PGP "Clé publique«Pour crypter le message et renvoyer les octets cryptés:
Public String Encrypt (message de chaîne) lève l'exceptionDe même, nous définirons une autre fonction nommée «Decrypt ()"Pour décoder les chaînes qui utiliseront notre PGP"Clé privée«Pour décrypter le message crypté dans le "Decrypt_Mode" et retournez le tableau déchiffré:
Public String Decrypt (String EncryptedMessage) lève l'exceptionMaintenant, vérifions le "principal()" fonctionnalité de méthode. Dans "principal(),», Premièrement, nous définirons deux cordes"cryptage" et "décryptation". Le «Espérisation de crypte» comprendra la forme cryptée de notre chaîne ajoutée "C'est Linuxhint.com«Que nous crypterons en utilisant la fonction RSA Encrypt (), et la« «décryptation»La variable stockera le message décrypté:
public static void main (String [] args)Implémentation du cryptage PGP en Java
Nous espérons que nos instructions données vous ont aidé à comprendre le code donné ci-dessus. Cette section implémentera le code Java de cryptage PGP fourni sur notre système Linux pour vous montrer sa sortie. À cette fin, premièrement, nous créerons un «RSA.Java«Fichier Java en utilisant le«nano" éditeur:
$ sudo nano rsa.JavaTon "RSA.Java" Le fichier ressemblera initialement à ceci:
Maintenant, ajoutez le code suivant dans votre "RSA.Java«Fichier et appuyez sur«Ctrl + o«Pour enregistrer les modifications supplémentaires:
Importer Javax.crypto.Chiffrer;Ensuite, compilez le «RSA.Java”Fichier en écrivant la commande suivante:
$ Javac RSA.JavaLa compilation du fichier spécifié en résultera un «RSA”Fichier binaire, exécutez-le pour obtenir la sortie du cryptage et du déchiffrement PGP dans votre terminal Linux:
$ java rsaÀ partir de la sortie, vous pouvez consulter les chaînes cryptées et décryptées:
Conclusion
Le cryptage PGP vous permet d'envoyer des messages ou des e-mails en toute sécurité en utilisant sa combinaison de «Public" et "Privé" clés. Pour montrer qu'un expéditeur est le propriétaire légitime de la communication, il fournit une signature numérique pour les clés privées et publiques. Le cryptage PGP est également utilisé pour confirmer si un message est livré au récepteur prévu ou non. Cet article vous a guidé sur Cryptage PGP dans Java en utilisant le RSA algorithme. De plus, nous avons également démontré un programme Java pour le cryptage et le déchiffrement PGP dans notre système Linux.