首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >寻找CPRNG实现

问寻找CPRNG实现
EN

Cryptography用户
提问于 2018-04-23 06:02:57
回答 1查看 299关注 0票数 1

我正在寻找C中常用的、经过验证的CPRNG实现。使用什么?像Linux中的ChaCha20?有人知道其他的实现吗?PS:我不想自己实现,因为它需要很高的精度,以后必须经过安全专家的验证,以确保所有的工作正常。另外,我计划在操作系统没有随机系统调用的嵌入式设备上使用它

EN

回答 1

Cryptography用户

发布于 2018-04-23 12:11:29

C中常用和证明的CPRNG实现

另一种选择是淘汰微软的CryptGenRandom。这是旧的CSPRNG构建在WinNT家族的OSes中。本质上它是SHA1(RC4),并且有FIPS认证,所以对您来说应该没问题。在Linux和Windows中随机数生成器的安全性和Windows随机数发生器的密码分析中有足够的细节让您能够重建它。SHA1和RC4的细节无处不在。不要对RC4的偏见问题感到惊慌。这些都是在应用哈希函数之前本机发生的。

您将注意到对CryptGenRandom的有效前向安全攻击。它只需要$ 2^{32} $工作,这是相当低,因此严重。然而,这需要了解内部状态。攻击者是否能够知道任何事情的内部状态都是一大罐蠕虫,只有您才能决定这是否是一种可能的情况。

非常好的警告:你需要熵来初始化你的RNG (也许还可以重新启动)。老实说,这是最难的部分。如果只使用CSPRNG的库实现,生成加密安全的数字是很容易的。类似地,一点ChaCha也很容易,但是仍然需要初始种子状态。播种是问题所在。由于我们不知道你的电子环境,我的建议不能具体在这个时候。看看这两个链接,试着找出任何相似之处(特别是与国家相关的),并带着任何进一步的问题回来。

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

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

复制
相关文章

相似问题

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