古典密码
古典密码是以语言学为基础,对文字进行字符转化,最核心的有两种加密技巧:移位和替代,移位算法也叫错位算法,就是讲数字重新排序,例如123456变成341265。替代算法也叫置换算法,将明文中的一组字符替代成其他的字符,形成密文,例如:Hello Word变成IFMMP XPSE,每个字母用下一个字母代替。前面两种基本算法又被演变为很多分支,这些分支加入更加复杂的算法,让加密更加可靠。
单表替代密码:将明文的一个字符用相应密文字符替代,加密过程中从明文字母表到明文字母表一一映射,主要包括移位密码、乘数密码、仿射密码、多项式密码、密钥短语密码;
同音替代密码:它与单表替代密码相似,不同的是单个字符明文可以映射密文的几个字符中的一个,例如a字母可以对应2,5,11,吧、字母对应7,23,67。
多表替代密码:它是指明文中的字符映射到密文空间的字符还依赖于它在上下文中的位置,由多个简单的代替密码所构成,弗吉尼亚密码、滚动密钥密码、转子机密码均为多表替代密码,二次大战中的德军用的恩尼格玛密码机正是多表替代密码应用的典范。
多字母替代密码:明文中字符被成组加密,例如“ABA”可能对应于“RTQ”,ABB可能对应于SLL等,希尔密码,Playfair密码均为多字母替代密码,在一战中英国人采用了这种密码。
对称加密体制
古典密码学的延续,它使用的技巧任然是替代和移位,对称加密体制要求加密和解密使用同一个共享的密钥,解密和加密时互逆运算,通信的双方共享一个密钥,这就要求双方通信前必须商定好密钥,并且要妥善保存密钥。对称加密体制分为两种:一种是对明文的单个位或字节进行运算,称为流密码,也叫序列密码;另一种将明文信息划分为不同的组或块结构,分别对组或块进行加密和解密。
非对称加密体制
它和对称加密算法区别是非对称加密体制的加密密钥和解密密钥是不同的,它分为两个密钥:一个叫公钥可以公开的,一个叫密钥它是保密的,非对称加密体制使得发送者和接收者无密钥传输的保密通信成为可能,弥补的对称加密体制的不足。非对称加密如果使用公钥加密,那么就必须用私钥解密,同样的如果信息用私钥加密,那么就得用公钥解密,非对称加密可以用于支持数字签名和验证。非对称加密算法的安全性依赖于计算复杂度的难题,通常来自于数论。
哈希函数体制
哈希函数体制也叫离散函数体制或信息摘要体制或者叫单向函数或者叫杂凑函数,它的作用是用于验证数据的完整性的问题,哈希函数可以给数据创建数字指纹,数字指纹也叫哈希值,哈希值通常是一个短的随机字母和数字组成的字符串,哈希函数体制的特点是,不管多长的信息都可以进行哈希,不同信息算出的哈希值是不同的,两个不同的哈希值,那么哈希值的原始数据也不相同,哈希算法不可逆也就是哈希值推不出原始信息,常用的哈希算法有MD信息摘要算法,sha安全散列算法以及mac消息认证码算法。
数字签名技术
一些安全性要求较高的网站常常会使用数字签名技术,数字签名包含对数据完整性、认证性和不可否认性三个特征。数字签名针对数字形式存储的信息进行处理,产生一种带有操作者身份信息的编码,执行数字签名的实体叫做签名者,签名过程中使用的算法叫签名算法,签名过程中生成的编码称为签名者对该信息的数字签名。发送者通过网络将信息连同验证签名一起发送给接收者,接收者收到信息和数字签名后,可以通过一个算法验证签名的真伪以及识别对应的签名者,这个过程叫验证过程,其过程使用的算法叫验证算法。数字签名离不开非对称加密体制,签名算法受私钥控制,并由签名者保密,验证者算法受公钥控制,对外公开。