Szyfrowanie PGP z algorytmem RSA
Keyypir PGP można wygenerować przy użyciu różnych algorytmów szyfrowania; Jednak kiedy ręcznie generujesz klucze PGP, zapewnia on RSA jako opcja domyślna algorytm. Algorytm RSA został stworzony przez „Rivest-Shamir-Adlemant" W 1978. Wykorzystuje klucze publiczne i prywatne do szyfrowania danych i deszyfrowania. Na przykład klient wysyła serwer swój klucz publiczny i żąda niektórych danych. Następnie serwer szyfruje dane za pomocą klucza publicznego klienta i wysyła je do nich. Po otrzymaniu danych klient odszyfiera je, wykorzystując swój klucz prywatny.
RSA pozwala na zabezpieczenie pliku lub wiadomości przed ich wysłaniem. Korzystanie z RSA w metodzie szyfrowania PGP umożliwia poświadczenie danych, więc odbiornik wie, czy jest ono zmienione lub zmodyfikowane podczas transmisji. Ten pismo będzie cię poprowadzić Szyfrowanie PGP W Jawa używając RSA algorytm. Ponadto zademonstrujemy również program Java dla szyfrowania i deszyfrowania PGP w Linux. A więc zacznijmy!
Notatka: Przed wskoczeniem do procesu szyfrowania PGP w Javie zainstaluj Java JDK w systemie Linux, jeśli jeszcze tego nie masz.
Jak zainstalować Java JDK 17 w Linux
Aby zainstalować Java JDK 17 Po pierwsze na twoim systemie naciśnij „Ctrl+alt+t„Aby otworzyć terminal, a następnie wykonać następujące polecenie Curl:
$ curl -o https: // pobierz.wyrocznia.com/java/17/najnowszy/jdk-17_linux-x64_bin.smoła.GZBezbłędne wyjście deklaruje, że pobieranie jest zakończone. Teraz wyodrębnimy „JDK-17_linux-x64_bin.smoła.GZ”Z pomocą poniżej danego„smoła" Komenda:
$ tar -xvf jdk-17_linux-x64_bin.smoła.GZW następnym kroku przeniesiemy „JDK-17.0.1”Wyodrębniono katalog do„/optować/" Lokalizacja:
$ sudo mv jdk-17.0.1 /opt /jdk17Następnie ustaw zmienną środowiskową Java i dodaj ścieżkę:
$ Export java_home =/opt/jdk17Do tego momentu zainstalowałeś i skonfigurowałeś Java JDK w systemie. W przypadku wersji weryfikacji wpisz „Jawa„Polecenie z„-wersja" opcja:
$ java --versionSzyfrowanie PGP w Javie za pomocą RSA
Teraz pójdziemy naprzód i stworzymy program Java do szyfrowania i odszyfrowywania wiadomości za pomocą kluczy PGP. Algorytm, którego zamierzamy użyć, to „RSA", z "PKCS1”Wyściółka i„EBC”Tryb blokowy. „„EBC”Lub elektroniczny tryb książki kodu to najprostsze podejście zastosowane do przetwarzania sekwencji bloków wiadomości, podczas gdy„PKSC1„Padding pomaga RSA w definiowaniu właściwości matematycznych pary klucza PGP i procesu szyfrowania.
Przede wszystkim stworzymy „RSA" klasa:
Klasa publiczna RSATen "RSA„Klasa będzie miała dwie zmienne,„ The ”prywatny klucz”I„ „klucz publiczny”:
Private PrivateKey PrivateKey;Przypisamy wartość do zdefiniowanych kluczy PGP za pomocą „Keyyairgenerator". „„Keyyairgenerator”Wykorzysta„RSA„Algorytm generowania wartości klawiatury PGP w konstruktorze klasy RSA:
public rsa ()W następnym kroku stworzymy „kodować()" I "rozszyfrować()„Funkcja, która będzie używana do kodowania i dekodowania wiadomości za pomocą„Base64”(Binarny do tekstu) enkoder i dekoder:
Private String Encode (byte [] data)Teraz dodaj Szypt () Funkcja w klasie RSA. W "Szypt ()”Funkcja najpierw przekonwertujemy dodaną wiadomość do bajtów, ponieważ określone szyfrowanie można wykonać za pomocą tablicy bajt. Po zrobieniu tego określamy algorytm, tryb blokowy i wyściółkę jako „RSA/ECB/PKCS1Padding" dla "szyfr" obiekt. Następnie zainicjujemy szyfr za pomocą „Encrypt_mode”I PGP„klucz publiczny".
Ta funkcja Encrypt () użyje naszego PGP „klucz publiczny„Aby zaszyfrować wiadomość i zwrócić zaszyfrowane bajty:
Public String Szypt (wiadomość String) rzuca wyjątekPodobnie zdefiniujemy inną funkcję o nazwie „decrypt ()„Aby zdekodować struny, które używają naszego PGP”prywatny klucz„Aby odszyfrować zaszyfrowaną wiadomość w „Decrypt_mode” i zwróć odszyfrowaną tablicę:
public String decrypt (String SnanryptedMessage) rzuca wyjątekTeraz sprawdźmy "główny()" Funkcjonalność metody. W "główny(),”Po pierwsze, zdefiniujemy dwa struny„Szyfrowanie Message" I "decryptedMessage". „Szyfrowanie” będzie obejmować zaszyfrowaną formę naszego dodanego ciągu „To jest Linuxhint.com„Które będziemy zaszyfrować za pomocą funkcji RSA Encrypt () i„decryptedMessage„Zmienna będzie przechowywać odszyfrowaną wiadomość:
public static void main (string [] args)Wdrożenie szyfrowania PGP w Javie
Mamy nadzieję, że nasze podane instrukcje pomogły ci zrozumieć powyższy kod. W tej sekcji zaimplementowano dostarczone kod Java szyfrowania PGP w naszym systemie Linux, aby pokazać swoje dane wyjściowe. W tym celu najpierw stworzymy „RSA.Jawa”Plik Java za pomocą„Nano„Redaktor:
$ sudo nano rsa.JawaTwój "RSA.Jawa" Plik początkowo będzie wyglądał tak:
Teraz dodaj następujący kod w swoim „RSA.Jawa”Plik i naciśnij„Ctrl+o„Aby zapisać dodane zmiany:
importować Javax.Krypto.Szyfr;Następnie skompiluj „RSA.Jawa”Plik, pisząc następujące polecenie:
$ Javac RSA.JawaKompilacja określonego pliku spowoduje „RSA„Plik binarny, wykonaj go, aby uzyskać wyjście szyfrowania i deszyfrowania PGP w terminalu Linux:
$ Java RSAZe wyjścia możesz sprawdzić szyfrowane i odszyfrowane sznurki:
Wniosek
Szyfrowanie PGP pozwala bezpiecznie wysyłać wiadomości lub e -maile za pomocą kombinacji „Publiczny" I "Prywatny" Klucze. Aby pokazać, że nadawca jest prawowitym właścicielem komunikacji, stanowi podpis cyfrowy dla kluczy prywatnych i publicznych. Szyfrowanie PGP jest również używane do potwierdzenia, czy wiadomość jest dostarczana do zamierzonego odbiornika, czy nie. Ten napisał cię o tym Szyfrowanie PGP W Jawa używając RSA algorytm. Ponadto zademonstrowaliśmy program Java do szyfrowania i deszyfrowania PGP w naszym systemie Linux.