结合智慧卡的ECDSA数位签章软体设计与实现

上传人:仙*** 文档编号:225477418 上传时间:2023-08-03 格式:DOC 页数:15 大小:374.50KB
收藏 版权申诉 举报 下载
结合智慧卡的ECDSA数位签章软体设计与实现_第1页
第1页 / 共15页
结合智慧卡的ECDSA数位签章软体设计与实现_第2页
第2页 / 共15页
结合智慧卡的ECDSA数位签章软体设计与实现_第3页
第3页 / 共15页
资源描述:

《结合智慧卡的ECDSA数位签章软体设计与实现》由会员分享,可在线阅读,更多相关《结合智慧卡的ECDSA数位签章软体设计与实现(15页珍藏版)》请在装配图网上搜索。

1、2006電子商務與數位生活研討會結合智慧卡的ECDSA數位簽章軟體設計與實現張惟淙國立高雄師範大學資訊教育研究所bugicemail.nknu.edu.tw楊中皇國立高雄師範大學資訊教育研究所chyangnknucc.nknu.edu.tw摘要數位簽章是用途非常廣泛的資訊安全技術,尤其在電子商務應用上,是不可或缺的交易安全保護要件。目前具備數位簽章功能的軟體,如網際網路瀏覽器或電子郵件收發軟體,大多都採用RSA演算法。近年來,橢圓曲線密碼系統(Elliptic Curve Cryptosystem,ECC),已經開始挑戰RSA。就相同的安全性而言,ECC所需要的密碼學金鑰長度較RSA短,而且有

2、更佳的執行效率,這個特性使得ECC相當適合用於智慧卡、手機或其他無線行動裝置。本研究即在發展一個結合智慧卡應用的橢圓曲線數位簽章軟體,我們使用Java Card作為ECC金鑰存取的媒介,並以此軟體產生及檢驗ECDSA數位簽章(Elliptic Curve Digital Signature Algorithm,ECDSA),簽章產生過程中用以計算訊息摘要的雜湊函數演算法則採用SHA-2演算法。使用者可將持有的智慧卡視為鑰匙環(Keyring),用以存放本身的公開金鑰(Public key)與秘密金鑰(Private key),以及通訊對方的公開金鑰,金鑰經由卡片存取能提升使用上的便利與安全。使

3、用者藉此與他人進行安全通訊時,得以確認對方身份及所傳送訊息的完整性。關鍵字:密碼學、橢圓曲線、數位簽章、智慧卡、ECDSA 壹、前言數位簽章是公開金鑰演算法最重要的應用,普遍用於維護電子商務交易安全。現今大部分具備數位簽章功能的軟體,如網路瀏覽器或電子郵件軟體,幾乎都是採用RSA作為數位簽章演算法。近年來,為了保持RSA的安全性,金鑰的位元長度逐漸有增加的需求,亦因此加重使用RSA演算法的大量安全交易平台之處理負擔。西元1985年時,美國華盛頓大學的Neal Koblitz教授(Koblitz, 1986)及IBM的Victor Miller(Miller, 1987)分別提出以橢圓曲線演算法

4、設計公開金鑰演算法的密碼技術,此後更發展出許多橢圓曲線密碼系統(Elliptic Curve Cryptosystem,ECC)的國際標準,如ISO 11770-3、ANSI X9.62、IEEE P1363、FIPS 186-2等。就相同的安全性而言,ECC所需要的密碼學金鑰長度較RSA短,如表一所示(NIST, 2003)。所以無論從增快執行速度或節省空間的角度來看,可見ECC是優於RSA。表一相同安全性時,RSA與ECC金鑰長度比較(NIST, 2003)安全性演算法2802112212821922256RSA金鑰長度(bits)102420483072768015360ECC金鑰長度(

5、bits)160224256384512金鑰長度比6:19:112:120:130:1本研究目的在於發展一個結合智慧卡的ECDSA數位簽章軟體,我們使用Java Card作為ECC金鑰存取媒介,並透過軟體產生ECDSA數位簽章,其中產生與檢驗簽章過程會用到的雜湊函數演算法,則採用SHA-2演算法。使用者可以將持有的Java Card視為鑰匙環,其中除存放本身的公開金鑰與秘密金鑰外,還可存放通訊對方的公開金鑰,藉此與他人進行安全通訊時,用以確認其身份及所傳送訊息的完整性。貳、文獻探討一、橢圓曲線密碼學(Elliptic Curve Cryptography)(一)、橢圓曲線密碼學原理簡介橢圓曲線

6、的密碼學技術不僅可以用於數位簽章、金鑰交換及加解密,還可應用在大數分解(Factorization)與質數判斷(Primality testing)。橢圓曲線的通用方程式如下:y2 + a1xy + a3y = x3 + a2x2 + a4x + a6(1)密碼學的橢圓曲線是由滿足該方程式的所有點(x, y)及一個無限遠點(Point at infinity)O所形成的集合,座標x與y屬於某個有限體(finite field)。目前軟硬體具體實現的有限體為質數體(Prime field,GF(p)、二元體(Binary field,GF(2n )、最佳擴展體(Optimal extension

7、 field,GF (pn )等三種(Bailey and Paar, 2001)。橢圓曲線上的點可進行兩點間之加法(Menezes, 1993; Silverman and Tate, 1992)。幾何上,如果要計算相異兩點P與Q的和,則先找出通過這兩點的直線,然後找出這條直線與橢圓曲線相交的第三點(-R),再將此點對x軸做鏡射得到和(R),如圖一所示。如果橢圓曲線上的某兩點共線的話,兩點相加之和就是O。 圖一橢圓曲線幾何圖表示兩點加法若P = (x1, y1)與Q = (x2, y2)為橢圓曲線上的任意兩點,而POQ,且選取質數體,此時橢圓曲線方程式為:y2 = x3 + ax + b(2

8、)兩點加法的運算規則如下所示:(3)如果選擇二元體,則橢圓曲線方程式為:y2 + xy = x3 + ax2 + b(4)而上述公式(3)的加法規則3必須改為:(5) 公式(3)與(5)的計算(加法、減法、乘法、除法/反元素)必須在相關的有限體進行,若選取質數體時僅需進行模算術(Modular arithmetic),若選取二元體則需進行多項式算術(Polynomial arithmetic)。點乘法計算kP為橢圓曲線密碼系統的基礎,其中k為正整數,而P為橢圓曲線上的一個點:(6)如果nP= O 則n為點P的級數(order)。在合適的橢圓曲線上,可以找到個級數n2160的基點(Base po

9、int) G,而此橢圓曲線系統參數基點G可公開;另隨機選取小於n的正整數d當作私密金鑰,計算Q = dG為對應的公開金鑰。點乘法的計算如果直接做k個點相加,則需要執行k-1次加法運算,效率不佳,目前已有許多可以加速點乘法計算的演算法。本研究所開發的橢圓曲線密碼模組則是採用NAF(Non-Adjacent Form)演算法。橢圓曲線密碼系統的實現必須考慮下列因素: 1. 有限體的選擇2. 橢圓曲線的挑選3. 有限體元素的運算(加法、減法、乘法、除法/反元素)4. 橢圓曲線點的運算(加法、減法、乘法) 美國ANSI X9.62(ANSI, 1998)與FIPS 186-2(NIST, 2001)標

10、準中針對質數體與二元體建議不同長度的橢圓曲線與合適的基點,所以有關橢圓曲線的參數挑選可參考該標準。網際網路上,有許多關於橢圓曲線運算的開放原始碼軟體,如:LiDIA、PARI-GP、OpenSSL或Crypto+等,可作為橢圓曲線密碼系統開發的參考。 (二)、橢圓曲線數位簽章演算法(ECDSA)在ECDSA相關標準ANSI X9.62(ANSI, 1998)與FIPS 186-2(NIST, 2001)中提及對於訊息m的數位簽章(r, s)產生步驟如下:1.2. ,則回到步驟13.4. 如果s = 0,則回到步驟1而檢驗ECDSA簽章是否正確的步驟如下:1.2.3.4. 若且唯若v = r,則

11、簽章正確ECDSA簽章產生時至少須進行一次點乘法以及一些模算術,簽章檢驗時則進行兩次點乘法以及一些模算術。表二為 RSA與ECDSA用於數位簽章的比較,從表二可見相同安全性時,兩種演算法所產生出來的簽章長度差異甚大,這將影響簽章傳遞的時間與儲存的空間。表二數位簽章演算法RSA與ECDSA的比較演算法RSAECDSA簽章長度 安全性2128:384位元組 安全性2192:960位元組 安全性2256:1920位元組 安全性2128:64位元組(質數體) 安全性2192:96位元組(質數體) 安全性2256:132位元組(質數體)安全基礎大數分解橢圓曲線離線對數優點歷史悠久,容易說明,亦可同時用以

12、加解密。速度快,簽章長度小。缺點速度慢,簽章長度較大。理論不易理解,實現技術較複雜。二、SHA-2雜湊函數演算法數位簽章演算法的一般做法,會對欲傳輸的訊息以雜湊函數計算出一組訊息摘要,再以秘密金鑰將其加密後產生數位簽章,並一併與原始訊息傳送給對方。接收方會將數位簽章以傳送方的公開金鑰解開取出訊息摘要,再將接收到的訊息以同樣的雜湊函數演算法計算出另一組訊息摘要,以進行比對,相同則表示資料未被竄改,如此則可驗證資料的完整性。因此雜湊函數演算法對於數位簽章本身的安全性至為重要。SHA(Secure Hash Algorithm)演算法是由美國國家標準技術研究院(NIST)所發展的,並且在1993年成

13、為第180項聯邦處理標準(FIPS PUB 180)。目前最新的修訂版是FIPS PUB 180-2,其中新增包含SHA-256、SHA-384及SHA-512等三種雜湊演算法,統稱為SHA-2演算法(NIST, 2002)。目前ECDSA實作較常用的是SHA-1演算法,然而NIST已宣佈將於2010年後不再支持處理流程類似於MD5且有安全疑慮的SHA-1(NIST, 2005)。因此我們選擇較新的SHA-2作為產生ECDSA數位簽章時使用的雜湊函數演算法。三、Java CardJava Card是一種標準的智慧卡,智慧卡在當今網路安全應用最重要的三個特點為:確認性、保密性及便利性。其內部有源

14、於Java技術的Java Card虛擬機器(Java Card Virtual Machine,JCVM)及Java Card執行環境(Java Card Runtime Environment,JCRE)。此外,Java Card尚提供一套具有物件導向程式設計特色的API (Ortiz, 2003)。本研究所開發的軟體中用以存取公開金鑰及秘密金鑰的Java Card是IBM JCOP20卡,它完全符合Visa OpenPlatform Card架構及Java Card API 2.1.1版的規範。 參、軟體實作一、ECDSA程式模組我們使用自行開發的ECDSA數位簽章的簽章產生與檢驗程式模組

15、,設計軟體的核心功能。圖二及圖三分別是橢圓曲線參數為質數體的數位簽章產生模組及檢驗模組。此外還有設計橢圓曲線參數為二元體的數位簽章相關模組,這些模組均已經使用ANSI X9.62(ECDSA)標準文件中所提供的測試樣本檢驗無誤(楊中皇,2005)。圖二ECDSA數位簽章產生模組(部分)圖三ECDSA數位簽章檢驗模組(部分)二、應用流程設計使用者必須先持有內建ECC金鑰存取程式的Java Card,才能使用這套軟體。第一次使用的時候必須先建立自己的ECC金鑰對,爾後可以匯出自己的及匯入他人的公開金鑰,以便與他人進行通訊時使用。在執行任何有關數位簽章的動作之前,軟體本身就會檢查是否已經從卡片讀取到

16、金鑰,金鑰是不允許使用者手動輸入的,如果沒有金鑰,軟體將不會執行數位簽章的產生與檢驗等相關功能。應用本軟體的流程如圖四:1.置入Java Card驗證PIN2.存取ECC金鑰Y要求再輸入驗證錯誤三次即鎖卡N鎖卡後即拒絕任何功能操作5.退出Java Card3.產生ECDSA簽章4.檢驗ECDSA簽章圖四ECDSA數位簽章軟體的應用流程圖操作的步驟說明如表三:表三ECDSA數位簽章軟體的應用流程說明步驟說明1將內建有ECC金鑰存取程式的Java Card置入讀卡機。2讀取卡片之後,會要求使用者輸入PIN碼驗證,驗證成功後,才可繼續使用,驗證錯誤達三次即鎖卡。第一次使用應建立自己的ECC金鑰對,這

17、個部分還提供匯出入公開金鑰的功能。本身的ECC金鑰亦可以更新置換,他人的公開金鑰則可更新或刪除,但置換金鑰會影響無法檢驗已建立的數位簽章。3以ECC秘密金鑰對檔案產生數位簽章。可以同時對多個檔案進行批次產生簽章。4以自己或他人的ECC公開金鑰對數位簽章進行檢驗。可以同時對多個檔案進行批次檢驗簽章。5退出Java Card,結束所有作業,並清除軟體執行時暫存金鑰內容的變數值。三、軟體使用簡介(一)、操作介面說明我們使用Borland C+ Builder 6開發,它不僅能快速建立視窗介面,且能整合C/C+原始碼。軟體主畫面如圖五所示:(1)(3)(2)圖五軟體主畫面主畫面大致劃分以下三個主要功能

18、區塊說明:(1) 主選單及使用者名稱:主選單有卡片功能、簽章功能等兩個子選單,以及設定與說明功能。所有的功能亦可直接從畫面上的圖示按鈕點選執行,使用者名稱的欄位只有在卡片已連線並經驗證後,才會顯示。(2) 數位簽章功能區塊:有三個分頁功能,分別是數位簽章的產生、檢驗以及記錄相關處理過程的日誌訊息。(3) 卡片及設定工具鈕:與卡片存取有關的功能可以直接從這裡去點選執行,另外還有選項設定的功能,可以修改一些常用選項。此區塊最上面的卡片狀態圖如果顯示彩色表示卡片目前連線使用中,若是黑白圖片則表示尚未置入卡片。 (二)、金鑰存取金鑰的存取畫面(如圖六),主要有以下功能,使用前必須先勾選相關的使用者名稱

19、:(1) 讀取:讀出金鑰的內容,並儲存到軟體中的變數,以供後續使用。(2) 新增:新增ECC金鑰對。必須輸入使用者名稱及E-Mail,另外還需選擇金鑰長度,我們參考NIST的FIPS 186-2標準,共提供五種質數體(P-XXX)及十種二元體(B-XXX、K-XXX)的金鑰參數,如圖七所示。(3) 匯出:匯出自己的公開金鑰。(4) 匯入:匯入他人的公開金鑰。(5) 移除:移除勾選的使用者之金鑰。圖六ECC金鑰存取圖七新增ECC金鑰對(三)、ECDSA簽章的產生與檢驗無論是產生或檢驗數位簽章,都可以選取多個檔案執行,準備要用以產生數位簽章的檔案,或是要檢驗的數位簽章檔,均會列表供使用者瀏覽,如果

20、某個檔案不欲執行相關動作,只要勾選取消即可,橢圓曲線數位簽章的副檔名我們使用預設為.ecsig,以便與坊間其他軟體所慣用的數位簽章檔名.sig作區別。相關的範例畫面如圖八與圖九。產生與檢驗簽章的處理過程會顯示在主畫面第三個分頁日誌訊息欄內,會記錄處理的日期時間與結果,如圖十所示。圖八選取欲產生數位簽章的檔案圖九選取欲檢驗的數位簽章檔圖十檢視處理過程的訊息四、結論雖然橢圓曲線密碼學早在1985年就有學者提出,然而迄今實務應用仍不普遍。本研究以Java Card為例,並使用自行設計的橢圓曲線密碼模組開發一個結合智慧卡且具有友善視窗使用介面的ECDSA數位簽章軟體,這不僅應證ECC的實務應用,同時還

21、提供我們研究的思維與創新的契機。根據對ECC相關文獻的探討,可知在相同的安全性之下,ECC所需的金鑰長度遠比RSA金鑰來得小,不僅如此,ECC還有更好的執行效率,故在可預見的未來,ECC的技術勢必將逐漸成為公開金鑰密碼系統的主流,同時亦將為電子商務交易提供品質更好、效率更佳的安全保障。伍、參考文獻ANSI X9.62, Public Key Cryptography for the Financial Services Industry: The Elliptic Curve Digital Signature Algorithm(ECDSA) , 1998.A. Menezes, Ellip

22、tic Curve Public Key Cryptosystems, Kluwer, 1993.C.E. Ortiz, An Introduction to Java Card Technology, http:/ 2003.D.V. Bailey and C. Paar, Efficient arithmetic in finite field extensions with applications in elliptic curve cryptograph, J. Cryptology, 2001,Vol. 14, No. 3, pp. 153-176.IBM, JCOP20 Tech

23、nical Brief, JCOP20Brief.pdf.J. H. Silverman and J. Tate, Rational Points on Elliptic Curves, 1992, Undergraduate Texts in Mathematics, Springer-Verlag.LiDIA, http:/www.informatik.tu-darmstadt.de/TI/LiDIA/.N. Koblitz, Elliptic Curve Cryptosystems, Mathematics of Computation, 1987,Vol. 48, No. 177, p

24、p. 203-209.NIST, DRAFT Special Publication 800-57, Recommendation on Key Management, http:/csrc.nist.gov/CryptoToolkit/kms/guideline-1-Jan03.pdf, 2003.NIST, FIPS 186-2, Digital Signature Standard (DSS), http:/csrc.nist.gov/publications/fips/fips186-2/fips186-2-change1.pdf, 2001.NIST, FIPS PUB 180-2,

25、 Secure Hash Standard, http:/csrc.nist.gov/publications/fips/fips180-2/fips180-2withchangenotice.pdf, 2002.NIST, NIST Brief Comments on Recent Cryptanalytic Attacks on SHA-1, http:/csrc.nist.gov/hash_standards_comments.pdf, 2005.PARI/GP, http:/pari.math.u-bordeaux.fr/.The OpenSSL Project, http:/www.openssl.org/.V. Miller, Use of Elliptic Curves in Cryptography, In Advances in Cryptology: Proceedings of Crypto 85, 1986, volume 218 of Lecture Notes in Computer Science, pp. 417-426, Berlin, Springer-Verlag.Wei Dai, Crypto+ library, 楊中皇,橢圓曲線密碼系統軟體實現技術之探討,資訊安全通訊,2005年1月,第11卷,第2期,頁15-25。- 15 -

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!