當前位置:首頁 > 單片機 > 單片機
[導讀]HMAC是一種基于密鑰的Hash算法的認證協議

    摘要:HMAC是一種基于密鑰的Hash算法的認證協議,可以應用于電子商務領域。我們通過國有自主知識產權的單片機ZQ032SA,實現了以MD5算法為核心的HMAC協議,并把它調用于IP電話計費認證系統(tǒng)。

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

引言

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

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

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

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

1 HMAC的算法原理

1.1 HMAC算法定義

用公式表示如下:

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

H(X,Y)代表對X+Y的消息進行一種Hash運算;

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

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

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

text代表任意長度文本。

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

HMAC協議定義了迭代兩次的Hash加密算法,最終形成報文摘要(DIGEST)值就是認證碼?;谒惴ǖ目煽啃?、安全性和易于計算機實現特性,先用Hash中的MD5算法實現HMAC,其B=64,L=16。

1.2 MD5算法定義

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

(1)報文填充

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

填充數據分2步。首先,填充使得數據位長度恰好為(N×64-8)Byte的數,即在報文有效數據后補1個0x1,其它補0x0至滿足上述要求。然后,再后補上8字節(jié)(64位)的報文數據長度(填充前字節(jié)數)。這樣,數據就被填充為64Byte(512bit)的整數倍。

(2)初始化MD5參數

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

A=0x01234567

B=0x89abcdef

C=0xfedcba98

D=0x76543210

(3)算法

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

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

計算公式如下:

第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)

數據交換規(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é)常數;Si為左移位數;abcd為32位變量;初始值為ABCD。

函數: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電話計費上的應用

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

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

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

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

表1 認證碼格式

引導符 終端序列號 電話號碼*隨機數 HMAC認證碼 校驗碼
* 10Byte 21Byte 16Byte 0.5Byte
32Byte,高位為0,可直接發(fā)送DTMF 不可直接發(fā)送,要轉化  

16Byte認證碼,是經由HMAC加密得到的,其中的KEY值、TEXT值都可以作為用戶密碼。由于認證碼高4bit為為0,所以不可以直接發(fā)送DTMF,要把4bit校驗碼排在認證碼之后,共組成132bit數據,一起經過串行左移轉化,每3bit構成1組,最后形成44個DTMF。

智能終端由單片機、DTMF撥號電話機、液晶顯示等芯片構成。MCU不但要承擔主控任務,還要實現HMAC的運算。

3 HMAC的單片機實現

(1)ZQ032SA單片機簡介

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

主要特性有:

*8位MCU,兼容增強型6502指令集;

*4MHz主頻,典型取指周期0.5μs。

*16Kbyte片內Flash存儲器。

*352Byte片內用戶RAM,其中包括64Byte的堆棧區(qū);

*1個13位的多功能計數器和1個看門狗WDT

*20個通用I/O接口;

*1個載波調制發(fā)生器CMT;

*Flash保護機制;

*Flash在線程序下載;

*2種節(jié)電模式。

引腳排列和內部模塊可參見本刊網絡補充版。(http://www.dpj.com.cn)。

(2)HMAC算法的實現

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

下面列出主要流程圖。

其中:MD5_MAIN是MD5運算主程序;

MD5_ONE子程序是MD5的一個分組運算;

SUB-FF、FBCD、GBCD、HBCD、IBCD分別是MD5運算中相應函數的子程序;

SHIFT子程序完成<<Si的功能;

EXCH子程序完成地址4組數據的交換;

常數Ti列表于MEM_C,移位Si列表于TABLE_S;

消息子分組順序列表于TABLE_M;

KEY鍵盤程序讀入存于MEM_M,TEXT存于MEM_MB。

標號MEM1-4的RAM用于中間計算。

HMAC流程如圖4所示。

MD5算法中的一個消息分組的計算程序流程如圖6所示。

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

單片機可實現HMAC認證的基礎上,可以進一步把ZQ032SA的IP核與其它外圍邏輯構成ASIC,用于智能卡,將有應用前景。

在HMAC協議的基礎上,加入其它成熟的加密算法,如DES,可以進一步提高認證的安全性。

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯系該專欄作者,如若文章內容侵犯您的權益,請及時聯系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或將催生出更大的獨角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數字化轉型技術解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關鍵字: AWS AN BSP 數字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術公司SODA.Auto推出其旗艦產品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關鍵字: 汽車 人工智能 智能驅動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據媒體報道,騰訊和網易近期正在縮減他們對日本游戲市場的投資。

關鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數據產業(yè)博覽會開幕式在貴陽舉行,華為董事、質量流程IT總裁陶景文發(fā)表了演講。

關鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數據產業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數字世界的話語權最終是由生態(tài)的繁榮決定的。

關鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經營業(yè)績穩(wěn)中有升 落實提質增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領增長 以科技創(chuàng)新為引領,提升企業(yè)核心競爭力 堅持高質量發(fā)展策略,塑強核心競爭優(yōu)勢...

關鍵字: 通信 BSP 電信運營商 數字經濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術學會聯合牽頭組建的NVI技術創(chuàng)新聯盟在BIRTV2024超高清全產業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現場 NVI技術創(chuàng)新聯...

關鍵字: VI 傳輸協議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯合招商會上,軟通動力信息技術(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關鍵字: BSP 信息技術
關閉
關閉