基于二維碼的移動(dòng)手持設(shè)備間的安全通信通道建立方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明設(shè)及通信及信息安全領(lǐng)域,尤其設(shè)及一種基于二維碼的移動(dòng)手持設(shè)備間安 全通信通道的建立方法。
【背景技術(shù)】
[0002] 隨著智能手機(jī)、平板電腦等移動(dòng)手持設(shè)備的普及,用戶在移動(dòng)手持設(shè)備上的各種 需求日益增多。其中,用戶可能希望實(shí)現(xiàn)移動(dòng)手持設(shè)備間臨時(shí)性的近距離數(shù)據(jù)傳輸或信息 交互,在運(yùn)種情況下,通常需要保證數(shù)據(jù)的機(jī)密性和完整性,運(yùn)就要求對(duì)通信數(shù)據(jù)進(jìn)行加密 和完整性驗(yàn)證,因此需要在移動(dòng)設(shè)備之間協(xié)商加密密鑰和完整性密鑰。
[0003] 目前移動(dòng)手持設(shè)備間密鑰協(xié)商存在的問(wèn)題主要是:密鑰協(xié)商在開(kāi)放的無(wú)線環(huán)境下 進(jìn)行,身份認(rèn)證過(guò)程容易受到第=方的干擾和攻擊,往往造成密鑰協(xié)商失敗或協(xié)商出來(lái)的 密鑰安全性不高。如采用Deffie-Hellman密鑰交換方案進(jìn)行密鑰協(xié)商,為了防止中間人攻 擊,往往需要在兩者之間交換證書,并通過(guò)消息交互進(jìn)行相應(yīng)的身份驗(yàn)證,而認(rèn)證過(guò)程還設(shè) 及到與證書中屯、的交互,該過(guò)程相當(dāng)復(fù)雜。
[0004] 二維碼通過(guò)平面上分布的黑白相間的圖形存儲(chǔ)數(shù)據(jù)信息,W其黑、白圖形分別代 表"〇"、"r比特,通過(guò)圖形輸入設(shè)備或光電掃描設(shè)備實(shí)現(xiàn)數(shù)據(jù)的讀取。二維碼技術(shù)就是通過(guò) 移動(dòng)智能設(shè)備的拍照功能對(duì)二維碼進(jìn)行掃描,快速獲取二維碼中存儲(chǔ)的信息,進(jìn)行上網(wǎng)、撥 號(hào)、發(fā)送短信等操作。近距離獲取對(duì)方所提供的二維碼,具備所見(jiàn)即所得的特點(diǎn)。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明是為避免現(xiàn)有技術(shù)的不足之處,提出一種基于二維碼的移動(dòng)手持設(shè)備間的 安全通信通道建立方法,W期能高效地協(xié)商密鑰并建立安全通信通道,從而滿足移動(dòng)手持 設(shè)備間靈活自由的安全通信需求。
[0006] 本發(fā)明為解決技術(shù)問(wèn)題采用如下技術(shù)方案:
[0007] 本發(fā)明一種基于二維碼的移動(dòng)手持設(shè)備間的安全通信通道建立方法的特點(diǎn)是按 如下步驟進(jìn)行:
[000引步驟1、假設(shè)設(shè)備A和設(shè)備B之間需要建立安全通信通道,則設(shè)備A產(chǎn)生密鑰協(xié)商過(guò) 程所需的公共參數(shù);所述公共參數(shù)包括一個(gè)大素?cái)?shù)q和所述大素?cái)?shù)q的一個(gè)本元根g;
[0009] 步驟2、所述設(shè)備A利用偽隨機(jī)發(fā)生器產(chǎn)生具有隨機(jī)特性的私鑰,再根據(jù)所述公共 參數(shù)計(jì)算得到與所述設(shè)備A的私鑰相對(duì)應(yīng)的公鑰;
[0010] 步驟3、所述設(shè)備A根據(jù)所述公共參數(shù)和所述設(shè)備A公鑰生成二維碼,并進(jìn)行顯示;
[0011] 步驟4、所述設(shè)備B掃描所述設(shè)備A所顯示的二維碼并進(jìn)行轉(zhuǎn)換,得到所述設(shè)備A所 提供的公共參數(shù)W及所述設(shè)備A的公鑰;
[0012] 步驟5、所述設(shè)備B采用偽隨機(jī)發(fā)生器產(chǎn)生具有隨機(jī)特性的私鑰,再根據(jù)所述公共 參數(shù)計(jì)算得到所述設(shè)備B的私鑰相對(duì)應(yīng)的公鑰;
[0013] 步驟6、所述設(shè)備B根據(jù)所述設(shè)備B的公鑰生成二維碼,并進(jìn)行顯示;
[0014] 步驟7、所述設(shè)備A掃描所述設(shè)備B所顯示的二維碼并進(jìn)行轉(zhuǎn)換,得到所述設(shè)備B的 公鑰;
[0015] 步驟8、所述設(shè)備A和所述設(shè)備B分別根據(jù)自己的私鑰和對(duì)方的公鑰計(jì)算得到相同 的會(huì)話密鑰;從而完成密鑰協(xié)商過(guò)程;
[0016] 步驟9、根據(jù)所述會(huì)話密鑰派生得到所述設(shè)備A和所述設(shè)備B之間進(jìn)行安全通信所 需的加密密鑰和完整性密鑰,從而建立安全通信通道。
[0017] 本發(fā)明所述的安全通信通道建立方法的特點(diǎn)也在于,
[0018] 利用式(1)獲得所述設(shè)備A或設(shè)備B的公鑰PKi:
[0019] PK, - tnodf/ (1)
[0020] 式(1)中,i =A或B ;Ki表示設(shè)備A或設(shè)備B的私鑰;
[0021] 利用式(2)獲得所述設(shè)備A會(huì)話密鑰SK:
[0022] 漲=P巧A菌或q 口)
[0023] 利用式(3)獲得所述設(shè)備B的會(huì)話密鑰SK:
[0024] 化'二 PA'';" mody (3)
[0025] 所述派生方法按如下步驟進(jìn)行:
[0026] 步驟1、W不同的字符串和會(huì)話密鑰作為化Sh函數(shù)的輸入,分別獲得多組輸出;
[0027] 步驟2、將多組輸出拼接在一起從而形成隨機(jī)比特串;
[0028] 步驟3、根據(jù)加密算法和完整性校驗(yàn)算法的密鑰長(zhǎng)度對(duì)所述隨機(jī)比特串進(jìn)行截取, 分別獲得不同通信方向上的加密密鑰和完整性密鑰。
[0029] 與已有技術(shù)相比,本發(fā)明有益效果體現(xiàn)在:
[0030] 1、二維碼能夠在橫向和縱向同時(shí)表達(dá)信息,因此可W在很小的面積上承載大量的 信息,具有高密度、大容量的特點(diǎn),可W用它來(lái)表示文件、圖片、比特流等,用其來(lái)承載本發(fā) 明所產(chǎn)生的公鑰,便于用戶通過(guò)掃描進(jìn)行提取,操作簡(jiǎn)單方便,用戶體驗(yàn)度好。
[0031] 2、本發(fā)明二維碼所承載信息為公鑰,即使被第=方所偷窺,基于公鑰協(xié)商算法的 優(yōu)勢(shì),獲取通信雙方的公鑰是無(wú)法恢復(fù)出所協(xié)商的會(huì)話密鑰的,從而保證了密鑰協(xié)商過(guò)程 的安全性。
[0032] 3、本發(fā)明通過(guò)兩次面對(duì)面的二維碼的掃描操作進(jìn)行密鑰協(xié)商,所獲得公鑰信息基 于二維碼掃描進(jìn)行傳遞,具有所見(jiàn)即所得的特點(diǎn),從而避免了偽造攻擊。
[0033] 4、基于派生方法,將會(huì)話密鑰派生為通信過(guò)程中所需的多個(gè)密鑰,避免了用同一 個(gè)密鑰用于兩個(gè)方向上的加密和簽名,攻擊者將很難收集足夠的密文數(shù)據(jù),增加了破解的 難度。即使某個(gè)所派生的密鑰被破解或者泄露,由于所采用hash函數(shù)的單向性,也不會(huì)導(dǎo)致 其他密鑰W及會(huì)話密鑰的泄露。
【附圖說(shuō)明】
[0034] 圖1為本發(fā)明方法的流程示意圖。
【具體實(shí)施方式】
[0035] 本實(shí)施例中,如圖1所示,一種基于二維碼的移動(dòng)手持設(shè)備間的安全通信通道建立 方法,是按如下步驟進(jìn)行:
[0036] 步驟1、假設(shè)設(shè)備A和設(shè)備B之間需要建立安全通信通道,則設(shè)備A產(chǎn)生密鑰協(xié)商過(guò) 程所需的公共參數(shù);所述公共參數(shù)包括一個(gè)大素?cái)?shù)q和所述大素?cái)?shù)q的一個(gè)本元根g;
[0037] 步驟2、設(shè)備A利用偽隨機(jī)發(fā)生器產(chǎn)生具有隨機(jī)特性的私鑰Ka,再根據(jù)所述公共參 數(shù)(g和q)利用式(1)計(jì)算得到與該私鑰相對(duì)應(yīng)的公鑰PKa:
[003引 PA' I = i mod 與(1)
[0039] 步驟3、設(shè)備A根據(jù)所述公共參數(shù)和步驟2中產(chǎn)生的公鑰PKa生成相應(yīng)的二維碼,并 進(jìn)行顯示;
[0040] 步驟4、設(shè)備B掃描設(shè)備A所顯示的二維碼信息并進(jìn)行轉(zhuǎn)換,得到設(shè)備A所提供的公 共參數(shù)(g和q的取值)W及設(shè)備A的公鑰PKa。二維碼的使用便于用戶通過(guò)掃描進(jìn)行提取,操 作簡(jiǎn)單方便,用戶體驗(yàn)度好。面對(duì)面掃描二維碼具有所見(jiàn)即所得的特性,天然認(rèn)證的功能, 使得方案免于假冒攻擊。即使二維碼信息被第=者偷窺,由于反應(yīng)的是公鑰信息,也不能夠 計(jì)算得到會(huì)話密鑰;
[0041] 步驟5、設(shè)備B采用偽隨機(jī)發(fā)生器產(chǎn)生具有隨機(jī)特性的私鑰Kb,再根據(jù)公共參數(shù)利 用式(2)計(jì)算得到設(shè)備B的私鑰相對(duì)應(yīng)的公鑰PKb:
[0042] 聲化度=夢(mèng)軒modg (2)
[0043] 偽隨機(jī)發(fā)生器的使用保證了私鑰選擇的隨機(jī)性;
[0044] 步驟6、設(shè)備B根據(jù)步驟5中產(chǎn)生的公鑰PKb生成相應(yīng)的二維碼,并進(jìn)行顯示;
[0045] 步驟7、設(shè)備A掃描設(shè)備B所顯示的二維碼并進(jìn)行轉(zhuǎn)換,從而得到設(shè)備B的公鑰PKb;
[0046] 步驟8、設(shè)備A和設(shè)備B分別根據(jù)自己的私鑰和對(duì)方的公鑰計(jì)算得到相同的會(huì)話密 鑰;從而完成密鑰協(xié)商過(guò)程,設(shè)備A和設(shè)備計(jì)算會(huì)話密鑰的原理為:
[0047] SK = PK; ' = gK I K。= P吟 modq 所
[0048] 步驟9、根據(jù)會(huì)話密鑰派生的方法得到設(shè)備A和設(shè)備B之間進(jìn)行安全通信所需的加 密密鑰和完整性密鑰,從而建立安全通信通道。
[0049] 具體實(shí)施中,派生方法可W為:
[0050] a) W不同的字符串和會(huì)話密鑰作為化Sh函數(shù)的輸入,分別獲得多組輸出;
[0051 ] b)將多組輸出拼接在一起從而形成隨機(jī)比特串;
[0052] C)根據(jù)加密算法和完整性校驗(yàn)算法的密鑰長(zhǎng)度對(duì)所述隨機(jī)比特串進(jìn)行截取,分別 獲得不同通信方向上的加密密鑰和完整性密鑰。
[0053] 基于派生方法,將會(huì)話密鑰派生為通信過(guò)程中所需的多個(gè)密鑰,避免了用同一個(gè) 密鑰用于兩個(gè)方向上的加密和簽名,攻擊者將很難收集足夠的密文數(shù)據(jù),增加了破解的難 度。即使某個(gè)所派生的密鑰被破解或者泄露,由于所采用hash函數(shù)的單向性,也不會(huì)導(dǎo)致其 他密鑰W及會(huì)話密鑰的泄露。
【主權(quán)項(xiàng)】
1. 一種基于二維碼的移動(dòng)手持設(shè)備間的安全通信通道建立方法,其特征是按如下步驟 進(jìn)行: 步驟1、假設(shè)設(shè)備A和設(shè)備B之間需要建立安全通信通道,則設(shè)備A產(chǎn)生密鑰協(xié)商過(guò)程所 需的公共參數(shù);所述公共參數(shù)包括一個(gè)大素?cái)?shù)q和所述大素?cái)?shù)q的一個(gè)本元根g; 步驟2、所述設(shè)備A利用偽隨機(jī)發(fā)生器產(chǎn)生具有隨機(jī)特性的私鑰,再根據(jù)所述公共參數(shù) 計(jì)算得到與所述設(shè)備A的私鑰相對(duì)應(yīng)的公鑰; 步驟3、所述設(shè)備A根據(jù)所述公共參數(shù)和所述設(shè)備A公鑰生成二維碼,并進(jìn)行顯示; 步驟4、所述設(shè)備B掃描所述設(shè)備A所顯示的二維碼并進(jìn)行轉(zhuǎn)換,得到所述設(shè)備A所提供 的公共參數(shù)W及所述設(shè)備A的公鑰; 步驟5、所述設(shè)備B采用偽隨機(jī)發(fā)生器產(chǎn)生具有隨機(jī)特性的私鑰,再根據(jù)所述公共參數(shù) 計(jì)算得到所述設(shè)備B的私鑰相對(duì)應(yīng)的公鑰; 步驟6、所述設(shè)備財(cái)良據(jù)所述設(shè)備B的公鑰生成二維碼,并進(jìn)行顯示; 步驟7、所述設(shè)備A掃描所述設(shè)備B所顯示的二維碼并進(jìn)行轉(zhuǎn)換,得到所述設(shè)備B的公鑰; 步驟8、所述設(shè)備A和所述設(shè)備B分別根據(jù)自己的私鑰和對(duì)方的公鑰計(jì)算得到相同的會(huì) 話密鑰;從而完成密鑰協(xié)商過(guò)程; 步驟9、根據(jù)所述會(huì)話密鑰派生得到所述設(shè)備A和所述設(shè)備B之間進(jìn)行安全通信所需的 加密密鑰和完整性密鑰,從而建立安全通信通道。2. 如權(quán)利要求1所述的安全通信通道建立方法,其特征是,利用式(1)獲得所述設(shè)備A或 設(shè)備B的公鑰PKi:(1) 式(1)中,i = A或B;Ki表示設(shè)備A或設(shè)備B的私鑰。3. 如權(quán)利要求1所述的安全通信通道建立方法,其特征是: 利用式(2)獲得所述設(shè)備A會(huì)話密鑰SK:搭) 利用式(3)獲得所述設(shè)備B的會(huì)話密鑰SK:(3)。4. 如權(quán)利要求1所述的安全通信通道建立方法,其特征是:所述派生方法按如下步驟進(jìn) 行: 步驟1、W不同的字符串和會(huì)話密鑰作為化sh函數(shù)的輸入,分別獲得多組輸出; 步驟2、將多組輸出拼接在一起從而形成隨機(jī)比特串; 步驟3、根據(jù)加密算法和完整性校驗(yàn)算法的密鑰長(zhǎng)度對(duì)所述隨機(jī)比特串進(jìn)行截取,分別 獲得不同通信方向上的加密密鑰和完整性密鑰。
【專利摘要】本發(fā)明公開(kāi)了一種基于二維碼的移動(dòng)手持設(shè)備間安全通信通道的建立方法,包括:設(shè)備A生成公共參數(shù)和公私鑰對(duì),并將公共參數(shù)和公鑰轉(zhuǎn)換成二維碼,設(shè)備B通過(guò)掃描二維碼轉(zhuǎn)換得到公共參數(shù)及A的公鑰,然后生成自己的公私鑰對(duì),再通過(guò)二維碼的方式將公鑰傳遞給A,雙方分別計(jì)算出一個(gè)共享的會(huì)話密鑰,該會(huì)話密鑰可以擴(kuò)展出加密密鑰和完整性密鑰用于保護(hù)通信數(shù)據(jù)的機(jī)密性和完整性。本方法在用戶面對(duì)面的情況下互相掃描設(shè)備屏幕進(jìn)行密鑰協(xié)商,省去了傳統(tǒng)身份認(rèn)證的復(fù)雜過(guò)程,不需要多余的通信,建立的安全通信通道同時(shí)具有機(jī)密性和完整性。該方法操作簡(jiǎn)單方便,用戶體驗(yàn)良好,密鑰安全性高,通過(guò)終端軟件可以部署到各種移動(dòng)手持設(shè)備中。
【IPC分類】H04L29/06
【公開(kāi)號(hào)】CN105554028
【申請(qǐng)?zhí)枴緾N201610048499
【發(fā)明人】劉玉
【申請(qǐng)人】合肥學(xué)院
【公開(kāi)日】2016年5月4日
【申請(qǐng)日】2016年1月22日