密码算法应用实践
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

前言

目前,越来越多的重要信息是以电子的形式存储和交换的,信息安全对密码提出了越来越高的要求。作为密码学重要组成部分的密码体制,近十几年来取得了长足的发展,特别是进入20世纪90年代以来,单钥密码新体制大量涌现,公钥密码标准化得到了迅速的发展。由于目前难以找到一本系统、全面介绍各种密码算法的图书,为使有关研究人员能够及时掌握各种密码算法,了解密码算法的发展新动向,开阔视野、活跃思路,我们编著了《密码算法应用实践》。

本书共分4章。

第1章为分组密码。

分组密码是现代密码学中的一个重要研究分支,其诞生和发展有着广泛的实用背景和重要的理论价值。目前这一领域还有许多理论和实际问题有待继续研究和完善。这些问题包括如何设计可证明安全的密码算法、如何加强现有算法及其工作模式的安全性、如何测试密码算法的安全性、如何设计安全的密码组件等。

对于分组密码,早期的研究基本上是围绕DES进行的,推出了一些类似的加密算法,如LOKI、FEAL、GOST等加密算法。进入20世纪90年代,人们对DES的研究更加深入,特别是差分密码分析(Differential Cryptanalysis)和线性密码分析(Linear Cryptanalysis)的提出,使人们不得不研究新的密码结构。IDEA加密算法打破了DES的垄断局面,随后出现了SQUARE、SHARK、SAFER-64等加密算法,从理论上给出了最大差分特征概率和最佳线性逼近优势的界,证明了密码对差分密码分析和线性密码分析的安全性。

AES的征集掀起了分组密码研究的新高潮,15个AES候选加密算法反映了当前分组密码设计的水平,也可以说是近几年研究成果的一个汇总。

本章介绍的分组算法可以分为3类:第一类是采用菲斯特(Feistel)结构的分组密码,包括采用非平衡Feistel结构的分组密码和可看成Feistel结构扩展的SKIPJACK加密算法,以及采用Hash函数和其他密码函数构建的基于Feistel结构的分组密码;第二类是采用非Feistel结构的分组密码;第三类是AES征集的15个候选的加密算法。

由本章给出的分组密码的加密算法可以看出,分组密码的基本编码思想是由一些简单的基本变换构成层变换,通过多层迭代来达到混乱和扩散的目的的,从而构成强的密码变换。虽然加密的理论和技术又有了许多新发展,提出了一系列新思想、新技巧,但各种算法的研究和改进都是万变不离其宗,都是根据使用需求和实现环境,以期使单位时间的计算取得更好的安全效益,是权衡加密算法密度和计算时间开销的折中。

分组密码加密的新思想和新发展表现为:一是在体系结构上更灵活多样;二是在基本运算选择上更多变快速;三是非线性变换的理论基础更趋完善;四是层密钥生成方法变化纷呈;五是分组密码与其他密码函数的内在联系越来越清晰;六是在密码中设置陷门的研究已深入到分组密码。

第2章为Hash函数。

20世纪70年代以来,随着网络的逐步普及,人类社会步入信息化时代。自此,电子文件大量出现,其安全性一开始就令人担忧。电子文件的安全问题之一是电子文件的完整性。所谓完整性,主要是指电子文件是否有部分改动、删除或插入。在社会客观需求推动下,经过包括密码学家在内的大批学者的共同努力,创造性地设计出了可满足消息完整性验证的密码算法——Hash函数。

本章主要介绍了典型的基于Hash函数的消息压缩值算法。

第3章为序列密码。

序列密码也称为流密码(Stream Cipher),是对称密码算法的一种。序列密码具有实现简单、便于硬件实施、加解密处理速度快、没有或只有有限的错误传播等特点,因此在实际应用中,特别是在专用或机密机构中保持着优势,典型的应用领域包括无线通信、外交通信。

分组密码以一定大小作为每次处理的基本单元,而序列密码则是以一个元素(一个字母或一个比特)作为基本的处理单元。序列密码是一个随时间变化的加密变换,具有转换速度快、低错误传播的优点,硬件实现电路更简单;缺点是低扩散(意味着混乱不够)、插入及修改的不敏感性。分组密码使用的是一个不随时间变化的固定变换,具有扩散性好、插入敏感等优点;缺点是加解密处理速度慢、存在错误传播。

序列密码涉及大量的理论知识,提出了众多的设计原理,也得到了广泛的分析,但许多研究成果并没有完全公开。这也许是因为序列密码目前主要应用于军事和外交等机密部门的缘故。目前,公开的序列密码加密算法主要有RC4、SEAL等。

本章主要介绍序列密码体制以及由此反映出来的加密新思想,主要包括:基于Fibonacci序列和CA构建的乱源发生器,FISH加密算法和PIKE加密算法以模232的Fibonacci序列为乱源,是乘同余序列的推广,CA是移位寄存器(或级间模二加移位寄存器)的推广,可看成是一种特殊的自动机;采用择多走/停的新步进方式的密码体制,PIKE加密算法和A5加密算法的控制信息可来自乱源序列的某些位,也可来自信息的奇、偶校验位;各种新颖的加密技术,如面向软件实现的RC4加密算法,与常见的基于线性反馈移存器的序列密码不同,以一个相对比较大的代替表为基础,在自身的控制下,通过表中元素的对换进行缓慢的变化,同时生成随机数序列;序列密码许多比较成熟的密码分析方法难以直接用于RC4的密码分析;与RC4加密算法类似的ISAAC加密算法,但它不用对换,而是采用移位和算术加;TwoPrime加密算法吸取了分组密码的加密方法,以线性和非线性变换交替复合,以块为单位进行加乱,每一周期生成64比特的乱数序列;WAKE加密算法和SEAL加密算法是速度极快的序列密码,用5条指令即可生成1字节的乱数。

第4章为P1363公钥标准简介。

公开密钥加密(Public-Key Cryptography)也称为非对称加密(Asymmetric Cryptography),是密码学发展史上的一次革命。公钥密码体制的编码系统是基于数学中的单向陷门函数。更重要的是,公钥密码体制采用了两个不同的密钥,对在公开的网络上进行保密通信、密钥分配、数字签名和认证有着深远的影响。

本章简要地介绍了P1363公钥标准,主要包括RSA方案、共同密钥生成方案、数字签名方案和校验方法,以及密钥交换算法KEA。

本书在编写过程中,参考了大量关于密码算法的论文和标准,在此表示衷心的感谢。

鉴于笔者水平有限,加之时间仓促,本书难免会有不足和疏漏之处,敬请广大读者批评指正。

作者

2019年7月