RJMU401是武汉瑞纳捷推出的一款高处理能力、高安全性、低功耗、低成本的安全加密芯片。它采用32位的ARM SC100内核,内置定时器、终端控制器、系统控制器等完备的安全机制,支持多种加密算法,包括对称加密算法DES/3DES、AES、SM1、SM4,非对称加密算法RSA、SM2,摘要算法SHA256、SM3。此外,芯片集成有频率安全探测器,以保证芯片在非正常工作条件下的操作安全。
芯片支持SPI、UART和ISO7816等多种接口通信,内置大容量的ROM、SRAM以及Flash存储器,可根据用户命令完成相应的数据存储、密钥生成以及加解密等操作,能够满足复杂操作系统以及应用程序开发的需求。
RJMU401安全芯片具有SSOP20L和VSOP8L两种封装形式,如下图所示。
SPI接口通信
2.1 SPI接口说明
当RJMU401安全芯片采用SPI接口进行通信时,单包数据最大为1024个字节,数据依从高字节在前、低字节在后的顺序进行通信。在端口连接上除须连接SPI传统的4根线外,还需要连接一根Ready信号线。当Ready信号线为高电平时,表示可以对从机进行数据的发送和接收。
通过SPI接口向芯片发送相关指令与数据,芯片解析指令,并调用相关函数进行加解密操作。当操作完成后,响应2个字节来指示芯片状态或指示需要取走的数据长度。
2.2 返回状态字
SPI操作过程中返回的状态字节说明如下:
注【1】:单包接收数据最大长度不应超过1024字节。
2.3 SPI指令格式
RJMU401可使用SPI接口进行密钥传输,加解密数据指令操作以及密文和明文的传输。其主要的交互格式由下面格式来定义:
注:以上格式表示的是单次指令操作所使用到的格式,不代表具体的操作流程,SW1和SW2 的长度为两字节。
SPI指令CMD由6字节组成,其格式如下:
注:指令码INS表示加解密类型,P1、P2 指定同一算法下不同操作类型,如密钥生成、密钥获取、密钥装载以及加解密等具体操作过程。
2.4 SPI操作流程
RJMU401通过SPI指令建立与用户之间的交互,发送CMD指令后,芯片每完成一个操作后,都会返回一个状态,根据该状态来确定下一步操作,0x9A00 表示命令码CMD解析成功,0x9000表示单次CMD操作执行结束并且操作成功。其操作一般流程图如下所示:
2.5 SPI引脚说明
RJMU401安全芯片的SPI通信接口引脚功能说明如下:
注【1】:SPI_Ready引脚可根据需要配置成PIN4或PIN13引脚。
2.6 SPI操作状态机制
当主机通过SPI接口给RJMU401安全芯片发送指令后,由于RJMU401解析指令、加解密等操作过程都需要一定的处理时间,因此主机需要通过RJMU401的输出状态判断其当前状态是否就绪。
RJMU401使用Ready管脚输出信号指示当前状态。当该引脚为高电平时,说明安全芯片处于FREE态(就绪状态),外部主机可进行发送指令或接收数据操作;当该引脚为低电平时,说明安全芯片处于BUSY态(忙状态),主机应等待RJMU401状态就绪(即Ready管脚输出高电平时),方可继续进行收发指令及数据等操作。