我只是好奇,如果有任何加密算法,可以支持這種情況。共享加密文件,但使用不同的密鑰解密
雙方共享一個純文本文件(T),該文件被加密(比方說對稱AES)成爲加密文件(E)。加密文件將存儲在服務器中,並且在加密發生後,可以隨時添加其他方。
當第一方想要獲得T文件時,當第二方想要獲得T文件時,他/她通過P1K解密E文件 ,他/她通過P2K來解密E文件。
任何想法如何使用純粹的加密算法來實現這一點(不使用數據庫來存儲中間密鑰)?
我只是好奇,如果有任何加密算法,可以支持這種情況。共享加密文件,但使用不同的密鑰解密
雙方共享一個純文本文件(T),該文件被加密(比方說對稱AES)成爲加密文件(E)。加密文件將存儲在服務器中,並且在加密發生後,可以隨時添加其他方。
當第一方想要獲得T文件時,當第二方想要獲得T文件時,他/她通過P1K解密E文件 ,他/她通過P2K來解密E文件。
任何想法如何使用純粹的加密算法來實現這一點(不使用數據庫來存儲中間密鑰)?
如果發件人已經擁有用於祕密消息的預期收件人的公共密鑰組件,則可以使用配對密鑰加密的GnuPG完成。
發件人需要將數據加密到預期收件人的公鑰(也許發件人也有自己的密鑰),並且只有那些人可以使用他們的私鑰來解密祕密郵件。
不知道是否需要預先知道或訪問接收方的公鑰是一個問題或取消資格作爲發件人必須有的信息數據庫類型的答案。
所有的用戶都可以保留自己的私人位,而不是如果他們都必須共享相同的密碼,在這種情況下,沒有用戶有權訪問他們的任何聯繫人的私鑰。
啊我看到了,沒關係 – user825694
對不起,我忘了告訴說文檔存儲在服務器中沒有傳輸。 – James
「,但這是一個問題,我如何使用不同的密鑰爲不同的人加密單個文件?」可以使用不對稱加密(GnuPG) - 神奇的東西,讓我找到一個直接的鏈接... – user825694
誰通過什麼鍵給誰? (另外,傳統上P代表明文,C代表密文)
還有一個簡單的答案(除非我誤解了你,這是一個很明顯的可能性,因爲你的問題不是很清楚):給每個接收者「一半「首先是關鍵,而另一半則是希望他們能夠解密信息。
如何將鑰匙分成兩半?一個體面的方法是將它與一個隨機數異或:給人1 K ⊕ N1和人2 K ⊕ N2。當你想讓他們解密消息時,分別給他們N1或N2。
另一個簡單的答案是,當你想讓他們解密消息時,只給每個人使用收件人公鑰加密的密鑰。
純文本(T)可以使用AES等對稱密碼使用密鑰(Ks)進行加密。
Ks使用允許知道對稱密碼並作爲加密消息包的一部分添加的許多公鑰加密。
解密僅僅意味着通過加密的Ks列表對用戶的私鑰進行迭代。
你可能想看看http://stackoverflow.com/questions/4605139/is-it-possible-to-have-encryption-with-multiple-private-keys-php,也許解釋爲什麼這不會幫你。第一個答案可能是你的問題的答案。 –
對不起,但我知道對稱密鑰的概念。我的問題是有沒有可以達到這個要求的「advance」算法? – James
什麼密鑰用於加密(T)變成(E)?你是否說每次解密文件都會改變用於解密的密鑰? –