针对侧信道攻击的更灵活对策
1. 椭圆曲线密码系统(ECC)的标量乘法
椭圆曲线密码系统(ECC)的标量乘法用于计算椭圆曲线上一点 $P$ 与标量 $d$ 的乘积 $dP$。为了提高计算效率,通常采用有符号表示法,其中最快且内存占用较少的方法是宽度 - $w$ 非相邻形式(NAF)。
宽度 - $w$ NAF 将一个 $n$ 位整数 $d$ 表示为 $d = \sum_{i=0}^{n} dw[i]2^i$,其中 $dw[i]$ 是奇数,且 $|dw[i]| < 2^{w - 1}$,在连续 $w$ 位中最多有一个非负数字。我们需要预先计算包含点 $P, 3P, \cdots, (2^{w - 1} - 1)P$ 的表,该表共有 $2^{w - 2}$ 个点(包括基点 $P$),相反符号的点在标量乘法过程中动态生成。
以下是生成宽度 - $w$ NAF 和使用宽度 - $w$ NAF 进行标量乘法的算法:
生成宽度 - $w$ NAF
INPUT An n-bit d, a width w
OUTPUT dw[n], dw[n - 1], ..., dw[0]
1. i ← 0
2. While d > 0 do the following
2.1. if d is odd then do following
2.1.1. dw[i] ← d mods 2w
2.1.2. d ← d - dw[i]
2.2. else dw[i] ← 0
2.3. d ← d/2, i
超级会员免费看
订阅专栏 解锁全文
26

被折叠的 条评论
为什么被折叠?



