摘 要:量子计算机技术的进步,使传统公钥密码系统受到了巨大的威胁,特别对基于传统公钥加密的应用系统带来不可估量的损失。与此同时,辫子群公钥密码算法的提出,有效地防止了量子技术对公钥密码的破译而且可以抵抗已知的各种攻击。在研究辫子群密码算法和传统公钥算法、按需装配Agent的概念和系统模型特点的基础上,提出了一种辫子群混合加密方法并有效地应用到按需装配Agent的系统中,从而大大提高了Agent系统的安全性。
关键词:辫子群;公钥密码系统;混合加密;按需装配Agent
公钥密码算法自产生之日起就占据了现代密码学的核心地位,其主要思想是利用数学中的某些难解问题如大整数分解问题、离散对数问题等构造了一些安全性很好的公钥算法。然而,随着现代计算机性能的不断提高,与交换群相关的问题逐渐变得容易处理了。量子计算的最新研究也表明,基于有限域特性的某些难解问题可以用量子的多项式时间算法解决,因此在量子计算机时代,这些密码算法将不再是安全的。于是产生了辫子群的公钥密码算法,它不但可以有效地抵抗量子计算的攻击,还可以抵抗目前已知的各种攻击。
目前学术界对辫子群公钥密码算法的破译没有实质性的进展,但这并不表示在未来的几年或几十年中不会出现有效的攻击手段,因此,本文提出一种辫子群密码与公钥密码相结合的混合密码算法并且将其应用到按需装配Agent的系统中,这样的混合密码算法可以同时保留辫子群公钥加密和传统公钥加密的优点,从而大大地提高密码算法的安全性。同时,将其应用到按需装配Agent的系统中,可增强混合密码算法的实用性。
2 按需装配Agent
2.1 按需装配Agent的特点[3-5]
(1)能够及时实现功能的动态扩展与更新,优化网络计算等资源的配置。
(2)Agent能够在遇到具体问题、需要某个特定功能时才调入具体的功能模块,无需一开始就加载很多可能用不着的功能,具有良好的动态扩展能力,也减少了一些不必要的开销。
(3)为动态环境下复杂问题的解决提供了灵活有效的模式。在动态环境下Agent所遇到的问题很可能是事先无法预料的,而且在类似电子商务的领域中一个Agent的角色还可能发生很大的变化,而按需装配移动Agent在遇到问题时能够进行相应功能扩展,赋予了Agent极大的灵活性,使得Agent能够从容地解决这些问题。
2.2 按需装配Agent系统的实现[3]
Agent的按需装配过程可以用图1来描述,具体过程如下:
(1)当按需装配Agent发现某网络主机需要装载某功能构件时,就会根据服务类别和需要解决的问题向系统的构件管理器提交加载申请;
(2)Agent系统根据请求返回相应功能构件的构件基地路径;
(3)按需装配Agent根据返回的基地路径利用自身的构件装载器动态地将该功能构件加载到本地;
(4)按需装配Agent通过加载到本地的功能构件完成相应的功能。
3 混合加密应用于按需装配Agent系统
通过对目前现有的密码算法和国内外的密码学发展进行研究和分析,提出了基于辫子群和公钥密码RSA相混合的加密算法,并将其应用于按需装配Agent系统中。
3.1 混合密码算法所用符号的意义
PKH:客户机的RSA加密公钥;
SKH:客户机的RSA解密私钥;
PKA:Agent运行机的RSA加密公钥;
SKA:Agent运行机的RSA解密私钥;
PK3:构件服务器的RSA加密公钥;
SK3:构件服务器的RSA解密私钥;
BPKH:客户机的辫子群加密公钥;
BSKH:客户机的辫子群解密公钥;
BPKA:Agent运行机的辫子群加密公钥;
BSKA:Agent运行机的辫子群解密私钥;
BPK3:构件服务器的辫子加密公钥;
BSK3:构件服务器的辫子解密私钥;
SHA-512:Hash函数的信息摘录。
i为标志符(当i=1时,加密顺序为先辫子加密后RSA加密;当i=0时,加密顺序为先RSA加密后辫子加密)。
3.2 混合密码加密过程
(1)客户机、Agent运行机和构件服务器三方分别产生并公布各方的公钥。
(2)如果客户机有任务,先判断当前系统时间的秒钟,如果秒钟为偶数,设i=0;如果秒钟为奇数,设i=1。
(3)客户机根据i的值对BPKA、PKA和BPK3、PK3进行相应顺序的加密,同时将任务用SHA-512进行信息摘录,最后将用公钥加密的结果、SHA-512的摘录和i的值打包分别传给Agent运行机和构件服务器。
(4)Agent运行机和构件服务器同时收到客户机发来的任务,构件服务器等待Agent运行机的响应。Agent运行机首先判断i的值并根据i的值对加密任务用自已的私钥BSKA、SKA进行正确的顺序解密。然后将解密后的任务进行SHA-512摘录提取并与客户机发来的SHA-512的值进行对比,如果相同则执行任务,否则返回步骤(2)。
(5)Agent运行机在执行任务时,首先将i值进行取反,然后用取反的i值对客户机发来的任务用构件服务器的公钥BPK3、PK3进行相应顺序的加密, 同时将任务用SHA-512进行信息摘录,最后将用公钥加密的结果、SHA-512的摘录和i的值一起传给构件服务器来申请生成构件。
(6)当构件服务器收到Agent运行机的信息时,同样需要先判断i值并根据i值用自己的私钥BSK3、SK3对收到的信息(包括从客户机和Agent运行机传来的信息)进行顺序解密。之后,判断客户机和Agent运行机传来的信息的合法性(通过对比解密后直接得到的摘录和任务提取的SHA-512摘录),再对客户机和Agent传来的SHA-512值进行对比判断。如果有一个判断不符合要求,则返回步骤(2),否则进行下一步。
(7)构件服务器首先将从Agent运行机传来的i值取反,之后根据取反后的i值进行相应顺序的加密并用运行机的公钥BPKA、PKA对构件进行加密传输。Agent运行机对收到的构件进行解密并装载,执行任务后,将得到的结果传递给客户机。
3.3 安全性分析
辫子群混合加密下的按需装配Agent系统的安全性分析如下:
(1)混合加密算法的安全机制存在于Agent运行机、构件服务器和客户机中。这样,攻击者就不能从这三者中进行非法攻击。
(2)辫子群混合加密算法采用了判断合法的机制,因此即使Agent运行机是恶意主机或成为傀儡机,也不可以在客户机和构件服务器之间进行欺骗。同时攻击者无论是从客户机和Agent运行机之间进行攻击,还是在客户机和构件服务器之间进行欺骗,都是不可行的。
(3)RSA公钥加密算法可以抵抗非量子计算以外的攻击;辫子群算法可以抵抗量子计算的攻击,因此辫子群和RSA的混合加密算法可以有效地抵抗各种攻击。
(4)将参考文献[6]中的Hash函数使用相对安全的SHA-512函数进行加密,也提高了Agent系统的安全性。
将辫子群和传统加密方法混合加密应用于Agent系统中,有针对性地改进了Agent系统存在的缺点, 提高了系统的安全性。对于一些单纯地只用传统加密算法或者辫子加密算法加密的系统,也可以用混合加密的方法来提高安全性。
参考文献
[1] CHA J C,KO K H,LEE S J,et al.An efficient implementation of braid groups[C].In:Boyd C,ed.Advances in Cryptology-ASIACRYPT2001.LNCS 2048,Berlin:Springer Verlag,2001:144-156.
[2] KO K H,LEE S J,CHEON J H,et al.New public-key cryptosystem using braid groups[C].In:Bellare M,ed. Advances in Cryptology-CRYPTO 2000.LNCS1880,Berlin:Springer-Verlag,2000:166-183.
[3] 黄晓斌,李琦,吴少岩.一种按需装配的Agent[J].计算机科学,2002,29(5):89-91.
[4] 马继业,张仲义,吕永波.按需装配Agent系统的构件安全机制研究[J].中国安全科学学报,2005,15(4):77-80.
[5] Huang Xiaobin,Li Qi,Wu Shaoyan.Assemble-on-demand Agent[A].信息技术与信息网络国际会议ICII2001 Conferences[C].北京:科学出版社,2001:286-291.
[6] Wang Xiaoyun,Yu Hongbo.How to break MD5 and other Hash function[A].EUROCRYPTO′05[C].2005.