Szyfrowanie kluczami RSA

Poniżej przedstawiam parę skryptów bash służących do szyfrowania i deszyfrowania plików przy pomocy kluczy RSA.

Proszę jednak zwrócić uwagę że, po pierwsze, para kluczy RSA nie służy do szyfrowania jako takiego ale bardziej do implementacji mechanizmów uwierzytelniania. Czasami jednak zdarza się że zaistnieje potrzeba zaszyfrowania lub odszyfrowania jakiś danych przy pomocy kluczy RSA.

Z uwagi na powyższą właściwość algorytmu RSA oraz ponieważ prezentowane skrypty korzystają jedynie z zewnętrznych programów i mechanizmów, są one wysoce nieefektywne wydajnościowo i należy je odbierać jako narzędzia służące do okazjonalnego uruchomienia w sytuacji gdy z jakiś powodów nadarzy się potrzeba  incydentalnego lub testowego zaszyfrowania lub odszyfrowania danych.

W poniższych skryptach założono że użyte klucze RSA są długości 4096 bitów a tzw. padding jest typu RSA_PKCS1_OAEP_PADDING.

Przed użyciem skryptów, pierw należy wygenerować parę kluczy RSA o długości 4096 bitów. W tym celu wydajemy komendy:

Klucze zostały zapisane w następujących plikach:

privkey.pem – klucz prywatny

pubkey.pem – klucz publiczny

Poniżej definicja skryptu szyfrującego rsa_enc.sh  (przykład użycia w dalszej części):

Oraz definicja skryptu odszyfrowującego rsa_dec.sh

Przy założeniu, że skrypt szyfrujący został zapisany w pliku rsa_enc.sh a klucz publiczny mamy w pliku pubkey.pem to przykładowe zaszyfrowanie pliku /etc/group i zapisanie wyniku w /etc/encrypted_group wygląda następująco:

Natomiast odszyfrowanie pliku, przy pomocy skryptu rsa_dec.sh i klucza prywatnego z pliku privkey.pem wygląda tak:

Napisano w Bezpieczeństwo