椭圆曲线数字签名算法
编辑椭圆曲线数字签名算法 (ECDSA) 是数字签名算法 (DSA) 的变体,它使用椭圆曲线密码学。
与正常 DSA 程序的区别
编辑一般来说,椭圆曲线密码学的经验法则是,所使用的子群生成元的位长大约是安全级别 的两倍,应该配对配 安全级别为 t = 80 位 由于攻击者必须计算出 2 80 基本操作才能找到私钥,因此 DSA 密钥的长度约为 1024 位,但 ECDSA 密钥的长度仅为的 160 位。然而,签名对于程序来说是相同的长度:4 t {\displaystyle 4t} 位,对于 80 位的安全级别也有 320 位。
密钥生成
编辑xxx个参数描述了使用的曲线: q 是定义曲线的字段顺序; F R 是所用基的规范; a 和 b 是描述曲线滑动的两个主体元素; 域参数种子 是一个可能随机破坏的字符串,如果曲线被证明是随机破坏的,它就会出现。
为了生成她的密钥对,Alice 在区间 中生成一个随机整数。关键是 Q A = d A G 。
评论一个签名
编辑如果 Bob 验证了 Alice 生成的签名之一的真实性,他必须有她的公钥副本 Q A 。如果他不确定 Q A 已正确生成,他必须检查它是否真的是一个键:
- 检查是否 Q A ungleich 是 O 并且坐标在其他方面有效
- 检查 Q A 是否在曲线上
- 检查是否 n Q A = O 。这里判断 Q A 是否是生成器 G 的倍数。曲线参数 余因子 h = 1 这一步可以省略。
然后鲍勃执行以下步骤:
- 检查 r 和 s 是否为整数 和 在区间谎言。如果不是,则签名无效。
- 计算 e = HASH ( m ) ,其中HASH与生成签名时的函数相同。将L记为z n e 的最高有效位。
在 Straus 的算法(也称为 Shamir 的技巧)的帮助下,两个标量乘法的和 ( u 1 G + u 2 Q A {\displaystyle u_{1}G+u_{2}Q_{A}} ) 可以计算得更快。
内容由匿名用户提供,本内容不代表vibaike.com立场,内容投诉举报请联系vibaike.com客服。如若转载,请注明出处:https://vibaike.com/351372/