简介
本文主要是为开发人员介绍一种基于N32S003公钥算法的方案,该公钥算法采用 ECC(GFp-256)和 SHA256算法,可用于版权保护、耗材认证、防抄板、计数、配件防伪等应用,可有效的保护产品品牌和知识产权。用户可通过UART、IIC、7816接口进行认证,其中IIC接口最高速率可达1M。
主要应用领域有:
• 配件和外设安全认证
• 耗材认证
• 物联网节点认证
• 安全存储
• 设备电池认证
• 防抄板保护
系统框图
客户端通过 UART/IIC/7816 协议,与 N32S003 进行了一系列交互,最终完成对 N32S003 的身份认证。身份认证过程中所有签名和验签操作前都需要对消息做哈希运算。认证流程如下图所示:
N32S003身份认证原理
方案规格参数
生产阶段,由用户传入或服务器生成一组固定的密钥对:ECC 根公钥(PubKeyroot)和 ECC 根私钥(PriKeyroot)。ECC 根私钥和 ECC 根公钥保存到服务器不可读出,同时,ECC 根公钥预置到客户端软件中。然后服务器为每个 N32S003 设备签发证书,此阶段会在 N32S003 内部自动生成一组密钥对:ECC 认证公钥(PubKeyauth)和 ECC 认证私钥(PriKeyauth)并保存,ECC 认证私钥不可读出。服务器用 ECC 根私钥对 UID(内置在 N32S003中)、随机数(服务器自动生成)、用户数据和 ECC 认证公钥等身份信息签名并生成证书:,将证书烧录入N32S003 设备中。
N32S003 在生产阶段已经烧录了如下信息:
▶ UID:N32S003 唯一序列号
▶ ECC 认证公/私钥(GFp-256):签发证书时 N32S003 内部自动生成
▶ 证书:服务器生成
签名值和证书生成方式如下:
Signature = Sign ( UID || RandomNum || UserData || PubKeyauth )
Certificate = UID || RandomNum || UserData || PubKeyauth || Signature
认证流程由客户端发起,N32S003 根据指令响应,大致可分为三个阶段:
▶ 验证签名
客户端从 N32S003 中获取到证书包含 UID、随机数、用户数据、ECC 认证公钥及签名值等信息后,需用 ECC
根公钥验证签名值的有效性。签名值验证通过后可以保证获取的 UID 和 ECC 认证公钥也是有效的。
▶ 发送随机数挑战码
客户端通过随机数生成每次认证的挑战码,将挑战码发给 N32S003,等待其响应。
▶ 验证响应
N32S003 收到随机数挑战码后生成响应。响应由 ECC 认证私钥对随机数挑战码做签名得到。客户端验证响应可确保 N32S003 设备与证书中记录的身份信息相符(即 UID 和 ECC 认证公钥),同时保证通信的时效性。
方案特点和优势
• 128bit 全球唯一序列号
• 有 25KB FLASH 空间可供用户使用
• FLASH 支持擦除保护、写保护和认证写保护功能
• 采用 ECC 非对称算法
• 每个芯片具有不同的 ECC 认证密钥对
• 支持 ECC 认证次数限制
• 支持生命周期次数限制
• 支持自毁功能
• 每个芯片具有不同的数字证书(可与序列号绑定)
• 国密二级认证
• EAL4+认证
• ROHS 标准
• 工作温度范围:-40℃ ~ +85℃,工作电压范围:1.8 ~ +5.5V
更多的关于加密芯片算法的应用、操作手册、使用说明和SDK资料,可与天浩旭科技业务18123937129联系获取。
关注微信号,惊喜等你来
x