Random 杰里科通讯是否可靠?

Random 杰里科通讯是否可靠?,random,cryptography,trng,Random,Cryptography,Trng,我正在寻找一种在智能手机上生成真正随机位/数的方法。 创建一个定制的TRNG似乎很棘手,很多人建议信任已经存在的、经过广泛测试和认可的TRNG。 但我发现,它使用来自图片的自定义TRNG作为输入。 这有多安全、牢固和可靠?这是生成真正随机数/位的有效方法吗? 我知道智能手机摄像头不适合这个用途,因为JPEG压缩和低质量。。。但忽略这一点,所提出的算法有多正确 我粘贴文档: 此过程描述了完整的算法: 将用户的照片加载到内存中,并将其存储在RGB值的顺序数组中。 获取每个像素的红色、绿色和蓝色RGB

我正在寻找一种在智能手机上生成真正随机位/数的方法。 创建一个定制的TRNG似乎很棘手,很多人建议信任已经存在的、经过广泛测试和认可的TRNG。 但我发现,它使用来自图片的自定义TRNG作为输入。 这有多安全、牢固和可靠?这是生成真正随机数/位的有效方法吗? 我知道智能手机摄像头不适合这个用途,因为JPEG压缩和低质量。。。但忽略这一点,所提出的算法有多正确

我粘贴文档:

此过程描述了完整的算法: 将用户的照片加载到内存中,并将其存储在RGB值的顺序数组中。 获取每个像素的红色、绿色和蓝色RGB整数值。对于每种颜色,这将返回一个介于0和255之间的数字。 删除顺序重复的黑色0、0、0像素、白色255、255、255像素和完全相同的像素颜色。这将删除照片中曝光不足、曝光过度和熵很少的部分。通常情况下,除非出现硬件故障,或者照片部分曝光不足/过度,否则相邻像素的颜色完全相同是非常罕见的。通常在一张高质量的照片中,相邻像素中至少有非常轻微的颜色变化。这一步去除了这些低熵区域。 每一组RGB值估计1位输入熵每24位像素1位。这是一个非常保守的估计。用户可以在TRNG设置中将此值增加到每像素3位,这将解释每种颜色最低有效位的熵。 收集512个RGB值以获得512位的估计熵输入。 将512 RGB值转换为其十六进制表示形式,并将其输入到具有512位输出的加密哈希中。用户可以选择使用哪个散列,程序允许Skein或Keccak[c=2d]。这两种算法都是NIST哈希函数竞赛中非常强大的最终入围算法。将此512位哈希输出作为临时种子存储到下一个哈希中。 开始循环: -检查是否有足够的新输入熵用于新散列,或者是否中断循环。 -从早期获取临时种子。 -获取一组新的512 RGB值512位作为新的输入熵。 -将种子和输入熵连接在一起,并使用:hash seed | | input entropy对它们进行散列。 -将散列输出的前256位追加到输出随机数据。 -将临时种子更新为哈希输出的最后256位。 -返回到循环的开始。 需要注意的是,该程序不会使用收集到的熵为psuedo随机数生成器种子,以提供无限量的随机数据。该程序的目标是成为一个真正的随机数生成器,因此只需要质量随机性,每个均匀随机位必须仅用于加密明文的一位。我们假设,大多数伪随机数生成器,甚至延伸熵的CSPRNG,都可能在输出中产生细微的偏差,并允许NSA或其他政府解密部分或全部消息。使用此程序的目的是避免将可用熵扩展到更多位


他不清楚如何将RGB值转换为输入位,再转换为哈希函数。如上所述,他似乎暗示使用所选RGB值的所有位;似乎只使用低阶位会更好,但我会听从数学技能比我高的人。你认为你需要这样一个RNG的目的是什么?谢谢你的回答!因此,使用低阶位将是一个更好的选择,而不是使用所有RGB位值?我认为他选择这种解决方案是为了获得大量的输出位。也许这个选择会让整个过程变得脆弱?我要实现一个一次性Pad,需要真正的随机性。我还有一个问题:P我读过其他可能的解决方案。特别是我发现它从图片中获取熵随机位,并将其用作CSPRNG的种子。嗯,这被认为是一种尝试。但是为什么呢?为什么不是CSPRNG?如果速度不是问题,那么它和操作系统CSPRNG有什么不同呢?我推荐random.org.speed不是问题,但安全性优先。如果我信任外部网站使用或不使用带有给定随机位的PRNG生成密钥,并且攻击者正在监听通信,我认为这可能是一个安全问题。还有,谁向我保证该网站不受NSA控制P