uTank-木头
每一个你不满意的现在,都有一个你没有努力的曾经。
  • 分组密码和流密码

密码算法可以分为分组密码和流密码两种。

分组密码(block cipher)是每次只能处理特定长度的一块数据的一类密码算法,这里的“一块”就称为分组(block)。此外,一个分组的比特数就称为分组长度(block length)。

例如,DES和三重DES的分组长度都是64比特。这些密码算法一次只能加密64比特的明文,并生成64比特的密文。AES的分组长度可以从128比特、192比特和256比特中进行选择。当选择128比特的分组长度时,AES一次可加密128比特的明文,并生成128比特的密文。

流密码(stream cipher)是对数据流进行连续处理的一类密码算法。流密码中一般以1比特、8比特或32比特等为单位进行加密和解密。

分组密码处理完一个分组就结束了,因此不需要通过内部状态来记录加密的进度;相对地,流密码是对一串数据流进行连续处理,因此需要保存内部状态。

  • 什么是模式

分组密码算法只能加密固定长度的分组,但是我们需要加密的明文长度可能会超过分组密码的分组长度,这时就需要对分组密码算法进行迭代,以便将一段很长的明文全部加密。而迭代的方法就称为分组密码的模式(mode)

模式有很多种类,分组密码的主要模式有以下5种:

ECB模式:Electronic CodeBook mode(电子密码本模式)

CBC模式:Cipher Block Chaining mode(密码分组链接模式)

CFB模式:Cipher FeedBack mode(密文反馈模式)

OFB模式:Output FeedBack mode(输出反馈模式)

CTR模式:CounTeR mode(计数器模式)

 

posted on 2016-04-22 10:03  uTank  阅读(486)  评论(0编辑  收藏  举报