首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >智能卡中使用伪随机数发生器是否存在一些问题?

智能卡中使用伪随机数发生器是否存在一些问题?
EN

Cryptography用户
提问于 2014-11-07 01:06:23
回答 1查看 2.4K关注 0票数 6

智能卡是一种安全设备,其存储容量和计算资源有限。

如果我们使用伪随机数发生器来生成智能卡中的随机数,那么有什么问题吗?

EN

回答 1

Cryptography用户

发布于 2014-11-07 07:14:40

所有现代微处理器智能卡集成电路都包含一个物理的True RNG,然后通常使用硬件去偏置器(例如范诺依曼)或/和某种类型的确定性伪RNG来调节TRNG输出,使TRNG输出与随机输出更加难以区分。独立地,智能卡可以包含(密码安全的)伪RNG。后一个问题是关于什么的,但我将讨论这两个问题。

是的,这些RNG可能存在问题--以及处理它们的技术。

会有缺陷。在最近的一个有据可查示例中,智能卡内部用于生成RSA公钥/私钥对的TRNG在一小部分产品上是不好的,这使得RSA模数可以用专门的技术进行分解。这类失败是物理随机性源的糟糕设计或构建。在这里,这很可能是偶然的,但对手可能会试图导致类似的故障(例如,通过改变集成电路的温度,它的电源)。例如,由智能卡产生的随机数实际上比正常情况下重复的概率要高得多。

为了防止TRNG出现这种故障,合理的做法是至少在调理之前包括TRNG源的测试,并使用深思熟虑的后置条件,可能包括某些用途的密码安全。这已编入TRNG通用标准安全评估的AIS31 31方案 (德语索引,链接到英文文档;另见法国当局是如何使用AIS31 31方法的,包括第5节中的一些保留)。

有时,PRNG的状态保存在非易失性内存中(如果不是,当我们关闭智能卡时,状态就会丢失,如果不采取特别的预防措施,PRNG的输出就会在每次我们打开智能卡时保持不变,这是一个毁灭性的问题)。敌手希望恢复该状态,或将其更改为已知状态(例如,在此状态被更改时移除权力)。设计精良的智能卡硬件和软件对非易失性存储器进行了分层保护,使得内存检查极其困难,使用临时复制和标志防止数据丢失,并使用检测(也许是更正)错误的技术。

在智能卡中实现PRNG的另一个问题是侧通道故障注入攻击(幻灯片),它试图猜测PRNG的状态,而它通常会改变,或者改变它的变化方式(前面提到的功率去除是故障注入)。同样,智能卡也有针对这些问题的应对措施。

评论建议比较智能卡中PRNG与TRNG的用例。

智能卡需要随机性,以及很多随机性,作为防范侧通道攻击的一部分。这是从开机开始的,它可以无限次数地执行(我见过非接触式智能卡读取器每秒运行100次电源周期)。纯PRNG无法工作:它是确定性的,它要么在两个卡上产生相同的输出,要么需要更新一个非易失性内存,这是缓慢的,很容易被SPA检测到,并且在设备的工作寿命中只能完成有限的次数。另外,这种状态必须在智能卡生命的某个时刻被初始化,带有随机的秘密,操作上的烦恼。

这就是为什么所有智能卡IC卡至少提供一个硬件TRNG,至少供其内部使用。我在这些ICs上遇到的唯一的硬件PRNG被用作TRNG的后置处理。这种(条件性) TRNG提供了极佳的随机性,具有接近低温的质量,数量多得实用,易于和快速地为低级别的系统程序员所访问(在检查TRNG实际上正在工作之后,这是一个严重并发症的来源)。通常(以及上述第5节中法国当局以外的许多主管人员的建议)将此作为种子,用于软件实现的CSPRNG (通常使用硬件加速器进行分组密码),用于需要密码特性的东西。

票数 9
EN
页面原文内容由Cryptography提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://crypto.stackexchange.com/questions/20068

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档