LKT系列加密芯片如何预置openssl生成的rsa密钥完成运算
0赞1、测试目标
将openssl生成的RSA1024位密钥写入到LKT系列加密芯片的公私钥文件中
2、测试环境
本示例运行环境为windows系统、测试软件LCS SAM 4.2、LKT-K100开发板。LKT系列加密芯片必须已具备基本文件结构(MF、KEY文件、EF01号公钥文件、EF02号私钥文件)
3、测试步骤
注意:“->”表示使用LCS SAM软件操作LKT-K100向加密芯片发送数据
“<-”表示使用LCS SAM软件操作LKT-K100读回加密芯片输出的数据
3.1 公钥数据封包
公钥存储格式如下:
公钥对象 | 内容 | 长度(字节) |
参数N封包 | ||
公钥模标识 | 0x6E | 1 |
公钥模长度 | 0x80 | 1 |
公钥模N | xx..xx | 0x80 |
公钥指数标识 | 65 | 1 |
公钥指数长度 | 04 | 1 |
参数e封包 | ||
公钥指数e | 00 01 00 01 or 00 00 00 03 | 4 |
3.2 私钥数据封包
私钥存储格式如下:
私钥对象 | 内容 | 长度 |
参数P封包 | ||
参数P 标识 | 70 | 1 |
参数P长度 | 0x40 | 1 |
参数P内容 | xx..xx | n |
参数Q封包 | ||
参数Q标识 | 71 | 1 |
参数Q长度 | 0x40 | 1 |
参数Q内容 | xx..xx | n |
参数DP封包 | ||
参数dp标识 | 50 | 1 |
参数dp长度 | 0x40 | 1 |
参数dp内容 | xx..xx | n |
参数DQ封包 | ||
参数dq标识 | 51 | 1 |
参数dq长度 | 0x40 | 1 |
参数dq内容 | xx..xx | n |
参数QINV封包 | ||
参数Qinv标识 | 49 | 1 |
参数Qinv长度 | 0x40 | 1 |
参数Qinv内容 | xx..xx | N |
3.3 选择公钥文件
-> 00A4 0000 02 EF02
<- 9000
3.4 写入公钥数据
-> 00D6 0000 88 + 参数N封包 + 参数e封包
<- 9000
3.5 选择私钥文件
-> 00A4 0000 02 EF01
<- 9000
3.6 写入私钥数据
写私钥P
-> 00D6 0000 42 + 参数P封包
<- 9000
写私钥Q
-> 00D6 0042 42 + 参数Q封包
<- 9000
写私钥DP
-> 00D6 0084 42 + 参数DP封包
写私钥DQ
-> 00D6 00C6 42 + 参数DQ封包
写私钥Qinv
-> 00D6 0108 42 + 参数QINV封包
至此,openssl生成的RSA1024位密钥已成功写入到加密芯片中。下期讲解如何进行加解密操作,敬请期待。