Berapa lama yang diperlukan untuk memecah email terenkripsi OpenPGP 1024 bit?

9

Untuk WPA, ada kalkulator untuk menentukan waktu yang diperlukan untuk memecahkan kata sandi, tetapi saya tidak menemukan apa pun untuk OpenPGP.

Berapa lama yang diperlukan untuk memecah email terenkripsi OpenPGP 1024 bit (tergantung pada daya CPU)?

Saya juga tertarik dengan ukuran kunci lain seperti 2048 dan 4096.

kelmat
sumber

Jawaban:

7

Sementara jawaban @Jens Erat agak komprehensif, saya melakukan penelitian untuk melanggar RSA (algoritma di balik OpenPGP), jadi saya ingin berpendapat:

Saya akan memutuskan dengan norma dan memberikan TL; DR terlebih dahulu: Tidak mungkin bagi Anda untuk memecahkan kunci itu. Jika kami melihat ini secara realistis, tidak ada cara bagi Anda untuk memperhitungkan bilangan bulat 1024-bit. Taruhan terbaik Anda mungkin akan mencoba untuk memecahkan bagian lain dari rantai keamanan (misalnya desktop tempat penerima memeriksa emailnya).

Dengan menyingkirnya realisme, mari pertimbangkan strategi yang mungkin:

  • Blind guessing / Brute Forcing. Dengan semiprime 1024-bit, ada sedikit kemungkinan bahwa ini akan berhasil. Akan lebih baik menggunakan waktu Anda secara acak mencoba menebak angka lotre.

  • Membuat Tabel Rainbow. Keluarkan tebakan dari memfaktorkan dengan mengambil setiap prime di bawah 2 ^ 1024 dan mengalikannya dengan prime lainnya, menyimpan hasilnya dalam sebuah tabel. Maka yang harus Anda lakukan adalah mencari pasangan yang benar. Seperti yang dapat Anda bayangkan, ini juga tidak mungkin. Ini akan melibatkan x! pasangan untuk x jumlah bilangan prima. Dengan fungsi penghitungan utama , Anda melihat sekitar 2,95 * 10 ^ 307 bilangan prima - untuk perbandingan, diperkirakan bahwa jumlah atom di alam semesta yang dapat diamati adalah pada besarnya 10 ^ 83, jadi bahkan jika kita bisa membuat setiap atom menyimpan dua bilangan prima dan produknya dengan cara yang dapat diindeks oleh komputer kita.

  • Gunakan ayakan bidang angka umum . GNFS adalah taruhan terbaik Anda untuk memfaktorkan semiprime besar. Itu digunakan oleh Kleinjung dan timnya untuk faktor RSA-768, semiprime 768-bit. Sayangnya, hal itu membutuhkan waktu lebih dari tiga tahun bagi timnya, dan itu adalah urutan besarnya lebih kecil dari angka yang ingin Anda faktorkan. Bahkan jika Anda menghabiskan jutaan dolar (per hari) menyewakan superkomputer top dengan kapasitas penuh, akan hampir mustahil untuk memperhitungkan faktor jumlahnya. Langkah pertama GNFS adalah menemukan cukup "hubungan" yang memungkinkan subproblem diselesaikan, dan ini bisa memakan waktu yang sangat lama.

Pilihan terakhir Anda adalah menggunakan komputer kuantum, yang memungkinkan Anda untuk memperhitungkan angka dalam jumlah waktu yang layak. Sayangnya, ini belum dikembangkan ke titik kegunaan. Jadi untuk saat ini, kami tidak dapat memfaktorkan semiprimes 1024-bit dan lebih besar (dan karenanya algoritma yang mengandalkannya).

ahjohnston25
sumber
20

Pertama, saya berasumsi Anda berbicara tentang enkripsi RSA 1024 bit.

Secara umum, topiknya terlalu rumit untuk memberikan nomor sederhana.

tl; dr : Memecahkan pesan terenkripsi OpenPGP pada satu CPU tidak layak, dan mungkin memakan waktu bertahun-tahun bahkan dengan cluster komputasi besar. Namun kelemahan matematis yang tidak diketahui (untuk umum) dapat mengubah ini berdasarkan urutan besarnya, seperti yang mungkin dilakukan komputer kuantum pada suatu waktu di masa depan (jauh, dari sudut pandang "era internet").

Versi yang sedikit lebih panjang:

Memecahkan Enkripsi Asimetris (kunci RSA 1024 bit)

Selain kunci RSA 1024 bit, ini juga berlaku untuk ukuran kunci yang lebih besar. Kunci yang lebih besar memberikan keamanan yang lebih besar (dalam bentuk daya komputasi untuk memecahkannya), tetapi ingat keamanannya tidak meningkat secara linier dengan ukuran kunci.

Ada pos yang bagus di Exchange Security Stack Exchange, "Bagaimana memperkirakan waktu yang diperlukan untuk memecahkan enkripsi RSA?" , yang tidak lengkap dengan perkiraan seperti "Menggunakan model Core i7 xy, Anda akan dapat memecahkan kunci RSA 1024 bit dalam perkiraan z jam", tetapi jawabannya setuju pada "Kunci bit RSA 1024 tidak dapat dipecahkan oleh individu dengan daya komputasi yang biasanya tersedia (mis., segelintir mesin kelas atas) dalam waktu yang wajar.

Diskusi tentang pemecahan kunci 1024 bit dengan kekuatan komputasi yang lebih besar hanya dipertimbangkan dari sudut pandang akademik:

Baru-baru ini saya mengetahui bahwa pemilihan parameter untuk faktorisasi angka 1024-bit telah dimulai (itulah bagian "cerdas"); pengayakan secara teknis layak (itu akan mahal dan melibatkan waktu komputasi bertahun-tahun pada banyak cluster universitas) tetapi, untuk saat ini, tidak ada yang tahu bagaimana melakukan bagian pengurangan linear untuk integer 1024-bit. Jadi jangan berharap istirahat 1024-bit dalam waktu dekat.

Ini mungkin juga berlaku untuk lembaga besar, yang didanai dengan baik dengan banyak daya komputasi seperti NSA.

Segalanya bisa berubah dengan cepat jika

  • seseorang menemukan cacat matematis, yang mengurangi kompleksitas RSA berdasarkan urutan besarnya (beberapa institusi seperti NSA mempekerjakan banyak ahli matematika hebat), atau
  • Komputer kuantum akhirnya bekerja dan menjadi cukup kuat dan mampu menjalankan algoritma tertentu. Tidak diharapkan terjadi dalam beberapa tahun ke depan.

Untuk DSA / ElGamal, semuanya sedikit berbeda. Kunci DSA dengan ukuran yang sama dari kunci RSA memberikan keamanan lebih, tetapi pada saat yang sama DSA lebih rentan terhadap angka acak yang buruk (bandingkan dengan cacat generator nomor acak Debian ). Kriptografi kurva elips yang akan datang untuk OpenPGP sekarang tidak memiliki serangan yang dikenal untuk algoritma yang didukung dan umumnya dianggap aman, tetapi ada beberapa keraguan yang tersisa terutama pada kurva yang direkomendasikan NIST (NIST telah kehilangan beberapa reputasi karena membuat acak yang rusak generator nomor standar), dan beberapa nitpicks implementasi.

Memecahkan Enkripsi Simetris

Untuk alasan kinerja, OpenPGP menggunakan enkripsi hibrid, sehingga pesan akan dienkripsi dengan enkripsi simetris dan kunci simetris acak (dalam OpenPGP, sering disebut "kunci sesi"). Kunci sesi ini lagi dienkripsi menggunakan algoritma enkripsi asimetris, misalnya. RSA.

Jika Anda dapat memecahkan kunci enkripsi simetris dari sebuah pesan, Anda juga bisa membaca pesan tersebut (tidak seperti memecahkan kunci asimetris, tempat Anda dapat membaca semua pesan yang dienkripsi dengan kunci ini).

Berbeda dengan versi PGP yang sangat awal (yang menggunakan algoritma enkripsi simetris yang dirancang oleh Zimmermann sendiri disebut BassOmatic , yang dianggap rusak), semua algoritma simetris yang ditentukan untuk OpenPGP tidak memiliki serangan yang diketahui yang relevan.

Kecuali seseorang memilih untuk tidak menggunakan enkripsi simetris (yang sebenarnya mungkin!), Memecah pesan menggunakan algoritma enkripsi simetris tidak boleh dianggap layak pada saat ini.

Jens Erat
sumber
Saya harus bertanya ... apakah salah mengeja disengaja "asimetris"?
David Z
Tidak, tentu saja tidak; tidak ada "copmuting". Terima kasih sudah memberi tahu saya.
Jens Erat
Tidak ada yang namanya "kunci DES dengan ukuran yang sama dengan kunci RSA." DES menggunakan kunci 56-bit, titik . Ini hanya didefinisikan dengan kunci 56-bit; Anda tidak dapat menjalankan DES dengan ukuran kunci lainnya. Ini juga tidak rentan terhadap angka acak yang buruk, karena DES tidak menggunakan angka acak pada titik mana pun dalam algoritma (juga tidak ada blok cipher primitif lainnya); penggunaan khusus itu mungkin termasuk aspek acak (misalnya IV untuk mode CBC harus acak), tetapi DES itu sendiri sepenuhnya deterministik. DES juga tidak lagi digunakan (triple DES terkadang, tetapi DES sendiri tidak pernah). Anda yakin ingin berbicara tentang DES?
cpast
Tentu saja saya tidak mau. DES yang membingungkan dengan DSA seharusnya tidak terjadi. DES, PGP, RSA, NSA, DSA: Kami membutuhkan lebih sedikit akronim tiga huruf!
Jens Erat
Buat sebagian besar kunci openpgp 1024 bit (tidak seperti kunci ssl / tls) adalah DSA bukan RSA. Saya menemukan banyak diskusi online tentang cracking 1024 bit RSA tetapi sedikit tentang cracking 1024 bit DSA.
plugwash