你一定听说过它,网上报纸到处都是。加州大学洛杉矶分校的一些研究人员声称通过“数学拼图”在软件混淆方面取得了突破。
他们的科学论文可以在IACR eprint 网站上找到。
有人可以总结一下论文的真正内容是什么(并且确实值得)?
你一定听说过它,网上报纸到处都是。加州大学洛杉矶分校的一些研究人员声称通过“数学拼图”在软件混淆方面取得了突破。
他们的科学论文可以在IACR eprint 网站上找到。
有人可以总结一下论文的真正内容是什么(并且确实值得)?
研究的主要贡献有以下三点
针对 NC 1电路提出的不可区分性混淆,其中安全性基于所谓的多线性拼图(多线性地图的简化变体)。
将贡献与完全同态加密配对,您将获得所有电路的不可区分性混淆。
将 2 与公钥加密和非交互式零知识证明相结合,您可以对所有电路进行功能加密。我相信在此之前对所有电路进行功能加密是不可能的。
那么,让我们依次看看这些。
不可区分性混淆(贡献 1 和 2)
来自论文
需要注意的是,与基于模拟的混淆定义不同,不可区分性混淆器的有用程度尚不清楚。也许对不可区分性混淆器最有力的哲学论证来自 Goldwasser 和 Rothblum [GR07] 的工作,他们表明(可有效计算的)不可区分性混淆器实现了最佳可能混淆器的概念 [GR07]:非正式地,最好的可能保证混淆器它的输出对输入电路的隐藏程度与任何特定大小的电路一样多。
因此,本文对不可区分性混淆的主要贡献是展示了一种适用于所有电路的 IO 结构,然后将其与其他一些东西配对以获得任何电路的功能加密。
请注意,IO 的有用性只会随着时间的推移而变得更大。正如一些相同作者在另一篇论文中所见,希望随着新结构的提出,它们会变得更加实用。
功能加密(贡献 3)
在此工作之前,FE 只能在小电路上使用。使用 1 和 2 以及其他一些加密原语,作者能够在所有电路上构建 FE。这是一个非常重要的结果。
这对 Anti-RE 意味着什么 就
其本身而言,不可区分性混淆对于反逆向工程来说意义不大。然而,任何电路上的 FE 都可能很重要。这是原因。FE 允许计算结果为明文形式。将此与完全同态加密 (FHE) 进行比较,其中结果将被加密,或者与多方计算相比,如果我们需要多方(但可以有明文结果)。因此,我可以给你一个密钥,它可以让你,比如说,AES 解密我发送给你的任何数据。但是,您永远不会知道 AES 密钥。有些技术还允许您隐藏函数(而不仅仅是输入)。
想象一下,如果您有能力允许某人仅对我发送给您的私人数据计算特定函数,并且仍然获得纯文本结果。此外,该功能是隐藏的,因此他们无法对该功能进行逆向工程。这就是 FE 的贡献,而 FE 在任何电路上都是这项工作能够实现的。
实用性
从我在论文中看到的内容来看,贡献 1 在现实世界中可能是实用的,尽管我并不完全确定。多线性映射目前效率很低,但这里使用的构造有些简化。由于 2 使用 FHE,因此尚不实用。由于 3 使用 2 和其他一些重量级加密,因此在当时也不实用。
我仍然想知道我是否应该对此添加评论,因为我对密码学的了解非常有限。关于拼图混淆的论文使用了一个名为功能加密的术语,这意味着混淆器可以使用手中的私钥设计一些处理加密数据的功能。而没有私钥的人可以对加密数据使用这些功能,但仍然对数据一无所知。
例如,混淆器设计了一个函数 plus1 满足:
plus1(加密(x)) = 加密(x+1)
攻击者会知道如果他使用 plus1,他可以将 x 增加 1,但他对 x 的值一无所知。
现在使用拼图混淆,给定一个程序 P 和一些输入 a,混淆器将混淆的程序 p 加密为 p = encrypt(P),然后设计一个函数 F,输入是一些对 (p, a) 满足:
F(p,a) = 解密(p)(a) = P(a)
(注意 F 满足上面的等价但 F 的设计并不是那么简单),这意味着攻击者总是可以使用 F 和 p 来获得输出 P(a),但他对 P 一无所知。