假设甲方生成一个短暂的RSA密钥并将公钥发送给B。则乙方生成一个对称密钥,用甲方的公钥对其进行加密,并将密文发送给甲方,然后解密乙方发送的密钥。然后,A和B方使用B生成的密钥加密数据。
这是否符合完美前向保密的定义?如果是这样的话,这是否意味着RSA仍然可以在像TLS这样的协议中使用,并满足新的完美的前向保密要求?
发布于 2015-10-10 16:40:43
是的,你所举的例子符合最近关于完美向前保密的定义。然而,我认为最近在监视丑闻之后产生的定义未能解决旧定义所包含的前瞻性保密的一个特点。一些较旧的定义包括这样一项要求,即交易所的任何一方不得强迫对方使用自己选择的钥匙。在您描述的示例中,情况显然不是这样的。乙方生成完整的密钥。在Diffie-Hellman密钥交换中,任何一方都不能强制共享密钥的比特满足他们强加的一些标准(除了退化的情况)。
当我们创建密钥交换时,我们希望它们出于各种目的是安全的。你现在的钥匙交换确实消除了容易妥协的长期钥匙。它不能防止随机数生成器的部分故障,也不能防止一方强制使用共享密钥的比特。
发布于 2015-10-10 16:45:50
这是否符合完美前向保密的定义?
如果您在使用后直接丢弃这个新生成的密钥:是的。
完美的前向保密意味着攻击者如果破坏当前会话密钥的机密性,就无法了解未来会话的任何信息。应用于此场景,这意味着短暂RSA密钥的妥协不能危及任何其他会话,这是事实。
然而,这种方法也有其问题。
如果是这样的话,这是否意味着RSA仍然可以在像TLS这样的协议中使用,并满足新的完美的前向保密要求?
理论上是的。
实际上,允许在TLSV1.3中使用RSA不太可能改变有关RSA使用的当前情况,这正是TLS WG的目标。
这样做的原因是,生成RSA密钥实际上是计算密集型的,这意味着您希望尽可能避免这种情况。
这是一个特别严重的问题,如果您将其与可用的替代方案: DHE和ECDHE进行比较。第一个要求每个密钥交换(需要f.ex。1,100万周期)和
后者只需两组乘法,通常是最快可用的方法(需要f.ex。1,000万周期)。
另一方面,生成一个RSA密钥需要你找到两个大素数,而不仅仅是与它们一起工作,而找到这样的素数需要很多昂贵的指数(f.ex )。对于拉宾-米勒素数检验),然后您需要执行RSA解密操作,它本身与其他密钥协议性能级(f.ex。只有1100万个周期)几乎没有竞争力。
https://crypto.stackexchange.com/questions/29744
复制相似问题