HMAC认证协议的单片机实现
bcd,然后进行4轮相似的运算变换,每轮包含16次操作。每次操作对其中的3个变量(4字节)bcd做1次非线性运算,将其结果加上变量a,一个消息子分组Mi,一个常数Ti;将所得结果向环移一个不定的数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)
数据交换规则:a,b,c,d→d,a,b,c→c,d,a,b,→b,c,d,a
最终:ABCD<=ABCD+abcd
其中:Mi为16个信息子包,每个4字节;Ti为4字节常数;Si为左移位数;abcd为32位变量;初始值为ABCD。
函数:F(X,Y,Z)=X&Y|NOT(X)&Z
G(X,Y,Z)=X&Z|Y¬(Z)
H(X,Y,Z)=XxorYxorZ
I(X,Y,Z)=Yxor(X|not(Z))
2HMAC在IP电话计费上的应用
利用HMAC的认证功能,可对用户的IP储值卡中的金额进行保护。在试验系统中,智能终端相当于认证系统的客户端,如图3所示。
当用户使用时,用户只须直接拨入所叫的电话号码即可。智能终端则自动拨向IP服务商,待响应后,反终端序列号、主叫电话号码、认证码一同发给服务商。智能终端序列号相当于公钥,用户的密码就是密钥。智能终端对密钥进行HMAC协议的加密运算自动生成认证码。
服务曾几何时接收数据码流,根据终端序列号确定用户的基本信息,再通过数据库中存储的认证码与接收到认证码的比较,确认用户的合法身份。如身份无误,则接通话路,计时收费。
其中第3步认证码的格式如表1所列。
表1认证码格式
引导符终端序列号电话号码*随机数HMAC认证码校验码*10Byte21Byte16Byte0.5Byte32Byte,高位为0,可直接发送DTMF不可直接发送,要转化
16Byte认证码,是经由HMAC加密得到的,其中的KEY值、TEXT值都可以作为用户密码。由于认证码高4bit为为0,所以不可以直接发送DTMF,要把4bit校验码排在认证码之后,共组成132bit数据,一起经过串行左移转化,每3bit构成1组,最后形成44个DTMF。
智能终端由单片机、DTMF拨号电话机、液晶显示等芯片构成。MCU不但要承担主控任务,还要实现HMAC的运算。
3HMAC的单片机实现
(1)ZQ032SA单片机简介
ZQ032SA是北京中庆公司具有独立知识产权的Flash型MCU,与Motorola6805系列单片机功能相似,指令兼容。其采用CMOS工艺,工作稳定、功耗低、采用小型表贴封装(SOP28),适合民用设备使用。
主要特性有:
*8位MCU,兼容增强型6502指令集;
*4MHz主频,典型取指周期0.5μs。
*16Kbyte片内Flash存储器。
*352Byte片内用户RAM,其中包括64Byte的堆栈区;
*1个13位的多功能计数器和1个看门狗WDT
*20个通用I/O接口;
*1个载波调制发生器CMT;
*Flash保护机制;
*Flash在线程序下载;
*2种节 《HMAC认证协议的单片机实现(第2页)》
本文链接地址:http://www.oyaya.net/fanwen/view/167083.html
计算公式如下:
第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)
数据交换规则:a,b,c,d→d,a,b,c→c,d,a,b,→b,c,d,a
最终:ABCD<=ABCD+abcd
其中:Mi为16个信息子包,每个4字节;Ti为4字节常数;Si为左移位数;abcd为32位变量;初始值为ABCD。
函数:F(X,Y,Z)=X&Y|NOT(X)&Z
G(X,Y,Z)=X&Z|Y¬(Z)
H(X,Y,Z)=XxorYxorZ
I(X,Y,Z)=Yxor(X|not(Z))
2HMAC在IP电话计费上的应用
利用HMAC的认证功能,可对用户的IP储值卡中的金额进行保护。在试验系统中,智能终端相当于认证系统的客户端,如图3所示。
当用户使用时,用户只须直接拨入所叫的电话号码即可。智能终端则自动拨向IP服务商,待响应后,反终端序列号、主叫电话号码、认证码一同发给服务商。智能终端序列号相当于公钥,用户的密码就是密钥。智能终端对密钥进行HMAC协议的加密运算自动生成认证码。
服务曾几何时接收数据码流,根据终端序列号确定用户的基本信息,再通过数据库中存储的认证码与接收到认证码的比较,确认用户的合法身份。如身份无误,则接通话路,计时收费。
其中第3步认证码的格式如表1所列。
表1认证码格式
引导符终端序列号电话号码*随机数HMAC认证码校验码*10Byte21Byte16Byte0.5Byte32Byte,高位为0,可直接发送DTMF不可直接发送,要转化
16Byte认证码,是经由HMAC加密得到的,其中的KEY值、TEXT值都可以作为用户密码。由于认证码高4bit为为0,所以不可以直接发送DTMF,要把4bit校验码排在认证码之后,共组成132bit数据,一起经过串行左移转化,每3bit构成1组,最后形成44个DTMF。
智能终端由单片机、DTMF拨号电话机、液晶显示等芯片构成。MCU不但要承担主控任务,还要实现HMAC的运算。
3HMAC的单片机实现
(1)ZQ032SA单片机简介
ZQ032SA是北京中庆公司具有独立知识产权的Flash型MCU,与Motorola6805系列单片机功能相似,指令兼容。其采用CMOS工艺,工作稳定、功耗低、采用小型表贴封装(SOP28),适合民用设备使用。
主要特性有:
*8位MCU,兼容增强型6502指令集;
*4MHz主频,典型取指周期0.5μs。
*16Kbyte片内Flash存储器。
*352Byte片内用户RAM,其中包括64Byte的堆栈区;
*1个13位的多功能计数器和1个看门狗WDT
*20个通用I/O接口;
*1个载波调制发生器CMT;
*Flash保护机制;
*Flash在线程序下载;
*2种节 《HMAC认证协议的单片机实现(第2页)》