椭圆曲线-typescript deep dive 无水印原版pdf

时间:2024-06-30 06:33:07
【文件属性】:

文件名称:椭圆曲线-typescript deep dive 无水印原版pdf

文件大小:2.4MB

文件格式:PDF

更新时间:2024-06-30 06:33:07

openssl编程

第二十章 椭圆曲线 20.1 ECC 介绍 椭圆曲线(ECC)算法是一种公钥算法,它比流行的 RSA 算法有很多优点: 1)安全性能更高 , 如 160 位 ECC 与 1024 位 RSA、DSA 有相同的安全强度。 2)计算量小,处理速度快, 在私钥的处理速度上(解密和签名),ECC 比 RSA、DSA 快得多。 3)存储空间占用小 ECC 的密钥尺寸和系统参数与 RSA、DSA 相比要小得多, 所以占 用的存储空间小得多。 4)带宽要求低。 20.2 openssl 的 ECC 实现 Openssl 实现了 ECC 算法。ECC 算法系列包括三部分:ECC 算法(crypto/ec)、椭圆曲线 数字签名算法 ECDSA (crypto/ecdsa)以及椭圆曲线密钥交换算法 ECDH(crypto/dh)。 研究椭圆曲线需要注意的有: 1) 密钥数据结构 主要是公钥和私钥数据结构。椭圆曲线密钥数据结构如下,定义在 crypto/ec_lcl.h 中,对用户是透明的。 struct ec_key_st { int version; EC_GROUP *group; EC_POINT *pub_key; BIGNUM *priv_key; /* 其他项 */ } 2) 密钥生成 对照公钥和私钥的表示方法,非对称算法不同有各自的密钥生成过程。椭圆曲 线的密钥生成实现在 crytpo/ec/ec_key.c 中。Openssl 中,椭圆曲线密钥生成时,首 先用户需要选取一种椭圆曲线(openssl 的 crypto/ec_curve.c 中内置实现了 67 种,调 用 EC_get_builtin_curves 获取该列表),然后根据选择的椭圆曲线计算密钥生成参 数 group, 后根据密钥参数 group 来生公私钥。 3) 签名值数据结构 非对称算法不同,签名的结果表示也不一样。与 DSA 签名值一样,ECDSA 的 签名结果表示为两项。ECDSA 的签名结果数据结构定义在 crypto/ecdsa/ecdsa.h 中, 如下: typedef struct ECDSA_SIG_st { BIGNUM *r;


网友评论