本發(fā)明涉及安全領(lǐng)域,具體地,涉及一種基于國(guó)密sm2算法和sm9算法的非對(duì)稱安全裝置。
背景技術(shù):
非對(duì)稱加密算法采用公鑰和私鑰兩個(gè)密鑰來進(jìn)行加密和解密。由于其采用兩個(gè)不同的密鑰,而且可以將公鑰公開,便于他人向私鑰擁有者發(fā)送加密信息而不用擔(dān)心密鑰泄漏。與非對(duì)稱加密算法的相對(duì)的對(duì)稱加密算法,發(fā)送方和接收方必須使用相同的密鑰,因此任何一方泄漏密鑰就會(huì)導(dǎo)致密鑰泄漏,因而密鑰泄漏風(fēng)險(xiǎn)相對(duì)較大。
非對(duì)稱加密算法自從rsa成功應(yīng)用以來已經(jīng)得到了廣泛的研究。橢圓曲線加密算法是非對(duì)稱加密算法的一種,目前也已經(jīng)得到了廣泛的應(yīng)用。我國(guó)目前已經(jīng)基于橢圓曲線加密算法公布了sm2和sm9兩種算法。sm2是國(guó)家密碼管理局于2010年12月發(fā)布的橢圓曲線加密算法(ecc),相比于國(guó)際上的ecc標(biāo)準(zhǔn),sm2算法采用了更安全的機(jī)制,并推薦了一條256位的曲線作為標(biāo)準(zhǔn)曲線。sm9是國(guó)家密碼管理局于2007年12月發(fā)布的標(biāo)識(shí)密碼算法(ibc),sm9算法采用更高的安全性,并可以有多種安全曲線選擇的可能,算法自主設(shè)計(jì),其先進(jìn)性達(dá)到了國(guó)際水平。sm2算法是pki的關(guān)鍵技術(shù),可以實(shí)現(xiàn)強(qiáng)身份認(rèn)證。sm9算法方便易用,屬于輕量級(jí)公鑰密碼算法。另外,sm2算法和sm9算法融合使用可以解決特定應(yīng)用場(chǎng)景的安全問題。研發(fā)一款既支持sm2算法又支持sm9算法的智能密碼鑰匙有著現(xiàn)實(shí)需求和重要意義。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的是提供一種基于橢圓曲線加密算法ecc的非對(duì)稱安全裝置,以實(shí)現(xiàn)基于橢圓曲線加密算法的裝置。
為了實(shí)現(xiàn)上述目的,本發(fā)明提供了一種基于非對(duì)稱加密的安全裝置,該安全裝置包括:大數(shù)運(yùn)算模塊,用于進(jìn)行加、減、乘、除、模加、模減、模乘以及模冪運(yùn)算;ecc運(yùn)算模塊,用于進(jìn)行ecc的普加、倍加和點(diǎn)乘運(yùn)算;擴(kuò)域元素運(yùn)算模塊,用于進(jìn)行擴(kuò)域元素的模加、模減、模乘以及模冪運(yùn)算;擴(kuò)域ecc運(yùn)算模塊,用于進(jìn)行擴(kuò)域ecc的普加、倍加和點(diǎn)乘運(yùn)算;ecc配對(duì)運(yùn)算模塊,用于進(jìn)行集合映射;sm9加密算法協(xié)議模塊,用于根據(jù)sm9加密算法并利用大數(shù)運(yùn)算模塊、ecc運(yùn)算模塊、擴(kuò)域元素運(yùn)算模塊、擴(kuò)域ecc運(yùn)算模塊、以及ecc配對(duì)運(yùn)算模塊進(jìn)行加密、解密、簽名驗(yàn)證以及密鑰交換;其中所述大數(shù)運(yùn)算模塊的輸出作為所述擴(kuò)域元素運(yùn)算模塊的輸入,所述擴(kuò)域元素運(yùn)算模塊的輸出作為擴(kuò)域ecc運(yùn)算模塊的輸入,所述擴(kuò)域ecc運(yùn)算模塊的輸出作為所述ecc配對(duì)運(yùn)算模塊的輸入。
優(yōu)選地,該非對(duì)稱安全裝置還包括sm2加密算法協(xié)議模塊,用于根據(jù)sm2加密算法并利用ecc運(yùn)算模塊以及大數(shù)運(yùn)算模塊進(jìn)行加密、解密、簽名驗(yàn)證以及密鑰交換。
優(yōu)選地,該非對(duì)稱安全裝置還包括usb通信模塊,用于發(fā)送或接收加密或解密的數(shù)據(jù)。
優(yōu)選地,該非對(duì)稱安全裝置還包括硬件接口模塊,用于進(jìn)行密碼運(yùn)算、產(chǎn)生隨機(jī)數(shù)以及訪問閃存。
優(yōu)選地,該非對(duì)稱安全裝置還包括管理模塊,用于進(jìn)行安全管理、命令管理、文件管理以及文件訪問控制管理。
優(yōu)選地,所述安全管理包括身份認(rèn)證管理、安全狀態(tài)認(rèn)證管理以及掉電保護(hù)管理。
優(yōu)選地,所述命令管理包括基本命令管理以及pki命令管理。
優(yōu)選地,所述文件訪問控制管理包括創(chuàng)建文件管理、刪除文件管理、讀文件管理、寫文件管理以及查找文件管理。
本發(fā)明提供的安全裝置采用橢圓曲線加密算法,并且可以支持國(guó)家密碼管理局發(fā)布的加密算法sm2和sm9,能夠滿足用戶在不同場(chǎng)景下的安全使用需求。
本發(fā)明的其它特征和優(yōu)點(diǎn)將在隨后的具體實(shí)施方式部分予以詳細(xì)說明。
附圖說明
附圖是用來提供對(duì)本發(fā)明的進(jìn)一步理解,并且構(gòu)成說明書的一部分,與下面的具體實(shí)施方式一起用于解釋本發(fā)明,但并不構(gòu)成對(duì)本發(fā)明的限制。在附圖中:
圖1是本發(fā)明提供的基于sm9的安全裝置示意圖;
圖2是本發(fā)明提供的基于sm9以及sm2的安全裝置示意圖;
圖3是本發(fā)明提供的管理模塊、usb通信模塊以及硬件接口模塊的功能示意圖。
具體實(shí)施方式
以下結(jié)合附圖對(duì)本發(fā)明的具體實(shí)施方式進(jìn)行詳細(xì)說明。應(yīng)當(dāng)理解的是,此處所描述的具體實(shí)施方式僅用于說明和解釋本發(fā)明,并不用于限制本發(fā)明。
圖1示出了本發(fā)明提供的基于sm9算法的安全裝置示意圖,具體包括大數(shù)運(yùn)算模塊、ecc運(yùn)算模塊、擴(kuò)域元素運(yùn)算模塊、擴(kuò)域ecc運(yùn)算模塊、ecc配對(duì)運(yùn)算模塊、以及sm9加密算法協(xié)議模塊。其中,大數(shù)運(yùn)算模塊, 用于進(jìn)行加、減、乘、除、模加、模減、模乘以及模冪運(yùn)算;ecc運(yùn)算模塊,用于進(jìn)行ecc的普加、倍加和點(diǎn)乘運(yùn)算;擴(kuò)域元素運(yùn)算模塊,用于進(jìn)行擴(kuò)域元素的模加、模減、模乘以及模冪運(yùn)算;擴(kuò)域ecc運(yùn)算模塊,用于進(jìn)行擴(kuò)域ecc的普加、倍加和點(diǎn)乘運(yùn)算;ecc配對(duì)運(yùn)算模塊,用于進(jìn)行集合映射;sm9加密算法協(xié)議模塊,用于根據(jù)sm9加密算法并利用大數(shù)運(yùn)算模塊、ecc運(yùn)算模塊、擴(kuò)域元素運(yùn)算模塊、擴(kuò)域ecc運(yùn)算模塊、以及ecc配對(duì)運(yùn)算模塊進(jìn)行加密、解密、簽名驗(yàn)證以及密鑰交換;其中所述大數(shù)運(yùn)算模塊的輸出作為所述擴(kuò)域元素運(yùn)算模塊的輸入,所述擴(kuò)域元素運(yùn)算模塊的輸出作為擴(kuò)域ecc運(yùn)算模塊的輸入,所述擴(kuò)域ecc運(yùn)算模塊的輸出作為所述ecc配對(duì)運(yùn)算模塊的輸入。
如上所述,基于大數(shù)運(yùn)算和ecc運(yùn)算,可以實(shí)現(xiàn)sm9相關(guān)的運(yùn)算?,F(xiàn)有技術(shù)中尚無實(shí)現(xiàn)標(biāo)識(shí)密碼sm9算法相關(guān)的協(xié)處理器。本領(lǐng)域技術(shù)人員可以根據(jù)上述的安全裝置通過硬件來實(shí)現(xiàn)基于sm9算法的安全裝置,也可以通過嵌入式開發(fā),采用諸如codewarrioride開發(fā)工具,調(diào)用大數(shù)運(yùn)算和ecc運(yùn)算,程序?qū)崿F(xiàn)sm9相關(guān)運(yùn)算?;诖髷?shù)運(yùn)算,程序?qū)崿F(xiàn)擴(kuò)域元素的運(yùn)算,包括擴(kuò)域元素的模加、模減、模乘和模冪?;诖髷?shù)運(yùn)算和擴(kuò)域元素運(yùn)算,程序?qū)崿F(xiàn)擴(kuò)域ecc運(yùn)算,包括擴(kuò)域ecc上點(diǎn)的普加、倍加和點(diǎn)乘?;诖髷?shù)運(yùn)算、擴(kuò)域元素運(yùn)算和擴(kuò)域ecc運(yùn)算,程序?qū)崿F(xiàn)ecc配對(duì)運(yùn)算。最后,基于大數(shù)運(yùn)算、ecc運(yùn)算、擴(kuò)域元素運(yùn)算、擴(kuò)域ecc運(yùn)算和ecc配對(duì)運(yùn)算,可以程序?qū)崿F(xiàn)ibc/sm9密碼協(xié)議,包括ibc/sm9的加密解密、簽名驗(yàn)證和密鑰交換協(xié)議。
sm9加密算法是基于身份的密碼技術(shù)。身份可以是用戶唯一身份標(biāo)識(shí),如電子郵箱地址、手機(jī)號(hào)、稅號(hào)等直接作為系統(tǒng)中用戶的公鑰信息,因而避免了繁瑣的數(shù)字證書管理問題。在2001年,基于橢圓曲線和weil配對(duì)數(shù)學(xué)理論,斯坦福大學(xué)計(jì)算機(jī)科學(xué)技術(shù)系的教授danboneh和加州大學(xué)戴維斯分 院的教授mattfranklin分別發(fā)明了具體可實(shí)施的ibc方案,簡(jiǎn)稱bf-ibc算法。
基于身份密碼相關(guān)的簡(jiǎn)稱有ibe、ibc和sm9。ibe為identity-basedencryption的縮寫,意為基于身份的加密;ibc為identity-basedcryptograph,意為基于身份的密碼體制;sm9是中國(guó)密碼管理局在2007年制定的ibc技術(shù)標(biāo)準(zhǔn)規(guī)范,其完整名稱為基于對(duì)的標(biāo)識(shí)密碼算法。bf-ibc算法基于橢圓曲線密碼技術(shù)和雙線性配對(duì)的數(shù)學(xué)理論。bf-ibc算法的安全性基于橢圓曲線離散對(duì)數(shù)問題(ecdlp)的困難性。
下面通過示例來說明使用ibc技術(shù)進(jìn)行加解密的過程,其中發(fā)送方為alice,接收方為bob。
為了對(duì)傳送給bob的信息進(jìn)行加密,alice選擇隨機(jī)數(shù)r并且計(jì)算k:k=ê(rqidbob,sp),接著用k發(fā)送密文ek[message]和rp給bob。
bob接收后,通過計(jì)算得到的數(shù)值k:k=ê(sqidbob,rp),接著用k解密ek[message],得到明文,只有bob知道自己的私鑰sqidbob,別的用戶得不到k值。
上述加解密過程中,s是主密鑰,p和sp都是系統(tǒng)公共參數(shù),idbob是接收方bob的身份信息所對(duì)應(yīng)的曲線上的點(diǎn),在安全電子郵件中,就是bob的email地址,qidbob是身份信息對(duì)應(yīng)的曲線上的點(diǎn),ek[message]表示利用k和對(duì)稱密碼算法加密明文,sqidbob是用戶bob的私鑰信息。
此外,上述的安全裝置可以結(jié)合usb通信模塊來實(shí)現(xiàn)usb鑰匙,usb通信模塊可以用于發(fā)送或接收加密或解密的數(shù)據(jù)。
為了同時(shí)在同一個(gè)安全裝置中還實(shí)現(xiàn)sm2算法,本發(fā)明可以通過復(fù)用大數(shù)運(yùn)算模塊以及ecc運(yùn)算模塊以及增加sm2加密算法協(xié)議模塊來實(shí)現(xiàn)。同時(shí)實(shí)現(xiàn)sm9和sm2算法的安全裝置如圖2所示?;诖髷?shù)運(yùn)算可以實(shí)現(xiàn)ecc運(yùn)算和ecc/sm2協(xié)議運(yùn)算,ecc運(yùn)算包括橢圓曲線上點(diǎn)的普加、倍加 和點(diǎn)乘運(yùn)算,ecc/sm2協(xié)議運(yùn)算包括加密解密、簽名驗(yàn)證和密鑰交換協(xié)議的運(yùn)算。較佳的,可以選取一款支持ecc/sm2算法的密碼芯片,通過硬件計(jì)算ecc運(yùn)算和ecc/sm2協(xié)議運(yùn)算,以獲取更快速度和更高效率。此外,也可以通過嵌入式開發(fā),采用諸如codewarrioride開發(fā)工具,調(diào)用底層硬件大數(shù)運(yùn)算接口,程序?qū)崿F(xiàn)ecc運(yùn)算和ecc/sm2協(xié)議運(yùn)算。
下面說明sm2加密算法的加密過程、解密過程以及簽名驗(yàn)算過程,其中涉及一條定義在有限域f上符合安全需求的橢圓曲線e,它的基點(diǎn)是g,基點(diǎn)的階是n。信息發(fā)送方a的私鑰為da,公鑰為pa=dag;信息接收方b的私鑰為db,公鑰為pb=dbg。
加密算法:
設(shè)需要發(fā)送的消息為比特串m,klen為m的比特長(zhǎng)度。為了對(duì)明文m進(jìn)行加密,作為加密者的用戶a應(yīng)實(shí)現(xiàn)以下運(yùn)算步驟:
a1:用隨機(jī)數(shù)發(fā)生器產(chǎn)生隨機(jī)數(shù)k∈[1,n-1];
a2:計(jì)算橢圓曲線點(diǎn)c1=[k]g=(x1,y1),按sm2算法文本第1部分4.2.8和4.2.4給出的細(xì)節(jié),將c1的數(shù)據(jù)類型轉(zhuǎn)換為比特串;
a3:計(jì)算橢圓曲線點(diǎn)s=[h]pb,若s是無窮遠(yuǎn)點(diǎn),則報(bào)錯(cuò)并退出;
a4:計(jì)算橢圓曲線點(diǎn)[k]pb=(x2,y2),按本文本第1部分4.2.5和4.2.4給出的細(xì)節(jié),將坐標(biāo)x2、y2的數(shù)據(jù)類型轉(zhuǎn)換為比特串;
a5:按sm2算法文本第4部分5.4.3給出的密鑰派生函數(shù),計(jì)算t=kdf(x2||y2,klen),若t為全0比特串,則返回a1;
a6:計(jì)算c2=m⊕t;
a7:計(jì)算c3=hash(x2||m||y2);
a8:輸出密文c=c1||c2||c3。
解密算法:
設(shè)klen為密文中c2的比特長(zhǎng)度。
為了對(duì)密文c=c1||c2||c3進(jìn)行解密,作為解密者的用戶b應(yīng)實(shí)現(xiàn)以下運(yùn)算步驟:
b1:從c中取出比特串c1,按sm2算法文本第1部分4.2.3和4.2.9給出的細(xì)節(jié),將c1的數(shù)據(jù)類型轉(zhuǎn)換為橢圓曲線上的點(diǎn),驗(yàn)證c1是否滿足橢圓曲線方程,若不滿足則報(bào)錯(cuò)并退出;
b2:計(jì)算橢圓曲線點(diǎn)s=[h]c1,若s是無窮遠(yuǎn)點(diǎn),則報(bào)錯(cuò)并退出;
b3:計(jì)算[db]c1=(x2,y2),按本文本第1部分4.2.5和4.2.4給出的細(xì)節(jié),將坐標(biāo)x2、y2的數(shù)據(jù)類型轉(zhuǎn)換為比特串;
b4:按sm2算法文本第4部分5.4.3給出的密鑰派生函數(shù),計(jì)算t=kdf(x2||y2,klen),若t為全0比特串,則報(bào)錯(cuò)并退出;
b5:從c中取出比特串c2,計(jì)算m′=c2⊕t;
b6:計(jì)算u=hash(x2||m′||y2),從c中取出比特串c3,若u≠c3,則報(bào)錯(cuò)并退出;
b7:輸出明文m′。
sm2簽名驗(yàn)證算法
作為簽名者的用戶a具有長(zhǎng)度為entlena比特的可辨別標(biāo)識(shí)ida,記entla是由整數(shù)entlena轉(zhuǎn)換而成的兩個(gè)字節(jié),在規(guī)定的橢圓曲線數(shù)字簽名算法中,簽名者和驗(yàn)證者都需要用密碼雜湊函數(shù)求得用戶a的雜湊值z(mì)a。按sm2算法文本第1部分4.2.5和4.2.4給出的細(xì)節(jié),將橢圓曲線方程參數(shù)a、b、g的坐標(biāo)xg、yg和pa的坐標(biāo)xa、ya的數(shù)據(jù)類型轉(zhuǎn)換為比特串,za=h256(entla||ida||a||b||xg||yg||xa||ya)。
設(shè)待簽名的消息為m,為了獲取消息m的數(shù)字簽名(r,s),作為簽名者的 用戶a應(yīng)實(shí)現(xiàn)以下運(yùn)算步驟:
a1:置
a2:計(jì)算
a3:用隨機(jī)數(shù)發(fā)生器產(chǎn)生隨機(jī)數(shù)k∈[1,n-1];
a4:計(jì)算橢圓曲線點(diǎn)(x1,y1)=[k]g,按sm2算法文本第1部分4.2.7給出的細(xì)節(jié)將x1的數(shù)據(jù)類型轉(zhuǎn)換為整數(shù);
a5:計(jì)算r=(e+x1)modn,若r=0或r+k=n則返回a3;
a6:計(jì)算s=((1+da)-1·(k-r·da))modn,若s=0則返回a3;
a7:按sm2算法文本第1部分4.2.1給出的細(xì)節(jié)將r、s的數(shù)據(jù)類型轉(zhuǎn)換為字節(jié)串,消息m的簽名為(r,s)。
為了檢驗(yàn)收到的消息m′及其數(shù)字簽名(r′,s′),作為驗(yàn)證者的用戶b應(yīng)實(shí)現(xiàn)以下運(yùn)算步驟:
b1:檢驗(yàn)r′∈[1,n-1]是否成立,若不成立則驗(yàn)證不通過;
b2:檢驗(yàn)s′∈[1,n-1]是否成立,若不成立則驗(yàn)證不通過;
b3:置
b4:計(jì)算
b5:按sm2算法文本第1部分4.2.2給出的細(xì)節(jié)將r′、s′的數(shù)據(jù)類型轉(zhuǎn)換為整數(shù),計(jì)算t=(r′+s′)modn,若t=0,則驗(yàn)證不通過;
b6:計(jì)算橢圓曲線點(diǎn)(x1′,y1′)=[s′]g+[t]pa;
b7:按sm2算法文本第1部分4.2.7給出的細(xì)節(jié)將x1′的數(shù)據(jù)類型轉(zhuǎn)換為整數(shù),計(jì)算r=(e′+x1′)modn,檢驗(yàn)r=r′是否成立,若成立則驗(yàn)證通過;否則驗(yàn)證不通過。
同樣地,也可以通過復(fù)用usb通信模塊實(shí)現(xiàn)支持sm9和sm2算法的usb鑰匙。
優(yōu)選地,可以基于標(biāo)準(zhǔn)的外部接口,包括加密、解密、簽名和驗(yàn)證,實(shí)現(xiàn)pkcs11國(guó)際標(biāo)準(zhǔn)和csp微軟標(biāo)準(zhǔn)支持sm2算法,進(jìn)而實(shí)現(xiàn)智能密碼鑰匙支持基于sm2算法的x509數(shù)字證書。
在pkcs11中,可以將sm2的公私鑰打包成一個(gè)特有的數(shù)據(jù)結(jié)構(gòu)對(duì)象,可以由用戶創(chuàng)建臨時(shí)會(huì)話對(duì)象進(jìn)行算法操作,也可以由用戶將公私鑰對(duì)象寫入智能密碼鑰匙之中,在使用密鑰的權(quán)限方面,需要校驗(yàn)用戶或管理員口令。加入sm2算法機(jī)制,并檢驗(yàn)sm2算法的標(biāo)識(shí),在不同的密鑰模板、密文模板、簽名模板和驗(yàn)簽?zāi)0謇铮0逶偻ㄟ^屬性鏈表來管理,根據(jù)sm2算法特性,進(jìn)行優(yōu)化存儲(chǔ)和數(shù)據(jù)組織。通過這種實(shí)現(xiàn)方式,可以獲取對(duì)象的某個(gè)屬性和增加刪除某個(gè)屬性。在運(yùn)算過程中,pkcs11會(huì)根據(jù)會(huì)話模板中臨時(shí)存儲(chǔ)的數(shù)據(jù)和硬件設(shè)備中的數(shù)據(jù)進(jìn)行調(diào)度,以達(dá)到運(yùn)算時(shí)的最大性能。
在csp的實(shí)現(xiàn)中,需要重點(diǎn)考慮密鑰生成、明文或密文方式導(dǎo)入導(dǎo)出密鑰、進(jìn)行加密解密、簽名驗(yàn)簽操作和sm3的摘要操作。密鑰生成時(shí),會(huì)根據(jù)所在容器的名稱和屬性,將sm2公私鑰放在特定的blob對(duì)象中。明文導(dǎo)入或?qū)С雒荑€時(shí),sm2公私鑰分別各自的blob格式直接導(dǎo)入或臨時(shí)導(dǎo)入到硬件容器中。密文導(dǎo)入時(shí),會(huì)用相應(yīng)的對(duì)稱密鑰句柄(事先導(dǎo)入的對(duì)稱密鑰明文或用公私加密的對(duì)稱密鑰密文產(chǎn)生)導(dǎo)入加密過的公鑰或私鑰密文。導(dǎo)出密鑰時(shí),可以通過私鑰來直接計(jì)算出公鑰,并以明文或者密文的方式導(dǎo)出。加解密過程時(shí),需要先從容器中提取出密鑰句柄,再進(jìn)行運(yùn)算操作,此處公鑰可以是明文方式存儲(chǔ)在內(nèi)存中。簽名和驗(yàn)簽時(shí),在sm3摘要運(yùn)算中,先把z值計(jì)算出來,存儲(chǔ)在csp層。當(dāng)需要私鑰來簽名時(shí),將其提取出來,進(jìn)行簽名和驗(yàn)簽運(yùn)算。簽名操作同時(shí)需要用戶權(quán)限管理。
x509格式的證書,可以用openssl的函數(shù)來提取出版本、序列號(hào)、簽 名算法、頒發(fā)者、有效期、使用者、公鑰、密鑰用法等字段信息。對(duì)于sm2格式的證書,只需通過算法標(biāo)識(shí)、公鑰位數(shù)、簽名算法等信息來區(qū)別于普通rsa算法格式的證書。根據(jù)國(guó)家密碼管理局的規(guī)定,sm2證書中簽名算法oid為1.2.156.10197.1.501,公鑰算法的oid為1.2.840.10045.2.1,目前大部分的廠商并不識(shí)別這兩個(gè)算法,能識(shí)別的系統(tǒng)直接顯示的是sm2算法。sm2證書在windows系統(tǒng)上,可以通過查看證書屬性中的簽名算法和公鑰算法來判斷是否為sm2的證書。
為了對(duì)安全裝置進(jìn)行管理,本發(fā)明中還提供了管理模塊,用于進(jìn)行安全管理、命令管理、文件管理以及文件訪問控制管理。在通過嵌入式系統(tǒng)實(shí)現(xiàn)加密算法的過程中,為了加快運(yùn)算速度,需要調(diào)用底層的硬件單元,因此本發(fā)明提供了硬件接口模塊,用于進(jìn)行密碼運(yùn)算、產(chǎn)生隨機(jī)數(shù)以及訪問閃存。硬件接口模塊主要封裝了芯片硬件模塊的功能,為別的模塊提供產(chǎn)生隨機(jī)數(shù)接口、密碼運(yùn)算接口和讀寫norflash接口。
圖3示出了本發(fā)明提供的管理模塊、usb通信模塊以及硬件接口模塊的功能示意圖。管理模塊可以包括命令管理模塊、文件訪問控制和文件管理模塊、安全管理模塊。pc端通過usb接口給智能密碼鑰匙發(fā)送命令,智能密碼鑰匙的通信模塊接收到命令后,把命令頭和命令數(shù)據(jù)送給命令管理模塊,由命令管理模塊負(fù)責(zé)解析和執(zhí)行命令,并把響應(yīng)數(shù)據(jù)和狀態(tài)返回給通信模塊,通信模塊再發(fā)送給pc端。命令管理模塊可以用于進(jìn)行基本命令管理以及pki命令管理,例如調(diào)用安全管理模塊、文件訪問控制和文件管理模塊。安全管理模塊可以用于進(jìn)行身份認(rèn)證管理、安全狀態(tài)認(rèn)證管理和/或掉電保護(hù)管理。文件管理模塊可以用于創(chuàng)建文件管理、刪除文件管理、讀文件管理、寫文件管理和/或查找文件管理。文件訪問控制和文件管理模塊實(shí)現(xiàn)文件系統(tǒng)功能,并為別的模塊提供文件訪問接口。文件系統(tǒng)的設(shè)計(jì)包括文件結(jié)構(gòu)、文件類型、文件標(biāo)識(shí)、文件權(quán)限和文件查詢。文件系統(tǒng)提供的文件訪問接口包 括:創(chuàng)建文件、刪除文件、打開文件、關(guān)閉文件、讀文件、寫文件和查找文件。
以上結(jié)合附圖詳細(xì)描述了本發(fā)明的優(yōu)選實(shí)施方式,但是,本發(fā)明并不限于上述實(shí)施方式中的具體細(xì)節(jié),在本發(fā)明的技術(shù)構(gòu)思范圍內(nèi),可以對(duì)本發(fā)明的技術(shù)方案進(jìn)行多種簡(jiǎn)單變型,這些簡(jiǎn)單變型均屬于本發(fā)明的保護(hù)范圍。
另外需要說明的是,在上述具體實(shí)施方式中所描述的各個(gè)具體技術(shù)特征,在不矛盾的情況下,可以通過任何合適的方式進(jìn)行組合。為了避免不必要的重復(fù),本發(fā)明對(duì)各種可能的組合方式不再另行說明。
此外,本發(fā)明的各種不同的實(shí)施方式之間也可以進(jìn)行任意組合,只要其不違背本發(fā)明的思想,其同樣應(yīng)當(dāng)視為本發(fā)明所公開的內(nèi)容。