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

混合加密技術在網絡通信安全中的應用

2009-04-29 00:00:00楊麗麗
電腦知識與技術 2009年5期

摘要:針對網絡通信中的竊聽、重放等安全問題,本文設計了一種公鑰加密方法RSA與傳統加密方法AES相結合的混合密鑰加密方案,以保證網絡通信中數據的保密性,本方案已在Java平臺下進行測試和實現。

關鍵詞:網絡安全;數據加密;Java;AES;RSA

中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2009)05-1077-02

Technique of Mixed Cryptography and its Application in Network and Communication Security

Yang Li-li

(Department of Mathematics and Computer Science,Zhanjiang 5243000, China)

Abstract: To prevetent from the attacking of listening and replaying,and strengthen the safety in network communication. A scheme of mixed crypography is brought forward, and the principle of the scheme is that before transmitted,the data is encrypted using AES,and the Key of AES is encrypted using RSA. The scheme is tested and implemented by Java language.

Keywords: network security; data crptography; Java; AES; RSA

1 引言

網絡安全是指網絡系統的硬件、軟件及其系統中的數據受到保護,不因偶然的或者惡意的原因而遭受到破壞、更改、泄露,系統連續可靠正常地運行,網絡服務不中斷。 網絡安全從其本質上來講就是網絡上的信息安全。為了保證信息安全不受侵犯,可以采用多種技術,如加密技術、訪問控制技術、認證技術以及安全審計技術等。但迄今為止,最重要的網絡與通信自動化安全中工具是加密。廣泛使用的兩種加密形式是傳統加密和公鑰加密。本文將兩種加密形式相結合,在Java環境下使用 AES和 RSA加密算法對數據進行加密和解密。

2 數據加密技術概述

加密是從明文到密文的變換過程。計算機上數據的加、解密變換是由密鑰控制實現的。根據加、解密過程使用的密鑰是否相同,可將現代密碼技術分為對稱加密算法和公鑰加密算法兩類。對稱加密算法中,加、解密使用的密鑰相同,加、解密速度快,算法簡便高效,密鑰簡短,但其安全性完全依賴于密鑰。而密鑰管理是對稱密碼的一個嚴重瓶頸。在公鑰加密算法中,加、解密使用不同的密鑰,幾乎不可能從一個密鑰推導出另一個密鑰,它適應于網絡開放性要求,密鑰管理簡單,但算法復雜,加、解密效率低。

目前常用的對稱加密技術有DES、3DES和AES。DES是舊的加密標準,它的密匙長度為56位,加密強度較低已被認為不是安全的加密技術。3DES是對DES的改進,對明文用一個不同的DES密匙進行DES加密、解密和再加密,這樣可以提高加密強度。AES是新的加密標準,它是DES的替代者,它的密鑰長度有128、192和256三種,目前還沒有被人攻破。目前使用的非對稱加密技術主要有RSA和ECC,其中1024位的 RSA是目前使用最為廣泛的非對稱加密技術。本文將在Java平臺下將AES與RSA相結合對網絡通信中數據進行混合加密。

3 Java中的數據加密類

由于Java一開始就是面向網絡應用的,它十分重視數據的安全性,在 JDK 1.1中就已支持 DES加密技術,在 JDK1.5中支持 DES、3DES、AES等對稱加密技術,在非對稱加密技術方面支持 RSA技術,在 Java還可以安裝其它公司的加密包,使用 “SunJCF”所不支持的其它加密算法,因此Java在電子商務中得到了廣泛的應用。Java中的與數據加密相關的類與方法主要有:

1) KeyGenerator類用于獲得各類對稱加密技術的密鑰,主要方法有:

getlnstance(“加密算法字符串”),用于設置要獲得的密鑰的加密算法init()化對稱加密的密匙對象;

generateKey(),從對稱加密的密鑰對象中取得密鑰;

2) KeyPairGenerator類用于獲得非對稱加密技術的密鑰。主要方法有:

getInstance(“非對稱加密算法字符串”),用于設置要獲得的密鑰的加密算法;

initialize(“密鑰長度”),用于初始化非對稱加密的密鑰對象 ;

generateKeyPair(),返回非對稱加密密鑰對;

getPublic(),從非對稱密鑰對中取得公鑰;

getPrivate(),從非對稱密鑰組中用于取得私鑰;

3) Cipher類是Java加密的主要類,用于按一定的算法對數據進行加密、解密、包裝和返包裝。主要方法有:

getlnstance(“加密算法字符串”),用于設置要使用的加密算法;

Init(“類型”,密鑰),按提供的類型和密匙初始化加密對象;

getBLockSize(),用于返回加密算法的輸入分組長度;

getOutputSize(),用于返回加密算法的輸出分組長度;

update(inBytes,blockSize,outBytes),對 inBytes進行加密或解密處理,并將處理結果輸出到 outBytes中;

doFinal(),對要不足分組長度的數據進行填充處理;

4 基于RSA與AES的混合加密方案

4.1 混合加密通信模型

本文設計的混合加密方案利用公鑰加密(RSA)傳輸對稱加密密鑰,用對稱密碼(AES)進行數據通信,本方案綜合對稱加密的加密快和公鑰加密密鑰分發簡單的優點,解決了通信中的效率和安全問題。本混合加密方案的通信過程可分為公鑰加密傳輸對稱密鑰和對稱加密傳輸數據兩個階段。基于混合加密的安全通信模型如圖1所示。

4.2 混合加密通信流程

1) 公鑰加密傳輸對稱密鑰K。公鑰加密傳輸對稱密鑰的通信流程如下 :

第一步,發送方和接收方分別在本地生成自己的密鑰對(公鑰PK和私鑰SK),安全保存SK,公開發布PK;

第二步,通過檢索公鑰目錄,發送方獲得接收方的PK;

第三步,發送方生成對稱密鑰K;

第四步,發送方用接收方的PK加密K得到C ,將 C 發給接收方;

第五步,接收方用自己SK解密C,獲得密鑰K。

這樣,收發雙方擁有共享密鑰K,安全地完成了密鑰的分發。

2) 對稱加密進行數據通信。收發雙方利用共享密鑰K進行數據通信的流程如下 :

第一步,發送方用K加密消息P得到密文C;

第二步,發送方將C發送給接收方;

第三步,接收方用K解密C獲得消息P,即可獲得消息原文,從而實現數據的保密通信。

當一個密鑰K被安全分發后,在安全期內,混合加密系統利用密鑰 K進行對稱密碼通信。當由于K被泄露或過了K的有效期需要更換密鑰時,才再次利用公鑰密碼分發新的密鑰 K。

5 混合加密方案的Java實現

5.1 使用公鑰加密分發對稱密鑰加密的實現

方案中采用 RSA 分發對稱密鑰,公鑰密碼分發對稱密鑰的實現過程如下:

1) 公鑰(RSA)密鑰對的生成。實現代碼為:

KeyPairGenerator keyGen=KeyPairGenerator.getlnstance(“ RSA”);

//創建密鑰對生成器,指定RSA加密算法

SecureRandom random=new SecureRandom( ); //生成隨機數

keyGen.initialize(1024,random); //初始化密鑰生成器

KeyPair keyPair=keyGen.generateKeyPair0; //生成密鑰對

SecretKey prk= keyPair.generateKey( ); //獲得私鑰

PublicKey pbk= keyPair.readObject( ); //獲得公鑰

2) 創建對稱密鑰。實現代碼為:

//讀取自己的公鑰和私鑰

FilelnputStream fis=new FileInputStream(args[0]);

ObjectInputStream obj=new FileObjectlnputStream(fis);

PublicKey pbk=(PublicKey)obj.readObject();

FilelnputStream f= new FileInputStream (args[1]);

ObjectlnputStream ob=new ObjectlnputStream (f);

PrivateKey prk=(PrivateKey)ob.readObject();

KeyAgreement ka=KeyAgreement.getlnstance(“RSA”);//創建密鑰協定對象

ka.init(prk);//初始化密鑰協定對象

Ka.doPhase(pbk,true);//執行密鑰協定

byte[] b=ka.generateSecret();//生成密鑰

5.2 對稱密鑰加密進行數據通信的實現

利用公鑰密鑰加密傳輸的對稱密鑰就可進行保密通信。對稱加密通信的具體流程如下:

Ciper cp= Ciper.getInstance(“AES”);//創建密鑰器

Cp.inti(Ciper.ENCRYPT_MODE,dd.aesKey());//初始化密鑰器

FileInputStream sin=new FileInputStream(args[0]); //獲取待加密數據

FileOutputStream fos=new FileOutputStream(args[1]);

CiperOutputStream cout=new CiperOutputStream(fos,cp); //創建加密輸出流

While(((b=in.read())!=-1) {cout.write(b);} //寫輸出流

6 系統測試與分析

本加密方案使用公鑰加密來實現對稱密鑰的交換,使用對稱加密來加密通信數據,既有對稱加密系統的處理速度,又解決了對稱加密系統中密鑰交換的難題,從而兼顧了通信中的效率和安全問題,且在Java平臺上實現該方案,使本加密方案具有與平臺無關性、安全、方便的特點。但本方案只能解決網絡通信中數據的保密性問題,對于數據完整性與不可否認性,還需要采用數字簽名、數字摘要等方案來解決。

7 結束語

網絡安全是保障網絡應用的基礎,經過對各種加密方法的分析,本文提出了一套混合數據加密方法,來保證網絡中通信信息的安全。事實上,網絡安全是一個綜合性的課題,需要各個方面的努力,以及安全技術的不斷進步。相信在21世紀,網絡信息安全的地位將更加重要,網絡信息安全必然隨著網絡應用的發展而不斷發展。

參考文獻:

[1] William Stallings著.Cryptography and Network Security Principles and Practices[M]Fourth Edition.北京:電子工業出版社,2006.135-150,259-267.

[2] 聊斯漢.密碼學與計算機網絡安全[M].北京:清華大學出版社,2001.

[3] 景旭.基于混合加密的即時通訊系統設計與實現[J].西北農林科技大學學報,2007.

主站蜘蛛池模板: 毛片视频网址| 亚洲一区黄色| 3D动漫精品啪啪一区二区下载| 亚洲精品你懂的| 免费日韩在线视频| 日韩av资源在线| 人妻丰满熟妇av五码区| 日韩无码白| 日韩av无码精品专区| 国产精欧美一区二区三区| 少妇人妻无码首页| 国产国语一级毛片在线视频| 免费国产小视频在线观看| 精品福利视频导航| 成人午夜亚洲影视在线观看| 热思思久久免费视频| 中文字幕在线一区二区在线| 亚洲男人的天堂视频| 热99re99首页精品亚洲五月天| 国产精品无码作爱| 久久夜夜视频| 97人妻精品专区久久久久| 国产高清国内精品福利| 国产精品无码一二三视频| 五月婷婷中文字幕| 热久久综合这里只有精品电影| 国产在线观看成人91| 97在线观看视频免费| 欧美特黄一级大黄录像| 91福利在线看| 欧美影院久久| 国产99久久亚洲综合精品西瓜tv| 综合五月天网| 中文字幕自拍偷拍| 国产精品三级专区| 国产在线自在拍91精品黑人| 欧美精品成人| 97青草最新免费精品视频| 中国毛片网| 国产免费网址| 一本综合久久| 成人福利一区二区视频在线| 在线观看欧美国产| 亚洲区一区| 美女国内精品自产拍在线播放| 成人免费网站久久久| 中文无码毛片又爽又刺激| 色婷婷亚洲综合五月| 免费在线播放毛片| 婷婷亚洲视频| 无码专区在线观看| 中文字幕在线看| 99久久精彩视频| 欧洲极品无码一区二区三区| 另类欧美日韩| www.91中文字幕| 久久狠狠色噜噜狠狠狠狠97视色| 国产午夜一级淫片| 无码中字出轨中文人妻中文中| 精品国产免费第一区二区三区日韩 | 玖玖精品视频在线观看| 国产尹人香蕉综合在线电影| 免费毛片全部不收费的| 天天色天天操综合网| 四虎影视8848永久精品| 久久精品欧美一区二区| 亚洲国产日韩在线成人蜜芽| 亚洲国产综合精品一区| 黄色在线不卡| 成人国产小视频| 亚洲成综合人影院在院播放| 久久综合结合久久狠狠狠97色| 日本欧美中文字幕精品亚洲| 五月激情综合网| 在线观看免费AV网| 久久情精品国产品免费| 97se亚洲综合在线| 青青青亚洲精品国产| 波多野结衣中文字幕一区二区| 久久国产香蕉| 日本尹人综合香蕉在线观看| 日本人妻一区二区三区不卡影院 |