Encryption 如何隐藏本影键

Encryption 如何隐藏本影键,encryption,cryptography,encryption-symmetric,encryption-asymmetric,Encryption,Cryptography,Encryption Symmetric,Encryption Asymmetric,正如本影文档定义的那样 Alice使用公钥封装,用于chacha20加密的K密钥已生成。 为共享给bob的文件重新加密。 最后,Bob使用私钥获取K和密文,解密密文获取明文。 我的问题是: 最后,Bob得到了解密密钥,所以下次Bob可以使用解密密钥解密密文而无需收集cFrags,也可以将密钥发送给其他人,比如clark,如何保守秘密 umbral节目指南类似于: 从umbral导入预处理、关键帧、签名 为Alice生成本影关键点。 alices_private_key=keys.UmbralP

正如本影文档定义的那样

Alice使用公钥封装,用于chacha20加密的K密钥已生成。 为共享给bob的文件重新加密。 最后,Bob使用私钥获取K和密文,解密密文获取明文。 我的问题是: 最后,Bob得到了解密密钥,所以下次Bob可以使用解密密钥解密密文而无需收集cFrags,也可以将密钥发送给其他人,比如clark,如何保守秘密

umbral节目指南类似于:

从umbral导入预处理、关键帧、签名 为Alice生成本影关键点。 alices_private_key=keys.UmbralPrivateKey.gen_key alices_public_key=alices_private_key.get_pubkey alices_signing_key=keys.UmbralPrivateKey.gen_key alices\u Verification\u key=alices\u signing\u key.get\u pubkey alices\u signer=signing.Signerprivate\u key=alices\u signing\u key 为Bob生成本影关键点。 bobs_private_key=keys.UmbralPrivateKey.gen_key bobs\u public\u key=bobs\u private\u key.get\u pubkey 为Clark生成本影关键点。 clarks_private_key=keys.UmbralPrivateKey.gen_key clarks\u public\u key=clarks\u private\u key.get\u pubkey 使用Alice的公钥加密数据。 明文=b'代理重新加密很酷!' 密文,胶囊=预加密公钥,明文 用Alice的私钥解密数据。 明文=预解密密文=密文, 胶囊, 解密\u密钥=alices\u私钥 Alice为Bob生成M/N重加密密钥片段或Kfrag。 在本例中,20个中有10个。 kfrags=pre.generate\u kfragsdelegating\u privkey=alices\u private\u key, 签名者=alices\u签名者, 接收\u公钥=bobs\u公钥, 阈值=10, N=20 capsule.set\u correction\u keysdeleging=alices\u public\u key, 接收=bobs_公钥, 验证=alices\u验证\u密钥 cfrags=列出Bob的cfrag集合 对于kfrags中的kfrag[:10]: cfrag=pre.reencryptkfrag=kfrag,capsule=capsule cfrags.appendcfrag Bob收集一个cfrag 对于cfrag中的cfrag: 胶囊。连接 bob_cleartext=预解密密文=密文, 胶囊, 解密密钥=bobs\U私钥 断言bob_cleartext==明文 打印清晰文本
1.私密钥匙的封装不是这样的。要么是公钥,要么是去封装。2.这个图表没有提到谁知道什么。如果我们有重新加密,那么就有某种代理服务器,它与Alice和Bob正在使用的机器不同。我投票结束这个问题,因为这与编程无关。对于这个问题可能是一个更好的社区,但它需要更清晰的问题陈述。@ArtjomB。Tks,第一步使用公钥,对不起,我现在已经修好了。我读过Umbral白皮书,云中的每个数据存储都使用随机DEK解密作为密文,但最终bob将获得DEK和密文,这意味着其他人可以获得密文,如果bob将DEK共享给clack,clack使用DEK直接解密密文。你是对的,如果Bob与其他人共享他的解密密钥,他们可能可以代替Bob解密任何东西。没有100%的保护。你可以通过让Bob更难分享来减少问题。例如,要求Bob使用共享手机的多因素身份验证登录到中央系统很麻烦,或者要求Bob在其机器上使用TPM/Intel SGX来保存一些密钥。