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

?

基于iOS終端的SM2移動(dòng)密碼系統(tǒng)

2018-03-23 08:23鄧高宇龍毅宏
軟件 2018年2期
關(guān)鍵詞:數(shù)字簽名私鑰門限

鄧高宇,龍毅宏

(武漢理工大學(xué)信息工程學(xué)院,湖北 武漢 430070)

0 引言

SM2橢圓曲線公鑰密碼算法于 2010年首次公開發(fā)布,2012年成為中國(guó)商用密碼標(biāo)準(zhǔn),2016年成為中國(guó)國(guó)家密碼標(biāo)準(zhǔn)。迄今為止與SM2算法相關(guān)研究表明,SM2算法的可證安全性達(dá)到了公鑰密碼算法的最高安全級(jí)別[1],其實(shí)現(xiàn)效率相當(dāng)于或略優(yōu)于一些國(guó)際標(biāo)準(zhǔn)的同類橢圓曲線密碼算法[2-5]。2013年,孫榮燕,蔡昌曙,周洲[6]等人對(duì)SM2數(shù)字簽名算法與 ECDSA算法進(jìn)行了對(duì)比與分析研究,對(duì)ECDSA-SM2算法的數(shù)字模型進(jìn)行了正確性證明。2016年,陳澤凱[7]實(shí)現(xiàn)了一個(gè)基于身份的SM2橢圓曲線數(shù)字簽名方案SM2-IBS,具有效率高、簽名長(zhǎng)度短、不依賴PKI等特點(diǎn)。

隨著4G、WLAN、傳感器等無(wú)線網(wǎng)絡(luò)的普及,使用移動(dòng)終端逐漸成為用戶訪問網(wǎng)絡(luò)處理業(yè)務(wù)(包括網(wǎng)絡(luò)通信、電子支付、網(wǎng)上銀行等)的重要手段[8]。而在移動(dòng)終端上使用公鑰密碼私鑰如SM2私鑰時(shí),最重要的一點(diǎn)就是保障用戶私鑰存儲(chǔ)、使用的安全。目前在移動(dòng)終端對(duì)用戶私鑰進(jìn)行有效保護(hù)的手段主要有兩種:一種是采用USB密碼鑰匙(USB key)作為客戶端裝置來存儲(chǔ)私鑰[9],此種方式給用戶帶來了使用成本,而且使用也不方便;另一種方式是使用移動(dòng)終端內(nèi)置密碼芯片來存儲(chǔ)私鑰并進(jìn)行密碼運(yùn)算,然而內(nèi)置密碼芯片的移動(dòng)終端應(yīng)用不廣,市面上絕大部分手機(jī)都不自帶密碼芯片,且目前不存在支持SM2密碼運(yùn)算的手機(jī)密碼芯片。由于使用密碼硬件存在諸多問題,目前最常用的方法是使用純軟件的密碼模塊,將用戶私鑰保存在移動(dòng)終端本地,并通過PIN(Personal Identification Number)碼對(duì)私鑰進(jìn)行保護(hù)。這種采用純軟件密碼模塊、將用戶私鑰保存在移動(dòng)終端本地的方式存在用戶私鑰泄露風(fēng)險(xiǎn)[10],如:攻擊者通過木馬竊取保存在移動(dòng)終端中的用戶私鑰,破解用戶保護(hù)私鑰的PIN碼,從而獲得用戶私鑰;采用純軟件密碼模塊方式,用戶私鑰最終需以明文形式導(dǎo)入到內(nèi)存中使用,攻擊者有可能竊取存放在內(nèi)存中的用戶私鑰。

為了在移動(dòng)終端中安全的使用 SM2私鑰進(jìn)行數(shù)字簽名,本文提出并實(shí)現(xiàn)了一種基于iOS移動(dòng)終端的SM2移動(dòng)密碼系統(tǒng)方案,采用秘密共享的方式來保障用戶SM2私鑰使用的安全性。

1 基于iOS終端的SM2移動(dòng)密碼系統(tǒng)整體方案設(shè)計(jì)

為滿足在iOS移動(dòng)終端中安全使用SM2私鑰進(jìn)行數(shù)字簽名的需求,本文提出的解決方案是將用戶私鑰通過一定的方式分割成多份,每份稱為秘密份額[11],然后將其中的一份秘密份額保存在iOS移動(dòng)終端,其余的保存在密碼服務(wù)器中;當(dāng)移動(dòng)終端中的應(yīng)用程序需要調(diào)用密碼模塊使用用戶 SM2私鑰進(jìn)行數(shù)字簽名時(shí),多個(gè)計(jì)算裝置分別使用自己的秘密份額進(jìn)行密碼運(yùn)算,最后將各裝置計(jì)算的結(jié)果合并形成最后的、使用用戶私鑰進(jìn)行密碼運(yùn)算的結(jié)果,而數(shù)字簽名驗(yàn)證仍然采用通常的、標(biāo)準(zhǔn)的方式。

1.1 系統(tǒng)整體結(jié)構(gòu)

基于iOS終端的SM2移動(dòng)密碼系統(tǒng)結(jié)構(gòu)如圖1所示,主要包括:

圖1 基于iOS端的SM2移動(dòng)密碼系統(tǒng)結(jié)構(gòu)圖Fig.1 Structure of SM2 mobile cryptosystem based on iOS terminal

(1)iOS移動(dòng)終端:用戶進(jìn)行操作的客戶端,其中有專門的SM2密碼模塊,用來進(jìn)行SM2密碼運(yùn)算,存儲(chǔ)分割后的部分秘密份額,與密碼服務(wù)器交互產(chǎn)生數(shù)字簽名,并提供驗(yàn)證數(shù)字簽名的功能。

(2)密碼服務(wù)器:共有 m-1個(gè)密碼服務(wù)器(m≥2),與移動(dòng)終端構(gòu)成m個(gè)進(jìn)行秘密共享的裝置;每個(gè)密碼服務(wù)器存儲(chǔ)有屬于自己的SM2私鑰秘密份額,當(dāng)需要使用用戶的SM2私鑰進(jìn)行數(shù)字簽名時(shí),與 iOS移動(dòng)終端交互,使用自己的私鑰秘密份額進(jìn)行運(yùn)算,并將密碼運(yùn)算結(jié)果發(fā)送給 iOS移動(dòng)終端。

1.2 基于密碼共享的SM2數(shù)字簽名方案

密碼共享是信息安全和數(shù)據(jù)保密中的一項(xiàng)重要技術(shù),本文在對(duì)SM2私鑰進(jìn)行普通秘密共享的基礎(chǔ)上,提出在 SM2私鑰產(chǎn)生后亦可采用門限秘密共享方法,可以把秘密份額分散在多個(gè)裝置中,使得合法子集可以聯(lián)合執(zhí)行所需密碼服務(wù)[12],而非法子集不能完成這個(gè)密碼服務(wù)。被攻擊時(shí),只要達(dá)到門限數(shù)目的部件正常,就可以采取措施恢復(fù)系統(tǒng)為最初的安全狀態(tài)[13]。在本論文實(shí)現(xiàn)的 SM2移動(dòng)密碼系統(tǒng)中,門限秘密共享可用來增強(qiáng)系統(tǒng)的安全性和容錯(cuò)性。

1.2.1 基于普通秘密共享的SM2數(shù)字簽名

基于普通秘密共享的SM2數(shù)字簽名,核心在于將用戶 SM2私鑰根據(jù)普通秘密共享算法分割成 m份私鑰秘密份額,一份保存在iOS移動(dòng)終端,其余m-1份分發(fā)到 m-1個(gè)密碼服務(wù)器。當(dāng)應(yīng)用程序需要使用 SM2私鑰進(jìn)行數(shù)字簽名時(shí),移動(dòng)終端中的密碼模塊和密碼服務(wù)器分別使用各自保存的 SM2私鑰秘密份額進(jìn)行密碼運(yùn)算,產(chǎn)生 m份密碼運(yùn)算結(jié)果,最后將這m份密碼運(yùn)算的結(jié)果組合實(shí)現(xiàn)SM2數(shù)字簽名。少了這 m份私鑰秘密份額密碼運(yùn)算結(jié)果中的任意一份,密碼模塊都不能得到最終的數(shù)字簽名。

在生成數(shù)字簽名前,針對(duì)參與SM2數(shù)字簽名生成的iOS移動(dòng)終端和m-1個(gè)密碼服務(wù)器進(jìn)行如下初始化操作:

(1)iOS移動(dòng)終端的密碼模塊產(chǎn)生m份秘密份額di,i=1,2,…,m,其中d1由移動(dòng)終端保存,d2,…,dm由 m-1個(gè)密碼服務(wù)器保存使用。這 m份秘密份額與用戶的 SM2私鑰 dA滿足關(guān)系(1+dA)-1dAmod n=(d1+d2+…+dm) mod n,其中n是SM2密碼運(yùn)算所使用的橢圓曲線點(diǎn)群的階(也即SM2密碼運(yùn)算所使用的橢圓曲線點(diǎn)群的基點(diǎn)G的階),(1+dA)-1是(1+dA)的模n乘法逆(即(1+dA)-1與(1+dA)模n乘積為1);

(2)密碼模塊在區(qū)間[1,n-1]內(nèi)隨機(jī)選擇一個(gè)整數(shù)b,計(jì)算c=(1+dA)-1b mod n(此處b不是橢圓曲線方程的參數(shù)b);

(3)計(jì)算Gb=[b]G,其中G是SM2橢圓曲線點(diǎn)群的基點(diǎn);

(4)移動(dòng)終端將 c、Gb保存一份,并分發(fā)給m-1個(gè)密碼服務(wù)器;

當(dāng)需要使用用戶的SM2私鑰dA針對(duì)消息M進(jìn)行數(shù)字簽名時(shí),iOS移動(dòng)終端、密碼服務(wù)器按如下方式進(jìn)行數(shù)字簽名的生成:

(1)iOS移動(dòng)終端和m-1個(gè)密碼服務(wù)器在區(qū)間[1,n-1]中隨機(jī)選擇一個(gè)整數(shù)ki,i=1,2,…,m。

(2)iOS移動(dòng)終端通過與m-1個(gè)密碼服務(wù)器交互,計(jì)算得到 Q=[k1+k2+…+ km]Gb,r=(e+x1) mod n,且得到的Q、r滿足:r≠0且[r]G+Q不是SM2橢圓曲線點(diǎn)群的零元(無(wú)窮遠(yuǎn)點(diǎn)),x1取自(x1,y1)=Q,e是從用戶標(biāo)識(shí)和消息M導(dǎo)出的雜湊值(即散列值)(按SM2算法,e是從用戶標(biāo)識(shí)IDA等參數(shù)導(dǎo)出的雜湊值ZA同消息M合并后的數(shù)據(jù)的雜湊值,參見SM2規(guī)范);

(3)移動(dòng)終端的密碼模塊和 m-1個(gè)密碼服務(wù)器分別計(jì)算si=(cki-dir) mod n,其中i=1,2,…,m,si對(duì)應(yīng)si裝置i所進(jìn)行的計(jì)算;

(4)iOS移動(dòng)終端的密碼模塊計(jì)算得到s=(s1+s2+…+sm) mod n;則(r,s)即為使用用戶的SM2私鑰dA對(duì)消息M的數(shù)字簽名。

在上述數(shù)字簽名生成過程中,r、e、si,i=1,2,…,m,根據(jù)計(jì)算的需要在m個(gè)裝置之間傳送。

1.2.2 基于門限秘密共享的SM2數(shù)字簽名

本文提出的基于門限秘密共享的SM2數(shù)字簽名方案,采用Shamir門限秘密共享方案。此方案中進(jìn)行數(shù)字簽名操作處理的移動(dòng)終端和 t-1個(gè)密碼服務(wù)器,僅是全部 m個(gè)裝置(移動(dòng)終端和 m-1個(gè)密碼服務(wù)器)中的t個(gè)(m≥t),即采用(t,m)的門限方案。

方案核心在于將用戶SM2私鑰秘密(不是私鑰本身)根據(jù)門限秘密共享算法分割成m份私鑰秘密份額,一份保存在iOS移動(dòng)終端,其余m-1份分發(fā)到 m-1個(gè)密碼服務(wù)器。當(dāng)應(yīng)用程序需要使用 SM2私鑰進(jìn)行數(shù)字簽名時(shí),移動(dòng)終端中的密碼模塊和m-1個(gè)密碼服務(wù)器中的任意t-1個(gè)密碼服務(wù)器分別使用各自保存的SM2私鑰秘密份額進(jìn)行密碼運(yùn)算,產(chǎn)生t份密碼運(yùn)算結(jié)果,最后將這t份密碼運(yùn)算的結(jié)果組合實(shí)現(xiàn) SM2數(shù)字簽名?;陂T限秘密共享的SM2數(shù)字簽名方案概述如下。

(1)在有限域GF(n)上,將私鑰秘密(1+dA)-1dAmod n按(t, m)門限秘密共享分割成m份,并將分割得到的秘密分發(fā)給iOS移動(dòng)終端和m-1個(gè)密碼服務(wù)器,這里n是SM2橢圓曲線點(diǎn)群的階;

(2)當(dāng)iOS移動(dòng)終端中的應(yīng)用程序需要使用用戶的SM2私鑰對(duì)消息進(jìn)行數(shù)字簽名時(shí),iOS移動(dòng)終端以及 t-1個(gè)密碼服務(wù)器根據(jù)自己的秘密份額以及當(dāng)前組合分別計(jì)算得到d1, d2,…, dt,計(jì)算得到的d1,d2,…, dt滿足關(guān)系:(1+dA)-1dAmod n=(d1+d2+…+dt)mod n;

(3)之后,iOS移動(dòng)終端以及t-1個(gè)密碼服務(wù)器依據(jù)d1, d2,…, dt按普通秘密共享一樣的方式通過協(xié)同計(jì)算得到針對(duì)消息的數(shù)字簽名。

依據(jù)以上門限秘密共享方案,其中任意不少于t份私鑰秘密份額均能完成密碼運(yùn)算,而少于t份私鑰秘密份額則不能,且少于 t個(gè)秘密共享成員也無(wú)法重構(gòu)私鑰秘密[14]。

2 系統(tǒng)功能實(shí)施及結(jié)果

2.1 iOS移動(dòng)終端的SM2密碼功能實(shí)施

在iOS移動(dòng)終端的SM2密碼功能的實(shí)施主要涉及SM2密碼模塊、以及秘密份額的存儲(chǔ)以及與密碼服務(wù)器的交互。SM2密碼模塊的主要功能是基于秘密共享方案(包括普通秘密共享和門限秘密共享)進(jìn)行SM2數(shù)字簽名的生成以及SM2數(shù)字簽名驗(yàn)證,相應(yīng)的功能通過OpenSSL的ECC密碼庫(kù)實(shí)現(xiàn)。

秘密份額存儲(chǔ)在用戶計(jì)算裝置本地的永久存儲(chǔ)介質(zhì)中(移動(dòng)終端內(nèi)的電子盤),并通過 PIN碼(Personal Identification Number)對(duì)秘密份額加以保護(hù)。在SM2數(shù)字簽名的協(xié)同計(jì)算過程中iOS移動(dòng)終端與密碼服務(wù)器的交互采用自定義的協(xié)議,包括對(duì)移動(dòng)終端用戶進(jìn)行身份鑒別,并通過SSL對(duì)交互數(shù)據(jù)進(jìn)行安全保護(hù)。

2.2 密碼服務(wù)器端功能實(shí)施

本系統(tǒng)中的密碼服務(wù)器運(yùn)行在Windows平臺(tái),用C/C++語(yǔ)言開發(fā),其主要功能是使用用戶SM2的私鑰秘密份額、基于秘密共享方案(包括普通秘密共享和門限秘密共享)進(jìn)行SM2數(shù)字簽名的生成,相應(yīng)功能同樣是基于OpenSSL庫(kù)的ECC密碼功能實(shí)現(xiàn);密碼服務(wù)器與iOS移動(dòng)終端之間的交互通過自行定義的協(xié)議進(jìn)行。

2.3 實(shí)施結(jié)果

測(cè)試結(jié)果表明當(dāng)iOS移動(dòng)終端中的應(yīng)用程序需要使用用戶的SM2私鑰進(jìn)行數(shù)字簽名時(shí),基于前述移動(dòng)密碼系統(tǒng),iOS移動(dòng)終端中的密碼模塊及相應(yīng)的密碼服務(wù)器通過使用各自的用戶 SM2私鑰的秘密份額,能有效地生成SM2數(shù)字簽名。

3 結(jié)論

本文針對(duì)當(dāng)前沒有密碼硬件情況下,安全使用用戶SM2私鑰進(jìn)行數(shù)字簽名的需求,提出了一種基于iOS移動(dòng)終端的SM2移動(dòng)密碼系統(tǒng)方案。提出的方案具有以下優(yōu)勢(shì):

(1)適用性廣,不但適合于兩方共享秘密,而且適合于多方共享秘密,不但適合于普通的秘密共享(共享),而且適合于門限秘密共享(共享)。

(2)提高了在沒有密碼硬件的情況下,用戶SM2私鑰使用的安全性。除非攻擊者能同時(shí)獲得分布在不同裝置中的足夠數(shù)量的秘密份額,否則,攻擊者無(wú)法恢復(fù)用戶私鑰。而攻擊者要同時(shí)獲得分布在不同裝置中的、足夠數(shù)量的秘密份額的可能性非常低,幾乎不可能。

(3)采用門限秘密共享方案,在產(chǎn)生突發(fā)情況,如服務(wù)器崩潰或丟失部分秘密份額時(shí)依然可以使用密碼服務(wù)。在不增加風(fēng)險(xiǎn)的情況下,增加了系統(tǒng)的可靠性。

(4)采用純軟件方式,可用來取代專門的密碼硬件,如USB Key、SmartCard,攜帶方便且降低了成本。

[1] 汪朝暉, 張振峰. SM2橢圓曲線公鑰密碼算法綜述[J]. 信息安全研究, 2016, 2(11): 972-982.

[2] Idrees Z. Elliptic Curves Cryptography[J]. School of Computer Science Physics & Mathematics, 2012.

[3] 左石城, 向繼, 王平建, 等. 本地提供簽名服務(wù)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J]. 軟件, 2017, 38(2): 84-90.

[4] Wang Q. The Application of Elliptic Curves Cryptography in Embedded Systems[C]// International Conference on Embedded Software and Systems. IEEE Computer Society, 2005:527-530.

[5] Zhang B, Liu E, Ding J, et al. Novel Certificate for Authentication Based on Elliptic Curve Cryptography and Vector Space Secret Sharing[J]. Journal of Convergence Information Technology, 2012, 7(13): 420-426.

[6] 孫榮燕, 蔡昌曙, 周洲, 等. 國(guó)密SM2數(shù)字簽名算法與ECDSA算法對(duì)比分析研究[J]. 網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2013(2): 60-62.

[7] 陳澤凱. 一種基于身份的SM2橢圓曲線數(shù)字簽名方案及其在離線文檔認(rèn)證中的應(yīng)用[D]. 廈門大學(xué), 2016.

[8] 馬駿, 馬建峰, 郭淵博. 可證明安全的智能移動(dòng)終端私鑰保護(hù)方案[J]. 通信學(xué)報(bào), 2012(12): 108-115.

[9] 王蕓, 趙長(zhǎng)江. 安全的移動(dòng)終端數(shù)字簽名方案.中國(guó)科技信息, 2015, (22): 52-54.

[10] 陳小梅. 一種基于ECC的安全移動(dòng)支付協(xié)議[J]. 軟件,2013(12): 202-204.

[11] Spaliaras I, Dokouzyannis S. Design and Evaluation of a New Scheme Based on Secret Sharing Mechanisms that Increases the Security of Conditional Access Systems in Satellite Pay-TV[J]. Wireless Personal Communications, 2015,82(3): 1-21.

[12] 榮輝桂, 莫進(jìn)俠, 常炳國(guó), 等. 基于Shamir秘密共享的密鑰分發(fā)與恢復(fù)算法[J]. 通信學(xué)報(bào), 2015(3): 60-69.

[13] 張文娟, 張錦華. 基于ELGamal密碼體制的安全密鑰托管方案[J]. 軟件, 2012, 33(6): 20-22.

[14] Harn L, Hsu C F, Xia Z, et al. How to Share Secret Efficiently over Networks[J]. Security & Communication Networks, 2017, 2017(4): 1-6.

猜你喜歡
數(shù)字簽名私鑰門限
清掃機(jī)器人避障系統(tǒng)區(qū)塊鏈私鑰分片存儲(chǔ)方法
比特幣的安全性到底有多高
基于規(guī)則的HEV邏輯門限控制策略
地方債對(duì)經(jīng)濟(jì)增長(zhǎng)的門限效應(yīng)及地區(qū)差異研究
基于改進(jìn)ECC 算法的網(wǎng)絡(luò)信息私鑰變換優(yōu)化方法
淺析計(jì)算機(jī)安全防護(hù)中數(shù)字簽名技術(shù)的應(yīng)用
隨機(jī)失效門限下指數(shù)退化軌道模型的分析與應(yīng)用
一種基于虛擬私鑰的OpenSSL與CSP交互方案
基于數(shù)字簽名的QR碼水印認(rèn)證系統(tǒng)
數(shù)字簽名簡(jiǎn)述
土默特右旗| 霸州市| 九台市| 乌恰县| 高淳县| 永嘉县| 乾安县| 偃师市| 郑州市| 阿勒泰市| 曲阜市| 沈阳市| 剑河县| 微山县| 合川市| 塔河县| 齐河县| 建水县| 秦安县| 合肥市| 信宜市| 东平县| 五大连池市| 南安市| 泗水县| 南漳县| 肇源县| 惠东县| 淳安县| 石渠县| 鸡西市| 彝良县| 龙口市| 陇西县| 无锡市| 华蓥市| 吴忠市| 佳木斯市| 文登市| 平原县| 永康市|