Verileri birkaç farklı anahtarla deşifre edilebilecek şekilde şifrelemek mümkün mü?
Misal:
Verileri key1 ile şifreledim, ancak 2, 3 ve 4 anahtarlarıyla şifresini çözebilmek istiyorum.
Mümkün mü?
Verileri birkaç farklı anahtarla deşifre edilebilecek şekilde şifrelemek mümkün mü?
Misal:
Verileri key1 ile şifreledim, ancak 2, 3 ve 4 anahtarlarıyla şifresini çözebilmek istiyorum.
Mümkün mü?
Yanıtlar:
GnuPG , standart olarak çok anahtarlı şifreleme yapar.
Aşağıdaki komut, doc.txt
Alice için genel anahtarı ve Bob için genel anahtarı kullanarak şifreleyecektir . Alice, özel anahtarını kullanarak şifresini çözebilir. Bob, özel anahtarını kullanarak da şifresini çözebilir.
gpg --encrypt --recipient alice@example.com \
--recipient bob@example.com doc.txt
Bu özellik "başlıklı kullanıcı kılavuzu bölümünde ayrıntılı edilir Şifreleme ve şifre çözme belgeler "
Evet, birden fazla alıcı için şifreleme mümkündür. Ayrıca, birine gönderdiklerinizi okuyabilmek ve bunu yapmak için alıcılar listesinde olmanız gerektiğini düşündüğünüzde mantıklı görünüyor .
Bunu gpg
komut satırı aracılığıyla nasıl yapacağınız aşağıda açıklanmıştır ( David Segonds'un cevabında açıklandığı gibi ):
gpg --encrypt \
--recipient alice@example.com \
--recipient bob@example.com \
clear-message.txt
GUI'niz birkaç kişi için şifreleme yolu sağlamalıdır
Bilgi Güvenliği , GPG Dosya boyutu ve birden fazla alıcıyla ilgili bir soru var mı? , şifreleme mekanizmasını açıklar :
GPG, dosyayı bir kez simetrik bir anahtarla şifreler, ardından hedef anahtar çiftini tanımlayan bir başlık ve simetrik anahtarın şifrelenmiş bir sürümünü yerleştirir.
[...] Birden çok alıcıya şifrelendiğinde, bu başlık birden çok kez yerleştirilerek her alıcı için aynı simetrik anahtarın benzersiz şekilde şifrelenmiş bir sürümünü sağlar .
GnuPG ve PGP istemcileri genel olarak gerçek verileri "oturum anahtarı" adı verilen simetrik bir anahtarla şifreler. Oturum anahtarı daha sonra her "alıcı anahtarı" ile (yani -r / - alıcı ile belirlediğiniz anahtarlar) şifrelenir. Bu bazen hibrit şifreleme olarak adlandırılır . Şu anda, GnuPG'nin düz metin verilerini söz konusu AES-256 oturum anahtarına şifrelemek için varsayılan olarak 256 bit oturum anahtarları ve AES kullandığına inanıyorum ve alıcı anahtarlarınız sizin RSA / DSA / ECDSA / vb. bu durumda asimetrik anahtar.
Bunu bu şekilde yapmanın bir nedeni, AES gibi simetrik kriptografik algoritmaların genellikle RSA gibi asimetrik olanlardan çok daha hızlı olmasıdır. GnuPG bu nedenle RSA ile sadece ~ 256 biti (oturum anahtarı) şifrelemek zorundadır ve bu oturum anahtarıyla verileri şifrelemek için (istediğiniz kadar büyük!) AES kullanabilir. Intel makinelerinde donanımda algoritmanın bazı adımlarını gerçekleştirmek için yerleşik bir talimat olan AES-NI bile vardır , bu da GnuPG'yi verileri şifreleme / şifre çözme konusunda ekstra hızlı hale getirir.
Bunu bu şekilde yapmanın bir başka nedeni de, PGP ile şifrelenmiş belgelerin, belgenin boyutunu iki katına çıkarmak zorunda kalmadan birden çok tarafa şifrelenmesine izin vermesidir. Şifrelenmiş bir belge için birden fazla alıcı belirttiğinizde (örneğin gpg -ea -r Alice -r Bob -o ciphertext.asc
), depolanan şifreli belgenin (ciphertext.asc) Alice'e şifrelemişsiniz gibi 2 kat daha büyük olmadığına dikkat edin.
Yalnızca oturum anahtarının şifresini çözebilmek için gpg man sayfasındaki--show-session-key
parametreye de bakın ; örneğin, üçüncü bir tarafın size şifrelenmiş bir belgenin özel anahtarınızı veya düz metin verilerinizi aktarmasına gerek kalmadan şifresini çözmesine izin vermek için.
Evet mümkün. Başlangıç için Google "çok taraflı şifreleme".
AFAIK, içinde bırakma yok ve bunun için paket kullan.
- MarkusQ
Not: Nasıl yapılabileceğinin bir taslağı için şunu düşünün. Şifrelenmiş mesaj şunlardan oluşur:
İ tuşunu tutan alıcı, pedin kopyasının şifresini anahtarıyla çözer ve ardından yükün şifresini çözer.
Ancak, bu sadece yapılabileceğinin ve gerçek bir uygulama olarak berbat olacağının bir kanıtıdır . Mümkünse, kendi şifrelemenizi döndürmekten kaçınmalısınız. Nedenini anlamıyorsanız, kesinlikle kendi şifrelemenizi devirmekten kaçınmalısınız.
-----Düzenle ------------
Yanılıyorsam ve Gnu araçları bunu yaparsa, onları kullanın. Ama nasıl yapılacağına dair herhangi bir bilgi bulamıyorum.
Çoklu (ikiden fazla) anahtarlı RSA belki şuna benzer - iyi bir matematikçi değilim, bu yüzden bu algoritma mutlaka güvenli değil, sadece onunla bir fikir vermek istiyorum.
m = p * q * r; p, q, r büyük asal sayılardır
fi (m) = (p-1) (q-1) (r-1)
d == (e1 * e2 * e3 * ... * ei) ^ (- 1) (mod fi (m)); e1 ... ei keyfi sayılardır, d denklemi yerine getirmek için hesaplanır
y1 == x ^ e1 (mod m)
y2 == y1 ^ e2 (mod m)
y3 == y2 ^ e3 (mod m)
...
x == yi ^ d (mod m)
Bu algoritma, örneğin The Onion Router'ın hızını artırmak için kullanılabilir.