加密算法的分类
tags: 密码学
古典加密:
核心的思想是:置换
简单来说就是将信息的`特定信息`进行处理,加密本身不涉及密钥,工具。加密解密的关键就在于信息的处理的手段,
案例
古典密码学最经典的两个例子,斯巴达人的塞塔式密码:把一个长条羊皮螺旋式的盘绕在一个多棱棒上,然后水平方向从左到右写字,写一个字绕一圈。这长条羊皮拿下来看杂乱无章,但是加上同尺寸的多棱木棒后,就能看到准确的信息。
在古代的中国,藏头诗也算是一种。简单的说古典密码学就是通过对字符的位置改变或者替换,而不对字符本身做修改的方法来隐藏信息的,这种加密的方式还是比较简单,一旦掌握了解密工具或者规律,那么密码就会被破解,整体的安全性并不高。
现代加密
两个分支:
- 对称加密(Symmetric-key algorithm)
- 非对称加密(asymmetric key encryption algorithm)
思想:我也不懂,可以理解为对信息进行加工处理,将人类理解的文字转换成数字,再对数字进行各种运算,如位运算,迭代一个算法60次,置换特定数字。
在现代密码学中,有一个秘钥的概念。什么是秘钥?
秘钥:我们谈及秘钥,那也是基于特定的加密算法。在加密过程中,加密的具体算法,计算流程已经固定。不同地方在于,我们人为设定的加密参数。通常这个参数也会是一串没有规律的字符。
对称加密和非对程加密的区别
对称加密通过一个秘钥,不仅可以完成加密工作,也可以完成解密的工作
非对称加密,通过密钥A可以进行数据加密,但是不能通过密钥A还原数据;此时涉及第二把秘钥,秘钥B。通过密钥B进行解密还原数据。
更重要的是非对称加密完成了另一个功能:身份验证
非对称加密在数据加密和身份验证上,行为上有不同么?
答案是肯定的。数据加密和身份验证操作逻辑是不一样的
首先我们先弄清楚为什么要有公钥和私钥?
原因:有了公钥和私钥,业务功能,和使用场景更多了,使用场景可以更加具体。
如果只是想数据加密,根本不需要额外定义公钥和私钥,非对称加密的外在表现简单说就是
加工同一个数据,和还原数据用的不是同一个密钥。我们为何指不直接将密钥定义为
”秘钥A“和”秘钥B“,公和私体现了设计的初衷,
公就代表着:该公钥是公开的,每个人都可以知道,并且任何人都可以查到公钥的主人是谁,加粗这里很重要,
如果加粗部分不重视理解,后面在实践中的运用,就无法理解非对称加密为什么能起作用
私就代表着:私钥是单独保留,只有一个人持有,私钥和用户唯一对应。这是验证身份的凭证。
数据加密:有两个秘钥,公钥 和 私钥。我们通过公钥对数据加密后,用私钥就行解密。达到单向往私钥持有者加密传送数据。而且非对称加密的破解难度更大。
签名验证:细致的描述为,验证签名者的身份,并且签名者也不可以抵赖。公钥是验证,私钥是签名。
对比两个业务,数据加密是先公钥加密,再私钥解密。签名验证是先私钥签名,再公钥解析。
这两者都是利用加工数据和还原数据,密钥不一致的现象
注意:不管怎么样,都要保护好私钥,私钥是最重要的身份凭证。