• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      一種實(shí)現(xiàn)COS數(shù)據(jù)安全的SM2算法

      2013-10-23 12:37:58娟,伍
      關(guān)鍵詞:智能卡公鑰解密

      肖 娟,伍 娟

      (1.武漢工業(yè)學(xué)院電氣與電子工程學(xué)院,湖北武漢 430023;2.武漢天喻信息產(chǎn)業(yè)股份有限公司研發(fā)中心,湖北武漢 430223)

      隨著智能卡技術(shù)的發(fā)展,智能卡目前已在通信、交通管理、企事業(yè)內(nèi)部管理、稅務(wù)、公用事業(yè)收費(fèi)、金融領(lǐng)域等方面得到了廣泛的應(yīng)用。為了防止數(shù)據(jù)在傳輸?shù)倪^程中被非法竊聽、截取、篡改或破壞,智能卡操作系統(tǒng)使用密碼算法來(lái)保證數(shù)據(jù)的安全[1]。目前密碼算法主要分為兩類:對(duì)稱密鑰算法(DES、AES等),非對(duì)稱密鑰算法(RSA、ECC等)。對(duì)稱密鑰算法的計(jì)算過程非常簡(jiǎn)單,并且密鑰的長(zhǎng)度不夠長(zhǎng),很容易被攻破[2]。為了數(shù)據(jù)安全的需要,智能卡操作系統(tǒng)需要支持功能更強(qiáng)大的非對(duì)稱密鑰算法。RSA算法數(shù)學(xué)原理簡(jiǎn)單、在工程應(yīng)用中比較易于實(shí)現(xiàn),但它的單位安全強(qiáng)度相對(duì)較低。橢圓曲線加密(ECC)算法的數(shù)學(xué)理論非常深?yuàn)W和復(fù)雜,在工程應(yīng)用中比較難于實(shí)現(xiàn),但它的單位安全強(qiáng)度相對(duì)較高。ECC算法的單位安全強(qiáng)度高于RSA算法,也就是說,要達(dá)到同樣的安全強(qiáng)度,ECC算法所需的密鑰長(zhǎng)度遠(yuǎn)比RSA算法低[2]。這就有效地解決了為了提高安全強(qiáng)度必須增加密鑰長(zhǎng)度所帶來(lái)的工程實(shí)現(xiàn)難度的問題。我國(guó)基于國(guó)家商業(yè)密碼安全等原因,國(guó)家密碼管理局于2010年12月17日發(fā)布了SM2橢圓曲線公鑰密碼算法(屬于ECC算法的一種),并下達(dá)通知:自2011年7月1日起,投入運(yùn)行并使用公鑰密碼的信息系統(tǒng),應(yīng)使用SM2橢圓曲線密碼算法。本文以同方THD86芯片為硬件平臺(tái),實(shí)現(xiàn)了支持SM2算法的智能卡系統(tǒng)以滿足商用的需要,并對(duì)SM2算法和RSA算法在智能卡系統(tǒng)上的性能進(jìn)行了比較和分析。

      1 SM2算法和COS簡(jiǎn)介

      SM2算法是一種新的國(guó)產(chǎn)非對(duì)稱算法,全稱為SM2橢圓曲線公鑰密碼算法。SM2算法采用的橢圓曲線方程為:y2=x3+ax+b,在SM2算法標(biāo)準(zhǔn)中,通過指定a、b系數(shù),確定了唯一的標(biāo)準(zhǔn)曲線[3]。

      SM2算法作為公鑰算法,可以完成簽名、密鑰交換以及加密應(yīng)用。SM2算法標(biāo)準(zhǔn)確定了標(biāo)準(zhǔn)過程:簽名、驗(yàn)簽計(jì)算過程;加密、解密計(jì)算過程;密鑰協(xié)商計(jì)算過程。

      相對(duì)于RSA算法,SM2算法具有以下優(yōu)點(diǎn):①安全性高,192位的SM2密碼強(qiáng)度已經(jīng)比RSA 2048位密碼強(qiáng)度要高。②存儲(chǔ)空間小,SM2算法的密碼一般使用192-256位,RSA算法密碼一般需要使用1024-4096位。③簽名速度快,SM2在私鑰運(yùn)算上,速度遠(yuǎn)比RSA快得多。④國(guó)產(chǎn)算法,無(wú)國(guó)外可利用的后門[4]。

      COS的全稱是Chip Operating System(片內(nèi)操作系統(tǒng)),通常指帶有CPU智能卡的操作系統(tǒng)[5]。安全機(jī)制的實(shí)現(xiàn)是COS安全體系中極為重要的一個(gè)方面。沒有安全機(jī)制,COS就無(wú)法進(jìn)行任何操作。COS的安全機(jī)制實(shí)現(xiàn)如下三個(gè)功能:簽名與驗(yàn)證,數(shù)據(jù)加密與解密,文件訪問的安全控制[6]。SM2算法既可以對(duì)數(shù)據(jù)進(jìn)行簽名和驗(yàn)證,又可以對(duì)數(shù)據(jù)進(jìn)行加密解密,其不易攻破的特點(diǎn)更好的保證了COS的安全性[7]。

      2 COS的系統(tǒng)設(shè)計(jì)

      2.1 COS的運(yùn)行平臺(tái)

      本次設(shè)計(jì)的COS所運(yùn)行的硬件平臺(tái)為同方THD86芯片,THD86芯片是一種帶有CPU的智能卡芯片,該芯片是國(guó)內(nèi)首款32位雙界面CPU卡芯片,具有獨(dú)立運(yùn)算、加解密和存儲(chǔ)能力,其安全性較磁條卡有相當(dāng)大的提高,具備防護(hù)各種芯片攻擊的能力,以防止個(gè)人或機(jī)構(gòu)對(duì)金融IC智能卡的攻擊和破解[8]。

      THD86芯片與一般的CPU智能卡不同的是,該芯片具有豐富的密碼學(xué)算法資源,通過COS對(duì)這些資源的合理調(diào)用,可以實(shí)現(xiàn)對(duì)外來(lái)數(shù)據(jù)的安全性處理,THD86芯片是COS的硬件載體,COS是THD86芯片的軟件基礎(chǔ)。

      2.2 COS運(yùn)行平臺(tái)的構(gòu)成

      同方THD86芯片為COS的硬件平臺(tái),芯片的結(jié)構(gòu)框圖如圖1所示。

      圖1 同方THD86芯片功能框圖

      2.2.1 CPU

      為系統(tǒng)提供運(yùn)行、計(jì)算以及和各個(gè)模塊進(jìn)行通信,型號(hào)為32位ARM Coretex-M0。

      CPU工作時(shí)鐘頻率可配置為1—16 MHz。

      2.2.2 存儲(chǔ)器

      ROM:存儲(chǔ)卡片操作系統(tǒng),56 kB。

      FLASH:提供boot啟動(dòng)程序、內(nèi)核映像、文件系統(tǒng),256-400 kB。

      EEPROM:用戶存儲(chǔ)器,16 -32 kB。

      RAM:CPU數(shù)據(jù)區(qū)10 kB,加密緩沖區(qū)(加密協(xié)處理器數(shù)據(jù),也作CPU數(shù)據(jù)區(qū))24 kB,RF通信區(qū)256 B。

      2.2.3 通用加密協(xié)處理器CCP

      支持RSA/ECC/SM2等非對(duì)稱算法。

      2.2.4 通信接口

      非接觸界面,兼容IOS/IEC 14443 Type-A和Type-B。

      接觸界面,兼容IOS/IEC 7815-3協(xié)議。

      2.3 同方THD86協(xié)處理器CCP提供的SM2算法的接口函數(shù)

      THD86的協(xié)處理器CCP提供了SM2接口API函數(shù),包括 SM2密鑰對(duì)的生成、SM2加/解密、SM2簽名/驗(yàn)證和SM2密鑰協(xié)商。API函數(shù)的功能如下:

      ccpSM2KeyPairGen:生成密鑰對(duì)。

      ccpSM2Encrypt:SM2加密函數(shù),加密后密文長(zhǎng)度=明文長(zhǎng)度+96字節(jié)。

      ccpSM2Decrypt:SM2解密函數(shù),解密后明文長(zhǎng)度=密文長(zhǎng)度-96字節(jié)。

      ccpSetUserMessageData:根據(jù)用戶的ID和待簽名的message數(shù)據(jù)計(jì)算簽名的摘要E,長(zhǎng)度為32字節(jié)。

      ccpSM2Sign:根據(jù)摘要E和私鑰產(chǎn)生message數(shù)據(jù)的64字節(jié)簽名,成功返回0,不成功返回1。

      ccpSM2Verify:根據(jù)摘要 E和公鑰來(lái)驗(yàn)證message數(shù)據(jù)的簽名是否正確,正確返回0,不正確返回1。

      3 COS實(shí)現(xiàn)SM2算法的軟件設(shè)計(jì)

      COS直接運(yùn)行于THD86芯片平臺(tái)上,是智能卡內(nèi)軟件的核心部分,也是卡片所支持全部應(yīng)用的基礎(chǔ)。COS的主要任務(wù)是從智能卡傳出和傳入數(shù)據(jù)、控制命令的執(zhí)行、管理文件、維護(hù)內(nèi)存空間、管理和執(zhí)行加密算法、執(zhí)行應(yīng)用代碼[6]。因此可以將COS系統(tǒng)的軟件設(shè)計(jì)由上而下可以分為3個(gè)部分:應(yīng)用層(API)、內(nèi)核層(kernel)和硬件抽象層(HAL),系統(tǒng)的結(jié)構(gòu)圖如圖2所示。

      圖2 COS軟件設(shè)計(jì)框圖

      應(yīng)用層是應(yīng)用程序(如Applet應(yīng)用,web應(yīng)用等)與COS的接口,是COS軟件設(shè)計(jì)的關(guān)鍵部分,該層提供了PKI應(yīng)用的API接口函數(shù),部分函數(shù)原型及功能如表1所示。當(dāng)上層的應(yīng)用程序調(diào)用API接口函數(shù)時(shí),API函數(shù)通過內(nèi)核層調(diào)用HAL層的CCP的庫(kù)函數(shù)實(shí)現(xiàn)加/解密和簽名等運(yùn)算。圖3和圖4為函數(shù)SM2Calc和SM2Sign的流程圖。

      表1 COS提供的SM2算法API接口函數(shù)

      圖3 應(yīng)用層SM2Calc加解密函數(shù)流程

      內(nèi)核層kernel負(fù)責(zé)組織、管理和維護(hù)智能卡內(nèi)存儲(chǔ)的所有的數(shù)據(jù),同時(shí)對(duì)智能卡內(nèi)數(shù)據(jù)提供安全保障,內(nèi)核層負(fù)責(zé)解析API應(yīng)用層與硬件抽象層之間交互的信息指令,并作相應(yīng)的處理。

      硬件抽象層HAL是THD86的協(xié)處理器CCP的算法接口的庫(kù)函數(shù)定義(2.3函數(shù)的庫(kù)文件),供kernel層調(diào)用,例如SM2公私密鑰對(duì)的產(chǎn)生、SM2簽名功能、SM2驗(yàn)證功能、SM2加密功能、SM2解密功能、SM2密鑰交換功能等。

      4 實(shí)驗(yàn)結(jié)果與分析

      通過通信接口在COS中下載了一個(gè)Applet應(yīng)用并安裝成功,用來(lái)測(cè)試SM2算法的加密、解密、簽名和驗(yàn)簽,分為以下幾個(gè)步驟。

      圖4 應(yīng)用層SM2Sign簽名函數(shù)流程圖

      步驟一:生成 SM2密鑰對(duì),64字節(jié)公鑰sm2pubkey,32 字節(jié)私鑰 sm2prikey。

      步驟二:用公鑰對(duì)明文Message進(jìn)行了SM2加密,得到長(zhǎng)度為128字節(jié)密文Crypto。

      步驟三:用私鑰對(duì)密文Crypto進(jìn)行解密,得到長(zhǎng)度為32字節(jié)明文 MessageAfter Decrypt,與明文Message相同。

      步驟四:用公鑰和用戶ID(usID)將Message轉(zhuǎn)換為長(zhǎng)度為32字節(jié)的數(shù)據(jù)E。

      步驟五:用私鑰對(duì) E進(jìn)行簽名運(yùn)算,得到Message的簽名。

      步驟六:用公鑰對(duì)Message的簽名的簽名進(jìn)行驗(yàn)證,返回簽名正確。

      實(shí)驗(yàn)數(shù)據(jù)表明,該COS系統(tǒng)支持的SM2算法在加密、解密、簽名、驗(yàn)簽的計(jì)算結(jié)果正確,符合商用的標(biāo)準(zhǔn),以上步驟的具體數(shù)據(jù)如表2所示。

      表2 SM2算法加/解密和簽名結(jié)果

      本文還在THD86芯片上對(duì)SM2算法和RSA算法的性能進(jìn)行了測(cè)試,測(cè)試的通信模式采用接觸式,工作頻率為系統(tǒng)時(shí)鐘16 M、協(xié)處理器32 M,實(shí)驗(yàn)結(jié)果見表3。

      表3 SM2和RSA算法的性能比較

      運(yùn)行的數(shù)據(jù)表明SM2算法在存儲(chǔ)空間和簽名加密上較RSA算法有很大的優(yōu)勢(shì)。SM2算法比RSA算法簽名速度快,驗(yàn)簽速度比RSA算法慢,SM2算法加密速度比RSA算法快,但解密速度比RSA算法慢。表3中可以看出:SM2算法的密鑰長(zhǎng)度為256位,遠(yuǎn)遠(yuǎn)小于RSA算法的1024位,說明SM2算法需要的存儲(chǔ)空間遠(yuǎn)遠(yuǎn)小于RSA算法。

      5 結(jié)束語(yǔ)

      本文以同方THD86為硬件平臺(tái),在COS中實(shí)現(xiàn)了SM2算法,并對(duì)SM2算法相對(duì)與RSA的優(yōu)勢(shì)進(jìn)行了證明。通過多個(gè)APPLET應(yīng)用的測(cè)試,COS系統(tǒng)能正確對(duì)輸入數(shù)據(jù)進(jìn)行SM2加密和解密,以及簽名和驗(yàn)簽,能滿足商用的要求。SM2算法效率高、破解難度大,隨著信息安全發(fā)展,國(guó)家密碼管理局已經(jīng)指定SM2算法取代RSA算法,在今后的應(yīng)用中會(huì)有更大的發(fā)展空間。

      [1]王振.用SM2算法芯片實(shí)現(xiàn)嵌入式系統(tǒng)的安全設(shè)計(jì)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2012(4):75-76.

      [2]胡振宇,蔣建春.密碼學(xué)基礎(chǔ)與安全應(yīng)用[M].北京:北京郵電大學(xué)出版社,2008:33-36.

      [3]國(guó)家密碼管理局.SM2橢圓曲線公鑰密碼算法[EB/OL].(2010 -12 -22).http://www.oscca.gov.cn/UpFile/2010122214822692.pdf.

      [4]天卓軟件.關(guān)于SM2橢圓曲線密碼算法[EB/OL].(2012 - 08 - 17).http://www.gztzsoft.com/fangan.asp?id=14.

      [5]韋小剛,黃宜彬,楊維永.一種基于ISO/IEC7816的COS的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2012,22(3):230 -231.

      [6]郭鴻志,李代平.智能卡芯片操作系統(tǒng)的研究與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì),2010,31(19):4186-4189.

      [7]LaiJyu-Yuan, Huang Chih-Tsun. A highly efficient cipher processor for dual-field elliptic curve cryptography[J].IEEE Trans.on Circuits and Systems-Ⅱ:Express Briefs,2009,56(5):394 -398.

      [8]同方微電子.同方微電子3S理念護(hù)航金融IC卡[EB/OL].(2011 - 11 - 09).http://www.tsinghuaic. com/article/article. asp? id =483177&bid=8572.

      猜你喜歡
      智能卡公鑰解密
      解密“熱脹冷縮”
      解密“一包三改”
      炫詞解密
      東方磁卡李曉東:進(jìn)擊的智能卡研發(fā)巨子
      一種基于混沌的公鑰加密方案
      基于STC89 單片機(jī)的非接觸智能卡讀寫機(jī)設(shè)計(jì)
      電子制作(2017年17期)2017-12-18 06:40:36
      HES:一種更小公鑰的同態(tài)加密算法
      SM2橢圓曲線公鑰密碼算法綜述
      臨沂機(jī)頂盒智能卡升級(jí)方案介紹
      解密“大調(diào)解”
      德化县| 合山市| 阳信县| 金沙县| 常德市| 乃东县| 郑州市| 苏州市| 信阳市| 庆阳市| 亳州市| 攀枝花市| 江西省| 长乐市| 泸溪县| 嘉定区| 赣州市| 于都县| 登封市| 绿春县| 吴桥县| 阳泉市| 贞丰县| 丰原市| 平遥县| 利川市| 清镇市| 红桥区| 天水市| 山丹县| 北海市| 盐源县| 南昌县| 河西区| 盐亭县| 东山县| 仲巴县| 梅河口市| 施甸县| 苏尼特左旗| 海盐县|