Mengapa enkripsi RSA menjadi populer untuk pertukaran kunci?

16

Ini pertanyaan lembut. Saya tidak tahu banyak tentang kriptografi atau sejarahnya, tetapi sepertinya RSA biasa digunakan untuk melakukan pertukaran kunci dengan mengenkripsi kunci simetris untuk mengirim pesan yang lebih panjang (misalnya, deskripsi iMessage di sini ). Bukankah ini hal yang tepat untuk pertukaran kunci Diffie-Hellman, yang lebih tua (dan bagi saya tampaknya lebih sederhana) untuk? Melihat di Wikipedia, keduanya juga dipatenkan, jadi ini tidak akan bertanggung jawab atas pilihan.

Agar lebih jelas, saya tidak bertanya apakah secara teoritis penting bahwa kriptografi kunci publik dimungkinkan. Saya bertanya mengapa ini menjadi metode standar dalam praktik untuk melakukan pertukaran kunci. (Untuk non-kriptografi, DH terlihat lebih mudah diterapkan, dan juga tidak terikat dengan detail grup yang digunakan.)

Louis
sumber
3
RSA juga dapat digunakan untuk transmisi kunci aman dalam kasus di mana protokol pertukaran kunci interaktif seperti DH tidak mungkin, seperti ketika hanya tautan satu arah yang tersedia, atau di mana waktu komunikasi bolak-balik berlebihan. Gunakan case seperti email terenkripsi yang mendukung pendekatan seperti itu, karena komputer penerima mungkin tidak terhubung ke internet saat Anda ingin mengirim pesan, jadi tidak dapat berpartisipasi dalam pertukaran kunci interaktif.
Kevin Cathcart
Apakah Anda bertanya mengapa itu menjadi populer untuk pertukaran kunci, atau secara umum?
OrangeDog
@KevinCathcart DH belum tentu interaktif. Pengirim dapat membuat pasangan kunci sekali pakai dan mengirim kunci publik di sepanjang pesan. Pendekatan itu adalah dasar dari ECIES / DLIES dan enkripsi ElGamal. Itu memiliki sedikit overhead ukuran (128 byte untuk kunci 1024 bit).
CodesInChaos
@CodesInChaos: Tapi tak satu pun dari itu adalah algoritma pertukaran kunci. Setelah Anda beralih dari pertukaran kunci ke kriptografi kunci publik penuh, pilihan yang mendasari sulit untuk membalikkan masalah tidak berdampak pada masalah operasional seperti memastikan pengirim memiliki salinan kunci publik penerima. Saya mengerti pertanyaan yang diajukan, "Mengapa kita sering menggunakan kunci publik kripto untuk bertukar kunci, bukan hanya algoritma pertukaran kunci, yang seringkali lebih sederhana?". Jelas, pada dasarnya setiap algoritma kunci publik dapat digunakan untuk membangun rahasia bersama melalui saluran non-interaktif.
Kevin Cathcart

Jawaban:

14

Tidak ada alasan teknis yang kuat. Kita bisa menggunakan Diffie-Hellman (dengan tanda tangan yang sesuai) sama seperti RSA.

Jadi mengapa RSA? Sejauh yang saya tahu, alasan historis non-teknis mendominasi. RSA dipatenkan dan ada perusahaan di belakangnya, pemasaran dan advokasi untuk RSA. Juga, ada perpustakaan yang bagus, dan RSA mudah dimengerti dan akrab bagi pengembang. Karena alasan ini, RSA dipilih, dan begitu itu pilihan populer, RSA tetap seperti itu karena inersia.

Saat ini, pendorong utama yang menyebabkan peningkatan penggunaan Diffie-Hellman adalah keinginan untuk kerahasiaan maju yang sempurna, sesuatu yang mudah dicapai dengan menggunakan Diffie-Hellman tetapi lebih lambat dengan RSA.

Kebetulan: Ini pertukaran kunci Diffie-Hellman, bukan berbagi rahasia Diffie-Hellman. Berbagi rahasia adalah sesuatu yang sepenuhnya berbeda.

DW
sumber
2
Saya pikir paten lebih merupakan alasan untuk menghindari RSA?
user1686
@ kegembiraan yang tergantung pada bagaimana perilaku pemegang paten; dan satu generasi yang lalu para pemegang paten teknologi tidak secara kolektif mempermalukan diri mereka sendiri melalui skala besar dan jangka waktu yang lama sampai pada tingkat yang terjadi selama perang smartphone atau trolling paten perusahaan kecil.
Dan Neely
10

Diffie – Hellman tidak memiliki fitur penting: otentikasi. Anda tahu Anda berbagi rahasia dengan seseorang, tetapi Anda tidak bisa tahu apakah itu penerima atau pria di tengah. Dengan RSA, Anda mungkin memiliki beberapa pihak tepercaya yang menyimpan kunci publik. Jika Anda ingin terhubung ke bank, Anda dapat meminta kunci publik bank (mis. Verisign), karena Anda sudah memiliki kunci publik dari pihak tepercaya di komputer Anda. Karena itu Anda tahu bahwa Anda berbagi rahasia dengan bank Anda.

Dengan Diffie – Hellman, ketika Anda membuat rahasia dengan bank Anda, Anda sebenarnya bisa membuat rahasia dengan pria di tengah (MITM), yang juga membuat satu dengan bank Anda, dan dia hanya harus menerjemahkan dari satu kunci enkripsi ke yang lain tetap tidak terlihat (sambil bisa membaca seluruh komunikasi).

Jacen
sumber
Anda tentu saja dapat menggunakan RSA untuk otentikasi dan kemudian pertukaran kunci DH.
OrangeDog
4
halk=gskmHaidhal
@kasperd: Saya terkejut ini memiliki begitu banyak suara.
Louis
1
Anda bisa menggunakan kunci Diffie-Hellman jangka panjang untuk otentikasi (lihat CurveCP untuk contoh protokol) atau Anda dapat menggabungkan DH dengan tanda tangan DSA / Schnorr / ElGamal (yang berbagi banyak matematika dasar dengan DH), sama seperti Anda bisa menggabungkan Enkripsi RSA dengan tanda tangan RSA.
CodesInChaos
-2

Algoritma RSA seperti yang disebutkan sebelumnya tidak jauh lebih baik daripada Diffie-Hellman, yang terakhir hanya kurang otentikasi juga kedua algoritma tergantung pada kesulitan dalam menemukan logaritma diskrit sehingga keamanan bijaksana mereka berdua sangat mirip.

Ronak Khandelwal
sumber
2
Terima kasih atas kontribusinya. Namun, semua yang Anda katakan sudah tercakup dalam jawaban lain. Kami lebih suka Anda menjawab pertanyaan yang belum memiliki jawaban yang baik, daripada menduplikasi jawaban yang ada. Juga, RSA tergantung pada kesulitan masalah anjak (dan secara tegas berbicara tentang masalah RSA) daripada logaritma diskret per se, sedangkan Diffie-Hellman adalah sistem log berbasis disk yang lebih klasik (secara tegas, itu bergantung pada asumsi DDH ).
DW
-3

Ada sisi gelap dari hal ini yang tidak dapat diabaikan.
Fakta bahwa RSA dikooptasi oleh NSA.
NSA menanam pintu belakang di cyhper Kurva Eliptik yang dipasok ke RSA.
http://www.intelligence-world.org/nsa-infiltrated-rsa-security-more-deeply-than-thought-study/

John Hoffmann
sumber
1
Jawaban ini tidak koheren. Kriptografi kurva elips berbeda dengan RSA. Jadi, backdoor dalam kurva elips crypto tidak akan membahayakan RSA. Jawaban ini salah - tidak ada sisi gelapnya.
DW