Dengan asumsi saya telah mengenkripsi file (mungkin besar) menggunakan GPG; misalnya
gpg --recipient "Some Name" -o this_file.gpg --encrypt this_file.txt
Apakah mungkin untuk menambahkan penerima lain tanpa terlebih dahulu mendekripsi file, diikuti oleh enkripsi lain?
--symmetric
untuk itu. Dengan--recipient
itu menggunakan kunci publik penerima. Mungkin ada lebih dari 1 penerima, tetapi harus dilakukan dalam satu perintah, bukan dalam 2 perintah terpisah.gpg -e -r <name1> -r <name2> ... <file>
" Saya belum pernah mencoba ini. Ini sesuai dengan apa yang saya pelajari dari crypto bertahun-tahun yang lalu yaitu hampir selalu lebih efisien untuk menggunakan algoritma simetris cepat untuk mengenkripsi teks pesan. Hanya kunci pesan yang dienkripsi menggunakan enkripsi asimetris lambat.Jawaban:
Jawaban singkat: tidak
Pertama-tama, perhatikan bahwa jika Anda bukan salah satu dari penerima, itu sama sekali tidak mungkin. Anda bahkan tidak memiliki kemampuan untuk mendekripsi file, apalagi menambahkan penerima. Bahkan jika Anda mengenkripsi dua detik yang lalu.
Dengan asumsi Anda adalah seorang penerima, secara teknis itu mungkin. File sebenarnya dienkripsi dengan kunci sesi dan kunci sesi dienkripsi dengan kunci publik Anda, sehingga secara teori Anda bisa mendekripsi kunci sesi dan memasukkannya kembali ke kunci orang lain, lalu kemas semuanya bersama-sama dalam sebuah file seperti jika Anda awalnya mengenkripsi dokumen untuk kedua orang.
Namun, gpg tidak memiliki kemampuan ini . Yang paling dekat dengan gpg adalah
--show-session-key
opsi untuk mendapatkan kunci sesi (yang tampaknya juga mendekripsi file, kehilangan titik dalam kasus ini)--override-session-key
untuk mendekripsi pesan asli.sumber
1) Situasi ini adalah alasan mengenkripsi file ke diri Anda (dan juga penerima yang dituju) selalu merupakan ide yang baik. RedGrittyBrick benar di atas dalam menggambarkan cara kerja GPG dan PGP, yang mengalir ke jawaban nathang di atas.
2) Namun, jika Anda memiliki file asli, lebih baik Anda membuat file terenkripsi baru untuk penerima baru.
Dengan asumsi Anda tidak ingin pergi rute kunci sesi dari saran nathang, jika Anda mengenkripsi file untuk diri Anda sendiri (seperti di atas dalam # 1) di tempat pertama, kemudian mendekripsi dan kemudian ikuti langkah # 2 di atas.
Jika Anda tidak memiliki yang asli atau yang dienkripsi untuk Anda sendiri, Anda tidak bisa mendapatkan kembali data dan tidak bisa mengenkripsi ke orang lain tanpa penerima pertama yang mengirim Anda kembali salinan.
sumber
Tidak mungkin tanpa mendekripsi sama sekali, tetapi sepertinya harus dimungkinkan tanpa mendekripsi file :
Kecuali ini tampaknya menghasilkan file yang rusak (setidaknya kadang-kadang) karena
gpg
keduanya membaca dan menulis ke file yang sama secara bersamaan:Sebagai gantinya, Anda dapat melakukan hal berikut (dalam skrip) untuk menghindari keharusan mengelola file yang didekripsi:
shred
, dengan-u
opsi, secara aman menimpa data dan kemudian menghapus file yang Anda tentukan. Program serupa ada untuk platform lain, sepertisrm
pada Mac OS X.Atau Anda dapat menulis skrip Anda seperti ini (milik dave_thompson_085 ) untuk menghindari bahkan perlu menyimpan data yang didekripsi dalam file sama sekali:
sumber
gpg -d file.gpg | gpg -e ... -o file.new; mv file.new file.gpg
atau mirrornyamv file.gpg file.old; gpg -d file.old | gpg -e ... -o file.gpg
. Atau (mungkin juga) secara cerdik hanya menyimpan inode lama :{ rm file.gpg; gpg -d /dev/fd/3; } 3<file.gpg | gpg -e ... -o file.gpg