密码学简单分析
首先简单认识一下https建立过程:
第一步:客户端向服务端发起请求
第二步:服务端响应请求,会带着数字证书(包含服务端公钥)
第三步:客户端收到后,取出公钥,并生成随机码KEY(这里的KEY就是双方后面通信的对称加密密钥),用服务端公钥对KEY进行加密,返回给服务端
第四步:服务端收到用自己的私钥解密,拿出KEY
第五步:返回给客户端用KEY加密的数据
第六步:客户端用KEY进行解密。
其中用到了两种加密方式,一种是对称加密(KEY),一种是非对称加密(公私钥)
其实对称和非对称就看有几把钥匙:
一把钥匙两个人用就是对称加密。
一人两把钥匙就是非对称加密。
下面我们分别挑一个浅浅的分析一下
非对称加密:
非对称加密也叫公开密码体制,每个人都有一对密钥。
一个是公钥(PK),一个是私钥(SK)
两个密钥直接存在某种算法联系,但由一个密钥没办法或者很难推导出另一个密钥。
首先“公钥”顾名思义就是公开的密钥,他可以被任何人看到。
“私钥”就是私人的钥匙,也就是说只有某个人才有,而且他不会被任何人看到。
- 公钥加密,私钥解密——目的是为了保证将数据发给具体的人。(保密通信)
助解:因为公钥A是大家都能看到的,每个人都可以用公钥A对自己的数据进行加密,但是只有拿着对应私钥A的人才能解开。其他人用自己的私钥是没办法解开经过公钥A加密的数据。
- 私钥加密,公钥解密——目的是为了保证数据由某个具体的人发出的。(数字签名认证)
助解:因为私钥A只有一个特定的人(小明)有,小明用自己的私钥对数据进行加密。大家用所有的公钥对数据进行解密,但发现只有公钥A才能解开加密的数据。所以大家可以知道这个数据是由小明发出的。
公钥加密体系采取将公钥和公钥的主人名字联系在一起的方法,再请一个有信誉的公正权威机构对每个公钥和所有者身份进行确认,确认后的公钥信息加上这个权威机构的签名,就形成了数字证书,也称为证书。
有了数字证书之后,互联网上的庞大用户群之间可以通过权威机构建立起基本的信任关系。
公开密码体制的优点:
- 密钥分配相对简单,不需要复杂的流程;
- 密钥的保存量少,且私钥和公钥分别存储;
- 可以实现互不相识的人之间进行私人通信时的保密性要求;
- 可以完成通信双方的数字签名和数字身份鉴别。
RSA(非对称):
RSA体制基于“大数分解和素数(prime number)检测”这一著名数论难题:
将两个大素数相乘十分容易,但将该乘积分解为两个大素数因子却极端困难;
素数检测就是判定一个给定的正整数是否为素数
整数的因子分解问题:将两个素数11927和20903相乘,可以很容易地得出249310081。但是将它们的积249310081分解因子得出上述两个素数却要困难得多。
RSA算法之所以具有安全性,是基于数论中的一个特性事实:将两个大的素数合成一个大数很容易,而逆过程则非常困难。
RSA的优缺点:
优点:
1.保密强度高
2.密钥分配及管理简便
3.可以用于数字签名实现身份认证
缺点:
- 运算复杂,速度慢:硬件实现时,RSA比DES要慢大约1000倍,软件实现时,RSA比DES要慢大约100倍。
其他非对称加密:DSA,ECC
对称密码体制:
对称密码体制对明文加密有两种方式:
序列密码(流密码,Stream Cipher)
分组密码 (Block Cipher)
.
.
序列密码原理:
以明文的比特为加密单位,用某一个伪随机序列作为加密密钥,与明文进行异或运算,获得密文序列;
在接收端,用相同的随机序列与密文进行异或运算便可恢复明文序列。
序列密码算法的安全强度完全取决于伪随机序列的好坏,因此关键问题是:伪随机序列发生器的设计。
优点:
1.错误扩散小(一个码元出错不影响其它码元);
2.速度快、实时性好;
3.安全程度高。
缺点:
密钥需要同步
分组密码 (Block Cipher)
分组密码( Block Cipher)加密是在密钥的控制之下,将定长的明文块转换成等长密文的技术。当前的许多分组密码采用64位分组大小,但为了提高安全性,这一长度可能会增加。
原理:
将明文序列以固定长度( Fixed length)进行分组,每一组明文用相同的密钥和加密函数进行运算。
优缺点:
容易检测出对信息的篡改,且不需要密钥同步,具有很强的适应性;
(与序列密码相比)分组密码在设计上的自由度小。
最典型分组密码是DES数据加密标准,它是单钥密码体制的最成功的例子。
DES(对称):
加密过程:
初始置换对输入的比特位置进行调整。
通过初始置换表实现
初始置换的功能
举例来看,输入为8位01110010
初始置换表为:
则输出为:10001101
初始置换是固定公开的,因此没有密码的意义。
DES系统的保密性主要取决于什么?
密钥的安全性 。
如何将密钥安全、可靠地分配给通信双方,在网络通信条件下就更为复杂,包括密钥产生、分配、存储、销毁等多方面的问题,统称为密钥管理。
密钥管理是影响DES等单钥密码体制安全的关键因素。因为即使密码算法再好,若密钥管理处理不当,也很难保证系统的安全性。
其他对称加密算法:3DES,AES