xiaoyuzhou1228

LKT系列加密芯片如何预置openssl生成的rsa密钥完成运算

0
阅读(725) 评论(22)

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位密钥已成功写入到加密芯片中。下期讲解如何进行加解密操作,敬请期待。


  1. 这个步骤方法是只适用于LKT系列加密芯片还是可适用于所有加密芯片?


  2. 受教了,我对这个技术很感兴趣,我会一直关注的,期待楼主下期的讲解

  3. 嗯嗯....文章写得很详细,还有这操作,涨见识了。可以研究一下LKT系列的芯片


  4. @Jinghua   

    楼主所说的这个测试只能在windows系统下完成吗?还有所用的这些测试软件都是专用的吗?有没有其他可以替代的测试软件?

    这个测试适用于windows,linux等系统。x86,arm等架构。只要能实现和加密芯片的数据通信就能完成上述操作


  5. 楼主所说的这个测试只能在windows系统下完成吗?还有所用的这些测试软件都是专用的吗?有没有其他可以替代的测试软件?

  6. @MAFENG   

    LKT加密芯片的存储空间多大?能存多少秘钥?

    LKT的芯片系列非常丰富,存储空间从几十K到上百K的都有,能满足绝大部分密钥和关键数据的存储需求。若是具体的需求还是要看一下对应的芯片型号


  7. LKT加密芯片的存储空间多大?能存多少秘钥?