密码学

密码学(Cryptology),可分为古典密码学和现代密码学。密码学是数学和计算机科学的分支,同时其原理大量涉及信息论。

古典密码学:主要关注信息的保密书写和传递,以及与其相对应的破译方法。

现代密码学:不只关注信息保密问题,还同时涉及信息完整性验证(消息验证码)、信息发布的不可抵赖性(数字签名)、以及在分布式计算中产生的来源于内部和外部的攻击的所有信息安全问题。

直到现代以前,密码学几乎专指加密算法:将普通信息转换成难以理解的数据的过程;解密算法则是其相反的过程,由密文转换回明文;加解密包含了这两种算法,一般加密即同时指加密与解密技术。

加解密的具体动作由两部分决定:算法和密钥。密钥是用于加解密算法的秘密参数。

对称密钥加密

对称密钥加密(Symmetric-key algorithm)又称对称加密、私钥加密、共享密钥加密,是密码学中的一种加密方法。这类算法在加密和解密的时候使用相同的密钥,或者可以互推密钥(即从加密密钥中推算出解密密钥,从解密密钥中推算出加密密钥)。而在大多数情况下,加密密钥和解密密钥都是相同的,只要发信方和接收方知道秘密密钥,他们就可以加密和解密并使用这个数据。

优点:算法公开、计算量小、速度快、效率高。

缺点:加密、解密双方共享密钥,安全性低。

常见算法:DES、3DES、AES、Blowfish、IDEA、RC5、RC6。

非对称加密

非对称加密(Asymmetric cryptography)又称公开密钥加密。在这种密码学方法中,需要一对密钥:一个是私有密钥,一个是公开密钥。当使用其中一个密钥进行对数据进行加密之后,需要使用另一个密钥才能对数据进行解密。并且,如果知道其中一个密钥,是不能计算出另外一个密钥的,所以公开了密钥对中的一个密钥,是不会危害到另一个密钥的。

优点:无需共享密钥,安全性高。

缺点:加密、解密花费时间长、速度慢、只适用于少量数据进行加解密。

常见算法:RSA、EIGamal、背包算法、Rabin。

数字签名

又称作公钥数字签名、电子签名,采用了非对称加密领域的技术实现,用于鉴定数字信息的方法。

数字签名兼具“可确认性”“不可否认性”

DES

数据加密标准(DES, Data Encryption Standard),是一种对称密钥加密块密码算法。

DES 的区块长度固定为 64 Bit, 密钥长度为 56 Bit。

AES

高级加密标准(AES, Advanced Encryption Standard),用于替代原有的 DES,其目前被广为使用,是目前对称密钥加密中最流行的算法之一。

AES 使用代换-置换网络(SPN, Substitution-Permutation Network)加密方式,相较于 DES 采用的 Feistel 架构,AES 在软件和硬件上都能快速地加解密,实现更容易且消耗的资源更少。

AES 的区块长度固定为 128 Bit,密钥长度则可以是128、192或者256 Bit。

RSA

RSA 是一种非对称加密算法,RSA 的命名来源于其三位作者名字(分别是罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman))的首字母。


参考文献: