对称密钥系统和公开密钥系统
为了安全性,在因特网上传输的一些信息需要加密,比如用户登陆所使用的密码。加密系统一般分为对称密钥系统(symmetric key system)和公开密钥系统(public key system)。
对称密钥系统
在对称密钥系统中,用于加密和解密的密钥是相同的并且是秘密的,只能为两个人所知。
块密码加密和解密
块密码(block ciphers):要加密的报文被分为许多个块,每个块大小为k 比特,对于每一个k比特的块,独立进行加密。
举个例子,下面是一个映射表,input为明文,每块大小k=3。output为对应的密文形式。
因此,明文000,001,010,011被加密成110,111,101,100。如果我们知道这张映射表,就可以根据密文,得到对应的明文。
如果k=64,则需要维护一张具有2^64个输入值和输出值的表,这是难以实现的(存两个64位的数,16byte。具有2^64个16byte,这个内存占用太大了)。而且,修改时,也比较麻烦,需要重新生成。故块密码通常使用函数模拟映射表。为了防止相同的明文块(比如频繁出现的关键词Http)产生相同的密文块,可以在加密的时候,掺入随机性。
目前流行的块密码算法中,有DES(Data