【问题标题】:Generate 4 bytes of (pseudo)random data生成 4 字节的(伪)随机数据
【发布时间】:2011-12-01 07:49:38
【问题描述】:

我需要在内核模块的一个变量中存储 4 个字节的(伪)随机数据。稍后此值将存储在磁盘上。这不会用于任何加密目的。只是在使用的值中不应该有 discernible 模式。保证该变量所属的结构将通过 kmalloc 分配。那么我可以安全地使用下面的代码吗?

struct header {
    __u32 magic; 
 /* some other members of the struct */
}; 
struct header *hdr; 
/* Memory initialization through kmalloc*/
hdr->magic = (__u32)(unsigned long)(&hdr->magic);

或者我应该从random.h接口获取数据?

【问题讨论】:

  • "只是在使用的值中不应该有 discernible 模式。"这就是加密 RNG 需要生成的内容的定义。
  • @BasileStarynkevitch 这将用于某些签名方案中,唯一重要的标准是变量应该具有任意值。
  • @R.MartinhoFernandes 我应该说得更好:-)。正如我在之前的评论中所说,即使这些值在一段时间后重复,变量也应该有一些任意值。

标签: c linux random


【解决方案1】:

您可以看看/dev/random/dev/urandom 的驱动程序如何工作并模仿他们的行为。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-08-07
    • 2010-09-08
    • 2014-05-18
    • 2012-02-12
    • 1970-01-01
    • 2012-02-09
    • 1970-01-01
    • 2013-10-10
    相关资源
    最近更新 更多