專(zhuān)利名稱(chēng):外來(lái)碼輔助下的實(shí)時(shí)密鑰生成及交換方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種網(wǎng)絡(luò)密鑰生成方法以及密鑰要素交換方案,它完成在互聯(lián)網(wǎng)上或?qū)S镁W(wǎng)內(nèi),需要互相建立網(wǎng)絡(luò)連接的的兩臺(tái)計(jì)算機(jī)設(shè)備(準(zhǔn)計(jì)算機(jī)設(shè)備)間,在建立安全網(wǎng)絡(luò)連接時(shí),密碼生成、認(rèn)證和密鑰交換的方法。
注這里提到的計(jì)算機(jī)設(shè)備,包括任何有運(yùn)算能力的,包括計(jì)算機(jī)基本結(jié)構(gòu)的(有CPU、內(nèi)存、外存等),能夠運(yùn)行軟件,且具有某種形式通訊能力的設(shè)備。包括計(jì)算機(jī)、單片機(jī)、POS機(jī)、PDA、手機(jī)等。
一般網(wǎng)絡(luò)通信加密方案中,整個(gè)過(guò)程包括兩個(gè)階段,即身份認(rèn)證及密碼生成(握手階段)和實(shí)際數(shù)據(jù)通信階段。本方案主要涉及的是第一階段。
本方案描述的方法包括兩方面的內(nèi)容密鑰的生成要素和密鑰的交換。
為了描述的方便,我們把通信的雙方分別叫做A和B。A是服務(wù)端,B是客戶(hù)端,通信的建立是B端發(fā)起連接A端。
在本方案中,密鑰的生成要素包括4個(gè),分別用a、b、c和d表示。a是客戶(hù)端B的標(biāo)識(shí)信息,能夠唯一標(biāo)識(shí)B的存在(標(biāo)識(shí)的要素很多,例如身份證號(hào)碼、手機(jī)號(hào)碼、銀行賬戶(hù)等);b是外來(lái)碼,由A發(fā)放給B,通過(guò)既定方法(根據(jù)不同應(yīng)用環(huán)境可以采取不同方法,例如通過(guò)短信、郵件、或者密碼信封等方式)傳遞給B;c是可變加密因子,在通信過(guò)程中動(dòng)態(tài)生成和交換;d是其他加密要素(例如時(shí)間因素),他在本方案不是主要部分,可以省略。因此,在以下討論中只討論a、b和c。
如果密鑰定義為key,那么,key=hash(a,b,c)hash是摘要算法或者一系列摘要算法的組合,用于通過(guò)對(duì)a、b和c的運(yùn)算產(chǎn)生密鑰key。
下面討論通信握手的過(guò)程及方法。這個(gè)過(guò)程采用如下數(shù)據(jù)包格式(只包含與這個(gè)過(guò)程有關(guān)的基本要素,并且本方法并不強(qiáng)制要求采用如下的要素順序)請(qǐng)求TEXT(a)ENCRYPT(key,a)應(yīng)答ENCRYPT(key,a,c)
說(shuō)明●握手過(guò)程是由B發(fā)起的,因此,“請(qǐng)求”是由B發(fā)送給A的,“應(yīng)答”是A發(fā)送給B的;●TEXT標(biāo)識(shí)通信中明文(明文指不加密的部分)傳遞的部分;●ENCRYPT(key,a)表示使用密鑰key對(duì)a進(jìn)行加密的密文;●ENCRYPT(key,a,c)表示使用密鑰key對(duì)a和c進(jìn)行加密的密文。
首先,討論b的生成和傳遞。b是在B的請(qǐng)求下,由A端生成的,在申請(qǐng)時(shí),B需要向A提供a,A端生成b采用隨機(jī)算法,b不與a有任何的因果關(guān)系。A端生成b以后,通過(guò)特定方法(如上文中所提到的通過(guò)短信、郵件、或者密碼信封等方式)把b傳遞給B,同時(shí)在A端保存a、b和c的對(duì)應(yīng)關(guān)系(由于在本階段并沒(méi)有產(chǎn)生c,因此可以約定c=b或者c=a,但必須與B采用相同的約定),a、b和c的對(duì)應(yīng)關(guān)系保存在STORE中(STORE這里只是一個(gè)泛稱(chēng),一般可以是數(shù)據(jù)文件、數(shù)據(jù)庫(kù)表等)。
下面討論握手的建立過(guò)程●首先,B端使用a、b和c生成key,在首次連接時(shí),由于此時(shí)沒(méi)有生成c,可以約定c=b或者c=a,但A、B兩端必須采用相同的約定;●B端建立與A端的網(wǎng)絡(luò)連接,B端生成握手請(qǐng)求命令數(shù)據(jù)包p(即上文提到的握手過(guò)程的請(qǐng)求數(shù)據(jù)包),通過(guò)網(wǎng)絡(luò)發(fā)送給A;●A完整接收到握手?jǐn)?shù)據(jù)包p以后,首先解析出明文部分,這里命名為a′,然后從STORE中查找與a′對(duì)應(yīng)的b′和c′,如果STORE中沒(méi)有a′存在,則握手失?。蝗绻嬖?,即使用a′、b′、c′生成密鑰key′;●A使用key′解析數(shù)據(jù)包p的密文部分,命名為a″,如果a″不等于a′,那么,握手失??;●如果a″=a′,那么,在A端采用隨機(jī)算法重新生成c′,并且c′不與a′和b′有任何因果關(guān)系,在STORE中保存a′、b′和c′的對(duì)應(yīng)關(guān)系。同時(shí)使用key′、a′和c′生成應(yīng)答數(shù)據(jù)包p′(即上文提到的握手過(guò)程的應(yīng)答數(shù)據(jù)包),并發(fā)送給B;●B完整接收到p′,使用key解析p′,解析出a′和c′,如果a′=a,那么握手成功,并在B端保存a、b和c′的對(duì)應(yīng)關(guān)系。如果a′不等于a,則握手失敗。
權(quán)利要求
1.一種網(wǎng)絡(luò)實(shí)時(shí)密鑰生成及交換方法,其特征在于,網(wǎng)絡(luò)密鑰由客戶(hù)標(biāo)識(shí)碼a、外來(lái)碼b以及可變加密因子c通過(guò)摘要算法生成,b是由服務(wù)端A發(fā)放給客戶(hù)端B的,c是在B和A端的握手過(guò)程中,由A端產(chǎn)生,并通過(guò)網(wǎng)絡(luò)傳遞給B的。
2.根據(jù)權(quán)利要求1所述的網(wǎng)絡(luò)實(shí)時(shí)密鑰生成及交換方法,其特征在于,外來(lái)碼b是B端向A端提出申請(qǐng),并向A端提供a,由A端采用隨機(jī)算法生成的,并通過(guò)既定方法傳遞給B的。同時(shí)在A端保存a、b和c的對(duì)應(yīng)關(guān)系,c為初始值。
3.根據(jù)權(quán)利要求2所述的網(wǎng)絡(luò)實(shí)時(shí)密鑰生成及交換方法,其特征在于,b的傳遞方法采用與A、B之間網(wǎng)絡(luò)直接通信不同的通信介質(zhì)或方法。
4.根據(jù)權(quán)利要求1所述的網(wǎng)絡(luò)實(shí)時(shí)密鑰生成及交換方法,其特征在于,握手命令包括請(qǐng)求命令和應(yīng)答命令。
5.根據(jù)權(quán)利要求1所述的網(wǎng)絡(luò)實(shí)時(shí)密鑰生成及交換方法,其特征在于,a和b在網(wǎng)絡(luò)握手及通信過(guò)程中是保持不變的,b并不在網(wǎng)絡(luò)上進(jìn)行傳遞,c在每次握手過(guò)程中改變并進(jìn)行交換。
6.根據(jù)權(quán)利要求1所述的網(wǎng)絡(luò)實(shí)時(shí)密鑰生成及交換方法,其特征在于,c由A端在握手過(guò)程中生成,并通過(guò)握手應(yīng)答命令傳遞給B,握手結(jié)束后,A、B兩端各自保存最新的c。
全文摘要
外來(lái)碼輔助下的實(shí)時(shí)密鑰生成及交換方法是一種靈巧的網(wǎng)絡(luò)通信加密密鑰生成及交換方法。該方法的密鑰生成要素由客戶(hù)標(biāo)識(shí)a、外來(lái)碼b以及可變加密因子c組成。b是由服務(wù)器端發(fā)放給客戶(hù)端的,b的發(fā)放過(guò)程采用與網(wǎng)絡(luò)通信不同的介質(zhì)或方法。c在每次連接握手階段在A端重新生成并傳遞給B。
文檔編號(hào)H04L9/12GK1635730SQ200310123839
公開(kāi)日2005年7月6日 申請(qǐng)日期2003年12月31日 優(yōu)先權(quán)日2003年12月31日
發(fā)明者鄭玉霞 申請(qǐng)人:鄭玉霞