首页
社区
课程
招聘
[求助]ECC中 窗口法计算NAF 看不明白????
发表于: 2016-6-7 18:06 13686

[求助]ECC中 窗口法计算NAF 看不明白????

2016-6-7 18:06
13686
用窗口法计算点乘的NAF, 可加快点乘计算速度, 我不理解怎么计算出 负数?

窗口法NAF计算公式如下:

  w -- 为窗口宽度
  k -- 需要计算的正整数.
  out[] -- 输出.

  i=0;
  如果 k >= 1 时,
      如果 k 是奇数, out[i] = k mod 2^w;  k -= out[i];
      否则 out[i] = 0;
      k /= 2;  i++;

代码如下:

  i = 0;
  while (k >= 1)
  {
    if (k & 1)
    {
      out[i] = (k % (2^w));
      k -= out[i];
    }
    else out[i] = 0;

    k /= 2;
    i++;
  }

=============

??? 我奇怪 k 是正整数, out[i] = k mod 2^w, 余数 out[i] 也该是正整数, 怎么会有负数?

而且所有网上介绍 窗口法NAF 的结果都有负数....

如 w=3; k=3533;

  网上的结果: { 1,0,0,-1,0,0,0,0,-3,0,0,0,-3 }
  上面代码计算的结果: { 3,0,0,0,7,0,0,1,0,0,5 }

[课程]Linux pwn 探索篇!

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 757
活跃值: (21)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
能看懂一些自学中,可惜不会
2016-6-7 18:28
0
雪    币: 39
活跃值: (114)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
if (k & 1)
    {
      out[i] = (2^(w-1)) - (k % (2^w));
      k -= out[i];
    }
2016-7-18 14:32
0
游客
登录 | 注册 方可回帖
返回
//