PGP -kryptering med RSA -algoritme
PGP -tastaturet kan genereres ved hjelp av en rekke krypteringsalgoritmer; Men når du genererer PGP -nøklene manuelt, gir det imidlertid RSA som standardalgoritmealternativ. RSA -algoritmen ble opprettet av “Rivest-Shamir-Adleman”In 1978. Den bruker offentlige og private nøkler for datakryptering og dekryptering. For eksempel sender en klient serveren sin offentlige nøkkel og ber om noen data. Deretter krypterer serveren dataene ved hjelp av klientens offentlige nøkkel og sender dem til dem. Etter å ha mottatt dataene, dekrypterer klienten dem ved å bruke sin private nøkkel.
RSA tillater deg å sikre filen eller meldingen din før du sender dem. Ved å bruke RSA i PGP -krypteringsmetoden lar deg bekrefte dataene dine, slik at mottakeren vet om den blir endret eller endret under overføringen. Denne oppskrivningen vil guide deg om PGP -kryptering i Java bruker RSA algoritme. Videre vil vi også demonstrere et Java -program for PGP -kryptering og dekryptering i Linux. Så la oss starte!
Merk: Før du hopper inn i PGP -krypteringsprosessen i Java, må du installere Java JDK på Linux -systemet ditt hvis du ikke har det allerede.
Hvordan installere Java JDK 17 i Linux
For å installere Java JDK 17 På systemet ditt, for det første, trykk “Ctrl+alt+t”For å åpne opp terminalen og deretter utføre følgende Curl -kommando:
$ Curl -o https: // Last ned.Oracle.com/java/17/siste/jdk-17_linux-x64_bin.tjære.gzDen feilfrie utdata erklærer at nedlastingen er fullført. Nå vil vi hente ut “jdk-17_linux-x64_bin.tjære.gz”Ved hjelp av det undergitte”tjære”Kommando:
$ tar -xvf jdk-17_linux-x64_bin.tjære.gzI neste trinn vil vi flytte "JDK-17.0.1”Ekstrahert katalog til“/opt/" plassering:
$ sudo mv jdk-17.0.1 /opt /jdk17Sett etter det Java -miljøvariabelen og legg til banen:
$ eksport java_home =/opt/jdk17Til dette punktet har du installert og konfigurert Java JDK på systemet ditt. For bekreftelsesversjonen, skriv ut “Java”Kommando med“-versjon”Alternativ:
$ Java -VersjonPGP -kryptering i Java ved bruk av RSA
Nå vil vi gå videre og lage et Java -program for å kryptere og dekryptere en melding ved hjelp av PGP -nøkler. Algoritmen vi skal bruke er “RSA”, Med“PKCS1”Polstring og“ECB”Blokkmodus. “ECB”Eller elektronisk kodebokmodus er den mest enkle tilnærmingen som brukes til å behandle en sekvens av meldingsblokker, mens“PKSC1”Polstring hjelper RSA med å definere de matematiske egenskapene til PGP -nøkkelparet og krypteringsprosessen.
Først av alt vil vi lage en "RSA”Klasse:
offentlig klasse RSADette “RSA”Klasse vil ha to variabler,“PrivatKey" og "publicKey”:
Private PrivateKey PrivateKey;Vi vil tilordne verdien til de definerte PGP -nøklene ved å bruke en “Keypairgenerator”. “Keypairgenerator”Vil bruke“RSA”Algoritme for å generere PGP -tastaturverdiene i konstruktøren av RSA -klasse:
public rsa ()I neste trinn vil vi lage en "kode ()”Og“dekode()”Funksjon som vil bli brukt til å kode og avkode meldingen med“Base64”(Binær til tekst) Encoder og dekoder:
Privat streng kode (byte [] data)Nå, legg til en Krypter () Funksjon i RSA -klassen. I “Krypter ()”Funksjon, vil vi først konvertere den ekstra meldingen til byte, da den spesifiserte krypteringen kan gjøres ved hjelp av en byte -matrise. Etter å ha gjort det, vil vi spesifisere algoritmen, blokkeringsmodus og polstring som "RSA/ECB/PKCS1Padding" for en "chiffer”Objekt. Deretter vil vi initialisere chifferen med "Encrypt_mode”Og PGP”publicKey”.
Denne Encrypt () -funksjonen vil bruke vår PGP “publicKey”For å kryptere meldingen og returnere de krypterte byteene:
public String Encrypt (strengmelding) kaster unntakTilsvarende vil vi definere en annen funksjon som heter “dekryptere ()”For å avkode strengene som vil bruke vår PGP”PrivatKey”For å dekryptere den krypterte meldingen i “DECRYPT_MODE” og returner den dekrypterte matrisen:
public String Decrypt (String EncryptedMessage) kaster unntakLa oss nå sjekke "hoved()" Metodefunksjonalitet. I “hoved(),”For det første vil vi definere to strenger”KryptertMessage”Og“DecryptedMessage”. De “KryptertMessage” vil omfatte den krypterte formen for vår ekstra streng "Dette er Linuxhint.com”Som vi vil kryptere ved hjelp av RSA -kryptering () -funksjonen, og“DecryptedMessage”Variabel vil lagre den dekrypterte meldingen:
public static void main (String [] args)Implementering av PGP -kryptering i Java
Vi håper at våre gitte instruksjoner hjalp deg til å forstå den gitte koden ovenfor. Denne delen vil implementere den medfølgende PGP -kryptering Java -koden på Linux -systemet vårt for å vise deg utdataene. For dette formålet vil vi for det første lage en "RSA.Java”Java -filen ved hjelp av“Nano”Redaktør:
$ sudo nano rsa.JavaDin “RSA.Java ” filen vil i utgangspunktet se slik ut:
Legg nå til følgende kode i "RSA.Java”Fil og trykk“Ctrl+O”For å lagre de ekstra endringene:
Importer Javax.krypto.Chiffer;Deretter kan du kompilere “RSA.Java”Fil ved å skrive ut følgende kommando:
$ Javac RSA.JavaSamlingen av den spesifiserte filen vil resultere en "RSA”Binær fil, utfør den for å få utdataene fra PGP -kryptering og dekryptering i Linux -terminalen din:
$ Java RSAFra utgangen kan du sjekke ut de krypterte og dekrypterte strengene:
Konklusjon
PGP -kryptering tillater deg å sende meldinger eller e -postmeldinger sikkert ved å bruke kombinasjonen av "Offentlig”Og“Privat”Nøkler. For å vise at en avsender er den rettmessige eieren av kommunikasjonen, gir den en digital signatur for private og offentlige nøkler. PGP -kryptering brukes også til å bekrefte om en melding blir levert til den tiltenkte mottakeren eller ikke. Denne oppskrivningen ledet deg om PGP -kryptering i Java bruker RSA algoritme. Videre demonstrerte vi også et Java -program for PGP -kryptering og dekryptering i vårt Linux -system.