古典加密:
核心的思想是:置换
简单来说就是将信息的`特定信息`进行处理,加密本身不涉及密钥,工具。加密解密的关键就在于信息的处理的手段,
案例
古典密码学最经典的两个例子,斯巴达人的塞塔式密码:把一个长条羊皮螺旋式的盘绕在一个多棱棒上,然后水平方向从左到右写字,写一个字绕一圈。这长条羊皮拿下来看杂乱无章,但是加上同尺寸的多棱木棒后,就能看到准确的信息。
在古代的中国,藏头诗也算是一种。简单的说古典密码学就是通过对字符的位置改变或者替换,而不对字符本身做修改的方法来隐藏信息的,这种加密的方式还是比较简单,一旦掌握了解密工具或者规律,那么密码就会被破解,整体的安全性并不高。
## 现代加密
两个分支:
- 对称加密(Symmetric-key algorithm)
- 非对称加密(asymmetric key encryption algorithm)
思想:用秘钥处理明文,产生密文的过程.可以理解为对信息进行加工处理,将人类理解的文字转换成数字,再对数字进行各种运算,如位运算,迭代一个算法60次,置换特定数字。
在现代密码学中,有一个秘钥
的概念。什么是秘钥?
秘钥:我们谈及秘钥,那也是基于特定的加密算法。在加密过程中,加密的具体算法,计算流程已经固定。不同地方在于,我们人为设定的加密参数。通常这个参数也会是一串没有规律的字符。
现代加密的分类
1.单向散列加密
2.对称加密
3.非对称加密
分类的依据是可否解密和密钥的种类
单向散列加密
特点:加密容易,解密困难,不定长度,都加工成固定长度
可视为单向过程,无法反推原始信息.
常见算法:
SHA-1 : 安全散列算法
MD5: 信息摘要演算法,已破解
RIPEMD:基于MD4设计,已破解
BASE64:被认为是一种编码方式
SHA256:主流加密,比特币源码中使用了
对称加密
常见算法:
DES:Data Encryption Standard,俗称DES;已经淘汰
3DES:Triple DES,三重数据加密
- AES:Advanced Encryption Standard,代替了DES
非对称加密
- RSA:一种早期非对程算法
- DSA:Digital Signature Algorithm,只用作签名验证
- ECC:椭圆加密,比特币源码中使用了
在接下来的文章,我会选取和区块链相关性大,典型的算法,详细单独介绍加密算法
并且我觉得对于大部分人来说,重要的不是算法是如何实现,而是想弄清楚通过什么操作达到加密效果的,
我们应用加密算法的场景.