Crittografia PGP con algoritmo RSA
Il tasto PGP può essere generato utilizzando una varietà di algoritmi di crittografia; Tuttavia, quando si generano manualmente i tasti PGP, fornisce RSA Come opzione algoritmo predefinita. L'algoritmo RSA è stato creato da "Rivest-Shamir-Adleman" In 1978. Utilizza chiavi pubbliche e private per la crittografia e la decrittografia dei dati. Ad esempio, un client invia al server la sua chiave pubblica e richiede alcuni dati. Quindi, il server crittografa i dati con l'aiuto della chiave pubblica del client e li invia a loro. Dopo aver ricevuto i dati, il client li decrittica utilizzando la sua chiave privata.
RSA ti consente di proteggere il tuo file o messaggio prima di inviarli. L'uso di RSA nel metodo di crittografia PGP consente di certificare i tuoi dati, quindi il ricevitore sa se viene modificato o modificato durante la trasmissione. Questo articolo ti guiderà Crittografia PGP In Giava usando il RSA algoritmo. Inoltre, dimostreremo anche un programma Java per la crittografia e la decrittografia PGP in Linux. Quindi iniziamo!
Nota: Prima di saltare nel processo di crittografia PGP in Java, installa Java JDK sul tuo sistema Linux se non lo hai già.
Come installare Java JDK 17 in Linux
Per installare Java JDK 17 Sul tuo sistema, in primo luogo, premere "Ctrl+alt+t"Per aprire il terminale e quindi eseguire il seguente comando Curl:
$ curl -o https: // download.oracolo.com/java/17/ultimo/jdk-17_linux-x64_bin.catrame.GzL'output senza errori dichiara che il download è completato. Ora estrarremo il "JDK-17_LINUX-X64_BIN.catrame.Gz"Con l'aiuto di sotto il basso"catrame"Comando:
$ tar -xvf jdk-17_linux-x64_bin.catrame.GzNel prossimo passaggio, sposteremo il "JDK-17.0.1"Directory estratto al"/optare/" posizione:
$ sudo MV JDK-17.0.1 /opt /jdk17Successivamente, imposta la variabile di ambiente Java e aggiungi il percorso:
$ esporta java_home =/opt/jdk17Fino a questo punto, hai installato e configurato Java JDK sul tuo sistema. Per la versione di verifica, digita "GiavaComando "con il"-versione" opzione:
$ java -versionCrittografia PGP in Java usando RSA
Ora andremo avanti e creeremo un programma Java per crittografare e decrittografare un messaggio con l'aiuto delle chiavi PGP. L'algoritmo che useremo è "RSA", con "PKCS1"Imbottitura e"BCE"Modalità blocco. IL "BCE"O la modalità del libro di codice elettronico è l'approccio più semplice utilizzato per elaborare una sequenza di blocchi di messaggi, mentre"PKSC1"L'imbottitura assiste RSA nella definizione delle proprietà matematiche della coppia di chiavi PGP e del processo di crittografia.
Prima di tutto, creeremo un "RSA" classe:
Classe pubblica RSAQuesto "RSA"La classe avrà due variabili, il"PrivateKey" e il "chiave pubblica":
Private PrivateKey PrivateKey;Assegneremo il valore ai tasti PGP definiti usando un "Keypairgenerator". IL "Keypairgenerator"Utilizzerà il"RSA"Algoritmo per generare i valori della tastiera PGP nel costruttore della classe RSA:
public rsA ()Nel prossimo passaggio, creeremo un "codificare()" E "decodificare()"Funzione che verrà utilizzata per la codifica e la decodifica del messaggio con il"Base64"(Binario al testo) encoder e decodificatore:
Private String ENCODE (BYTE [] Data)Ora aggiungi un crittografico () funzione nella classe RSA. Nel "crittografico ()"Funzione, convertiremo prima il messaggio aggiunto in byte poiché la crittografia specificata può essere eseguita usando un array di byte. Dopo averlo fatto, specificheremo l'algoritmo, la modalità di blocco e l'imbottitura come "RSA/ECB/PKCS1Padding" per un "cifra"Oggetto. Quindi, inizializzeremo la cifra con il "Cript_mode"E il PGP"chiave pubblica".
Questa funzione crittografa () utilizzerà il nostro PGP "chiave pubblica"Per crittografare il messaggio e restituire i byte crittografati:
public String Crypt (String Message) lancia un'eccezioneAllo stesso modo, definiremo un'altra funzione chiamata "decrypt ()"Per decodificare le stringhe che useranno il nostro PGP"PrivateKey"Per decrittografare il messaggio crittografato nel "Decrypt_mode" e restituire l'array decrittografato:
public String decrypt (string criptedMessage) lancia un'eccezioneOra, controlliamo il "principale()" funzionalità del metodo. In "principale(),"In primo luogo, definiremo due stringhe"crittogrammessage" E "decrittografato". IL "CryptedMessage" comprenderà la forma crittografata della nostra stringa aggiunta "Questo è Linuxhint.com"Che crittograferemo usando la funzione RSA crittografiche () e"decrittografato"La variabile memorizzerà il messaggio decrittografato:
public static void main (string [] args)Implementazione della crittografia PGP in Java
Speriamo che le nostre istruzioni fornite ti abbiano aiutato a capire il codice sopra dato. Questa sezione implementerà il codice Java di crittografia PGP PGP sul nostro sistema Linux per mostrarti il suo output. A tale scopo, in primo luogo, creeremo un "RSA.Giava”File java usando il"nano"Editore:
$ sudo nano rsa.GiavaTuo "RSA.Giava" Il file sarà inizialmente così:
Ora, aggiungi il seguente codice nel tuo "RSA.Giava"File e premere"Ctrl+O"Per salvare le modifiche aggiunte:
Importa Javax.cripto.Cifra;Successivamente, compila il “RSA.Giava"File scrivendo il seguente comando:
$ javac RSA.GiavaLa compilazione del file specificato si tradurrà a "RSA"File binario, eseguilo per ottenere l'output di crittografia e decrittografia PGP nel tuo terminale Linux:
$ Java RSADall'output, è possibile controllare le stringhe crittografate e decrittografate:
Conclusione
La crittografia PGP consente di inviare messaggi o e -mail in modo sicuro utilizzando la sua combinazione di "Pubblico" E "Privato"Chiavi. Per dimostrare che un mittente è il legittimo proprietario della comunicazione, fornisce una firma digitale per le chiavi private e pubbliche. La crittografia PGP viene utilizzata anche per confermare se un messaggio viene consegnato al ricevitore previsto o meno. Questo articolo ti ha guidato Crittografia PGP In Giava usando il RSA algoritmo. Inoltre, abbiamo anche dimostrato un programma Java per la crittografia e la decrittografia PGP nel nostro sistema Linux.