1

今天是个好日子!我尝试在 AVR Asm (atmega128) 上随机化数字。所以我需要在开始时初始化值并注意 asm x86 开发人员使用“rdtsc”指令。是否可以在 AVR 架构中初始化一些随机初始化值,例如 rdtsc?是否可以使用不同的初始值?谢谢并恭祝安康。

4

2 回答 2

0

您可能可以使用一个不占用 CPU 时钟的计时器(因为这就是 TSC)。也就是说,这仅足以播种伪随机数生成器,并且生成的随机数不适用于密码操作。

于 2013-10-01T07:38:27.660 回答
0

我明白了,您知道,但再次强调,您不能使用任何计时器/计数器值作为随机数生成器。您只能将其用作伪随机算法种子数的来源。

为了做到这一点,您需要一个可以快速连续计数的计时器/计数器,以及实际充当随机事件生成器的人工。

如果没有人工交互,则无法使用计时器或计数器获取随机数种子。

在计算机中,人类随机化程序启动的时刻。

计数器实际上并不那么重要。对它的唯一要求是运行得比人类反应时间快得多。几千赫兹是可接受的频率。这样,您可以使用一些计时器,配置为尽可能快的频率,甚至可以在每个主程序循环上增加一个简单的软件计数器(当然,如果程序足够快的话)。

如果您的设备支持实时时钟,请使用它。这样您将获得更好的随机化,因为即使整个设备关闭,RTC 也会运行。

这样,人工提供的开关 ON 将提供随机时刻事件。

在所有情况下,用于生成伪随机数的算法都比种子生成方法重要得多。

因此,make 尽可能简单和愚蠢,并专注于伪随机数生成器。

于 2013-10-01T09:26:46.140 回答