国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于安全策略的分布式農(nóng)產(chǎn)品數(shù)字認證

2011-04-23 03:39孫昌霞車銀超郭玉峰龐曉丹馬新明張龍龍
河南農(nóng)業(yè)大學學報 2011年2期
關(guān)鍵詞:加密分布式長度

孫昌霞,車銀超,郭玉峰,龐曉丹,馬新明,張龍龍

(1.河南農(nóng)業(yè)大學信息與管理科學學院,河南鄭州450002;2.西安電子科技大學通信工程學院,陜西西安710071)

目前中國已進入建設(shè)現(xiàn)代化農(nóng)業(yè)的關(guān)鍵時期,農(nóng)業(yè)信息化技術(shù)不斷應用于農(nóng)業(yè)發(fā)展的各個領(lǐng)域,其中較為熱門的是分布式無公害農(nóng)產(chǎn)品數(shù)字認證系統(tǒng)[1].分布式無公害農(nóng)產(chǎn)品數(shù)字認證系統(tǒng)是為了實現(xiàn)無公害農(nóng)產(chǎn)品認證過程的規(guī)范性和認證數(shù)據(jù)資源共享而建立的重要工程,以申報企業(yè)的產(chǎn)地、產(chǎn)品檔案數(shù)據(jù)為基礎(chǔ),圍繞“申報、審查認證、認證數(shù)據(jù)資源共享”3條主線,對產(chǎn)地評價、產(chǎn)品檢測、申報、審查、監(jiān)管、查詢等關(guān)鍵環(huán)節(jié)上實現(xiàn)標準化、數(shù)字化、信息化.同時,從技術(shù)的可獲得性、經(jīng)濟的可承受性和實施的合理性出發(fā),以數(shù)據(jù)庫技術(shù)和分布計算技術(shù)為支撐,構(gòu)建便于申報者申請、職能部門監(jiān)管和認證信息共享的分布式農(nóng)產(chǎn)品數(shù)字認證系統(tǒng).無公害農(nóng)產(chǎn)品數(shù)字認證系統(tǒng)是一個分布式結(jié)構(gòu)系統(tǒng),如圖1所示,從而實現(xiàn)無公害農(nóng)產(chǎn)品認證全流程、全方位的電子化管理.在分布式環(huán)境下,分布節(jié)點與認證中心節(jié)點間存在大量的實時數(shù)據(jù)交互.目前大部分系統(tǒng)都是分布節(jié)點與中心節(jié)點之間的數(shù)據(jù)以明文方式進行通信,通信數(shù)據(jù)存在被攻擊者竊聽、篡改、假冒等安全隱患,需引入密碼學技術(shù)提高系統(tǒng)的安全性.

圖1 分布式拓撲結(jié)構(gòu)Fig.1 Distributed topological construction

隨著計算機網(wǎng)絡技術(shù)的發(fā)展,如何安全、高效、完整地傳遞數(shù)據(jù)信息變得日益重要,數(shù)字簽名已成為了信息世界認證的重要工具,并為信息安全、身份認證、數(shù)據(jù)完整性、不可否認性及匿名性等方面提供了重要保證,是電子商務與網(wǎng)絡安全的關(guān)鍵技術(shù)之一.為了進一步實現(xiàn)傳輸數(shù)據(jù)的保密性,需要使用提出的簽密技術(shù)[2],其主要思想是把加密和簽名的功能結(jié)合起來,即實現(xiàn)數(shù)據(jù)的保密性和認證性.與傳統(tǒng)的“先簽名再加密"的方案相比較,簽密技術(shù)有較少的計算量和較低的通信成本、并行密碼操作、較高的安全性、簡化了同時實現(xiàn)保密和認證的密碼協(xié)議的設(shè)計.簽密技術(shù)已經(jīng)廣泛地應用于現(xiàn)實生活中,如密鑰分配[3]、電子支付[4,5]、防火墻[6]和密鑰管理[7]、電子投標和電子投票等.本研究針對目前大部分無公害農(nóng)產(chǎn)品數(shù)字認證系統(tǒng)中存在的安全問題,采用 RSA-TBOS 簽密方案[8](Two Birds One Stone:Signcryption using RSA),使用RSA非對稱加密雙層包裹分布節(jié)點與認證中心節(jié)點之間的數(shù)據(jù),實現(xiàn)同時對傳輸數(shù)據(jù)的簽名與加密.當中心節(jié)點與分布節(jié)點進行通信時,為防止數(shù)據(jù)的偽造與篡改,對傳輸?shù)臄?shù)據(jù)進行加密,為了提供傳輸數(shù)據(jù)的不可否認性,需要對傳輸中的數(shù)據(jù)進行簽名,為了抵抗重放攻擊,對原始數(shù)據(jù)加入隨機數(shù)進行填充,使系統(tǒng)在保證效率不明顯降低的前提下提高整個系統(tǒng)的安全性與可用性.

1 RSA-TBOS簽密方案

假設(shè)k是一個偶正整數(shù).分布節(jié)點A和中心節(jié)點B的 RSA公私鑰參數(shù)分別是[(NA,eA),(NA,dA)][(NB,eB),(NB,dB)],滿足 |NA|=|NB|=k(其中|x|表示x的長度).假設(shè)G和H是2個雜湊函數(shù),滿足:H:{0,1}n+k0→{0,1}k1,(2)G:{0,1}k1→{0,1}n+k0.

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

當分布節(jié)點A給中心節(jié)點B發(fā)送消息M∈{0,1}時,分布節(jié)點執(zhí)行:

(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

當中心節(jié)點B要對來自分布節(jié)點A的密文c解簽密時,中心節(jié)點執(zhí)行:

(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.但這個步驟可能會導致解簽密中的額外步驟.特別地,可能需要執(zhí)行c'eA(mod NA)2次(2個c'相差2k-1).定義另一種在簽密階段進行試錯測試的方案是可能的,這意味著對不同的r值重復簽密步驟1-5直到得到1個c'<NB.

2 方案的設(shè)計與實現(xiàn)

RSA-TBOS簽密方案使用 Java[9]進行實現(xiàn),由于算法設(shè)計的復雜性,這里只對關(guān)鍵部分進行說明.簽密模塊的主類有 2個:RSAUtil和 Tbos.RSAUtil提供了生成公私鑰的方法,Tbos提供了對信息進行加密的方法.其類設(shè)計如圖2所示.

Java中對RSA加密算法提供了相應的API可供使用,方便了運用RSA進行簽密的編程開發(fā).

首先根據(jù)算法要求,對參數(shù)進行選擇.經(jīng)過多次實驗,為了達到安全性和效率的權(quán)衡,取模數(shù)N為1 024位.即

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

需要實現(xiàn)的函數(shù)是4個:

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

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

(3)RSA算法實現(xiàn)

(4)函數(shù):rr←{0,1}k0

算法描述中k=n+k0+k1=128 byte=1 024 bit,參數(shù)中的2個散列函數(shù)H和G,考慮安全性和實現(xiàn)的方便,均采用SHA-512進行實現(xiàn),函數(shù)的參數(shù)值為n+k0=k1=512 bit=64 byte,其中n為明文的長度,k0為隨機數(shù)填充的長度.根據(jù)不同的實際需要,可以自行定義n和k,兩者之和為64字節(jié).為了提高數(shù)據(jù)加密的效率(長數(shù)據(jù)需要分段加密)應使原始數(shù)據(jù)長度n盡量大,隨機數(shù)填充數(shù)據(jù)的長度k0盡量小.眾所周知,RSA算法具有很高的安全性,但運算速度較低.針對這個問題,為了提高數(shù)據(jù)加密的效率,選擇n的長度為48 byte,隨機數(shù)填充的長度為16 byte,16 byte長度的隨機填充已經(jīng)能夠很好地提高數(shù)據(jù)的不可預測性了,即n+k0=48 byte+16 byte=64 byte.另外,在采用RSA對數(shù)據(jù)進行加密時,數(shù)據(jù)的長度不能超過模數(shù)N=1 024 bit,這就需要對數(shù)據(jù)進行分組加密.由于取n為48 byte,以48 byte長度對數(shù)據(jù)進行分組,再對每組數(shù)據(jù)分別加密即可.

簽密模塊完成后應對其封裝,只保留相應的接口供使用者調(diào)用.

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

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

3)RSAUtil.getRSAModulus();用于獲取模數(shù)N的值

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

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

3 系統(tǒng)的WebService集成

對于分布式農(nóng)產(chǎn)品數(shù)字認證系統(tǒng),中心節(jié)點與分布節(jié)點之間的通信是通過WebService[10]技術(shù)實現(xiàn)的.當簽密模塊完成后,需要對系統(tǒng)進行Web-Sevice集成,通過WebService調(diào)用簽密模塊來完成數(shù)據(jù)的簽密通信(圖3).

圖3 基于WebService技術(shù)的系統(tǒng)集成Fig.3 System Integration based on WebService technology

將封裝好的簽密模塊生成的jar文件放入無公害農(nóng)產(chǎn)品系統(tǒng)存放jar包的lib文件夾中,系統(tǒng)即可調(diào)用簽密模塊提供的接口.

當中心節(jié)點與某一分布節(jié)點之間需要進行通信時,中心節(jié)點通過WebService發(fā)送數(shù)據(jù),在發(fā)送數(shù)據(jù)時,先查找節(jié)點數(shù)據(jù)庫,獲得自身的私鑰及接收方的公鑰,通過調(diào)用加密模塊所提供的加密接口對數(shù)據(jù)進行加密.公私鑰的存儲是在系統(tǒng)布署時完成的,系統(tǒng)布署時,節(jié)點通過簽密模塊提供的RSAUtil接口生成公私鑰對存入數(shù)據(jù)庫,并通過WebService將公鑰公布給其它節(jié)點.同時發(fā)現(xiàn)其它節(jié)點通過WebService公布的公鑰,將其保存至數(shù)據(jù)庫,供以后通信使用.

4 性能測試

采用黑盒測試對方案進行測試與驗證,通過測試數(shù)據(jù)分析系統(tǒng)所達到的要求,檢查系統(tǒng)可能存在的錯誤與漏洞.主要測試部分有:數(shù)據(jù)簽密與解密;數(shù)據(jù)加密的抗碰撞性;數(shù)據(jù)加密的效率;數(shù)據(jù)加密后的網(wǎng)絡傳輸.

通過測試方案對模塊的功能進行大量測試,系統(tǒng)并未出現(xiàn)異常,可以正常運行.加密模塊對用戶透明,用戶看不到數(shù)據(jù)的加密過程,但數(shù)據(jù)傳輸?shù)陌踩缘玫搅吮WC,文獻[8]保證其不可偽造性.加入簽密模塊后,由于簽密運算花費時間而造成系統(tǒng)數(shù)據(jù)發(fā)送、接收的等待,從而使系統(tǒng)傳輸數(shù)據(jù)的效率有所降低,但本系統(tǒng)中要傳遞的數(shù)據(jù)量很小,如表1所示,在權(quán)衡系統(tǒng)的安全性和效率,經(jīng)測試數(shù)據(jù)的結(jié)果分析,是在可以接受的范圍之內(nèi).

表1 系統(tǒng)數(shù)據(jù)測試Table1 The test of system data

結(jié)果分析表明,當所要加密的數(shù)據(jù)量增大時,加密所需的時間也會迅速上升,但針對本系統(tǒng)所要傳遞的數(shù)據(jù)量很小,而又要求有較高級別的安全性的情況下是可行的.

5 系統(tǒng)的安全性分析

本系統(tǒng)由文獻[8]知能達到安全性要求:適應性選擇密文的不可區(qū)分性及適應性選擇消息攻擊下不可偽造性,以此來滿足系統(tǒng)的安全性.

適應性選擇密文的不可區(qū)分性(INDCCA2):文獻[8]提供了方案的可證明安全的具體過程,分節(jié)點與中心節(jié)點之外的第三方不可能得到雙方通信的數(shù)據(jù).

適應性選擇消息攻擊下不可偽造性(UNFACMA):在計算上[8],分節(jié)點與中心節(jié)點之外的第三方(攻擊者)產(chǎn)生一個合法的簽名是不可行的,同時也保證了雙方不可否性.

抗重放攻擊:由于使用隨機數(shù)對數(shù)據(jù)進行隨機的填充,以及2個哈希函數(shù)的抗碰撞性,使方案具有抵抗重放攻擊.

6 結(jié)語

本研究結(jié)果實現(xiàn)了農(nóng)業(yè)信息化技術(shù)與密碼學技術(shù)的結(jié)合,在傳統(tǒng)的無公害農(nóng)產(chǎn)品數(shù)字認證系統(tǒng)中增加了RSA-TBOS數(shù)字簽密模塊,進行方案中具體參數(shù)的設(shè)置與改進,系統(tǒng)由Java語言實現(xiàn),并進行基于WebSevice技術(shù)的系統(tǒng)集成,最終達到一定的安全性與效率,使系統(tǒng)能有效地提供數(shù)據(jù)的機密性、完整性、不可否認性和不可偽造性,在現(xiàn)實的分布式無公害農(nóng)產(chǎn)品數(shù)字認證通信中具有較高的實用價值.將來工作著眼于此系統(tǒng)的推廣使用,進一步改進參數(shù)的設(shè)置提高簽密模塊的速度,加快整個系統(tǒng)的工作效率.

[1] 席 磊,張 浩,郭 偉,等.分布式無公害農(nóng)產(chǎn)品數(shù)字認證系統(tǒng)的構(gòu)建與實現(xiàn)[J].農(nóng)業(yè)工程學報,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,F(xiàn)ENG 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程序設(shè)計與開發(fā)[M].北京:電子工業(yè)出版社,2010.

[10]蔡月茹,柳西玲.WebService基礎(chǔ)教程[M].北京:清華大學出版社,2005.

猜你喜歡
加密分布式長度
1米的長度
一種基于熵的混沌加密小波變換水印算法
分布式光伏熱錢洶涌
愛的長度
怎樣比較簡單的長度
分布式光伏:爆發(fā)還是徘徊
認證加密的研究進展
基于DDS的分布式三維協(xié)同仿真研究
不同長度
基于ECC加密的電子商務系統(tǒng)
上蔡县| 石河子市| 朝阳区| 平果县| 同德县| 阳城县| 黔西| 进贤县| 乾安县| 黄平县| 响水县| 永川市| 邯郸市| 东源县| 故城县| 奉节县| 西安市| 辽阳县| 湘潭县| 读书| 祁东县| 昭觉县| 共和县| 临沧市| 田阳县| 施秉县| 贵港市| 广丰县| 泰顺县| 和田市| 蓬溪县| 平南县| 四子王旗| 威信县| 绩溪县| 区。| 泸州市| 庆安县| 洪泽县| 菏泽市| 鲁山县|