论文部分内容阅读
移动代码是一种新的适合大规模分布式应用的设计范型,在主动网络、移动代理、电子商务等方面有广阔的应用前景。其安全性是一个亟需解决的问题,如何保护移动代码不被恶意主机篡改和所携带的信息不被泄漏是研究的难点。移动代码安全威胁可归纳为机密性攻击、完整性攻击、可用性拒绝和验证风险四大类。其中,机密性安全技术和完整性安全技术是解决机密性攻击和完整性攻击的两个重要的安全技术,可以解决移动代码的篡改问题和所携带秘密信息的泄漏问题。保护移动代码的安全技术,最初采用防篡改硬件的方法,对基于密码学的纯软件保护的方法研究较少。防篡改硬件方法的实质是数据加密,它存在如下缺点:系统扩展性差;密钥的安全更换非常困难;节点主机必须调用硬件保护驱动模块及可信软件保护模块;硬件也有可能被攻破从而泄漏用户的秘密信息;必须相信硬件制造商。移动代码的加密理论与方法是当前纯软件保护方法研究的一个重要方向,它包括保密电路计算、混淆算法和同态加密。它们是对移动代码进行加密变换的解决方案。保密电路计算是基于布尔电路复杂性的盲计算方案,可以提供对代码算法和秘密信息的机密性保护,是许多安全方案的基础,缺点是要在通信双方进行多轮的交互。混淆算法是一种可以用于对移动代码安全和软件知识产权进行保护的程序变换技术。使转换后的程序或其反编译结果难以被理解。混淆算法的性能和安全性度量的基础是软件时间和空间复杂性度量技术。但抗攻击时间较难估计,对携带的秘密信息不能有效保护。同态加密是基于数学难题的计算复杂性理论的密码学技术。但它不同于传统的数据加密。它允许在没有解密算法和解密密钥的条件下对加密的数据进行运算,解密后的结果和在明文状态下直接计算的结果相同。基于同态加密的移动代码保护方案是移动代码纯软件保护研究的一个重要研究方向。它在如下的两个假设前提下形成了两个研究方向和解决方案:1)大粒度假设,假设移动代码是由函数构成的;如果能对所有类型的函数进行同态加密计算,移动代码的保密计算问题将最终解决。但函数种类繁多,要找到一个通用的函数加密计算方案,其困难和挑战是巨大的。2)小粒度假设,假设移动代码是由算术运算(+,-,×,÷)、关系运算(<,>,=)、逻辑运算(and, or, not)和位运算(与,或,非,移位)构成。相应地,如果有一个安全的同态加密方案能实现所有运算的加密计算,则移动代码的保密计算问题也将彻底解决。但找到一个对上述运算同时具有同态加密能力的同态加密算法是相当困难的。对同态加密和基于同态加密的移动代码安全解决方案的研究还处于起步阶段,存在以下不足:同态加密只限于整数环的加密;被加密的函数限于有理多项式函数类;被加密函数的多项式骨架信息仍为明文;对实数的算术运算加密存在已知明文攻击的安全问题、小数和正负信息的泄漏问题、减法加密的受限问题、不能用于非交互保密计算的问题等;对关系运算加密的计算和通信开销比较大。完整性检测易被删除和构造困难。本文针对以上不足进行了如下研究:实数域同态加密理论与技术;非交互初等函数保密计算;多项式骨架信息的隐藏问题;安全无信息泄漏的实数定义域算术运算的加密计算;公平高效安全的关系运算的加密计算;基于密码学的完整性检测协议与算法。取得了如下的研究成果和主要创新点:1)基于修改的ElGamal提出了实数定义域的公钥同态加密算法。该算法可以抵抗已知明文攻击、不会泄漏小数和正负的信息、减法加密不受限制、可用于非交互保密计算。2)基于以上的同态加密算法和泰勒级数将加密的函数类别从正整数定义域的有理多项式函数扩大到实数定义域的初等函数,并实现了非交互初等函数加密计算。3)提出了通过增加加密的冗余项和对指数加密的幂同态加密概念及算法隐藏多项式骨架信息的两种解决方案,并且实现了这两种方案。4)基于费马小定理提出了实数定义域的算术同态加密算法。该算法可以抵抗已知明文攻击、不会泄漏小数和正负的信息、减法加密不受限制、可用于非交互保密计算。5)提出了公平高效安全的实数比较协议和算法,降低了加密的关系运算的计算和通信开销。6)提出了加密的函数嵌入算法用于移动代码的完整性检测。该方案易于构造和实现,同时由于嵌入的函数与正常的计算函数耦合在一起,若被删除则正常的计算功能也将遭到破坏。