编码(encoding):将现实世界中的东西映射为比特序列的操作称为编码。
这种编码规则叫做ASCII。
XOR(exclusiveor):
我们将一个棋子保持原状(不翻转)看作0,将一个棋子翻转到另一面看作1,那么XOR
运算就相当于将黑白棋的一个棋子进行翻转的操作。
随机数:不可预测的比特数列。
一次性密码本(one-time pad):由维纳(G.S.Vernam)于1917年提出的,并获得了专利,因此又称为维纳密码(Vernam cipher)(该专利已过有效期)。一次性密码本无法破译这一特性是有香农(C.E.Shannon)与1949年通过数学方法加以证明的。
能够使用一次性密码本的,只有那些机密性重过一切,且可以花费大量财力和人力来生成并配送密钥的场合。例如,据说大国之间的热线就使用了一次性密码本,这种情况下估计会有专门的特工来承担配送密钥的任务,也就是说,特工需要将随机比特序列直接交到对方手中。
DES(Data Encryption Standard):是1977年美国联邦信息处理标准(FIPS)中所采用的一种对称密码。DES一直以来被美国以及其他国家的*和银行等广泛使用。20世纪末,RSA公司举办过破译DES密钥的比赛(DES Challenge),我们可以看一看RSA公司官方公布的比赛结果:1977年的DES Challenge 中用了96天破译密钥,1998年的DES Challenge -中用了41天,1998年的Challenge -2中用了56小时,1999年的Challenge 中只用了22小时15分钟。
分组密码(block cipher):以分组为单位进行处理的密码算法,DES以64比特的明文(比特序列)为单位来进行加密的,这64个比特的单位称为分组。
模式(mode):迭代的具体方式。
Feistel网络:DES的基本结构是由Horst Feistel设计的,因此也称为Feistel网络(Feistel Network),Feistel结构(Feistel structure)或者Feistel密码(Feistel cipher)。这一结构在其他很多密码算法中也有应用。
轮(round):在Feistel网络中加密的各个步骤。DES是一种16轮的Feistel网络。
查分分析:是一种针对分组密码的分析方法,这种方法由Biham和Shamir提出,其思路是改变一部分明文并分析密文如何随之改变。
线性分析:这种方法由松井充提出,其思路是将明文和密文的一些对应比特进行XOR并计算其结果为零的概率。
选择明文攻击(Chosen Plaintext Attack,CPA):差分分析和线性分析都有一个前提,那就是假设密码破译者可以选择任意明文并得到其加密的结果。
三重DES
AES(Advanced Encryption Standard)是取代其前任标准(DES)而成为新标准的一种对称密码算法。
通过竞争来实现标准化(standardization by competition):AES的选拔过程是对全世界公开的。实际上,对密码算法的评审不是由NIST(National Institute of Standards and Technology,国家标准技术研究所)来完成的,这其中也包括AES竞选的参加者。
Rijndael:是由比利时密码学家Joan Daemen和Vincent Rijmen设计的分组密码算法,于2000年被选为AES。Rijndael算法也是由多个轮构成的,其中每一轮分为SubBytes、ShiftRows、MixColumns和AddRoundKey共4个步骤。使用SPN结构。
2020-05-13