微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > HMAC认证协议的ZQ032SA单片机实现

HMAC认证协议的ZQ032SA单片机实现

时间:05-04 来源:互联网 点击:

智能终端则自动拨向IP服务商,待响应后,反终端序列号、主叫电话号码、认证码一同发给服务商。智能终端序列号相当于公钥,用户的密码就是密钥。智能终端对密钥进行HMAC协议的加密运算自动生成认证码。

  服务曾几何时接收数据码流,根据终端序列号确定用户的基本信息,再通过数据库中存储的认证码与接收到认证码的比较,确认用户的合法身份。如身份无误,则接通话路,计时收费。

  其中第3步认证码的格式如表1所列。

  表1 认证码格式


  16Byte认证码,是经由HMAC加密得到的,其中的KEY值、TEXT值都可以作为用户密码。由于认证码高4bit为为0,所以不可以直接发送DTMF,要把4bit校验码排在认证码之后,共组成132bit数据,一起经过串行左移转化,每3bit构成1组,最后形成44个DTMF。

  智能终端由单片机、DTMF拨号电话机、液晶显示等芯片构成。MCU不但要承担主控任务,还要实现HMAC的运算。

  3 HMAC的单片机实现

  (1)ZQ032SA单片机简介

  ZQ032SA 是北京中庆公司具有独立知识产权的Flash型MCU,与Motorola 6805系列单片机功能相似,指令兼容。其采用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种节电模式。

  引脚排列和内部模块可参见本刊网络补充版。(http://www.dpj.com.cn)。

  (2)HMAC算法的实现

  基于单片机内部可用RAM的大小及实际使用时可能的密码长度,在认证系统中规定了消息长度,key≤64B,text≤58B。这样在本例中,MD5运算的消息分组N=2。在单片机4MHz主频时,经过程序优化,完成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,可以进一步提高认证的安全性。


Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top