椭圆曲线密码系统的密钥验证与无效曲线攻击分析
1. 引言
公钥验证旨在确保公钥具备特定的算术属性。在Diffie - Hellman协议中,公钥验证尤为重要。若实体B将收到的公钥与自己的私钥结合得到共享密钥k,并用于对称密钥协议,不诚实的A可能选择无效公钥,使k的使用泄露B的私钥信息。尽管公钥验证已被认为是必要操作,但许多加密标准并未强制要求执行。本文将介绍针对标准化椭圆曲线密钥建立和公钥加密协议的攻击,若接收方不检查椭圆曲线点是否在正确曲线上,这些攻击将生效。
2. 椭圆曲线密码方案
在任何公钥加密系统中,实体共享域参数,拥有公钥和私钥对。密钥对可以是静态(长期)或临时(短期)的。
- 域参数 :椭圆曲线密码方案的域参数D包括:
1. 底层有限域$F_q$的阶q。
2. $F_q$元素的表示方式。
3. 椭圆曲线$E$在$F_q$上的定义方程。
4. 素数阶的基点$P = (x_P, y_P) \in E(F_q)$。
5. $P$的阶n。
6. 余因子$h = #E(F_q)/n$。
- 密钥对 :用户A选择$w_A \in_R [1, n - 1]$并计算$W_A = w_A P$,静态密钥对为$(W_A, w_A)$,B的静态密钥对为$(W_B, w_B)$。
- 常用术语 :离散对数协议中,素数阶子群$G_1$为主要群,$G_2$为超群。在椭圆曲线中,$E(F_q)$是超群,$\langle P \rangle$是主要群。
超级会员免费看
订阅专栏 解锁全文
860

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



