密码学—求给定n阶LFSR在指定q元域上的理想初始向量集合C

博客内容讲述了在计算n阶线性反馈移位寄存器(LFSR)在指定q元域上理想初始向量集合时遇到的计算量问题。作者通过引入蒙哥马利快速求幂算法,将原本指数级的运算降低到对数级,显著优化了计算过程。虽然对于非常大的数仍然面临挑战,但这一改进提高了效率。文中提到了判断周期的方法,并给出了基本思想和操作流程。
摘要由CSDN通过智能技术生成

这个开始写的时候写的比较挫,求周期的时候就是从1开始一直计算到p^n-1(为了方便下面用N表示了),结果小的数据还行,一旦打一点,比如到了(10,10),那就是10^10-1了,验证一个向量(c1,c2,..,c10!=0)就是要求一个10*10的矩阵求10^10次幂,结果可想而知了...并且,因为要求出所有的,总的计算量还要乘以9*10^9(其中c10不允许等于0的情况)。所以这个计算量是非常大的。

自己也觉得超级不满意,所以就想方设法想要做一点优化,最后就在乘幂的时候采用了蒙哥马利快速求幂算法,算法的思想可以网上搜索,如:

http://blog.csdn.net/smarteryu/article/details/8189185

http://book.51cto.com/art/200812/102582.htm(详细)

http://blog.csdn.net/zhizichina/article/details/7573342

http://hi.baidu.com/guoxianzhuang/item/ac989514885c6d9198ce3358

使得求幂运算由原来的N变为了logN(以二为底N的对数,计算机的孩纸都能看懂吧...),优化的幅度挺大的了。但是依旧觉得挺悲催的,因为对于大一点的数,还是计算不了。或许还有别的思想吧。

这里的基本思想是:

1.先求当前向量构造的矩阵M的N次幂,然后判断是否为单位阵。若是,执行2;否则,不合要求,结束。

2.求M的N

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值