新闻中心

EEPW首页>嵌入式系统>设计应用> 一种基于ATSHA204的密钥认证系统设计

一种基于ATSHA204的密钥认证系统设计

作者: 时间:2014-04-22 来源:网络 收藏

本文引用地址://m.amcfsurvey.com/article/245795.htm

4.2 软件设计

系统运行原理图如图2所示,在ATmega128平台上面,通过程序的方式实现SHA-256算法,同时,将challenge(消息摘要)发送到计算好之后,发回response,再在ATmega128平台上面实现对比,如果匹配成功,则程序继续运行,如果失败,则程序终止运行,从而实现加密的目的。通信方式采用基础的I2C通信。整个程序包括两部分:认证程序没计和SHA-256程序设计。下面分别描述。

4.2.1 MAC(消息认证)程序设计

MAC认证程序使用上面提及的标准的TWI读写函数接口,通过发送0x00信号使SDA保持一段时间的低电平信号,以wakeup加密芯片、chal lenge数组中的格式和response数组的大小详见datasheet。基本函数流程如下:

4.2.2 ATmega128平台SHA-256计算程序

SHA-256计算程序需要和芯片上面的哈希算法保持一致,因此需要移植公司提供的算法,移植之后的主程序如下:

函数形参中的message指针指向一个88字节的输入数组,len的值本设计中赋值88,digest指针指向返回的response数组。

4.3 功能测试

为了测试系统的可行性,验证哈希计算结果,本设计采用将哈希计算结果输出到串口端的方法来测试整个程序在ATmega128平台上面的运行。在实际系统运行时,为了保证高强度加密,消息摘要应该采用随机数,但为了测试方便,暂时采用固定不变的摘要信息。

通过串口接收到的主机计算的结果(digest)和ATSHA204发送回来的结果截图如图3所示。图中前32字节为SHA-256计算所得的digest,后面为device发回来的count(1字节)+response(32字节)+crc(2字节),可以看出中间的32字节和SHA-256计算所得相同,因此便可认证成功。反之,如果芯片中的密钥数据不是用户定义的。那么返回的response和SHA-256计算的不同,则认证不成功,从而实现了程序加密。

5 测试

为了更好地验证加密系统的可靠性与可行性,在测试认证基本功能之后,将其嵌入到一个实际系统中,对加密性能进行测试。基于已有的ATmega128硬件平台,选取SD卡文件系统读取程序作为测试,系统的运行流程如图4所示。

本系统采用开源的Fatfs文件系统作为SD卡的文件系统,SD卡与ATmega128的通信方式采用传统的SPI方式,SD卡中存放已经转换好的单色分辨率为128×64的位图bin文件,认证部分只作为一个具有返回值的子函数,根据返回值确定是否成功。

如果成功,则程序继续执行;如果不成功,延时1 s再次启动加密芯片进行认证。如果成功,则视同认证成功;如果还是不成功,则通过液晶显示屏提示不成功,使用assert语句终止程序。

测试中采用置换不同配置的加密芯片来测试加密的可靠性,认证成功和失败时的情况分别如图5和图6所示。

结语

本文主要介绍了公司最新加密芯片ATSHA204的原理和使用方法,初步对其中使用到的加密算法SHA-256进行了简单介绍,最后在ATmega128平台使用I2C总线接口模块,利用中断方式实现SD卡的数据发送与接收,并通过MAC方式实现了认证,并详细描述了程序流程,解析了部分程序语句。本设计具有很强的实用性,ATSHA204是目前广泛使用的加密芯片,是公司加密芯片的典型产品,本设计对于指导实际应用具有参考意义。


上一页 1 2 下一页

关键词:AtmelATSHA204

评论


相关推荐

技术专区

关闭