SM7算法芯片是基于SM7算法设计的一款硬件加密模块,该算法是中国国家密码管理局批准的商用密码算法之一,广泛应用于金融、通信、物联网等需要数据加密和安全认证的场景。SM7算法芯片使用方法主要涉及信令传输规约、传输方式、回传方式,这些知识点对终端产品开发者至关重要,以便正确地通过SM7芯片进行加密操作。
SM7算法芯片支持UART(通用异步收发传输器)接口,这是一种广泛应用于微控制器和计算机外设之间的串行通信协议。用户在使用该芯片时,可以通过UART口向其发送控制命令,并接收芯片返回的数据。控制协议和使用示例可以通过特定的联系方式获得,比如提供的QQ号码。这意味着用户可以加入该QQ群以获取进一步的支持和更详细的文档资料。
在物理层面上,SM7芯片支持5V或3.3V供电电源,并且通过UART接口与系统的MCU(微控制器单元)进行异步全双工通信,其默认波特率为115200bps。数据格式为标准的1个起始位、8个数据位和1个停止位,不使用校验位。开发者需注意,在发送命令时,两个连续字符之间的间隔不应超过10个字符时间,以避免芯片超时并导致无响应的情况。
在链路层方面,SM7算法芯片的通信协议定义了数据包格式,包括数据包头、数据单元长度、数据部分、冗余检验值和数据包尾。数据包头(STX)是0x02,数据包尾(ETX)是0x03,数据单元长度(Len)定义了数据部分Data的长度,而冗余检验值(LRC)是Data部分数据各字节异或的结果。整个数据包的总长度等于Len加上固定值5字节,且不应超过512字节。
通信协议中的命令单元格式指定了如何构建发送给SM7芯片的命令数据包。例如,命令单元由STX、长度、命令类别和代码、命令参数、以及LRC和ETX组成。应答单元格式则是SM7芯片如何将处理结果返回给用户,包括状态码高字节、低字节和可选的数据部分。这样的数据包格式设计确保了命令和数据传输的标准化和准确性。
SM7算法操作指令是芯片加密或解密的关键部分,指令标识为0x07,后跟操作类型(加密为0x00,解密为0x01)和待处理的数据。加密和解密成功时,应答单元的状态码为0x00和0x00。
密钥导入指令用于设置芯片的加密密钥。指令标识为0x09,后面跟随16字节的密钥数据。密钥导入成功时,应答单元的状态码同样是0x00和0x00。
校验或修改Pin指令则用于管理芯片的安全设置。指令标识为0x08,后跟操作类型(校验为0x00,修改为0x01)和Pin数据。校验或修改成功时,状态码也是0x00和0x00。
通过SM7算法芯片用户手册的阅读,开发者能够了解如何通过UART接口以标准的命令和数据格式与芯片进行通信,执行加密或解密操作,导入密钥以及校验或修改Pin码。整个过程中,芯片和MCU通过预定义的数据包格式交换信息,确保了数据处理的安全性和可靠性。开发者无需了解算法的实现细节,即可利用SM7算法芯片完成终端产品的安全加密功能开发。