对称加密和非对称加密 1.什么是对称加密,非对称加密 对称加密是指加解密使用的是同样的密钥 非对称加密是指加解密使用的密钥不同。 2.对称加密的优缺点 对称加密的特点是简单快速。 因为私钥不通过网络发送出去,所以非对称加密的安全性很高。 非对称加密很安全,但和对称加密比起来,非常慢。 使用步骤如下: 1)A生成一个随机数作为对称密钥 2)A向B申请公钥 3)B将公钥发给A 4)A使用公钥加密对称密钥,将加密后的结果发给B 5)B使用私钥解密出对称密钥 6)A和B可以通过对称密钥对信息加解密了 2)鲍勃把公钥送给他的朋友们----帕蒂、道格、苏珊----每人一把。 ? 3)苏珊要给鲍勃写一封保密的信。她写完后用鲍勃的公钥加密,就可以达到保密的效果。 ? 2)首先,客户端向服务器发出加密请求。 ? 3)服务器用自己的私钥加密网页以后,连同本身的数字证书,一起发送给客户端。 ?
对称加密有很多种算法,由于它效率很高,所以被广泛使用在很多加密协议的核心当中。 对称加密通常使用的是相对较小的密钥,一般小于256 bit。因为密钥越大,加密越强,但加密与解密的过程越慢。 现实中通常的做法是将对称加密的密钥进行非对称加密,然后传送给需要它的人。 ,但是和对称加密比起来,它非常的慢,所以我们还是要用对称加密来传送消息,但对称加密所使用的密钥我们可以通过非对称加密的方式发送出去。 (2) 非对称加密使用了一对密钥,公钥与私钥,所以安全性高,但加密与解密速度慢。 (3) 解决的办法是将对称加密的密钥使用非对称加密的公钥进行加密,然后发送出去,接收方使用私钥进行解密得到对称加密的密钥,然后双方可以使用对称加密来进行沟通。
对称加密 对称密钥是双方使用相同的密钥 。 对称加密的要求 (1)需要强大的加密算法。算法至少应该满足:即使分析人员知道了算法并能访问一些或者更多的密文,也不能译出密文或得出密匙。 即,加密算法应足以抵抗已知明文类型的破译。 (2)发送方和接收方必须用安全的方式来获得保密密匙的副本,必须保证密匙的安全。 信息传输: 过程: (1) Alice需要在银行的网站做一笔交易,她的浏览器首先生成了一个随机数作为对称密钥。 (2) Alice的浏览器向银行的网站请求公钥。 总结 (1) 对称加密加密与解密使用的是同样的密钥,所以速度快,但由于需要将密钥在网络传输,所以安全性不高。 (2) 非对称加密使用了一对密钥,公钥与私钥,所以安全性高,但加密与解密速度慢。 (3) 解决的办法是将对称加密的密钥使用非对称加密的公钥进行加密,然后发送出去,接收方使用私钥进行解密得到对称加密的密钥,然后双方可以使用对称加密来进行沟通。
对称加密和非对称加密。 对称加密 所谓的对称加密,起归根结底在于加密和解密的密钥是相同的。 不过 DES 的这种加密机制是存在弊端的:由于 DES 会把报文拆开成为一组一组的 64 位数据,64 位二进制数据有 56 位可用,所以数据总量是 2 ^ 56 次方,它的密码生命周期非常段,这个数据总量在现在的计算机世界非常容易被破解 非对称加密 非对称加密其实还有一个叫法是公钥密码加密,非对称加密使用的是不同的加密密钥和解密密钥。 非对称加密出现的原因大概是基于两个方面:一是由于对称加密的密钥分配问题,二是由于对数字签名的要求。 根据这两项原因导致了非对称加密的出现。 非对称加密主要的算法有三种:RSA、DSA、ECDSA,目前使用最广泛、最普遍的非对称加密算法就是 RSA。RSA 采用的是数论中的大数分解方式。
一:对称加密 对称加密指的就是加密和解密使用同一个秘钥,所以叫对称加密。 对称加密只有一个秘钥,作为私钥。 二:非对称加密 非对称加密指的是:加密和解密使用不同的秘钥,一把作为公开的公钥,另一把作为私钥。 公钥加密的信息,只有私钥才能解密。 私钥加密的信息,只有公钥才能解密。 常见的给对称加密: RSA,ECC 区别: 对称加密算法,加解密的效率要高很多。 但是缺陷在于对秘钥的管理上,以及在非安全信道中通讯时,密钥交换的安全性不能保障。 对称加密和非对称加密的区别 一: 对称加密: 加密解密使用同一个密钥,被黑客拦截不安全 二:非对称加密:公钥加密,私钥解密。 简单理解: 对称加密: A和B传输数据,使用同一个密钥,不安全 非对称加密: A和B传输数据, A具有自己的公私钥,B具有自己的公私钥。
对称加密与非对称加密 在数字加密算法中,可划分为对称加密和非对称加密。 对称加密 对称加密算法中对于数据的加密与解密使用同一密钥,即使用相同的密码对内容进行加密解密。 3DES:原理和DES几乎是一样的,只是使用3个密钥,对相同的数据执行三次加密,增强加密强度。 AES(Advanced Encryption Standard):高级数据加密标准,AES算法可以有效抵制针对DES的攻击算法 此外还有Blowfish、IDEA、RC4、RC5、RC6等算法 非对称加密 非对称加密算法需要两个密钥:公开密钥和私有密钥,私钥不能被其他任何人知道,公钥则可以随意公开。 优点 安全性更高,保护通信安全方面有着绝对优势 缺点 加解密速度要远远慢于对称加密,加密算法极其复杂,安全性依赖算法与密钥 常用算法 RSA:是目前最有影响力和最常用的非对称加密算法,它能够抵抗到目前为止已知的绝大多数密码攻击
2.保密性,第三方无法解密。 3.可认证性,消息的接收方可以确定消息是谁发送的。 对称加密 双方使用的同一个密钥,既可以加密又可以解密,这种加密方法称为对称加密,也称为单密钥加密。 优点:速度快,对称性加密通常在消息发送方需要加密大量数据时使用,算法公开、计算量小、加密速度快、加密效率高。 缺点:在数据传送前,发送方和接收方必须商定好秘钥,然后 使双方都能保存好秘钥。 其次如果一方的秘钥被泄露,那么加密信息也就不安全了。另外,每对用户每次使用对称加密算法时,都需要使用其他人不知道的唯一秘 钥,这会使得收、发双方所拥有的钥匙数量巨大,密钥管理成为双方的负担。 在对称加密算法中常用的算法有:DES、AES等。 AES:密钥的长度可以为128、192和256位,也就是16个字节、24个字节和32个字节 DES:密钥的长度64位,8个字节。 混合使用(非对称加密+数字签名) 首先接收方和发送方都有一对秘钥。 发送方: 1.对消息进行md5等摘要运算,得到消息摘要。 2.使用发送方私钥对消息摘要进行加密,该过程也称作签名。
首先,简要介绍一下加密技术。即将明文加密为密文,并通过通信路径发送,中途窃听者不会阅读或理解课文。在接收端接收时,密文被解密为明文。 加密算法一般可以分为两种:一种是对称加密,另一种是非对称加密。 1.对称加密 采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密,也称为单密钥加密。 ,只要一个人的秘钥泄漏了,其他人都会受到影响,整体加密信息也会被破解 秘钥管理负担大 优点: 算法公开、计算量小、加密速度快、加密效率高 2.非对称加密 对称加密算法在加密和解密时使用的是同一个秘钥; 而非对称加密算法需要两个密钥来进行加密和解密,这两个密钥是公开密钥(public key,简称公钥)和私有密钥(private key,简称私钥) 非对称加密解决了对称加密过程中秘钥容易被破解的问题。 B说: “可以,我的公钥是:*#UYBHH767**IXA,你可以用这个公钥加密你要发的信息” A说: “我加密好了,这是加密后的信息:#SJ2HDSJ35KDH*##5JK5AHD1JKA,你可以用你的私钥解开得到明文
上一章节我们说到解决窃听的方法是加密,这里我们来说说加密 对称加密 两边用同一个密钥来加解密。 对称加密的有优缺点 对称加密的优点:加解密速度快 对称加密的缺点:会出现密钥分配问题;密钥容易复制,不便于安全保管 密钥分配问题 对称加密的存在密钥分配问题,A的密钥怎么才能安全的传输到B 非对称加密的优缺点 非对称加密的优点:不会出现密钥分配问题 非对称加密的缺点:加解密速度慢,仍有被窃听的隐患,原因和中间人攻击一样,后面会讲到。 既然对称加密和非对称加密都有缺点,那么我们能不能用一种方法结合一下他们的优点形成一套比较好的方案呢?答案是有的,那就是混合加密 混合加密 传输大量数据的时候使用对称加密,因为加解密速度快。 但是由于对称加密有秘钥分配问题,所以我们用非对称加密来加密这个对称密钥再传递给对方。 我们会认为接下来的方案应该是比较完美了吧?
往往是不直观的,不易理解的 密钥:加密和解密过程中的关键道具 对称加密:加密和解密用的是同一个密钥 非对称加密:加密和解密用的不是同一个密钥,这两个密钥 k1 和 k2是成对的 可以使用 k1 加密 ,k2 解密 可以使用 k2 加密,k1 解密 两个密钥,可以一个公开出去,称为“公钥”,另一个自己保存,称为“私钥” 手里只有一把的话,是无法知道另一把是什么的(是有一定的数学原理的) HTTPS 引入对称加密 通过对称加密的方式,针对传输的数据进行加密操作,这样网络上传输的就是密文了 对称加密的时候,客户端和服务器需要使用同一个密钥 不同的客户端需要使用不同的密钥 如果所有的客户端的密钥都一样 (也不一定非得是客户端生成,服务器生成也行,但也是要告诉客户端的) 问题的关键: 密钥需要传输给对方,一旦黑客拿到了密钥,意味着加密操作就没意义了 这样即使你传输的是密文,但黑客也能解密 2. 引入非对称加密 使用非对称加密主要的目的是为了加密“对称密钥”,确保对称密钥的安全性 不能使用非对称加密针对后续传输的各种 header、body 等进行加密,而是只能对对称加密的密钥进行加密 因为非对称加密的加密解密成本
1.2 对称加密 1.2.1 对称加密算法的概念 对称加密: 对称加密指的是加密和解密使用相同密钥的加密算法,也称为单密码加密。 他的特点是算法公开、计算量少、加密速度快,对于同样大小的传输对象,对称加密的效率通常为非对称的千倍左右,因为通常被广泛应用于很多加密协议的核心工作(如https在真正数据通信时就使用的对称加密算法)。 1.2.2 常见对称加密算法 常见的对称加密算法: DES、3DES、TDEA、RC2 1.3 非对称加密 1.3.1 非堆成加密算法的概念 非对称加密: 非对称密码使用一对公钥和私钥加密。 服务器使用私密加密数据往外传输时,可以持有非对称加密的用途。 1.3.2 非堆成加密的用途 单向传输加密数据,防止中间人攻击。 1.3.3 常见的非对称加密算法 常见的非对称加密算法: RSA、DSA、ECC等。
概述: 数字签名和加密依赖于相应的加密算法 自变量:加密前的数据、密钥 因变量:加密后的数据 加密算法分类:根据加密和解密这两种步骤采用的密钥的是否相同进行分类 相同:对称加密 不相同: 非对称加密 非对称加密的应用场景: (1)通过对消息进行加密解决机密性问题(消息的内容仅对发送者期望的接收者可见) (2)通过数字签名实现身份认证和数据一致性 1.消息加密 非对称加密:公钥/私钥 2.数字签名 签名: (1)发送方采用某种算法对整个消息的内容实施哈希计算,得到一个哈希码 (2)发送发使用自己的私钥对该哈希码进行加密,加密后得到的密文就是数字签名 (3)将数字签名和密钥对中的公钥附加到源消息上 (2)数字证书将公钥值绑定到持有对应私钥的个人、设备或服务的标识信息上。 (3)大多数证书基于X.509 V3证书标准,所以称作X.509证书。 (2)创建数字证书 用户对数字证书的认可取决于对证书颁发机构的信息,所以证书颁发机构决定了数字证书的可用范围。
对称加密 加密 encryption 与解密 decryption 使用的是同样的密钥 secret key,对称加密是最快速、最简单的一种加密方式。 非对称加密 非对称加密算法需要两个密钥来进行加密和解密,这两个秘钥是公开密钥(简称公钥)和私有密钥(简称私钥),即常说的“公钥加密,私钥加密”或“私钥加密,公钥加密”。 非对称加密使用这对密钥中的一个进行加密,而解密则需要另一个密钥。 For Example RSA 就是最常用的非对称加密算法。 虽然非对称加密很安全,但是和对称加密比起来,它非常的慢,所以我们还是要用对称加密来传送消息,但对称加密所使用的密钥我们可以通过非对称加密的方式发送出去。 解决的办法是将对称加密的密钥使用非对称加密的公钥进行加密,然后发送出去,接收方使用私钥进行解密得到对称加密的密钥,然后双方可以使用对称加密来进行沟通。
在了解对称加密和非对称加密的区别之前我们先了解一下它们的定义: 对称加密(Symmetric Cryptography),又称私钥加密 对称加密是最快速、最简单的一种加密方式,加密(encryption 相对于“对称加密算法”这种方法也叫做“非对称加密算法”。非对称加密为数据的加密与解密提供了一个非常安全的方法,它使用了一对密钥,公钥(public key)和私钥(private key)。 公钥机制灵活,但加密和解密速度却比对称密钥加密慢得多。 非对称密钥加密的使用过程: 1. A要向B发送信息,A和B都要产生一对用于加密和解密的公钥和私钥。 2. (2) 非对称加密使用了一对密钥,公钥与私钥,所以安全性高,但加密与解密速度慢。 (3) 解决的办法是将对称加密的密钥使用非对称加密的公钥进行加密,然后发送出去,接收方使用私钥进行解密得到对称加密的密钥,然后双方可以使用对称加密来进行沟通。
对称加密与非对称加密 首先我们先来说一下到底什么是对称加密,什么是非对称加密,这一节主要是用一些例子来介绍一下对称加密和非对称加密是什么,如果你已经了解了,可以跳过本节。 从上一节我们可以知道,非对称加密运行起来通常比对称加密慢,那么这时就有一个问题了,对于密钥的存储情况也是这样吗?非对称加密对于密钥的存储会比对称加密的密钥存储少吗? 因此我们在项目中通常会采用如下这种将两种加密算法结合在一起的使用方式: 1.首先随机生成单次请求加密密钥(clientAesKey,长度为 16 位,可以用 26 个字母和数字组成)2.RSA 负责加密一个字符串 关于 HTTPS 的详解,可以参考我的好朋友寒食君的这篇《谈恋爱也要懂 HTTPS》[2]。现在如果有面试官问你,在 https 中采用了哪种加密方式,我想你应该知道答案了吧。 : https://security.stackexchange.com/questions/57205/why-is-rsa-decryption-slow [2] 《谈恋爱也要懂 HTTPS》: https
三、什么是对称加密 前言讲的故事就是一个对称式加密,小明和小红都知道第一次约会的日期。所以传统的对称式加密需要通讯双方都保存同一份密钥,通过这份密钥进行加密和解密。所以非对称加密也称为单密钥加密。 接下来就可以通过对称加密进行通信了。 四、什么是非对称加密 在对称加密中,加密和解密使用的是同一份密钥。所以,在非对称加密中,加密和解密使用的是不同的密钥。非对称加密中的密钥分为公钥和私钥。 公钥顾名思义就是公开的,任何人都可以通过公钥进行信息加密,但是只有用户私钥的人才能完成信息解密。非对称加密带来了一个好处,避免了对称式加密需要传输和保存同一份密钥的痛苦。 现在最流行的非对称加密算法就是RSA加密算法,具体是怎么做的呢,我们继续往下看。
什么是对称加密,这里我我们就参考百度词条 百度词条 这几天在逛博客的时候看到个一个比较强的加解密模块,于是分享给大家。 同一个字符串,每次加密出来的结果都是不同的,而且还可以设定加密后的数据的有效时间,实在是太棒了, 使用方法 新建php文件,把以下代码粘贴进去. <? Ltd * @license http://kodcloud.com/tools/licenses/license.txt *------ * 字符串加解密类; * 一次一密;且定时解密有效 * 可用于加密 加密方法 静态调用方法 $string = Mcrypt::encode('要加密的内容','密匙');//获取到加密后的字符串存入变量。 ');//获取到加密后的字符串存入变量。
对称加密和非对称加密HTTPS在HTTP的基础上加上了ssl协议来进行安全的数据传输的。 再理解对称加密和非对称加密。我们就能清楚地知道了HTTPS是怎么实现安全传输的了。对称加密对称加密就是说加密和解密使用的是同一个密钥。 通信双方要提前知道这个密钥是什么,然后使用这个密钥进行加密发送给对方,对方使用同样的密钥进行解密。非对称加密非对称加密就是说加密和解密使用的是不同的密钥,一个公钥和一个私钥,使用公钥加密,私钥解密。 HTTPS安全传输只使用非对称加密,客户端和服务端双方都各自持有私钥然后给对方发送公钥,然后进行传输也是可以进行安全传输的,但是非对称加密的加密加密速度是慢于对称加密的,所以我们使用混合加密进行HTTPS 的数据传输,主要步骤是使用非对称加密来进行对称密钥的传输,之后双发都有了对称密钥之后使用对称密钥进行数据的传输。
“加密”的过程,就是把“明文”变成“密文”的过程;反之,“解密”的过程,就是把“密文”变为“明文”。在这两个过程中,都需要一个关键的东东——叫做“密钥”——来参与数学运算。 2. 啥是“对称加密”? 啥是“非对称加密”? 所谓的“非对称加密技术”,意思就是说:“加密”和“解密”使用【不同的】密钥。这玩意儿比较难理解,也比较难想到。当年“非对称加密”的发明,还被誉为“密码学”历史上的一次革命。 由于篇幅有限,对“非对称加密”这个话题,俺就不展开了。有空的话,再单独写一篇扫盲。 4. 各自有啥优缺点? 看完刚才的定义,很显然:(从功能角度而言)“非对称加密”能干的事情比“对称加密”要多。 这是“非对称加密”的优点。但是“非对称加密”的实现,通常需要涉及到“复杂数学问题”。所以,“非对称加密”的性能通常要差很多(相对于“对称加密”而言)。 如何选择加密算法(“对称”or“非对称”)? 2. 如何兼顾 HTTP 采用的“短连接”TCP 方式?
非对称加密的类型之间的关系如图所示。 ? 加密模式 加密模式只有一种实现,即RSACryptoServiceProvider,采用的是RSA算法。 DSACryptoServiceProvider只能进行认证模式,即数字签名,不能进行加密模式。 下面便以RSACryptoServiceProvider为例,来说明加密模式的实现过程。 不管是对称加密还是非对称加密,密钥都是关键。 在对称加密中,密钥可以是开发者自行设定的字符串。 对于非对称加密来说,根据算法的不同密钥的格式也不相同,并且会复杂很多。 下面的两个方法SignData2()、VerifyData2()作用等同于前面的SignData()和VerifyData(),从简洁性来说差一些,但从步骤上来说更为清晰,便于大家理解。 全文回顾: 非对称加密的类型之间的关系 加密模式 自动创建一个公/私密钥对 数字签名