跳到主要內容

臺灣博碩士論文加值系統

(98.80.143.34) 您好!臺灣時間:2024/10/03 19:42
字體大小: 字級放大   字級縮小   預設字形  
回查詢結果 :::

詳目顯示

我願授權國圖
: 
twitterline
研究生:張惟淙
研究生(外文):Wei-Tsung Chang
論文名稱:PSEC-KEM與ECDSA的橢圓曲線密碼軟體設計與實現
論文名稱(外文):Design and Implementation of An Elliptic Curve Cryptography Software based on PSEC-KEM and ECDSA
指導教授:楊中皇楊中皇引用關係
指導教授(外文):Chung-Huang Yang
學位類別:碩士
校院名稱:國立高雄師範大學
系所名稱:資訊教育研究所
學門:教育學門
學類:專業科目教育學類
論文種類:學術論文
論文出版年:2006
畢業學年度:94
語文別:中文
論文頁數:96
中文關鍵詞:金鑰交換數位簽章金鑰封裝機制橢圓曲線數位簽章演算法Java卡
外文關鍵詞:Key AgreementDigital SignatureKey Encapsulation MechanismECDSAJava Card
相關次數:
  • 被引用被引用:3
  • 點閱點閱:972
  • 評分評分:
  • 下載下載:0
  • 收藏至我的研究室書目清單書目收藏:1
本研究旨在開發一個具備ECC金鑰交換與數位簽章功能的軟體,其主要為利用日本NTT公司的PSEC-KEM原始碼與自有的ECDSA數位簽章模組以Borland C++Builder 6開發Windows視窗介面的ECC軟體。PSEC-KEM乃是基於ECC的金鑰封裝機制,用途為金鑰交換。
本研究所開發的軟體依據美國NIST的FIPS 186-2數位簽章標準建議的橢圓曲線參數,實作5種質數體及10種二元體等共15種ECDSA數位簽章。而在整合PSEC-KEM金鑰交換功能方面,則以其金鑰對 (Keypair)產生模組,建立均可用於PSEC-KEM金鑰交換及質數體數位簽章的金鑰對,這是由於PSEC-KEM目前僅支援質數體。至於二元體數位簽章所使用的金鑰對仍以自有的ECC程式模組產生。本研究以SHA-2作為數位簽章使用的雜湊函數演算法,並且亦將PSEC-KEM的KDF函數運算中所用到的SHA-1改良為SHA-2,相關程式的實作則參考整合GnuPG的SHA-2原始碼。此外還設計讓使用者可選擇以Java Card儲存本身的ECC金鑰對及通訊對方的公開金鑰,藉此提升金鑰使用上的便利與安全。
In this research, we designed and implemented an ECC software based on PSEC-KEM and ECDSA. The software is developed by Borland C++Builder 6 on the Windows environment, and it is integrated the PSEC-KEM source code and our ECDSA digital signature implementation. PSEC-KEM key encapsulation mechanism is based on the elliptic curve cryptography, in which is developed by the NTT company in Japan can utilize for key agreement schemes.
According to NIST FIPS 186-2 (Digital Signature Standard), the software provided 5 kinds of prime field curve and 10 kinds of binary field curve and so on altogether 15 kinds of ECDSA digital signature. We use the keypair generation function of PSEC-KEM not for ECC keypairs generation, but also for our ECDSA implementation over the prime field curves. The ECC keypairs which as for ECDSA digital signature over the binary field curves is generated by our ECC modules. In generating and verifying ECDSA digital signature, we use the newer SHA-2 hash algorithm and integrated SHA-2 source code of GnuPG into the software. Moreover, we use SHA-256 substituted for SHA-1 in the key derivation function of the PSEC-KEM source code. The software allowed the user to choose optionally using Java Card as the medium for key storage. The user may regard the Java Card as a keyring, it may store both users’ public key and private key and other people’s public keys, and this may improve the security of key use.
目錄

中文摘要……………………………………………………………Ⅰ
英文摘要……………………………………………………………Ⅱ
目錄…………………………………………………………………Ⅲ
表次…………………………………………………………………Ⅴ
圖次…………………………………………………………………Ⅵ
第一章 緒論 1
第一節 研究背景與動機 2
第二節 研究目的 3
第三節 研究範圍與限制 4
第四節 名詞解釋 5
第五節 研究步驟 8
第二章 文獻探討 11
第一節 橢圓曲線密碼學基礎 11
第二節 PSEC-KEM相關演算法 17
第三節 SHA-2安全雜湊演算法 22
第四節 智慧卡原理與Java Card 30
第三章 研究方法 43
第一節 軟體功能規劃與設計 43
第二節 PSEC-KEM模組整合 45
第三節 ECDSA數位簽章功能開發 56
第四節 SHA-2元件設計與應用 64
第五節 整合Java Card存取ECC金鑰 72
第四章 研究分析 81
第一節 ECC金鑰使用與維護 81
第二節 PSEC-KEM金鑰交換功能 84
第三節 ECDSA數位簽章功能 86
第五章 結論與建議 89
第一節 研究成果討論 89
第二節 未來研究方向 90
參考文獻 91
一、中文部份 91
二、西文部份 93


表次

表2-1-1 數位簽章演算法RSA與ECDSA的比較………………17
表2-3-1 SHA-2的初始雜湊值……………………………………24
表2-4-1 ISO 7816標準各部分概要………………………………32
表2-4-2 APDU命令 (Command APDU)封包欄位說明…………33
表2-4-3 APDU回應 (Response APDU)封包欄位說明…………34
表3-2-1 PSEC-KEM原始碼主要程式……………………………46
表3-2-2 PSEC-KEM之質數體金鑰參數說明……………………50
表3-3-1 本研究自有ECC模組原始碼程式………………………56
表3-4-1 GnuPG之SHA-2演算法實作相關程式…………………66
表3-5-1 MS Smart Card Resource Manager API常用函數………78
表4-1-1 金鑰維護相關功能說明…………………………………82
表4-1-2 金鑰環檔案儲存資訊……………………………………84


圖次

圖2-1-1 橢圓曲線幾何圖表示兩點加法…………………………12
圖2-1-2 橢圓曲線金鑰交換 (ECDH)協定………………………14
圖2-1-3 ECDSA產生數位簽章…………………………………15
圖2-1-4 ECDSA檢驗數位簽章…………………………………16
圖2-2-1 KDF密碼導出函數的運作………………………………18
圖2-2-2 PSEC-KEM金鑰對產生…………………………………19
圖2-2-3 PSEC-KEM加密…………………………………………20
圖2-2-4 PSEC-KEM解密…………………………………………21
圖2-2-5 KEM與PKE的加密流程比較…………………………22
圖2-2-6 KEM與PKE的解密流程比較…………………………22
圖2-3-1 SHA-256處理"abc"字串訊息附加位元…………………24
圖2-3-2 SHA-256由一個訊息區段導出64個字元………………28
圖2-3-3 SHA-256單一回合的基本運算流程……………………29
圖2-4-1 接觸式智慧卡的8個裝置接觸點………………………30
圖2-4-2 APDU命令 (Command APDU)封包格式………………33
圖2-4-3 APDU回應 (Response APDU)封包格式………………34
圖2-4-4 APDU通訊模式…………………………………………34
圖2-4-5 Java Card內部架構………………………………………36
圖2-4-6 智慧卡OpenPlatform的架構……………………………37
圖2-4-7 Java Card的內部運作……………………………………38
圖2-4-8 Java Card Applet的開發週期……………………………41
圖3-1-1 本研究所開發的軟體功能架構…………………………44
圖3-2-1 如何編譯PSEC-KEM測試程式…………………………45
圖3-2-2 建立t_keygen專案 (PSEC-KEM金鑰對產生程式)……47
圖3-2-3 Windows版本之GMP函數庫網站………………………48
圖3-2-4 執行keygen.exe產生ECC金鑰對………………………49
圖3-2-5 PSEC-KEM之質數體金鑰參數 (P-192)………………49
圖3-2-6 修改PSEC-KEM處理的最大質數體長度………………51
圖3-2-7 sha2.c程式之壓縮函數 (部分)…………………………52
圖3-2-8 random.c程式函數改呼叫SHA-256函數 (部分)………53
圖3-2-9 utils.c中KDF改呼叫SHA-256函數 (部分)……………53
圖3-2-10 以C++Builder處理PSEC-KEM產生金鑰對 (部分)…54
圖3-2-11 以C++Builder處理PSEC-KEM加密 (部分)…………55
圖3-2-12 以C++Builder處理PSEC-KEM解密 (部分)…………55
圖3-3-1 將自有ECC模組原始碼包含於軟體專案………………57
圖3-3-2 本研究自有ECC模組之主要函數………………………57
圖3-3-3 質數體數位簽章的產生函數 (部分)……………………58
圖3-3-4 質數體數位簽章的檢驗函數 (部分)……………………58
圖3-3-5 二元體數位簽章的產生函數 (部分)……………………59
圖3-3-6 二元體數位簽章的檢驗函數 (部分)……………………59
圖3-3-7 以C++Builder處理選取ECC參數 (部分)……………60
圖3-3-8 以C++Builder處理計算二元體金鑰對 (部分)…………61
圖3-3-9 以C++Builder處理ECDSA產生數位簽章 (部分)……62
圖3-3-10 以C++Builder處理ECDSA檢驗數位簽章 (部分)……63
圖3-4-1 GnuPG計算SHA-2訊息摘要的程式執行流程…………65
圖3-4-2 GnuPG之types.h標頭檔之修改…………………………67
圖3-4-3 自訂轉換u64長整數為16進位數值之函數……………68
圖3-4-4 SHA-2元件 (BSHA2)之程式碼 (部分)………………69
圖3-4-5 在C++Builder 6安裝BSHA2元件……………………70
圖3-4-6 ComputeSHA2MD函數使用範例………………………70
圖3-4-7 數位簽章處理程式中使用BSHA2元件函數 (部分)…71
圖3-5-1 讀卡機正確安裝檢測畫面………………………………72
圖3-5-2 ECC金鑰Cardlet原始碼 (部分)………………………73
圖3-5-3 以Eclipse新增Java Card專案…………………………74
圖3-5-4 Java Card專案選取IBM JCOP 20 Family………………74
圖3-5-5 以Basic JavaCard Applet新增到Java Card專案………75
圖3-5-6 設定Java Card專案及Cardlet的識別ID………………75
圖3-5-7 將ECC金鑰Cardlet程式碼貼到Java Card專案中……76
圖3-5-8 設定安裝ECC金鑰Cardlet到實體卡片………………77
圖3-5-9 ECC金鑰Cardlet成功安裝於實體卡片…………………77
圖3-5-10 處理將要傳送到智慧卡的APDU命令 (部分)…………79
圖3-5-11 傳送APDU命令到智慧卡的程式 (部分)………………80
圖4-1-1 軟體主畫面………………………………………………81
圖4-1-2 金鑰維護功能選單………………………………………82
圖4-1-3 新增金鑰對畫面…………………………………………83
圖4-2-1 PSEC-KEM加密畫面……………………………………85
圖4-2-2 PSEC-KEM解密畫面……………………………………85
圖4-3-1 產生ECDSA數位簽章畫面……………………………86
圖4-3-2 檢驗ECDSA數位簽章畫面……………………………87
一、中文部份
余明興、吳明哲、黃世陽 (民94) 。Borland C++Builder 6 程式設計經典。台北:文魁資訊。
包盛杰 (民92)。Java Card與APPLET:智慧卡與安全。民94年2月23日,取自:http://www-128.ibm.com/developerworks/tw/library/wi-jcard/index1.html
邱榮輝 (民87) 。認識IC卡。資訊安全通訊,第四卷第三期,18-30。
張惟淙、楊中皇 (民94年12月) 。植基於Java Card與HMAC-SHA-2的檔案完整性稽核軟體設計與實現。中華民國九十四年全國計算機會議,私立崑山科技大學。
張惟淙、楊中皇 (民94年12月) 。結合Java Card的ECDSA數位簽章軟體設計與實現。第十一屆資訊管理暨實務研討會,私立實踐大學。
張惟淙、楊中皇 (民95年5月) 。PSEC-KEM與ECDSA的橢圓曲線密碼軟體設計與實現。第十七屆國際資訊管理學術研討會,私立義守大學。
陳志群 (民91) 。智慧卡技術實務-使用Java Card (周利欽、翁御舜譯) 。台北:碁峰資訊。
楊中皇 (民91) 。密碼學演算法於IC卡上的具體實現。資訊安全通訊,第八卷第三期,8-17。
楊中皇 (民94) 。橢圓曲線密碼系統軟體實現技術之探討。資訊安全通訊,第十一卷第一期,15-25。
楊中皇 (民95) 。網路安全理論與實務。台北:金禾資訊。
蔡明志譯 (民90) 。Visual C++ 6教學手冊。台北:碁峰資訊。

二、西文部份
ANSI X9.62 (1998). Public Key Cryptography for the Financial Services Industry: The Elliptic Curve Digital Signature Algorithm (ECDSA).
Baentsch, M., Buhler, P., Eirich, T., Horing, F. and Oestreicher, M. (1999). JavaCard-From Hype to Reality. IEEE Concurrency, Vol. 07, No. 4, 36-43.
Castles Technology (2005). EZ100PU/PR PC/SC Smart CardReader. Retrieved May 1, 2006, from the World Wide Web: http://www.castech.com.tw/images_product/EZ100PU_PR%20Specification%2020051206.pdf
CRYPTREC (Cryptography Research and Evaluation Commi-ttees) Project (2006). http://www.ipa.go.jp/security/enc/CRYPTREC/index-e.html
Du, Z. (2006). GMP Install Instruction for Windows Platform. Retrieved May 1, 2006, from the World Wide Web: http://www.cs.nyu.edu/exact/core/gmp/
Feng, D., Lai, X., Wang, X. and Yu, H. (2004). Collisions for Hash Functions MD4, MD5, HAVAL-128 and RIPEMD. Retrieved May 1, 2006, from the World Wide Web: http://eprint.iacr.org/2004/199.pdf
Galindo, D., Martin, S. and Villar, J.L. (2004). Evaluating elliptic curve based KEMs in the light of pairings. Retrieved May 1, 2006, from the World Wide Web: http://eprint.iacr.org/2004/084.pdf
GNU Privacy Guard (2005). GnuPG Version 1.4.1 Source code. Retrieved May 1, 2006, from the World Wide Web: ftp://ftp.gnupg.org/gcrypt/gnupg/gnupg-1.4.1.tar.gz
IBM (2002). JCOP20 Technical Brief. Retrieved May 1, 2006, from the World Wide Web: ftp://ftp.software.ibm.com/software/pervasive/info/JCOP20Brief.pdf
IBM (2006). JCOP Tools User Guide. Retrieved May 1, 2006, from the World Wide Web: http://www.zurich.ibm.com/jcop/download/eclipse/doc/index.html
IETF (2005). RFC4051, Additional XML Security Uniform Resource Identifiers. Retrieved May 1, 2006, from the World Wide Web: from http://www.ietf.org/rfc/rfc4051.txt
Koblitz, N. (1987). Elliptic Curve Cryptosystems. Mathematics of Computation, Vol. 48, No. 177, 203-209.
Miller, V. (1986). Uses of Elliptic Curve in Cryptography. Advances in Cryptology – CRYPTO’85, LNCS 218, 417-426, Springer-Verlag.
Menezes, A. (1993). Elliptic Curve Public Key Cryptosystems. Kluwer.
Microsoft (2006). Smart Card Resource Manager API. Retrieved May 1, 2006, from the World Wide Web: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/secauthn/security/smart_card_resource_manager_api.asp
Manabe, Y., Nagao, W. and Okamoto, T. (2006). A Universally Composable Secure Channel Based on the KEM-DEM Framework. IEICE Trans. Fundamentals, Vol.E89-A, No.1.
NESSIE (New European Schemes for Signatures, Integrity, and Encryption) Project (2006). https://www.cosic.esat.kuleuven.be/nessie/
NIST (2001). Digital Signature Standard (DSS), FIPS PUB186-2. Retrieved May 1, 2006, from the World Wide Web: http://csrc.nist.gov/publications/fips/fips186-2/fips186-2-change1.pdf
NIST (2002). Secure Hash Standard, FIPS PUB 180-2. Retrieved May 1, 2006, from the World Wide Web: http://csrc.nist.gov/publications/fips/fips180-2/fips180-2withchangenotice.pdf
NIST (2003). DRAFT Special Publication 800-57, Recommendation on Key Management. Retrieved May 1, 2006, from the World Wide Web: http://csrc.nist.gov/CryptoToolkit/kms/guideline-1-Jan03.pdf
NIST (2005). NIST Brief Comments on Recent Cryptanalytic Attacks on SHA-1, Retrieved May 1, 2006, from the World Wide Web: http://csrc.nist.gov/hash_standards_comments.pdf
NTT Corporation (2006). PSEC-KEM. http://info.isl.ntt.co.jp/crypt/eng/psec/index.html
NTT Corporation (2001). PSEC-KEM Specification. Retrieved May 1, 2006, from the World Wide Web: http://info.isl.ntt.co.jp/crypt/eng/psec/dl/cryptrec/01espec.pdf
NTT Corporation (2003). PSEC-KEM-ISO Source Code. Retrieved May 1, 2006, from the World Wide Web: http://www.nttmcl.com/sec/PsecKEM/ISO/psec_kem_11.4.2003.tar.gz
OpenSSL Project (2005). OpenSSL Version 0.9.8a Source code. Retrieved May 1, 2006, from the World Wide Web: http://www.openssl.org/source/openssl-0.9.8a.tar.gz
Ortiz, C.E. (2003). An Introduction to Java Card Technology. Retrieved May 1, 2006, from the World Wide Web: http://developers.sun.com/techtopics/mobility/javacard/articles/javacard1/
RSA Laboratories (1999). Password – Based Cryptography Standard, PKCS #5 v2.0. Retrieved May 1, 2006, from the World Wide Web: ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-5v2/pkcs5v2-0.pdf
Rankl, W. (2004). PUT DATA and GET DATA as JavaCard Applet. Retrieved May 1, 2006, from the World Wide Web: http://www.wrankl.de/Javacard/PGDATAJava.txt
Sun Microsystems (2006). Java Card Platform Specification. Retrieved May 1, 2006, from the World Wide Web: http://java.sun.com/products/javacard/specs.html
Shoup, V. (2004). Encryption algorithms-Part2: Asymmetric ciphers, Final Committee Draft 18033-2. Retrieved May 1, 2006, from the World Wide Web: http://shoup.net/iso/std6.pdf
Silverman, J. H. & Tate, J. (1992). Rational Points on Elliptic Curves. Undergraduate Texts in Mathematics, Springer-Verlag.
Stallings, W. (2002). Cryptography and Network Security Principles and Practices (3rd ed.). Prentice-Hall.
QRCODE
 
 
 
 
 
                                                                                                                                                                                                                                                                                                                                                                                                               
第一頁 上一頁 下一頁 最後一頁 top