查看: 5165|回复: 13

[求助] LPC55S69的PUF响应能否用来生成公私钥对

[复制链接]
  • TA的每日心情
    郁闷
    2023-2-24 10:43
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    2

    主题

    13

    帖子

    0

    注册会员

    Rank: 2

    积分
    131
    最后登录
    2025-2-19
    发表于 2023-3-1 15:55:38 | 显示全部楼层 |阅读模式
    查看nxp的官方例程发现只有用PUF响应产生单一密钥,然后通过硬件总线送到AES引擎中使用,想询问下有没有利用PUF响应产生一对公私钥对的工具库,我想用来做非对称加密,如果没有对应的库希望有大佬能提供一些产生公私钥对的思路

    最佳答案

    eefocus_3901837 发表于 2023-3-2 15:54 感谢您的解答。 1、我是一名在校研究生,目前的研究工作里有一项需要使用PUF产生的公私密钥对,所以不是 ... 设置的密钥在使用时,一定是会被“读取”的,如果密钥不可读,那 ...
    该会员没有填写今日想说内容.
    回复

    使用道具 举报

    该用户从未签到

    2

    主题

    13

    帖子

    0

    注册会员

    Rank: 2

    积分
    87
    最后登录
    2023-3-3
    发表于 2023-3-2 11:58:28 | 显示全部楼层
    本帖最后由 systick 于 2023-3-2 11:59 编辑

    请教一下,你的应用场景是什么?

    PUF不支持生成非对称公私钥对。
    实际上,对称密钥本质上就是一串随机数,而生成非对称密码学公私钥对,要远比生成对称密钥复杂。
    可以使用mbedtls来实现公私钥对的生成。NXP的SDK已经移植好了mbedtls,并且提供了相应的demo。
    所以,可以用mbedtls生成公私钥对,然后利用PUF妥善的保存其中的私钥。

    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2023-2-24 10:43
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    2

    主题

    13

    帖子

    0

    注册会员

    Rank: 2

    积分
    131
    最后登录
    2025-2-19
     楼主| 发表于 2023-3-2 14:19:57 | 显示全部楼层
    systick 发表于 2023-3-2 11:58
    请教一下,你的应用场景是什么?

    PUF不支持生成非对称公私钥对。

    感谢你的解答。但看了你的回答我我仍有疑惑,
    1、首先答复一下,我的应用场景是我想利用它做数字签名,这显然用对称加密的方式是做不到的
    2、其次就是你说的PUF不支持生成非对称公私钥对,但是对称密钥的产生不也是用的PUF响应作为随机数种子产生不可知密钥的过程吗(不知道这样理解对不对)?而且我这两天看了几篇论文,都有提及利用PUF响应产生公私钥对的过程,不知道是不是这块板子不支持还是其他原因?
    3、最后就是用mbedtls工具产生公私钥对,再用PUF保存,这里我理解的是mbedtls产生一对公私钥对,然后把私钥用PUF产生的对称密钥保护起来,但是传输过程中会有泄露的风险吧,私钥只要我想获得的话还是有可能的,这样就没法利用PUF的优势了
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    2

    主题

    13

    帖子

    0

    注册会员

    Rank: 2

    积分
    87
    最后登录
    2023-3-3
    发表于 2023-3-2 14:59:45 | 显示全部楼层
    eefocus_3901837 发表于 2023-3-2 14:19
    感谢你的解答。但看了你的回答我我仍有疑惑,
    1、首先答复一下,我的应用场景是我想利用它做数字签名,这 ...

    请教一下,具体是做什么产品?

    是的,LPC55S69的PUF不支持直接产生非对称密钥。实际上,由于非对称算法的复杂性,也很难通过纯硬件支持所有的非对称算法。例如RSA,ECC还有我们的国密算法,产生密钥对的方法都不完全相同,并且椭圆曲线也可以选择不同的曲线参数。对于椭圆曲线算法和LPC55S69来说,当然可以用PUF产生的随机密钥作为私钥,但是相应的公钥仍需软件根据私钥通过计算产生。

    你提到的对称的“不可知密钥”,主要是因为LPC55S69在AES引擎和PUF之间,有一条硬件的key bus。这个bus对于ARM内核是不可见的,也就是说软件是无法读取的,所以产生了类似于不可知但可以使用的效果。但是LPC55S69是没有专门的非对称密码学引擎的(只有CASPER,一个加速器,用来加速一些非对称算法中的大数计算),更没有类似的key bus。因此,对于非对称密钥,没法实现类似的效果。

    在实际应用中,往往不需要对外传输私钥,也要尽力规避这种需要传输私钥的情况。我们只需要传输公钥或证书即可。使用PUF管理非对称私钥,将相应的AC和KC存储在flash中,然后使用时,将密钥重建到芯片的RAM里,使用完后再把RAM中的私钥删除,来最大程度的规避密钥的泄露风险。另外,由于PUF的特性,某一颗芯片flash中的AC和KC即使泄露了,也无法在其他芯片上重建原本的密钥。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2023-2-24 10:43
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    2

    主题

    13

    帖子

    0

    注册会员

    Rank: 2

    积分
    131
    最后登录
    2025-2-19
     楼主| 发表于 2023-3-2 15:54:40 | 显示全部楼层
    systick 发表于 2023-3-2 14:59
    请教一下,具体是做什么产品?

    是的,LPC55S69的PUF不支持直接产生非对称密钥。实际上,由于非对称算法 ...

    感谢您的解答。
    1、我是一名在校研究生,目前的研究工作里有一项需要使用PUF产生的公私密钥对,所以不是在做什么产品
    2、您提到的使用PUF产生的随机密钥作为私钥,然后相应的公钥就可以利用软件通过私钥产生,这样当然是很好,但是这样私钥不就还是相当于被人所知晓了,还是说PUF产生的密钥其实是君子协定,只要我想获得就还是可以获得的。我的老师在给我讲解的时候告诉我为了保护其不可克隆属性,这种密钥是一定不可被读取到的,而且我在阅读55S69的SDK时在代码里也没发现获取PUF密钥的方法,这之间是不是有些矛盾?
    3、如果有获取PUF密钥的方法请您指导一下在哪个demo里能找到?通过什么方法能获取到?
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    2

    主题

    13

    帖子

    0

    注册会员

    Rank: 2

    积分
    87
    最后登录
    2023-3-3
    发表于 2023-3-2 19:28:39 | 显示全部楼层
    eefocus_3901837 发表于 2023-3-2 15:54
    感谢您的解答。
    1、我是一名在校研究生,目前的研究工作里有一项需要使用PUF产生的公私密钥对,所以不是 ...

    设置的密钥在使用时,一定是会被“读取”的,如果密钥不可读,那怎么使用它进行加解密呢?只不过有些密钥直接被PUF重建后放在硬件的key bus,只能被硬件加解密引擎“读取”,不能被CPU读取,从而实现了软件不可读。如果有些密钥不需要放在硬件key bus上,或者不能放在硬件key bus上,那么它是可以被读取的。可以参考NXP SDK demo中的PUF_GetKey。

    首先要明确PUF的作用。PUF可以将密钥转化为AC和KC,对于生成AC和KC的那一颗LPC55S69芯片来说,那些不能被PUF直接放在硬件key bus上的key确实像是“君子协定”,即芯片要保证不能主动地泄露密钥。但是对于其他LPC55S69芯片,就不一样了,其他的LPC55S69是不能利用别的芯片产生的AC和KC重建密钥的。

    举个例子,在没有PUF的情况下,根密钥是不能存储在外部flash中的,因为外部flash可以被他人读取。而利用PUF,将密钥转化为AC和KC后,AC和KC就可以存储在任何介质中,因为别人拿到AC和KC也没用,除非攻击者可以控制生成AC/KC的那一颗芯片执行代码。因此,我们也需要利用secure boot的等功能,保证生成这个AC和KC的LPC55S69芯片不会执行他人的非法代码,那么攻击者也就没法利用这个芯片,非法地通过AC和KC去获取密钥了。

    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2023-2-24 10:43
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    2

    主题

    13

    帖子

    0

    注册会员

    Rank: 2

    积分
    131
    最后登录
    2025-2-19
     楼主| 发表于 2023-3-2 20:45:51 | 显示全部楼层
    systick 发表于 2023-3-2 19:28
    设置的密钥在使用时,一定是会被“读取”的,如果密钥不可读,那怎么使用它进行加解密呢?只不过有些密钥 ...

    非常感谢您的解答,受教了。
    请问可否添加一下您的联系方式?
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    2016-12-2 08:40
  • 签到天数: 3 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    103

    主题

    868

    帖子

    7

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    4336
    最后登录
    2025-6-13
    发表于 2023-3-5 12:59:32 | 显示全部楼层
    eefocus_3901837 发表于 2023-3-2 20:45
    非常感谢您的解答,受教了。
    请问可否添加一下您的联系方式?

    尽量 站内 交流吧, 这样也可以分享给新来的盆友,有个记录。
    您有问题就发帖
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2023-2-24 10:43
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    2

    主题

    13

    帖子

    0

    注册会员

    Rank: 2

    积分
    131
    最后登录
    2025-2-19
     楼主| 发表于 2023-3-6 11:33:27 | 显示全部楼层
    systick 发表于 2023-3-2 19:28
    设置的密钥在使用时,一定是会被“读取”的,如果密钥不可读,那怎么使用它进行加解密呢?只不过有些密钥 ...

    大佬,我翻阅了AN12324应用笔记的内容,发现了一个新问题。
    PUF_GetKey函数获得的内容是从KC解密的KEYINDEX为1~15的userkey,这里这个userkey是之前我PUF_SetKey的输入,既然你提到PUF的作用是把密钥转换为AC和KC,这里是不是可以理解为我输入的userkey就是密钥,PUF的作用就是隐藏它。
    如果是这样的话,那么感觉PUF的作用很鸡肋啊,在KEYINDEX为0的位置的通过key bus传输的密钥其实也是我的输入,那么这个软件不可读的密钥其实也是我已知的。
    如果不是这样的话,那么重建出的密钥是什么呢?是AC和SRAM启动数据组合的Digital fingerprint?
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2023-2-24 10:43
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    2

    主题

    13

    帖子

    0

    注册会员

    Rank: 2

    积分
    131
    最后登录
    2025-2-19
     楼主| 发表于 2023-3-7 16:22:15 | 显示全部楼层
    mgn 发表于 2023-3-5 12:59
    尽量 站内 交流吧, 这样也可以分享给新来的盆友,有个记录。
    您有问题就发帖 ...

    mgn大佬能否解答我最后提的那个问题?求求了
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-27 08:26 , Processed in 0.111325 second(s), 31 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表