论文部分内容阅读
混淆(Obfuscation)问题近年来是密码学研究的热点和难点之一。混淆来源于程序混淆,最开始是为了保护软件的知识产权,防止软件遭到静态分析、篡改或逆向工程攻击。近年来经过Barak,Canetti,Goldwasser等密码学专家的研究和讨论,混淆已发展为特有的密码学问题。混淆的目的在于通过一定的技术手段使得原有程序变得“不可识别”,但同时保持原有程序的功能不变。目前,混淆在多方面取得了重要进步,比如说使用点函数(Point Function)构造的混淆、概率加密和混淆之间的联系、基于不同黑盒特性(Black-Box Property)的混淆安全性的分析、对普遍功能的混淆和特殊功能的混淆的可能性的讨论等。以上的结论使得混淆在密码学中的研究主要分为以下两个方面:一、讨论点函数和多比特输出点函数(Point Functions with Multibit Output)构造简单算法的抽象混淆的研究;二、讨论复杂算法协议和混淆的结合,构造特殊功能(Special Functionality)的安全混淆,比如说重加密、加密签名的安全混淆、功能性重加密等。本文的主要成果如下:一、介绍了代码混淆的概念、目的和几种方法,包括外形混淆、数据混淆、预防混淆、控制结构混淆等几种结构和具体方法;二、介绍了可证明安全的基本思想、困难问题假设、数字签名方案和公钥加密方案的安全模型,以及标准模型方法和随机预言机模型方法;三、介绍了密码学上的混淆的应用范围、三种特性,介绍了图灵机混淆器和回路混淆器的定义,并比较了两种混淆器的异同和相互关系;四、总结了已有的特殊功能的安全混淆,包括重加密安全混淆、加密签名安全混淆、功能性重加密和抗共谋混淆和它们的研究背景、具体算法和安全性分析;五、提出了一种将严格结构保留签名的特殊代理签名方案,在未知第三方是否可信的情况下,在代理签名过程中的密钥传输阶段对密钥进行安全混淆,成功地防止签名代理过程中密钥被窃听或者欺骗,保障了代理签名的顺利实施。我们在判定性线性(DL)假设和判定双线性Diffie-Hellman(DBDH)假设,并联系平均情况下的虚拟黑盒特性进行证明。这个混淆程序把单一用户的加密签名的安全混淆扩展到多用户设置的情况,并且它的安全性将不受密文数和用户数量的影响。它既保留了严格结构保留签名的私钥生成模式的优势和其高效的运算效率,又在第三方可能不可信问题上得到一种解决方案,降低了第三方共谋攻击的威胁。