用多個密鑰來解密同一個密文?

有沒有辦法生成一段密文,這段密文可以被多個不同的密鑰解密?


PGP 支持 multiple recipients 功能。 可以指明多個收件人,任意收件人都可以使用自己的私鑰解密密文。

舉例:

gpg --encrypt --recipient alice@example.com --recipient bob@example.com doc.txt

加密過程:

  1. doc.txt使用對稱加密方法加密,產生一個對稱密鑰 Ks 。
  2. 將對稱密鑰分別使用 Alice 和 Bob 的公鑰,對 Ks 進行加密,分別產生針對 Alice 和 bob 的密文。
  3. doc.txt的密文和第二步產生的密文發送給收件人。

解密過程:

  1. Alice 或 Bob 收到密文後, 找到其中使用自己公鑰加密後的對稱密鑰。 解密出 Ks。
  2. 使用 Ks 解密出doc.txt

從嚴格意義上來說, 這並不是某個加密演算法,能夠同時允許多個密鑰解密。 而是對稱加密和非對稱加密配合,實現將數據加密分發給多個人,能夠讓不同人使用自己的密鑰解密數據。


基於屬性的加密ABE


瀉藥,應該是可以的,就好像數學題吧,同一種題目(同一種密文),可以使用不同的公式(不同的秘鑰)取得相同的值,只是過程會麻煩一些吧,需要考慮到每個秘鑰和密文的聯繫


def clipher(key, text):
print("do something")

key = randint(1,6555555555)//25
source_text = "hello world"
clipher(key, source_text)

這裡有25個密碼,拿去


推薦閱讀:

關於密碼中的RSA演算法和ecc(橢圓曲線)演算法加密過程是怎樣的?
【matlab學習筆記】圖像加密的簡單方法
用已知加密演算法AES加密文本123,得到密文xxx,問能否根據密文、加密演算法、原文本123直接推導出密鑰是什麼?
WinRAR 的加密效果怎麼樣,其中加密文件名是什麼意思?
ajax post請求如何加密?

TAG:加密 | 非對稱式加密 |