Najlepszy algorytm szyfrowania i podpisywania dla GnuPG: RSA / RSA lub DSA / Elgamal? [Zamknięte]

46

Znalazłem to stosunkowo stare pytanie, czy RSA czy DSA jest preferowanym algorytmem do podpisywania i szyfrowania za pomocą GnuPG.

Podczas używania gpg --gen-keydwie odpowiednie opcje to „RSA i RSA” lub „DSA i Elgamal”. Który jest lepszy? Jakie są zalety i wady każdego z nich? Czy coś się zmieniło od 2009 roku?

Q
źródło
uznał również te posty za pomocne: linuxquestions.org/565242#2986414 i lists.gnupg.org/022764
RubyT TuesdayDONO

Odpowiedzi:

73

Godne zaufania rekomendacje

Kiedy w czasie ostatniego postu wciąż trwała debata na temat zmiany domyślnych algorytmów wciąż znalezionych w archiwum internetowym, które miały szorstki konsensus, przejście na klucze RSA 2k jako domyślne zostało wykonane.

Debian zaleca użycie klucza RSA 4k w swoim dokumencie na temat używania podkluczy i pliku readme -kluczy debian-keys . Zdecydowana większość z około trzech czwartych kluczy w breloku dla deweloperów Debiana to (wciąż) DSA / Elgamal (liczone poprzez przeglądanie danych wyjściowych gpg).

W wywiadzie dla iX (niemiecki magazyn informatyki, wydanie 11/2013, dostępny również online za darmo ) wynalazca PGP Phil Zimmermann zaleca „długość co najmniej 3 kb przy użyciu RSA”, chociaż klucze 1 k nie zostały jeszcze złamane. Ale „znajdują się w zasięgu atakujących bogatych w zasoby”.

Odnośnie bezpieczeństwa

Obecnie oba są uważane za bezpieczne dla odpowiednich rozmiarów kluczy (4k zalecane dla RSA, 2k konieczne dla DSA2, w przeciwnym razie będziesz używać DSA1, który korzysta z SHA-1 ).

Aby wybrać długość klucza RSA , zapoznaj się z przeglądem rzeczywistej siły dostarczonej przez NIST (s. 64). Łatwo zauważyć, że siła nie rośnie liniowo wraz z długością klucza (i czasem obliczeniowym), więc podwójny rozmiar nie oznacza „podwójnego bezpieczeństwa”.

Wystąpił problem z implementacją DSA OpenSSL na Debianie , ale było to spowodowane użyciem złych danych losowych i mogło się zdarzyć również z RSA.

Wybór między RSA i DSA2

pro RSA

  • RSA jest bardziej rozpowszechniony, choć nie jest to konieczne w standardzie OpenPGP, wszystkie główne implementacje mogą sobie z tym poradzić; DSA2 jeszcze nie (jeszcze)
  • RSA oferuje znacznie szybsze sprawdzanie podpisów

pro DSA2

  • Mniejsze podpisy, ale i tak są małe; w przypadku podpisywania wiadomości e-mail i kodów prawdopodobnie nie ma znaczenia
  • Szybsze tworzenie kluczy (może być istotne w przypadku urządzeń o niskim poborze mocy i urządzeń wbudowanych, takich jak telefony komórkowe i routery)
  • Nieco szybciej do podpisywania

Moja własna decyzja

Kiedy ostatnio tworzyłem nowy klucz OpenPGP, zdecydowałem się na 8k RSA dla kluczy podstawowych i 4k RSA jako podklucze do codziennego użytku. Podpisy RSA i tak są szybkie do zweryfikowania, a ogromne podpisy 8k są używane tylko do podpisywania innych kluczy, ale 8k powinno być uważane za wystarczające przez naprawdę długi czas. 4k jest w porządku dla bieżącego podklucza, ponieważ jego tanie odwołanie nie powoduje utraty wszystkich podpisów.

Utworzenie tego klucza 8k zajęło około 20 minut na moim Core 2 Duo T9300, więc nie spiesz się i popracuj (aby nakarmić losowe źródło).

Jens Erat
źródło
0

Podczas gdy zdecydowałem się na klucz główny 4K RSA z podkluczem 3K RSA i podkluczem 4K El-Gamal. Jedynym powodem, dla którego nie zdecydowałem się na wyższy klucz główny w tym momencie, jest fakt, że użytkownicy urządzeń mobilnych mają problemy z większymi kluczami.

Oczywiście mam większe klucze do określonych celów, ale zwykle nie jest to do komunikacji z innymi.

Ben
źródło
1
dlaczego El-Gamal do szyfrowania?
code_monk