导航:首页 > 源码编译 > 各个算法签名与验证过程的异同

各个算法签名与验证过程的异同

发布时间:2023-01-21 11:34:22

Ⅰ 电子认证和电子签名的区别是什么

一、定义不同。

电子认证是以核心电子书(又称数字证书)为核心技术的加密技术,它以PKI技术为基础,对网络上传输的信息进行加密、解密、数字签名和数字验证。

电子签名是指以电子形式所含、所附用于识别签名人身份并表明签名人认可其中内容的数据。就是通过密码技术对电子文档的电子形式的签名。

二、应用场景不同。

电子认证主要应用于电子交易的信用安全方面,保障开放性网络环境中交易人的真实与可靠。电子认证是确定某个人的身份信息或者是特定的信息在传输过程中未被修改或者替换。电子认证即可以在当事人相互之间进行,也可以由第三方来做出鉴别。

电子签名主要应用于网上银行、实体银行、电子政务、电子合同的签署以及电信、银行营业厅等场所。特别是随着互联网的发展,网上银行采用基于电子签名身份认证,应用十分广泛。

Ⅱ RSA加密与签名的区别

RSA加密:RSA密码体制是一种公钥密码体制,加密算法公开,以分配的密钥作为加密解密的关键。一般来说,在一对公私钥中,公钥和私钥都可以用来加密和解密,即公钥加密能且只能被对应的私钥进行解密,私钥加密能且只能被对应的公钥进行解密。但我们一般都用公钥加密,私钥解密,而且生成的私钥往往会比公钥蕴含了更多的信息量。(这里说的加密肯定是可逆的,不然直接销毁就可以了没必要再去加密,加密是为了保障数据的安全和验证身份。)

RSA签名:签名就是在这份资料后面增加一段强而有力的证明,以此证明这段信息的发布者和这段信息的有效性完整性。RSA签名常用的就是将这份信息进行hash,得到一个hash值,再将hash值加密作为签名,后缀在信息的末尾。接收方接到传输的资料后,使用私钥解密这段加密过的hash,得到hash值,然后对信息原文进行hash,对比两次hash是否一致(验签)。签名的过程是不可逆的,因为hash是不可逆的,毕竟那么大的文件被hash成一段字符串还能还原的话那就碉堡了。

在使用RSA进行通讯的时候,一般是两者结合,即:加密>签名>解密>验签

我们可以对一份资料用公钥加密,再用私钥解密,但我们对这份资料进行签名则是不可逆的,因为哈希本身是不可逆的。

前者使用加密保障内容不被泄露,后者使用加密用来身份验证。

这是因为防止中间人尝试向私钥拥有者反复发送一些特定的字符,得到加密后的信息,达到破解或者伪造之类的目的。所以用私钥随便加密信息是不安全的。

由于RSA签名与加密需要比平时的通讯产生更多的工作量,所以一般只会用在需要保证数据安全的地方(但随着设备性能的提升它会扩展到很多方面,毕竟保证隐私也是很重要的,虽然有些人并不在乎这些)。HTTPS的加密解密可以参考 http://www.jianshu.com/p/1b48c37b94b9

Ⅲ 数字签名与身份认证的异同点

身份认证跟现实中的身份认证一样,需要通过某种手段来验证用户的身份。身份认证是用来获得对谁或对什么事情信任的一种方法。
数字签名是用于确认发送者身份和消息完整性的一个加密的消息摘要。数字签名与手写签名类似,只是数字签名是模拟的,因人而异,数字签名是0和1的数字串,因消息而异。数字签名满足以下要求:
收方能确认发方的的签名,但不能伪造。
收方发出签名以后,就不能否认。
收方对收到的签名消息不能否认,即有收报认证;
第三者可以确认收发双方之间的消息传送,但不能伪造这一过程。

Ⅳ 你必须了解的,区块链数字签名机制

       区块链使用Hash函数实现了交易信息和地址信息的不可篡改,保证了数据传输过程中的完整性,但是Hash函数无法实现交易信息的 不可否认性 (又称拒绝否认性、抗抵赖性,指网络通信双方在信息交互过程中, 确信参与者本身和所提供的信息真实同一性 ,即所有参与者不可否认或抵赖本人的真实身份,以及提供信息的原样性和完成的操作与承诺)。区块链使用公钥加密技术中的数字签名机制保证信息的不可否认性。

       数字签名主要包括签名算法和验证算法。在签名算法中,签名者用其私钥对电子文件进行签名运算,从而得到电子文件的签名密文;在验证算法中,验证者利用签名者的公钥,对电子文件的签名密文进行验证运算,根据验证算法的结果判断签名文件的合法性。在签名过程中,只有签名者知道自己的私钥,不知道其私钥的任何人员无法伪造或正确签署电子文件;在验证过程中,只有合法的签名电子文件能有效通过验证,任何非法的签名文件都不能满足其验证算法。

       常用的数字签名算法包括RSA数字签名、DSA数字签名、ECDSA数字签名、Schnorr数字签名等算法。

      我们以RSA数字签名来介绍:可能人们要问RSA签名和加密有什么 区别 呢?加密和签名都是为了安全性考虑,但略有不同。常有人问加密和签名是用私钥还是公钥?其实都是对加密和签名的作用有所混淆。简单的说, 加密 是为了 防止信息被泄露 ,而 签名 是为了 防止信息被篡改 。

      例子:A收到B发的消息后,需要进行回复“收到”-- RSA签名过程 :

      首先: A生成一对密钥(公钥和私钥),私钥不公开,A自己保留。公钥为公开的,任何人可以获取。

      然后: A用自己的私钥对消息加签,形成签名,并将加签的消息和消息本身一起传递给B。

      最后: B收到消息后,在获取A的公钥进行验签,如果验签出来的内容与消息本身一致,证明消息是A回复的。

       在这个过程中,只有2次传递过程,第一次是A传递加签的消息和消息本身给B,第二次是B获取A的公钥,即使都被敌方截获,也没有危险性,因为只有A的私钥才能对消息进行签名,即使知道了消息内容,也无法伪造带签名的回复给B,防止了消息内容的篡改。

综上所述,来源于书本及网络,让我们了解的有直观的认识。

Ⅳ 数字签名与身份认证有什么异同可否举例说明一下。

数字签名:算法公开,私钥保密的加密算法,可以确定作者的身份;
身份认证:通常指基于第三方认证机构的认证方式,一个可信赖的第三方机构提供认证服务。

Ⅵ 签名算法怎么来的

数字签名算法分析与Hash签名

序:这篇文章我用了近一周的时间完成,其中涉及到的RSA算法已经在上一篇《公钥密码体系》中详细的介绍过,目前数字签名中人们使用很多的还是512位与1024位的RSA算法。


摘要: 数字签字和认证机构是电子商务的核心技术。数字签名作为目前Internet中电子商务重要的技术,不断地进行改进,标准化。本文从数字签名的意义出发,详细介绍了数字签名中涉及到的内容与算法,并自行结合进行改进。

关键词:Internet公钥加密 Hash函数 电子商务加密数字签名

数字签名简介

我们对加解密算法已经有了一定理解,可以进一步讨论"数字签名"(注意不要与数字认证混淆)的问题了,即如何给一个计算机文件进行签字。数字签字可以用对称算法实现,也可以用公钥算法实现。但前者除了文件签字者和文件接受者双方,还需要第三方认证,较麻烦;通过公钥加密算法的实现方法,由于用秘密密钥加密的文件,需要靠公开密钥来解密,因此这可以作为数字签名,签名者用秘密密钥加密一个签名(可以包括姓名、证件号码、短信息等信息),接收人可以用公开的、自己的公开密钥来解密,如果成功,就能确保信息来自该公开密钥的所有人。

公钥密码体制实现数字签名的基本原理很简单,假设A要发送一个电子文件给B,A、B双方只需经过下面三个步骤即可:

1. A用其私钥加密文件,这便是签字过程

2. A将加密的文件送到B

3. B用A的公钥解开A送来的文件

这样的签名方法是符合可靠性原则的。即:

签字是可以被确认的,
签字是无法被伪造的,
签字是无法重复使用的,
文件被签字以后是无法被篡改的,
签字具有无可否认性,
数字签名就是通过一个单向函数对要传送的报文进行处理得到的用以认证报文来源并核实报文是否发生变化的一个字母数字串。用这几个字符串来代替书写签名或印章,起到与书写签名或印章同样的法律效用。国际社会已开始制定相应的法律、法规,把数字签名作为执法的依据。

数字签名的实现方法

实现数字签名有很多方法,目前数字签名采用较多的是公钥加密技术,如基于RSA Data Security公司的PKCS(Public Key Cryptography Standards)、DSA(Digital Signature Algorithm)、x.509、PGP(Pretty Good Privacy)。1994年美国标准与技术协会公布了数字签名标准(DSS)而使公钥加密技术广泛应用。同时应用散列算法(Hash)也是实现数字签名的一种方法。

非对称密钥密码算法进行数字签名

算法的含义:

非对称密钥密码算法使用两个密钥:公开密钥和私有密钥,分别用于对数据的加密和解密,即如果用公开密钥对数据进行加密,只有用对应的私有密钥才能进行解密;如果用私有密钥对数据进行加密,则只有用对应的公开密钥才能解密。

使用公钥密码算法进行数字签名通用的加密标准有: RSA,DSA,Diffie-Hellman等。

签名和验证过程:

发送方(甲)首先用公开的单向函数对报文进行一次变换,得到数字签名,然后利用私有密钥对数字签名进行加密后附在报文之后一同发出。

接收方(乙)用发送方的公开密钥对数字签名进行解密交换,得到一个数字签名的明文。发送方的公钥可以由一个可信赖的技术管理机构即认证中心(CA)发布的。

接收方将得到的明文通过单向函数进行计算,同样得到一个数字签名,再将两个数字签名进行对比,如果相同,则证明签名有效,否则无效。

这种方法使任何拥有发送方公开密钥的人都可以验证数字签名的正确性。由于发送方私有密钥的保密性,使得接受方既可以根据结果来拒收该报文,也能使其无法伪造报文签名及对报文进行修改,原因是数字签名是对整个报文进行的,是一组代表报文特征的定长代码,同一个人对不同的报文将产生不同的数字签名。这就解决了银行通过网络传送一张支票,而接收方可能对支票数额进行改动的问题,也避免了发送方逃避责任的可能性。

对称密钥密码算法进行数字签名

算法含义

对称密钥密码算法所用的加密密钥和解密密钥通常是相同的,即使不同也可以很容易地由其中的任意一个推导出另一个。在此算法中,加、解密双方所用的密钥都要保守秘密。由于计算机速度而广泛应用于大量数据如文件的加密过程中,如RD4和DES,用IDEA作数字签名是不提倡的。

使用分组密码算法数字签名通用的加密标准有:DES,Tripl-DES,RC2,RC4,CAST等。

签名和验证过程

Lamport发明了称为Lamport-Diffle的对称算法:利用一组长度是报文的比特数(n)两倍的密钥A,来产生对签名的验证信息,即随机选择2n个数B,由签名密钥对这2n个数B进行一次加密交换,得到另一组2n个数C。

发送方从报文分组M的第一位开始,依次检查M的第I位,若为0时,取密钥A的第i位,若为1则取密钥A的第i+1位;直至报文全部检查完毕。所选取的n个密钥位形成了最后的签名。

接受方对签名进行验证时,也是首先从第一位开始依次检查报文M,如果M的第i位为0时,它就认为签名中的第i组信息是密钥A的第i位,若为1则为密钥A的第i+1位;直至报文全部验证完毕后,就得到了n个密钥,由于接受方具有发送方的验证信息C,所以可以利用得到的n个密钥检验验证信息,从而确认报文是否是由发送方所发送。

这种方法由于它是逐位进行签名的,只有有一位被改动过,接受方就得不到正确的数字签名,因此其安全性较好,其缺点是:签名太长(对报文先进行压缩再签名,可以减少签名的长度);签名密钥及相应的验证信息不能重复使用,否则极不安全。

结合对称与非对称算法的改进

对称算法与非对称算法各有利弊,所以结合各自的优缺点进行改进,可以用下面的模块进行说明:

Hash算法进行数字签名

Hash算法也称作散列算法或报文摘要,Hash算法将在数字签名算法中详细说明。

Hash算法数字签字通用的加密标准有: SHA-1,MD5等。

数字签名算法

数字签名的算法很多,应用最为广泛的三种是: Hash签名、DSS签名、RSA签名。这三种算法可单独使用,也可综合在一起使用。数字签名是通过密码算法对数据进行加、解密变换实现的,常用的HASH算法有MD2、MD5、SHA-1,用DES算法、RSA算法都可实现数字签名。但或多或少都有缺陷,或者没有成熟的标准。

Hash签名

Hash签名是最主要的数字签名方法,也称之为数字摘要法(digital digest)、数字指纹法(digital finger print)。它与RSA数字签名是单独的签名不同,该数字签名方法是将数字签名与要发送的信息紧密联系在一起,它更适合于电子商务活动。将一个商务合同的个体内容与签名结合在一起,比合同和签名分开传递,更增加了可信度和安全性。下面我们将详细介绍Hash签名中的函数与算法。

Ⅶ TLS/SSL数字证书里的指纹算法、签名算法和签名哈希算法各是做什么用的

您好!

作用与目的相同都是为了进行加密,更好的保护平台,SSL安全哈希算法,是数字签名算法标准,所以无论您在哪里注册无论多少价格的证书,其算法基本上都是相同的!

申请SSL证书为考虑到浏览器兼容性,保持更多的浏览器可以访问,通常采取加密算法:RSA 2048 bits,签名算法:SHA256WithRSA,该算法被公认使用,就是网络也使用该算法!

RSA加密算法:公钥用于对数据进行加密,私钥用于对数据进行解密。

RSA签名算法:在签名算法中,私钥用于对数据进行签名,公钥用于对签名进行验证。

加密算法分为两大类:1、对称加密算法 2、非对称加密算法。

由于计算能力的飞速发展,从安全性角度考虑,很多加密原来SHA1WithRSA签名算法的基础上,新增了支持SHA256WithRSA的签名算法。该算法在摘要算法上比SHA1WithRSA有更强的安全能力。目前SHA1WithRSA的签名算法会继续提供支持,但为了您的应用安全,强烈建议使用SHA256WithRSA的签名算法。

Ⅷ 常用的数字签名、鉴别、加密算法分别有哪些这几种机制分别保障了信息的哪种安全属性

常见的数字签名有RSA,DSA,ECDSA
加密算法一般分为对称加密和非对称加密,消息摘要算法。
对称加密中,DSE最为典型,还要ASE,IDEA,PBE等,一般用于数据加密
非对称加密中,当然是RSA最为基础,还有ECC,ElGamal等,一般用于密钥加密,安全性高,
但若数据加密效率相对对称加密,就比较低了。
消息摘要有MD,SHA,MAC等,用于数据完整性验证。

Ⅸ 身份认证与数字签名的区别是什么

主要区别是,性质不同、目的作用不同、方法不同,具体如下:

一、性质不同

1、身份认证

身份认证一般指身份验证,又称“验证”、“鉴权”,是指通过一定的手段,完成对用户身份的确认。

2、数字签名

数字签名(又称公钥数字签名)是只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明。

二、目的作用不同

1、身份认证

身份验证的目的是确认当前所声称为某种身份的用户,确实是所声称的用户。

2、数字签名

数字签名是非对称密钥加密技术与数字摘要技术的应用,用于鉴别数字信息。

三、方法不同

1、身份认证

身份验证的方法有很多,基本上可分为:基于共享密钥的身份验证、基于生物学特征的身份验证和基于公开密钥加密算法的身份验证。不同的身份验证方法,安全性也各有高低。

2、数字签名

数字签名算法依靠公钥加密技术来实现的。在公钥加密技术里,每一个使用者有一对密钥:一把公钥和一把私钥。公钥可以自由发布,但私钥则秘密保存,还有一个要求就是要让通过公钥推算出私钥的做法不可能实现。

普通的数字签名算法包括三种算法:

①、密码生成算法。

②、标记算法。

③、验证算法。

Ⅹ 描述数字签名和消息摘要算法的异同

身份认证就是,像用户名密码、动态口令、USB Key认证等输入等一致。
数字签名技术是将摘要信息用发送者的私钥加密,与原文一起传送给接收者。接收者只有用发送的公钥才能解密被加密的摘要信息,然后用HASH函数对收到的原文产生一个摘要信息,与解密的摘要信息对比。如果相同,则说明收到的信息是完整的,在传输过程中没有被修改,否则说明信息被修改过,因此数字签名能够验证信息的完整性。
就是一个是用户自身确认真伪,一个是信息加密确定真伪

阅读全文

与各个算法签名与验证过程的异同相关的资料

热点内容
程序员系列大全 浏览:359
安卓怎么用文件升级 浏览:658
如何发展mc服务器 浏览:160
安卓手机拍照是反的如何正过来 浏览:619
服务器怎么外接机械硬盘 浏览:84
如何输入代理服务器和端口 浏览:674
排序算法的实现的总结 浏览:17
重庆活塞并联压缩机哪里买 浏览:516
中信银行信用卡app叫什么名字图片 浏览:15
php指定ip访问 浏览:45
n1盒子编译openwrt 浏览:957
android不混淆库 浏览:622
酷程序员头像 浏览:808
短视频平台服务器怎么选 浏览:74
怎么分辨瑞年和平年的C语言编译 浏览:217
黑马程序员vue教程第32讲 浏览:761
为什么服务器拷贝速度百兆 浏览:651
月薪过万的程序员多久能在北上广 浏览:982
妈妈看中程序员相亲 浏览:381
服务器配置不了ip地址怎么办 浏览:878