999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于JAVA的CBC保密模式應用

2009-04-29 00:00:00
電腦知識與技術 2009年33期

摘要:該文分析了CBC保密模式的原理并基于Java語言完成了相應實現,該模式的優點是引入隨機初始向,避免了ECB的缺點,隱蔽了明文的數據模式,在很大程度上能防止數據篡改。

關鍵詞:CBC;加密;解密;java

中圖分類號:TP309文獻標識碼:A 文章編號:1009-3044(2009)33-9274-02

Implementation of CBC Secrecy Based on Java

CAI Wei

(School of Computer Engineering, Nanjing Institute of Technology, Nanjing 211167, China)

Abstract: In this paper the CBC mode is presented.And then,a experiment based on Java is taked,the result shows the CBC mode can hide data pattern and avoid data juggle.

Key words:CBC; encryption; decryption; java

隨著全球信息化進程的不斷加快,用戶對信息的安全需求日益迫切,解決這一問題的有效的手段是使用現代密碼技術。實用密碼本制的研究基本上沿兩個方向進行,即以RSA為代表的公開密鑰密碼體制和以DES為代表的秘密鑰分組密碼體制。由于Java 在網絡編程中的適用性,以及Java 安全體系結構的日益完善,用Java 來實現信息的加密、解密會具有更好的安全性和應用性。

1 數據加密技術

數據加密技術[2]是實現信息保密性的一種重要手段。最常用的加密算法是“置換表”算法,本文研究的是一種改進的算法,即字/字節循環移位和XOR操作。把一個字或字節在一個數據流內做循環移位,使用多個或變化的方向(左移或右移) ,就可以迅速的產生一個加密的數據流。如果再使用XOR操作,按位做異或操作,那么破譯密碼就相當困難。CBC(Cipher Block Chaining)使用的就是這種思想。

2 CBC工作模式分析與應用

2.1 CBC工作模式

CBC是1980年NBS為DES推出的保密模式[3],NIST也將這個模式列為AES的模式標準。下面是CBC保密模式的加密解密變換公式。

EK(X):基于密鑰K加密明文塊X

E-1K(Y):基于密鑰K解密密文塊Y

P1,…,Pi,明文, 每個Pi是n比特塊, n是密碼的分組長度

C1,…,Ci,密文

加密變換:Ci = EK ( Pi⊕ Ci - 1 )

解密變換:Pi = E-1K (Ci) ⊕ Ci - 1, C0是初始向量

2.2 對稱密鑰的生成

使用CBC模式[4]進行加密解密,首先需要生成密鑰。如果加密和解密的密鑰相同,即為對稱密鑰加密。對稱密鑰加密的經典算法是DES算法。DES主要采用替換和移位的方法加密。其運算速度快,安全性好,適合加密大量數據。

java中對稱密鑰的生成如下:

//使用DESede算法獲取密鑰生成器

KeyGenerator kg = KeyGenerator.getInstance(\"DESede\");

//初始化密鑰生成器,密鑰長度為168

kg.init(168);

//生成密鑰

SecretKey k = kg.generateKey();

//以序列化方式保存密鑰

OutputStream os = new FileOutputStream(\"key.dat\");

ObjectOutputStream bos = new ObjectOutputStream(os);

bos.writeObject(k);

2.3 使用CBC保密模式進行加密、解密

對密文分組的不同形成了不同的加密方式,EBC模式對每個明文分組獨立進行處理。所以,如果明文字節分組相同的話,加密后的密文也是相同的分組。

CBC模式在塊加密法中增加反饋機制,保證即使輸入的明文塊重復出現,這些明文塊也會在加密后得到不同的密文塊。在CBC中,上一次的加密結果反饋到當前塊的加密中,用每個塊修改下一個塊的加密。這樣,每塊密文與相應的當前輸入明文塊相關,與前面的所有明文塊有關。所以,即使明文字節分組相同,加密后的密文也毫無規律。

加密過程如下:

1) 接受兩個輸入:第一個明文塊和初始向量,稱為初始化向量

2) 第一個明文塊和初始化向量用異或運算組合,然后用一個密鑰加密,產生第一個密文塊,第一個密文塊作為下一個明文塊的反饋

3) 將第三個明文塊與第二個密文塊用異或運算組合,然后用相同的密鑰加密,產生第三個密文塊

4) 依此類推,直至加密結束

初始向量作用如下,因為如果兩個密文的頭8個字節相同,并且使用的密鑰相同,則每條密文的開頭8個字節也將相同。對此,CBC使用一個8個字節的隨機數作為初始向量來加密第一個分組,由于初始向量的隨機性,這個問題迎刃而解。

以下是CBC加密方式的java實現:

//需加密的明文

String s = \"Hello123Hello123\";

//從文件key.dat中讀取密鑰

InputStream f1 = new FileInputStream(\"key.dat\");

ObjectInputStream ois=new ObjectInputStream(f1);

Key k=(Key)ois.readObject( );

//生成初始向量

byte[] rand = new byte[8]; Random r = new Random(); r.nextBytes(rand);

//使用隨機數得到初始向量

IvParameterSpec iv = new IvParameterSpec(rand);

//獲取密碼器,DESede為加密算法

// CBC為加密模式,PKCS5Padding為填充模式

Cipher cp = Cipher.getInstance(\"DESede/CBC/PKCS5Padding\");

//初始化密碼器,并執行加密

cp.init(Cipher.ENCRYPT_MODE, k, iv);

byte[] ptext = s.getBytes(\"UTF-8\");

byte[] ctext = cp.doFinal(ptext);

//將初始向量和密文輸入到SEncCBC.dat中

OutputStream f2 = new FileOutputStream(\"SEncCBC.dat\");

f2.write(rand); f2.write(ctext);

基于CBC模式的解密過程如下:

1) 通過文件輸入流InputStream讀取文件SEncCBC.dat的開始8個字節,獲取加密時所用的初始向量;

2) 通過對象輸入流ObjectInputStream讀取加密時使用的密鑰,該密鑰被序列化后保存在key.dat中;

3) 讀取密文,首先判斷文件SEncCBC.dat的剩余字節數,并創建相應的字節數組,然后使用文件輸入流讀取;

4) 使用Cipher.DECRYPTMODE模式初始化密碼器,調用doFinal進行解密;

5) 將解密后的明文通過文件輸出流OutputStream保存到文件中。

3 實驗結果與分析

以下是實驗結果,以字符串作為明文,該明文可分為4個相同單元,每個單元由8個字節組成。加密結果如表1所示:

通過實驗,可以清楚的看到ECB模式加密后的密文和明文一樣,具有明顯的規律性,而CBC模式加密的密文卻無規律可循,完全隱蔽了明文的數據模式,從而使得破解難度大大增加。

4 結論

該文研究的基于CBC保密模式的加密解密應用引入了隨機的初始向量,隱蔽了明文的數據模式,增強了實際信息安全保護系統中密文的加密效果,具有較廣泛的應用前景。

參考文獻:

[1] 潘曉中.數據加密技術分析[J].系統工程與電子技術,2003(2).

[2] 王勇.RSA公開密鑰密碼體制的密鑰生成研究[J].計算機應用研究,1998(3).

[3] 盧開澄.計算機密碼學——計算機網絡中的數據保密和安全[M].北京:清華大學出版社,1998.

[4] Schneier B.應用密碼學[M].吳世忠,譯.北京:機械工業出版社,2000.

主站蜘蛛池模板: 91免费观看视频| 国产天天射| 欧洲日本亚洲中文字幕| 四虎AV麻豆| 免费看一级毛片波多结衣| 天堂成人在线| 国产无码精品在线播放| 91色爱欧美精品www| 国产精品亚洲一区二区三区在线观看| 成人毛片在线播放| 福利国产在线| 香蕉久久国产精品免| 99久久国产综合精品2023| 欧美色伊人| 国产高清又黄又嫩的免费视频网站| 成人蜜桃网| 熟女日韩精品2区| 国产精品无码在线看| 国产无码精品在线| 精品伊人久久久久7777人| 黄色三级网站免费| 中文字幕色站| 丁香六月综合网| 国产永久在线视频| 国产成人高清精品免费5388| 国产女人喷水视频| 综合色区亚洲熟妇在线| 手机精品视频在线观看免费| 久久综合色播五月男人的天堂| 丁香婷婷久久| 好紧太爽了视频免费无码| 丁香亚洲综合五月天婷婷| 亚洲成a人在线观看| 日本黄色不卡视频| 亚洲最新地址| 欧美精品1区2区| 99热这里只有精品5| 5388国产亚洲欧美在线观看| 日本国产精品| 国产h视频在线观看视频| 中国成人在线视频| 欧美无专区| 亚洲天堂视频在线播放| 免费99精品国产自在现线| 国产精品漂亮美女在线观看| 日韩高清无码免费| 4虎影视国产在线观看精品| 国产97色在线| 亚洲中文字幕无码爆乳| 久久99精品久久久久久不卡| 中文字幕亚洲第一| 久热中文字幕在线| 精品丝袜美腿国产一区| 91成人在线观看视频| 亚洲一级毛片免费观看| 色老头综合网| 青青青视频91在线 | 又爽又大又黄a级毛片在线视频 | 毛片三级在线观看| 国产区精品高清在线观看| 国产网站免费| 青青草原国产一区二区| 青青草a国产免费观看| 午夜视频www| 五月天福利视频| 国产精品视频第一专区| 99热这里只有精品在线观看| 美女视频黄又黄又免费高清| 青青国产成人免费精品视频| 97在线国产视频| 国产综合亚洲欧洲区精品无码| 久久久久免费看成人影片| 四虎免费视频网站| AV熟女乱| 大陆精大陆国产国语精品1024 | 麻豆国产原创视频在线播放| 精品国产福利在线| 国产日韩丝袜一二三区| 国产精品福利导航| 国产97视频在线观看| 中文字幕 91| 国产亚洲欧美在线中文bt天堂|