您一定已经在网上报纸上听说过它。加州大学洛杉矶分校的一些研究人员声称通过“数学拼图”在软件混淆方面取得了突破。

他们的科学论文可以在IACR eprint网站上找到。

有人可以总结一下论文的真正内容(确实是值得的)吗?

评论

为什么不阅读论文?

无论如何,我怀疑它是否有任何实际应用,但从理论上讲可能会很有趣。

@锑:我在上面!但是,这是一个漫长的过程……而且我不是电路复杂性理论的专家。因此,如果有人在我之前完成并给出完美的解释,我会很高兴。而且,如果我在给出任何答案之前完成了该操作,那么我将回答自己的问题。

相关:crypto.stackexchange.com/questions/9497/…

迈凯佐射门好!我应该看一下Crypto SE ...因此,似乎它试图使软件尽可能接近黑盒分析。我将尝试更详细地研究实践方面(可实现性等)。如果我发现有意思要说的话,我会在这里写一个答案(不过以“逆向工程”的方式)。

#1 楼

研究的三个主要贡献


针对安全性基于所谓的“多线性拼图”(多线性映射的简化变体)的NC1电路提议的可区分性混淆。 />使用全同态加密将贡献与1配对,将对所有电路造成难以区分的混淆。
将2与公钥加密和非交互式零知识证明结合起来,并对所有电路进行功能性加密。我相信在此功能加密之前不可能对所有电路进行加密。

因此,让我们依次研究一下。

不可分辨性混淆(贡献1和2)
从本文中


重要的是要注意,与基于模拟的模糊化定义不同,现在还不能立即
弄清不可混淆性混淆器的用途。难区分混淆器的最强哲学依据也许是来自Goldwasser和Rothblum [GR07]的工作,他们证明了(有效计算)不可混淆混淆器达到了最佳可能混淆[GR07]的概念: ,最好的混淆器可确保其输出隐藏在输入电路中,与任何大小的电路一样多。


,因此,这是对这种混淆性的主要贡献本文将展示一种适用于所有电路的IO结构,然后将其与其他一些东西配对以对任何电路进行功能加密。

请注意,随着时间的流逝,IO的用途只会越来越大合而为一。正如同一位作者的另一篇论文所见,希望随着新结构的提出,它们将变得更加实用。

功能加密(贡献3)
在此工作之前,FE仅适用于小型电路。使用1和2以及其他一些加密原语,作者能够在所有电路上构建FE。这是非常重要的结果。

这对Anti-RE意味着什么?
看起来,难以区分的混淆本身对反反向工程的意义很小。但是,任何电路上的FE都可能很重要。这是原因。 FE使计算结果为纯文本格式。与将结果加密的完全同态加密(FHE)或如果需要多个参与方(但可以具有纯文本结果)的“多方计算”进行比较。因此,我可以给您一个密钥,该密钥将使您能够例如对我发送给您的任何数据进行AES解密。但是,您永远不会知道AES密钥。有些技术还可以让您隐藏函数(而不仅仅是输入)。

想象一下,如果您有能力允许某人仅对我发送的私有数据计算特定函数,您仍然可以得到纯文本结果。此外,该功能是隐藏的,因此他们不能对功能进行反向工程。那就是有限元的贡献,而有限元在任何电路上的工作就是实现这一点的。我不太确定。目前,多线性贴图的效率很低,但是此处使用的结构有所简化。由于2使用FHE,因此尚不实用。由于3使用2和其他一些重量级的加密货币,因此在当时还不实用。

#2 楼

我仍然想知道是否应该对此发表评论,因为我对密码学的知识极为有限。关于拼图混淆的论文使用了一个称为功能加密的术语,这意味着混淆器可以使用私钥来设计一些对加密数据起作用的功能。没有私钥的人可以在加密数据上使用这些功能,但对数据一无所知。

例如,混淆器设计了一个满足以下条件的函数plus1:


plus1(encrypted(x))=加密的(x + 1)


攻击者将知道,如果他使用plus1,他可以将x加1,但对x的值一无所知。

现在,对于拼图混淆,给定程序P有一些输入a,混淆器会将加密后的程序p加密为p = crypto(P),然后设计输入为某对的函数F( p,a)满足:


F(p,a)=解密(p)(a)= P(a)


(请注意,F满足上面的等效条件,但是F的设计并非如此),这意味着攻击者可以始终使用F和p来获取输出P(a),但他对P一无所知。 />