999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

對無線IC卡傳輸數(shù)據(jù)實行3DES加密

2015-04-29 00:00:00常國權戴國強
電子產(chǎn)品世界 2015年9期

摘要:為了保護無線lC卡傳輸數(shù)據(jù)的安全性,防止非法的破解和復制,在較低配置的單片機系統(tǒng)中采用3DES加密算法。當使用STC單片機工作在22.1184MHz的典型條件下,3DES算法加密、解密的平均速度約為308.7bit/s,滿足實際應用的要求。本文網(wǎng)絡版地址:http://www.eepw.com.cn/article/279222.htm

關鍵詞:3DES算法;加密;解密;STC15單片機

DOI:10.3969/j.issn.1005-5517.2015.8.012

引言

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

1 系統(tǒng)實現(xiàn)

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

2 3DES加密算法實現(xiàn)

2.1 3DES算法在STC單片機中的實現(xiàn)

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

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

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

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

根據(jù)圖3可以寫出在KeilC語言中的3DES算法加密、解密函數(shù),其中參數(shù)key_p是指向16字節(jié)密鑰的指針。

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

{//密鑰,type表示加密或解密

des(data_p, key_p, type), //DES加密 des(data_p, key_p, !type);//DES解密

des(data_p, key_p, type),//DES加密

}

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

Ml卡(即NXP Mifarel系列)及與其兼容芯片的RFID卡是用得較多無線卡。公交卡、門禁卡、校園一卡通等都是使用的該系列的卡片。Ml卡分為16個扇區(qū),每個扇區(qū)為4塊,每塊16個字節(jié),以塊為存取單位,每個扇區(qū)的最后一塊一股用來存儲該扇區(qū)的物理密碼和訪問控制信息,因此,用來存儲用戶數(shù)據(jù)的塊共有47塊(16×3-1,o扇區(qū)o塊固定存儲卡序列號等信息)。

在STC單片機內部的EEPROM中需要存儲兩種密碼,一種是讀取Ml卡時需要驗證的物理密碼,另一種是3DES算法用到的加密、解密的邏輯密碼,Ml卡的物理密碼一般是12個字節(jié),3DES算法的邏輯密碼是16個字節(jié)。當需要往Ml卡中寫入數(shù)據(jù)時,單片機把事先存儲在STC15單片機的EEPROM中16字節(jié)邏輯密鑰讀取到password數(shù)組中,然后把要寫入Ml卡中的數(shù)據(jù)按照8個字節(jié)一組進行3DES算法加密,當達到16個字節(jié)后寫入用戶指定的扇區(qū)塊中,如果加密數(shù)據(jù)不夠8個字節(jié),按照約定進行補零以滿足3DES算法要求。當單片機控制射頻芯片驗證物理密碼并讀取到Ml卡中的數(shù)據(jù)后,按照8個字節(jié)一組進行3DES算法解密,并把解密后的明文數(shù)據(jù)返回給用戶。如果不知道3DES算法的16位邏輯密鑰,即使非法讀取到了Ml卡中的數(shù)據(jù)也無法得到其明文,從而達到了防止數(shù)據(jù)被破解的目的。

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

根據(jù)圖4所示,時間戳的合成算法可以用以下語句來實現(xiàn):

ts=《INT32U)yr<<26)l《INT32U)month<<22)l《INT32U)day<<17);

tsl=《INT32U)hr<<12)l《INT32U)min<<6)l(INT32U)sec;

時間和日期也可以由單片機系統(tǒng)的定時器或者其他方法來實現(xiàn)。

3 系統(tǒng)測試

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

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

4 結論

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

主站蜘蛛池模板: 国产小视频免费| 国产91精选在线观看| 国产无码在线调教| 秋霞国产在线| 97一区二区在线播放| 久操中文在线| 国产精品蜜臀| 免费一看一级毛片| 欧美成人一区午夜福利在线| 91蜜芽尤物福利在线观看| 六月婷婷激情综合| 97久久超碰极品视觉盛宴| 国产网站免费看| 视频一区视频二区中文精品| 欧美专区日韩专区| 高清免费毛片| 伊人福利视频| 亚洲无线国产观看| 九九视频在线免费观看| 欧美午夜一区| 国产黄色片在线看| 99青青青精品视频在线| 国产一级无码不卡视频| 亚洲国产天堂久久九九九| 国产Av无码精品色午夜| 亚洲人在线| 日韩美毛片| 国产精品美乳| 国产在线一二三区| 美女被操黄色视频网站| 国产电话自拍伊人| 亚洲乱亚洲乱妇24p| 国产一区二区三区在线无码| 91系列在线观看| 国产视频大全| 国内a级毛片| 日本久久久久久免费网络| 免费无遮挡AV| 国产成人乱无码视频| 亚洲91精品视频| 青青草原国产av福利网站| 中文字幕无码电影| 国内精品小视频在线| 亚洲区第一页| 91免费国产高清观看| 国产毛片高清一级国语 | 成人精品区| 好吊色妇女免费视频免费| 国产精品久久久久久久久| 波多野结衣一区二区三区四区视频| 538国产在线| 亚洲人精品亚洲人成在线| 欧类av怡春院| 玖玖精品视频在线观看| 亚亚洲乱码一二三四区| 喷潮白浆直流在线播放| 67194在线午夜亚洲| 亚洲第一视频网站| 九九热视频精品在线| 国产区免费| 岛国精品一区免费视频在线观看 | 美女内射视频WWW网站午夜 | 四虎成人在线视频| 亚洲二三区| 色综合综合网| 免费无码一区二区| 国产精品第一区在线观看| 久久精品aⅴ无码中文字幕 | 97色婷婷成人综合在线观看| 欧美啪啪一区| 中文字幕久久波多野结衣| 国产不卡在线看| 亚洲一区二区三区麻豆| 中国国产一级毛片| 97视频免费在线观看| 无码精油按摩潮喷在线播放 | 亚洲av无码久久无遮挡| 亚洲国产欧美国产综合久久| 性欧美久久| 精品国产网| 欧美在线视频不卡| 夜夜操天天摸|