Bisakah kunci publik digunakan untuk mendekripsi pesan yang dienkripsi oleh kunci pribadi yang sesuai?

21

Dari apa yang saya lihat tentang penggunaan sepasang kunci publik dan pribadi, kunci publik digunakan untuk mengenkripsi pesan, dan kunci pribadi digunakan untuk mendekripsi pesan terenkripsi.

Jika sebuah pesan dienkripsi dengan kunci pribadi, dapatkah itu didekripsi oleh kunci publik yang sesuai?

Jika ya, dapatkah Anda memberikan beberapa contoh kapan kasing ini digunakan?

Terima kasih.

Tim
sumber
Mengapa Anda mengenkripsi itu sama sekali jika kunci dekripsi itu publik?
Bergi
5
@Bergi tanda tangan digital?
user11153
6
@Bergi: Jawaban panjang: Dengan mengenkripsi pesan dengan kunci pribadi Anda dengan cara yang dapat didekripsi dengan kunci publik Anda, Anda dapat mengirim pesan yang dapat dibaca oleh siapa saja tetapi hanya bisa ditulis oleh Anda. Dengan mengenkripsi dengan kunci pribadi Anda terlebih dahulu dan kemudian dengan kunci pribadi penerima, Anda membuat pesan yang hanya dapat didekripsi oleh penerima yang dimaksud, dan hanya dapat ditulis oleh Anda.
gnasher729
2
@ gnasher729 Saya pikir Anda bermaksud mengenkripsi dengan kunci pribadi Anda terlebih dahulu dan kemudian dengan kunci publik penerima . Anda tidak seharusnya memiliki kunci pribadi orang lain
kiamlaluno

Jawaban:

49

T: Jika Anda mengayuh mundur pada ikan, apakah itu mundur?
SEBUAH: ???

Seekor ikan bukan sepeda. Demikian pula, Anda tidak dapat menggunakan kunci pribadi untuk mengenkripsi pesan atau kunci publik untuk mendekripsi pesan. Mereka tidak memiliki peralatan yang tepat.

Dengan RSA , yang merupakan cryptosystem kunci publik yang populer tetapi bukan satu-satunya, kunci privat dan kunci publik memiliki sifat matematika yang sama, sehingga dimungkinkan untuk menggunakannya secara bergantian dalam algoritma. (Namun, mereka tidak memiliki properti keamanan yang sama - kunci publik biasanya mudah ditebak dari kunci privat.) Anda dapat mengambil algoritma enkripsi RSA dan memberinya kunci pribadi, atau algoritma dekripsi RSA dan memberinya publik kunci. Namun, hasilnya tidak bermakna menurut algoritma standar.

Simetri antara kunci publik dan kunci privat ini tidak mencakup sebagian besar cryptosystem kunci publik lainnya. Secara umum, kunci publik bukan jenis objek matematika yang tepat untuk digunakan untuk algoritma dekripsi, dan kunci pribadi bukan jenis objek matematika yang tepat untuk digunakan untuk algoritma enkripsi.

Karena itu, cryptosystem kunci publik didasarkan pada konsep fungsi pintu jebakan . Fungsi satu arah adalah fungsi yang mudah dihitung, tetapi inversnya sulit dihitung. Fungsi pintu jebakan seperti fungsi satu arah, tetapi ada nilai "ajaib" yang membuat inversnya mudah dihitung.

Jika Anda memiliki fungsi pintu jebakan, Anda dapat menggunakannya untuk membuat algoritma enkripsi kunci-publik: maju (ke arah yang mudah), fungsi tersebut mengenkripsi; akan mundur (dalam arah keras), fungsi tersebut didekripsi. Nilai ajaib yang diperlukan untuk mendekripsi adalah kunci pribadi.

Jika Anda memiliki fungsi pintu jebakan, Anda juga dapat menggunakannya untuk membuat algoritme tanda tangan digital : mundur (ke arah yang sulit), tanda - tanda fungsi ; maju (ke arah yang mudah), fungsi memverifikasi tanda tangan. Sekali lagi, nilai ajaib yang diperlukan untuk masuk adalah kunci pribadi.

Fungsi trapdoor umumnya datang dalam keluarga; data yang diperlukan untuk menentukan satu elemen tertentu dari keluarga adalah kunci publik.

Meskipun enkripsi kunci publik dan tanda tangan digital didasarkan pada konsep yang sama, mereka tidak sepenuhnya identik. Sebagai contoh, fungsi pintu jebakan RSA didasarkan pada kesulitan membatalkan perkalian kecuali Anda sudah tahu salah satu faktor. Ada dua keluarga umum skema enkripsi kunci publik berdasarkan RSA , yang dikenal sebagai PKCS # 1 v1.5 dan OAEP. Ada juga dua keluarga umum skema tanda tangan digital berdasarkan RSA, yang dikenal sebagai PKCS # 1 v1.5 dan PSS. Dua "PKCS # 1 v1.5" memiliki desain yang serupa, tetapi tidak identik. Jawaban ini oleh Thomas Pornin dan jawaban ini oleh Maarten Bodewes masuk ke beberapa detail perbedaan antara tanda tangan / verifikasi dan dekripsi / enkripsi dalam kasus RSA.

Berhati-hatilah bahwa beberapa presentasi awam kriptografi kunci publik menyamarkan tanda tangan digital dan verifikasi sebagai dekripsi dan enkripsi, karena alasan historis: RSA dipopulerkan terlebih dahulu, dan operasi inti RSA simetris. (Operasi inti RSA, yang dikenal sebagai "buku teks RSA", adalah salah satu langkah dalam algoritme tanda tangan / verifikasi / enkripsi / dekripsi RSA, tetapi itu sendiri bukan merupakan algoritme tanda tangan, verifikasi, enkripsi, atau dekripsi.) simetris dari tampilan 10.000 kaki, tetapi tidak simetris begitu Anda masuk ke detail.

Lihat juga Pengurangan dari tanda tangan ke enkripsi? , yang menjelaskan bahwa Anda dapat membangun skema enkripsi dari skema tanda tangan, tetapi hanya dalam kondisi tertentu.

Gilles 'SANGAT berhenti menjadi jahat'
sumber
2
Memberi +1 dengan jelas menjelaskan kesalahpahaman yang bahkan tidak saya ketahui ketika saya mengklik pertanyaan ini.
Ixrec
1
Terima kasih. "kunci publik bukan jenis objek matematika yang tepat untuk digunakan untuk algoritma dekripsi, dan kunci pribadi bukan jenis objek matematika yang tepat untuk digunakan untuk algoritma enkripsi." Apakah maksud Anda mereka masih dapat digunakan untuk tujuan itu, tetapi bukan pilihan yang baik, atau tidak bisa? Apa sifat matematika yang memutuskan bahwa mereka bukan tipe "benar", selain sifat keamanan (misalnya asimetri dalam kekerasan untuk menebak satu kunci dari yang lain)?
Tim
2
Akan memotong dua paragraf pertama tetapi sebaliknya ini adalah jawaban yang sangat berwawasan. Saya datang ke sini dari penjelasan awam tentang enkripsi / dekripsi dan tanda tangan / verifikasi dan bagaimana kunci pribadi dapat digunakan untuk "mengenkripsi", dan jawaban Anda menjelaskan dengan tepat apa yang saya ingin tahu.
Kyle Chadha
Jadi, apakah artikel ini salah: globalsign.com/en/blog/how-do-digital-signatures-work ? Disebutkan bahwa kunci publik digunakan untuk dekripsi dan kunci privat digunakan untuk enkripsi
Kenneth Worden
@KennethWorden Sebagian besar benar, tetapi ada beberapa detail yang salah. Di bawah "Menerapkan Tanda Tangan", "hash dienkripsi" harus "hash ditandatangani ", dan itu saja yang membuat tanda tangan digital. Dan di bawah "Memverifikasi Tanda Tangan", tidak ada yang disebut "hash yang didekripsi": untuk sebagian besar skema tanda tangan, Anda tidak bisa mendapatkan kembali hash dari tanda tangan, yang terjadi adalah ada operasi matematika yang berbeda (disebut verifikasi) yang mengambil hash dan tanda tangan sebagai input dan output "ok" atau "buruk".
Gilles 'SO- stop being evil'
6

Ketika skema PKE menggunakan permutasi pintu jebakan sebagai kotak hitam , "mengenkripsi" dengan kunci pribadi diikuti dengan "mendekripsi" dengan kunci publik akan menghasilkan pesan asli. Untuk skema PKE lainnya, seseorang bahkan tidak dapat memahaminya. (Misalnya, mencoba "mengenkripsi" dengan kunci pribadi mungkin merupakan kesalahan ketik .)

[Mengenkripsi pesan "dengan kunci pribadi" diikuti dengan dekripsi "dengan kunci publik yang sesuai"] digunakan ketika orang berpikir kasus itu untuk tanda tangan digital dan tidak diperbaiki pada waktunya. Lihat jawaban ini dan pertanyaan ini .

Komunitas
sumber
4
Tidak. Anda mengabadikan mitos bahwa buku teks RSA adalah satu-satunya cryptosystem kunci publik dan tanda tangan itu sama dengan dekripsi.
Gilles 'SANGAT berhenti menjadi jahat'
Yang pertama adalah poin yang sangat baik, yang akan saya perbaiki. Apakah bagian terakhir dari komentar Anda karena hukuman panjang saya tidak cukup jelas?
4
Saya tidak mengerti apa yang Anda maksud dengan "ketika orang berpikir itu untuk tanda tangan digital". Sepertinya Anda mengatakan bahwa orang keliru percaya bahwa tanda tangan digital berbeda dari enkripsi kunci publik. Berasal dari Anda, saya yakin ini bukan yang Anda maksudkan, tetapi jawaban Anda benar-benar membingungkan, bahkan setelah menambahkan paragraf pertama.
Gilles 'SANGAT berhenti menjadi jahat'
2

Ya, pesan yang telah dienkripsi menggunakan kunci pribadi dapat didekripsi menggunakan kunci publik.

Bahkan, ini diterapkan untuk memverifikasi keaslian data. Dalam tanda tangan digital, seseorang mengenkripsi hash data dengan kunci pribadinya. Siapa pun dapat mendekripsi yang sama dengan kunci publik yang tersedia dari orang tersebut dan memverifikasi keaslian data.

Kevin Amipara
sumber
2
Anda dapat melakukan ini dengan cryptosystem RSA, tetapi tidak dengan semua cryptosystem kunci publik. Sistem kripto El-Gamal berbeda dari skema tanda tangan El-Gamal, misalnya. Lihat juga jawaban Gilles
Kadal diskrit
Benar bahwa. Saya mencoba untuk memberikan jawaban langsung tanpa memandang algoritma tertentu @ Discretelizard
Kevin Amipara
Terima kasih telah memberikan jawaban langsung.
jrahhali
0

Pikirkan kunci publik dalam enkripsi asimetris sebagai kunci, bukan kunci. Akankah hacker yang memiliki kunci dan kotak terkunci dengan kunci itu, membuka kunci kotak yang terkunci? Tentu saja tidak, dan untuk membuka kunci kotak itu Anda perlu kunci kunci. Yang tidak pernah dikirim ke tempat umum, dan hanya pengirim yang memilikinya.

Namun, jawabannya adalah Ya : D sebenarnya mungkin bagi peretas untuk mendekripsi pesan hanya menggunakan kunci publik (kunci dan kotak yang dikunci). Tapi itu sangat sulit untuk komputer mana pun saat ini. Karena mengembalikan pesan terenkripsi menggunakan kunci publik itu adalah operasi matematika yang sangat sulit terutama ketika kunci itu sebesar angka 2048-bit. Kekuatan operasi matematika bergantung pada kekerasan faktorisasi utama dari sejumlah besar.

Berikut video yang bagus menjelaskan cara kerja algoritma RSA https://www.youtube.com/watch?v=wXB-V_Keiu8

Mahmoud Zalt
sumber
0

Pertanyaannya valid dalam hal eMRTD di mana AA Public Key digunakan untuk mendekripsikan respons Otentikasi Internal yang dienkripsi oleh Private Key eMRTD. Itu adalah bagian dari Standar ICAO 9303.

MJR2022
sumber