马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
LCSHA204芯片是一款兼容ATMEL公司ATSHA204A的国产安全芯片,其操作方式与ATSHA204A相同,本次主要介绍芯片EncryptRead加密读功能。只有当slot config.EncryptRead = 1和slot config.IsSecret = 1时才能进行。加密读是为了防止别人在总线上嗅探到密钥,这里我借用官方文档Atmel-8981的一幅图。 这个流程图其实非常明了,主要步骤如下: 1、首先发送Nonce Command命令,更新TempKey中的值,主机这边根据命令返回的randout来使用SHA-256算法计算出TempKey中的值。 2、发送GenDig Command,Gen Dig 命令中的参数KeyID ,就是slot config.ReadKey,比如说,我们要读取slot1的密钥,而slot config[0].ReadKey 设置为0,那么我们就需要知道slot0中存放的密钥才能读取slot1的密钥,发送完这个命令后如果执行正确,TempKey中的值会被重新计算,而主机需要根据Read Key等一些列参数计算TempKey中的值。 3、执行读命令读取slot区中的值,返回来的内容是经过异或加密的,密钥是第2步计算出来的摘要,也就是说:读回来的值^第2步计算出来的摘要 = 原文。
|