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

HMAC認證協(xié)議的單片機實現(xiàn)

發(fā)布時間:2010-11-3 12:54    發(fā)布者:eetech
關(guān)鍵詞: HMAC , 單片機 , 認證 , 協(xié)議
在開放的通信和計算機系統(tǒng)中,建立安全可靠的電子商務(wù)平臺是十分重要的。通常需要通過加密的方法對客戶的有關(guān)信息,如密碼、合同等加以保護,使之不被盜取或篡改。當客戶提出服務(wù)申請時,必須對客戶身份的合法性、報文的完整性進行確認。  

HMAC(Keyed-Hashing for Message Authentication)是一個公開的協(xié)議。它是一種基于密鑰的報文完整性的驗證方法,其安全性是建立在Hash算法基礎(chǔ)上的。它要求通信雙方共享密鑰、約定算法、對報文進行Hash運算,如MD5、SHA、RIPEMD等,形成固定長度的認證碼。通信雙方通過認證碼的校驗來確定報文的合法性。這個協(xié)議可以用來作加密、數(shù)字簽名、報文驗證等。





利用HMAC協(xié)議可以建立一個身份認證的電子商務(wù)平臺,客戶和服務(wù)端雙方需要預(yù)先約定唯一的公鑰和加密算法;客戶單方面保留自己密碼作為密鑰,服務(wù)端只保留公鑰和認證碼。這個認證碼是密鑰經(jīng)HMAC協(xié)議加密得到定長碼字。當客戶提出服務(wù)申請時,應(yīng)提交鑰和密鑰的認證碼。服務(wù)端通過公鑰確認客戶的基本身份,再檢驗認證碼確定客戶的合法性。這樣,客戶的私密信息在服務(wù)端、傳輸媒介中都是加密隱藏的。  

我們利用服務(wù)器建立了服務(wù)端的模擬用戶數(shù)據(jù)庫,單片機實現(xiàn)客戶端的加密算法,電話線作為傳輸介質(zhì),實現(xiàn)了HMAC協(xié)議在IP電話計費系統(tǒng)中的應(yīng)用。

1 HMAC的算法原理  

1.1 HMAC算法定義  

用公式表示如下:  

HMAC=H(key xor opad,H(key xor ipad,text))  

H(X,Y)代表對X+Y的消息進行一種Hash運算;
ipad代表重復(fù)B次的單字節(jié)十六進制常數(shù)0x36;  
opad代表重復(fù)B次的單字節(jié)十六進行常數(shù)0x5c;  
key代表64字節(jié)的字符串,由密鑰組成,不足的補0;  
text代表任意長度文本。  

密鑰≥L字節(jié)。當大于B時,先經(jīng)Hash計算形成L字節(jié)的秘鑰(B是Hash算法中一次迭代運算的數(shù)據(jù)塊字節(jié)數(shù);L是Hash算法形成報文摘要的字節(jié)數(shù))。  

HMAC協(xié)議定義了迭代兩次的Hash加密算法,最終形成報文摘要(DIGEST)值就是認證碼。基于算法的可靠性、安全性和易于計算機實現(xiàn)特性,先用Hash中的MD5算法實現(xiàn)HMAC,其B=64,L=16。  

  

1.2 MD5算法定義  

MD5算法以對任意長度消息多次循環(huán)迭代的散列運算,最終形成16 Byte報文摘要。這個摘要對文本具有唯一性,可作為認證碼。在目標計算機的計算速度下,這個摘要是難于破解的。  

(1)報文填充  

MD5算法要求對任意長度報文進行填充,構(gòu)成N%26;#215;64 Byte消息分組,N為整數(shù)。其中每一分組又劃分為16個4字節(jié)子分組。  
填充數(shù)據(jù)分2步。首先,填充使得數(shù)據(jù)位長度恰好為(N%26;#215;64-8)Byte的數(shù),即在報文有效數(shù)據(jù)后補1個0x1,其它補0x0至滿足上述要求。然后,再后補上8字節(jié)(64位)的報文數(shù)據(jù)長度(填充前字節(jié)數(shù))。這樣,數(shù)據(jù)就被填充為64Byte(512bit)的整數(shù)倍。  

(2)初始化MD5參數(shù)


  
4個4字節(jié)位變量(A、B、C、D)用來作為報文摘要的初始值:  
A=0x01234567  
B=0x89abcdef  
C=0xfedcba98  
D=0x76543210  

(3)算法  

MD5算法是對消息分組依次迭代算法。第1次運算的初始值為ABCD,以后每一次迭代運算的結(jié)果都替換ABCD作為下一次的初始值,共經(jīng)過N次的迭代運算,就得到該消息的報文摘要,如圖1所示。  

對每一消息分組的運算方法是相同的。首先把初始值A(chǔ)BCD放入變量abcd,然后進行4輪相似的運算變換,每輪包含16次操作。每次操作對其中的3個變量(4字節(jié))bcd做1次非線性運算,將其結(jié)果加上變量a,一個消息子分組Mi,一個常數(shù)Ti;將所得結(jié)果向環(huán)移一個不定的數(shù)Si,再加變量b,然后用該結(jié)果取代變量a,變換abcd<=dabc,進入下一次運算,共16次,如圖2所示。4輪運算結(jié)束后,把變量abcd與初始ABCD進行“異或”運算,結(jié)果作為下一分組的初始值。  

計算公式如下:  

第1輪:SUB_FF(a,b,c,d,Mi,Si,Ti):a<=b+((a+F(b,c,d)+Mi+Ti)<< 第2輪:SUB_GG(a,b,c,d,Mi,Si,Ti):a<=b+((a+G(b,c,d)+Mi+Ti)<< 第3輪:SUB_HH(a,b,c,d,Mi,Si,Ti):a<=b+((a+H(b,c,d)+Mi+Ti)<< 第4輪:SUB_II(a,b,c,d,Mi,Si,Ti):a<=b+((a+I(b,c,d)+Mi+Ti)<< 數(shù)據(jù)交換規(guī)則:a,b,c,d→d,a,b,c→c,d,a,b, →b,c,d,a



  
最終:ABCD<=ABCD+abcd  
其中:Mi為16個信息子包,每個4字節(jié);Ti為4字節(jié)常數(shù);Si為左移位數(shù);abcd為32位變量;初始值為ABCD。  
函數(shù):F(X,Y,Z)=X%26;amp;Y|NOT(X)%26;amp;Z  
G(X,Y,Z)=X%26;amp;Z|Y%26;amp;not(Z)  
H(X,Y,Z)=XxorYxorZ  
I(X,Y,Z)=Yxor(X|not(Z))  

2 HMAC在IP電話計費上的應(yīng)用  

利用HMAC的認證功能,可對用戶的IP儲值卡中的金額進行保護。在試驗系統(tǒng)中,智能終端相當于認證系統(tǒng)的客戶端,如圖3所示。  
當用戶使用時,用戶只須直接撥入所叫的電話號碼即可。智能終端則自動撥向IP服務(wù)商,待響應(yīng)后,反終端序列號、主叫電話號碼、認證碼一同發(fā)給服務(wù)商。智能終端序列號相當于公鑰,用戶的密碼就是密鑰。智能終端對密鑰進行HMAC協(xié)議的加密運算自動生成認證碼。  
服務(wù)曾幾何時接收數(shù)據(jù)碼流,根據(jù)終端序列號確定用戶的基本信息,再通過數(shù)據(jù)庫中存儲的認證碼與接收到認證碼的比較,確認用戶的合法身份。如身份無誤,則接通話路,計時收費。  

其中第3步認證碼的格式如表1所列。

表1 認證碼格式  

引導(dǎo)符
終端序列號
電話號碼*隨機數(shù)
HMAC認證碼
校驗碼

*
10Byte
21Byte
16Byte
0.5Byte

32Byte,高位為0,可直接發(fā)送DTMF
不可直接發(fā)送,要轉(zhuǎn)化
 
16Byte認證碼,是經(jīng)由HMAC加密得到的,其中的KEY值、TEXT值都可以作為用戶密碼。由于認證碼高4bit為為0,所以不可以直接發(fā)送DTMF,要把4bit校驗碼排在認證碼之后,共組成132bit數(shù)據(jù),一起經(jīng)過串行左移轉(zhuǎn)化,每3bit構(gòu)成1組,最后形成44個DTMF。  
智能終端由單片機、DTMF撥號電話機、液晶顯示等芯片構(gòu)成。MCU不但要承擔(dān)主控任務(wù),還要實現(xiàn)HMAC的運算。  

3 HMAC的單片機實現(xiàn)


  
(1)ZQ032SA單片機簡介  

ZQ032SA 是北京中慶公司具有獨立知識產(chǎn)權(quán)的Flash型MCU,與Motorola 6805系列單片機功能相似,指令兼容。其采用CMOS工藝,工作穩(wěn)定、功耗低、采用小型表貼封裝(SOP28),適合民用設(shè)備使用。  

主要特性有:  

*8位MCU,兼容增強型6502指令集;  
*4MHz主頻,典型取指周期0.5μs。  
*16Kbyte片內(nèi)Flash存儲器。  
*352Byte片內(nèi)用戶RAM,其中包括64Byte的堆棧區(qū);  
*1個13位的多功能計數(shù)器和1個看門狗WDT  
*20個通用I/O接口;  
*1個載波調(diào)制發(fā)生器CMT;  
*Flash保護機制;  
*Flash在線程序下載;  
*2種節(jié)電模式。  

(2)HMAC算法的實現(xiàn)  

基于單片機內(nèi)部可用RAM的大小及實際使用時可能的密碼長度,在認證系統(tǒng)中規(guī)定了消息長度,key≤64B,text≤58B。這樣在本例中,MD5運算的消息分組N=2。在單片機4MHz主頻時,經(jīng)過程序優(yōu)化,完成HMAC的運算所需時間小于3ms。

下面列出主要流程圖。  

其中:MD5_MAIN是MD5運算主程序;  
MD5_ONE子程序是MD5的一個分組運算;  
SUB-FF、FBCD、GBCD、HBCD、IBCD分別是MD5運算中相應(yīng)函數(shù)的子程序;  
SHIFT子程序完成< EXCH子程序完成地址4組數(shù)據(jù)的交換;  
常數(shù)Ti列表于MEM_C,移位Si列表于TABLE_S;  
消息子分組順序列表于TABLE_M;  
KEY鍵盤程序讀入存于MEM_M,TEXT存于MEM_MB。  
標號MEM1-4的RAM用于中間計算。  
HMAC流程如圖4所示。  
MD5算法中的一個消息分組的計算程序流程如圖6所示。





HMAC作為一種認證的協(xié)議,可以用于那么需要數(shù)字簽名、身份認證或報文完整性檢驗等領(lǐng)域。在家用電子市場、安防、電子商務(wù)方面,都有廣泛的用途。  

在單片機可實現(xiàn)HMAC認證的基礎(chǔ)上,可以進一步把ZQ032SA的IP核與其它外圍邏輯構(gòu)成ASIC,用于智能卡,將有應(yīng)用前景。  

在HMAC協(xié)議的基礎(chǔ)上,加入其它成熟的加密算法,如DES,可以進一步提高認證的安全性。
本文地址:http://m.qingdxww.cn/thread-35992-1-1.html     【打印本頁】

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

廠商推薦

  • Microchip視頻專區(qū)
  • 使用SAM-IoT Wx v2開發(fā)板演示AWS IoT Core應(yīng)用程序
  • 使用Harmony3加速TCP/IP應(yīng)用的開發(fā)培訓(xùn)教程
  • 集成高級模擬外設(shè)的PIC18F-Q71家族介紹培訓(xùn)教程
  • 探索PIC16F13145 MCU系列——快速概覽
  • 貿(mào)澤電子(Mouser)專區(qū)

相關(guān)在線工具

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产伦精品一区三区视频 | 四虎精品影院在线观看视频 | 亚洲欧美日韩综合二区三区 | 日韩精品欧美视频 | 欧美一级视频 | wwwjizz日本| 日本人视频18jizz免费 | 亚洲综合激情在线影院 | 亚洲一级免费毛片 | 伊人青| 免费在线日本 | 欧美另类亚洲一区二区 | 一卡2卡3卡4卡5卡视频在线 | 国产日韩欧美在线观看 | 国产精品边做边接电话在线观看 | ww视频在线观看 | 韩日一级视频 | 日韩精品在线视频 | 亚洲欧美另类一区 | 欧美精品四虎在线观看 | 失乐园日本电视剧第1集第8 | 91网站免费观看 | 香蕉成人网 | 最新国产在线播放 | 几把好大 | 呦女稀缺资源vip | 国产高清一区二区三区视频 | 女人18毛片水真多国产 | 干人人| 色视在线 | 国产欧美日韩在线人成aaaa | 精品国产一区二区三区国产馆 | 高清中文字幕视频在线播 | 欧美成人久久久免费播放 | 国产精品一区二区免费 | 好男人www免费高清视频在线 | 青青草视频国产 | 五月婷婷在线视频 | 欧美日韩在线免费观看 | 离线枕边人国语在线影视 | 国产精品久久久久久久久久免费 |