国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

對無線IC卡傳輸數據實行3DES加密

發布時間:2015-12-4 11:14    發布者:designapp
摘要:為了保護無線IC卡傳輸數據的安全性,防止非法的破解和復制,在較低配置的單片機系統中采用3DES加密算法。當使用STC單片機工作在22.1184MHz的典型條件下,3DES算法加密、解密的平均速度約為308.7bit/s,滿足實際應用的要求。

引言

RFID(無線射頻識別)技術廣泛應用于生產制造、物流管理、公共安全等多個領域 [1]。特別是13.56MHz的RFID以其獨特的優勢在公共交通、門禁管理、學校一卡通、醫療衛生、身份管理等領域得到了充分的應用。然而,隨著應用范圍的擴大,RFID卡的數據安全性和保密性顯得日益重要。自從2008年德國研究員亨里克·普洛茨(Henryk Plotz)和弗吉尼亞大學計算機科學在讀博士卡爾斯滕·諾爾(Karsten Nohl)成功地破解了由NXP收購來的的Mifare經典非接觸IC卡(M1卡)的安全算法以來,RFID技術的安全性受到了前所未有的挑戰[2]。為了防止RFID卡被破解、復制,采用3DES加密算法和時間戳算法對M1卡中的數據進行邏輯加密保護,并在較低配置的單片機系統中進行了驗證,實驗結果達到了預期的要求,3DES加密算法可以有效地防止RFID卡被非法破解和復制。

1 系統實現

為了驗證,硬件主控系統采用宏晶科技公司的51系列單片機STC15L2K32S2,復旦微電子公司的FM1702無線射頻芯片,及常用的DS1302時鐘模塊、W25Q32存儲器以及按鍵、液晶顯示等構成系統,如圖1所示。STC15L2K32S2工作電壓3.3V,內部具有2K的RAM、32K的Flash以及29K的EEPROM,用內部的EEPROM存儲系統重要密碼參數等信息[3]。FM1702芯片是ISO14443標準的非接觸IC卡用芯片,支持經典的M1卡,支持SPI接口方式,工作電壓3V~5V[4]。DS1302時鐘模塊提供當前時間,可以使用該時間生成一個4字節的加密時間戳,加強防止卡被非法復制。W25Q32存儲器用于存儲卡的加密序列號和時間戳。



2 3DES加密算法實現

2.1 3DES算法在STC單片機中的實現

3DES加密算法,是在DES算法基礎上實現的一種增強型的加密算法。它相當于是對每個數據塊應用三次DES加密算法,即通過增加DES的密鑰長度來避免外來的暴力攻擊。基礎的DES算法是一種分組對稱加密、解密算法,也是使用較廣泛的密鑰系統之一,DES算法的優點是算法公開、計算量小、加密速度快、加密效率高[5],適合在嵌入式系統中應用。

DES算法對明文數據按8字節進行分組處理,即明文按64位分組,密鑰長度也是64位,其中8位為奇偶校驗位。首先使用一個IP置換表對要加密的一組數據進行初始IP置換,對64位明文按位重新組合,并分成左32位L0和右32位R0兩部分。然后使用一個f函數對L0和R0實施16輪迭代運算,最后使用一個IP-1逆置換表對數據作逆置換給出加密的結果。在16輪迭代運算過程中,每次加密迭代使用不同的48位子密鑰K1…K16,這16個子密鑰是由64位密鑰通過選擇置換1、循環左移、選擇置換2等變換得到的[6]。DES算法的加密流程如圖2所示。



如前所述,DES算法使用異或、置換、代換、移位操作四種基本運算進行16輪循環迭代運算來實現的,在單片機中用Keil C語言實現算法時需要編寫相應的基本運算操作函數,并設計一些基本的參數表。這些表包括:初始置換表IP、逆置換表IP-1、S盒替換表、E擴展置換表、P置換表、選擇置換表1(PC-1)、選擇置換表2(PC-2)和循環右移表。這些表可以用Keil C語言的數組來實現,并聲明為“static unsigned char code”類型的數組,其中static關鍵字是保證該數組只在當前模塊可見。



DES解密過程的邏輯結構和加密過程一致,但解密過程中使用的子密鑰的順序與加密時的順序正好相反,依次為K16,K15,…,K1。即第1輪迭代使用子密鑰K16,第2輪迭代使用子密鑰K15,…,第16輪迭代使用子密鑰K1,并交換L16和R16的順序,最終得到64位明文[7]。典型的3DES算法是用兩個密鑰(EDE2模式,即Key1 = Key3,Key2)對明文實施加密-解密-加密。明文P用Key1加密,用Key2解密,用Key3加密,即可得到密文C;密文C用Key3解密,用Key2加密,用Key1解密,即可得到明文P。3DES算法的加密、解密流程如圖3所示。在圖3中,DES-1表示解密,Key1、Key2和Key3各表示64位密鑰。

根據圖3可以寫出在Keil C語言中的3DES算法加密、解密函數,其中參數key_p是指向16字節密鑰的指針。

void TripleDes(unsigned char *data_p,unsigned char* key_p,int type)//data待加密數據,key為

{ //密鑰,type表示加密或解密
des(data_p, key_p, type); // DES加密
des(data_p, &key_p[8], !type); // DES解密
des(data_p, key_p, type); // DES加密
}

2.2 3DES算法在M1卡中的應用

M1卡(即NXP Mifare1系列)及與其兼容芯片的RFID卡是用得較多無線卡。公交卡、門禁卡、校園一卡通等都是使用的該系列的卡片。M1卡分為16個扇區,每個扇區為4塊,每塊16個字節,以塊為存取單位,每個扇區的最后一塊一般用來存儲該扇區的物理密碼和訪問控制信息[8],因此,用來存儲用戶數據的塊共有47塊(16×3-1,0扇區0塊固定存儲卡序列號等信息)。                                
               
在STC單片機內部的EEPROM中需要存儲兩種密碼,一種是讀取M1卡時需要驗證的物理密碼,另一種是3DES算法用到的加密、解密的邏輯密碼,M1卡的物理密碼一般是12個字節,3DES算法的邏輯密碼是16個字節。當需要往M1卡中寫入數據時,單片機把事先存儲在STC15單片機的EEPROM中16字節邏輯密鑰讀取到password[16]數組中,然后把要寫入M1卡中的數據按照8個字節一組進行3DES算法加密,當達到16個字節后寫入用戶指定的扇區塊中,如果加密數據不夠8個字節,按照約定進行補零以滿足3DES算法要求。當單片機控制射頻芯片驗證物理密碼并讀取到M1卡中的數據后,按照8個字節一組進行3DES算法解密,并把解密后的明文數據返回給用戶。如果不知道3DES算法的16位邏輯密鑰,即使非法讀取到了M1卡中的數據也無法得到其明文,從而達到了防止數據被破解的目的。



如果得到了卡中的密文,盡管無法得到其明文,但是攻擊者可以對卡進行完全復制,包括復制第0扇區第0塊的卡序列號等信息(如UID卡即可修改其0扇區第0塊的內容),為了防止攻擊者對M1卡中的數據進行復制到另一張M1卡中,需要在STC單片機的EEPROM或者外部存儲器中建立一個存儲卡序列號和時間戳的系統表,卡序列號和時間戳各占4個字節。每當單片機系統對卡進行一次操作之后,就要在卡中和系統表中都寫入新的時間戳,當兩張完全一樣的復制卡先后被系統讀取到之后,由于系統在先被讀取的復制卡中寫入了新的時間戳信息,從而把另一張復制卡標識為非法卡,也就是說,無論攻擊者復制了多少張完全相同的卡,只有最先被系統讀取到那一張能正常使用,從而,防止了卡被復制。時間戳是STC單片機從DS1302中讀取出來的年、月、日、時、分、秒之后經過相應的移位操作而合成的一個四字節無符號變量。時間戳的合成方法如圖4所示。系統處理總體流程圖如圖5所示。



根據圖4所示,時間戳的合成算法可以用以下語句來實現:

ts = ((INT32U)yr << 26) | ((INT32U)month << 22) | ((INT32U)day << 17);
ts |= ((INT32U)hr << 12) | ((INT32U)min << 6) | (INT32U)sec;
時間和日期也可以由單片機系統的定時器或者其他方法來實現。

3 系統測試

為了對STC單片機在3DES算法加密、解密數據的正確性和運算能力進一步分析,對STC單片機系統進行了系統測試。在STC單片機RAM中建立一個容量為1K字節的數組test3des[1024],并給它賦初始值,調用TripleDes函數進行加密,并通過串口發送到上位機顯示出來;把加密后的數據重新賦值給數組test3des[1024],調用TripleDes函數進行解密,并發串口顯示,實際測試證明3DES算法是正確的。考慮到STC單片機系統運行速度較低,如果讓STC單片機對加密、解密速度進行計算并處理,勢必會影響到結論的準確性,為此,使用VC++編寫上位機軟件配合3DES算法處理速度測試。在STC單片機調用3DES算法加密、解密數據時,通過單片機串口發送到上位機一個開始命令,上位機軟件啟動精密計時,等STC單片機處理完數據時再給上位機軟件發送一個結束命令,上位機軟件停止計時,通過單片機處理的數據字節數和計時時間可以計算出STC單片機調用3DES算法加密、解密數據的速度。STC單片機在不同晶振頻率下3DES算法加密、解密測試對照表如表1所示。平均加密或解密時間是經過10次測試取其平均值。

從表1的數據可知:在STC單片機運行在典型工作頻率22.1184MHz的情況下,3DES算法加密、解密的平均速度約為308.7bit/s,加密或解密M1卡一個塊數據(16個字節)用時約為0.41s,完全達到了實際應用的條件,而且,隨著所選用單片機或微處理器運行速度的提高,所用時間會更少。



4 結論
通過分析3DES算法原理和防復制方法,在較低配置的STC單片機系統中實現了3DES加密算法,并進行了實驗測試,得到了實驗測試結果,證明了3DES算法在非接觸式M1卡中應用的可行性,這對保障RFID卡信息安全性和保密性具有重要的作用,在實際應用中也具有一定的參考意義。

參考文獻:
[1]錢曉華.基于RFID系統的信息安全技術研究[D].江蘇:南京郵電大學,2013,02
[2]單承贛等.射頻識別(RFID)原理與應用[M].北京:電子工業出版社,2014,07
[3]宏晶科技公司.STC15L2K32S2系列單片機器件手冊[P].2013,09
[4]上海復旦微電子股份有限公司.FM1702SL芯片使用手冊[P].2009
[5]丁顯信.DES算法的硬件實現方法研究及FPGA實現[D].青島:青島科技大學,2013
[6]王素琴,林平分.非接觸式智能卡中DES/3DES協處理器的設計[J].科技信息,2013(05)
[7]趙澤茂等.信息安全技術[M].西安:西安電子科技大學出版社,2009,02
[8]Philips Semiconductors.Standard Card IC MF1 IC S50 Functional Specification[P].2008
本文地址:http://m.qingdxww.cn/thread-158537-1-1.html     【打印本頁】

本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
您需要登錄后才可以發表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區
  • 無線充電基礎知識及應用培訓教程3
  • 無線充電基礎知識及應用培訓教程2
  • 了解一下Microchip強大的PIC18-Q24 MCU系列
  • 為何選擇集成電平轉換?
  • 貿澤電子(Mouser)專區

相關視頻

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日韩成人动漫在线观看 | 国产成人性毛片aaww | 国产羞羞的视频在线观看免费 | 午夜视频免费看 | 欧美成人免费全网站大片 | 日本特级片 | 日本一区视频在线观看 | 日韩成人精品视频 | 向日葵视频免费下载 | 麻豆最新 | 欧美亚洲另类视频 | 日日操日日操 | 日本一区二区三区在线看 | 激情亚洲视频 | 日韩欧美中文字幕在线播放 | 日韩精品久久久久影院 | 欧美性色黄大片www 欧美性色xo影院永久禁欲 | 伊香蕉| 欧美人与性动交a欧美精品 欧美人与禽zzz000xxx | 不卡国产 | 在线国产中文字幕 | 国产短视频精品区第一页 | 亚洲一区不卡视频 | 久久精品视频99精品视频150 | 国产精品无 | 久久五月网 | 久久成人亚洲香蕉草草 | 欧美性xxxx| 国产成人a v在线影院 | 99热在线精品免费播放6 | 国产精品国产三级在线高清观看 | 四虎影视在线影院www | 久热精品6 | 中文字幕不卡在线 | 四虎国产欧美成人影院 | 欧美青青 | 国产大陆亚洲精品国产 | 狠狠操综合网 | 最近最新的日本免费 | 青青草手机在线观看 | 久操操操 |