Apakah mungkin untuk mengenkripsi data, sehingga dapat didekripsi dengan beberapa kunci berbeda?
Contoh:
Saya telah mengenkripsi data dengan kunci1, tetapi saya ingin dapat mendekripsi dengan kunci 2, 3, dan 4.
Apakah ini mungkin?
encryption
gnupg
encryption-asymmetric
Glen Solsberry
sumber
sumber
iya itu mungkin
Ya, enkripsi untuk beberapa penerima dimungkinkan. Juga tampaknya logis ketika Anda berpikir bahwa Anda mungkin ingin dapat membaca apa yang telah Anda kirimkan kepada seseorang dan untuk melakukannya Anda harus berada dalam daftar penerima.
Garis komando
Berikut adalah cara melakukannya melalui
gpg
baris perintah (seperti yang dijelaskan dalam jawaban David Segonds ):Klien GUI
GUI Anda harus menyediakan cara untuk mengenkripsi untuk beberapa orang
Mekanisme
Ada pertanyaan tentang Keamanan Informasi , ukuran File GPG dengan banyak penerima? , yang menjelaskan mekanisme enkripsi :
sumber
Klien GnuPG dan PGP secara umum biasanya mengenkripsi data aktual dengan kunci simetris yang disebut "kunci sesi". Kunci sesi kemudian dienkripsi dengan setiap "kunci penerima" (yaitu kunci yang Anda tentukan dengan -r / - penerima). Ini kadang-kadang disebut sebagai cipher hybrid . Saat ini, saya yakin GnuPG secara default menggunakan kunci sesi 256 bit dan AES untuk mengenkripsi data teks biasa ke kunci sesi AES-256 tersebut, dan kunci penerima Anda adalah RSA / DSA / ECDSA / dll. kunci asimetris dalam kasus ini.
Salah satu alasan untuk melakukannya dengan cara ini adalah karena algoritme kriptografi simetris seperti AES umumnya jauh lebih cepat daripada algoritme asimetris seperti RSA. GnuPG dengan demikian hanya perlu mengenkripsi ~ 256 bit (kunci sesi) dengan RSA, dan dapat menggunakan AES untuk mengenkripsi data (sebesar yang Anda inginkan!) Dengan kunci sesi tersebut. Mesin Intel bahkan memiliki instruksi bawaan , AES-NI , untuk melakukan beberapa langkah algoritme dalam perangkat keras, yang membuat GnuPG lebih cepat dalam mengenkripsi / mendekripsi data.
Alasan lain untuk melakukannya dengan cara ini adalah memungkinkan dokumen yang dienkripsi PGP dienkripsi ke banyak pihak tanpa harus menggandakan ukuran dokumen. Perhatikan bahwa ketika Anda menentukan beberapa penerima untuk dokumen terenkripsi (mis.
gpg -ea -r Alice -r Bob -o ciphertext.asc
), Dokumen terenkripsi yang disimpan (ciphertext.asc) tidak 2x sebesar jika Anda baru saja mengenkripsinya ke Alice.Lihat juga
--show-session-key
parameter di halaman manual gpg agar dapat mendekripsi hanya kunci sesi, misalnya untuk mengizinkan pihak ketiga mendekripsi dokumen yang dienkripsi kepada Anda tanpa harus mentransfer kepada mereka kunci pribadi atau data teks biasa Anda.sumber
Iya itu mungkin. Google "enkripsi multipartai" sebagai permulaan.
AFAIK, tidak ada drop-in dan gunakan paket-paket untuk itu.
- MarkusQ
PS Untuk sketsa bagaimana hal itu bisa dilakukan, pertimbangkan ini. Pesan terenkripsi terdiri dari:
Penerima yang memegang kunci i baru saja mendekripsi salinan pad dengan kunci mereka, dan kemudian mendekripsi muatan.
Namun, ini hanyalah bukti bahwa itu bisa dilakukan dan akan payah sebagai implementasi yang sebenarnya. Jika memungkinkan, Anda harus menghindari pengguliran enkripsi Anda sendiri. Jika Anda tidak mengerti mengapa, Anda harus pasti menghindari bergulir enkripsi Anda sendiri.
----- Edit ------------
Jika saya salah dan alat Gnu melakukannya, gunakanlah. Tetapi saya tidak dapat menemukan informasi apa pun tentang cara melakukannya.
sumber
Beberapa (lebih dari dua) kunci RSA mungkin seperti ini - saya bukan ahli matematika, jadi algoritma ini belum tentu aman, saya hanya ingin memberi gambaran.
m = p * q * r; p, q, r adalah bilangan prima besar
fi (m) = (p-1) (q-1) (r-1)
d == (e1 * e2 * e3 * ... * ei) ^ (- 1) (mod fi (m)); e1 ... ei adalah bilangan sembarang, d dihitung untuk memenuhi persamaan
y1 == x ^ e1 (mod m)
y2 == y1 ^ e2 (mod m)
y3 == y2 ^ e3 (mod m)
...
x == yi ^ d (mod m)
Algoritma ini dapat digunakan misalnya untuk meningkatkan kecepatan The Onion Router.
sumber