添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
狂野的人字拖  ·  Liberty Media ...·  8 月前    · 
腼腆的香槟  ·  食灵王动画 - 快看漫画·  2 年前    · 
热心的水煮鱼  ·  Design Patterns in ...·  2 年前    · 
慈祥的核桃  ·  Android 通过 ...·  2 年前    · 

数字签名中用到了多个函数,包括 ECDSA_sign、ECDSA_sign_ex、ECDSA_do_sign、ECDSA_do_sign_ex、ecdsa_do_sign、ECDSA_sign_setup、ecdsa_sign_setup。这些函数有的是用于计算签名,有的是用于做签名前的预运算;有的签名是采用DER编码,有的是采用ECDSA_SIG。下图将简要说明这些函数之间的调用关系。

6.3 签名所用函数图

现对上图做个简要说明:

  1. ECDSA_sign和ECDSA_sign_ex的签名采用的是DER编码,故需要用i2d_ECDSA_SIG将ECDSA_do_sign_ex得出的ECDSA_SIG格式签名编码成DER形式。
  2. ECDSA_sign_setup和ecdsa_sign_setup做签名前的预运算,是可选函数。所谓的预运算就是指如果外部不输入kG和 k-1的值((x1,y1) ←kG 是ECDSA签名算法step1.1.2 需要计算的值,而k-1是step1.2所需中间值),就预先将这两个值计算出来。参见§6.2.2签名原理的ECDSA签名算法。
  3. ecs_ossl.c文件中的函数ecdsa_do_sign是具体实现签名的函数,ecdsa_sign_setup是具体实现预运算的函数。

下表对以上函数再做一个比较。

函数名

签名采用的编码方式

可选参数

所在文件

ECDSA_sign

DER编码

ecs_sign.c

ECDSA_sign_ex

DER编码

ecs_sign.c

ECDSA_do_sign

ECDSA_SIG

ecs_sign.c

ECDSA_do_sign_ex

ECDSA_SIG

ecs_sign.c

ecdsa_do_sign

ECDSA_SIG

ecs_ossl.c

ECDSA_sign_setup

ECDSA_SIG

计算可选参数

ecs_sign.c

ecdsa_sign_setup

ECDSA_SIG

计算可选参数

ecs_ossl.c

表6.4 签名函数对比表

数字签名中用到了多个函数,包括 ECDSA_sign、ECDSA_sign_ex、ECDSA_do_sign、ECDSA_do_sign_ex、ecdsa_do_sign、ECDSA_sign_setup、ecdsa_sign_setup。这些函数有的是用于计算签名,有的是用于做签名前的预运算;有的签名是采用DER编码,有的是采用ECDSA_SIG。下图将简要说明这些函数之间的调用关系。图...
ECDSA 的全名是Elliptic Curve DSA,即椭圆曲线DSA。它是Digital Sig nature Algorithm (DSA)应用了椭圆曲线加密 算法 的变种。椭圆曲线 算法 的原理很复杂,但是具有很好的公开密钥 算法 特性,通过公钥无法逆向获得私钥。 第一部分 : DSA的 签名 和验证过程 要了解 ECDSA ,首先要了解DSA 签名 的过程和验证过程。为了理解的方便,这里省去诸
DSA:Digital Sig nature Algorithm (DSA) ECDSA :The Elliptic Curve Digital Sig nature Algorithm ( ECDSA ) DSS:Digital Sig nature Standard (DSS) NIST:(U.S. National) Institute of Standards and Tec
既然我们已经可以产生椭圆曲线密钥对,我们接下来就用使用它来进行消息的 签名 和验证。我所指的消息是任何形式,无论是文本还是二进制形式,只要它们有被验证合法性的需要。特别的是,bitcoin客户端通过 签名 来证明交易的有效性,反之,矿工则是通过验证这样的 签名 ,来批准并广播合法的交易。 ECDSA 签名 椭圆曲线 签名 算法 就是 ECDSA (Ellipt...
公司原计划是年后让我直接去公安一所过35114的认证,但是突发疫情,导致上班时间一推再推,最后也只能远程用升级包的方式给检测员进行认证。 前几次的尝试,服务器一直回复401,让我百思不得其解,甚至开始让我产生对 算法 的怀疑。现在回过头来看,其实SM2 签名 格式不理解是导致一直验签失败的主要原因。 按照国密的规范,SM2 签名 结果r||s长度应该是(r:32字节)+(s:32字节)64字节,就算加个0...
数字 签名 就是只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明。一般是非对称密钥加密技术与数字摘要技术的结合应用,目前主流的三种非对称 算法 有: 1. RSA,这个巨NB 算法 的实现方式,使其既可以用于 签名 也可以用于加密(密钥交换)。除了将公钥与密钥的地位交换一下之外,其它步骤几乎是完全一样的。发送方用自己的私钥对消息的摘要值进行“加密”
─────────────────────────────────────── int ECDSA _ sig n(int type, const un sig ned char *dgst, int dgstlen, un sig ned char * sig , un sig ned int * sig len, EC_KEY *eckey) 功能: 计算 签名 签名 采用D...
ECDSA :椭圆曲线数字 签名 算法 。jdk7的第四个版本提供了对 ECDSA 的支持。ECDS的 签名 算法 代码:public static void jdk Ecdsa (String data) { try { //1.初始化密钥 KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("EC")
本文首发公众号VenusBlockChain,关注公众号后可免费阅读!VenusBlockChain致力于区块链技术研究,传播区块链技术和解决方案、区块链应用落地、区块链行业动态等。 1 ECDSA 算法 首先,需要设置参数(a,b,p,N,G)(a,b,p,N,G)(a,b,p,N,G)来初始化一椭圆曲线,椭圆曲线方程y2=(x3+ax+b)modpy^2=(x^3+ax+b)modpy2=(x...
使用 C 语言调用 OpenSSL 来实现求数组 MD5 算法 ,可以使用 OpenSSL 中的函数 EVP_MD5() 来处理数据,具体步骤如下: 1. 定义一个 EVP_MD_CTX 结构体,用于存放 MD5 的上下文信息; 2. 使用 EVP_MD_CTX_init() 函数初始化 EVP_MD_CTX 结构体; 3. 使用 EVP_DigestInit_ex() 函数初始化摘要上下文;4. 使用 EVP_DigestUpdate() 函数传入要处理的数组; 5. 调用 EVP_DigestFinal_ex() 函数完成计算; 6. 使用 EVP_MD_CTX_cleanup() 函数清理 MD5 的上下文信息; 7. 使用 EVP_MD_CTX_destroy() 将 EVP_MD_CTX 结构体的内存释放掉。