Page 150 - 《软件学报》2025年第10期
P. 150

程石 等: 基于两种新标量表示的安全高效标量乘算法                                                       4547



                 6.  else
                 7.    R = R+[l i ]Q;
                 8.  end if
                 9. end for
                 10. return  R.

                    从算法   6  可知, 生成  k 和  l 的  JRF  格式后, 计算多标量乘法时, 可始终保证     k i  和  l i  其中一个为  ±1 而另一个为  0,
                 这样在第    2  步后的每轮迭代中都必然要计算一次点加运算和倍点运算, 实现了一致的点加-倍点                          (double-and-add
                 always) 操作, 达到了抗  SPA  攻击的效果.
                  1.3   常见侧信道攻击及其防御
                    1999  年, Kocher 等人  [7] 指出一般的二进制标量乘算法是将乘法和加法转化为移位操作, 攻击者可以在每
                 一轮迭代中分析标量, 获取私密信息, 从而该计算方法不能抵抗侧信道攻击. 这是一种通过分析密码设备泄
                 露的边信道信息来推测秘钥的密码分析方法, 同时是目前最常见的密码算法攻击方式, 能通过加密设备在运
                 行过程中的边信道信息比如电压、功耗等的泄露来破解密码算法. 对于椭圆曲线标量乘算法, 常见的攻击
                 如下.
                                    [7]
                    简单能量分析      (SPA) 攻击: 通过分析功耗曲线来获得密钥等私密信息. 例如, 当使用                  double-and-add  算法进
                 行标量乘时, 如果攻击者能够从功耗曲线中区分点加运算和倍点运算, 就可以获取标量的值. 主要防护措施有: 原
                 子块处理, 一致的点加-倍点操作等.
                                     [7]
                    差分能量分析      (DPA) 攻击: 使用统计技术从测量中获取私密信息. 攻击者通过为密码设备设置多个输入点,
                 记录并存储随时间变化的侧信道测量值, 通过分析大量功耗曲线的相对差异进而推测算法密钥, 主要防护措施有:
                 基点掩码, 随机化投影坐标, 随机密钥分割等.
                    修正能量分析      (refined power analysis, RPA)  [18] 攻击: 利用特殊点  (x,0) 或  (0,y) 攻击随机化投影坐标的方法, 进
                 而使攻击者可以通过 DPA 攻击获取密钥, 相较             DPA  对设备的要求也更高更复杂. 主要防护措施有: 基点掩码, 随
                 机密钥分割等.
                    零值点能量分析      (zero power analysis, ZPA) [19] 攻击: 这种攻击不依赖于功耗分析, 而是通过分析目标设备在不
                 同操作状态下的电磁辐射或其他物理特性来获取敏感信息. ZPA                     可以在设备处于低功耗或零功耗状态时进行攻
                 击, 相对于   DPA  更具挑战性, 但相较     DPA  对设备的要求也更高更复杂. 主要防护措施有: 基点掩码, 随机密钥分
                 割等.
                    Flush+Reload  攻击  [20] : 该方法由  Yarom  等人在  2014  年首次提出. 其原理是利用现代处理器的缓存机制. 攻击
                 者首先通过特定的指令将目标设备中的某些数据从缓存中清除                      (Flush), 然后监视缓存中的访问情况, 当被攻击者
                 再次访问这些数据时, 攻击者可以通过观察访问时间的差异来推断出数据的敏感信息                              (Reload). 通过不断重复
                 Flush  和  Reload  的过程, 攻击者可以逐渐还原目标设备中的数据, 包括密钥等敏感信息, 需要针对具体的攻击方式
                 决定防御措施.

                  2   基于  OWNAF  的安全高效标量乘算法方案

                    考虑在   wNAF  和  RWNAF  算法现有的思路及效率基础上, 通过调整            NAF  序列的生成方式来抵御侧信道攻击,
                 避免直接计算     k 的  NAF  形式来直接得出标量乘运算结果, 实现安全高效的标量乘算法, 该算法分为以下几个阶段.
                  2.1   预计算阶段
                    首先, 在  RWNAF  算法的基础上, 对算法中非        0  值的取值范围进行调整, 同时通过一定的处理规避可能存在子
                 序列中全为    0  的情况. 新的  OWNAF  算法如算法    7  所示.
   145   146   147   148   149   150   151   152   153   154   155