首页
社区
课程
招聘
[求助]密码学滑动窗口算法
发表于: 2015-10-30 14:35 6114

[求助]密码学滑动窗口算法

2015-10-30 14:35
6114
最近研究大数模幂运算,遇到滑动窗口算法的问题,结果网上都找不到相关资料,求算法详解以及源码

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 62
活跃值: (27)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
2
滑动窗口算法的基本思想是,将指数有连续bit“1”的地方,一次性算,而不需要每bit都算。
例如:按从右往左计算S=x^emodM,其中e=10110111。
普通做法是:S赋初值1,从高往低位遍历e,遇到1执行S*=S,S*=x;遇到0执行S*=S。
窗口法(假设窗口宽度3bit):S赋初值1,从高往低观测e中连续“1”的情况,例如第一次观察只有1个“1”,执行S*=S,S*=x,由于第二bit为“0”,执行S*=S;继续执行,发现第3,4bit均为“1”,执行两次S*=S,执行一次S*=x2(x2=x^3是预计算好的值);继续执行,由于第5bit为“0”,执行S*=S;继续执行,发现第6,7,8bit均为“1”,执行三次S*=S,执行一次S*=x3(x2=x^7是预计算好的值)。
滑动窗口法可以提高速度,但是会额外多消耗内存,因为预计算值需要提前计算并存储。窗口越大,需要的预计算值越多。指数bit位小时,相应窗口也不要太大,否则也不能起到提速的作用。
2015-10-30 17:46
0
雪    币: 39
活跃值: (114)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
二楼说的对,滑动窗口的算法原理如下:其中d表示非零窗口的最大长度(即窗口占几个bit)
The Sliding Window Method
Input: M; e; n.
Output: C = M^e (mod n).
1. Compute and store M^w (mod n) for all w = 3, 5, 7, ... , 2^d - 1.
2. Decompose e into zero and nonzero windows F(i) of length L(F(i)),for i = 0, 1, 2, ... , p - 1.
3. C := M^F(p-1) (mod n)
4. for i = p - 2 down to 0
    4a. C := C^(2^L(F(i))) (mod n)
    4b. if F(i)不等于0, then C := C * M^F(i) (mod n)
5. return C
2016-2-4 17:32
0
雪    币: 39
活跃值: (114)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
固定非零窗口的大小为3,即d等于3。
设e=3665,采用滑动窗口法计算 M^e (mod n)。
1、因为d等于3,所以需要计算M^3 (mod n), M^5 (mod n), M^7 (mod n)。
2、分解e为零窗口和非零窗口。有很多种分解的方法,这里采用的方法是:对于e的二进制表示,从最低显著位开始,往最高显著位扫描。如果遇到1就往前走,直至读取d位放入非零窗口;如果遇到0,就进入零窗口,并读下一位。按照这种方法,这里e = 3665 = (111001010001) 就被分为111   00   101   0    001,其中有3个非零窗口,而且每个非零窗口的大小都是3。
3、C = M^F(4) = M^7 (mod n)
4、        i    Fi     L(Fi)       Step 4a                           Step 4b
            3    00     2         (M^7)^4 = M^28             M^28
            2   101    3         (M^28)^8 = M^224         (M^224) * (M^5) = M^229
            1    0       1         (M^229)^2 = M^458       M^458
            0    001   3         (M^458)^8 = M^3664     M^3664 * M = M^3665
2016-2-4 17:53
0
雪    币: 10014
活跃值: (2012)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
5
这些东西和密码学不沾边吧?
2016-2-4 21:03
0
雪    币: 39
活跃值: (114)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
有关系,RSA和ECC算法实现中需要用到。
2016-2-5 09:26
0
游客
登录 | 注册 方可回帖
返回
//