程序混淆是现代密码学的崭新领域,其研究目标是针对我们感兴趣的程序,构造出功能上与其相同的程序,使得任何敌手在获得新程序代码之后,除了能使用该程序的功能外不能从程序代码中学到任何新知识。程序混淆在密码学理论、密码工程、软件安全等领域具有重要理论与应用价值。本项目拟利用混淆理论构造同时具有KDM和弱密钥等安全性的公钥加密方案;针对若干重要密码方案协议构造使用防篡改硬件的专门混淆方案,使得混淆后程序/电路在对防篡改硬件要求、软硬件交互次数、混淆后程序/电路的并行性、电路深度等方面优于现有通用构造;结合实际敌手实施旁路攻击和物理攻击的技术特点,提出受限敌手模型以及对应的通用电路混淆方案;提出标准模型下非延展混淆方案。研究成果在发展和丰富现代密码学理论、设计可证抗旁路攻击和物理攻击的密码电路、编制抗反向工程软件等方面无疑具有重要意义和价值。
Indistinguishability Obfuscation;Differing-input Obfuscation;Zero-Knowledge Proofs;;
本项目研究程序混淆若干关键问题,计划对若干密码程序提出混淆方案、混淆在密码学中应用、受限敌手下的混淆和不可延展混淆等领域开展研究。项目实施于2012年1月至2014年12月,研究内容基本按照计划书执行。在Garg等人[GGH+13]提出第一个通用不可区分混淆方案后,密码学界混淆研究的核心领域之一是混淆在密码学中的应用,我们因此将工作重心向此进行一定调整,工作围绕对几种重要密码程序的混淆、混淆在密码学中应用等领域展开。 在本项目支持下,截至2014年12月,我们已取得一些较显著进展,在国际重要的密码和信息安全会议上发表论文5篇,2篇论文正在审理之中,参加国内外学术交流8次。主要研究成果如下 出于理论和实际保护隐私的需要,我们研究了零知识证明协议中证明者和验证者程序的可混淆性,证明了证明者程序在ACVBB定义下的不可混淆性和Blum对Hamiltonian-cycle问题证明协议中验证者程序在VBB定义下的可混淆性,该结论丰富了VBB和ACVBB混淆理论,解决了相应隐私保护问题。 知识的零知识论证是密码学中极为重要的领域,降低论证协议的轮数是该领域中核心研究方向之一。我们考虑具有严格多项式时间模拟和提取的论证协议,应用混淆理论提出多种非黑盒提取技术,使用该技术降低了知识的零知识论证的轮数,显著的促进了零知识理论的发展。 此外,本项目在构造公开币知识的零知识论证、常数轮精确零知识、具有短语搜索功能的可搜索加密领域等领域均取得较好进展。 展望后续工作,当前程序混淆研究的显著进步很大程度归于[GGH+13]以及后续工作提出的通用不可区分混淆,但现有构造使用的复杂性假设仍不标准、安全性归约十分复杂,因此未来研究的根本课题之一仍是在相对合理假设下构造通用混淆,另一十分重要的方向是研究如何应用混淆解决更多的密码学问题。