古典密码学
凯撒密码:
消息的加密是通过将当前字母替换为在常规字母表中第n个位置之后的那个字母来完成的。
培根密码:
是一种替换密码,16世纪由英国哲学家兰西斯·培根(知识就是力量口号的提出者)创造,每个明文字母被一个由5字符组成的序列替换,最初的加密方式就是由’A’和’B’组成序列替换明文
猪圈密码:
是一种以格子为基础的简单替换密码。
对称加密
采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密,也称为单密钥加密。
DES加密原理
DES(Data Encryption Standard)采用分组加密。使用64位的分组长度和56位的密钥长度,将64位的输入经过一系列变换得到64位的输出。DES算法利用多次组合替代算法和换位算法,通过混淆和扩散的相互作用,把明文编制成密码强度很高的密文。解密则使用了相同的步骤和相同的密钥。
DES算法特点
DES算法产生密钥的方式简单,密钥一般也比较短。
DES算法加密解密速度快,效率很高,适合对大数据量的数据进行加密。
DES算法的安全性依赖于密钥的高度保密,通信双方必须有方法能保证安全的分享密钥,并定期更换DES密钥。
非对称算法
非对称加密算法使用完全不同但又是完全匹配的一对钥匙:
公钥和私钥
公钥:公开的,任何人都知道
私钥:只有自己知道
算法:一对密钥中用公钥加密的结果可以用私钥解密,反过来用私钥加密的结果也可以用公钥解密。
区别
对称密码学基于替换和置换(混淆和扩散),运算速度快
公钥密码学基于数学理论(单向函数),运算速度慢
对称密码学使用单密钥,需要额外秘密信道协商密钥
公钥密码学使用两个独立的密钥,不需要秘密信道协商密钥
RSA算法
RSA算法基于数论构造,具体难题是大素数乘积的因子分解
将两个大素数相乘十分容易,但对其乘积进行因式分解却极其困难,因此可以将乘积作为加密密钥公开。
加密少量数据
比起DES和其它对称算法来说,RSA的运算速度要慢得多。
实际使用时,RSA算法不用来加密消息,而是用来加密传输密钥,加密消息用对称算法,如DES。
实现数字签名
将RSA算法反向使用(私钥加密公钥解密),对消息摘要加密,可以实现数字签名的功能。
数字签名可以防止数据篡改、数据抵赖和数据伪造发生。
信息摘要
消息摘要算法的主要特征是加密过程不需要密钥,并且经过加密的数据无法被解密。著名的摘要算法有MD5算法和SHA-1算法及其大量的变体。
它的应用
一致性验证
从网上下载文件,软件,各种资料的时候,有些文件会提供MD5对照信息。
利用MD5校验软件来核对下载的文件,可验证下载得到的文件与传送方提供的文件是否相符,防止被"篡改"。
安全访问认证
注册时提交的口令经过Hash计算后存入数据库。
验证时提交的口令同样进行Hash计算。
这可以避免用户的密码被具有系统管理员权限的用户知道以此保护敏感信息。
即使数据库被不法分子窃取,也很难获知用户的真正口令。
数字签名
数字签名是只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串类似于写在纸上的物理签名,用于鉴别数字信息的真伪,同时也是对信息的发送者身份真实性的一个有效证明。
数字签名是公钥加密技术与消息摘要技术的结合应用。
签名是可信的不可伪造的不可抵赖的文件是不可变的