首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通用Fibonacci LFSR的反向输出

通用Fibonacci LFSR的反向输出
EN

Cryptography用户
提问于 2015-09-09 19:35:23
回答 1查看 1.8K关注 0票数 3

假设我们有一些Fibonacci LFSR,它输出一些序列。

如何改变启动LFSR,使其输出完全相同的序列,但以相反的顺序?

EN

回答 1

Cryptography用户

发布于 2016-05-05 22:28:15

在这里提供lfsr和反向lfsr的代码。第一个是来自wikipedia的lfsr代码,第二个是反向lfsr。

代码语言:javascript
复制
#include <stdio.h>

int main(void)
{
    unsigned short start_state = 0xace1;
    unsigned lfsr = start_state;
    unsigned int period = 0;

    do
    {
        unsigned short lsb = lfsr & 1;
        lfsr >>= 1;
        lfsr ^= (-lsb) & 0xb400;
        ++period;

        printf("%x\n", lfsr);
    } while (lfsr != start_state);

    return 0;
}
代码语言:javascript
复制
#include <stdio.h>

unsigned short bit_revert(unsigned short v)
{
    int i = 0;
    unsigned short lsb = 0;
    unsigned short n = 0;

    for (i = 0; i < sizeof(unsigned short) * 8; i++)
    {
        lsb = v & 1;
        v >>= 1;
        n <<= 1;
        n |= lsb;
    }

    return n;
}

int main(void)
{
    unsigned short start_state = 0xace1;
    unsigned lfsr = start_state;
    unsigned int period = 0;

    do
    {
        unsigned short lsb = lfsr & 1;
        lfsr >>= 1;
        lfsr ^= (-lsb) & 0x8016;
        ++period;

        printf("%x\n", bit_revert(lfsr));
    } while (lfsr != start_state);

    return 0;
}
票数 0
EN
页面原文内容由Cryptography提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://crypto.stackexchange.com/questions/29066

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档