我遇到了“加密预言机”这个词,尽管进行了一些谷歌搜索,但我无法找到一个清晰、简洁的定义。什么是加密预言机,它有什么作用?谁能举个例子?
什么是加密预言机?
神谕者是知道神的个人手机号码的人。这使他(或她)能够获得一些通常被认为是凡人无法获得的信息,例如对未来的一瞥。在密码学中,这是相同的,除了不涉及神:神谕是任何可以提供有关系统的一些额外信息的系统,否则这些信息将不可用。
例如,考虑使用RSA的非对称加密。我链接到的标准说明了如何使用公钥加密一段数据。具体来说,加密从填充操作开始,其中首先通过添加头部来扩展数据片段,以便填充的数据长度与 RSA 公钥长度匹配。标头应以两个字节开头0x00 0x02
,然后是至少八个随机非零字节,然后是另一个0x00
。填充数据后,就该应用数学运算了,它是 RSA 运算(模幂运算)的核心。填充的细节对于安全性很重要。
加密结果是一个整数模RSA 模数,一个大整数,它是公钥的一部分。对于 1024 位 RSA 密钥,模数n是大于2 1023但小于2 1024的整数值。使用 RSA 正确加密的数据块会产生一个介于1和n-1之间的整数值。但是,填充意味着一些结构,如上所示。解密方必须在解密时找到一个格式正确的 PKCS#1 头,以0x00 0x02
字节开头,后跟至少 8 个非零字节,并且必须有一个0x00
标记头结束的 PKCS#1 头。因此,并非所有整数之间1和n-1是有效的 RSA 加密消息(每 65000 个这样的整数少于 1 个将在解密时产生适当的填充)。
知道给定整数模n是否会在解密时产生有效的填充结构,对于不知道私钥的人来说是不可行的。私钥拥有者(神)获得该信息,以及更多信息:如果解密成功,私钥拥有者实际上会获得消息,这就是解密的点。假设有是一个实体,什么地方,谁可以告诉你是否一个给定的整数模ñ是RSA数据加密,有效一块; 该实体不会给你完整的解密结果,它只会告诉你解密是否有效。那是一个比特的信息,对神将获得什么的一瞥。实体是你的神谕:它返回部分 通常只有私钥所有者可以使用的信息。
事实证明,如果可以访问这样的预言机,就可以通过发送特制整数模n来重建私钥(这需要大约一百万个这样的值,以及相当多的数学知识,但它可以是完毕)。事实证明,大多数SSL/TLS那个时候(那是在 1999 年)的实现不由自主地充当了预言机:如果你作为客户端发送了一个无效的 RSA 加密的 ClientKeyExchange 消息,那么服务器正在响应一个特定的错误消息(“呃,你的 ClientKeyExchange 消息很臭” ),而如果解密工作,服务器将继续使用协议,使用它解密的任何值(如果客户端发送随机值,客户端通常不知道,因此协议稍后失败,但客户端可以看到两者之间的差异有效和无效的填充)。因此,通过这样的实现,攻击者可以(在一百万次左右的失败连接之后)重建服务器私钥,这通常被认为是一件坏事。
这就是预言机:对数据泄漏的数学描述,用于安全证明。在 RSA 的情况下,这表明知道一个值是否有适当的填充在某种程度上等同于学习私钥(如果你知道私钥,你可以尝试解密并自己查看填充;Bleichenbacher 攻击显示它也可以反过来工作)。
预言机可以立即 ( O(1)
) 为您提供某些问题的答案,通常是不可行或不可能的问题。例如,“Halting-problem Oracle”可以立即告诉您某个输入上的某个程序是否停止,即使停止问题对于我们这些凡人来说是无法计算的。然而,我们有时可以通过假装某些预言的存在来证明一些有用的属性。
例如,在密码学论文中,预言机最常用于表明,即使我们的攻击者可以访问一些看似不可能的预言机,他们仍然没有任何(显着)优势来破坏我们的安全性。例如,加密算法的一个重要特性(称为对已知明文攻击的抵抗力)是,如果攻击者收到一条使用您的密钥加密的消息,m'
并且他们想知道原始消息m
(或找出您的密钥),然后再给他们另一个消息n
及其使用您的密钥加密n'
不应以任何方式帮助他们这样做。
有鉴于此到极致(选择明文攻击):使攻击者的预言谁可以加密或解密任何与你的关键信息,除了为m
和m'
。即使在这些极端条件下,我们也希望为我们的加密表明,拥有预言机的攻击者在找到m
(或您的密钥)方面比没有预言机的攻击者没有优势。这意味着我们的加密可以免受选择明文攻击。
[编辑]
这是另一个实际示例。在一个程序是否可以判断另一个程序是否下棋的问题中,我们首先假设存在一个国际象棋检测预言机,然后证明它的存在导致逻辑上的不可能性,从而证明不存在这样的程序。
加密预言机是一种黑盒输入/输出方法。
它将以伪随机响应响应任何输入,但始终为特定输入提供相同的输出。
它们通常用于散列函数,其中随机性对于更高的安全性很重要。
显然仍然存在安全问题,因为它只是一个返回看似伪随机数的数学函数,但它们显然比一些不太随机的对应物更强。
这是一篇关于它们及其设计的可靠论文 - http://cseweb.ucsd.edu/users/mihir/papers/ro.pdf
预言机以多种形式出现,通常带有混乱的气氛,本质上是一种想象的能力,可能归因于安全方面或攻击者,并且被用作评估安全性的有用工具——如果你仔细区分的话在好神谕和“不确定”神谕之间。
]