【问题标题】:"Scrambler" functions? Like random number generators“加扰器”功能?像随机数生成器
【发布时间】:2013-03-28 23:52:32
【问题描述】:

我对修改随机数生成器的常见想法很感兴趣。也就是说,典型的生成器会从该空间生成一长串合理独立、均匀分布的数字。这旨在与一个种子重复使用。

但是,出于我的目的,我想要一种以“独立”的方式从另一个数字(实际上是从整数网格)生成“随机数”的方式,即知道附近点的输出不能帮助您预测您的价值。

在实践中,使用传统的随机数生成器效果相当不错,但我会对为此目的实际完成的任何工作感兴趣。

【问题讨论】:

  • 不明显。安全性对我的应用程序来说并不那么重要,正如我在帖子中提到的,PRNG 通常更关心生成的数字序列与单个种子的独立性,而不是第一个生成的数字与种子本身的独立性。跨度>

标签: math random numbers


【解决方案1】:

听起来您正在寻找cryptographic hash function

理想的密码散列函数有四个主要属性:

  1. 很容易计算任何给定消息的哈希值
  2. 生成具有给定哈希的消息是不可行的
  3. 在不改变哈希的情况下修改消息是不可行的
  4. 不可能找到两条具有相同哈希的不同消息

一些常用的哈希函数有SHA-1SHA-512。一个名为MD5 的工具仍在使用中,尽管它已被证明是不安全的。

【讨论】:

  • 这听起来很有希望。但实际上我还需要一个属性(与 (2) 相关,但实际上并未暗示),即给定此哈希函数的“图形”,不会出现明显的模式。因此,例如,如果我通过将整数与另一个(秘密)整数进行异或来散列整数,这可能适合上述属性,但如果我切换输入的 LSB,它只会切换输出的 LSB。所以它“太连续了”,对我的目的不起作用。
  • 在上面留下我的评论,但意识到它可能并不完全正确。如果我们要求该算法是众所周知的,那么 XOR 将不满足 (2),实际上连续性也将成为 (2) 的障碍(如果您接近,您只需稍微抖动您的输入并且接近所需的哈希)。
  • 一个结构良好的散列函数还具有改变输入中的一位会改变输出中的一半位的属性。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-03-13
  • 1970-01-01
  • 1970-01-01
  • 2015-03-14
  • 2023-01-03
  • 2020-03-01
  • 2014-05-10
相关资源
最近更新 更多