假设我想用RSA / KEM和一个经过认证的密码加密一些东西。我使用以下方案加密:
z比特生成随机种子n - 1,其中n是模数N的大小。z解释为无符号数字,并使用公钥e:w = RSA(e, z)加密s = KDF(z, "skey") and iv = KDF(z, "iv")派生会话密钥和IVm加密明文消息(c, t) = AEAD(s, iv, ad, m),其中t是身份验证标记,ad是(附加的)身份验证数据w | c | t将w的值--加密的密钥种子--包含在经过身份验证的数据ad中是否有好处?
发布于 2019-03-15 03:22:25
将封装作为AEAD的附加数据可能并不有害,但没有必要。通用的KEM/DEM组成,
通过标准定理提供足够的安全性,例如Cramer-Shoup 2001,定理5关于第41页。
您可以安全地分离出
作为单独的子程序,只进行k通信。
有关使用较少的数学编写和实例化的更多实用细节,请参见Shoup的提案。
顺便说一句,也没有必要生成一个IV,因为键只使用一次:您可以安全地使用一个IV/nonce作为一个DEM。
https://crypto.stackexchange.com/questions/29037
复制相似问题