基于安全策略的分布式农产品数字认证

2011-04-23 03:39孙昌霞车银超郭玉峰庞晓丹马新明张龙龙
河南农业大学学报 2011年2期
关键词:加密分布式长度

孙昌霞,车银超,郭玉峰,庞晓丹,马新明,张龙龙

(1.河南农业大学信息与管理科学学院,河南郑州450002;2.西安电子科技大学通信工程学院,陕西西安710071)

目前中国已进入建设现代化农业的关键时期,农业信息化技术不断应用于农业发展的各个领域,其中较为热门的是分布式无公害农产品数字认证系统[1].分布式无公害农产品数字认证系统是为了实现无公害农产品认证过程的规范性和认证数据资源共享而建立的重要工程,以申报企业的产地、产品档案数据为基础,围绕“申报、审查认证、认证数据资源共享”3条主线,对产地评价、产品检测、申报、审查、监管、查询等关键环节上实现标准化、数字化、信息化.同时,从技术的可获得性、经济的可承受性和实施的合理性出发,以数据库技术和分布计算技术为支撑,构建便于申报者申请、职能部门监管和认证信息共享的分布式农产品数字认证系统.无公害农产品数字认证系统是一个分布式结构系统,如图1所示,从而实现无公害农产品认证全流程、全方位的电子化管理.在分布式环境下,分布节点与认证中心节点间存在大量的实时数据交互.目前大部分系统都是分布节点与中心节点之间的数据以明文方式进行通信,通信数据存在被攻击者窃听、篡改、假冒等安全隐患,需引入密码学技术提高系统的安全性.

图1 分布式拓扑结构Fig.1 Distributed topological construction

随着计算机网络技术的发展,如何安全、高效、完整地传递数据信息变得日益重要,数字签名已成为了信息世界认证的重要工具,并为信息安全、身份认证、数据完整性、不可否认性及匿名性等方面提供了重要保证,是电子商务与网络安全的关键技术之一.为了进一步实现传输数据的保密性,需要使用提出的签密技术[2],其主要思想是把加密和签名的功能结合起来,即实现数据的保密性和认证性.与传统的“先签名再加密"的方案相比较,签密技术有较少的计算量和较低的通信成本、并行密码操作、较高的安全性、简化了同时实现保密和认证的密码协议的设计.签密技术已经广泛地应用于现实生活中,如密钥分配[3]、电子支付[4,5]、防火墙[6]和密钥管理[7]、电子投标和电子投票等.本研究针对目前大部分无公害农产品数字认证系统中存在的安全问题,采用 RSA-TBOS 签密方案[8](Two Birds One Stone:Signcryption using RSA),使用RSA非对称加密双层包裹分布节点与认证中心节点之间的数据,实现同时对传输数据的签名与加密.当中心节点与分布节点进行通信时,为防止数据的伪造与篡改,对传输的数据进行加密,为了提供传输数据的不可否认性,需要对传输中的数据进行签名,为了抵抗重放攻击,对原始数据加入随机数进行填充,使系统在保证效率不明显降低的前提下提高整个系统的安全性与可用性.

1 RSA-TBOS签密方案

假设k是一个偶正整数.分布节点A和中心节点B的 RSA公私钥参数分别是[(NA,eA),(NA,dA)][(NB,eB),(NB,dB)],满足 |NA|=|NB|=k(其中|x|表示x的长度).假设G和H是2个杂凑函数,满足:H:{0,1}n+k0→{0,1}k1,(2)G:{0,1}k1→{0,1}n+k0.

其中 k=n+k0+k1,是明文长度,2k0和 2k1是可忽略的量.

当分布节点A给中心节点B发送消息M∈{0,1}时,分布节点执行:

(1)r←(0,1)k0

(2)ω←H(M‖f)

(3)s←G(ω)⊕(M‖r)

(4)If s‖ω >NAgoto1

(5)c'←(s‖ω)dA(mod NA)

(6)If c'> NB,c'←c'-2k-1

(7)c←c'eB(mod NB)

(8)Send c to B

当中心节点B要对来自分布节点A的密文c解签密时,中心节点执行:

(1)c'←cdB(mod NB)

(2)If c'> NA,reject

(3)μ←c'eA(mod NA)

(4)Parseμas s‖ω

(5)M‖r←G(ω)⊕s

(6)If H(M‖r)=ω,return M

(7)c'←c'+2k-1

(8)If c'> NA,reject

(9)μ←c'eA(mod NA)

(10)Parse μ as s‖ω

(11)M‖r←G(ω)⊕s

(12)If H(M‖r)≠ω,reject

(13)Return M

(算法中的“‖”表示比特串的链接,“⊕”表示比特串的按位异或)

在签密过程中的第6步是为了确保c'<NB.如果最初c'不能通过该测试,那么有NA>c'>NB.因为NB和NA都有k比特,可以推出c'也是k比特,所以赋值c'←c'-2k-1等于将c'的最高位比特去掉.这样就要求c'<NB.但这个步骤可能会导致解签密中的额外步骤.特别地,可能需要执行c'eA(mod NA)2次(2个c'相差2k-1).定义另一种在签密阶段进行试错测试的方案是可能的,这意味着对不同的r值重复签密步骤1-5直到得到1个c'<NB.

2 方案的设计与实现

RSA-TBOS签密方案使用 Java[9]进行实现,由于算法设计的复杂性,这里只对关键部分进行说明.签密模块的主类有 2个:RSAUtil和 Tbos.RSAUtil提供了生成公私钥的方法,Tbos提供了对信息进行加密的方法.其类设计如图2所示.

Java中对RSA加密算法提供了相应的API可供使用,方便了运用RSA进行签密的编程开发.

首先根据算法要求,对参数进行选择.经过多次实验,为了达到安全性和效率的权衡,取模数N为1 024位.即

k=n+k0+k1=1 024 bit=128 byte

需要实现的函数是4个:

(1)H:{0,1}n+k0→{0,1}k1

(2)G:{0,1}k1→{0,1}n+k0

(3)RSA算法实现

(4)函数:rr←{0,1}k0

算法描述中k=n+k0+k1=128 byte=1 024 bit,参数中的2个散列函数H和G,考虑安全性和实现的方便,均采用SHA-512进行实现,函数的参数值为n+k0=k1=512 bit=64 byte,其中n为明文的长度,k0为随机数填充的长度.根据不同的实际需要,可以自行定义n和k,两者之和为64字节.为了提高数据加密的效率(长数据需要分段加密)应使原始数据长度n尽量大,随机数填充数据的长度k0尽量小.众所周知,RSA算法具有很高的安全性,但运算速度较低.针对这个问题,为了提高数据加密的效率,选择n的长度为48 byte,随机数填充的长度为16 byte,16 byte长度的随机填充已经能够很好地提高数据的不可预测性了,即n+k0=48 byte+16 byte=64 byte.另外,在采用RSA对数据进行加密时,数据的长度不能超过模数N=1 024 bit,这就需要对数据进行分组加密.由于取n为48 byte,以48 byte长度对数据进行分组,再对每组数据分别加密即可.

签密模块完成后应对其封装,只保留相应的接口供使用者调用.

1)RSAUtil.getRSAPublicKey();用于生成公钥

2)RSAUtil.getRSAPrivateKey();用于生成私钥

3)RSAUtil.getRSAModulus();用于获取模数N的值

4)Tbos.encrypt(String data,Key aPrivateKey,Key bPublicKey);用于加密字符串明文

5)Tbos.decrypt(String data,Key aPublicKey,Key bPrivateKey);用于解字符串密文

3 系统的WebService集成

对于分布式农产品数字认证系统,中心节点与分布节点之间的通信是通过WebService[10]技术实现的.当签密模块完成后,需要对系统进行Web-Sevice集成,通过WebService调用签密模块来完成数据的签密通信(图3).

图3 基于WebService技术的系统集成Fig.3 System Integration based on WebService technology

将封装好的签密模块生成的jar文件放入无公害农产品系统存放jar包的lib文件夹中,系统即可调用签密模块提供的接口.

当中心节点与某一分布节点之间需要进行通信时,中心节点通过WebService发送数据,在发送数据时,先查找节点数据库,获得自身的私钥及接收方的公钥,通过调用加密模块所提供的加密接口对数据进行加密.公私钥的存储是在系统布署时完成的,系统布署时,节点通过签密模块提供的RSAUtil接口生成公私钥对存入数据库,并通过WebService将公钥公布给其它节点.同时发现其它节点通过WebService公布的公钥,将其保存至数据库,供以后通信使用.

4 性能测试

采用黑盒测试对方案进行测试与验证,通过测试数据分析系统所达到的要求,检查系统可能存在的错误与漏洞.主要测试部分有:数据签密与解密;数据加密的抗碰撞性;数据加密的效率;数据加密后的网络传输.

通过测试方案对模块的功能进行大量测试,系统并未出现异常,可以正常运行.加密模块对用户透明,用户看不到数据的加密过程,但数据传输的安全性得到了保证,文献[8]保证其不可伪造性.加入签密模块后,由于签密运算花费时间而造成系统数据发送、接收的等待,从而使系统传输数据的效率有所降低,但本系统中要传递的数据量很小,如表1所示,在权衡系统的安全性和效率,经测试数据的结果分析,是在可以接受的范围之内.

表1 系统数据测试Table1 The test of system data

结果分析表明,当所要加密的数据量增大时,加密所需的时间也会迅速上升,但针对本系统所要传递的数据量很小,而又要求有较高级别的安全性的情况下是可行的.

5 系统的安全性分析

本系统由文献[8]知能达到安全性要求:适应性选择密文的不可区分性及适应性选择消息攻击下不可伪造性,以此来满足系统的安全性.

适应性选择密文的不可区分性(INDCCA2):文献[8]提供了方案的可证明安全的具体过程,分节点与中心节点之外的第三方不可能得到双方通信的数据.

适应性选择消息攻击下不可伪造性(UNFACMA):在计算上[8],分节点与中心节点之外的第三方(攻击者)产生一个合法的签名是不可行的,同时也保证了双方不可否性.

抗重放攻击:由于使用随机数对数据进行随机的填充,以及2个哈希函数的抗碰撞性,使方案具有抵抗重放攻击.

6 结语

本研究结果实现了农业信息化技术与密码学技术的结合,在传统的无公害农产品数字认证系统中增加了RSA-TBOS数字签密模块,进行方案中具体参数的设置与改进,系统由Java语言实现,并进行基于WebSevice技术的系统集成,最终达到一定的安全性与效率,使系统能有效地提供数据的机密性、完整性、不可否认性和不可伪造性,在现实的分布式无公害农产品数字认证通信中具有较高的实用价值.将来工作着眼于此系统的推广使用,进一步改进参数的设置提高签密模块的速度,加快整个系统的工作效率.

[1] 席 磊,张 浩,郭 伟,等.分布式无公害农产品数字认证系统的构建与实现[J].农业工程学报,2010,26(8):236-242.

[2] ZHENG Y.Digital signcryption or how to achieve cost(signature&encryption)cost(signature)+cost(encryption)[C]//Advances in Cryptology-CRYPTO’97.Berlin:Springer-Vedag,1997:165-179.

[3] CHEN W D,FENG D G.Some application of signcryption schemes to distributed protocols[J].Chinese Journal of Computers,2005,28(9):1421-1430.

[4] PANG X,TAN K L.WANG Y,et al.A secure agent-mediated payment protocol[C]//Proceedings of the 4th International Conference on Information and Communications Security.London:Springer-Verlag,2002:422-433.

[5] WANG Y,LI Y.A new agent-assisted secure payment protoco1[C]//IEEE International Conference on ECommerce Technology.San Diego:Computer Society,2004:244-251.

[6] GAMAGE C,LEIWO J,ZHENG Y.Encrypted message authentication by firewalls[C]//Public Key Cryptography(PKC),Lecture Notes in Computer Science.Berlin:Springer-Verlag,1999:9-81.

[7] LI G,HAN W.A new scheme for key management in ad hoc networks[C]//International Conference on Networking(ICN).Berlin:Springer-Verlag,2005:242-249.

[8] MAO W,MALONE-LEE J.Two birds one stone:signcryption using RSA[S]//HPL-2002-293.Dublin:HP Laboratories Biristol,2002:345-349.

[9] 张晓龙,赵红武.Java程序设计与开发[M].北京:电子工业出版社,2010.

[10]蔡月茹,柳西玲.WebService基础教程[M].北京:清华大学出版社,2005.

猜你喜欢
加密分布式长度
1米的长度
一种基于熵的混沌加密小波变换水印算法
分布式光伏热钱汹涌
爱的长度
怎样比较简单的长度
分布式光伏:爆发还是徘徊
认证加密的研究进展
基于DDS的分布式三维协同仿真研究
不同长度
基于ECC加密的电子商务系统