應用于rfid卡的數(shù)字證書存儲方法
【專利摘要】本發(fā)明提出一種具備高安全性優(yōu)點的應用于RFID卡的數(shù)字證書存儲方法,a),對證書部分生成第一哈希值,獲取第一哈希值的第一文件信息;對私鑰部分進行加密以生成第一加密文件,獲取第一加密文件的第二文件信息;對用戶的ID以及RFID卡的ID生成第二哈希值;接著,初始化RFID卡的數(shù)據(jù)塊,初始化RFID卡的控制塊并寫入RFID卡的訪問密鑰,將上述數(shù)據(jù)寫入RFID卡的數(shù)據(jù)塊中;b),將數(shù)字證書生成第三哈希值,獲取第三哈希值的第三文件信息;對所述數(shù)字證書進行加密以生成第二加密文件,獲取第二加密文件的第四文件信息;獲取a)中所述的第二哈希值;接著,初始化RFID卡的數(shù)據(jù)塊,初始化RFID卡的控制塊并寫入RFID卡的訪問密鑰,將上述文件寫入RFID卡的數(shù)據(jù)塊中。
【專利說明】應用于RFID卡的數(shù)字證書存儲方法
【技術領域】
[0001]本發(fā)明涉及數(shù)字證書存儲【技術領域】,具體講是一種應用于RFID卡的數(shù)字證書存儲方法。
【背景技術】
[0002] 數(shù)字證書就是互聯(lián)網(wǎng)通訊中標志通訊各方身份信息的一串數(shù)字,提供了一種在Internet上驗證通信實體身份的方式,其作用類似于司機的駕駛執(zhí)照或日常生活中的身份
證。它是由一個由權威機構-----CA機構,又稱為證書授權(Certificate Authority)中
心發(fā)行的,人們可以在網(wǎng)上用它來識別對方的身份。數(shù)字證書是一個經(jīng)證書授權中心數(shù)字簽名的包含公開密鑰擁有者信息以及公開密鑰的文件。最簡單的證書包含一個公開密鑰、名稱以及證書授權中心的數(shù)字簽名。
[0003](Radio Frequency IDentification,縮寫:RFID)RFID是一種無線通信技術,可以通過無線電訊號識別特定目標并讀寫相關數(shù)據(jù),而無需識別系統(tǒng)與特定目標之間建立機械或者光學接觸。
[0004]無線電的信號是通過調成無線電頻率的電磁場,把數(shù)據(jù)從附著在物品上的標簽上傳送出去,以自動辨識與追蹤該物品。某些標簽在識別時從識別器發(fā)出的電磁場中就可以得到能量,并不需要電池;也有標簽本身擁有電源,并可以主動發(fā)出無線電波(調成無線電頻率的電磁場)。標簽包含了電子存儲的信息,數(shù)米之內都可以識別。與條形碼不同的是,射頻標簽不需要處在識別器視線之內,也可以嵌入被追蹤物體之內。
[0005]許多行業(yè)都運用了射頻識別技術。將標簽附著在一輛正在生產(chǎn)中的汽車,廠方便可以追蹤此車在生產(chǎn)線上的進度。超市中將安全標簽附著在商品內,當未經(jīng)付款的商品出安全門時會發(fā)出警告。
[0006]再例如,公交一卡通使用射頻技術形成了一種“電子錢包”,通過讀卡器對卡片進行充值扣款完成電子現(xiàn)金交易。
[0007]總結起來:RFID卡目前的主要使用方法為讀取卡片制造時生成的唯一 ID作為身份驗證使用,以及在卡片內儲存電子現(xiàn)金數(shù)據(jù),然后通過卡片本身支持的加減指令做成電子錢包。
[0008]數(shù)字簽名(又稱公鑰數(shù)字簽名、電子簽章)是一種類似寫在紙上的普通的物理簽名,但是使用了公鑰加密領域的技術實現(xiàn),用于鑒別數(shù)字信息的方法。一套數(shù)字簽名通常定義兩種互補的運算,一個用于簽名,另一個用于驗證。數(shù)字簽名依賴于數(shù)字證書。
[0009]目前,雖然RFID卡能夠存儲一定量的數(shù)據(jù),且價廉,以及數(shù)字證書具有高安全性是公知的,但是,未見有詳細公開有應用于RFID卡的數(shù)字證書存儲方法,尤其是未見有具備高安全性優(yōu)點的應用于RFID卡的數(shù)字證書存儲方法,RFID卡和數(shù)字證書兩者如何結合還有待深入研究。
【發(fā)明內容】
[0010]本發(fā)明所要解決的技術問題是,克服現(xiàn)有技術的缺陷,提供一種具備高安全性優(yōu)點的應用于RFID卡的數(shù)字證書存儲方法,為最終獲得結合RFID卡和數(shù)字證書兩者優(yōu)點的廣品提供了如提。
[0011]為解決上述技術問題,本發(fā)明提出一種應用于RFID卡的數(shù)字證書存儲方法,它具有以下過程,首先判斷RFID卡存儲空間是否足夠,若是,則轉向過程a),若否,則轉向過程b);
[0012]a),首先是寫入前的準備過程以獲取下列數(shù)據(jù):將數(shù)字證書分解為證書和私鑰兩部分,并對所述證書部分進行哈希運算以生成第一哈希值,獲取第一哈希值的文件信息以生成可完全寫入RFID卡的一個數(shù)據(jù)塊中的第一文件信息;用戶設置密碼并使用AES算法對所述私鑰部分進行加密以生成第一加密文件,獲取第一加密文件的文件信息以生成可完全寫入RFID卡的一個數(shù)據(jù)塊中的第二文件信息;獲取用戶的ID以及RFID卡的ID,并對所述用戶的ID以及RFID卡的ID進行哈希運算以生成可完全寫入RFID卡的一個數(shù)據(jù)塊中的第二哈希值;
[0013]接著,初始化RFID卡的數(shù)據(jù)塊,初始化RFID卡的控制塊并寫入RFID卡的訪問密鑰,將上述數(shù)據(jù)寫入RFID卡的數(shù)據(jù)塊中,具體為:首先向RFID卡的其中一個數(shù)據(jù)塊寫入第二哈希值,然后下一個數(shù)據(jù)塊寫入第一文件信息,接下來的數(shù)據(jù)塊寫入第一哈希值,第一哈希值寫完后,首先向第一文件信息中指定的數(shù)據(jù)塊寫入第二文件信息,然后接下來的數(shù)據(jù)塊寫入第一加密文件直至寫入完畢;至此,RFID卡中的數(shù)據(jù)寫入完成,所述證書部分存放在其他存儲器中;
[0014]b),首先是寫入前的準備過程以獲取下列文件:將數(shù)字證書進行哈希運算以生成第三哈希值,獲取第三哈希值的文件信息以生成可完全寫入RFID卡的一個數(shù)據(jù)塊中的第三文件信息;用戶設置密碼并使用AES算法對所述數(shù)字證書進行加密以生成第二加密文件,獲取第二加密文件的文件信息以生成可完全寫入RFID卡的一個數(shù)據(jù)塊中的第四文件信息;獲取a)中所述的第二哈希值;
[0015]接著,初始化RFID卡的數(shù)據(jù)塊,初始化RFID卡的控制塊并寫入RFID卡的訪問密鑰,將上述文件寫入RFID卡的數(shù)據(jù)塊中,具體為:首先向RFID卡的其中一個數(shù)據(jù)塊寫入第二哈希值,然后下一個數(shù)據(jù)塊寫入第三文件信息,接下來的數(shù)據(jù)塊寫入第三哈希值,第三哈希值寫完后,首先向第三文件信息中指定的數(shù)據(jù)塊寫入第四文件信息,然后接下來的數(shù)據(jù)塊寫入第二加密文件直至寫入完畢;至此,RFID卡中的數(shù)據(jù)寫入完成;
[0016]所述文件信息包括:文件編號;文件類型;文件大?。晃募?jīng)哈希運算獲得的哈希值;下一個文件信息所在的數(shù)據(jù)塊的位置。
[0017]采用上述結構后,與現(xiàn)有技術相比,本發(fā)明具有以下優(yōu)點:不管存儲空間是否足夠,還是RFID卡本身類型的不同(這是由于本發(fā)明不依賴RFID卡本身的運算能力),本發(fā)明均能夠在RFID卡上安全存放數(shù)字證書,具備高安全性優(yōu)點,具備高安全性優(yōu)點的原因在于,所述私鑰部分或者數(shù)字證書的存放不完全依賴于RFID卡本身的加密,卡本身加密使用的密鑰會全部被重新設置,保證無法使用默認密鑰讀取數(shù)據(jù),在此基礎上把私鑰部分或者數(shù)字證書本身通過AES算法再次加密,AES算法加密的文件只有通過用戶設置的密碼才能解密,保證即使破解卡加密仍然無法得到數(shù)字證書,極大提高了數(shù)字證書存放的安全性。
[0018]作為改進,采用SHA-256算法運算生成第一哈希值以及第三哈希值,SHA-256算法更加復雜和安全,滿足了確保數(shù)據(jù)唯一性的需要,采用MD5算法運算生成第二哈希值,MD5算法相對較簡單將生成16字節(jié)的數(shù)據(jù),第二哈希值剛好能夠存入一個數(shù)據(jù)塊中,所述文件經(jīng)哈希運算獲得的哈希值是指文件經(jīng)CRC32算法運算生成該哈希值,CRC32算法較簡單,生成的數(shù)據(jù)更小,有利于文件信息存入一個數(shù)據(jù)塊,并確保數(shù)據(jù)傳輸過程的準確性,上述措施對本發(fā)明進行了優(yōu)化,更有利于本發(fā)明的實施。
[0019]作為改進,所述RFID卡的訪問密鑰在RFID卡的每個扇區(qū)均不相同,每個扇區(qū)設置不同的訪問密鑰保證破解單密鑰無法取得數(shù)字證書,這樣可保證在非監(jiān)聽的情況下只能通過窮舉的方式破解所有訪問密鑰以得到數(shù)字證書的加密文件,極大地增大了破解難度,更有利于本發(fā)明的安全性的提高。
【具體實施方式】
[0020]下面對本發(fā)明作進一步詳細的說明:
[0021]RFID卡以S50卡為例,它本身分為16個扇區(qū),每個扇區(qū)有4個塊,每個塊有16個字節(jié),我們把所有塊按照順序命名為0-15,其中每個扇區(qū)的塊3為控制塊,不能用來儲存數(shù)據(jù),用于存放讀寫權限和訪問密鑰,另外O扇區(qū)的O塊是用于存放廠商代碼,已經(jīng)固化,不可更改;RFID卡以S70卡為例,它本的結構與S50 —致,只是扇區(qū)增加到64扇區(qū)。
[0022]為了保障安全數(shù)字證書的密鑰長度通常為2048bit,就出現(xiàn)本發(fā)明的兩種情況,即S50卡這類可用空間不夠儲存完整數(shù)字證書的情況和S70卡這類空間足夠可完整儲存數(shù)字證書的情況。
[0023]本發(fā)明應用于RFID卡的數(shù)字證書存儲方法,它具有以下過程,首先判斷RFID卡存儲空間是否足夠,若是,則轉向過程a),若否,則轉向過程b);
[0024]a),首先是寫入前的準備過程以獲取下列數(shù)據(jù):將數(shù)字證書分解為證書和私鑰兩部分,并對所述證書部分進行哈希運算以生成第一哈希值,獲取第一哈希值的文件信息以生成可完全寫入RFID卡的一個數(shù)據(jù)塊中的第一文件信息;用戶設置密碼并使用AES算法對所述私鑰部分進行加密以生成第一加密文件,獲取第一加密文件的文件信息以生成可完全寫入RFID卡的一個數(shù)據(jù)塊中的第二文件信息;獲取用戶的ID以及RFID卡的ID,并對所述用戶的ID以及RFID卡的ID進行哈希運算以生成可完全寫入RFID卡的一個數(shù)據(jù)塊中的第二哈希值;
[0025]接著,初始化RFID卡的數(shù)據(jù)塊,初始化RFID卡的控制塊并寫入RFID卡的訪問密鑰,將上述數(shù)據(jù)寫入RFID卡的數(shù)據(jù)塊中,具體為:首先向RFID卡的其中一個數(shù)據(jù)塊寫入第二哈希值,所述其中一個數(shù)據(jù)塊為塊02,然后下一個數(shù)據(jù)塊寫入第一文件信息,所述下一個數(shù)據(jù)塊為塊03,接下來的數(shù)據(jù)塊寫入第一哈希值,由于塊04為控制塊,那么所述接下來的數(shù)據(jù)塊為塊05開始,存放第一哈希值需要塊05、塊06兩個數(shù)據(jù)塊,第一哈希值寫完后,首先向第一文件信息中指定的數(shù)據(jù)塊寫入第二文件信息,所述指定的數(shù)據(jù)塊為塊07,然后接下來的數(shù)據(jù)塊寫入第一加密文件直至寫入完畢,但凡遇到控制塊均跳過到下一個塊以寫入數(shù)據(jù);至此,RFID卡中的數(shù)據(jù)寫入完成,所述證書部分存放在其他存儲器中,其他存儲器可以是手機、電腦、U盤、服務器等等;
[0026]b),首先是寫入前的準備過程以獲取下列文件:將數(shù)字證書進行哈希運算以生成第三哈希值,獲取第三哈希值的文件信息以生成可完全寫入RFID卡的一個數(shù)據(jù)塊中的第三文件信息;用戶設置密碼并使用AES算法對所述數(shù)字證書進行加密以生成第二加密文件,獲取第二加密文件的文件信息以生成可完全寫入RFID卡的一個數(shù)據(jù)塊中的第四文件信息;獲取a)中所述的第二哈希值;
[0027]接著,初始化RFID卡的數(shù)據(jù)塊,初始化RFID卡的控制塊并寫入RFID卡的訪問密鑰,將上述文件寫入RFID卡的數(shù)據(jù)塊中,具體為:首先向RFID卡的其中一個數(shù)據(jù)塊寫入第二哈希值,所述其中一個數(shù)據(jù)塊為塊02,然后下一個數(shù)據(jù)塊寫入第三文件信息,所述下一個數(shù)據(jù)塊為塊03,接下來的數(shù)據(jù)塊寫入第三哈希值,由于塊04為控制塊,那么所述接下來的數(shù)據(jù)塊為塊05開始,存放第三哈希值需要塊05、塊06兩個數(shù)據(jù)塊,第三哈希值寫完后,首先向第三文件信息中指定的數(shù)據(jù)塊寫入第四文件信息,所述指定的數(shù)據(jù)塊為塊07,然后接下來的數(shù)據(jù)塊寫入第二加密文件直至寫入完畢,但凡遇到控制塊均跳過到下一個塊以寫入數(shù)據(jù);至此,RFID卡中的數(shù)據(jù)寫入完成;
[0028]所述文件信息包括:文件編號;文件類型;文件大小;文件經(jīng)哈希運算獲得的哈希值,比如對第一哈希值進行哈希運算得到所述哈希值;下一個文件信息所在的數(shù)據(jù)塊的位置。
[0029]采用SHA-256算法運算生成第一哈希值以及第三哈希值,采用MD5算法運算生成第二哈希值,所述文件經(jīng)哈希運算獲得的哈希值是指文件經(jīng)CRC32算法運算生成該哈希值。
[0030]所述RFID卡的訪問密鑰在RFID卡的每個扇區(qū)均不相同。
[0031]哈希值:哈希算法將任意長度的二進制值映射為固定長度的較小二進制值,這個小的二進制值稱為哈希值。哈希值是一段數(shù)據(jù)唯一且極其緊湊的數(shù)值表示形式。如果散列一段明文而且哪怕只更改該段落的一個字母,隨后的哈希都將產(chǎn)生不同的值。要找到散列為同一個值的兩個不同的輸入,在計算上來說基本上是不可能的。上述的SHA-256、MD5、CRC32運算得到的值都屬于哈希值。
[0032]AES加密算法即密碼學中的高級加密標準(Advanced Encryption Standard,AES),又稱Rijndael加密法,是美國聯(lián)邦政府采用的一種區(qū)塊加密標準。這個標準用來替代原先的DES,已經(jīng)被多方分析且廣為全世界所使用。經(jīng)過五年的甄選流程,高級加密標準由美國國家標準與技術研究院(NIST)于2001年11月26日發(fā)布于FIPS PUB197,并在2002年5月26日成為有效的標準。
[0033]所述文件信息的結構如下所示:
[0034]typedef struct
[0035]{ [0036]unsigned char filenum;//文件編號
[0037]unsigned char filetype;//文件類型比如用來表示是完整證書還是只有證書私key
[0038]short int ifilesize;//文件大小以字節(jié)做單位
[0039]unsigned int ifilecrc32;//文件 CRC32
[0040]short int inextfileblock;//下一個文件信息所在的塊位置
[0041]unsigned char buffer[6] ;// 保留位
[0042]}FILEBLOCKINFO, ^PFILEBLOCKINFO;[0043]文件編號和文件類型用來區(qū)分文件。由于RFID卡只能按塊寫入信息,而有部分數(shù)字證書的大小并不是16的整數(shù)倍,故直接按照塊寫入會無法原樣還原文件,所以需要這樣一個文件信息。文件大小信息保證文件所在的所有塊讀取完畢后可去掉多余字節(jié)正常還原文件,而CRC32信息有效驗證還原出來的文件是否由于傳輸問題造成的損壞。
【權利要求】
1.一種應用于RFID卡的數(shù)字證書存儲方法,其特征在于,它具有以下過程,首先判斷RFID卡存儲空間是否足夠,若是,則轉向過程a),若否,則轉向過程b); a),首先是寫入前的準備過程以獲取下列數(shù)據(jù):將數(shù)字證書分解為證書和私鑰兩部分,并對所述證書部分進行哈希運算以生成第一哈希值,獲取第一哈希值的文件信息以生成可完全寫入RFID卡的一個數(shù)據(jù)塊中的第一文件信息;用戶設置密碼并使用AES算法對所述私鑰部分進行加密以生成第一加密文件,獲取第一加密文件的文件信息以生成可完全寫入RFID卡的一個數(shù)據(jù)塊中的第二文件信息;獲取用戶的ID以及RFID卡的ID,并對所述用戶的ID以及RFID卡的ID進行哈希運算以生成可完全寫入RFID卡的一個數(shù)據(jù)塊中的第二哈希值; 接著,初始化RFID卡的數(shù)據(jù)塊,初始化RFID卡的控制塊并寫入RFID卡的訪問密鑰,將上述數(shù)據(jù)寫入RFID卡的數(shù)據(jù)塊中,具體為:首先向RFID卡的其中一個數(shù)據(jù)塊寫入第二哈希值,然后下一個數(shù)據(jù)塊寫入第一文件信息,接下來的數(shù)據(jù)塊寫入第一哈希值,第一哈希值寫完后,首先向第一文件信 息中指定的數(shù)據(jù)塊寫入第二文件信息,然后接下來的數(shù)據(jù)塊寫入第一加密文件直至寫入完畢;至此,RFID卡中的數(shù)據(jù)寫入完成,所述證書部分存放在其他存儲器中; b),首先是寫入前的準備過程以獲取下列文件:將數(shù)字證書進行哈希運算以生成第三哈希值,獲取第三哈希值的文件信息以生成可完全寫入RFID卡的一個數(shù)據(jù)塊中的第三文件信息;用戶設置密碼并使用AES算法對所述數(shù)字證書進行加密以生成第二加密文件,獲取第二加密文件的文件信息以生成可完全寫入RFID卡的一個數(shù)據(jù)塊中的第四文件信息;獲取a)中所述的第二哈希值; 接著,初始化RFID卡的數(shù)據(jù)塊,初始化RFID卡的控制塊并寫入RFID卡的訪問密鑰,將上述文件寫入RFID卡的數(shù)據(jù)塊中,具體為:首先向RFID卡的其中一個數(shù)據(jù)塊寫入第二哈希值,然后下一個數(shù)據(jù)塊寫入第三文件信息,接下來的數(shù)據(jù)塊寫入第三哈希值,第三哈希值寫完后,首先向第三文件信息中指定的數(shù)據(jù)塊寫入第四文件信息,然后接下來的數(shù)據(jù)塊寫入第二加密文件直至寫入完畢;至此,RFID卡中的數(shù)據(jù)寫入完成; 所述文件信息包括:文件編號;文件類型;文件大??;文件經(jīng)哈希運算獲得的哈希值;下一個文件信息所在的數(shù)據(jù)塊的位置。
2.根據(jù)權利要求1所述的應用于RFID卡的數(shù)字證書存儲方法,其特征在于,采用SHA-256算法運算生成第一哈希值以及第三哈希值,采用MD5算法運算生成第二哈希值,所述文件經(jīng)哈希運算獲得的哈希值是指文件經(jīng)CRC32算法運算生成該哈希值。
3.根據(jù)權利要求1所述的應用于RFID卡的數(shù)字證書存儲方法,其特征在于,所述RFID卡的訪問密鑰在RFID卡的每個扇區(qū)均不相同。
【文檔編號】H04L9/32GK103905199SQ201410097042
【公開日】2014年7月2日 申請日期:2014年3月14日 優(yōu)先權日:2014年3月14日
【發(fā)明者】吳江, 李陳, 陶源 申請人:嘉興市辰翔信息科技有限公司