imtoken官方版下载安卓最新版|数字签名技术

作者: imtoken官方版下载安卓最新版
2024-03-08 03:27:54

数字签名_百度百科

_百度百科 网页新闻贴吧知道网盘图片视频地图文库资讯采购百科百度首页登录注册进入词条全站搜索帮助首页秒懂百科特色百科知识专题加入百科百科团队权威合作下载百科APP个人中心数字签名播报讨论上传视频科技名词收藏查看我的收藏0有用+10本词条由“科普中国”科学百科词条编写与应用工作项目 审核 。数字签名(又称公钥数字签名)是只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明。它是一种类似写在纸上的普通的物理签名,但是在使用了公钥加密领域的技术来实现的,用于鉴别数字信息的方法。一套数字签名通常定义两种互补的运算,一个用于签名,另一个用于验证。数字签名是非对称密钥加密技术与数字摘要技术的应用。 [1]中文名数字签名外文名 digital signature;digitally signed别    名公钥数字签名用    途鉴别数字信息包含运算两种互补的运算,一个用于签名,另一个用于验证技    术非对称密钥加密技术与数字摘要技术目录1原理2特点▪鉴权▪完整性▪不可抵赖3主要功能4签名过程5使用方法6邮件证书7实现方法8签名步骤▪Java签名步骤▪office签名步骤9应用例子10区分攻击▪异常结果▪正常结果11网络安全原理播报编辑数字签名的文件的完整性是很容易验证的(不需要骑缝章,骑缝签名,也不需要笔迹专家),而且数字签名具有不可抵赖性(不可否认性)。 [1]简单地说,所谓数字签名就是附加在数据单元上的一些数据,或是对数据单元所作的密码变换。这种数据或变换允许数据单元的接收者用以确认数据单元的来源和数据单元的完整性并保护数据,防止被人(例如接收者)进行伪造。它是对电子形式的消息进行签名的一种方法,一个签名消息能在一个通信网络中传输。基于公钥密码体制和私钥密码体制都可以获得数字签名,主要是基于公钥密码体制的数字签名。包括普通数字签名和特殊数字签名。普通数字签名算法有RSA、ElGamal、Fiat-Shamir、Guillou- Quisquarter、Schnorr、Ong-Schnorr-Shamir数字签名算法、Des/DSA,椭圆曲线数字签名算法和有限自动机数字签名算法等。特殊数字签名有盲签名、代理签名、群签名、不可否认签名、公平盲签名、门限签名、具有消息恢复功能的签名等,它与具体应用环境密切相关。显然,数字签名的应用涉及到法律问题,美国联邦政府基于有限域上的离散对数问题制定了自己的数字签名标准(DSS)。 [1]特点播报编辑每个人都有一对“钥匙”(数字身份),其中一个只有她/他本人知道(私钥),另一个公开的(公钥)。签名的时候用私钥,验证签名的时候用公钥。又因为任何人都可以落款声称她/他就是你,因此公钥必须向接受者信任的人(身份认证机构)来注册。注册后身份认证机构给你发一数字证书。对文件签名后,你把此数字证书连同文件及签名一起发给接受者,接受者向身份认证机构求证是否真地是用你的密钥签发的文件。 [2]在通讯中使用数字签名一般具有以下特点: [2]鉴权公钥加密系统允许任何人在发送信息时使用公钥进行加密,接收信息时使用私钥解密。当然,接收者不可能百分之百确信发送者的真实身份,而只能在密码系统未被破译的情况下才有理由确信。 [2]鉴权的重要性在财务数据上表现得尤为突出。举个例子,假设一家银行将指令由它的分行传输到它的中央管理系统,指令的格式是(a,b),其中a是账户的账号,而b是账户的现有金额。这时一位远程客户可以先存入100元,观察传输的结果,然后接二连三的发送格式为(a,b)的指令。这种方法被称作重放攻击。 [2]完整性传输数据的双方都总希望确认消息未在传输的过程中被修改。加密使得第三方想要读取数据十分困难,然而第三方仍然能采取可行的方法在传输的过程中修改数据。一个通俗的例子就是同形攻击:回想一下,还是上面的那家银行从它的分行向它的中央管理系统发送格式为(a,b)的指令,其中a是账号,而b是账户中的金额。一个远程客户可以先存100元,然后拦截传输结果,再传输(a,b),这样他就立刻变成百万富翁了。 [2]不可抵赖在密文背景下,抵赖这个词指的是不承认与消息有关的举动(即声称消息来自第三方)。消息的接收方可以通过数字签名来防止所有后续的抵赖行为,因为接收方可以出示签名给别人看来证明信息的来源。 [2]主要功能播报编辑网络的安全,主要是网络信息安全,需要取相应的安全技术措施,提供适合的安全服务。数字签名机制作为保障网络信息安全的手段之一,可以解决伪造、抵赖、冒充和篡改问题。数字签名的目的之一就是在网络环境中代替传统的手工签字与印章,有着重要作用: [3](1)防冒充(伪造)。私有密钥只有签名者自己知道,所以其他人不可能构造出正确的。 [3](2)可鉴别身份。由于传统的手工签名一般是双方直接见面的,身份自可一清二楚。在网络环境中,接收方必须能够鉴别发送方所宣称的身份。 [3](3)防篡改(防破坏信息的完整性)。对于传统的手工签字,假如要签署一份200页的合同,是仅仅在合同末尾签名呢?还是对每一页都签名?如果仅在合同末尾签名,对方会不会偷换其中的几页? 而对于数字签名,签名与原有文件已经形成了一个混合的整体数据,不可能被篡改,从而保证了数据的完整性。 [3](4)防重放。如在日常生活中,A向B借了钱,同时写了一张借条给B,当A还钱的候,肯定要向B索回他写的借条撕毁,不然,恐怕他会再次用借条要求A还钱。在数字签名中,如果采用了对签名报文添加流水号、时间戳等技术,可以防止重放攻击。 [3](5)防抵赖。如前所述,数字签名可以鉴别身份,不可能冒充伪造,那么,只要保好签名的报文,就好似保存好了手工签署的合同文本,也就是保留了证据,签名者就无法抵赖。那如果接收者确已收到对方的签名报文,却抵赖没有收到呢? 要预防接收者的抵赖。在数字签名体制中,要求接收者返回一个自己的签名表示收到的报文,给对方或者第三方或者引入第三方机制。如此操作,双方均不可抵赖。 [3](6)机密性(保密性)。手工签字的文件(如同文本)是不具备保密性的,文件一旦丢失,其中的信息就极可能泄露。数字签名可以加密要签名消息的杂凑值,不具备对消息本身进行加密,当然,如果签名的报名不要求机密性,也可以不用加密。 [3]保证信息传输的完整性、发送者的身份认证、防止交易中的抵赖发生。 [4]数字签名技术是将摘要信息用发送者的私钥加密,与原文一起传送给接收者。接收者用发送者的公钥解密被加密的摘要信息,然后用HASH函数对收到的原文产生一个摘要信息 [8],与解密的摘要信息对比。如果相同,则说明收到的信息是完整的,在传输过程中没有被修改,否则说明信息被修改过,因此数字签名能够验证信息的完整性。 [4]数字签名是个加密的过程,数字签名验证是个解密的过程。 [4]签名过程播报编辑发送报文时,发送方用一个哈希函数从报文文本中生成报文摘要,然后用发送方的私钥对这个摘要进行加密,这个加密后的摘要将作为报文的数字签名和报文一起发送给接收方,接收方首先用与发送方一样的哈希函数从接收到的原始报文中计算出报文摘要,接着再公钥来对报文附加的数字签名进行解密,如果这两个摘要相同、那么接收方就能确认该报文是发送方的。 [5]数字签名有两种功效:一是能确定消息确实是由发送方签名并发出来的,因为别人假冒不了发送方的签名。二是数字签名能确定消息的完整性。因为数字签名的特点是它代表了文件的特征,文件如果发生改变,数字摘要的值也将发生变化。不同的文件将得到不同的数字摘要。 一次数字签名涉及到一个哈希函数、接收者的公钥、发送方的私钥。 [5]使用方法播报编辑你可以对你发出的每一封电子邮件进行数字签名。这不是指落款,普遍把落款讹误成签名。在我国大陆,数字签名是具法律效力的,正在被普遍使用。2000年,中华人民共和国的新《合同法》首次确认了电子合同、电子签名的法律效力。2005年4月1日起,中华人民共和国首部《电子签名法》正式实施。邮件证书播报编辑具有数字签名功能的个人安全邮件证书是用户证书的一种,是指单位用户收发电子邮件时采用证书机制保证安全所必须具备的证书。个人安全电子邮件证书是符合x.509标准的数字安全证书,结合数字证书和S/MIME技术对普通电子邮件做加密和数字签名处理,确保电子邮件内容的安全性、机密性、发件人身份确认性和不可抵赖性。 具有数字签名功能的 个人安全邮件证书中包含证书持有人的电子邮件地址、证书持有人的公钥、颁发者(CA)以及颁发者对该证书的签名。个人安全邮件证书功能的实现决定于用户使用的邮件系统是否支持相应功能。 MS Outlook 、Outlook Express、Foxmail及CA安全电子邮件系统均支持相应功能。使用个人安全邮件证书可以收发加密和数字签名邮件,保证电子邮件传输中的机密性、完整性和不可否认性,确保电子邮件通信各方身份的真实性。 [6]实现方法播报编辑数字签名算法依靠公钥加密技术来实现的。在公钥加密技术里,每一个使用者有一对密钥:一把公钥和一把私钥。公钥可以自由发布,但私钥则秘密保存;还有一个要求就是要让通过公钥推算出私钥的做法不可能实现。 [7]普通的数字签名算法包括三种算法: [7]1.密码生成算法;2.标记算法;3.验证算法。数字签名技术大多基于哈希摘要和非对称密钥加密体制来实现。如果签名者想要对某个文件进行数字签名,他必须首先从可信的第三方机构(数字证书认证中心CA)取得私钥和公钥,这需要用到PKI技术。 [7]1.有哈希算法的数字签名与验证图1 数字签名及其验证哈希函数是一种“压缩函数”,利用哈希函数可以把任意长度的输入经由散列函数算法变换成固定长度的输出,该输出的哈希值就是消息摘要,也称数字摘要。在正式的数字签名中,发送方首先对发送文件采用哈希算法,得到一个固定长度的消息摘要( Message Digest);再用自己的私钥( Secret key,SK)对消息摘要进行签名,形成发送方的数字签名。数字签名将作为队件和原文一起发送给接收方;接收方首先用发送方的公钥对数字签名进行解密得到发送方的数字摘要,然后用相同的哈希函数对原文进行哈希计算,得到一个新的消息摘要,最后将消息摘要与收到的消息摘要做比较。具体过程如图1所示。 [7]2.基于非对称密钥加密体制的数字签名与验证图2 基于非对称密钥的数字签名与验证发送方首先将原文用自己的私钥加密得到数字签名,然后将原文和数字签名一起发送给接收方。接收方用发送方的公钥对数字签名进行解密,最后与原文进行比较,如图2所示数字签名是电子商务、电子政务中应用普遍、技术成熟、可操作性强的一种电子签名方法。它采用了规范化的程序和科学化的方法,用于鉴定签名人的身份以及对一项电子数据内容的认可。使用数字签名技术能够验证文件的原文在传输过程中有无变动,确保传输电子文件的完整性、真实性和不可抵赖性。 [7]签名步骤播报编辑Java签名步骤1、将applet的class文件打包成*.jar(可以在命令行中输入jar查看帮助) [7]2、首先我们要生成一个keystore 否则在签名的时候报如下错误 [7]jarsigner 错误: java.lang.RuntimeException: 密钥库装入: C:\Documents and Settings\ij2ee\.keystore (系统找不到指定的文件。). (这边的ij2ee 是当前系统用户名) [7]生成keystore的语句:keytool -genkey -alias 别名你可以自己写 -keyalg RSA -keystore .keystore [7]下面是会出现的数字签名的一些步骤操作: [7]输入keystore密码:再次输入新密码:您的名字与姓氏是什么?[Unknown]: ij2ee您的组织单位名称是什么?[Unknown]: mtk您的组织名称是什么?[Unknown]: mtk您所在的城市或区域名称是什么?[Unknown]: suzhou您所在的州或省份名称是什么?[Unknown]: jiangsu该单位的两字母国家代码是什么[Unknown]: cnCN=ij2ee, OU=mtk, O=mtk, L=suzhou, ST=jiangsu, C=cn 正确吗?[否]: y输入的主密码(如果和 keystore密码相同,按回车):这时候会在jdk的bin目录下生成 .keystore 。把这个.keystore文件移动到 C:\Documents and Settings\当前系统用户的目录下面。3、创建一个数字证书 [7]在命令行中输入如下指令,peakCA和peakCALib自己起名字好了,3650是有效天数,就是10年左右,在创建证书的的时候,需要填写证书的一些信息和证书对应的私钥密码。 [7]keytool -genkey -alias peakCA -keyalg RSA -keysize 1024 -keystore peakCALib -validity 36504、将证书导出到证书文件中 [7]在命令行中输入如下指令,peakCA和peakCALib任意起名字,******是输入的密码。 [7]keytool -export -alias peakCA -file peakCA.cer -keystore peakCALib -storepass ****** -rfc5、授权jar文件,在命令行中输入如下指令 [7]jarsigner -keystore peakCALib myapplet.jar peakCAoffice签名步骤1、要保护文档内容的真实性,可以添加不可见的数字签名。 已签名文档的底部有“签名”按钮。 [7]2、单击“文件”选项卡。 [7]3、单击“信息”。 [7]4、在“权限”下,单击“保护文档”、“保护工作簿”或“保护演示文稿”。 [7]5、单击“添加数字签名”。 [7]6、阅读 Word、Excel 或 PowerPoint中显示的消息,然后单击“确定”。 [7]7、在“签名”对话框中的“签署此文档的目的”框中,键入目的。 [7]8、单击“签名”。 [7]9、在对文件进行数字签名后,将出现“签名”按钮,并且文件会变为只读以防止修改。 [7]应用例子播报编辑假如 Alice 向 Bob 传送数字信息,为了保证信息传送的保密性、真实性、完整性和不可否认性,需要对传送的信息进行数字加密和签名,其传送过程为: [3]1.Alice 准备好要传送的数字信息(明文); [3]2.Alice 对数字信息进行哈希运算,得到一个信息摘要; [3]3.Alice 用自己的私钥对信息摘要进行加密得到 Alice 的数字签名,并将其附在数字信息上; [3]4.Alice 随机产生一个加密密钥,并用此密码对要发送的信息进行加密,形成密文; [3]5.Alice 用 Bob 的公钥对刚才随机产生的加密密钥进行加密,将加密后的 DES密钥连同密文一起传送给Bob; [3]6.Bob 收到 Alice 传送来的密文和加密过的 DES 密钥,先用自己的私钥对加密的 DES 密钥进行解密,得到 Alice随机产生的加密密钥; [3]7.Bob 然后用随机密钥对收到的密文进行解密,得到明文的数字信息,然后将随机密钥抛弃; [3]8.Bob 用 Alice 的公钥对 Alice 的数字签名进行解密,得到信息摘要; [3]9.Bob 用相同的哈希算法对收到的明文再进行一次哈希运算,得到一个新的信息摘要; [3]10.Bob 将收到的信息摘要和新产生的信息摘要进行比较,如果一致,说明收到的信息没有被修改过。 [3]区分攻击播报编辑如何区分数字签名攻击呢?有两个方法: [7]1. 查看数字签名的详细信息,我们应该查看该数字签名的详细信息,点击“详细信息”按钮即可。 [7]我们会发现正常EXE和感染(或捆绑木马)后的EXE数字签名的区别。正常EXE的数字签名详细信息。被篡改后的EXE数字签名信息无效。 [7]2.使用数字签名验证程序sigcheck.exe (可以百度一下找这个工具,著名系统工具包Sysinternals Suite的组件之一。) [7]异常结果数字签名异常的结果为: [7]C:\Documents and Settings\litiejun\??\modify.exe:Verified: UnsignedFile date: 15:46 2008-5-23Publisher: n/aDescription: n/aProduct: n/aVersion: n/aFile version: n/a正常结果数字签名正常的结果为: [7]C:\Documents and Settings\litiejun\??\che.exe:Verified: SignedSigning date: 16:28 2008-4-29Publisher: n/aDescription: n/aProduct: n/aVersion: n/aFile version: n/a网络安全播报编辑2023年11月27日报道,国家安全部表示网络空间看似无形隐匿,实则谍影重重,充满硝烟暗战,数字签名等网络资产及服务,都有可能被境外间谍情报机关利用实施网络攻击窃密活动。 [9]2024年1月2日,印度“News9Live”新闻网报道称,相机制造巨头尼康、索尼和佳能计划推出新技术,对抗深度伪造。 [10]新手上路成长任务编辑入门编辑规则本人编辑我有疑问内容质疑在线客服官方贴吧意见反馈投诉建议举报不良信息未通过词条申诉投诉侵权信息封禁查询与解封©2024 Baidu 使用百度前必读 | 百科协议 | 隐私政策 | 百度百科合作平台 | 京ICP证030173号 京公网安备110000020000

数字签名 - 知乎

数字签名 - 知乎切换模式写文章登录/注册数字签名知乎用户yYCR7e公开密钥加密技术有两大应用,之前已经聊了一个,就是加密通信,本文来聊另外一个:数字签名。数字签名的基本作用跟现实世界的纸笔形式的签名有什么相同点和不同点,数字签名的基本原理和流程又是什么呢?基本原理先说数字签名的基本原理。数字签名过程跟加密通信有着一定的对称性,这种对称有着一种逻辑上的美。加密通信是用公钥进行加密,而用私钥进行解密。而数字签名刚好相反,是采用私钥加密,公钥解密。对于加密通信,公钥加密过程就是通过加密算法把信息加密成密文,私钥解密过程就是通过解密算法解密密文。而对于数字签名,私钥加密过程是通过签名算法来生成数字签名的过程,而公钥解密过程是通过验证算法来确定数字签名是不是有私钥持有者签署的。可以看到,加密算法,解密算法,签名算法,验证算法,对称性是很明显的。数字签名的主要的作用是认证签署人身份,说得具体点,就是让所有人能够确认这个数字签名是不是由私钥的持有人创建的。数字签名是由签名算法去生成的,签名算法的输入有两个,一个是私钥,另一个是被签署的信息,输出的一个字符串就是数字签名了。签名到底是不是由私钥持有人签署的,要通过验证算法判断。验证算法有三个输入,一个是信息本身,另外一个是数字签名,第三个是公钥,输出的结果就是验证成功或者验证失败。数字签名过程中,私钥是“签名 key”,公钥是“验证 key”。所以说数字签名的原理是非常清晰的,因为数字签名本身跟加密通信形成一个对称关系,而数字签名自己的签名过程跟验证过程,也是个对称关系。把握这种对称性,就比较容易记住基本原理了。基本流程静态的基本原理懂了,咱们再来从时间维度看看数字签名动态流程。Alice 要签署一个文件,于是她就拿出自己的私钥,执行签名算法,得到数字签名。那么其他人如何去验证这个数字签名的确出自 Alice 呢?首先,Alice 要把自己的公钥放到一个大家都可以访问到的服务器上,这样其他人都可以获得 Alice 的公钥,大家把文件,数字签名以及公钥下载到自己的计算机上,调用验证算法,就可以判断这个文件是不是 Alice 签署的了。不管是签名算法还是验证算法都是全球公开的,每个人都可以在自己的计算机上安装软件来执行这两个算法。这就是一个 Alice 签署文件,其他人验证签名的完整过程了。这个过程中有一点要注意,就是签名本身是不会加密文件本身的。在底层,签名过程其实是加密了文件的哈希值,总之签名的目的不在于加密文件信息,而在于生成数字签名。实际作用最后来聊聊数字签名的作用。数字签名有三大作用,第一个是认证,第二个是防止抵赖,第三个是保证文件完整性,也就是没有被篡改过。先看第一个认证,意思就是确认签署人身份,这个跟纸笔签名的作用是一致的。再看第二个防止抵赖,同样是纸笔签名也拥有的特性,一份合同签署了,就要承担责任,白纸黑字,不能耍赖。第三个作用是保证文件没有被篡改过,这个作用纸笔签名很难保证,比如签名只签署了最后一页,那么如果有人想悄悄换掉了前几页的内容,签名本身是阻止不了的。但是数字签名就可以,因为数字签名是由两个输入运算得出的,一个是私钥,另一个就是文件,所以如果在验证过程中,发现文件有改动,验证会失败。这个很类似于现实世界签合同的时候,有时候需要故意用签名或者图章覆盖有文字的区域,或者在写信的时候,给信封加上蜡封,这些措施也都是为了防篡改。这就是数字签名的三大作用,主要用在各种防伪造场合,在世界上很多国家,数字签名都是有法律效力的。另外要注意,数字签名属于电子签名的一种,但并不是所有的电子签名都是数字签名,这两个概念要区分一下。总结关于数字签名,本节就聊这么多。数字签名是公钥加密技术的两大应用之一。主要采用了私钥加密,公钥解密的方式,文件签署者用私钥签署文件,就表示他认可了这个文件的内容。要验证数字签名,只需要签名人公布自己的公钥即可,其他人通过验证数字签名即可验证文件是私钥签署的。签署人不需要暴露自己的私钥,就可以间接证明自己拥有私钥。除了认证签署人身份,数字签名还有两个作用,分别是防止抵赖和保证文件完整性。参考:非常感谢您对 IPFS&Filecoin 项目的持续支持。我们很高兴继续与您一起,为人类信息建立一个强大的,去中心化和高效的基础。FilCloud 帮你迅速了解 IPFS 领域的热点技术和应用公众号:filcloud 发布于 2020-01-10 15:40加密/解密密码学数据加密​赞同 20​​1 条评论​分享​喜欢​收藏​申请

数字签名原理及作用 - 知乎

数字签名原理及作用 - 知乎切换模式写文章登录/注册数字签名原理及作用长陵夜语喜爱刀刀狗的西席先生---易维信evtrust.com数字签名是什么?数字签名就是附加在数据单元上的一些数据,或是对数据单元所作的密码变换。这种数据或变换允许数据单元的接收者用以确认数据单元的来源和数据单元的完整性并保护数据,防止被人(例如接收者)进行伪造。它是对电子形式的消息进行签名的一种方法,一个签名消息能在一个通信网络中传输。基于公钥密码体制和私钥密码体制都可以获得数字签名,主要是基于公钥密码体制的数字签名。数字签名是个加密的过程,数字签名验证是个解密的过程。数字签名的原理是?数字签名技术是将原文通过特定HASH函数得到的摘要信息用发送者的私钥加密,与原文一起传送给接收者。接收者只有用发送者的公钥才能解密被加密的摘要信息,然后用HASH函数对收到的原文提炼出一个摘要信息,与解密得到的摘要进行对比。哪怕只是一个字符不相同,用HASH函数生成的摘要就一定不同。如果比对结果一致,则说明收到的信息是完整的,在传输过程中没有被修改,否则信息一定被修改过,因此数字签名能够验证信息的完整性。数字签名的作用是?一是能确定消息的不可抵赖性,因为他人假冒不了发送方的私钥签名。发送方是用自己的私钥对信息进行加密的,只有使用发送方的公钥才能解密。二是数字签名能保障消息的完整性。一次数字签名采用一个特定的哈希函数,它对不同文件产生的数字摘要的值也是不相同的。编辑于 2017-02-09 16:32数字签名​赞同 112​​4 条评论​分享​喜欢​收藏​申请

什么是数字签名_数字签名简介_数字签名的优势以及应用场景-腾讯云开发者社区

字签名_数字签名简介_数字签名的优势以及应用场景-腾讯云开发者社区腾讯云开发者社区文档建议反馈控制台首页学习活动专区工具TVP最新优惠活动技术百科搜索技术百科搜索技术百科搜索关闭发布登录/注册首页学习活动专区工具TVP最新优惠活动返回腾讯云官网技术百科首页 >数字签名数字签名修改于 2023-07-24 17:37:321062概述数字签名是一种用于保证数字信息的完整性、真实性和不可抵赖性的技术。数字签名通常是由发送方使用私钥对消息进行加密,生成一个特定的签名值,并将签名值与消息一起发送给接收方。接收方可以使用发送方的公钥对签名值进行解密和验证,从而确定消息的真实性和完整性。数字签名的作用是什么? 数据完整性保护数字签名可以保证数据在传输过程中不被篡改,接收方可以通过验证数字签名来确定数据的完整性和真实性。 数据来源鉴别数字签名可以保证数据的来源不被伪造,接收方可以通过验证数字签名来确定数据的来源。 不可抵赖性数字签名可以防止发送方否认曾经发送过数据,因为数字签名是基于发送方的私钥进行加密的,只有发送方才能够生成正确的数字签名。 安全性数字签名可以保证数据传输过程中的安全性,因为只有发送方的私钥能够生成正确的数字签名,其他人无法篡改数据或伪造数字签名。 证书认证数字签名可以用于数字证书的认证,保证数字证书的真实性和有效性。数字签名的原理是什么?数字签名的原理基于公钥加密技术和哈希函数技术: 公钥加密技术公钥加密技术是一种基于不同的加密密钥和解密密钥的加密方式,公钥可以公开,而私钥只有发送方拥有。在数字签名中,发送方使用私钥对消息摘要进行加密,生成数字签名,接收方使用公钥对数字签名进行解密,从而确定消息的真实性和完整性。 哈希函数技术哈希函数是一种将任意长度的输入数据映射为固定长度输出数据的函数,它具有单向性和不可逆性的特点。在数字签名中,发送方使用哈希函数对消息进行摘要处理,生成消息摘要,接收方使用哈希函数对收到的消息进行摘要处理,从而确定消息的完整性和真实性。数字签名的流程是什么? 发送方使用哈希函数对消息进行摘要处理,生成消息摘要。 发送方使用私钥对消息摘要进行加密,生成数字签名。 发送方将消息和数字签名一起发送给接收方。 接收方使用发送方的公钥对数字签名进行解密,得到消息摘要。 接收方使用哈希函数对收到的消息进行摘要处理,得到消息摘要。 接收方比对解密得到的消息摘要和计算得到的消息摘要,如果一致,则证明消息的完整性和真实性得到了保证。数字签名的安全性如何保证? 私钥保护私钥是数字签名的关键,只有发送方拥有私钥才能够生成数字签名。因此,私钥需要进行严格的保护,防止被攻击者窃取或泄露。 公钥验证接收方必须要验证发送方的公钥的真实性,以确保数字签名的可信度。可以通过数字证书、公钥基础设施(PKI)等机制来验证公钥的真实性。 哈希函数安全哈希函数是数字签名的基础,安全的哈希函数可以有效地保护数字签名的安全性。为了保证哈希函数的安全性,需要选择安全性较高的哈希函数,如SHA-2、SHA-3等。 抵御攻击数字签名可能会受到多种攻击,如中间人攻击、重放攻击等。为了保证数字签名的安全性,需要采取相应的安全措施,如使用数字证书、使用时间戳等。 不可篡改性数字签名是一种不可篡改的技术,因此需要确保数字签名本身不会被篡改。可以使用数字证书、数字时间戳等机制来保证数字签名的不可篡改性。数字签名的算法有哪些? RSARSA是一种基于因数分解的公钥加密算法,也可以用于数字签名。RSA数字签名是一种常用的数字签名算法,它通过私钥对消息进行签名,通过公钥对签名进行验证。 DSADSA是一种基于离散对数问题的数字签名算法,它是美国国家标准局(NIST)推荐的数字签名算法之一。DSA数字签名是一种轻量级的数字签名算法,适用于一些资源受限的环境。 ECDSAECDSA是一种基于椭圆曲线加密的数字签名算法,它与DSA类似,但使用的是椭圆曲线加密算法。ECDSA数字签名算法具有高效性和安全性的特点,适用于移动设备等资源受限的环境。 EdDSAEdDSA是一种基于椭圆曲线加密的数字签名算法,它是ECDSA的改进版,具有更好的性能和安全性。EdDSA数字签名算法适用于移动设备等资源受限的环境。 GOSTGOST是一种由俄罗斯开发的数字签名算法,它是一种基于哈希函数的数字签名算法,具有高效性和安全性的特点。数字签名的应用场景有哪些? 电子商务数字签名可以用于电子商务中的订单、付款、物流等环节的认证和验证,保证交易的真实性和完整性。 数字证书数字签名可以用于数字证书的认证和验证,保证数字证书的真实性和有效性。 文件传输数字签名可以用于文件传输中的身份认证和文件完整性保护,保证文件在传输过程中不被篡改或伪造。 网络通信数字签名可以用于网络通信中的数据完整性保护和身份认证,保证通信的安全性和可信度。 版权保护数字签名可以用于保护数字版权,防止数字内容被盗用或篡改。 法律证据数字签名可以作为法律证据,保证签署方的身份真实性和签署时间的真实性。

词条知识树 (6个知识点)数字签名的作用是什么?数字签名的原理是什么?数字签名的流程是什么?数字签名的安全性如何保证?数字签名的算法有哪些?数字签名的应用场景有哪些?相关文章什么是数字签名?-- 【图解数字签名】978数字签名702【计算机网络】网络安全 : 数字签名 ( 数字签名简介 | 数字签名实现 | 数字签名功能 | 保密数字签名 )1.1K数字签名843聊聊数字签名(下)816社区专栏文章阅读清单互动问答技术沙龙技术视频团队主页腾讯云TI平台活动自媒体分享计划邀请作者入驻自荐上首页技术竞赛资源技术周刊社区标签开发者手册开发者实验室关于社区规范免责声明联系我们友情链接腾讯云开发者扫码关注腾讯云开发者领取腾讯云代金券热门产品域名注册云服务器区块链服务消息队列网络加速云数据库域名解析云存储视频直播热门推荐人脸识别腾讯会议企业云CDN加速视频通话图像分析MySQL 数据库SSL 证书语音识别更多推荐数据安全负载均衡短信文字识别云点播商标注册小程序开发网站监控数据迁移Copyright © 2013 - 2024 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有 深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569腾讯云计算(北京)有限责任公司 京ICP证150476号 |  京ICP备11018762号 | 京公网安备号11010802020287问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归

数字签名(digital signature)技术介绍-CSDN博客

>

数字签名(digital signature)技术介绍-CSDN博客

数字签名(digital signature)技术介绍

最新推荐文章于 2024-01-06 21:44:12 发布

liitdar

最新推荐文章于 2024-01-06 21:44:12 发布

阅读量1.9w

收藏

76

点赞数

17

分类专栏:

信息安全

文章标签:

数字签名

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/liitdar/article/details/80738908

版权

信息安全

专栏收录该内容

8 篇文章

5 订阅

订阅专栏

本文主要介绍数字签名(digital signature)技术的相关知识。

1 概述

1.1 What

数字签名(又称公钥数字签名、电子签章),是一种类似写在纸上的、普通的物理签名,只不过数字签名使用公钥加密领域的技术实现,数字签名属于鉴别数字信息的方法。一套数字签名通常定义两种互补的运算:一个运算用于签名,另一个运算用于验证签名(验签)。

数字签名,就是只有信息的发送者才能产生的、别人无法伪造的一段数字串,这段数字串是对信息发送者所发送信息真实性的一个有效证明。

数字签名是非对称密钥加密技术与数字摘要技术的应用。

数字签名文件的完整性是很容易验证的(不需要骑缝章、骑缝签名,也不需要笔迹专家),而且数字签名具有不可抵赖性(不需要笔迹专家来验证)。

简单地说,所谓数字签名,就是附加在数据单元上的一些数据,或者是对数据单元所做的密码变换,通过使用这些数据或变换,数据单元的接收者能够确认数据单元的来源、数据单元的完整性,并且(这些数据或变换)保护数据、防止被人(例如接收者)进行伪造。

数字签名是对电子形式的消息进行签名的一种方法,一个签名消息能在通信网络中传输。

尽管基于公钥密码体制和私钥密码体制都可以获得数字签名,不过目前主要是基于公钥密码体制的数字签名。

2.2 应用场景

数字签名技术的应用场景较多,在此介绍几种常见的应用场景。

2.2.1 应用场景1

通过使用数字签名技术,将摘要信息(数字摘要是将任意长度的消息变成固定长度的短消息,这里描述的是对原文使用 HASH 函数生成的一个摘要信息)使用发送者的私钥加密,与原文一起发送给接收者。接收者通过发送者的公钥解开被加密的摘要信息,同时使用 HASH 函数对收到的原文生成一个摘要信息,然后对比这两份摘要信息:如果对比结果相同,则说明收到的信息是完整的,即信息在传输过程中没有被修改;否则,则说明信息被修改过。所以说数字签名能够验证信息的完整性。

数字签名是个加密的过程,数字签名验证(验签)是个解密的过程。

2.3 作用

数字签名的作用是:保证信息传输的完整性、进行信息发送者的身份认证、防止交易中的抵赖发生。

2 示例

2.1 示例1

继承另一篇非对称加密算法文章:为了确保通信中的一方得到的公钥 K2 确实是通信另一方发布的公钥 K2(而不是中间人 mim 伪造的公钥 K2),数字签名技术应运而生。

下面通过示例演示,介绍数字签名的相关知识。

2.1.1 使用数字签名生成CRT

生成 CRT 的过程如下:

1. 小红把自己的公钥 K2 和 ID(身份证号码,或者域名)合成为身份证申请(certificate signing request,CSR),如下:

小红的CSR = 小红公钥K2 + 小红域名

2. 小红把自己的 CSR 发给一个德高望重的人(称为 CA,即 certificate authority),比如小亮;

3. 小亮用自己的私钥 K1 加密小红的 CSR,得到的密文被称为数字签名(digital signature,下面简称 signature),如下:

小亮的signature = E(小红的CSR, 小亮的私钥K1)

4. 小亮把 signature 和小红的 CSR 的明文合在一起,称作经过 CA 签署的身份证(CA signed certificate,CRT),发给小红,成为了小红的CRT,如下:

小红的CRT = 小红的CSR + 小亮的signature

说明:单纯的 CSR 都是明文的,因为 CSR 只是公钥和 ID 的组合。

2.1.2 根据数字签名进行认证

在上面生成了小红的 CRT 后,如果小明要与小红聊天,过程如下:

1. 小明想要与小红聊天(建立 HTTPS 连接)时,小红出示了自己的 CRT,该 CRT 是经过小亮(CA)签署的; 

2. 小明拿到了小红的 CRT 后,看到了这个 CRT 是经过小亮签署的,因为小亮很权威,小明是相信小亮的(小明预先在自己的机器上安装了小亮的身份证 CRT。这里小亮的身份证 CRT 是小亮对外公布的,其实是一个自签名的 CRT);

3. 小明从小亮的身份证 CRT 中获取小亮的 CSR,再从小亮的 CST 中提取小亮的公钥 K2。如下:

小亮的公钥K2 = 小亮的CRT中的CSR(明文)中的公钥K2

4. 小明用提取的小亮的公钥 K2,解密小红 CRT 中小亮的 signature,得到了小红的 CSR'。如下:

小红的CSR' = D(CRT中小亮的signature, 小亮的公钥K2)

5. 如果第 4 步中得到的这个小红的 CSR' 和小红 CRT 中的 CSR(明文)一致,则说明“这个小红的 CRT 是经过小亮确认过并且签名的,所以这个小红的 CRT 是可信的”。如下:

if 小红的CSR' == 小红的CRT中的小红的CSR(明文),则小红的CRT可信

6. 所以,既然小红的 CRT 是可信的,小明就可以获取小红 CRT 中的 CSR 中的小红的公钥 K2,进行后续通信了。

2.1.3 Who is CA

从上述过程中可以看出,任何人或机构都可以作为 CA,只要他愿意公开自己的公钥 K2(通过自签名、提供自己的 CRT 的方式),那么他就可以用自己的私钥去加密别人的 CSR(生成 signature),签署生成别人的 CRT。

如果 CA 不可靠,那就没有办法了,很多操作系统(Windows、Mac OS X)和浏览器(Chrome、Firefox、IE)会内置一些可靠的 CA 的身份证,我们可以从这些可靠的 CA 的身份证中获取该 CA 的公钥 K2,如果后面遇到了该 CA 签署的别人的身份证,那么就可以通过该 CA 的公钥 K2 验证那个人的身份证是否可信了。

2.1.4 信任链

在上文中,CA 小亮如果担心没人相信自己是个权威的 CA,那么可以找一个大家都相信的 CA(比如老王),然后让老王对小亮的 CRT 进行签名,如下:

小亮的CSR = 小亮的公钥K2 + 小亮的域名

老王的signature = E(小亮的CSR, 老王的私钥K1)

小亮的CRT = 小亮的CSR(明文) + 老王的signature

经过上述步骤后,如果浏览器或者操作系统中安装了老王的公钥 K2(可以从老王的自签名 CRT 中获取),则可以验证“小亮的身份证 CRT 是老王确认并且签名过的”。

此时,小亮在签署小红的 CRT 时,可以在小红的 CRT 后面附上小亮的 CRT,这样小红的 CRT 就有“两页”了。

当小明和小红通信时,过程如下:

1. 小红出示自己的 CRT,该 CRT 是经过小亮认证的,而小亮的 CRT 又是经过老王认证的;

2. 小明虽然不信任小亮,但是因为信任老王,所以小明先用老王的公钥 K2 来验证小红 CRT 中附带的小亮的 CRT;

3. 经过验证,小明信任了小亮;

4. 然后,小明再用小亮的公钥 K2 来验证小红的 CRT;

5. 最终,小明信任了小红。

要是怕小明连自己也不信任,老王可以再找一个小明信任的人来签名自己的身份证。这个过程可以不断递推,从而形成一条信任链(trust of chain)。

2.1.5 根CA和自签名

前面介绍了信任链,不过信任链总会有个顶端,即最后一个签名者(CA),这个最后的签名者被称为根 CA(root CA)。

根 CA 对应的 CRT 称为根身份证,根身份证是由根 CA 自己签名的。

实际上,我们每个人都可以自己签名认证自己的身份证,得到自签名的身份证(self-signed certificate)。生成自签名身份证的过程如下:

1. 生成一对秘钥:公钥 K2 和私钥 K1;

2. 创建自己的 CSR;

3. 用自己的秘钥 K1 加密 CSR,得到 signature;

4. 最后,把自己的 CSR(明文)和 signature 一起发布,生成自己的 CRT。

任何人,只要相信我们的自签名 CRT,就可以用我们的 CRT 中的 CSR 中的公钥 K2 加密传送给我们的信息,然后我们就可以通过私钥 K1 来解密。

在 2.1.4 节的示例中,如果老王是根 CA,那么身份证信任链如下:

【小红的 CRT】

小红的CSR = 小红公钥K2 + 小红域名

小亮的signature = E(小红的CSR, 小亮的私钥K1)

小红的CRT = 小红的CSR(明文) + 小亮的signature

【小亮的 CRT】

小亮的CSR = 小亮的公钥K2 + 小亮域名

老王的signature = E(小亮的CSR, 老王的私钥K1)

小亮的CRT = 小亮的CSR(明文) + 老王的signature

【老王的 CRT】

老王的CSR = 老王的公钥K2 + 老王的域名

老王的signature = E(老王的CSR, 老王自己的私钥K1) --- 根CA,自签名

老王的CRT = 老王的CSR(明文) + 老王的signature

优惠劵

liitdar

关注

关注

17

点赞

76

收藏

觉得还不错?

一键收藏

打赏

知道了

0

评论

数字签名(digital signature)技术介绍

本文主要介绍数字签名(digital signature)技术的相关知识。1 概述1.1 What数字签名(又称公钥数字签名、电子签章),是一种类似写在纸上的、普通的物理签名,只不过数字签名使用公钥加密领域的技术实现,数字签名属于鉴别数字信息的方法。一套数字签名通常定义两种互补的运算:一个运算用于签名,另一个运算用于验证签名(验签)。数字签名,就是只有信息的发送者才能产生的、别人无法伪造的一段数字串,这段数字串是对信息发送者所发送信息真实性的一个有效证明。数字签名是非对称密钥加密技术与数

复制链接

扫一扫

专栏目录

数字签名digital signature

12-16

该代码完整的实现了整个数字签名流程,包括密钥对的产生,摘要生成算法等等,在eclipse上成功测试运行!课扩展!

数字 签名 批量 删除 工具 batch remove digital signature

11-25

批量删除数字签名,可以自动删除指定目录下(包括子目录)文件的数字签名,速度极快 batch remove digital signature, automatically remove signature in selected path, including sub folders, very quick

参与评论

您还未登录,请先

登录

后发表或查看评论

什么是数字签名?其安全性从何而来?

热门推荐

Caption C

04-03

2万+

一、数字签名简介

数字签名是基于公钥密码体制(非对称密钥密码体制)的。

1.1.基本特征

数字签名必须保证以下三点:

报文鉴别——接收者能够核实发送者对报文的签名;

报文的完整性——接收者不能伪造对报文的签名或更改报文内容。

不可否认——发送者事后不能抵赖对报文的签名;

1.2.数字签名的验证过程

上图位用户A使用数字签名向用户B传输一份文件的过程:

首先,文件经过单向散列函数的处理得到一份占128位的摘要(无论文件多大,经过单向散列函数的处理,生成的摘要都是128位),这份摘要相当

数字签名是什么

顺其自然~专栏

02-15

959

数字签名(又称)是只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明。它是一种类似写在纸上的普通的物理签名,但是在使用了公钥加密领域的技术来实现的,用于鉴别数字信息的方法。一套数字签名通常定义两种互补的运算,一个用于签名,另一个用于验证。数字签名是非对称与技术的应用。

13.1 数字签名概述

最新发布

tang7mj的博客

01-06

825

在数字时代,确保信息的完整性和验证身份变得尤为重要。数字签名正是为满足这一需求而生的技术。它不仅保证了信息在传输过程中未被篡改,还能确认信息来源的真实性。本文将概述数字签名的原理、应用和重要性。数字签名技术是确保数字世界中信息安全和身份验证的重要工具。随着数字化转型的不断深入,数字签名的作用愈发显著,从个人的电子邮件到企业的合同签署,再到国家级的信息安全,数字签名都扮演着不可或缺的角色。了解和掌握数字签名的原理和应用,对于每个数字时代的参与者来说,都是一项必要的技能。概述数字签名过程。

什么是数字签名和证书?

sg656720274的博客

10-26

565

转自:http://www.jianshu.com/p/9db57e7612551.信息安全三要素

信息安全中有三个需要解决的问题:

保密性(Confidentiality):信息在传输时不被泄露

完整性(Integrity):信息在传输时不被篡改

有效性(Availability):信息的使用者是合法的

这三要素统称为CIA Triad。

公钥密码解决保密性问题

数字签名解决完整性问题和有

数字签名

Jason分享,共同进步

04-24

849

好的文章 http://www.ibm.com/developerworks/cn/java/l-security/

 

数字签名以电子形式存在于数据信息之中的,或作为其附件的或逻辑上与之有联系的数据,可用于辨别数据签署人的身份,并表明签署人对数据信息中包含的信息的认可。(摘自百度)

 

数字签名(又称公钥数字签名、电子签章)是一种类似写在纸上的普通的物理签名,但是使用了公钥加密领域的技术...

数字签名技术简介

new9232的博客

07-16

6292

发送方A使用私钥对信息进行加密(也叫签名),得到密文(也叫数字签名)。接收方B接收到密文后,使用公钥进行解密(也叫验签),得到原文。我们知道,公钥理论上任何人都是可以拿到的。如果C拿到A的公钥,那C截获到密文信息,是不是就可以直接解密信息了。这里我们就要说下数字签名的作用,数字签名并不是为了对数据进行加密,而是为了确定信息确实是A发出的,并且信息没有被篡改。假设C自己伪造了一组数据,但是C没有A的私钥,因此无法对自己伪造的数据加密,或者C用自己私钥对数据进行加密,发送给B,B是无法解密的。.........

数字签名技术

七天

03-14

1万+

目录

一、数字签名

二、数字签名技术

2.1、基于哈希算法的数字签名与验证

2.2、基于非对称密钥加密体制的数字签名与验证

三、数字签名的作用

一、数字签名

数字签名(又称公钥数字签名)是只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明。它是一种类似写在纸上的普通的物理签名,但是在使用了公钥加密领域的技术来实现的,用于鉴别数字信息的方法。一套数字签名通常定义两种互补的运算,一个用于签名,另一个用于验证。数字签名是非对称

密码学系列之七:数字签名

聚集机器学习、信息安全

11-07

4041

在当今数字化的信息世界里,数字化文档的认证性、完整性和不可否认性是实现信息安全的基本要求。数字签名是满足上述要求的主要手段之一,也是现代密码学的主要研究内容之一。本文首先介绍数字签名的基本概念和基本原理,然后介绍几种常用的数字签名实现方案,最后介绍数字签名的扩展。

数字签名是什么?

我的博客

08-09

2320

作者: 阮一峰

日期: 2011年8月 9日

今天,我读到一篇好文章。

它用图片通俗易懂地解释了,"数字签名"(digital signature)和"数字证书"(digital certificate)到底是什么。

我对这些问题的理解,一直是模模糊糊的,很多

数字签名(Digital Signature)

heibao111728的博客

07-05

3971

总结:

私钥:只有自己知道的钥匙。

公钥:与自己私钥配对的可以公开给别人的钥匙叫公钥。

用私钥加密的数据只能用公钥解密,用公钥加密的数据只能用私钥解密。

数字签名:先对要发送的文件用hash算法生成极小的一段话,这段话叫做message digest。然后对message digest用私钥加密后生成的文件就叫数字签名。(数字签名的作用是验证文件是否被恶意修改过)

...

JAVA-digital-signature.zip_java 数字签名_数字签名

09-23

用Java实现数字签名——chinaSCI系列讲义

RSA-Digital-Signature-master_加密_RSA数字签名_

10-02

RSA的,数字签名,网上下的,只是加密,试一试

DigitalSignature:用于数字签名的Java应用程序

05-15

电子签名用于数字签名的Java应用程序

passport-digital-signature:使用数字签名进行身份验证

04-29

$ npm install passport-digital-signature 用法 配置策略 本地身份验证策略使用请求中提供的publicKey和签名字段对用户进行身份验证。 该策略需要verify回调,该回调接受这些凭据对象并done向用户的调用。 ...

digital-signature:一个简单的Java数字签名示例

05-18

一个简单的Java数字签名示例。 文档: : 执照

Acrobat XI Pro中文版基础入门视频教程3.3 数字签名 - digital signature.avi

04-12

Acrobat XI Pro中文版基础入门视频教程3.3 数字签名 - digital signature.avi

数字签名时间戳实则么回事,

07-21

数字签名时间戳(Digital Signature Timestamp)是一种用于证明数字签名在特定时间之前已存在的机制。它解决了以下问题:

1. 可靠性:数字签名的可靠性依赖于签名生成时的时间,如果签名后的时间长时间过去,签名的可信度可能会降低。通过添加时间戳,可以提供证据证明签名在特定时间之前已存在,从而增强签名的可靠性。

2. 合规性:某些法律和合规要求可能要求证明数字签名在特定时间之前已存在。数字签名时间戳提供了这样的证据,以满足这些合规性要求。

数字签名时间戳通常由权威的时间戳机构(如时间戳服务提供商)生成,并与数字签名一起存储或传输。时间戳机构会对签名进行验证,并将签名和相关信息存储在其自己的时间戳数据库中。这样,当验证方验证数字签名时,它们可以通过查询时间戳机构的数据库来获取关于签名存在时间的证据。

数字签名时间戳通常包含以下信息:

- 时间戳生成时间

- 数字签名的哈希值

- 时间戳机构的身份和签名

验证方可以使用时间戳机构提供的公钥来验证数字签名时间戳的真实性和完整性,并确保签名在特定时间之前已存在。

总之,数字签名时间戳提供了一种机制,用于证明数字签名在特定时间之前已存在,以增强签名的可靠性和合规性。

“相关推荐”对你有帮助么?

非常没帮助

没帮助

一般

有帮助

非常有帮助

提交

liitdar

CSDN认证博客专家

CSDN认证企业博客

码龄7年

暂无认证

194

原创

2万+

周排名

85万+

总排名

276万+

访问

等级

1万+

积分

820

粉丝

3272

获赞

307

评论

1万+

收藏

私信

关注

热门文章

typedef介绍

310629

C++中的string类用法简介

306593

C++编程语言中stringstream类介绍

217202

C++编程语言中重载运算符(operator)介绍

193291

C++编程语言中赋值运算符重载函数(operator=)介绍

107656

分类专栏

Qt

4篇

实用技巧

3篇

视音频

7篇

信息安全

8篇

流媒体

7篇

网络通信

8篇

硬件设备

2篇

RPC

7篇

C/C++编程语言

65篇

指针

3篇

数据结构与算法

22篇

计算机操作系统

6篇

NGINX

3篇

杂项

1篇

常用工具和软件

44篇

CGI

2篇

Linux操作系统

31篇

计算机网络

21篇

数据库

19篇

Windows

9篇

计算机理论知识

2篇

多线程

Python编程语言

2篇

设计模式

1篇

高并发

1篇

互联网技术

6篇

最新评论

C/C++编程语言中“crosses initialization”编译错误分析

tomas_johnny:

赞,很好解决了我的问题

typedef介绍

楚阡:

没有看懂2.1示例2第二步使用新的类型名myint_t替换变量名a步,把myint_t当定义成变量?

JSON解析(C++)

m0_64172534:

数组帮大忙了啊啊啊啊,感谢!

C++编程语言中stringstream类介绍

Sure_est:

分编译器吧,QT的编译器mingw吧,我用vs的就是像博主这样

typedef介绍

maymemaomao:

新手表示看懂了

最新文章

“3Sum”类问题总结

Counting Sort算法介绍

C++编程语言STL只begin和end函数介绍

2023年13篇

2022年15篇

2021年17篇

2020年4篇

2019年88篇

2018年62篇

目录

目录

分类专栏

Qt

4篇

实用技巧

3篇

视音频

7篇

信息安全

8篇

流媒体

7篇

网络通信

8篇

硬件设备

2篇

RPC

7篇

C/C++编程语言

65篇

指针

3篇

数据结构与算法

22篇

计算机操作系统

6篇

NGINX

3篇

杂项

1篇

常用工具和软件

44篇

CGI

2篇

Linux操作系统

31篇

计算机网络

21篇

数据库

19篇

Windows

9篇

计算机理论知识

2篇

多线程

Python编程语言

2篇

设计模式

1篇

高并发

1篇

互联网技术

6篇

目录

评论

被折叠的  条评论

为什么被折叠?

到【灌水乐园】发言

查看更多评论

添加红包

祝福语

请填写红包祝福语或标题

红包数量

红包个数最小为10个

红包总金额

红包金额最低5元

余额支付

当前余额3.43元

前往充值 >

需支付:10.00元

取消

确定

下一步

知道了

成就一亿技术人!

领取后你会自动成为博主和红包主的粉丝

规则

hope_wisdom 发出的红包

打赏作者

liitdar

赠人玫瑰,手有余香,君与吾共勉

¥1

¥2

¥4

¥6

¥10

¥20

扫码支付:¥1

获取中

扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元

使用余额支付

点击重新获取

扫码支付

钱包余额

0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。 2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

数字签名-原理_数字签名原理-CSDN博客

>

数字签名-原理_数字签名原理-CSDN博客

数字签名-原理

最新推荐文章于 2024-01-06 21:44:12 发布

空无多有

最新推荐文章于 2024-01-06 21:44:12 发布

阅读量8.9k

收藏

146

点赞数

36

分类专栏:

密码技术

文章标签:

数字签名

原文链接:https://blog.csdn.net/fanbaodan

版权

密码技术

专栏收录该内容

8 篇文章

27 订阅

订阅专栏

数字签名

1. 从消息认证到数字签名1.1. 消息认证码的局限性1.2. 通过数字签名解决问题

2. 签名的生成和验证3. 数字签名的方法3.1 签名步骤3.2 过程图解

4. 数字签名无法解决的问题

“数字签名 — 消息到底是谁写的”

    数字签名是一种将相当于现实世界中的盖章、签字的功能在计算机世界中进行实现的技术。使用数字签名可以识别篡改和伪装,还可以防止否认。

1. 从消息认证到数字签名

1.1. 消息认证码的局限性

    通过上篇中介绍的消息认证码,可以识别消息是否被篡改或者发送者身份是否被伪装,也就是可以校验消息的完整性,还可以对消息进行认证。然而,比如在出具借条的场景中却无法使用消息认证码,因为消息认证码无法防止否认。     消息认证码之所以无法防止否认,是因为消息认证码需要在发送者Alice和接收者Bob两者之间共享同一个密钥。正是因为密钥是共享的,所以能够使用消息认证码计算出正确MAC值的并不只有发送者Alice,接收者Bob也可以计算出正确的MAC值。由于Alice和Bob双方都能够计算出正确的MAC值,因此对于第三方来说,我们无法证明这条消息的确是由Alice生成的。

1.2. 通过数字签名解决问题

    假设Alice使用的密钥是一个只有Alice自己才知道的私钥。当Alice发送消息时,她用私钥生成一个“签名"。相对地,接收者Bob则使用一个和Alice不同的密钥对签名进行验证。使用Bob的密钥无法根据消息生成签名,但是用Bob的密钥却可以对Alice所计算的签名进行验证,也就是说可以知道这个签名是否是通过Alice的密钥计算出来的。如果真有这么一种方法的话,那么不管是识别篡改、伪装还是防止否认就都可以实现了吧 ?     实际上,这种看似很神奇的技术早就已经问世了,这就是数字签名(digital signat.ure)。

2. 签名的生成和验证

来稍微整理一下。 在数字签名技术中,出现了下面两种行为:

生成消息签名的行为验证消息签名的行为

    生成消息签名这一行为是由消息的发送者Alice来完成的,也称为“对消息签名”。生成签名就是根据消息内容计算数字签名的值,这个行为意味着 “我认可该消息的内容"。

    验证数字签名这一行为一般是由消息的接收者Bob来完成的,但也可以由需要验证消息的第三方来完成,这里的第三方我们暂且将其命名为验证者Victor。验证签名就是检查该消息的签名是否真的属于Alice,验证的结果可以是成功或者失败,成功就意味着这个签名是属于Alice的,失败则意味着这个签名不是属于Alice的。

    在数字签名中,生成签名和验证签名这两个行为需要使用各自专用的密钥来完成。

    Alice使用“签名密钥"来生成消息的签名,而Bob和Victor则使用“验证密钥"来验证消息的签名。数字签名对签名密钥和验证密钥进行了区分,使用验证密钥是无法生成签名的。这一点非常重要。此外,签名密钥只能由签名的人持有,而验证密钥则是任何需要验证签名的人都可以持有。

    上述的这部分内容,是不是觉得似曾相识呢?

    没错,这就是我们讲过的非对称加密。公钥密码和上面讲的数字签名的结构非常相似。在非对称加密中,密钥分为加密密钥和解密密钥,用加密密钥无法进行解密。此外,解密密钥只能由需要解密的人持有,而加密密钥则是任何需要加密的人都可以持有。你看,数字签名和非对称加密是不是很像呢?

    实际上,数字签名和非对称加密有着非常紧密的联系,简而言之,数字签名就是通过将非对称加密 “反过来用” 而实现的。下面我们来将密钥的使用方式总结成一张表:

私钥公钥非对称加密接收者解密时使用发送者加密时使用数字签名签名者生成签名时使用验证者验证签名时使用谁持有秘钥?个人持有只要需要,任何人都可以持有

3. 数字签名的方法

    如何签名?

直接对消息签名的方法对消息的散列值签名的方法

    直接对消息签名的方法比较容易理解,但实际上并不会使用;对消息的散列值签名的方法稍微复杂一点,但实际中一般都使用这种方法。     使用直接对消息签名的方法,需要对整个消息进行加密,非常耗时,这是因为非对称加密算法本来就非常慢。那么,我们能不能生成一条很短的数据来代替消息本身呢?这就是单向散列函数。     于是我们不必再对整个消息进行加密(即对消息签名),而是只要先用单向散列函数求出消息的散列值,然后再将散列值进行加密(对散列值签名)就可以了。无论消息有多长,散列值永远都是这么短,因此对其进行加密(签名)是非常轻松的。

3.1 签名步骤

Alice用单向散列函数计算消息的散列值。 Alice用自己的私钥对散列值进行加密。     用私钥加密散列值所得到的密文就是Alice对这条散列值的签名,由于只有Alice才持有自己的私钥因此除了Alice以外,其他人是无法生成相同的签名(密文)的。 Alice将消息和签名发送给Bob。 Bob用Alice的公钥对收到的签名进行解密     如果收到的签名确实是用Alice的私钥进行加密而得到的密文(签名),那么用Alice的公钥应该能够正确解密,解密的结果应该等于消息的散列值。如果收到的签名不是用Alice的私钥进行加密而得到的密文,那么就无法用Alice的公钥正确解密(解密后得到的数据看起来是随机的)。 Bob将签名解密后得到的散列值与Alice直接发送的消息的散列值进行对比。     如果两者一致,则签名验证成功;如果两者不一致,则签名验证失败。 我们将数字签名中生成签名和验证签名的过程整理成一张时间流程图 。

3.2 过程图解

Alice对消息的在这里插入图片描述散列值签名, Bob验证签名 Alice对消息的散列值签名, Bob验证签名(按时间顺序)

4. 数字签名无法解决的问题

    用数字签名既可以识别出篡改和伪装,还可以防止否认。也就是说,我们同时实现了确认消息的完整性、进行认证以及否认防止。现代社会中的计算机通信从这一技术中获益匪浅。

    然而,要正确使用数字签名,有一个大前提,那是用于验证签名的公钥必须属于真正的发送者。即便数字签名算法再强大,如果你得到的公钥是伪造的,那么数字签名也会完全失效。

    现在我们发现自己陷人了一个死循环一一一数字签名是用来识别消息篡改、伪装以及否认的,但是为此我们又必须从没有被伪装的发送者得到没有被篡改的公钥才行。

    为了能够确认自己得到的公钥是否合法,我们需要使用证书。所谓证书,就是将公钥当作一条消息,由一个可信的第三方对其签名后所得到的公钥。

    当然,这样的方法只是把问题转移了而已。为了对证书上施加的数字签名进行验证,我们必定需要另一个公钥,那么如何才能构筑一个可信的数字签名链条呢?又由谁来颁发可信的证书呢?到这一步,我们就已经踏人了社会学的领域。我们需要让公钥以及数字签名技术成为一种社会性的基础设施,即公钥基础设施(Public Key Intrastructure),简称PKIO关于证书和PKI下篇继续。

优惠劵

空无多有

关注

关注

36

点赞

146

收藏

觉得还不错?

一键收藏

知道了

10

评论

数字签名-原理

数字签名1. 从消息认证到数字签名1.1. 消息认证码的局限性1.2. 通过数字签名解决问题2. 签名的生成和验证3. 数字签名的方法3.1 签名步骤3.2 过程图解4. 数字签名无法解决的问题“数字签名 — 消息到底是谁写的”数字签名是一种将相当于现实世界中的盖章、签字的功能在计算机世界中进行实现的技术。使用数字签名可以识别篡改和伪装,还可以防止否认。1. 从消息认证到数字签名1.1....

复制链接

扫一扫

专栏目录

信息安全原理与技术-第五章Hash函数和数字签名.ppt

06-06

Hash函数和数字签名

Hash函数和数字签名

Hash函数和数字签名

什么是数字签名?其安全性从何而来?

Caption C

04-03

2万+

一、数字签名简介

数字签名是基于公钥密码体制(非对称密钥密码体制)的。

1.1.基本特征

数字签名必须保证以下三点:

报文鉴别——接收者能够核实发送者对报文的签名;

报文的完整性——接收者不能伪造对报文的签名或更改报文内容。

不可否认——发送者事后不能抵赖对报文的签名;

1.2.数字签名的验证过程

上图位用户A使用数字签名向用户B传输一份文件的过程:

首先,文件经过单向散列函数的处理得到一份占128位的摘要(无论文件多大,经过单向散列函数的处理,生成的摘要都是128位),这份摘要相当

10 条评论

您还未登录,请先

登录

后发表或查看评论

数字签名技术

七天

03-14

1万+

目录

一、数字签名

二、数字签名技术

2.1、基于哈希算法的数字签名与验证

2.2、基于非对称密钥加密体制的数字签名与验证

三、数字签名的作用

一、数字签名

数字签名(又称公钥数字签名)是只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明。它是一种类似写在纸上的普通的物理签名,但是在使用了公钥加密领域的技术来实现的,用于鉴别数字信息的方法。一套数字签名通常定义两种互补的运算,一个用于签名,另一个用于验证。数字签名是非对称

13.1 数字签名概述

tang7mj的博客

01-06

825

在数字时代,确保信息的完整性和验证身份变得尤为重要。数字签名正是为满足这一需求而生的技术。它不仅保证了信息在传输过程中未被篡改,还能确认信息来源的真实性。本文将概述数字签名的原理、应用和重要性。数字签名技术是确保数字世界中信息安全和身份验证的重要工具。随着数字化转型的不断深入,数字签名的作用愈发显著,从个人的电子邮件到企业的合同签署,再到国家级的信息安全,数字签名都扮演着不可或缺的角色。了解和掌握数字签名的原理和应用,对于每个数字时代的参与者来说,都是一项必要的技能。概述数字签名过程。

数字签名、数字证书的原理以及证书的获得java版

长春小佛爷的博客

04-04

921

首先要了解什么叫对称加密和非对称加密,消息摘要这些知识。

1. 非对称加密

在通信双方,如果使用非对称加密,一般遵从这样的原则:公钥加密,私钥解密。同时,一般一个密钥加密,另一个密钥就可以解密。

因为公钥是公开的,如果用来解密,那么就很容易被不必要的人解密消息。因此,私钥也可以认为是个人身份的证明。

如果通信双方需要互发消息,那么应该建立两套非对称加密的机制(即两对公私钥密钥对),发消息的一方使用对方的公钥进行加密,接收消息的一方使用自己的私钥解密。

2.消息摘要

消息摘要可以将消息哈希转换成一

数字签名工作原理

热门推荐

王达专栏

09-25

2万+

数字签名是指发送方用自己的私钥对数字指纹进行加密后所得的数据,其中包括非对称密钥加密和数字签名两个过程,在可以给数据加密的同时,也可用于接收方验证发送方身份的合法性。采用数字签名时,接收方需要使用发送方的公钥才能解开数字签名得到数字指纹。

       数字指纹又称为信息摘要,是指发送方通过HASH算法对明文信息计算后得出的数据。采用数字指纹时,发送方会将本端对明文进哈希运算后生成的数字指纹(还

数字签名与签名验证过程

Horace Ho的博客

01-05

6090

非对称加密、数字签名、签名验签

数字签名的原理、主要技术和应用

Programming Talk

09-18

1793

数字签名基于公钥密码学的原理,使用了非对称密钥加密算法。它使用了两个密钥:私钥(私有密钥)和公钥(公共密钥)。私钥只有文档的签名者拥有,并且必须保密保存。公钥可以被任何人访问。数字签名通过使用公钥密码学和哈希函数的组合,实现了对数字文档的完整性、真实性和身份的验证。它在身份验证、电子合同、软件分发、电子邮件安全和数据完整性等方面具有广泛的应用。数字签名是一种加密技术,用于验证数字文档的完整性、真实性和身份。它使用了公钥密码学的原理和技术,以及哈希函数来实现。

数字签名原理简述

smilejiasmile的博客

04-07

2676

本文结合下面两个问题来讲解数字签名的基本原理。结合图片希望能给大家一个清晰简单明了的分析和讲解。

1. 问题描述:

(1)用户A向远方的用户B发送一个消息,用户B如何确认所收到的消息在传输的过程中没被篡改过?

(2)用户B收到了消息之后,如何防止A随之否认这个消息是他发送的呢?

---------阅读本文的知识储备:了解非对称加密的基本原理。--------

2. 使用方法:数字签名

类比于现实生活,我可以在一个支票上面签名,表示这张支票确实是我本人签署的。收到这张支票的人到银行去兑现的时候,工

数字签名的原理

起跑线的专栏

02-06

1791

数字签名采用了双重加密的方法来实现防伪、防赖。其原理为: (1) 被发送文件用SHA编码加密产生128bit的数字摘要(见上节)。 (2) 发送方用自己的私用密钥对摘要再加密,这就形成了数字签名。 (3) 将原文和加密的摘要同时传给对方。 (4) 对方用发送方的公共密钥对摘要解密,同时对收到的文件用SHA编码加密产生又一摘要。 (5) 将解密后的摘要和收到的文件在接收方重新加密产生的摘要相互对比。

数字签名的工作原理

SSL加密技术

09-24

2478

数字签名是公钥基础结构的基础部分。当我们说PKI时,一般想到的是数字证书,证书颁发机构(CA),银行使用的Key,以及SSL通信等等。

数字证书,一般都是成对存在的,包含证书的公钥,和证书对应的私钥,公钥本身有一定的身份标识功能(如ssl证书中的域名信息,邮件客户端证书的邮箱地址等),对于数字证书的应用比较广泛,但其基本原理简单来说就是公钥用来加密,私钥用来解密。私钥用来签名,公钥用来验证签名。

那么,在我们了解数字签名的技术原理之前,我们先要明白一个和数字签名密切相关的算法:Hash算法。

hash

软件代码数字签名基本原理

08-01

在通过精美的包装盒销售软件的时代,大家使用什么防伪标志等来让用户识别什么是正版软件。但在当今的网络时代,有利的一面是软件开发商可以通过网络不受时间、地域的限制而快速发行软件,但不利的一面,则是用户无法辨认软件的真伪,根本无法确认软件代码的真实身份。

数字签名原理及技术 电子书

04-22

数字签名原理及技术 数字签名原理及技术 数字签名原理及技术 数字签名原理及技术 数字签名原理及技术

数字签名技术原理,看这篇技术文档足矣

06-23

数字摘要(Digital Digest)又称消息摘要(Message Digest),将任意长度的输入信息经过hash函数运算得到固定长度的输出值,这个值...hash函数的应用主要包括:数据校验(检测数据修改)、口令存储(加salt)、数字签名。

离散数学期末10小时冲刺突击

03-06

离散数学期末冲刺突击10小时速成

Java基于springboot的厨艺交流平台的设计与实现代码使用SpringBoot+MyBatis框架.zip

03-06

厨艺交流平台并没有使用C/S结构,而是基于网络浏览器的方式去访问服务器,进而获取需要的数据信息,这种依靠浏览器进行数据访问的模式就是现在用得比较广泛的适用于广域网并且没有网速限制要求的B/S结构

管理员假如要操作系统提供的功能,那么管理员就要在系统的登录界面,填写管理员登录的账号信息,填写相应的密码信息,管理员需要保证这两者能够验证身份的账号以及密码信息的正确性,这样管理员就可以通过登录界面进入系统后台操作界面。

要将PyCharm更改为中文界面

最新发布

03-06

pycharm怎么改成中文

Java毕设-基于springboot+vue的疫情隔离管理系统(附源码,数据库,教程).zip

03-06

Java 毕业设计,Java 课程设计,基于 SpringBoot 开发的,含有代码注释,新手也可看懂。毕业设计、期末大作业、课程设计、高分必看,下载下来,简单部署,就可以使用。

包含:项目源码、数据库脚本、软件工具等,前后端代码都在里面。

该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。

项目都经过严格调试,确保可以运行!

1. 技术组成

前端:html、javascript、Vue

后台框架:SpringBoot

开发环境:idea

数据库:MySql(建议用 5.7 版本,8.0 有时候会有坑)

数据库工具:navicat

部署环境:Tomcat(建议用 7.x 或者 8.x 版本), maven

2. 部署

如果部署有疑问的话,可以找我咨询

后台路径地址:localhost:8080/项目名称/admin/dist/index.html

前台路径地址:localhost:8080/项目名称/front/index.html (无前台不需要输入)

SM2数字签名算法原理

07-10

SM2数字签名算法的原理如下:

1.钥生成:生成SM2法所需的公钥对。私钥是一个随机数,公钥由私钥通过椭圆曲线点乘运生成。

2. 签名:对待签名的消息进行哈希运算,生成消息摘要。然后使用私钥对摘要进行数字签名操作。具体步骤如下:

- 随机选择一个整数k,计算椭圆曲线上的点R = [k]G,其中G为基点。

- 计算e = Hash(M),将消息M进行哈希运算得到消息摘要e。

- 计算s = (e + dA * r) / (1 + k)^-1 mod n,其中dA为私钥,r为R的x坐标。

- 签名结果为(R, s),即为消息的数字签名。

3. 签名验证:接收到签名消息后,首先对待验证的消息进行哈希运算得到摘要e。然后使用公钥对签名进行验证操作。具体步骤如下:

- 计算t = (r' + s') mod n,其中r'为签名中的R的x坐标,s'为签名中的s值。

- 计算点S = [s']G + [t]PA,其中PA为公钥。

- 验证成功的条件是R的x坐标与计算得到的S的x坐标相等。

通过以上步骤,SM2数字签名算法可以实现对消息的签名和验证,确保消息的完整性和认证性。同时,SM2算法还具有抗量子计算攻击的特性,适用于各种安全通信和身份认证场景。

“相关推荐”对你有帮助么?

非常没帮助

没帮助

一般

有帮助

非常有帮助

提交

空无多有

CSDN认证博客专家

CSDN认证企业博客

码龄7年

暂无认证

143

原创

2万+

周排名

149万+

总排名

165万+

访问

等级

1万+

积分

226

粉丝

747

获赞

192

评论

2103

收藏

私信

关注

热门文章

Http响应Response详解

122788

linux中vim: command not found

112465

java如何判断list集合为空

54843

因为没有使用有效的安全证书进行签名,该内容已被屏蔽.

52398

ORACLE中dbms_output.put_line输出问题

50729

分类专栏

SpringBoot

7篇

ngnix

7篇

kafka

8篇

消息队列

6篇

设计模式

8篇

测试题-查漏补缺

3篇

密码技术

8篇

微服务

3篇

♛ UI

10篇

springCloud

♛ docker

2篇

♛ 工作中的问题

33篇

♛ 数据库

9篇

mysql

9篇

oracle

28篇

nosql

4篇

♛ druid

3篇

♛ java

36篇

多线程

1篇

io相关整理

1篇

xml简介以及解析

2篇

My Library

4篇

♛ Linux

29篇

♛ 开发工具

3篇

gradle

1篇

git

8篇

svn

9篇

IDEA

16篇

eclipse

19篇

navicat12

1篇

maven

2篇

tomcat

6篇

weblogic

9篇

♛ 框架技术

2篇

mybatis

6篇

SSH框架

9篇

spring

14篇

springMVC

16篇

CXF

2篇

Quartz

3篇

♛ 计算机

19篇

windows批处理

2篇

网络相关

12篇

小技能

2篇

♛ 架构

3篇

--------- webService

6篇

♛ 各种网络安全证书

5篇

♛ javaWeb

13篇

♛ 小知识

8篇

♛ 感悟

2篇

♛ 测试

2篇

最新评论

springboot + Gradle test时报错:No tests found for given includes:xxxx

人心难测冷暖自知:

是啊?到底是为什么换成IDEA就正确了呢

数字签名-原理

m0_67730750:

摘要的哈希函数有哪些要求捏

where条件里为什么不能有聚合函数

小李小李晴空万里:

就不一定 select 在 having 后面执行;比如 select emp_no ,count(emp_no) as t from salaries group by emp_no having t >15;

linux中vim: command not found

神说.:

我跟你一样...安装sudo:Err:1 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 libsystemd0 amd64 245.4-4ubuntu3.22

Temporary failure resolving 'archive.ubuntu.com'

解决:Information:java: javacTask: 源发行版 8 需要目标发行版 1.8

笨中求真的程序之路:

有用,谢谢大佬儿

您愿意向朋友推荐“博客详情页”吗?

强烈不推荐

不推荐

一般般

推荐

强烈推荐

提交

最新文章

mybatis-plus使用总结01

springboot自动化配置的核心@EnableAutoConfiguration注解

SpringMvc常用注解整理

2022年4篇

2021年24篇

2020年7篇

2019年191篇

2018年108篇

目录

目录

分类专栏

SpringBoot

7篇

ngnix

7篇

kafka

8篇

消息队列

6篇

设计模式

8篇

测试题-查漏补缺

3篇

密码技术

8篇

微服务

3篇

♛ UI

10篇

springCloud

♛ docker

2篇

♛ 工作中的问题

33篇

♛ 数据库

9篇

mysql

9篇

oracle

28篇

nosql

4篇

♛ druid

3篇

♛ java

36篇

多线程

1篇

io相关整理

1篇

xml简介以及解析

2篇

My Library

4篇

♛ Linux

29篇

♛ 开发工具

3篇

gradle

1篇

git

8篇

svn

9篇

IDEA

16篇

eclipse

19篇

navicat12

1篇

maven

2篇

tomcat

6篇

weblogic

9篇

♛ 框架技术

2篇

mybatis

6篇

SSH框架

9篇

spring

14篇

springMVC

16篇

CXF

2篇

Quartz

3篇

♛ 计算机

19篇

windows批处理

2篇

网络相关

12篇

小技能

2篇

♛ 架构

3篇

--------- webService

6篇

♛ 各种网络安全证书

5篇

♛ javaWeb

13篇

♛ 小知识

8篇

♛ 感悟

2篇

♛ 测试

2篇

目录

评论 10

被折叠的  条评论

为什么被折叠?

到【灌水乐园】发言

查看更多评论

添加红包

祝福语

请填写红包祝福语或标题

红包数量

红包个数最小为10个

红包总金额

红包金额最低5元

余额支付

当前余额3.43元

前往充值 >

需支付:10.00元

取消

确定

下一步

知道了

成就一亿技术人!

领取后你会自动成为博主和红包主的粉丝

规则

hope_wisdom 发出的红包

实付元

使用余额支付

点击重新获取

扫码支付

钱包余额

0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。 2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

基础密码学入门:数字签名算法 - 知乎

基础密码学入门:数字签名算法 - 知乎切换模式写文章登录/注册基础密码学入门:数字签名算法NuoHui野生码农。往期回顾:基础密码学入门: 随机数、hash算法、对称加密算法基础密码学入门: MAC算法、公开密钥算法基础密码学入门: 密钥基础密码学入门: 密钥协商算法数字签名公开密钥算法的另外一种用途就是数字签名技术。提到签名,大家可能会联想到现实世界中的合同签名,按照这个思路理解就对了。数字签名技术有多种解决方案,RSA签名算法和DSA签名算法都可以实现数字签名。在最开始学习密码学时候,我们讲述了密码学在互联网应用的四个目标:机密性、完整性、身份验证、防抵赖。 现在就只有防抵赖这个点没有提及到。防抵赖在讲述防抵赖性之前,我们先铺垫下,消息是如何被篡改的。假设A、B、C三个人共享一个对称加密算法密钥,现在A和B互相通信,A和B一直认为是双方在发送消息。由于C也有同样的密钥,它可以拦截A发往B的消息,然后篡改消息并用同样的密钥加密后发送给B, B能够正确解密,但是该消息其实已经被篡改。接下来解释为什么不能防止抵赖,还是用同样的例子说明,A、B、C三个人共享一个对称加密算法密钥,A向B发送了一条消息,但是A可以抵赖说这条消息并不是他发送的,理由就是C也有同样的密钥,这条加密消息可能是C发送给B的,B无法向第三方证明是A给他发送了消息。在公开密钥算法中,如果算法用于加密解密,也同样不能防止抵赖,以RSA加密算法举例,由于RSA的公钥是完全公开的,RSA私钥拥有者虽然能够解密,但是并不能确认是哪个客户端发送的消息,同理任何人都可以抵赖。抵赖出现的根本原因就在于通信双方无法确认对方的身份,也就是不能进行身份验证,那么在密码学中有没有对应的解决方案呢?可以使用数字签名技术防抵赖。在现实世界中,有哪些行为或者约定可以防止人抵赖呢?最明显的就是合同,合同一般需要人签字或者按指纹,考虑签字可以模仿伪造,这里重点用指纹签署的合同来解释。合同一旦由指纹签署了,就可以被复印多份。有了合同,合同签署人就无法否认合同的合法性,原因就在于法律规定,指纹具备唯一性,每个人的指纹是不同的,或者说指纹就代表了一个人。回到密码学中,如果一个消息也含有特殊的指纹,那么它是否就不能抵赖呢?仔细回忆RSA密钥对,私钥只有密钥对的生成者持有,如果不考虑密钥泄露的问题,私钥拥有者使用密钥(注意不是加密操作)签署一条消息,然后发送给任意的接收方,接收方只要拥有私钥对应的公钥,就能成功反解签署消息,由于只有私钥持有者才能“签署”消息,不能抵赖说这条签署消息不是他发送的,这就是数字签名技术的全部。数字签名特点防篡改:数据不会被修改,MAC算法也有这个特点。防抵赖:消息签署者不能抵赖。防伪造:发送的消息不能够伪造,MAC算法也有这个特点。数字签名技术能够进行身份验证,而MAC算法,它只能保证传递的消息是经过验证的,但不能对消息发送者的身份进行验证,原因就在于消息发送方和接收方拥有同样的密钥,所以双方可以抵赖,否认消息是他发送的,因此在理解的时候一定要区分消息验证和身份验证。数字签名的流程不管是RSA数字签名算法还是DSA数字签名算法,数字签名处理流程是差不多的,主要分为签名生成和签名验证,接下来分别描述这两个过程。签名生成流程发送者对消息计算摘要值。发送者用私钥对摘要值进行签名得到签名值。发送者将原始消息和签名值一同发给接收者。数字签名技术的本质不是为了加密,所以和签名值一同传递的消息是不用加密的,当然也可以对消息加密后再计算签名值。签名验证流程接收者接收到消息后,拆分出消息和消息签名值A。接收者使用公钥对消息进行运算得到摘要值B。接收者对摘要值B和签名值A进行比较,如果相同表示签名验证成功,否则就是验证失败。签名生成和签名验证流程很简单,大家看了上述流程可能会思考一个问题,为什么不直接对消息进行签名,而是对消息的摘要值进行签名?签名值除了比较之外并没有其他用途,那么基于消息生成签名和基于消息摘要值生成签名并无区别,考虑到公开密钥算法运行是相对缓慢的,数字签名算法建议对消息摘要值进行签名,因为摘要值的长度是固定的,运算的时候速度会比较快。RSA数字签名算法RSA算法的用途非常广泛,可以进行数字签名。和RSA加密算法相似,不同的是,RSA加密算法是公钥加密,私钥解密;RSA签名算法是私钥签名,公钥验证签名。DSA数字签名算法对称加密算法有很多算法,标准算法是RSA机密算法,数字签名技术也有一个标准DSS(Digital Signature Standard),其标准算法就是DSA签名算法(DigitalSignature Algorithm),它是美国国家标准技术研究所(NIST)在1991年提出的签名算法,只能进行签名,不能进行加密解密。DSA数字签名算法生成签名、验证签名的机制和RSA数字签名算法是一样的。编辑于 2020-11-03 23:53数字签名前端开发前端工程师​赞同 31​​3 条评论​分享​喜欢​收藏​申请

什么是数字签名? | DigiCert常见问题与解答

什么是数字签名? | DigiCert常见问题与解答

')

//check if OneTrust is allowing "Personalized Experience Cookies" (i.e., Adobe Target) to load

var adobeTargetOneTrustGroup = "PE";

function isAdobeTargetAllowed(adobeTargetOneTrustGroup) {

var OptanonConsentCookie = document.cookie.match(/OptanonConsent=.*;/);

return (OptanonConsentCookie && decodeURIComponent(OptanonConsentCookie[0]).includes(adobeTargetOneTrustGroup + ":1"));

}

if (isAdobeTargetAllowed(adobeTargetOneTrustGroup)) {

//Adobe Target prehiding snippet

;(function(win, doc, style, timeout) {

var STYLE_ID = 'at-body-style';

function getParent() {

return doc.getElementsByTagName('head')[0];

}

function addStyle(parent, id, def) {

if (!parent) {

return;

}

var style = doc.createElement('style');

style.id = id;

style.innerHTML = def;

parent.appendChild(style);

}

function removeStyle(parent, id) {

if (!parent) {

return;

}

var style = doc.getElementById(id);

if (!style) {

return;

}

parent.removeChild(style);

}

addStyle(getParent(), STYLE_ID, style);

setTimeout(function() {

removeStyle(getParent(), STYLE_ID);

}, timeout);

}(window, document, "body {opacity: 0 !important}", 3000));

}

数字信任解决方案

购买

洞见

合作伙伴

支持

Contact Us

Language

Contact us

返回

choose your language

英语

西班牙语

荷兰语

德语

法语

意大利语

中文(简体)

中文(繁体)

日语

韩语

葡萄牙语

返回

与支持代表线上交谈

与技术支持人员线上交谈 >

与验证人员线上交谈 >

与销售人员线上交谈 >

中国

+86 400 842 8401

向销售人员发送电子邮件 向支持人员发送电子邮件

RECOMMENDED LINKS

证书对比

DigiCert® Trust Lifecycle Manager

DigiCert® IoT Trust Manager

DigiCert® Document Trust Manager

DigiCert® Software Trust Manager

DigiCert® DNS Trust Manager

返回

大规模保护、更新、监测并控制互联设备

立即下载

数字信任:

企业IT、PKI与身份

DigiCert® Trust Lifecycle Manager

网站与服务器

DigiCert® CertCentral TLS/SSL Manager

DigiCert® DNS Trust Manager

代码与软件

DigiCert® Software Trust Manager

文档与签名

DigiCert® Document Trust Manager

IoT与互联设备

DigiCert® IoT Trust Manager

Matter计划IoT设备认证

适用于开发人员的DigiCert+Mocana

立即在一个平台中管理PKI与证书风险

预防停机

证书生命周期管理

私有PKI服务

集成与优势

立即在一个平台中管理PKI与证书风险

预防停机

证书生命周期管理

私有PKI服务

集成与优势

管理证书生命周期的更智能的方法

颁发与安装

检查与修复

续订与自动化

分配与委托

适用于CI/CD& DevOps的持续签名

确保代码完整性

实现软件签名工作流程的自动化

集中管理密钥与权限

简化并强制执行合规性

安全、灵活的全球签名

建立加密唯一身份

受信任的远程身份验证(RIV)

直观的Adobe和DocuSign集成

灵活的工作流程选项

从芯片注入到现场全过程受信任

医疗IoT

家居与消费者IoT

工业IoT

智慧城市IoT

运输IoT

不妥协的设备安全性

嵌入式信任

自动化的设备管理

集中控制

加快安全应用程序开发

不限定操作系统和处理器的开发

灵活的足迹

任何语言

发布活动

PKI领域30年来最重大的事项

 

观看网络研讨会

2022版TLS/SSL最佳实践指南

立即下载

2022版TLS/SSL最佳实践指南

立即下载

网络研讨会

管控设备、身份和证书扩散

立即观看

如何建立DevOps将实际采用的签名策略

获取指南

从全球角度管理文档签名与规则

立即下载

大规模保护、更新、监测并控制互联设备 

立即下载

大规模保护、更新、监测并控制互联设备

立即下载

大规模保护、更新、监测并控制互联设备

立即下载

返回

管理行业最佳证书的2022年最佳实践指南

了解更多信息

DigiCert TLS/SSL证书

Secure Site Pro TLS/SSL

购买

Secure Site TLS/SSL

购买

基本款TLS/SSL

购买

通配符TLS/SSL

购买

多域名TLS/SSL

购买

证书对比

对比

DigiCert Smart Seal

购买

Verified Mark Certificates

购买

欧盟合格证书(QTSP)

申请

PSD2证书

学习

代码签名证书

购买

客户端(S/MIME)证书

购买

文档签名证书

购买

比较最受信任的证书:

Secure Site Pro TLS/SSL证书

Secure Site TLS/SSL证书

基本款TLS/SSL证书

通配符TLS/SSL证书

多域名(UCC/SAN)TLS/SSL证书

强大的一体式网站安全

优先验证与支持

恶意软件扫描服务

漏洞与PCI扫描

持续的CT日志监测

DigiCert Smart Seal

行业领先的安全赔付金额

数字优先企业的选择

优先验证与支持

恶意软件扫描

DigiCert Smart Seal

领先的安全赔付金额

安全、灵活、必要的证书

屡获殊荣的支持服务

99%的浏览器兼容性

可在OA、EV中提供

DigiCert Basic Seal

灵活、功能强大且易于添加

适用于所有DigiCert OV证书

保护主域名

保护无限子域名

多域名。灵活的选项。

适用于所有DigiCert OV和EV证书

保护多达250个子域名

统一通信证书(UCC)

SAN(使用者可选名称)证书

当今最先进的信任签章

赢得客户信任

提高转化率

83%的消费者喜欢的功能

被消费者评为“最现代”

开始发送客户可信任的电子邮件

通过DMARC降低网络钓鱼风险

在客户的收件箱中实现可视化验证

提高电子邮件的开启率

符合欧盟标准、合格且受到信任

QWAC(合格Web身份验证证书)

eIDAS合格电子签名证书

eIDAS合格电子印章证书

瑞士ZertES证书

荷兰PKIoverheid证书

Netherlands PKIoverheid Certificates

前量子时期是做准备的时期

仅由Secure Site Pro证书提供

预览您的量子准备情况

有效期前和有效期后的混合证书

提供完整的文档

实现PSD2合规性

DigiCert是欧盟合格信任服务提供商(QTSP)

合格TLS/SSL证书

e-Seal和QSealC证书

进行代码签名并保护软件

保护您的IP

可用的OV或EV证书

可选时间戳和密钥库

支持HSM

确保业务安全的客户端证书

使用S/MIME加密电子邮件

启用双因素身份验证

管理对网络资产的访问

用于领先工作流程的受信任的文档签名

建立具有法律约束力的身份

在全球受信任

提供个人或组织证书

管理行业最佳证书的2022年最佳实践指南

立即下载

用于行业最佳证书的最新最佳实践

立即下载

获取已帮助数千家企业改进证书管理的清单

立即下载

获取已帮助数千家企业改进证书管理的清单

立即下载

获取2022版TLS/SSL最佳实践指南

立即下载

获取2022版TLS/SSL最佳实践指南

立即下载

了解DigiCert Smart Seal如何在整个客户之旅中获胜

查看数据

了解VMC可如何同时助力于IT、风险管理与市场营销

获取指南

唯一拥有全球影响力和本地专业知识的合格信任服务提供商

观看视频

请查看PQC工具包文档

查看文档

实现PSD2合规性所需的所有内容

立即下载

大规模管理代码签名、密钥和策略以提升信任

获取指南

网络研讨会

管控设备、身份和证书扩散

立即观看

从全球角度管理文档签名规则

立即下载

返回

网络研讨会

管控设备、身份和证书扩散

立即观看

洞察力

 

DigiCert 实验室

数字信任的 4 个要素

合规案例

零信任: 数字信任的关键

真实世界的数字信任

浏览这些页面,了解 DigiCert 如何帮助组织建立、管理和扩展数字信任,以解决实际问题。

博客

公关与新闻

活动

Ponemon 研究所报告

看看我们的全球后量子研究揭示了世界在为量子计算做准备的竞赛中的现状。

了解更多 >

返回

建立于信任的合作关系

立即观看

DigiCert合作伙伴网络

DigiCert 合作伙伴计划

DigiCert 合作伙伴门户网站

DigiCert技术合作伙伴计划

集成合作伙伴目录

行业和联盟领导

CI+ 伙伴关系

强大的合作伙伴关系在全球提供数字信任:

企业

中小企业

政府

技术联盟

联合体

Cloud Service Providers

建立于信任的合作关系

数字信任解决方案为Acmetek创造了新机会

立即观看

返回

联系我们的支持团队

 

美洲

1.877.438.8776(美国和加拿大免费)

1.520.477.3102

1.801.701.9601(西班牙语)

1.800.579.2848(仅限企业)

1.801.769.0749(仅限企业)

欧洲、中东、非洲

+44.203.788.7741

亚太、日本

+61.3.9674.5500

向销售人员发送电子邮件> 向支持人员发送电子邮件>

支持

支持

PKI支持

联系我们

资源

博客

文档

API文档

知识库

常见问答与解答

什么是SSL证书?

什么是SSL、TLS和HTTPS?

DV、OV和EV SSL证书之间有什么区别?

TLS/SSL如何发挥作用

工具

工具:SSL Install Diagnostic

工具:Certificate Utility for Windows

工具:CSR创建程序

工具:检查CSR

工具:SSL证书安装说明

联系我们的支持团队

技术支持聊天 >

验证聊天 >

销售聊天 >

中国

+86 400 842 8401

向销售人员发送电子邮件 向支持人员发送电子邮件

向销售人员发送电子邮件

向支持人员发送电子邮件

常见问题与解答

安全签名

什么是数字签名?

安全签名

什么是

数字签名?

证书管理

什么是证书生命周期管理?

如何管理数字证书?

证书生命周期中的五个阶段是什么?

什么是证书管理器?

谁管理组织中的TLS/SSL证书?

何时需要证书管理?

需要管理哪些类型的公用证书?

如何识别或定位为您的域名所颁发的公用TLS/SSL证书?

如何实现证书管理自动化?

证书透明度

什么是证书透明度?

证书透明度如何发挥作用?

CA如何提供CT日志证明?

日志、浏览器和CA对证书透明度(CT)的支持情况如何?

代码签名信任

什么是代码签名?

什么是代码签名证书?

有哪些不同类型的代码签名证书?

PKI在代码签名中发挥什么作用?

我们是否能实现代码签名的自动化?

什么是代码签名最佳实践?

什么是用于CI/CD的持续代码签名?

什么是用于DevSecOps的持续代码签名?

如何创建并实施有效的代码签名策略?

如何购买代码签名证书?

合规

什么是合规?

什么是证书颁发机构(CA)?

什么是公认标准委员会X9(ASC X9)和国际标准化组织(ISO)?

什么是证书颁发机构/浏览器论坛(CA/B论坛)?

什么是互联网工程任务组(IETF)?

什么是美国国家标准与技术研究所(NIST)?

什么是美国国家网络安全卓越中心(NCCoE)?

加密

什么是加密或加密算法?

什么是公钥加密?

什么是SSL加密?

什么是公钥加密算法?

什么是RSA加密?

什么是椭圆曲线加密?

什么是预共享密钥加密算法?

公钥/私钥对如何发挥作用?

什么是后量子加密?

域名系统

什么是DNS?

DNS查找如何发挥作用?

什么是DNS记录?

我的IP地址是什么?

递归DNS和权威DNS之间有什么区别?

什么是主DNS?

什么是动态DNS?

什么是DNS传播?

什么是TLD?

什么是TTL?

什么是TXT记录?

什么是MX记录?

如何刷新DNS缓存?

电子邮件信任

什么是Verified Mark Certificate(VMC)?

获取Verified Mark Certificate(VMC)需要哪些步骤?

什么是DMARC?

什么是BIMI,为什么它很重要?

什么是S/MIME或加密电子邮件?

什么是客户端证书?

身份与访问信任

什么是身份信任?

企业每天如何使用PKI?

什么是私有PKI与公共PKI?

有关安全性和信任的行业标准

什么是Open Connectivity Foundation(OCF)?

什么是PCI SSC?

AeroMAC和WiMax如何使用PKI来确保信任?

CableLabs如何使用PKI来确保信任?

公共接口Plus如何使用PKI来确保信任?

什么是SAE?

什么是美国国家紧急号码协会?

什么是USB Implementers Forum?

什么是WInnForum?

什么是ZigBee Alliance?

什么是Project CHIP?

IoT/设备信任

什么是物联网(IoT)?

什么是IoT设备身份生命周期管理?

什么是DigiCert IoT Trust Manager?

为什么IoT设备管理很重要?

与信任相关的市场趋势

公共信任与证书

什么是SSL?

什么是数字证书?

什么是扩展验证(EV)SSL证书?

什么是通配符证书?

什么是合格证书?

什么是Verified Mark Certificate(VMC)?

TLS/SSL证书的验证方法是什么?

TLS/SSL证书的有效期有多长?

什么是网站签章或信任标记?

什么是CT日志?

如何订购TLS/SSL证书?

如何安装TLS/SSL证书?

如何续订TLS/SSL证书?

什么是TLS/SSL握手?

客户端证书与服务器证书之间有什么区别?

DigiCert TLS/SSL证书是否与我的浏览器兼容?

什么是多域名(SAN)证书?

什么是DigiCert 30天退款保证?

教育机构使用哪种类型的SSL证书?

安全签名

什么是电子签名?

什么是数字签名?

电子签名和数字签名有什么区别?

数字签名的保障级别是什么?

我需要哪种类型的数字签名?

什么是电子印章或eSeal?

什么是电子时间戳?

如何验证我的身份以签署文档?

什么是eIDAS?

什么是合格电子签名?

哪些行业受益于安全签名?

什么是欧洲技术标准协会(ETSI)?

什么是信任服务提供商?

什么是云签名联盟?

什么是身份验证?

DigiCert是否能与Adobe配合使用?

SHA-2

为什么要迁移至SHA-2 TLS/SSL证书?

将SHA-1证书迁移至SHA-2哈希算法

SHA-2是否存在兼容性问题?

SHA-2常见问题与解答

信任与PKI

什么是数字信任?

什么是公共信任?

什么是托管PKI?

PKI证书有哪些类型?

PKI证书验证流程是什么?

为什么PKI很重要,它如何增强信任?

什么是数字证书,为什么数字证书很重要?

DigiCert数字证书是否适用于我的服务器?

什么是PKI即服务?

漏洞管理

什么是加密灵活性?

什么是Always on SSL(AOSSL)?

什么是漏洞评估扫描?

什么是PCI扫描服务?

什么是阻止列表检查?

什么是证书自动化?

什么是证书发现服务?

病毒、蠕虫和特洛伊木马程序之间的区别是什么?

什么是恶意软件、病毒、间谍软件和Cookie?

什么是HTTPS无处不在?

什么是数字签名?

数字签名使用公钥基础设施(PKI)技术将信任服务提供商(TSP)颁发的数字签名证书加密绑定到文档。数字签名验证签名者身份和文档完整性,提供更高级别的保障,即签名者的身份是真实的而且文档未被更改。对于需要更高安全级别的交易,数字签名是理想选择,而且数字签名在某些国家和地区是必不可少的,企业必须在这些国家和地区遵守相关法规,例如欧盟的eIDAS和瑞士的ZertES。在一些国家,某些形式的数字签名具有等同于手写签名的法律效力。

DigiCert® Document Trust Manager提供符合欧盟eIDAS和瑞士ZertES签名法以及世界各地其他签名法的安全、受信任的数字签名。了解有关国家/地区法规的更多信息

数字签名如何发挥作用?

数字签名建立在多个安全和治理层之上。签名通过在整个文档或消息中应用数学算法或哈希函数及时间戳而生成,之后使用公钥加密方法进行加密。此方法使用一对加密密钥,即公钥和私钥来进行加密和解密。签名者使用其私钥加密哈希,而阅读者使用签名者的公钥解密哈希。密钥的安全性与分发、对签名者身份的证明或验证、提供身份验证的第三方(证书颁发机构)以及签名的信任级别由公钥基础设施(PKI)所管理,公钥基础设施是一种广泛用于保护互联网上的交易和通信的方法。

为什么我需要用于数字签名的证书?

证书由受信任的服务提供商(TSP)和/或DigiCert等证书颁发机构颁发。此证书用于促进身份保障与加密,并提供两个实体之间的安全通信。证书由电子文档组成,此文档将签名者的数据及签名的验证链接到自然人或组织的明确身份。

用于数字签名的证书主要有两种类型:Adobe Approved Trust List (AATL)证书与合格证书。这两类证书之间的主要区别在于谁获得了颁发证书的认证。Adobe批准的受信任的服务提供商(TSP)颁发AATL证书,而只有合格信任服务提供商(QTSP)才能颁发合格证书。TSP不需要独立审计,也未被列入欧盟信任清单,而QTSP由国家确定的提供认证的监督机构所控制。QTSP还可以提供以下信任服务:

电子签名

电子印章

电子时间戳

电子注册递送服务

网站身份验证证书

最受信任的高保障度TLS/SSL、PKI、IoT 与签名解决方案的全球提供商。 

相关资源

公共关系/新闻

博客

媒体库

什么是PKI?

什么是SSL, TLS和HTTPS?

公司

简介

人才招聘

活动

领导团队

历史

联系我们

我的账户

知识库

文档

支持

开发人员

常见问题与解答

所有产品

更改日志

网站签章

解决方案

自动化解决方案

ServiceNow解决方案

加密解决方案

CI/CD解决方案

安全电子邮件解决方案

代码解决方案

设备解决方案

文档解决方案

CI-Plus解决方案

版权所有©2023 DigiCert,Inc.。保留所有权利。

法律知识库

WebTrust审核

使用条款

隐私政策

辅助功能

Cookie设置

密码应用安全性评估要点之数字签名技术 - FreeBuf网络安全行业门户

密码应用安全性评估要点之数字签名技术 - FreeBuf网络安全行业门户

主站 分类

漏洞

工具

极客

Web安全

系统安全

网络安全

无线安全

设备/客户端安全

数据安全

安全管理

企业安全

工控安全

特色

头条

人物志

活动

视频

观点

招聘

报告

资讯

区块链安全

标准与合规

容器安全

公开课

报告 专辑 ···公开课···商城···

用户服务

··· 行业服务

政 府

CNCERT

CNNVD

会员体系(甲方)

会员体系(厂商)

产品名录

企业空间

知识大陆 搜索 创作中心 登录注册 官方公众号企业安全新浪微博 FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。 FreeBuf+小程序把安全装进口袋 密码应用安全性评估要点之数字签名技术

关注

数据安全 密码应用安全性评估要点之数字签名技术

2022-06-02 10:38:47

所属地 上海 数字签名技术是现代密码算法中非对称密码算法和消息摘要算法相结合的十分优秀的解决方案,应用面广泛,涉及到的知识点很多,本文将从概念、技术实现、合规性分析等方面逐一进行讲解。

1.数字签名的含义和目标1.1 什么是数字签名数字签名(digital signature)是公钥密码算法的一类典型应用,常见应用场景为:发送方使用其私钥对消息进行处理得到签名值,接收方使用发送方的公钥对消息和签名值进行验证,简称“私钥加签,公钥验签”(相对应的使用公钥密码算法进行加密的流程为:“公钥加密,私钥解密”)。在此过程中可能使用到的主要密码算法有:非对称密码算法(又称公钥密码算法)、哈希算法(又称消息摘要算法、杂凑算法等)。1.2 为什么要使用数字签名数字签名可以视为传统意义上的签名在网络虚拟环境中的映射,用来确保通信网络中用户身份的真实性、所发送消息的完整性,以及消息发送行为的不可否认性。本文重点讨论数字签名技术如何实现对真实性和不可否认性的保护。真实性(Authenticity)需要解决的问题是:如何证明你是你(对这个问题的讨论已经上升到了哲学命题的高度)。常见的基于密码学技术的实现方式有:动态口令机制、基于对称密码算法或密码杂凑算法的消息鉴别码机制、基于公钥密码算法的数字签名机制等。有兴趣的读者可以去GB/T 15843《信息技术 安全技术 实体鉴别》中详细了解。不可否认性(Non-Repudiation)需要解决的问题是:避免用户对自身发起的行为的抵赖,又称抗抵赖。常见的基于密码学技术的实现方式为基于公钥密码算法的数字签名机制。2.数字证书及PKI体系上文中提到,数字签名的过程是使用用户私钥对消息进行处理进而得到签名值的过程,而提到公私钥对就不得不了解作为基础技术支撑的数字证书及其背后的PKI体系了。2.1 数字证书格式数字证书以ASN.1编码规范来进行描述。符合X.509 v3 版本的数字证书结构如下:证书版本号序列号签名算法颁发者证书有效期此日期前无效此日期后无效主题主题公钥信息公钥算法主题公钥颁发者唯一身份信息(可选项)主题唯一身份信息(可选项)扩展信息(可选项)...证书签名算法数字签名以下就是一个典型的SSL站点证书。主流的数字证书格式有der、pem、pfx、p7b等,文件后缀有cer、crt、p12等,区别主要在于编码格式是二进制还是ASCII码,不同操作系统的支持情况也不一样。关于数字证书的基础知识我们就介绍到这里,读者暂时只需要知道如何从数字证书中提取出公钥即可。以上图为例,此站点SSL证书中的公钥字段里面的以04e8开头的值就是这张证书的公钥,是公开给所有需要访问该站点的用户或终端的,通过使用这张证书,客户端可以实现对服务端的身份鉴别,同时可以为后续建立的SSL加密链路提供基础保证。2.2 PKI体系了解了数字证书的结构和作用以后,可能有读者会问那么数字证书是如何生成和注销的?这就需要依赖于一套完整的PKI体系了。PKI全称为Public Key Infrastructure公钥基础设施,该体系解决了证书生命周期相关的认证和管理问题,而这些功能主要依托于CA、RA等模块来实现。CA(Certification Authority)负责证书的颁发和吊销,接收来自 RA 的请求。RA(Registration Authority)对用户身份进行验证,校验数据合法性,审核通过以后将请求转发给 CA。证书资料库用来存储已签发的数字证书和公钥以及相关证书目录。证书吊销列表CRL/OSCP用来管理数字证书的注销等事宜。由于数字证书是由CA签发的,因此CA的权威性直接影响到数字证书的可信程度,一般来说由世界公认的顶级CA签发的证书都是被认为相对可信的,这也是为什么同样是HTTPS站点,浏览器提示有的站点的连接是安全的,有的是不安全的。原因就在于大部分浏览器和操作系统都内置了顶级CA的证书,通过对站点证书进行证书链验证以后,如果颁发该站点证书的CA机构在“受信任的根证书颁发机构”内,就会提示“连接是安全的”,如果不在,就会提示风险。3.数字签名的原理及常见算法下面介绍两种典型的数字签名算法实现原理,一种是国际通用算法中比较常见的RSA算法,另一种是我国商用密码算法体系中的SM2算法。3.1 RSA算法数字签名流程RSA是基于大素数分解难题的非对称密码算法,目前是世界通用的公钥密码算法之一。签名过程随机选择两个不相等的素数p和q,并计算n=p*q计算n的欧拉函数φ(n)=(p-1)(q-1)随机选择一个整数e(在1和r中间且与r互质)计算e对于φ(n)的模反元素d,满足e*d = 1 mod φ(n)将n和e封装成公钥,n和d封装成私钥计算消息m的消息摘要,记为 h(m)使用私钥(n,d)对h(m)加密,生成签名s = (h(m))^d mod n验签过程计算消息m的消息摘要,记为h(m)使用A的公钥(n,e) 和收到的s来计算H(m) = s^e mod n比较H(m)与h(m),相同则说明签名验证通过3.2 SM2算法数字签名流程SM2是我国密码商用密码算法体系中基于ECC椭圆曲线的公钥密码算法,在GB/T 32918.2-2016《信息安全技术 SM2椭圆曲线公钥密码算法 第2部分:数字签名算法》中详细介绍了SM2算法签名及验签过程的实现。签名过程G为选定椭圆曲线上的基点,选取dA为私钥,pA为公钥,pA=dA*G签名者用户A具有长度为entlenA比特的可辨别标识IDA,若没有特殊指定则一般默认为0x31323334353637383132333435363738ENTLA是由整数entlenA转换而成的两个字节待签名的消息为MZA=H256(ENTLA || IDA || a || b || xG || yG|| xA || yA),a、b为Fq中的元素,用来定义椭圆曲线,对于SM2算法而言一般来说是固定的,xG、yG和xA、yA分别为G点和pA点的横、纵坐标,ZA经过杂凑函数运算后长度为256位的杂凑值e=H(ZA||M),H为输出长度为固定位数的杂凑函数选取随机数k,计算(x1,y1)=k∗G计算r=(e+x1) mod n计算s=(k−r∗dA)/(1+dA) mod n(r,s)即为签名值验签过程首先验证r和s是否在(1,n-1)集合中,若不在则验证失败随后计算t=(r+s) mod n ,如果t=0则验证失败然后通过t与s计算曲线上的点(x1,y1)=s∗G+t∗PA再计算R=(x1+e) mod n ,然后验证R与r是否相等,如果相等则表明验签通过。可以看到,无论是RSA算法还是SM2算法,在对数据进行签名之前都会先进行哈希运算,实际上被签的数据并不是明文的消息值,而是经过各种处理后的消息摘要值,这也是数字签名技术无法用来保证数据机密性的原因。3.3 攻击方法RSA算法和SM2算法作为现代公钥密码算法的代表自身强度是经过时间考验的,然而这并不意味着绝对的安全,在配置失误的时候还是可能存在被攻击的风险的。由于在非对称密码算法中公钥是公开的,因此对私钥的保护要慎之又慎,私钥被破解也就意味着攻击者可以进行身份伪装、数据解密等操作。基于大素数分解难题的公钥密码算法中的n=p*q,若选取过小,可能导致过于简单的大数分解,进而破解出用户私钥,此类问题也是CTF中的Cryto类的重点考察对象。而对基于ECC算法的公钥密码算法而言,随机数k如果固定,在获取两个不同用户的签名值的前提下可推导出私钥。这个漏洞最出名的安全事件是2010年Sony的PS3事件。除了RSA和SM2算法以外,还有DSA/ECDSA等算法可用作数字签名,而这些公钥密码算法除了可做数字签名以外还可以用来进行数据加解密、密钥协商等。出于摩尔定律和安全性的考量,目前密钥长度在2048位以下的RSA算法以及同等强度的密码算法已经被认为不再安全。在基于椭圆曲线上离散对数难题的密码算法实现中,算法的强度很大程度取决于选取的椭圆曲线。对于某些因曲线参数选取不当导致的弱曲线,则存在特殊的算法来显著降低计算复杂度,从而高效地求解离散对数问题,即可能存在后门漏洞。因此基于椭圆曲线密码算法实现过程中,建议使用我国商用密码体系的SM2算法以及GB/T 32918.5-2017《信息安全技术 SM2椭圆曲线公钥密码算法 第5部分:参数定义》标准定义的椭圆曲线参数。4.数字签名格式解析及验证4.1 常见数字签名格式PKCS#1又称裸签(Raw Sign),即签名值中只有签名信息,不包含消息值、用户证书等信息的数字签名格式。PKCS#7即签名中可以附带其他信息,如:签名证书信息、签名原文信息等。值得一提的是PKCS#7不仅仅可作为数字签名的格式规范,也可以用于封装证书、数字信封等。P7格式的数字签名又可以细分为以下两种。attached模式,又称P7A,即签名值中包含被签名的原文,但明文必须经过ASN.1编码。这样处理的话在通信过程中就无需重复传递原文,但会增加签名值的长度。detached模式,又称P7D,格式中不包含被签名原文信息。因此在对端进行验签操作的时候,还需要额外传递消息值才可进行验证。值得一提的是不管是P7A还是P7D格式的签名,被签名的原文可能都经过预处理,当验签不通过,而签名值、公钥都没问题的话,就需要考虑签名原文的格式是否正确了,需要具体情况具体分析。4.2 数字签名的验证方法a.密码产品实际运维过程中的身份鉴别实例某密码厂商的KMS(密钥管理系统)产品在设备运维过程中使用”账户名”+“口令”以及Ukey+Pin码进行登录,这是一个非常典型的基于挑战响应机制的SM2算法签名验签来保证运维用户身份真实性的案例。整个身份鉴别过程的具体步骤如下:1、首次打开设备运维页面时服务端向客户端传递一个随机数,也就是身份鉴别过程中所谓的challenge“挑战”。使用代理工具进行截包,可以看到服务端返回了一个base64格式编码的random随机数字段。2、客户端将该随机数传递给本地端口提交签名请求,智能密码钥匙进行运算得出签名值并返回。3、客户端通过浏览器将签名值及其他登录的必要参数传给服务端,由服务端进行验签,通过后完成对客户端的身份鉴别及授权。下面我们从交互的数据包中提取必要的元素进行数字签名的验证:通过对签名字段进行分析,发现是一个PKCS#7Attached格式的签名,签名数据中了包含了验签所需要的三要素:签名值、公钥、原文。使用ASN.1分析工具可以看到签名值中包含了服务器发回的随机数字段。从客户端用户的数字证书中提取SM2算法公钥:从签名字段中找到messageDigest并进行提取(消息值经过预处理的中间原文),以及最下方的签名值r+s格式:将签名值、公钥及原文代入算法验证工具后签名成功通过验证。b.使用数字签名技术保证电子签章的不可否认性某公文流转系统中需调用ukey对上传的PDF版报告进行电子签章,此过程中使用了RSA算法保证签名的不可否认性。具体流程如下:1、客户端上传报告后,服务端向客户端返回对应的消息摘要值:2、客户端向服务端发送客户端证书及文件id等信息:3、客户端向服务端提交由RSA格式数字签名完成电子签章行为:下面尝试使用openssl工具对此过程中进行的RSA数字签名操作进行验签。从第一步中把服务端返回的文件摘要值base64解码后保存为验签所需的的原文的文件。从第2步的数据包中提取用户证书。使用openssl工具进行RSA签名验证前需要先从cer格式的数字证书中导出pem格式的公钥文件。将pem格式公钥文件进行base64解码并借用ASN.1分析工具可以看到,文件头中添加了RSA的算法标识符字段。将第3步中客户端提交的签名值字段同样base64解码后另存为签名文件。使用openssl工具进行RSA验签,指定数字证书文件、签名文件、原文、消息摘要算法,成功通过签名验证。5.数字签名技术在密评及等保中的合规性判定上文中提到,数字签名技术主要用来保护信息系统的真实性和不可否认性,而在我国的等保和密评合规体系的技术维度中也分别对相关的技术实现提出了保护要求,二者的测评要求和判定准则都是有区别的。前者主要依据的标准是GB/T 22239《信息安全技术 网络安全等级保护基本要求》;后者主要依据的标准是GB/T 39786《信息安全技术 信息系统密码应用基本要求》;就测评要求而言,密评考察的更加细致,技术层面的测评指标分为DAK三个维度进行量化打分。5.1 真实性等保三级系统中涉及到真实性的测评项主要有:8.1.4.1安全计算环境-身份鉴别d)应采用口令、密码技术、生物技术等两种或两种以上组合的鉴别技术对用户进行身份鉴别,且其中一种鉴别技术至少应使用密码技术来实现。密评三级系统中涉及到真实性的测评项主要有:8.1 物理和环境安全a) 宜采用密码技术进行物理访问身份鉴别,保证重要区域进入人员身份的真实性8.2 网络和通信安全a) 应采用密码技术对通信实体进行身份鉴别,保证通信实体身份的真实性e) 可采用密码技术对从外部连接到内部网络的设备进行接入认证,确保接入的设备身份真实性8.3 设备和计算安全a) 应采用密码技术对登录设备的用户进行身份鉴别,保证用户身份的真实性f) 宜采用密码技术对重要可执行程序进行完整性保护,并对其来源进行真实性验证8.4 应用和数据安全a) 应采用密码技术对登录用户进行身份鉴别,保证应用系统用户身份的真实性以上文4.2.a为例,密码产品的运维在等保测评中属于安全计算环境层面,在密评中属于设备和计算安全层面。本案例中,在密码产品的运维过程中使用了基于“挑战”-“响应”机制的SM2算法数字签名技术,辅助账户名+口令进行身份鉴别。* 从等保的角度来考察,案例中对密码产品的运维采用的是账户名口令以及智能密码钥匙的双因素认证,智能密码钥匙使用过程中进行的数字签名是密码技术的一种,因此是满足等级保护中安全计算环境-身份鉴别测评项相关要求的。

* 从密评的角度来考察,还需要进一步分析身份鉴别过程中的算法及密钥合规性处理,用于进行密码运算智能密码钥匙和密钥管理系统都是取得了国家密码管理局商用密码产品认证证书的合规的密码产品,因此D、A、K三项都是符合的,也是满足设备和计算层面身份鉴别测评项相关要求的。

5.2 不可否认性等保2.0中在四级及以上系统中提出了抗抵赖的要求:9.1.4.7安全计算环境-数据完整性c)在可能涉及法律责任认定的应用中,应采用密码技术提供数据原发证据和数据接收证据,实现数据原发行为的抗抵赖和数据接收行为的抗抵赖密评三级系统中涉及到不可否认性的测评项主要有以下:8.4 应用和数据安全-不可否认性h)在可能涉及法律责任认定的应用中,宜采用密码技术提供数据原发证据和数据接收证据,实现数据原发行为的不可否认性和数据接收行为的不可否认性以上文中的4.2.b为例,电子签章发生在应用层面公文流转的业务流程中,因此属于等保测评的安全计算环境层面,密评的应用和数据层面。* 从等保的角度来考察,使用了基于RSA算法的数字签名技术实现了电子签章的不可否认性。

* 从密评的角度来考察,使用了非合规的RSA算法,D项可判符合,A项应判为不符合,由于参与RSA签名验签运算的智能密码钥匙和电子签章服务器均为合规的商用密码产品,因此K项应判为符合。应用和数据层面的不可否认性测评项最终综合得分为0.5分,部分符合。

6.数字签名的新技术和新应用6.1 新兴技术为了避免医患之间因为治疗产生的医疗纠纷事件,治疗方案可采用群签名或环签名技术,既有医生的签名,同时也不透露签名医生信息,在一定程度上可避免医患之间的纠纷。又如在:机密信息的批露、领导人的选举、电子商务、重要新闻发布、无线传感器网络等场景中,环签名都可发挥重要作用。在群签名方案中,群成员可以匿名代表整个群对消息签名,同时具备不可伪造性、可追踪性、不关联性和防陷害性等特征。在一个群签名方案中,群体中的成员都可以生成群签名,外界可以验证其合法性,但无法确定到底是哪一个成员,即匿名性。若外界对群签名存在争议,此时群管理员只需“打开”争议的签名,揭示真正的签名者,即追踪性。6.2 区块链&Web3比特币之父中本聪选用了基于secp256k1椭圆曲线的ECDSA算法来进行数字签名,这就是数字签名在区块链中的核心应用。区块链通过使用基于共识机制来检测交易的有效性,使用分布式数据库来保存数据记录,人们可以在一个共享账本中储存数据、交换价值并记录交易活动,而其中的每一笔交易的背后都有数字签名技术的支撑。区块链技术同时也是Web3的支柱,提供了安全的执行层,可以在其中创建、发行并交易加密资产,并且开发可编程的智能合约。 本文作者:,

转载请注明来自FreeBuf.COM # 密码技术 # 密评

被以下专辑收录,发现更多精彩内容

+ 收入我的专辑

+ 加入我的收藏

展开更多

相关推荐

关 注 0 文章数 0 关注者

文章目录

5.1 真实性 5.2 不可否认性6.1 新兴技术6.2 区块链&Web3 本站由阿里云 提供计算与安全服务 用户服务 有奖投稿 提交漏洞 参与众测 商城 企业服务 安全咨询 产业全景图 企业SRC 安全众测 合作信息 斗象官网 广告投放 联系我们 友情链接 关于我们 关于我们 加入我们 微信公众号 新浪微博 战略伙伴 FreeBuf+小程序 扫码把安全装进口袋 斗象科技 FreeBuf 漏洞盒子 斗象智能安全平台 免责条款 协议条款

Copyright © 2020 WWW.FREEBUF.COM All Rights Reserved

   沪ICP备13033796号

|

沪公安网备

10.什么是数字签名? - 知乎

10.什么是数字签名? - 知乎首页知乎知学堂发现等你来答​切换模式登录/注册签名数字签名《电子签名法》10.什么是数字签名?关注者9被浏览11,682关注问题​写回答​邀请回答​好问题​添加评论​分享​7 个回答默认排序放心签电子合同您放心的电子合同专家​ 关注数字签名是什么?数字签名是只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明。它是一种类似写在纸上的普通的物理签名,但是使用了公钥加密领域的技术来实现的,用于鉴别数字信息的方法。这种电子式的签名还可进行技术验证,其验证的准确度是一般手工签名和图章的验证无法比拟的。数字签名是目前应用最普遍、技术最成熟、可操作性最强的一种电子签名技术。目前电子签名法中提到的签名,一般指的就是数字签名。数字签名的原理数字签名技术是利用算法(一般是非对称算法)通过hash函数对原文进行hash值私钥(仅个人所有)加密,生成数字签名,与原文一起传送给接收者。接收者只有用发送者的公钥才能解密被加密的信息,然后对内容执行hash运算得到hash值,与解密得到的数字签名hash值比对。如果比对结果一致,则说明收到的信息是完整的,在传输过程中没有被篡修改的,否则信息一定被修改过。因此数字签名能够验证数据来源以及信息的保密性、完整性、真实性和不可否认性。数字签名的作用数字签名机制作为保障网络信息安全的手段之一,可以解决伪造、抵赖、冒充和篡改问题。数字签名的目的之一就是在网络环境中代替传统的手工签字与印章,有着重要作用。1、防冒充(伪造)。私有密钥只有签名者自己知道,其他人不能伪造签名。2、可鉴别身份。在数字签名中,客户的公钥是其身份的标志,当使用私钥签名时,如果接收方或验证方用其公钥进行验证并获通过,那么可以肯定,签名人就是拥有私钥的那个人,因为私钥只有签名人知道。3、防重放。数字签名过程中,对签名报文添加时间戳、流水号等技术,可以防止重放攻击。4、防篡改 (防破坏信息的完整性)。数字签名与原始文件和摘要形成一个混合的整体数据一起发送给接收者,一旦信息被篡改,接收者可通过计算摘要和验证签名来判断该文件无效,从而保证了文件的完整性。5、防抵赖。如前所述,数字签名可以鉴别身份,不可能冒充伪造。数字签名即可以作为身份认证的依据,也可以作为签名者签名操作的证据。在数字签名体制中,要求接收者返回一个自己签名的表示收到的报文,给对方或者第三方或者引入第三方机制。如此操作,双方均不可抵赖。6、机密性。手写签字的纸质文件是不具备保密性的,文件一旦丢失,内容信息极可能泄露。但数字签名可以加密要签名的消息,在网络传输中,可以将报文用接收方的公钥加密,以保证信息机密性。发布于 2019-11-09 10:18​赞同 1​​添加评论​分享​收藏​喜欢收起​微签-审批电子签章和电子合同管理​已认证账号​ 关注什么是数字签名呢?楼上对于数字签名的概念已经进行了科普,那么今天我们就来实际操作一下数字签名是如何实现的 。so easy !!!而且我们无需下载软件,通过微信小程序就能够体验数字签名啦首先第一步:打开微信 我们都有微信的对吧,首先拿出手机微信小程序搜索“微签”,点进“微签云”第二步:登录“微签”进入小程序后,使用手机验证码登录就可以立即体验。如果是第一次使用的小伙伴,要点击注册账号哦~第三步:上传文件或一张白纸完成登录后,就来到我们的工作台啦,此时会看到工作台会有很多功能,我们呢只需要点击“我要签章”然后导入文件,小程序端的导入接口可以通过文件、直接拍照和相册导入的形式,我们借助文件传输助手,选中需要签字的文件点击“确定”。文件或白纸导入后,再点击下方绿色框“签字/签章”第四步:电子签点击之后页面下方就会出现一系列操作样式,我们呢只需要需点击“签名”就可以啦点击之后呢,我们手机页面就会出现电子版签名面板,灵活的移动端面板任您随意挥洒~签好后点击“保存”,这样电子版签名就会自动跳转到文件上了,此时我们可以随意拖拽文本框调整签名的位置和大小,调整好之后点击“完成”电子版电子签名就完成啦!发布于 2021-08-12 10:28​赞同​​添加评论​分享​收藏​喜欢