学习
实践
活动
工具
TVP
写文章

密码技术数字签名

前面我们总结过: 密码技术之消息认证码 密码技术之单向散列函数 我们知道,散列函数解决了消息的完整性防止篡改,消息认证码解决的是消息发送者是否被伪装的问题,但是消息的防抵赖性如何保证呢? 的确,删除了带有数字签名的借据也无法保证确实已经作废,因为你不知道是否还保留有副本,那么要作废带有数字签名的借据,可以重新创建一份相当于收据的文书,并让对方在这份文书上数字签名。 或者在消息中声明该消息的有效期并加上数字签名,证书部分内容就是如此。 数字签名能够替代签名吗? 对数字签名的攻击 除了之前介绍的利用数字签名攻击公钥密码之外,对单向散列函数的攻击,以及中间人攻击。 我们必须用社会学的领域思考,需要让公钥及其数字签名技术成为一种社会性的基础设施,也就是PKI公钥基础设施。

56220

Applet 数字签名技术完全攻略

事实上根本不是必需,仅仅要client点了俺们的数字签名,俺们可就什么都能干了) ~oo~          简单说下 Applet 数字签名是怎么回事: 就是applet 利用 jdk 里的 工具   后记 :  写到这里大家应该都会知道怎么实现 applet 数字签名了,假设有什么疑问能够直接在 csdn抓我,或者发送邮件到   lixin_0411@126.com,  希望有log 日志那块配置

12130
  • 广告
    关闭

    2022腾讯全球数字生态大会

    11月30-12月1日,邀您一起“数实创新,产业共进”!

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

    数字签名

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

    23850

    数字签名

    我们需要数字签名 之前的文章我们讲了MAC(Message Authentication Code)消息认证码,MAC是认证消息的完整性的技术数字签名其实就是公钥密码的反向应用,下面我们看看两种的不同: 名称 私钥 公钥 公钥密码 接受者解密时使用 发送者加密时使用 数字签名 签名者生成签名时使用 验证者验证签名时使用 谁持有密钥? 个人持有 主要需要,任何人都可以持有 数字签名的方法 通常来说数字签名一般有两种方式: 直接对消息进行签名 对消息的hash值进行签名 下面我们分别来介绍两种方式。 数字签名可以替代现实生活中的签名吗? 我们讲解了怎么实现数字签名,我们也可能听说在现实生活中有电子签名这个东西。 数字签名有很多技术上的优点,不需要物理交互就可以签订合同,并可以对任何数据进行签名。 数字签名无法解决的问题 使用数字签名我们可以防止伪造和篡改,也无法防止否认。但是还需要一个大前提就是验证签名的公钥必须是真正属于发送者。

    54220

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

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

    53120

    数字签名由数字摘要和对称加密技术组成_为何对称加密不适用于数字签名

    信息摘要、数字签名、数字证书、对称加密与非对称加密详解 防盗声明:其他网站发现均为盗版 本文唯一链接:https://blog.csdn.net/weixin_44331765/article/details 场景3:使用非对称加密 非对称加密:使用公钥加密(其实这里不叫加密,因为是公钥,所以是公开的秘密,所以这里叫签名,也即是数字签名),只有私钥能解密,同理使用私钥加密的,只能使用公钥解密。 于是就有了信息摘要,我们提出其中的几百个字使用私钥进行签名也即是数字签名,就好比论文中的摘要,只要读几百字的摘要我们就知道这个论文讲的什么了。

    7620

    数字签名-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数字签名实现

    1.9K30

    图说“数字签名

    前言 虽然很久以前就了解了数字签名,但之前突然被一个非程序员朋友问起什么是数字签名时,依然解释得很费力。 近日找图片素材看到Peggy_Marco大神的众多人物形象图时,有了用图解说数字签名的想法,于是决定借用大神的人物形象图,尝试用图解释一下说什么是数字签名。 1、图说数字签名 关于数字签名这事,还得从当年小明向王老板借钱说起...... image.png image.png 1.1、照搬传统 image.png 小明觉得这很简单 image.png 2、数字签名小结 2.1、法律意义上的数字签名 《 中华人民共和国电子签名法 》第二条本法所称电子签名,是指数据电文中以电子形式所含、所附用于识别签名人身份并表明签名人认可其中内容的数据 2.2、数字签名要解决的问题 从电子签名法所描述的可靠电子签名来看,数字签名要解决的问题可归纳为两个: (1)对签名人身份的确认,且签名人身份不可抵赖 (2)签名人对签名内容的认可,且签名内容不可篡改

    59262

    聊聊数字签名(下)

    上篇文章浅尝辄止,想了一个场景来讲述对称密钥以及非对称密钥解决了什么问题,以及各自有什么优缺点,本文用实际的案例来分析签名能解决什么问题,以及该如何正确的签名。

    13620

    安卓数字签名

    安装APP失败 猜想是没有数字签名的问题,一个ApK如果要安装到手机上,必须要一个数字签名,不过你是debug也好,release也好,这个数字签名来源一个叫做证书的东西,在我们debug的时候,开发工具已经帮我们生成了一个叫做 创建数字签名证书 ? 创建证书 D. 选择需要的发布的模型 ? 选择需要的发布的模型 E. 选择发布的版本,然后完成 ? 选择发布的版本 F. 寻找发布的APP的位置 ? 寻找APP位置1 ?

    32341

    聊聊数字签名(上)

    总结 对称加密 采用了对称密码编码技术,特点是文件加密和解密使用相同的密钥加密,对称加密算法使用起来简单快捷,密钥较短,破译困难,但当对称加密算法应用在微信支付这样的电子商务过程中存在几个问题: 1)平台方和商户之间不可能线下面对面协商密钥 2)为保证安全平台方需要对于每一个合作者都使用不同的密钥,需要管理大量的密钥; 3)对称加密算法不能防抵赖,能够实现加密但无法验证发送者身份; 非对称加密 非对称加密算法的典型应用是数字签名,需要公开密钥和私有密钥两个密钥

    8620

    数字签名背后原理

    最近在学习区块链的知识,觉得其中的数字签名挺有意思的,想了解一下背后的大致数学原理。 当然了,数字签名有很多种,一般采用非对称密钥密码体制来实现,常见的非对称加密算法有RSA和椭圆曲线加密算法,下面记录一下基于这两种算法的数字签名大致原理,注意,本文并不是在强调如何调用高级API,而是打算从数学原理出发 RSA数字签名 该算法的数字签名原理比较简单,在此之前,我希望你了解一下什么是RSA算法,可以在之前的【文章】中找到该算法的介绍。 假设阿珍和阿强在通信,双方持有自己的私钥和对方的公钥。 她做一下运算: m1=c^e\pmod{n}=m^{d*e}\pmod{n}\tag{2} 根据式子(1),我们很容易可以得到: m1=m\pmod{n} 因此她直接将之前得到的消息计算哈希值,跟数字签名部分进行对比 椭圆曲线算法数字签名 在此之前,我们先来了解一下【椭圆曲线加密原理】,其也是利用了“根据公钥,难以反推私钥”来达到安全目的,相比于RSA,可以使用更短的密钥实现同等的安全强度,区块链中用的数字签名算法就是椭圆曲线加密算法

    8730

    数字签名是什么?

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

    49150

    数字签名是什么?

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

    36950

    CA数字签名的由来

    CA数字签名的由来 上一次内容我们介绍了TLS加密原理,为什么要加密通信呢?是因为我们不希望我们的个人信息被明文传播,任何一个人只要截断我们的物理线路或者入侵到我们网络中,就能获取所有的信息。 这就要引入CA数字签名了。 鲍勃有两把钥匙,一把是公钥,另一把是私钥。 ? 鲍勃把公钥送给他的朋友们----帕蒂、道格、苏珊----每人一把。 ? 然后,鲍勃使用私钥,对这个摘要加密,生成"数字签名"(signature)。 ? 鲍勃将这个签名,附在信件下面,一起发给苏珊。 ? 苏珊收信后,取下数字签名,用鲍勃的公钥解密,得到信件的摘要。 苏珊收信后,用CA的公钥解开数字证书,就可以拿到鲍勃真实的公钥了,然后就能证明"数字签名"是否真的是鲍勃签的。 ? 下面,我们看一个应用"数字证书"的实例:https协议。这个协议主要用于网页加密。

    67210

    使用openssl演练数字签名

    resp.Body.Close() body, err := ioutil.ReadAll(resp.Body) fmt.Println(string(body)) } 生成密钥和数字签名方式如下 in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt -days 5000 #生成CA签名的server端数字签名 查看CA的数字证书,可以看到CA为自签发的,签发者和使用者是同一人,此外在数字签名文件中可以看到CA的公钥信息,使用该公钥后续可以验证CA签发的文件的正确性 再看下server端的数字证书,该数字证书经过

    22220

    浅谈程序的数字签名

    理论基础 数字签名它是基于非对称密钥加密技术与数字摘要算法技术的应用,它是一个包含电子文件信息以及发送者身份,并能够鉴别发送者身份以及发送信息是否被篡改的一段数字串。 数字签名(又称公钥数字签名)是只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明。 它是一种类似写在纸上的普通的物理签名,但是在使用了公钥加密领域的技术来实现的,用于鉴别数字信息的方法。 (图片来源网络) 数字签名方案是一种以电子形式存储消息签名的方法。 window数字签名 Window的数字签名是微软的一种安全保障机制。 Window数字签名中的签名证书用于验证开发者身份真实性、保护代码的完整性。 用户下载软件时,能通过数字签名验证软件来源可信,确认软件、代码没有被非法篡改或植入病毒。所以,软件开发者会在软件发行前使用代码签名证书为软件代码添加数字签名

    9430

    扫码关注腾讯云开发者

    领取腾讯云代金券