首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

深入了解SSL证书要素和管理

证书拥有者 证书是向对端证明SSL通信安全身份,证明他是访问urlhost域名所有者。所以首先证书需要有域名信息。其实这里不止包括域名,精确地说,应该是可以表明服务端身份信息。...二、证书编码格式 2.1、什么是ASN.1编码(X.509 v3)?...证书要素可以用XML,但是比XML存储更多信息,叫ASN(Abstract Syntax Notation)或者ASN.1(version 1)。 ASN描述了元素间怎么组织嵌套在一起。...一本证书ASN.1描述 Version: 默认0,就是版本号11:版本号2 SerialNumber:可能不是全局唯一,但是象一些大CA或者同一家CA机构,比如(VeriSign从来没有重用序列号)...ECDSA:TLS1.2开始支持ECC。

2.4K50

椭圆曲线密码学和以太坊中椭圆曲线数字签名算法应用

数字签名生成 下面来看一下ECDSA签名生成过程,以下内容主要来自wiki_ECDSA 假设Alice要给Bob发一个经过数字签名消息,他们首先需要定义一组共同接受椭圆曲线加密用参数,简单...私钥来自于[1, n-1]范围内一个随机数: ? 公钥如下,它来自私钥和基点椭圆曲线点倍积: ?...签名文件验证 验证 r 和 s 均是处于[1, n-1]范围内整型数;否则验证失败 计算 e = HASH(n),HAHS()即签名生成过程步骤1中使用哈希函数。...ecdsa.ecdsaSignature对应于生成数字签名(r, s)。...()来验证数字签名是否正确有效,crypto包这个方法正是通过调用libsecp256k1API,遵循ECDSA算法理论中有关数字签名验证部分来完成; 其次,将RS,V拼接出所需数字签名字符串

3.8K40
您找到你想要的搜索结果了吗?
是的
没有找到

SM 国密算法踩坑指南

数字签名验证算法,即验签流程: 验签流程图: SM2 签名数据 上面加签流程我们可以看到,SM2 加签之后产生签名为(R,S),这一点与 RSA算法不同,RSA 算法加签之后签名就是一个值。...SM2 数字签名另外一种方式就比较简单,格式R|S,即直接将两者拼接在一起表示。 通常使用软件加密产生数字签名将会使用这种数据格式。...但是如果我们使用 BC 库加签输出格式直接使用 R|S。 如果是这种情况,我们就需要在明文 R|SASN.1 之间做相互转换。 最新版本 BC 库,已经提供转换换方式。...ASN.1 格式 new SM2Signer(StandardDSAEncoding.INSTANCE, new SM3Digest()); 也可以使用下面这种方式吗,输出签名结果为 R|S...ASN1Integer x = new ASN1Integer(r); ASN1Integer y = new ASN1Integer(s); DEROctetString

6.2K21

下载量过亿 15 个 Python 库

幸运是,我们依然能找到这个几十年之久标准许多资料。ASN.1 是 Abstract Syntax Notation One(抽象语法记法一)缩写,是数据序列化鼻祖。它来自于通讯行业。...ASN.1正是它们1984年版本。ASN.1 描述了一种不同系统之间跨平台接口,可以通过该接口发送数据结构。 还记得第8名 certifi 吗?...ASN.1 用于定义 HTTPS 协议以及许多其他加密系统中使用证书格式ASN.1 还广泛用于 SNMP、LDAP、Kerberos、UMTS、LTE 和 VOIP 等协议中。...你可以看看 Reddit 上这个关于 ASN.1 讨论 (https://www.reddit.com/r/programming/comments/1hf7ds/useful_old_technologies_asn1...它支持如下功能: 加密和解密 签名签名验证 根据 PKCS#1 version 1.5生成秘钥 它可以作为 Python 库使用,也可以在命令行上使用。

12610

ECDSA使用,实现多签 (一)

本文作者:auok007[1] ECDSA 在前面的文章已经提到,尝试爆破 NFT 奖励时间限制 (二)[2]这方面的原理,以及实现我就不讨论了,文章比较多,程序员嘛,除了自己写代码,就是关注接口,学会要会使用...recover(hash, r, vs) tryRecover(hash, v, r, s) recover(hash, v, r, s) toEthSignedMessageHash...验证签名: 信息生成公钥 hash 信息 hash recover 签名,得到签名公钥地址 比较公钥地址一致,说明是这个地址签名 代码 直接来个测试用例,说明这个过程,里面的私钥都来自 Ganache...hash ); //使用alice私钥、hash进行签名 bytes memory sig = abi.encodePacked(r, s,...v); //打包成测试需要格式 address signer = hash.recover(sig); //使用ECDSA recover 函数得到签名地址 emit

75510

写给开发人员实用密码学 - 数字证书

ASN.1类似于JSON或者XML这样数据结构。ASN.1定义了复杂数据结构,通常现有的加密库都包含了ASN.1编码与解析,网上也可以找到源码,一般没必要完全理解ASN.1内部结构。...签名算法包含两个部分,分别是摘要算法和签名算法。对于ECDSAWithSHA256签名算法来说,ECDSA签名算法,SHA256是摘要算法。...证书生成格式 ASN.1标准用于描述证书结构,而证书本质上是一个文件,需要一种专门格式,才能在互联网中传输,证书需要通过一个规则将ASN.1转换为二进制文件。...Canonical Encoding Rules(CER)是另外一种编码标准,用来编码ASN.1结构。 PKCS#12格式。微软发布一种格式,文件后缀一般是.pkcs12、.pfx、.p12。...PKCS#7格式。证书另外一种格式,主要用来进行数字签名和数据加密,文件后缀一般是.p7b或者.p7c 证书生成过程 一般生成证书流程为: 用户生成一对密钥对,比如SM2密钥对。

1.1K10

收藏 | 学习 Python,这 22 个包怎能不掌握?

幸运是,我们依然能找到这个几十年之久标准许多资料。ASN.1 是 Abstract Syntax Notation One(抽象语法记法一)缩写,是数据序列化鼻祖。它来自于通讯行业。...ASN.1正是它们1984年版本。 ASN.1 描述了一种不同系统之间跨平台接口,可以通过该接口发送数据结构。 还记得第8名 certifi 吗?...ASN.1 用于定义 HTTPS 协议以及许多其他加密系统中使用证书格式ASN.1 还广泛用于 SNMP、LDAP、Kerberos、UMTS、LTE 和 VOIP 等协议中。...你可以看看 Reddit 上这个关于 ASN.1 讨论(https://www.reddit.com/r/programming/comments/1hf7ds/useful_old_technologies_asn1...它支持如下功能: 加密和解密 签名签名验证 根据 PKCS#1 version 1.5生成秘钥 它可以作为 Python 库使用,也可以在命令行上使用。

1K10

区块链密码基础之签名算法(一)

一般而言,椭圆曲线被分为两类,“伪随机曲线”和Koblitz曲线,NSA在椭圆曲线签名算法中提出secp256r1是随机参数: 这个随机参数来自于一个种子,但是这个种子怎么来,为何这个种子不是一个单纯数字...TX,而是将交易签名(r,s)更改为(r,-s),交易改变为TX’; 攻击者把TX’发送到区块链网络中,诚实节点转发TX’到整个区块链网络中,矿工节点验证通过后将交易TX’写入区块链中完成交易,数字资产转入了攻击者账户...SM2签名算法具体如下 图6 Bob以“同或门”为例对混淆电路进行解密 4.4.3 SM2和ECDSA应用于区块链比较 SM2和ECDSA都是使用椭圆曲线签名算法,其思想来源都是来自于DSA,...相同点: 都是以rs签名(来源于DSA启发) 都是随机签名算法(利用了随机数k通过椭圆曲线上点产生r) 安全性在同一个级别 不同点:两者在算法和特征上还是有些许不同 签名生成r不同; 签名生成...s不同 签名hash内容不同 SM2数字签名增加了合理性检查,检查r+k是否等于n SM2数字签名s具有线性关系,可以构造特殊需求签名 综合以上分析SM2签名算法与ECDSA算法相比较,虽然安全性在同一个级别上

1.5K10

pem、x509、asn1

X.509 X.509是密码学里公钥证书格式标准。 X.509 证书己应用在包括TLS/SSL在内众多 Intenet协议里.同时它也用在很多非在线应用场景里,比如电子签名服务。...它提供了一套正式、无歧义和精确规则以描述独立于特定计算机硬件对象结构。 ASN.1是ISO和ITU-T联合标准,最初是1984年CCITT X.409:1984一部分。...各种ASN.1编码规则提供了由ASN.1描述其抽象句法数据传送语法(具体表达)。...为了使ASN.1能够描述一些原先没有使用ASN.1定义,因此不适用上述任一编码规则数据传输和表示应用和协议,另外制订了ECN来扩展ASN.1编码形式。...ASN.1其他应用领域参见此处[1]。 这里[2]列举了很多ASN.1自由或者商业工具。 PEM

93620

二十一.PE数字签名之(中)Signcode、PEView、010Editor、Asn1View工具用法

文章目录: 一.PE文件数字签名过程 1.基础概念 2.数字签名操作 二.PE文件签名数据提取 1.PEView查看签名信息 2.010Editor提取签名数据 三.PE文件签名数据分析 1.ASN1Dump...其中,通过makecert.exe生成需要证书常见参数如下: -r: 自签名 -n: 证书名称,格式为-n “CN=名称, E=Email,O=组织名称,C=国家, S=省份(州), P=县城” -a...PKCS#7 1.5 版本规范定义了关于 SignedData ASN.1(抽象语法符号)结构,如下图所示: 注意,导出“test02.dat”签名数据为 ASN.1抽象结构,需要采用ASN1View...或ASN1Dump进行解析,其效果如下图所示: 1.ASN1Dump分析签名数据 第一步,调用ASN1Dump打开“test02.dat”解析基础数据。...2.ASN1View提取证书及分析数据 第一步,回顾我们前面的签名信息和证书信息。如下图所示,PE文章签名信息散列算法是SHA1签名算法是RSA,签名证书散列算法是MD5。

2.4K30

虾说区块链-48-《精通比特币》笔记三

F~sig~:Sig=(R,S)通过计算R.S值,称为序列号字节流。...签名序列化:DER:序列化格式包含9个元素:DER序列开始、序列长度、一个整数值、整数长度、R值、接下来一个整数、整数长度、S值、后缀值。...ECDSA签名算法想生成一对临时私钥公钥,涉及签名私钥和交易hash变换后,临时密钥用于计算RS值。S=k-1(Hash(m)+dA*R)mod p。...k临时私钥、R临时公钥x坐标、dA签名私钥、m交易数据、p椭圆曲线顺序。验证是签名生成函数倒数,使用R\S值和公钥来计算一个P:P=s-1*Hash(m)G+s-1*R*Qa。...R/S签名值、Qa公钥、m签署交易数据、G椭圆曲线发生器点。计算点P坐标等于R,则签名有效。

96180

看完秒懂,“数字签名”入侵那点事儿!

数字签名二进制格式 现在你已经知道了一个PE文件被签名方法(验证和目录),知道一些签名二进制格式是非常有用,无论是验证签名还是目录签名,这两个签名都是存储为PKCS #7签名数据,这种数据是ASN....1格式二进制数据。...ASN.1是一个标准,它说明了不同数据类型二进制数据应该如何存储。在观察、解析数字签名字节之前,你必须首先知道它是如何存储在文件中。...目录文件本身是由PKCS #7数据组成,在线有一个ASN.1解码器,可以解析出ASN.1数据并以直观方式呈现。...嵌入到PE中验证签名检索 验证签名签名数据是被植入到PE文件末尾,操作系统也需要更多信息以便于可以得到精确便宜,我们可以见一下kernel32.dll在我最喜欢PE编辑工具情况吧。

2.5K20

详解国密SM2数字签名

不论消息有多长,在某种摘要算法下,其摘要值长度是固定,对其进行签名速度较快,也比较容易处理。 ECDSA签名算法 目前主流签名算法有RSA数字签名算法和DSA数字签名算法。...在《详解国密SM2加密和解密》一文中,我们已经谈过密钥对生成,这里再重复一下: 选择一个随机数作为私钥d, 1 < d < n -1 基于私钥生成公钥,P(x, y) = d * G(x, y) 签名生成...生成一个随机数k,1 < k < n -1 计算(x, y) = k * G 计算r = x mod n 计算s = (k**-1 * (HASH(M) + d*r)) mod n 得到签名值(r, s...验证签名: 将签名转化为两个数rs,假如rs小于1或者大于n-1,验证直接失败 计算c = (s)**-1 mod n 计算u1 = ((HASH(M)) * c) mod n 计算u2 = ((r...) * c) mod n 计算(x, y) = u1 * G + u2 * P 如果r == x mod n,则签名验证成功,否则失败 如果从头实现上面的运算,确实不太容易,因为ECDSA已经相当成熟,

10.2K20
领券