高阶掩码Kyber的侧信道攻击研究
1. 新泄漏点的发现
在掩码布尔到算术转换过程 secb2a_1bit() 的C代码中,存在两个与每个份额的单个位直接相关的操作:
- 操作一 :位于 b2a_qbit() 过程中,第1行将第一个布尔份额 x[0] 的位值复制到第一个算术份额 a[0] ;第3行将份额 x[i] ( i ∈{1, ..., nshares -1} )的所有位值逐个作为 secb2a_qbit_n() 的输入。
- 操作二 :位于 secb2a_qbit_n() 过程中,布尔份额 x[i] 的位值在for循环中被处理 i + 1 次。在第4行,计算 2*b[j]*x 的值并从中间值 c[j] 中减去。当 x = 0 时, c[j] 的汉明重量不变;当 x = 1 时,很可能改变。
为了验证这两个操作是否泄漏侧信道信息,对 masked_poly_frommsg() 过程的一阶、二阶和三阶掩码实现进行了t检验。基于10K条轨迹,泄漏点可分为三种类型:
| 泄漏点类型 | 位置 | 相关操作 | 特点 |
Kyber侧信道攻击与防御研究
超级会员免费看
订阅专栏 解锁全文
321

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



