日韩床上生活一级视频|能看毛片的操逼网站|色悠悠网站在线观看视频|国产免费观看A淫色免费|国产av久久久久久久|免费A级视频美女网站黄|国产毛片av日韩小黄片|热久久免费国产视频|中文字幕无码色色|成人在线视频99久久久

機電之家資源網(wǎng)
單片機首頁|單片機基礎(chǔ)|單片機應(yīng)用|單片機開發(fā)|單片機文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓(xùn)信息
贊助商
HMAC認(rèn)證協(xié)議的單片機實現(xiàn)
HMAC認(rèn)證協(xié)議的單片機實現(xiàn)
 更新時間:2008-8-17 16:27:38  點擊數(shù):15
【字體: 字體顏色

    摘要:HMAC是一種基于密鑰的Hash算法的認(rèn)證協(xié)議,可以應(yīng)用于電子商務(wù)領(lǐng)域。我們通過國有自主知識產(chǎn)權(quán)的單片機ZQ032SA,實現(xiàn)了以MD5算法為核心的HMAC協(xié)議,并把它調(diào)用于IP電話計費認(rèn)證系統(tǒng)。

    關(guān)鍵詞:HMAC ZQ032SA(6805) MD5 IP電話

引言

在開放的通信和計算機系統(tǒng)中,建立安全可靠的電子商務(wù)平臺是十分重要的。通常需要通過加密的方法對客戶的有關(guān)信息,如密碼、合同等加以保護(hù),使之不被盜取或篡改。當(dāng)客戶提出服務(wù)申請時,必須對客戶身份的合法性、報文的完整性進(jìn)行確認(rèn)。

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

    利用HMAC協(xié)議可以建立一個身份認(rèn)證的電子商務(wù)平臺,客戶和服務(wù)端雙方需要預(yù)先約定唯一的公鑰和加密算法;客戶單方面保留自己密碼作為密鑰,服務(wù)端只保留公鑰和認(rèn)證碼。這個認(rèn)證碼是密鑰經(jīng)HMAC協(xié)議加密得到定長碼字。當(dāng)客戶提出服務(wù)申請時,應(yīng)提交鑰和密鑰的認(rèn)證碼。服務(wù)端通過公鑰確認(rèn)客戶的基本身份,再檢驗認(rèn)證碼確定客戶的合法性。這樣,客戶的私密信息在服務(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的消息進(jìn)行一種Hash運算;

ipad代表重復(fù)B次的單字節(jié)十六進(jìn)制常數(shù)0x36;

opad代表重復(fù)B次的單字節(jié)十六進(jìn)行常數(shù)0x5c;

key代表64字節(jié)的字符串,由密鑰組成,不足的補0;

text代表任意長度文本。

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

HMAC協(xié)議定義了迭代兩次的Hash加密算法,最終形成報文摘要(DIGEST)值就是認(rèn)證碼;谒惴ǖ目煽啃浴踩院鸵子谟嬎銠C實現(xiàn)特性,先用Hash中的MD5算法實現(xiàn)HMAC,其B=64,L=16。

1.2 MD5算法定義

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

(1)報文填充

MD5算法要求對任意長度報文進(jìn)行填充,構(gòu)成N×64 Byte消息分組,N為整數(shù)。其中每一分組又劃分為16個4字節(jié)子分組。

填充數(shù)據(jù)分2步。首先,填充使得數(shù)據(jù)位長度恰好為(N×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,然后進(jìn)行4輪相似的運算變換,每輪包含16次操作。每次操作對其中的3個變量(4字節(jié))bcd做1次非線性運算,將其結(jié)果加上變量a,一個消息子分組Mi,一個常數(shù)Ti;將所得結(jié)果向環(huán)移一個不定的數(shù)Si,再加變量b,然后用該結(jié)果取代變量a,變換abcd<=dabc,進(jìn)入下一次運算,共16次,如圖2所示。4輪運算結(jié)束后,把變量abcd與初始ABCD進(jìn)行“異或”運算,結(jié)果作為下一分組的初始值。

計算公式如下:

第1輪:SUB_FF(a,b,c,d,Mi,Si,Ti):a<=b+((a+F(b,c,d)+Mi+Ti)<<<Si)

第2輪:SUB_GG(a,b,c,d,Mi,Si,Ti):a<=b+((a+G(b,c,d)+Mi+Ti)<<<Si)

第3輪:SUB_HH(a,b,c,d,Mi,Si,Ti):a<=b+((a+H(b,c,d)+Mi+Ti)<<<Si)

第4輪:SUB_II(a,b,c,d,Mi,Si,Ti):a<=b+((a+I(b,c,d)+Mi+Ti)<<<Si)

數(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&Y NOT(X)&Z

G(X,Y,Z)=X&Z Y&not(Z)

H(X,Y,Z)=XxorYxorZ

I(X,Y,Z)=Yxor(X not(Z))

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

利用HMAC的認(rèn)證功能,可對用戶的IP儲值卡中的金額進(jìn)行保護(hù)。在試驗系統(tǒng)中,智能終端相當(dāng)于認(rèn)證系統(tǒng)的客戶端,如圖3所示。

當(dāng)用戶使用時,用戶只須直接撥入所叫的電話號碼即可。智能終端則自動撥向IP服務(wù)商,待響應(yīng)后,反終端序列號、主叫電話號碼、認(rèn)證碼一同發(fā)給服務(wù)商。智能終端序列號相當(dāng)于公鑰,用戶的密碼就是密鑰。智能終端對密鑰進(jìn)行HMAC協(xié)議的加密運算自動生成認(rèn)證碼。

服務(wù)曾幾何時接收數(shù)據(jù)碼流,根據(jù)終端序列號確定用戶的基本信息,再通過數(shù)據(jù)庫中存儲的認(rèn)證碼與接收到認(rèn)證碼的比較,確認(rèn)用戶的合法身份。如身份無誤,則接通話路,計時收費。

其中第3步認(rèn)證碼的格式如表1所列。

表1 認(rèn)證碼格式

[1] [2] [3]  下一頁
  • 上一篇: 基于MSP430單片機高精度溫度測量的補償方法
  • 下一篇: 新型高精度時鐘芯片RTL-4553
  • 發(fā)表評論   告訴好友   打印此文  收藏此頁  關(guān)閉窗口  返回頂部
    熱點文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機電之家 | 會員助手 | 免費鏈接

    點擊這里給我發(fā)消息66821730(技術(shù)支持)點擊這里給我發(fā)消息66821730(廣告投放) 點擊這里給我發(fā)消息41031197(編輯) 點擊這里給我發(fā)消息58733127(審核)
    本站提供的機電設(shè)備,機電供求等信息由機電企業(yè)自行提供,該企業(yè)負(fù)責(zé)信息內(nèi)容的真實性、準(zhǔn)確性和合法性。
    機電之家對此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請聯(lián)系機電之家,機電之家將及時作出處理。
    Copyright 2007 機電之家 Inc All Rights Reserved.機電之家-由機電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機電一體化學(xué)會
    中國行業(yè)電子商務(wù)100強網(wǎng)站

    網(wǎng)站經(jīng)營許可證:浙B2-20080178-1