2024年4月18日发(作者:)
HMAC认证协议的单片机实现
摘要是一种基于密钥的算法的认证协议,可以应用于电子商务领域。
我们通过国有自主知识产权的单片机032,实现了以5算法为核心的协议,
并把它调用于电话计费认证系统。
关键词03268055电话
引言
在开放的通信和计算机系统中,建立安全可靠的电子商务平台是十分重要的。
通常需要通过加密的方法对客户的有关信息,如密码、合同等加以保护,使
之不被盗取或篡改。
当客户提出服务申请时,必须对客户身份的合法性、报文的完整性进行确认。
-是一个公开的协议。
它是一种基于密钥的报文完整性的验证方法,其安全性是建立在算法基础上
的。
它要求通信双方共享密钥、约定算法、对报文进行运算,如5、、等,形成
固定长度的认证码。
通信双方通过认证码的校验来确定报文的合法性。
这个协议可以用来作加密、数字签名、报文验证等。
利用协议可以建立一个身份认证的电子商务平台,客户和服务端双方需要预
先约定唯一的公钥和加密算法;客户单方面保留自己密码作为密钥,服务端只保
留公钥和认证码。
这个认证码是密钥经协议加密得到定长码字。
当客户提出服务申请时,应提交钥和密钥的认证码。
服务端通过公钥确认客户的基本身份,再检验认证码确定客户的合法性。
这样,客户的私密信息在服务端、传输媒介中都是加密隐藏的。
我们利用服务器建立了服务端的模拟用户数据库,单片机实现客户端的加密
算法,电话线作为传输介质,实现了协议在电话计费系统中的应用。
1的算法原理
11算法定义
用公式表示如下
=,,
,代表对+的消息进行一种运算;
代表重复次的单字节十六进制常数036;
代表重复次的单字节十六进行常数05;
代表64字节的字符串,由密钥组成,不足的补0;
代表任意长度文本。
密钥≥字节。
当大于时,先经计算形成字节的秘钥是算法中一次迭代运算的数据块字节数;
是算法形成报文摘要的字节数。
协议定义了迭代两次的加密算法,最终形成报文摘要值就是认证码。
基于算法的可靠性、安全性和易于计算机实现特性,先用中的5算法实现,
其=64,=16
125算法定义
5算法以对任意长度消息多次循环迭代的散列运算,最终形成16报文摘要。
这个摘要对文本具有唯一性,可作为认证码。
在目标计算机的计算速度下,这个摘要是难于破解的。
1报文填充
5算法要求对任意长度报文进行填充,构成×64消息分组,为整数。
其中每一分组又划分为16个4字节子分组。
填充数据分2步。
首先,填充使得数据位长度恰好为×64-8的数,即在报文有效数据后补1
个01,其它补00至满足上述要求。
然后,再后补上8字节64位的报文数据长度填充前字节数。
这样,数据就被填充为64512的整数倍。
2初始化5参数
4个4字节位变量、、、用来作为报文摘要的初始值
=001234567
=089
=098
=076543210
3算法
5算法是对消息分组依次迭代
算法。
第1次运算的初始值为,以后每一次迭代运算的结果都替换作为下一次的初
始值,共经过次的迭代运算,就得到该消息的报文摘要,如图1所示。
对每一消息分组的运算方法是相同的。
首先把初始值放入变量,然后进行4轮相似的运算变换,每轮包含16次操作。
每次操作对其中的3个变量4字节做1次非线性运算,将其结果加上变量,
一个消息子分组,一个常数;将所得结果向环移一个不定的数,再加变量,然后用
该结果取代变量,变换
计算公式如下
第1轮_,,,,,,
第2轮_,,,,,,
第3轮_,,,,,,
第4轮_,,,,,,
数据交换规则,,,→,,,→,,,,→,,,
最终
其中为16个信息子包,每个4字节;为4字节常数;为左移位数;为32
位变量;初始值为
函数,,=&|&
,,=&|?
,,=
,,=|
2在电话计费上的应用
利用的认证功能,可对用户的储值卡中的金额进行保护。
在试验系统中,智能终端相当于认证系统的客户端,如图3所示。
当用户使用时,用户只须直接拨入所叫的电话号码即可。
智能终端则自动拨向服务商,待响应后,反终端序列号、主叫电话号码、认
证码一同发给服务商。
智能终端序列号相当于公钥,用户的密码就是密钥。
智能终端对密钥进行协议的加密运算自动生成认证码。
服务曾几何时接收数据码流,根据终端序列号确定用户的基本信息,再通过
数据库中存储的认证码与接收到认证码的比较,确认用户的合法身份。
如身份无误,则接通话路,计时收费。
其中第3步认证码的格式如表1所列。
表1认证码格式
引导符终端序列号电话号码*随机数认证码校验码*1021160532,高位为0,
可直接发送不可直接发送,要转化
16认证码,是经由加密得到的,其中的值、值都可以作为用户密码。
由于认证码高4为为0,所以不可以直接发送,要把4校验码排在认证码之后,
共组成132数据,一起经过串行左移转化,每3构成1组,最后形成44个
智能终端由单片机、拨号电话机、液晶显示等芯片构成。
不但要承担主控任务,还要实现的运算。
3的单片机实现
1032单片机简介
032是北京中庆公司具有独立知识产权的型,与6805系列单片机功能相似,
指令兼容。
其采用工艺,工作稳定、功耗低、采用小型表贴封装28,适合民用设备使
用。
主要特性有
*8位,兼容增强型6502指令集;
*4主频,典型取
指周期05μ
*16片内存储器。
*352片内用户,其中包括64的堆栈区;
*1个13位的多功能计数器和1个看门狗
*20个通用接口;
*1个载波调制发生器;
*保护机制;
*在线程序下载;
*2种节电模式。
引脚排列和内部模块可参见本刊网络补充版。
2算法的实现
基于单片机内部可用的大小及实际使用时可能的密码长度,在认证系统中规
定了消息长度,≤64,≤58这样在本例中,5运算的消息分组=2在单片机4主频
时,经过程序优化,完成的运算所需时间小于3详细程序网络补充版。
下面列出主要流程图。
其中5_是5运算主程序;
5_子程序是5的一个分组运算;
-、、、、分别是5运算中相应函数的子程序;
子程序完成《的功能;
子程序完成地址4组数据的交换;
常数列表于_,移位列表于_;
消息子分组顺序列表于_;
键盘程序读入存于_,存于_
标号1-4的用于中间计算。
流程如图4所示。
5算法中的一个消息分组的计算程序流程如图6所示。
作为一种认证的协议,可以用于那么需要数字签名、身份认证或报文完整性
检验等领域。
在家用电子市场、安防、电子商务方面,都有广泛的用途。
在单片机可实现认证的基础上,可以进一步把032的核与其它外围逻辑构成,
用于智能卡,将有应用前景。
在协议的基础上,加入其它成熟的加密算法,如,可以进一步提高认证的安
全性


发布评论