在wiki文章中,它说:“ASG由三个线性反馈移位寄存器组成,为了方便起见,我们将称之为LFSR0、LFSR1和LFSR2。其中一个寄存器的输出决定了另外两个寄存器中的哪一个;例如,如果LFSR2输出0,则LFSR0被时钟,如果它输出1,则LFSR1被时钟。”
如果有人能解释ASG是如何工作的,如果可能的话,一个很小的例子就说明了这一点,我将非常感激。
发布于 2020-03-25 22:29:10
时钟是一个电子术语,在这里它适用于LFSR的实现;
假设LFSR是用D-触发器实现的,它可以将值存储在位中。

在每个时钟处,等待输入(D)通过输出(Q)和进入下一个小区的LFSR。这是轮班操作。
如果没有其他逻辑的控制,系统的时钟同时工作在D触发器上。如果一个人用额外的逻辑/值控制时钟,就像ASG中的那样

然后,根据逻辑,D触发器可能不会被锁定,从而导致保持相同的值。LFSR仍然输出与前一个时钟相同的值。
在软件中,您可以这样考虑;
有一个LFSR类,它除了构造函数、析构函数和其他一些实用工具(如当前步骤值)之外,还有两个函数;
advance() ->,它移动LSFR并根据反馈多项式反馈新值。getOutput()根据控制值,一个调用advance(),然后调用getOutput(),或者只调用getOutput()。后者保留以前的值。
https://crypto.stackexchange.com/questions/78451
复制相似问题