当前位置:首页 » 密码管理 » 网络对称加密

网络对称加密

发布时间: 2023-02-17 01:28:37

❶ 科普知识—对称加密和非对称加密

区块链技术中广泛应用到非对称加密技术,非对称加密技术保证了信息在传输过程中的安全性,非对称加密技术是在对称加密技术上发展来的。本文主要阐述对称加密技术和非对称加密技术的概念和特点,并举例说明。

对称加密就是用相同的密钥对原文进行加密和解密,通信双方共用一个密钥。

基于对称加密算法传输信息“ABC”的步骤。

(1)发送方通过密钥对原文"ABC"进行加密,得到密文"abc",并发送给接收方。密钥为将字母转换为对应的小写字母,大写A转换为小写a,“BC”同理转换为“bc”。

(2)发送方将密钥发送给接收方。

(3)接收方通过密钥对密文进行解密,反推出原文“ABC”。

对称加密算法的缺点:无法确保密钥被安全传递。

密钥就是传说中的“密码本”。密文在传输过程中是可能被第三方截获的,关键就落在“密码本”上,如果密码本也被第三方截获,则传输的密码信息将被第三方破获,所以经常看到电影、电视剧的情节中通过各种手段保护密码本的安全送达。

非对称加密技术很好的解决了对称加密技术密钥无法安全传递的问题。

非对称加密有两个密钥,即公钥(Public Key)和私钥(Private Key),对数据进行加密和解密使用不同的密钥。使用公钥进行加密,使用私钥进行解密。

非对称加密算法中私钥就是一个随机数,基于不同的算法生成不同的随机数,如:SHA256算法生成的是256位的随机数,通常是调用操作系统的随机数生成器来生成私钥,私钥通过一定的加密算法推导出公钥,私钥到公钥的推导过程是单向的,也就是说公钥无法反推导出私钥。

基于非对称加密算法传输信息“hello world”的步骤。

(1)发送方使用接收方的公钥对待发送信息“hello world”加密,此处需注意:信息发送给谁,使用谁的公钥进行加密,公钥是可以公开的,类似于银行卡账户。

(2)发送方将加密后的密文通过网络发送给接收方。

(3)接收方接收到密文后,使用自己的私钥对密文进行解密,从而获得传输信息“hello world”。

采用非对称加密算法即使第三方在网络上截获到密文,但其无法获得接收方的私钥,也就无法对密文进行解密,作为接收方务必保证自己私钥的安全,所以非对称加密技术解决了密钥传输过程的安全性问题。

本文主要阐述对称加密技术和非对称加密技术的概念和特点,并举例说明。对称加密是通信双方共用密钥,无法保证密钥的安全传递;非对称加密使用接收方的公钥对数据加密,接收方使用自己的私钥解密,即使信息被第三方截获,由于没有接收方的私钥,也无法破解密文。

❷ 网络相关之HTTPS、对称加密、非对称加密

推荐阅读: 备战2020——iOS全新面试题总结

HTTPS协议 = HTTP协议 + SSL/TLS协议
SSL的全称是Secure Sockets Layer,即安全套接层协议,是为网络通信提供安全及数据完整性的一种安全协议。TLS的全称是Transport Layer Security,即安全传输层协议。
即HTTPS是安全的HTTP。

HTTPS为了兼顾安全与效率,同时使用了对称加密和非对称加密。在传输的过程中会涉及到三个密钥:

如上图,HTTPS连接过程大致可分为八步:

客户端会把 安全协议版本号 、客户端支持的加密算法列表、 随机数C 发给服务端。

服务端接收密钥算法配件后,会和自己支持的加密算法列表进行比对,如果不符合,则断开连接。否则,服务端会在该算法列表中,选择一种对称算法(如AES)、一种公钥算法(如具有特定秘钥长度的RSA)和一种MAC算法发给客户端。
服务器端有一个密钥对,即 公钥 和 私钥 ,是用来进行 非对称加密 使用的,服务器端保存着 私钥 ,不能将其泄露, 公钥 可以发送给任何人。
在发送加密算法的同时还会把 数字证书 和 随机数S 发送给客户端

会对server公钥进行检查,验证其合法性,如果发现发现公钥有问题,那么HTTPS传输就无法继续。

如果公钥合格,那么客户端会用服务器公钥来生成一个 前主秘钥 (Pre-Master Secret,PMS),并通过该 前主秘钥 和随机数C、S来组装成 会话秘钥

是通过服务端的公钥来对 前主秘钥 进行 非对称加密 ,发送给服务端

服务端接收到加密信息后,用私钥解密得到主秘钥。

服务端通过 前主秘钥 和随机数C、S来组装 会话秘钥 。
至此,服务端和客户端都已经知道了用于此次会话的主秘钥。

客户端收到服务器发送来的密文,用客户端密钥对其进行对称解密,得到服务器发送的数据。
同理,服务端收到客户端发送来的密文,用服务端密钥对其进行对称解密,得到客户端发送的数据。

会话秘钥 = random S + random C + 前主秘钥

用同一套密钥来进行加密解密。
对称加密通常有 DES,IDEA,3DES 加密算法。

用公钥和私钥来加解密的算法。
公钥 (Public Key)与 私钥 (Private Key)是通过一种算法得到的一个密钥对(即一个 公钥 和一个 私钥 ), 公钥 是密钥对中公开的部分, 私钥 则是非公开的部分, 私钥 通常是保存在本地。

常见的非对称加密算法有:RSA、ECC(移动设备用)、Diffie-Hellman、El Gamal、DSA(数字签名用)

而为了确保客户端能够确认公钥就是想要访问的网站的公钥,引入了数字证书的概念,由于证书存在一级一级的签发过程,所以就出现了证书链,在证书链中的顶端的就是根CA。
关于数字证书: 数字证书 详解 -

❸ 互联网上的加密原理

互联网上的加密方式主要分为对称加密和非对称加密二种,

采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密,也称为单密钥加密。
需要对加密和解密使用相同密钥的加密算法。由于其速度快,对称性加密通常在消息发送方需要加密大量数据时使用。对称性加密也称为密钥加密。
所谓对称,就是采用这种加密方法的双方使用方式用同样的密钥进行加密和解密。密钥是控制加密及解密过程的指令。算法是一组规则,规定如何进行加密和解密。
加密的安全性不仅取决于加密算法本身,密钥管理的安全性更是重要。因为加密和解密都使用同一个密钥,如何把密钥安全地传递到解密者手上就成了必须要解决的问题。
常用的对称加密有:DES、IDEA、RC2、RC4、SKIPJACK、RC5、AES算法等

非对称加密算法需要二个秘钥,公开密钥(publickey)和私有密钥(privatekey)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。

明白了互联网上的加密原理之后,下面来看看浏览器与服务器交互时,浏览器想将数据加密后再发送给服务器,那么该怎么做呢?服务器首先要向浏览器出示一份数字证书,浏览器看到数字证书后,就可以使用数字证书里面的公钥加密数据,所以要想做浏览器和服务器的加密数据传输,那么首先得针对服务器生成一份数字证书。然后再配置一下服务器,让服务器收到浏览器的请求之后,会向浏览器出示它的数字证书。

SUN公司提供了制作证书的工具keytool, 在JDK 1.4以后的版本中都包含了这一工具,它的位置为<JAVA_HOME>\bin\keytool.exe

使用keytool生成一个名字为tomcat的证书,存放在.keystore这个密钥库中

❹ 后端接口加密的三种方式

请问您是想咨询后端接口加密的三种方式是什么吗?
1、对称加密方式;
2、非对称加密;
3、对称加密+非对称加密(会话密钥模式)。加密:在网络上传输的原始数据(明文)经过加密后形成(密文)传输,防止被窃取。

❺ 简要说说对称加密和非对称加密的原理以及区别是什么

对称加密的原理是数据发送方将明文(原始数据)和加密密钥一起经过特殊加密算法处理后,使其变成复杂的加密密文发送出去。接收方收到密文后,若想解读原文,则需要使用加密密钥及相同算法的逆算法对密文进行解密,才能使其恢复成可读明文。

非对称加密的原理是甲方首先生成一对密钥同时将其中的一把作为公开密钥;得到公开密钥的乙方再使用该密钥对需要加密的信息进行加密后再发送给甲方;甲方再使用另一把对应的私有密钥对加密后的信息进行解密,这样就实现了机密数据传输。

对称加密和非对称加密的区别为:密钥不同、安全性不同、数字签名不同。

一、密钥不同

1、对称加密:对称加密加密和解密使用同一个密钥。

2、非对称加密:非对称加密加密和解密所使用的不是同一个密钥,需要两个密钥来进行加密和解密。

二、安全性不同

1、对称加密:对称加密如果用于通过网络传输加密文件,那么不管使用任何方法将密钥告诉对方,都有可能被窃听。

2、非对称加密:非对称加密因为它包含有两个密钥,且仅有其中的“公钥”是可以被公开的,接收方只需要使用自己已持有的私钥进行解密,这样就可以很好的避免密钥在传输过程中产生的安全问题。

三、数字签名不同

1、对称加密:对称加密不可以用于数字签名和数字鉴别。

2、非对称加密:非对称加密可以用于数字签名和数字鉴别。

❻ 网络加密

信息安全包括 系统安全 数据安全
系统安全一般采用防火墙、病毒查杀等被动措施;数据安全主要采用现代密码技术对数据进行主动保护,如数据保密、数据完整性、数据不可否认与抵赖、双向身份认证等。
密码技术是保证信息安全的核心技术。
名词解释
明文(plaintext):未被加密的消息;
密文(ciphertext):被加密的消息;
密码算法:也叫密码(cipher),适用于加密和解密的数学函数。通常有两个相关函数:一个用于加密,一个用于解密。
加密系统:由算法以及所有可能的明文,密文和密钥组成。
加密(encrypt):通过密码算法对数据进行转化,使之成为没有正确密钥的人都无法读懂的报文。
解密(decrypt):加密的相反过程。
密钥(key):参与加密与解密算法的关键数据。

一个加密网络不但可以防止非授权用户的搭线窃听和入网,保护网内数据、文件、口令和控制信息,也是对付恶意软件的有效方法之一。

链路加密保护网络节点之间的链路信息安全,节点加密对源节点到目的节点之间的传输链路提供加密保护,端点加密是对源端点到目的端点的数据提供加密保护。
链路加密 又称为在线加密,在数据链路层对数据进行加密,用于信道或链路中可能被截获的那一部分数据进行保护。链路加密把报文中每一比特都加密,还对路由信息、校验和控制信息加密。所以报文传输到某节点时,必须先解密,然后再路径选择,差错控制,最后再次加密,发送到下一节点。
链路加密的优点 :实现简单,在两个节点线路上安装一对密码设备,安装在调制解调器之间;用户透明性。
链路加密的缺点 :1.全部报文以明文形式通过各节点;2.每条链路都需要一对设备,成本高。
节点加密 除具有链路加密的优势外,还不允许报文在节点内以明文存在,先把收到的报文进行解密,然后采用另一个密钥进行加密,克服了节点处易受非法存取的缺点。
优点是比链路加密成本低,且更安全。缺点是节点加密要求报头和路由信息以明文传输,以便中间节点能得到如何处理消息的信息,对防止攻击者分析通信业务仍是脆弱的。
端对端加密 又称脱线加密或包加密、面向协议加密运行数据从源点到终点的传输过程中始终以密文形式存在,报文在到达终点前不进行解密。
端对端加密在传输层或更高层中实现。若在传输层加密,则不必为每个用户提供单独的安全保护机制;若在应用层加密,则用户可根据自己特定要求选用不同加密策略。链路是对整个链路通信采取加密,端对端则是对整个网络系统采取保护措施。
优点:成本低,可靠性高,易设计、易实现、易维护。

目前已公开发表的各种加密算法有200多种。
根据对明文的加密方式不同进行分类,加密算法分为分组加密算法和序列加密算法。
如果经过加密所得到的密文仅与给定的密码算法和密钥有关,与被处理的明文数据段在整个明文中所处的位置无关,就称为分组加密算法。
如果密文不仅与最初给定的密码算法和密钥有关,同时也是被处理的数据段在明文中所处的位置的函数,就成为序列加密算法。
按照收发双方的密钥是否相同分为对称加密算法(私钥加密算法)和非对称加密算法(公钥加密算法)。

一个加密系统的加密和解密密钥相同,或者虽不同,但是由其中一个可以容易的推导出另一个,则该系统采用的是对称加密算法。

1976年美国Diffe和Hallman提出非对称加密算法。
主要特点是对数据进行加密和解密时使用不同的密钥。每个用户都保存一对密钥,每个人的公开密钥都对外开放。加入某用户与另一用户通信,可用公开密钥对数据进行加密,而收信者则用自己的私有密钥进行解密,加密解密分别使用不同的密钥实现,且不可能由加密密钥推导出解密密钥。
着名的非对称加密算法有RSA、背包密码、McEliece密码、Diffe-Hellman、Rabin、Ong-FiatShamir、零知识证明的算法、椭圆曲线、EIGamal密码算法等。最有影响力的是RSA,能抵抗目前为止已知的所有密码攻击。

❼ 加密基础知识二 非对称加密RSA算法和对称加密

上述过程中,出现了公钥(3233,17)和私钥(3233,2753),这两组数字是怎么找出来的呢?参考 RSA算法原理(二)
首字母缩写说明:E是加密(Encryption)D是解密(Decryption)N是数字(Number)。

1.随机选择两个不相等的质数p和q。
alice选择了61和53。(实际应用中,这两个质数越大,就越难破解。)

2.计算p和q的乘积n。
n = 61×53 = 3233
n的长度就是密钥长度。3233写成二进制是110010100001,一共有12位,所以这个密钥就是12位。实际应用中,RSA密钥一般是1024位,重要场合则为2048位。

3.计算n的欧拉函数φ(n)。称作L
根据公式φ(n) = (p-1)(q-1)
alice算出φ(3233)等于60×52,即3120。

4.随机选择一个整数e,也就是公钥当中用来加密的那个数字
条件是1< e < φ(n),且e与φ(n) 互质。
alice就在1到3120之间,随机选择了17。(实际应用中,常常选择65537。)

5.计算e对于φ(n)的模反元素d。也就是密钥当中用来解密的那个数字
所谓"模反元素"就是指有一个整数d,可以使得ed被φ(n)除的余数为1。ed ≡ 1 (mod φ(n))
alice找到了2753,即17*2753 mode 3120 = 1

6.将n和e封装成公钥,n和d封装成私钥。
在alice的例子中,n=3233,e=17,d=2753,所以公钥就是 (3233,17),私钥就是(3233, 2753)。

上述故事中,blob为了偷偷地传输移动位数6,使用了公钥做加密,即6^17 mode 3233 = 824。alice收到824之后,进行解密,即824^2753 mod 3233 = 6。也就是说,alice成功收到了blob使用的移动位数。

再来复习一下整个流程:
p=17,q=19
n = 17 19 = 323
L = 16 18 = 144
E = 5(E需要满足以下两个条件:1<E<144,E和144互质)
D = 29(D要满足两个条件,1<D<144,D mode 144 = 1)
假设某个需要传递123,则加密后:123^5 mode 323 = 225
接收者收到225后,进行解密,225^ 29 mode 323 = 123

回顾上面的密钥生成步骤,一共出现六个数字:
p
q
n
L即φ(n)
e
d
这六个数字之中,公钥用到了两个(n和e),其余四个数字都是不公开的。其中最关键的是d,因为n和d组成了私钥,一旦d泄漏,就等于私钥泄漏。那么,有无可能在已知n和e的情况下,推导出d?
(1)ed≡1 (mod φ(n))。只有知道e和φ(n),才能算出d。
(2)φ(n)=(p-1)(q-1)。只有知道p和q,才能算出φ(n)。
(3)n=pq。只有将n因数分解,才能算出p和q。
结论:如果n可以被因数分解,d就可以算出,也就意味着私钥被破解。
可是,大整数的因数分解,是一件非常困难的事情。目前,除了暴力破解,还没有发现别的有效方法。维基网络这样写道:"对极大整数做因数分解的难度决定了RSA算法的可靠性。换言之,对一极大整数做因数分解愈困难,RSA算法愈可靠。假如有人找到一种快速因数分解的算法,那么RSA的可靠性就会极度下降。但找到这样的算法的可能性是非常小的。今天只有短的RSA密钥才可能被暴力破解。到2008年为止,世界上还没有任何可靠的攻击RSA算法的方式。只要密钥长度足够长,用RSA加密的信息实际上是不能被解破的。"

然而,虽然RSA的安全性依赖于大数的因子分解,但并没有从理论上证明破译RSA的难度与大数分解难度等价。即RSA的重大缺陷是无法从理论上把握它的保密性能如何。此外,RSA的缺点还有:
A)产生密钥很麻烦,受到素数产生技术的限制,因而难以做到一次一密。
B)分组长度太大,为保证安全性,n 至少也要 600bits以上,使运算代价很高,尤其是速度较慢,较对称密码算法慢几个数量级;且随着大数分解技术的发展,这个长度还在增加,不利于数据格式的标准化。因此, 使用RSA只能加密少量数据,大量的数据加密还要靠对称密码算法

加密和解密是自古就有技术了。经常看到侦探电影的桥段,勇敢又机智的主角,拿着一长串毫无意义的数字苦恼,忽然灵光一闪,翻出一本厚书,将第一个数字对应页码数,第二个数字对应行数,第三个数字对应那一行的某个词。数字变成了一串非常有意义的话:
Eat the beancurd with the peanut. Taste like the ham.

这种加密方法是将原来的某种信息按照某个规律打乱。某种打乱的方式就叫做密钥(cipher code)。发出信息的人根据密钥来给信息加密,而接收信息的人利用相同的密钥,来给信息解密。 就好像一个带锁的盒子。发送信息的人将信息放到盒子里,用钥匙锁上。而接受信息的人则用相同的钥匙打开。加密和解密用的是同一个密钥,这种加密称为对称加密(symmetric encryption)。

如果一对一的话,那么两人需要交换一个密钥。一对多的话,比如总部和多个特工的通信,依然可以使用同一套密钥。 但这种情况下,对手偷到一个密钥的话,就知道所有交流的信息了。 二战中盟军的情报战成果,很多都来自于破获这种对称加密的密钥。

为了更安全,总部需要给每个特工都设计一个不同的密钥。如果是FBI这样庞大的机构,恐怕很难维护这么多的密钥。在现代社会,每个人的信用卡信息都需要加密。一一设计密钥的话,银行怕是要跪了。

对称加密的薄弱之处在于给了太多人的钥匙。如果只给特工锁,而总部保有钥匙,那就容易了。特工将信息用锁锁到盒子里,谁也打不开,除非到总部用唯一的一把钥匙打开。只是这样的话,特工每次出门都要带上许多锁,太容易被识破身份了。总部老大想了想,干脆就把造锁的技术公开了。特工,或者任何其它人,可以就地取材,按照图纸造锁,但无法根据图纸造出钥匙。钥匙只有总部的那一把。

上面的关键是锁和钥匙工艺不同。知道了锁,并不能知道钥匙。这样,银行可以将“造锁”的方法公布给所有用户。 每个用户可以用锁来加密自己的信用卡信息。即使被别人窃听到,也不用担心:只有银行才有钥匙呢!这样一种加密算法叫做非对称加密(asymmetric encryption)。非对称加密的经典算法是RSA算法。它来自于数论与计算机计数的奇妙结合。

1976年,两位美国计算机学家Whitfield Diffie 和 Martin Hellman,提出了一种崭新构思,可以在不直接传递密钥的情况下,完成解密。这被称为"Diffie-Hellman密钥交换算法"。这个算法启发了其他科学家。人们认识到,加密和解密可以使用不同的规则,只要这两种规则之间存在某种对应关系即可,这样就避免了直接传递密钥。这种新的加密模式被称为"非对称加密算法"。

1977年,三位数学家Rivest、Shamir 和 Adleman 设计了一种算法,可以实现非对称加密。这种算法用他们三个人的名字命名,叫做RSA算法。从那时直到现在,RSA算法一直是最广为使用的"非对称加密算法"。毫不夸张地说,只要有计算机网络的地方,就有RSA算法。

1.能“撞”上的保险箱(非对称/公钥加密体制,Asymmetric / Public Key Encryption)

数据加密解密和门锁很像。最开始的时候,人们只想到了那种只能用钥匙“锁”数据的锁。如果在自己的电脑上自己加密数据,当然可以用最开始这种门锁的形式啦,方便快捷,简单易用有木有。

但是我们现在是通信时代啊,双方都想做安全的通信怎么办呢?如果也用这种方法,通信就好像互相发送密码保险箱一样…而且双方必须都有钥匙才能进行加密和解密。也就是说,两个人都拿着保险箱的钥匙,你把数据放进去,用钥匙锁上发给我。我用同样的钥匙把保险箱打开,再把我的数据锁进保险箱,发送给你。

这样看起来好像没什么问题。但是,这里面 最大的问题是:我们两个怎么弄到同一个保险箱的同一个钥匙呢? 好像仅有的办法就是我们两个一起去买个保险箱,然后一人拿一把钥匙,以后就用这个保险箱了。可是,现代通信社会,绝大多数情况下别说一起去买保险箱了,连见个面都难,这怎么办啊?

于是,人们想到了“撞门”的方法。我这有个可以“撞上”的保险箱,你那里自己也买一个这样的保险箱。通信最开始,我把保险箱打开,就这么开着把保险箱发给你。你把数据放进去以后,把保险箱“撞”上发给我。撞上以后,除了我以外,谁都打不开保险箱了。这就是RSA了,公开的保险箱就是公钥,但是我有私钥,我才能打开。

2.数字签名
这种锁看起来好像很不错,但是锁在运输的过程中有这么一个严重的问题:你怎么确定你收到的开着的保险箱就是我发来的呢?对于一个聪明人,他完全可以这么干:
(a)装作运输工人。我现在把我开着的保险箱运给对方。运输工人自己也弄这么一个保险箱,运输的时候把保险箱换成他做的。
(b)对方收到保险箱后,没法知道这个保险箱是我最初发过去的,还是运输工人替换的。对方把数据放进去,把保险箱撞上。
(c)运输工人往回运的时候,用自己的钥匙打开自己的保险箱,把数据拿走。然后复印也好,伪造也好,弄出一份数据,把这份数据放进我的保险箱,撞上,然后发给我。
从我的角度,从对方的角度,都会觉得这数据传输过程没问题。但是,运输工人成功拿到了数据,整个过程还是不安全的,大概的过程是这样:

这怎么办啊?这个问题的本质原因是,人们没办法获知,保险箱到底是“我”做的,还是运输工人做的。那干脆,我们都别做保险箱了,让权威机构做保险箱,然后在每个保险箱上用特殊的工具刻上一个编号。对方收到保险箱的时候,在权威机构的“公告栏”上查一下编号,要是和保险箱上的编号一样,我就知道这个保险箱是“我”的,就安心把数据放进去。大概过程是这样的:

如何做出刻上编号,而且编号没法修改的保险箱呢?这涉及到了公钥体制中的另一个问题:数字签名。
要知道,刻字这种事情吧,谁都能干,所以想做出只能自己刻字,还没法让别人修改的保险箱确实有点难度。那么怎么办呢?这其实困扰了人们很长的时间。直到有一天,人们发现:我们不一定非要在保险箱上刻规规矩矩的字,我们干脆在保险箱上刻手写名字好了。而且,刻字有点麻烦,干脆我们在上面弄张纸,让人直接在上面写,简单不费事。具体做法是,我们在保险箱上嵌进去一张纸,然后每个出产的保险箱都让权威机构的CEO签上自己的名字。然后,CEO把自己的签名公开在权威机构的“公告栏”上面。比如这个CEO就叫“学酥”,那么整个流程差不多是这个样子:

这个方法的本质原理是,每个人都能够通过笔迹看出保险箱上的字是不是学酥CEO签的。但是呢,这个字体是学酥CEO唯一的字体。别人很难模仿。如果模仿我们就能自己分辨出来了。要是实在分辨不出来呢,我们就请一个笔迹专家来分辨。这不是很好嘛。这个在密码学上就是数字签名。

上面这个签字的方法虽然好,但是还有一个比较蛋疼的问题。因为签字的样子是公开的,一个聪明人可以把公开的签字影印一份,自己造个保险箱,然后把这个影印的字也嵌进去。这样一来,这个聪明人也可以造一个相同签字的保险箱了。解决这个问题一个非常简单的方法就是在看保险箱上的签名时,不光看字体本身,还要看字体是不是和公开的字体完全一样。要是完全一样,就可以考虑这个签名可能是影印出来的。甚至,还要考察字体是不是和其他保险柜上的字体一模一样。因为聪明人为了欺骗大家,可能不影印公开的签名,而影印其他保险箱上的签名。这种解决方法虽然简单,但是验证签名的时候麻烦了一些。麻烦的地方在于我不仅需要对比保险箱上的签名是否与公开的笔迹一样,还需要对比得到的签名是否与公开的笔迹完全一样,乃至是否和所有发布的保险箱上的签名完全一样。有没有什么更好的方法呢?

当然有,人们想到了一个比较好的方法。那就是,学酥CEO签字的时候吧,不光把名字签上,还得带上签字得日期,或者带上这个保险箱的编号。这样一来,每一个保险箱上的签字就唯一了,这个签字是学酥CEO的签名+学酥CEO写上的时间或者编号。这样一来,就算有人伪造,也只能伪造用过的保险箱。这个问题就彻底解决了。这个过程大概是这么个样子:

3 造价问题(密钥封装机制,Key Encapsulation Mechanism)
解决了上面的各种问题,我们要考虑考虑成本了… 这种能“撞”门的保险箱虽然好,但是这种锁造价一般来说要比普通的锁要高,而且锁生产时间也会变长。在密码学中,对于同样“结实”的锁,能“撞”门的锁的造价一般来说是普通锁的上千倍。同时,能“撞”门的锁一般来说只能安装在小的保险柜里面。毕竟,这么复杂的锁,装起来很费事啊!而普通锁安装在多大的保险柜上面都可以呢。如果两个人想传输大量数据的话,用一个大的保险柜比用一堆小的保险柜慢慢传要好的多呀。怎么解决这个问题呢?人们又想出了一个非常棒的方法:我们把两种锁结合起来。能“撞”上的保险柜里面放一个普通锁的钥匙。然后造一个用普通的保险柜来锁大量的数据。这样一来,我们相当于用能“撞”上的保险柜发一个钥匙过去。对方收到两个保险柜后,先用自己的钥匙把小保险柜打开,取出钥匙。然后在用这个钥匙开大的保险柜。这样做更棒的一个地方在于,既然对方得到了一个钥匙,后续再通信的时候,我们就不再需要能“撞”上的保险柜了啊,在以后一定时间内就用普通保险柜就好了,方便快捷嘛。

以下参考 数字签名、数字证书、SSL、https是什么关系?
4.数字签名(Digital Signature)
数据在浏览器和服务器之间传输时,有可能在传输过程中被冒充的盗贼把内容替换了,那么如何保证数据是真实服务器发送的而不被调包呢,同时如何保证传输的数据没有被人篡改呢,要解决这两个问题就必须用到数字签名,数字签名就如同日常生活的中的签名一样,一旦在合同书上落下了你的大名,从法律意义上就确定是你本人签的字儿,这是任何人都没法仿造的,因为这是你专有的手迹,任何人是造不出来的。那么在计算机中的数字签名怎么回事呢?数字签名就是用于验证传输的内容是不是真实服务器发送的数据,发送的数据有没有被篡改过,它就干这两件事,是非对称加密的一种应用场景。不过他是反过来用私钥来加密,通过与之配对的公钥来解密。
第一步:服务端把报文经过Hash处理后生成摘要信息Digest,摘要信息使用私钥private-key加密之后就生成签名,服务器把签名连同报文一起发送给客户端。
第二步:客户端接收到数据后,把签名提取出来用public-key解密,如果能正常的解密出来Digest2,那么就能确认是对方发的。
第三步:客户端把报文Text提取出来做同样的Hash处理,得到的摘要信息Digest1,再与之前解密出来的Digist2对比,如果两者相等,就表示内容没有被篡改,否则内容就是被人改过了。因为只要文本内容哪怕有任何一点点改动都会Hash出一个完全不一样的摘要信息出来。

5.数字证书(Certificate Authority)
数字证书简称CA,它由权威机构给某网站颁发的一种认可凭证,这个凭证是被大家(浏览器)所认可的,为什么需要用数字证书呢,难道有了数字签名还不够安全吗?有这样一种情况,就是浏览器无法确定所有的真实服务器是不是真的是真实的,举一个简单的例子:A厂家给你们家安装锁,同时把钥匙也交给你,只要钥匙能打开锁,你就可以确定钥匙和锁是配对的,如果有人把钥匙换了或者把锁换了,你是打不开门的,你就知道肯定被窃取了,但是如果有人把锁和钥匙替换成另一套表面看起来差不多的,但质量差很多的,虽然钥匙和锁配套,但是你却不能确定这是否真的是A厂家给你的,那么这时候,你可以找质检部门来检验一下,这套锁是不是真的来自于A厂家,质检部门是权威机构,他说的话是可以被公众认可的(呵呵)。
同样的, 因为如果有人(张三)用自己的公钥把真实服务器发送给浏览器的公钥替换了,于是张三用自己的私钥执行相同的步骤对文本Hash、数字签名,最后得到的结果都没什么问题,但事实上浏览器看到的东西却不是真实服务器给的,而是被张三从里到外(公钥到私钥)换了一通。那么如何保证你现在使用的公钥就是真实服务器发给你的呢?我们就用数字证书来解决这个问题。数字证书一般由数字证书认证机构(Certificate Authority)颁发,证书里面包含了真实服务器的公钥和网站的一些其他信息,数字证书机构用自己的私钥加密后发给浏览器,浏览器使用数字证书机构的公钥解密后得到真实服务器的公钥。这个过程是建立在被大家所认可的证书机构之上得到的公钥,所以这是一种安全的方式。

常见的对称加密算法有DES、3DES、AES、RC5、RC6。非对称加密算法应用非常广泛,如SSH,
HTTPS, TLS,电子证书,电子签名,电子身份证等等。
参考 DES/3DES/AES区别

热点内容
java返回this 发布:2025-10-20 08:28:16 浏览:750
制作脚本网站 发布:2025-10-20 08:17:34 浏览:1012
python中的init方法 发布:2025-10-20 08:17:33 浏览:719
图案密码什么意思 发布:2025-10-20 08:16:56 浏览:879
怎么清理微信视频缓存 发布:2025-10-20 08:12:37 浏览:774
c语言编译器怎么看执行过程 发布:2025-10-20 08:00:32 浏览:1127
邮箱如何填写发信服务器 发布:2025-10-20 07:45:27 浏览:351
shell脚本入门案例 发布:2025-10-20 07:44:45 浏览:229
怎么上传照片浏览上传 发布:2025-10-20 07:44:03 浏览:912
python股票数据获取 发布:2025-10-20 07:39:44 浏览:876