导航:首页 > 文档加密 > 摘要签名加密区别

摘要签名加密区别

发布时间:2025-03-09 05:30:11

❶ 对称加密、非对称加密、摘要、数字签名、数字证书

作为一个开发人员,或多或少都听说过对称加密、非对称加密、摘要、数字签名、数字证书这几个概念,它们是用来保证在互联网通信过程中数据传输安全的。有人可能会有疑惑,我给传输数据加个密不就安全了,为什么还要搞这么多花样出来?本文主要通过一个案例来讲解这几个概念的实际作用。

在此之前,我先简单介绍一下这几个概念。

对称加密是指用来加密和解密的是同一个秘钥。其特点是加密速度快,但是秘钥容易被黑客截获,所以安全性不高。常见的有AES、DES算法

非对称加密是指用来加密和解密的是不同的秘钥,它们是成对出现的,称为公钥和私钥,知道其中一个秘钥是无法推导出另外一个秘钥的。用公钥加密的内容需要用私钥才能解密,用私钥加密的内容需要用公钥才能解密。非对称加密的特点是安全性高,缺点是加密速度慢。常见的有RSA算法。

所谓的摘要就是一段信息或者一个文件通过某个哈希算法(也叫摘要算法)而得到的一串字符。摘要算法的特点就是不同的文件计算出的摘要是不同的(也有可能相同,但是可能性非常非常低),比如一个1G的视频文件,哪怕只是改动其中一个字节,最后计算得到的摘要也是完全不同的,所以摘要算法通常是用来判断文件是否被篡改过。其还有一个特点就是通过摘要是无法推导出源文件的信息的。常用的摘要算法有MD5、SHA等。

数字签名就是一个文件的摘要加密后的信息。数字签名是和源文件一起发送给接收方的,接收方收到后对文件用摘要算法算出一个摘要,然后和数字签名中的摘要进行比对,两者不一致的话说明文件被篡改了。

数字证书是一个经证书授权中心生成的文件,数字证书里一般会包含公钥、公钥拥有者名称、CA的数字签名、有效期、授权中心名称、证书序列号等信息。其中CA的数字签名是验证证书是否被篡改的关键,它其实就是对证书里面除了CA的数字签名以外的内容进行摘要算法得到一个摘要,然后CA机构用他自己的私钥对这个摘要进行加密就生成了CA的数字签名,CA机构会公开它的公钥,验证证书时就是用这个公钥解密CA的数字签名,然后用来验证证书是否被篡改。

场景:

张三要找人装修一个房子,原则是谁的出价便宜就给谁装修,所以对于报价文件就是属于机密文件。下面我们来看下不同的方式传输报价文件都会有什么风险。

现在李四想接这个装修的活,他做了一份报价文件(文件名: lisi.txt ,文件内容: 报价50万 )。然后李四用一个对称秘钥 123 对这个文件进行加密。最后李四将这个秘钥和加密的文件发给张三,张三收到后用这个秘钥解密,知道了李四的报价是50万。

同时王五也想接这个装修的活,他本来是想报价55万的,但是又担心报价太高而丢掉这个活。恰巧王五是个黑客高手,于是他截获了李四发给张三的秘钥和加密文件,知道了李四报价是50万。最后王五将自己的报价改成了49万发给张三,结果王五接下了这个装修活。

结论:
用对称加密的话,一旦秘钥被黑客截获,加密就形同虚设,所以安全性比较低。

首先张三会生成一对秘钥,私钥是 zhangsan1 ,公钥是 zhangsan2 ,私钥张三自己保存,将公钥公布出去。

李四将报价文件 list.txt 用张三公布的公钥 zhangsan2 进行加密后传给张三,然后张三用私钥 zhangsan1 进行解密得到李四的报价是50万。

这个时候即使王五截获到了李四发给张三的报价文件,由于王五没有张三的私钥,所以他是无法解密文件的,也就无法知道李四的报价。最后王五因为报价55万而丢掉了这个装修的机会。

所以用非对称加密是可以保证数据传输安全的。不过这里说一句题外话,既然非对称加密安全性高,那为什么不淘汰掉对称加密呢?其实关键就在于加密速度,非对称加密计算量很大,所以加密速度是很慢的,如果发送消息非常频繁,使用非对称加密的话就会对性能造成很大影响。所以在实际开发过程中通常是对称加密和非对称加密结合使用的。也就是对称加密的秘钥是用非对称加密后发送的,这样能保证对称加密的秘钥不被黑客截获,然后在发送业务数据时就用对称加密。这样既保证了安全性也保证了加密速度。

结论:
非对称加密可以防止黑客截获加密后的内容,安全性高。

前面都说了非对称加密是安全的,那为什么还要数字签名呢?

设想一下,王五截获了李四的报价文件,王五虽然无法知道李四的实际报价,但是他完全可以伪造一份李四的报价(文件名: lisi.txt ,文件内容: 报价60万 ),然后将这份伪造文件用张三公布的公钥 zhangsan2 进行加密后替换原来的报价文件。张三收到后解密发现报价是60万,于是张三就以为李四报的价是60万,最后决定将装修的活给报价55万的王五来做。

发生这个问题的关键就在于张三无法知道报价文件是否被篡改过。要解决这个问题就需要用到数字签名。

首先李四需要自己生成一对非对称加密的秘钥,私钥 lisi1 自己保存,公钥 lisi2 发给张三。然后李四对自己的报价文件通过摘要算法得到一个摘要(假设摘要是 aaa ),再用自己的私钥 lisi1 加密这个摘要就得到了报价文件的数字签名,最后将加密的报价文件和数字签名一起发给张三,张三收到后先用李四发过来的公钥 lisi2 解密数字签名得到摘要 aaa ,然后用自己的私钥 zhangsan1 解密加密的文件得到报价源文件,然后对报价源文件进行摘要算法,看计算得到的结果是不是 aaa ,如果不是 aaa 的话就说明报价文件被篡改了。

在这种情况下,如果王五截获了李四发给张三的文件。王五是无法解密报价文件的。如果王五伪造一份报价文件的话,等张三收到后就会发现报价文件和数字签名不匹配。那王五能不能伪造报价文件的同时也伪造签名呢?因为王五没有李四的私钥,所以没法对伪造的报价文件的摘要进行加密,所以也就没法伪造签名。

结论:
非对称加密虽然能确保加密文件内容不被窃取,但不能保证文件不被篡改。数字签名就是用来验证文件是否被篡改过。

既然非对称加密可以保证文件内容的安全性,数字签名又可以保证文件不被篡改,那还要数字证书有什么用呢?

我们再来设想一下,王五自己也生成了一对用于非对称加密的秘钥,私钥是 wangwu1 ,公钥是 wangwu2 。前面李四将自己的公钥 lisi2 发给张三的过程中被王五给截获了,王五用自己的公钥 wangwu2 替换了李四的公钥 lisi2 ,所以张三最后收到的公钥实际上是王五的,但张三对这并不知情。后面李四发的数字签名和加密的报价文件都被王五截获,并且王五伪造了一份报价文件,同时用自己的私钥加密报价文件的摘要生成伪造的签名并发给张三,张三收到后进行验证发现数字签名和报价文件是匹配的,就以为这份报价文件是真实的。

出现这个问题的关键就在于张三没法确认收到的公钥到底是不是李四发的,这个时候数字证书就起到作用了。李四到权威的数字证书机构申请数字证书,证书里面包含了公钥( lisi2 )和公钥的拥有者( 李四 )等相关信息,然后李四将证书发给张三,张三通过证书里面的信息就可以知道公钥到底是不是李四的了。

那证书在发送过程中有没有可能被王五截获并篡改呢?要知道证书里面还包含CA的数字签名,这个签名是证书机构用他们自己的私钥对证书的摘要进行加密的,而公钥是公开的。所以即便王五截获并篡改了证书内容,他也无法伪造证书机构的签名,张三在收到证书后通过验证签名也会发现证书被篡改了。所以到这一步才能保证数据传输的真正安全。

❷ 加密和签名的区别是什么

数字签名和验证:发送报文时,发送方用一个hash算法从报文中产生固定长度的报文摘要,然后利用自己的私钥对这个摘要进行加密,这个过程就叫签名。这个加密后的摘要作为报文的数字签名和报文一起发送给接收方,接收方用发送方的公钥解密被加密的摘要(报文附加的数字签名)得到结果A,然后用于发送方一样的hash算法从接收到的原始报文中算出报文摘要B。最后,把A和B作比较。如果相同,那么接收方就能确认该数字签名是发送方的。加密和解密:发送方利用接收方的公钥对要发送的明文进行加密,接受方利用自己的私钥进行解密,其中公钥和私钥匙相对的,任何一个作为公钥,则另一个就为私钥。

2、数字签名的功能:

a) 对签名者进行身份认证;

b) 保证信息的完整性(在交易过程中,没有被篡改)

c) 防止交易中的抵赖发生(签名者无法否认信息是由自己发出的)

加密的功能:

a) 重点在于“数据的安全性”,可以防止数据被监听攻击。

❸ RSA加密/解密和签名/验签过程理解

加密是为了防止信息被泄露

签名是为了防止信息被篡改

第一个场景:战场上,B要给A传递一条消息,内容为某一指令。

RSA的加密过程如下:

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

(2)A传递自己的公钥给B,B用A的公钥对消息进行加密。

(3)A接收到B加密的消息,利用A自己的私钥对消息进行解密。

在这个过程中,只有2次传递过程,第一次是A传递公钥给B,第二次是B传递加密消息给A,即使都被敌方截获,也没有危险性,因为只有A的私钥才能对消息进行解密,防止了消息内容的泄露。

第二个场景:A收到B发的消息后,需要进行回复“收到”。

RSA签名的过程如下:

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

(2)A给B发送消息,A先计算出消息的消息摘要,然后使用自己的私钥加密消息摘要,被加密的消息摘要就是签名.并将签名和消息本身(签名原文)一起传递给B.(A用自己的私钥给消息摘要加密成为签名)

(3)B收到消息后,也会使用和A相同的方法提取消息摘要,然后用A的公钥解密签名,并与自己计算出来的消息摘要进行比较-->如果相同则说明消息是A发送给B的,同时,A也无法否认自己发送消息给B的事实.(B使用A的公钥解密签名文件的过程,叫做"验签")

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

但是,综合两个场景你会发现,第一个场景虽然被截获的消息没有泄露,但是可以利用截获的公钥,将假指令进行加密,然后传递给A。第二个场景虽然截获的消息不能被篡改,但是消息的内容可以利用公钥验签来获得,并不能防止泄露。所以在实际应用中,要根据情况使用,也可以同时使用加密和签名,比如A和B都有一套自己的公钥和私钥,当A要给B发送消息时,先用B的公钥对消息加密,再对加密的消息使用A的私钥加签名,达到既不泄露也不被篡改,更能保证消息的安全性。

总结:公钥加密、私钥解密、私钥签名、公钥验签。

❹ 加密,签名,证书概述

加密、签名和证书概述如下

加密对称加密:利用相同的密钥进行加密和解密,如AES和DES。优点在于效率高、加密速度快,适用于需要快速加密大量数据的场合。缺点是密钥管理较为复杂,一旦密钥丢失,数据安全性将大打折扣。 非对称加密:采用一对公钥和私钥,公钥用于加密,私钥用于解密,如RSA和ECC。主要优点在于提供安全的密钥交换,确保通信过程中的数据安全,特别适用于密钥协商。但性能开销较大,可能导致连接速度变慢。

签名签名算法:如RSA签名,通过摘要算法对信息进行压缩,再用私钥加密生成签名,以确保信息的完整性和发送者的身份。服务端通过公钥验证签名,确保数据未被篡改。 签名验证过程:包括生成、签名和验证三个步骤,这一过程确保了信息的完整性和来源的真实性。由于非对称加密的长度限制,它不适合直接用于加密大量数据,但非常适合用于签名。

证书证书机制:通过引入第三方证书颁发机构,确保公钥的可信度,防止在网络传输中被篡改。证书是公钥的载体,包含了公钥、颁发者信息、持有者信息、有效期等。 证书验证:获取公钥时,需通过验证证书链,确保其完整性和有效性。证书链中的每一级证书都由上一级证书颁发机构签发,最终形成一个可信的链条,确保公钥的来源可信。

❺ 加密和签名的区别

加密是对信息的加密,比如A给B发消息则会使用b的公钥加密,发送后只能使用B的私钥才能解密。

签名,是给信息加个身份,是由谁发送的。一般用私钥生成。A给B发送,A使用自己的私钥签名,B收到后用A的公钥解密,来确认是不是A发的。

对称加密:是加密解密使用相同的密钥。

优使用简卜薯单快捷高效。

缺加密强度不高,密钥分发困难

DES采用替换和移位,密钥56位,每次对64位数据块加密。

3DES使唤弊闹用两个密钥K1,k2,

加密时k1加密,k2解密,k1加密

解密时k1解密,k2加密,k1解密

rc-5:rsa 数据安全公司很多产品使用了rc-5

idea:密钥是128位每次对64位数据块加密。

非对称加密:一个公钥一个私钥

优:解决了加密强度不高,密钥分发困难的问题

缺:加密速度慢

rsa:512位密钥,计算量大,难破解。

ecc:椭圆体制曲线密码

信息摘要:一份长文件的数字指纹,可以用于创建数字签名

md5 128位散列值

sha  160位散列值

md5+salt

简单的md5密码加和罩密,黑客可以通过密码md5比较,可以轻松试出密码。

如果加上salt,密码加密之前拼接上salt,之后再散列。

黑客用自己密码和salt值试,就很难找到密码。

❻ 关于CA、签名、证书、非对称加密、摘要、公私钥匙和keystore概念和区别

这几个概念才接触密码学时候理解不是很到位,现在将其理清楚,写下自己的理解。

公私秘钥对可以通过一种算法得到。
公钥:公开的,都可以拿到的秘钥。用来加密也用来解密,公钥加密的信息只能用对应私钥来解。

私钥:只有一个持有者,其他人都拿不到。用来加密也用来解密,私钥加密的信息只有对应的公钥能解。因为私钥具有唯一性,可以用来鉴别身份。需要注意的是私钥的唯一性是针对自己的公钥来说的。

非对称加密:过程使用两把不同的钥匙加解密,私钥加密只能用公钥解,公钥加密用私钥解,一般流程为:A生成公私密钥对,把公钥给B,B用公钥加密信息发送给A,A用私钥解密。

摘要:对任意一组输入数据通过算法进行计算,得到一个固定长度的输出摘要,常见RSA公司的MD5算法和SHA-1算法。

签名:包含两部分:对所签信息做摘要运算得到一个结果值,在运用非对称加密中的私钥对这个值进行加密(比如app签名就是对app自身文件做多次摘要,然后私钥加密,https流程签名就是对一些企业证书信息做摘要然后私钥加密)。

证书:公钥相关信息,其他信息如证书有效期,名称,最后贴附私钥签名的信息,格式普遍采用的是X.509V3国际标准(app中证书指纹,他是签名工具相关信息的hash值不包括贴附私钥签名只会随签名keystore变化而变化,app变化时候不会改变,用来配合包名做身份鉴别,常用于app升级和安装场景)。

keystore:证书库文件,保存证书信息和公钥及私钥(用设置密码保护私钥),访问私钥要密码。

CA:第三方可信机构。为什么https过程中非对称加密传输过程中需要用到第三方可信机构(CA),大家得客户端都以保存在本地的CA发出来的公钥解密,就可以确定CA的身份因为CA是唯一的私钥拥有者,CA做的事就是给合法的服务端证书签名,所以客户端鉴定CA的身份后,自然也认为解得CA签名的服务器证书是合法的。
注意https中涉及两对公私密钥,CA的私钥用来签名,其签名信息用来防篡改,CA公私钥配合确定CA的是身份。服务器的公私密钥用来加解密信息,也用来确定的服务器身份,其交互的信息用来协商对称密钥。

❼ RSA公钥、私钥、加密、签名区别

加密与签名是两种信息安全手段,RSA算法利用一对公钥和私钥实现。公钥是公开的,用于加密信息,确保只有持有私钥的人能解密,从而保护信息不被窃取,这被称为加密。相反,私钥用于签名,它加密信息以验证其完整性和发送者的身份,但同时,签名会暴露消息内容,不提供隐私保护。

为了更安全,推荐采用"一人一对公钥私钥"的方法。首先,双方各自保留自己的私钥和公开的公钥。发送者使用接收者的公钥加密信息(密文A),然后用自己的私钥对这个密文再次加密(密文B)。接收者收到后,先用发送者的公钥解密B,确认信息未被篡改,接着用自己私钥解密A获取原文。这种方法在保护信息不被第三方窃取的同时,也确保了消息的真实性。

需要注意的是,尽管公钥可以公开,但私钥的保密至关重要,因为它是验证和保护信息完整性的关键。通过这种方式,信息的完整性得以保护,但隐私性仍然受到一定程度的影响。

阅读全文

与摘要签名加密区别相关的资料

热点内容
程序员放弃后会怎样 浏览:186
河北模具编程 浏览:190
adb查找命令 浏览:324
安卓手机视频文件夹怎么打开 浏览:313
平板加密手机后怎么关闭 浏览:572
流媒体服务器应该注意什么 浏览:539
d8命令编译 浏览:968
压缩包解压需要多少空间 浏览:151
如何查找app属性 浏览:391
android人脸识别技术 浏览:326
pc104编程 浏览:337
二维码反编译破解推广 浏览:686
修改服务器的mac地址 浏览:529
好玩的编程软件 浏览:902
编程语言创始人有钱吗 浏览:809
短视频app怎么获客 浏览:18
查看云服务器的应用 浏览:441
javadump工具 浏览:568
程序员16g 浏览:449
程序员没有办法成为top怎么办 浏览:222