it-swarm-id.com

Enkripsi Asimetris vs Simetris

Saat ini saya mengambil prinsip kelas keamanan informasi. Saat berbicara tentang metode enkripsi yang berbeda, sejumlah besar teman sekelas saya tampaknya percaya bahwa Asymmetric Encryption lebih baik (lebih aman) daripada Enkripsi Symmetric. Pernyataan tipikal adalah sesuatu seperti ini:

Umumnya skema enkripsi asimetris lebih aman karena memerlukan kunci publik dan kunci privat.

Tentu saja dengan enkripsi simetris Anda harus khawatir tentang pertukaran kunci aman tetapi sejauh yang saya tahu tidak ada alasan yang melekat mengapa satu harus lebih aman daripada yang lain.

Terutama mengingat bahwa bagian asimetris sering hanya digunakan untuk pertukaran kunci dan kemudian data aktual dienkripsi dengan algoritma simetris.

Jadi, apakah saya kehilangan sesuatu atau dapatkah pernyataan umum seperti ini benar-benar dibuat tentang yang lebih aman.


Jadi jika saya memiliki pesan yang dienkripsi dengan AES dan salinan lain yang dienkripsi dengan RSA dan semua hal lain dianggap sama yang lebih mungkin untuk dipecahkan. Bisakah perbandingan ini dibuat?

56
matthew

Ada perasaan di mana Anda dapat mendefinisikan kekuatan dari algoritma enkripsi tertentu¹: secara kasar, kekuatannya adalah jumlah upaya yang perlu dilakukan untuk memecahkan enkripsi. Lebih tepatnya, kekuatannya adalah jumlah perhitungan yang perlu dilakukan untuk menemukan rahasia. Idealnya, kekuatan suatu algoritma adalah jumlah upaya brute-force yang perlu dilakukan (ditimbang oleh kompleksitas setiap upaya, atau dikurangi jika semacam paralelisasi memungkinkan beberapa upaya untuk berbagi beberapa pekerjaan); karena serangan pada algoritma meningkat, kekuatan sebenarnya turun.

Sangat penting untuk menyadari bahwa "algoritma enkripsi tertentu" termasuk mempertimbangkan ukuran kunci tertentu. Artinya, Anda tidak melempar RSA melawan AES, tetapi RSA 1024-bit (dengan mode padding khusus) dengan AES-256 (dengan mode chaining spesifik, IV, dll.). Dalam pengertian itu, Anda dapat bertanya: apakah saya memiliki salinan data saya yang dienkripsi dengan algoritma A dengan nilai parameter P dan Q (khususnya ukuran kunci), dan salinan yang dienkripsi dengan algoritma B dengan parameter P dan R, maka Manakah dari (A, Pval₁, Qval₁) dan (B, Pval₂, Rval₂) yang kemungkinan akan retak terlebih dahulu?

Dalam praktiknya, banyak protokol melibatkan penggunaan beberapa primitif kriptografi. Primitif yang berbeda memiliki kegunaan yang berbeda, dan bahkan ketika beberapa primitif dapat melayani fungsi yang diberikan, mungkin ada yang lebih cocok daripada yang lain. Saat memilih primitif kriptografi untuk tujuan tertentu, proses keputusannya agak seperti ini:

  1. Algoritma apa yang dapat melakukan pekerjaan itu? → Saya bisa menggunakan A atau B atau C.
  2. Kekuatan apa yang saya butuhkan? → Saya ingin 2N operasi, jadi saya perlu ukuran kunci LSEBUAH untuk primitif A, LB untuk B primitif, LC untuk primitif C.
  3. Mengingat kendala saya (kecepatan kasar, latensi, efisiensi memori, ...), yang mana di antaranya (LSEBUAH-bit A atau LB-bit B atau L.C-bit C) yang terbaik?

Misalnya, katakanlah kebutuhan Anda adalah protokol untuk bertukar data dengan pihak yang tidak Anda percayai. Maka kriptografi simetris tidak dapat melakukan pekerjaan itu sendiri: Anda perlu beberapa cara untuk berbagi kunci. Kriptografi asimetris seperti RSA dapat melakukan pekerjaan, jika Anda membiarkan para pihak bertukar kunci publik terlebih dahulu. (Ini bukan satu-satunya kemungkinan tetapi saya tidak akan membahas lebih lanjut di sini.) Jadi Anda dapat memutuskan panjang kunci RSA apa pun yang memiliki kekuatan yang tepat untuk aplikasi Anda. Namun RSA lambat dan rumit (misalnya tidak ada protokol standar untuk menerapkan enkripsi RSA ke aliran - terutama karena tidak ada yang terganggu karena mereka akan sangat lambat). Banyak protokol umum yang melibatkan kriptografi kunci publik menggunakannya hanya untuk bertukar rahasia durasi terbatas: kunci sesi untuk beberapa algoritma kriptografi simetris. Ini dikenal sebagai enkripsi hibrid . Sekali lagi, Anda memilih panjang kunci sesi sesuai dengan kekuatan yang diinginkan. Dalam skenario ini, dua primitif yang terlibat cenderung memiliki kekuatan yang sama.

¹ Gagasan yang sama berlaku untuk penggunaan kriptografi lainnya, seperti penandatanganan atau hashing.

Enkripsi simetris dan asimetris adalah operasi berbeda yang beroperasi dalam konteks berbeda, untuk penggunaan berbeda dan model serangan berbeda. Ada sedikit akal dalam mengklaim bahwa keduanya "lebih aman" daripada yang lain (pertama-tama akan memerlukan semacam ukuran keamanan yang terukur, yang tidak mudah untuk didefinisikan).

Enkripsi asimetris lebih menuntut : ini tentang mewujudkan enkripsi dan mampu menerbitkan cara-cara mengenkripsi (publik) kunci) tanpa mengungkapkan cara mendekripsi (kunci pribadi). Implementasi praktis membutuhkan matematika, sedangkan enkripsi simetris sebagian besar mengacak-acak hal (sekitar Anda, sulit untuk melakukan pekerjaan pengacakan yang baik; tetapi, lebih sedikit matematika yang terlibat).

Sistem yang umum digunakan (mis. SSL/TLS ) menggabungkan enkripsi asimetris dan enkripsi simetris (dan beberapa hal lainnya juga) ke protokol yang melakukan beberapa pekerjaan yang dituju (misalnya " terowongan dua arah dengan kerahasiaan, integritas dan otentikasi ").

29
Thomas Pornin

Memilih antara enkripsi simetris dan asimetris tergantung pada se case.

Enkripsi simetris digunakan untuk berbagi informasi antara satu set orang yang semua akan memiliki akses ke sana. Lebih jauh lagi, enkripsi simetris bagus karena lebih mudah dipahami (kecil kemungkinannya mengacaukannya) dan algoritme cenderung lebih cepat.

Enkripsi asimetris digunakan ketika sejumlah besar himpunan orang harus dapat berbagi informasi. Selanjutnya kriptografi asimetris dapat digunakan secara terbalik untuk menandatangani dokumen. Ini sangat menarik karena memungkinkan orang untuk menyatakan bahwa kunci publik milik orang tertentu.

Dalam satu set 10 orang, memungkinkan setiap pasangan orang untuk berkomunikasi dengan aman, membutuhkan 45 kunci unik (9 + 8 + 7 + 6 + 5 + 4 + 3 + 2 + 1). Dan sekarang pikirkan tentang internet, bukannya kumpulan kecil 10 orang. Jelas bahwa ini tidak dapat ditangani dengan kunci simetris.

Di dunia nyata kedua jenis ini sering digabungkan. Pendekatan asimetris digunakan untuk mengkonfirmasi identitas mitra komunikasi dan mengirimkan sesuatu yang akan menghasilkan kunci simetris. Kunci simetris ini kemudian digunakan untuk untuk melakukan enkripsi data aktual.

21

Umumnya skema enkripsi asimetris lebih aman karena memerlukan kunci publik dan kunci privat.

Anda tidak bisa mengatakan itu. Itu omong kosong. Itu tidak benar.

Kekuatan tidak tergantung pada simetris vs asimetris. Kriptografi simetris dan kriptografi asimetris adalah dua jenis alat kriptografi. Masing-masing bisa lemah atau kuat, tergantung. Tidak ada alasan mengapa kriptografi asimetris lebih kuat daripada kriptografi simetris.

Sebagai contoh:

  • AES lebih aman terhadap serangan cryptanalytic daripada RSA 512-bit, meskipun RSA asimetris dan AES simetris.

  • RSA 4096-bit lebih aman terhadap serangan cryptanalytic daripada RC4 40-bit, meskipun RC4 simetris dan RSA asimetris.

14
D.W.

Saya setuju dengan apa yang dikatakan Thomas di atas. Enkripsi simetris dan asimetris adalah operasi yang berbeda.

Enkripsi simetris lebih murah daripada enkripsi asimetris. Mahal seperti di dalamnya membutuhkan lebih sedikit pemrosesan. Tepatnya, saya mengacu pada proses dekripsi.

Dan inilah mengapa SSL/TLS menggunakan kombinasi enkripsi simetris dan asimetris. Enkripsi/dekripsi asimetris antara dua rekan selama transaksi SSL/TLS hanya terjadi selama jabat tangan awal. Setelah kedua rekan sepakat tentang kunci pribadi bersama maka sisa komunikasi akan menggunakan enkripsi simetris. Dengan demikian, satu-satunya operasi yang mahal akan terjadi selama jabat tangan awal dan sisa komunikasi akan menggunakan enkripsi simetris yang membutuhkan sumber daya lebih sedikit.

4