位置:51电子网 » 技术资料 » 测试测量

HMAC认证协议的单片机实现

发布时间:2008/5/26 0:00:00 访问次数:562

        

    

    

     源:单片机与嵌入式系统应用 作者:北京航空航天大学 武 斌 夏宇闻 绍寅亮

    

     摘要:hmac是一种基于密钥的hash算法的认证协议,可以应用于电子商务领域。我们通过国有自主知识产权的单片机zq032sa,实现了以md5算法为核心的hmac协议,并把它调用于ip电话计费认证系统。

    

     引言

    

     在开放的通信和计算机系统中,建立安全可靠的电子商务平台是十分重要的。通常需要通过加密的方法对客户的有关信息,如密码、合同等加以保护,使之不被盗取或篡改。当客户提出服务申请时,必须对客户身份的合法性、报文的完整性进行确认。

    

     hmac(keyed-hashing for message authentication)是一个公开的协议。它是一种基于密钥的报文完整性的验证方法,其安全性是建立在hash算法基础上的。它要求通信双方共享密钥、约定算法、对报文进行hash运算,如md5、sha、ripemd等,形成固定长度的认证码。通信双方通过认证码的校验来确定报文的合法性。这个协议可以用来作加密、数字签名、报文验证等。

    

    

     利用hmac协议可以建立一个身份认证的电子商务平台,客户和服务端双方需要预先约定唯一的公钥和加密算法;客户单方面保留自己密码作为密钥,服务端只保留公钥和认证码。这个认证码是密钥经hmac协议加密得到定长码字。当客户提出服务申请时,应提交钥和密钥的认证码。服务端通过公钥确认客户的基本身份,再检验认证码确定客户的合法性。这样,客户的私密信息在服务端、传输媒介中都是加密隐藏的。

    

     我们利用服务器建立了服务端的模拟用户数据库,单片机实现客户端的加密算法,电话线作为传输介质,实现了hmac协议在ip电话计费系统中的应用。

    

     1 hmac的算法原理

    

     1.1hmac算法定义

    

     用公式表示如下:

    

     hmac=h(key xor opad,h(key xor ipad,text))

    

     h(x,y)代表对x+y的消息进行一种hash运算;

    

     ipad代表重复b次的单字节十六进制常数0x36;

    

     opad代表重复b次的单字节十六进行常数0x5c;

    

     key代表64字节的字符串,由密钥组成,不足的补0;

    

     text代表任意长度文本。

    

    

     密钥≥l字节。当大于b时,先经hash计算形成l字节的秘钥(b是hash算法中一次迭代运算的数据块字节数;l是hash算法形成报文摘要的字节数)。

    

     hmac协议定义了迭代两次的hash加密算法,最终形成报文摘要(digest)值就是认证码。基于算法的可靠性、安全性和易于计算机实现特性,先用hash中的md5算法实现hmac,其b=64,l=16。

    

     1.2md5算法定义

    

     md5算法以对任意长度消息多次循环迭代的散列运算,最终形成16 byte报文摘要。这个摘要对文本具有唯一性,可作为认证码。在目标计算机的计算速度下,这个摘要是难于破解的。

    

     (1)报文填充

    

     md5算法要求对任意长度报文进行填充,构成n×64 byte消息分组,n为整数。其中每一分组又划分为16个4字节子分组。

    

     填充数据分2步。首先,填充使得数据位长度恰好为(n×64-8)byte的数,即在报文有效数据后补1个0x1,其它补0x0至满

        

    

    

     源:单片机与嵌入式系统应用 作者:北京航空航天大学 武 斌 夏宇闻 绍寅亮

    

     摘要:hmac是一种基于密钥的hash算法的认证协议,可以应用于电子商务领域。我们通过国有自主知识产权的单片机zq032sa,实现了以md5算法为核心的hmac协议,并把它调用于ip电话计费认证系统。

    

     引言

    

     在开放的通信和计算机系统中,建立安全可靠的电子商务平台是十分重要的。通常需要通过加密的方法对客户的有关信息,如密码、合同等加以保护,使之不被盗取或篡改。当客户提出服务申请时,必须对客户身份的合法性、报文的完整性进行确认。

    

     hmac(keyed-hashing for message authentication)是一个公开的协议。它是一种基于密钥的报文完整性的验证方法,其安全性是建立在hash算法基础上的。它要求通信双方共享密钥、约定算法、对报文进行hash运算,如md5、sha、ripemd等,形成固定长度的认证码。通信双方通过认证码的校验来确定报文的合法性。这个协议可以用来作加密、数字签名、报文验证等。

    

    

     利用hmac协议可以建立一个身份认证的电子商务平台,客户和服务端双方需要预先约定唯一的公钥和加密算法;客户单方面保留自己密码作为密钥,服务端只保留公钥和认证码。这个认证码是密钥经hmac协议加密得到定长码字。当客户提出服务申请时,应提交钥和密钥的认证码。服务端通过公钥确认客户的基本身份,再检验认证码确定客户的合法性。这样,客户的私密信息在服务端、传输媒介中都是加密隐藏的。

    

     我们利用服务器建立了服务端的模拟用户数据库,单片机实现客户端的加密算法,电话线作为传输介质,实现了hmac协议在ip电话计费系统中的应用。

    

     1 hmac的算法原理

    

     1.1hmac算法定义

    

     用公式表示如下:

    

     hmac=h(key xor opad,h(key xor ipad,text))

    

     h(x,y)代表对x+y的消息进行一种hash运算;

    

     ipad代表重复b次的单字节十六进制常数0x36;

    

     opad代表重复b次的单字节十六进行常数0x5c;

    

     key代表64字节的字符串,由密钥组成,不足的补0;

    

     text代表任意长度文本。

    

    

     密钥≥l字节。当大于b时,先经hash计算形成l字节的秘钥(b是hash算法中一次迭代运算的数据块字节数;l是hash算法形成报文摘要的字节数)。

    

     hmac协议定义了迭代两次的hash加密算法,最终形成报文摘要(digest)值就是认证码。基于算法的可靠性、安全性和易于计算机实现特性,先用hash中的md5算法实现hmac,其b=64,l=16。

    

     1.2md5算法定义

    

     md5算法以对任意长度消息多次循环迭代的散列运算,最终形成16 byte报文摘要。这个摘要对文本具有唯一性,可作为认证码。在目标计算机的计算速度下,这个摘要是难于破解的。

    

     (1)报文填充

    

     md5算法要求对任意长度报文进行填充,构成n×64 byte消息分组,n为整数。其中每一分组又划分为16个4字节子分组。

    

     填充数据分2步。首先,填充使得数据位长度恰好为(n×64-8)byte的数,即在报文有效数据后补1个0x1,其它补0x0至满

相关IC型号

热门点击

 

推荐技术资料

音频变压器DIY
    笔者在本刊今年第六期上着重介绍了“四夹三”音频变压器的... [详细]
版权所有:51dzw.COM
深圳服务热线:13751165337  13692101218
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!