是否有任何現有的“id-tied”公鑰/私鑰加密的開源實現?
我什至不知道如何問我的想法;但簡而言之,我正在尋找一些公開實施的密碼系統,其中只有一個系統範圍的公鑰
U
和.U``U
我有一個不尋常的情況,我被要求為沒有中央伺服器的大型點對點計算項目編寫程式碼支持。有一個中央受信任的機構可以非常緩慢地通過電子郵件向人們發送機密資訊,但無法大規模或實時解決身份和授權問題,因為此時他們都將非常活躍地相互交談。
系統中的每個實體都有一個唯一的標識符
U
,我們可以將其想像為一個正整數。作為對符號的濫用,我將U
同時指代實體及其 id。與其嘗試發布和/或頒布大量與
U
自己的公鑰相關聯的權威頒發的證書,我認為這是這樣做的正常方式,我希望使用一種加密通信方案,這樣給定一個共享(即所有實體都知道)公鑰,任何一方都可以通過 some向其E
發送私人消息。M``U``f[U, E](M)
例如,基於我對 RSA 的有限了解,這個想法是讓一些大師
N = p*q
為 p 和 q 素數生成 , ,然後計算一些E
和D
,E*D == 1 mod phi(N)
。然後E
可以用作公鑰,也可以用作D
私鑰,通過(M**E)**D mod N
. 如果改為使用E*D*U == 1 mod phi(N)
, 則D*U
可以用來加密M
,並且E
可以是U
的私鑰。作為獎勵,這仍然是對稱的;U
可以使用 簽署某些東西D
,其他任何人都可以使用 進行驗證U*E
。這個想法是,中央當局可以選擇
N
而不是透露 p 或 q,公佈N
並E
公開,並通過電子郵件向每個實體發送U
其私人秘密D
值,他們稍後將通過這些秘密值來辨識自己。從那時起,任何懷疑者都可以U
通過發送加密為 的挑戰來驗證聲稱是E*U
的實體,並確認聲稱是的實體U
可以解密。(我不擔心私鑰被洩露。)理論上很好,但我所聽到的只是你不想實現自己的加密庫。有沒有像上面那樣已經作為開源和經過實戰測試的解決方案存在的東西?
您正在尋找的可能是基於身份的加密 (IBE)。
我不確定我的術語是否正確,但這裡有一些關於 IBE 的概念。
IBE 有一個密鑰生成中心,其功能等同於 CA。密鑰生成中心管理解密使用者導出私鑰的主私鑰和加密使用者導出**解密使用者對應的公鑰的主公鑰。
其餘部分與其他公鑰加密基本相同:加密使用者用解密使用者的公鑰加密自己的消息,並將密文發送給他們;解密使用者使用他們從密鑰生成中心獲得的私鑰解密消息。
需要注意的是,存在明顯的密鑰託管問題和難以撤銷暴露的私鑰。
中國製定了基於身份的密碼學標準 SM9。IACR提供英文版。正式版是中文的,在付費專區之後,一些省級政府發布了百度網盤文件共享服務的免費連結。
評論中提到的 OpenSSL fork GmSSL似乎是中國商業密碼學標準最全面的實現。