Dlaczego szyfrowanie RSA stało się popularne przy wymianie kluczy?


16

To delikatne pytanie. Nie wiem dużo o kryptografii ani jej historii, ale wydaje się, że powszechnym zastosowaniem RSA jest wymiana kluczy poprzez szyfrowanie klucza symetrycznego w celu wysłania dłuższej wiadomości (np. Opis iMessage tutaj ). Czy nie do tego właśnie służy wymiana kluczy Diffie-Hellmana, która jest starsza (i wydaje mi się prostsza)? Patrząc na Wikipedię, oba zostały opatentowane, więc nie byłby to odpowiedzialny za wybór.

Dla jasności nie pytam, czy teoretycznie ważne jest, aby możliwe było szyfrowanie klucza publicznego. Pytam, dlaczego stała się w praktyce standardową metodą wymiany kluczy. (Dla osób niebędących kryptografami DH wygląda na łatwiejszy do wdrożenia, a także nie jest powiązany ze szczegółami użytej grupy).



3
RSA można również wykorzystać do bezpiecznej transmisji klucza w przypadkach, w których niemożliwy jest interaktywny protokół wymiany kluczy, taki jak DH, na przykład gdy dostępne jest tylko łącze jednokierunkowe lub gdy czasy komunikacji w obie strony są nadmierne. Przypadki użycia takiej zaszyfrowanej wiadomości e-mail sprzyjają takim podejściom, ponieważ komputer odbiorcy może nie być podłączony do Internetu w chwili, gdy chcesz wysłać wiadomość, więc nie może uczestniczyć w interaktywnej wymianie kluczy.
Kevin Cathcart

Zastanawiasz się, dlaczego stał się popularny na wymianie kluczy, czy ogólnie?
OrangeDog,

@KevinCathcart DH niekoniecznie jest interaktywny. Nadawca może utworzyć parę kluczy jednorazowego użytku i wysłać klucz publiczny wzdłuż wiadomości. Takie podejście jest podstawą szyfrowania ECIES / DLIES i ElGamal. Ma to niewielki narzut (128 bajtów dla klucza 1024-bitowego).
CodesInChaos

@CodesInChaos: Ale żaden z nich nie jest algorytmem wymiany klucza. Po przejściu z wymiany kluczy na pełnoprawną kryptografię klucza publicznego wybór podstawowego trudnego do rozwiązania problemu nie ma wpływu na obawy operacyjne, takie jak upewnienie się, że nadawca ma kopię klucza publicznego odbiorcy. Zrozumiałem pytanie, które brzmi: „Dlaczego często używamy kryptografii klucza publicznego do wymiany kluczy, a nie tylko algorytmu wymiany kluczy, który często jest prostszy?”. Oczywiście w zasadzie dowolny algorytm klucza publicznego może być użyty do ustalenia wspólnego klucza tajnego przez nieinteraktywny kanał.
Kevin Cathcart

Odpowiedzi:


14

Nie ma silnego powodu technicznego. Mogliśmy użyć Diffie-Hellman (z odpowiednimi podpisami) tak dobrze, jak RSA.

Dlaczego więc RSA? O ile wiem, dominowały nietechniczne powody historyczne. RSA został opatentowany i stała za nim firma zajmująca się marketingiem i wspieraniem RSA. Były też dobre biblioteki, a RSA było łatwe do zrozumienia i znane programistom. Z tych powodów wybrano RSA, a kiedy było to popularne, pozostało tak z powodu bezwładności.

Obecnie głównym czynnikiem, który spowodował wzrost użycia Diffie-Hellmana, jest dążenie do idealnej tajemnicy do przodu, co jest łatwe do osiągnięcia przy użyciu Diffie-Hellmana, ale jest wolniejsze w przypadku RSA.

Nawiasem mówiąc: to wymiana kluczy Diffie-Hellman, a nie tajne dzielenie się Diffie-Hellman. Tajne udostępnianie to coś zupełnie innego.


2
Myślałem, że patenty były raczej powodem do uniknięcia RSA?
user1686

@ grawitacja, która zależy od zachowania właściciela patentu; a pokolenie temu posiadacze patentów technologicznych nie zhańbili się zbiorowo na szeroką skalę i przez długi okres obowiązywania prawa w takim stopniu, jak to miało miejsce podczas wojen na smartfonach lub masowego patrolowania małych firm.
Dan bawi się Firelight

10

Diffie – Hellman nie ma kluczowej cechy: uwierzytelnienia. Wiesz, że dzielisz się z kimś sekretem, ale nie możesz wiedzieć, czy to odbiorca, czy mężczyzna pośrodku. Dzięki RSA możesz mieć kilka zaufanych podmiotów, które przechowują klucze publiczne. Jeśli chcesz połączyć się ze swoim bankiem, możesz poprosić zaufaną stronę (powiedzmy Verisign) o klucz publiczny banku, ponieważ masz już klucz publiczny zaufanej strony na swoim komputerze. Dlatego wiesz, że dzielisz sekret ze swoim bankiem.

Z Diffie – Hellmanem, kiedy tworzysz sekret w swoim banku, możesz w rzeczywistości stworzyć sekret z mężczyzną pośrodku (MITM), który również tworzy taki z twoim bankiem, a on musi tylko przetłumaczyć z jednego klucza szyfrowania na drugi pozostanie niewidoczny (będąc w stanie odczytać cały komunikat).


Możesz oczywiście użyć RSA do uwierzytelnienia, a następnie wymiany kluczy DH.
OrangeDog

4
pk=solskmorep

@kasperd: Dziwię się, że ma tyle głosów.
Louis

1
Możesz użyć długoterminowych kluczy Diffie-Hellmana do uwierzytelnienia (spójrz na CurveCP na przykładowy protokół) lub możesz połączyć DH z podpisami DSA / Schnorr / ElGamal (które dzielą wiele podstawowej matematyki z DH), tak jak możesz połączyć szyfrowanie RSA z podpisami RSA.
CodesInChaos

-2

Algorytm RSA, jak wspomniano wcześniej, nie jest o wiele lepszy niż Diffie – Hellman, ten drugi po prostu nie ma uwierzytelnienia, oba algorytmy zależą od trudności w znalezieniu dyskretnych logarytmów, więc pod względem bezpieczeństwa oba są całkiem podobne.


2
Dziękuję za wkład. Jednak wszystko, co mówisz, zostało już omówione w innych odpowiedziach. Wolimy, abyś odpowiadał na pytania, na które nie ma jeszcze dobrych odpowiedzi, zamiast powielać istniejące odpowiedzi. Ponadto RSA zależy od trudności problemu faktoringowego (a ściślej mówiąc od problemu RSA), a nie dyskretnego logarytmu per se, podczas gdy Diffie-Hellman jest bardziej klasycznym systemem opartym na logach dyskretnych (ściśle mówiąc, opiera się na założeniu DDH ).
DW

-3

Jest w tym ciemna strona, której nie można przeoczyć.
Fakt, że RSA został dokooptowany przez NSA.
NSA zasadził backdoor w eliptycznym cyhpie, który dostarczył do RSA.
http://www.intelligence-world.org/nsa-infiltrated-rsa-security-more-deeply-than-thought-study/


1
Ta odpowiedź jest niespójna. Kryptografia krzywych eliptycznych różni się od RSA. Tak więc backdoor w kryptografii krzywej eliptycznej nie zagroziłby RSA. Ta odpowiedź jest po prostu błędna - nie ma takiej ciemnej strony.
DW
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.