- 加密和解密?
- 密码技术的分类?
- 加密算法和密钥有什么区别?
- 为什么不要使用自制加密算法?
- 理论上无法破解的密码算法
加密和解密
加密通俗的讲,就是将信息转换成另外一种形式,达到其他人即使获得了加密后的数据,他也看不懂。
加密,是以某种特殊的算法改变原有的信息数据,使得未授权的用户即使获得了已加密的信息,但因不知解密的方法,仍然无法了解信息的内容–百度百科
解密顾名思义就是将加密后的数据转换为之前的信息,让人可以看懂。
解密和加密互为逆运算。
密码技术的分类
时间划分
- 古典密码 以字符为加密单位 置换和替换是古典算法的两个特点
- 置换 不改变明文信息,打乱明文顺序。比如滚筒密码
- 替换 将明文按照一定的规则转换为密文。单表替换、凯撒密码、Enigma等
- 现代密码 以信息块为加密单位 公开算法 对密钥保密 置换和替换同样是现代密码不可或缺的技术
- DES算法
- RSA算法
密钥类型划分
- 对称加密系统:加密密钥和解密密钥相同
- 非对称加密(公钥加密)系统:加密密钥和解密密钥不同
按加密方式划分
- 分组加密 将明文分组,一次加密一组明文
- 流加密 一次加密一位或一个字节明文
加密算法和密钥有什么区别?
加密算法指的是加密的方式,是加密的逻辑,是加密的共性,是明文变换成密文的函数。
当然解密算法指的是解密的方式,是解密的逻辑,是解密的共性,是密文变换成明文的函数。
加密算法和解密算法可以是同一个。他们合成密码算法
密钥指的是加密算法中将明文转换为密文的参数,也可以是解密算法中将密文转化为明文的参数。
加密技术 | 算法 | 密钥 |
单表替代密码 | 按照字母进行替换 | 替换表 |
对称加密 | DES | 密钥 |
非对称加密 | RSA | 公钥与私钥 |
不能每次进行加密都生成一个信息的密码算法,我们希望能够复用密码算法。
为什么不要使用自制加密算法?
很多人使用自制的加密算法,认为只要算法保密,那么就是安全的。但是千万不要这样想
- 首先我们不是专业的密码学家,不可能简单的设计出安全的密码
- 其次算法不可能一直保密,总会有“好心人”将你的算法公开,那时你该怎么办
- 很多工具都可以反编译源码等,可以看到执行逻辑,算法总会被破解
使用公开算法的好处
- 这是密码学家经过精心设计的
- 会经过全世界的使用者、破译者来使用、攻击,有问题会很快暴露和改进
- 算法大家都知道,只要对密钥进行保密就行了
理论上无法破解的密码算法
一次性密码本(One-time Pad;OTP)是密码学中的一种加密算法。是以随机的密钥(key)组成明文,且只使用一次。这种方法在1882年被弗兰克·米勒(Frank Miller)发现,并沿用至今–百度百科
他无法破解的原因是
- 密钥只是用一次
- 即使使用暴力手段破解之后,也无法判断,哪些解密后的数据是正确明文
很少使用的原因
- 密钥的配送 如果能够安全传送密钥,直接安全传送消息多好
- 必须是完全随机的密钥,暂未发现可实现方式
参考书籍和文章
关于本章内容,参考了一下书籍和文章