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

什么是数字签名?-- 【图解数字签名

它用图片通俗易懂地解释了,"数字签名"(digital signature)和"数字证书"(digital certificate)到底是什么。...鲍勃给苏珊回信,决定采用"数字签名"。他写完后先用Hash函数,生成信件的摘要(digest)。 6、 ? 然后,鲍勃使用私钥,对这个摘要加密,生成"数字签名"(signature)。...鲍勃将这个签名,附在信件下面,一起发给苏珊。 8、 ? 苏珊收信后,取下数字签名,用鲍勃的公钥解密,得到信件的摘要。由此证明,这封信确实是鲍勃发出的。 9、 ?...因此,道格就可以冒充鲍勃,用自己的私钥做成"数字签名",写信给苏珊,让苏珊用假的鲍勃公钥进行解密。 11、 ? 后来,苏珊感觉不对劲,发现自己无法确定公钥是否真的属于鲍勃。...以后再给苏珊写信,只要在签名的同时,再附上数字证书就行了。 13、 ? 苏珊收信后,用CA的公钥解开数字证书,就可以拿到鲍勃真实的公钥了,然后就能证明"数字签名"是否真的是鲍勃签的。

1K20

数字签名

概述 还记得之前在介绍HTTPS的时候提到过的数字签名吗? 忘了?? 来, 复习一下....让我们尝试还原数字签名的发展. 人工签名时代 提到了签名, 首先想到的就是每个人的签名了. 在以前....也要引出数字签名了, 数字签名和上面上锁的思路基本一致. 既然是数字化, 那所有数据都是数字咯. 小王又借你钱了, 这次他打的欠条就是数字9(为了方便取了个简单的数)....重复上面的例子, 小王选择的私人数字是: 3, 钟大小是22, 则公共数字是7(没搞懂这个数字是怎么算出来的) 假若消息是: 9 计算签名: 9^3%22=3, 其签名为3 解锁签名: 3^7%22=9...对于一个较大的文件, 做签名是不现实, 因为几十 mb 的文件, 其二进制表示的数字大到离谱, 所以一般会通过 hash 函数将其转换到信息息摘要, 然后对信息摘要做数字签名.

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

数字签名

数字签名其实就是公钥密码的反向应用,下面我们看看两种的不同: 名称 私钥 公钥 公钥密码 接受者解密时使用 发送者加密时使用 数字签名 签名者生成签名时使用 验证者验证签名时使用 谁持有密钥?...个人持有 主要需要,任何人都可以持有 数字签名的方法 通常来说数字签名一般有两种方式: 直接对消息进行签名 对消息的hash值进行签名 下面我们分别来介绍两种方式。...我们讲解了怎么实现数字签名,我们也可能听说在现实生活中有电子签名这个东西。 数字签名有很多技术上的优点,不需要物理交互就可以签订合同,并可以对任何数据进行签名。...那么在实际上数字签名能不能替代实际签名的问题是一个复杂的社会行为。 因为我们在使用电子签的时候,没有人会亲自去设计签名算法,而是简单的根据软件提供的信息按下签名按钮。...那么这个签名软件是否值得信任,就是我们需要关注的问题。 数字签名无法解决的问题 使用数字签名我们可以防止伪造和篡改,也无法防止否认。但是还需要一个大前提就是验证签名的公钥必须是真正属于发送者。

85420

【计算机网络】网络安全 : 数字签名 ( 数字签名简介 | 数字签名实现 | 数字签名功能 | 保密数字签名 )

文章目录 一、数字签名简介 二、基于公钥的数字签名实现 三、数字签名 功能 四、保密数字签名 一、数字签名简介 ---- 数字签名 : 证明 数据 或 身份的 真实性 ; 需要有以下功能 : ① 报文鉴别...防止 接收者 伪造 发送者 的签名 ; 二、基于公钥的数字签名实现 ---- 数字签名实现方式 : 数字签名算法很多 , 公钥算法 是最简单的算法 , 即 发送者 使用 私钥加密数据 , 接收者 使用...对应的公钥 解密数据 ; ( 接收者 持有着大量公钥 ) 三、数字签名 功能 ---- 数字签名 功能 : 以 发送者 使用 私钥 加密密文 , 接收者 使用 公钥 解密密文 为例 ; ① 报文鉴别...; 四、保密数字签名 ---- 数字签名弊端 : ① 数据窃取 : A 的公钥可能有很多人持有 , 如果一个持有 A 公钥的一方截获了上述签名数据 , 就会被窃取数据 ; ② 解决方案 签名...+ 公钥加密 : 在 A 数字签名基础上 , 再进行公钥加密 , 就将数据保密了 , 只有对应私钥才能对其进行解密 ; 保密数字签名实现方式 : ① 加密 : 发送者 A 使用 A 的私钥

1.2K00

数字签名技术

介绍数字签名数字签名是一种用于确认数据的完整性、确认发送者身份的技术。签名主要包含两个过程:做摘要、进行非对称加密。...考虑到加解密的运算速度是相对缓慢的,数字签名算法建议对消息摘要值进行签名,因为摘要值的长度是固定的,并且一般消息的摘要值的长度要比消息的长度短,加解密的运算速度会比较快。...RSA2 签名算法强制要求 RSA 密钥的长度至少为 2048 位。数字签名的作用数字签名技术的本质不是为了加密。...防止签名者抵赖:由于只有私钥持有者才能 “签署” 消息(不考虑私钥泄露的问题),因此私钥拥有者不能抵赖说这条签署消息不是他发送的。数字签名进行的是非对称加密。...如果数字签名进行的是对称加密的话,那么数字签名将不能防止签名者抵赖。原因就在于消息发送者 和 消息接收者拥有同样的密钥(公钥),所以消息发送方可以抵赖,否认消息是他发送的。参考资料数字签名是什么?

1.1K20

图说“数字签名

前言 虽然很久以前就了解了数字签名,但之前突然被一个非程序员朋友问起什么是数字签名时,依然解释得很费力。...近日找图片素材看到Peggy_Marco大神的众多人物形象图时,有了用图解说数字签名的想法,于是决定借用大神的人物形象图,尝试用图解释一下说什么是数字签名。...image.png 2、数字签名小结 2.1、法律意义上的数字签名 《 中华人民共和国电子签名法 》第二条本法所称电子签名,是指数据电文中以电子形式所含、所附用于识别签名人身份并表明签名人认可其中内容的数据...电子签名同时符合下列条件的,视为可靠的电子签名:   (一)电子签名制作数据用于电子签名时,属于电子签名人专有;   (二)签署时电子签名制作数据仅由电子签名人控制;   (三)签署后对电子签名的任何改动能够被发现...2.2、数字签名要解决的问题 从电子签名法所描述的可靠电子签名来看,数字签名要解决的问题可归纳为两个: (1)对签名人身份的确认,且签名人身份不可抵赖 (2)签名人对签名内容的认可,且签名内容不可篡改

1.8K62

数字签名-ECDSA

【Java小工匠聊密码学】--数字签名--ECDSA 1、EC相关知识 1.1 什么是ECC  Elliptic Curves Cryptography,椭圆曲线密码编码学。...1.3 什么是ECDSA   用于数字签名,是ECC与DSA的结合,整个签名过程与DSA类似,所不一样的是签名中采取的算法为ECC,最后签名出来的值也是分为R,S。...在使用ECC进行数字签名的时候,需要构造一条曲线,也可以选择标准曲线,例如:prime256v1、secp256r1、nistp256、secp256k1(比特币中使用了该曲线)等等 1.4、ECDSA...SHA1withECDSA 160 JDK/BC SHA224withECDSA 224 BC SHA384withECDSA 384 JDK/BC SHA512withECDSA 512 JDK/BC 2、ECDSA数字签名实现...] publicKey = getPublicKey(keyPair); byte[] privateKey = getPrivateKey(keyPair); // 签名

2.8K30

聊聊数字签名(下)

我们给签名设置了一个有效期,在每次请求处理前先校验签名签名通过后校验timestamp确认签名是否过期,这样服务器既不需要缓存nostr,又解决了重放攻击问题。...3)没有对参数转移,可能导致不同请求做出的签名相同,比如某一个参数的值是“tom&key=1” 证书签名 在涉及到支付,比如扣款、退款等接口,支付宝和微信支付的开放文档都是使用了更为严格的签名方式,签名的内容也不再仅对参数进行校验...1:HTTP请求方法\n 2:URL\n 3:请求时间戳\n 4:请求随机串\n 5:请求报文主体\n 其签名方式也不再是使用MD5,而是使用商户私钥对待签名串进行SHA256 with RSA签名,并对签名结果进行...与MD5签名方式相比较: 1)请求方法和url参与签名可以解决跨接口攻击; 2)请求时间戳和请求随机串参与签名可以解决重放攻击; 3)请求报文主体不再是拼接字符串,而是json格式,可以解决不同请求签名相同的问题...在阅读支付宝和微信支付的文档时,发现两家都对证书进行过一次升级,由原来使用的自签名升级为第三方可信机构颁发的证书,原因有两个: 1)国家相关标准规定 “电子签名需要第三方认证的,由依法设立的电子认证服务提供者提供认证服务

85720

加密与数字签名

具体作法是将数字签名和 数据加密结合起来。发送方在发送数据时必须加上数据签名,做法是用自己的私钥加密一段与发送数据相关的数据作为数字签名,然后与发送数据一起用接收方密钥 加密。...当这些密文被接收方收到后,接收方用自己的私钥将密文解密得到发送的数据和发送方的数字签名,然后,用发布方公布的公钥对数字签名进行解密,如果成 功,则确定是由发送方发出的。...二、数字签名   数字签名技术是实现交易安全的核心技术之一,它的实现基础就是加密技术。在这里,我们介绍数字签名的基本原理。   以往的书信或文件是根据亲笔签名或印章来证明其真实性的。...这就是数字签名所要解决的问题。数字签名必须保证以下几点:   接收者能够核实发送者对报文的签名;发送者事后不能抵赖对报文的签名;接收者不能伪造对报文的签名。   ...三、密钥的管理   对称密钥加密方法致命的一个弱点就是它的密钥管理十分困难,因此它很难在电子商务的实践中得 到广泛的应用。在这一点上,公开密钥加密方法占有绝对的优势。

8110

聊聊数字签名(上)

于是你想了个办法,说我以后再给分部发命令时会在信件里附个签名签名生成步骤如下:1)对整封信求hash形成摘要;2)然后用私钥对摘要加密。...这样有两个好处:1)不需要对整封信加密,你的分部不需要再解密,效率高;2)坏人没有的私钥,是没办法仿冒签名,一旦修改了信的内容就会导致签名的摘要和信件的摘要不一致。...小结:一般公钥用来加密,私钥用来签名签名除了防篡改以外还可以防抵赖。...总结 对称加密 采用了对称密码编码技术,特点是文件加密和解密使用相同的密钥加密,对称加密算法使用起来简单快捷,密钥较短,破译困难,但当对称加密算法应用在微信支付这样的电子商务过程中存在几个问题: 1)平台方和商户之间不可能线下面对面协商密钥...2)为保证安全平台方需要对于每一个合作者都使用不同的密钥,需要管理大量的密钥; 3)对称加密算法不能防抵赖,能够实现加密但无法验证发送者身份; 非对称加密 非对称加密算法的典型应用是数字签名,需要公开密钥和私有密钥两个密钥

37620

二十.PE数字签名之(上)什么是数字签名及Signtool签名工具详解

本文将详细介绍什么是数字签名,并采用Signtool工具对EXE文件进行签名,后续深入分析数字签名的格式及PE病毒内容。...(2) 为什么要对PE文件进行数字签名呢? 防篡改:通过对数字签名的验证,保证文件未被非法篡改。 降低误报:安全软件通过验证文件是否有正规厂商的数字签名来降低误报。...将签名私钥对应的公钥和签名数据等以证书的形式附加在PE文件之中,形成经过数字签名的PE文件。 软件发布者将经过数字签名的PE文件进行发布。...(7) 数字签名常用算法及应用领域 数字签名常用算法包括: RSA数字签名算法 基于大整数分解问题,MD5、SHA DSA数字签名算法 基于离散对数问题 ECDSA椭圆曲线数字签名算法 ECC+DSA,...椭圆加密算法,属于DSA的一个变种,基于椭圆曲线上的离散对数问题 其应用领域包括: PE文件数字签名 HTTPS数字签名 电子邮件数字签名 Office文档数字签名 代码数字签名 2.Github网站证书验证过程

1.6K10

数字签名是什么?

它用图片通俗易懂地解释了,"数字签名"(digital signature)和"数字证书"(digital certificate)到底是什么。...==================================================== 数字签名是什么?...鲍勃给苏珊回信,决定采用"数字签名"。他写完后先用Hash函数,生成信件的摘要(digest)。 6. ? 然后,鲍勃使用私钥,对这个摘要加密,生成"数字签名"(signature)。 7. ?...鲍勃将这个签名,附在信件下面,一起发给苏珊。 8. ? 苏珊收信后,取下数字签名,用鲍勃的公钥解密,得到信件的摘要。由此证明,这封信确实是鲍勃发出的。 9. ?...以后再给苏珊写信,只要在签名的同时,再附上数字证书就行了。 13. ? 苏珊收信后,用CA的公钥解开数字证书,就可以拿到鲍勃真实的公钥了,然后就能证明"数字签名"是否真的是鲍勃签的。 14. ?

90850

数字签名是什么?

鲍勃给苏珊回信,决定采用"数字签名"。他写完后先用Hash函数,生成信件的摘要(digest)。 6. 然后,鲍勃使用私钥,对这个摘要加密,生成"数字签名"(signature)。 7....鲍勃将这个签名,附在信件下面,一起发给苏珊。 8. 苏珊收信后,取下数字签名,用鲍勃的公钥解密,得到信件的摘要。由此证明,这封信确实是鲍勃发出的。 9....因此,道格就可以冒充鲍勃,用自己的私钥做成"数字签名",写信给苏珊,让苏珊用假的鲍勃公钥进行解密。 11. 后来,苏珊感觉不对劲,发现自己无法确定公钥是否真的属于鲍勃。...以后再给苏珊写信,只要在签名的同时,再附上数字证书就行了。 13. 苏珊收信后,用CA的公钥解开数字证书,就可以拿到鲍勃真实的公钥了,然后就能证明"数字签名"是否真的是鲍勃签的。 14.

70350

密码技术之数字签名

公钥密码和数字签名的密钥使用如下: 私钥 公钥 公钥密码 接收者解密时使用 发送者加密时使用 数字签名 签名者生成签名时使用 验证者验证签名时使用 密钥在哪?...数字签名可以随意复制吗? 数字签名可以随意复制。签名可以复制并不意味着签名就没有意义,因为签名表达的意义是特定的签名者对特定的消息进行的签名,即使被复制也并不会改变签名者和消息的内容。...的确,删除了带有数字签名的借据也无法保证确实已经作废,因为你不知道是否还保留有副本,那么要作废带有数字签名的借据,可以重新创建一份相当于收据的文书,并让对方在这份文书上数字签名。...或者在消息中声明该消息的有效期并加上数字签名,证书部分内容就是如此。 数字签名能够替代签名吗?...当然,我国《中华人民共和国电子签名法》,美国也有E-SIGN法案,日本有《电子签名及其认证业务的相关法律》,这些法律为将电子手段实现的签名与手写的签名和盖章同等处理提供了法律基础。

1.2K20

CA数字签名的由来

CA数字签名的由来 上一次内容我们介绍了TLS加密原理,为什么要加密通信呢?是因为我们不希望我们的个人信息被明文传播,任何一个人只要截断我们的物理线路或者入侵到我们网络中,就能获取所有的信息。...这就要引入CA数字签名了。 鲍勃有两把钥匙,一把是公钥,另一把是私钥。 ? 鲍勃把公钥送给他的朋友们----帕蒂、道格、苏珊----每人一把。 ?...然后,鲍勃使用私钥,对这个摘要加密,生成"数字签名"(signature)。 ? 鲍勃将这个签名,附在信件下面,一起发给苏珊。 ? 苏珊收信后,取下数字签名,用鲍勃的公钥解密,得到信件的摘要。...以后再给苏珊写信,只要在签名的同时,再附上数字证书就行了。 ? 苏珊收信后,用CA的公钥解开数字证书,就可以拿到鲍勃真实的公钥了,然后就能证明"数字签名"是否真的是鲍勃签的。 ?...这样,申请者拿到证书后,在发送数据时,用自己的私钥生成签名,将签名、证书和发送内容一起发给对方,对方拿到了证书后,需要对证书解密以获取到证书中的公钥,解密需要用到CA机构的”统一密钥对“中的公钥,这个公钥也就是我们常说的

1.3K10

【翻译】数字签名是什么?

前情提要 在写上一篇《Android Keystore漫谈》时对数字证书和数字签名的区别感觉模棱两可,于是网上找了找资料发现了一篇简单易懂的文章,对证书和签名有了一个较清晰的概念: 数字签名: 信息实体经...HASH函数后得到一个摘要,摘要经过私钥加密后形成数字签名。...虽然CSDN博客上已经有人对这篇文章翻译过,但是感觉还是有必要自己翻译一遍,一来作为备份,二来也希望可以为用户们认识数字签名提供一个参考。 翻译内容 主标题:数字签名是什么?...Bob给Susan回信约好午餐的时间,但是担心回信在回寄过程中被篡改,于是采用数字签名的方式。数字签名相当于Bob的私人印章,是独一无二、不可以仿冒的,可以检查信的内容有没有被篡改。 ?...那么这个数字签名是怎么签名的呢?Bob使用HASH算法对信的内容进行打乱,打乱后的内容称之为消息摘要(这一打乱的过程是不可逆的)。 ? 消息摘要经过Bob的私钥加密就变成了数字签名。 ?

53740

消息摘要与数字签名

摘要: b8-eUifaOJ5OUFweOoq08HbGAMsIpC3Nt-Yv-S91Yr4 数字签名 算法简述 数字签名算法可以看做是一种带有密钥的消息摘要算法,并且这种密钥包含了公钥和私钥。...也就是说,数字签名算法是非对称加密算法和消息摘要算法的结合体。 特点 数字签名算法要求能够验证数据完整性、认证数据来源,并起到抗否认的作用。...原理 数字签名算法包含签名和验证两项操作,遵循私钥签名,公钥验证的方式。 签名时要使用私钥和待签名数据,验证时则需要公钥、签名值和待签名数据,其核心算法主要是消息摘要算法。 ​ ?...常用算法 RSA、DSA、ECDSA 算法实现 DSA的范例 数字签名有两个流程:签名和验证。 它们的前提都是要有一个公钥、密钥对。..."数字签名匹配" : "数字签名不匹配"; System.out.println("数字签名:" + Base64.encodeBase64URLSafeString(sign)); System.out.println

1K80

浅谈程序的数字签名

理论基础 数字签名它是基于非对称密钥加密技术与数字摘要算法技术的应用,它是一个包含电子文件信息以及发送者身份,并能够鉴别发送者身份以及发送信息是否被篡改的一段数字串。...一段数字签名数字串,它包含电子文件经过Hash编码后产生的数字摘要,即一个Hash函数值以及发送者的公钥和私钥三部分内容。...数字签名(又称公钥数字签名)是只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明。...它是一种类似写在纸上的普通的物理签名,但是在使用了公钥加密领域的技术来实现的,用于鉴别数字信息的方法。 (图片来源网络) 数字签名方案是一种以电子形式存储消息签名的方法。...window数字签名 Window的数字签名是微软的一种安全保障机制。 Window数字签名中的签名证书用于验证开发者身份真实性、保护代码的完整性。

1.4K31

使用openssl演练数字签名

resp.Body.Close() body, err := ioutil.ReadAll(resp.Body) fmt.Println(string(body)) } 生成密钥和数字签名方式如下...2048 #生成server端私钥 openssl req -new -key server.key -subj "/CN=charlie.com" -out server.csr #生成签名请求...x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt -days 5000 #生成CA签名的...server端数字签名 注意:-subj subj选项表示证书拥有者的信息值,取代证书请求文件中的申请者的信息值。...查看CA的数字证书,可以看到CA为自签发的,签发者和使用者是同一人,此外在数字签名文件中可以看到CA的公钥信息,使用该公钥后续可以验证CA签发的文件的正确性 再看下server端的数字证书,该数字证书经过

45420
领券