第一章 绪论 1.1 AES高级加密标准
随着Internet的迅猛发展,基于Internet的各种应用也日新月异,日益增长。但是,由于Internet是一个极度开放的环境,任何人都可以在任何时间、任何地点接入Internet获取所需的信息,这也使得在Internet上信息传输及存储的安全问题成为影响Internet应用发展的重要因素。正因为如此,信息安全技术也就成为了人们研究Internet应用的新热点。
信息安全的研究包括密码理论与技术、安全协议与技术、安全体系结构理论、信息对抗理论与技术、网络安全与安全产品等诸多领域。在其中,密码算法的理论与实现研究是信息安全研究的基础。而确保数据加密算法实现的可靠性和安全性对于算法理论应用到各种安全产品中起到了至关重要的作用。对各类电子信息进行加密,以保证在其存储,处理,传送以及交换过程中不会泄露,是对其实施保护,保证信息安全的有效措施。
1977年1月数据加密标准DES(Data Encryption Standard)正式向社会公布,它是世界上第一个公认的实用分组密码算法标准。但DES在经过20年的实践应用后,现在已被认为是不可靠的。 1997年1月2日NIST发布了高级加密标准(AES-FIPS)的研发计划,并于同年9月12日正式发布了征集候选算法公告,NIST希望确定一种保护敏感信息的公开、免费并且全球通用的算法作为AES,以代替DES,用以取代DES的商业应用。在征集公告中,NIST对算法的基本要求是:算法必须是私钥体制的分组密码,支持128bits分组长度和128,192,256bits密钥长度。经过三轮遴选,Rijndael最终胜出。2000年10月2日,NIST宣布采用Rijndael算法作为新一代高级加密标准。Rijndael的作者是比利时的密码专家Joan Daemon博士和Vincent Rijmen博士。 美国国家标准和技术研究所(NIST)在1999年发布了FIPS PUB 46-3,该标准指出DES只能用于遗留系统,同时3DES将取代DES。3DES密钥长度为168bits,可克服穷举攻击问题,3DES的底层加密算法对密码分析攻击有很强的免疫力,其根本缺点是用软件实现该算法的速度慢,由于此缺陷,3DES不能成为长期使用的加密算法标准。
虽然AES己经生效,但DES和3DES还大量地在各种信息安全产品中使用。市场上的AES的商用产品还很少,但AES产品取代DES产品已是必然。对AES的实现和应用进行探讨和研究就具有较大的理论和现实意义。
2001年11月26日联邦信息处理标准出版社发布了正式的AES标准即FIPS PUBS 197,其中制定的标准生效时间为2002年5月26日。AES最终会取代3DES,但过程可能需要几年时间。 Rijndael算法是一种可变分组长度和密钥长度的迭代型分组密码,它的分组长度和密钥长度均可独立地指定为128bits,192bits,256bits,它以其安全性和多方面的优良性能,成为AES的最佳选择(在高级加密标准规范中,密钥的长度可以是128,192,256bits三者中的任意一种,但分组长度只能是128bits)。Rijndael算法能抵抗现在的所有已知密码攻击,用S盒作为非线性组件,表现出足够的安全性能,其采用的实现方式非常利于防止能量攻击和计时攻击,算法利
用了掩码技术防止这些攻击,它在广泛的计算环境中的硬件和软件实现性能都表现得非常优秀,它固有的分布执行机制使得密钥建立时间极短且灵活性强,非常利于在各种平台上执行,它对RAM和ROM的要求低,使其非常适合在存储器受限的环境中使用,并且表现出很好的性能。其有很好的并行执行能力。
AES对所有已知的攻击具有免疫性,其设计简单,在各种平台上执行速度快而且代码紧凑。AES不使用Feistel结构,而是每一轮都使用代换和混淆并行地处理整个数据分组。AES输入的密钥被扩展成扩展轮密钥。AES的结构包括四个不同阶段:字节代换,行移位,列混淆,轮密相加,它们提供了混淆,扩散以及非线性功能。AES算法结构简单,由10个加密轮次组成。AES应用了在有限域 中的乘法和加法运算法则。AES每个阶段均可逆,解密算法中用相对应的逆函数即可。 从AES的应用看,目前AES算法主要用于基于私钥数据加密算法(对称密钥加密算法)的各种信息安全技术和安全产品中,AES通常被认为是DES算法的取代者,为原有的数据加密应用提供更强的数据安全保障。所以在原来DES标准应用的领域中,AES存在着巨大的应用价值。当前网络技术发展迅猛,所以对于基于网络的数据加密的要求也日益提高,AES的应用首先体现在了网络信息安全领域中。在AES标准公布前,IPSec协议中ESP(封装安全负载)所用的数据加密算法主要用的是DES和其代替者3DES,随着AES标准的公布,IETF的IPSec工作组下一步正试图使AES成为ESP使用的默认加密算法,要求所有IPSec实现必须兼容AES加密算法。现在大多数提供VPN设备和解决方案的公司都已经使用AES加密算法来代替原来产品中使用的DES加密算法,并将此作为宣传企业产品的重要砝码。
AES在网络技术中另一个主要应用是无线网络应用。由于无线网络的通信信道相对于有线网络来说是一个更为开放的环境,安全性的要求相对于有线网络来说将会更高。目前,无线网络的国际标准主要有两个:一个是用于WLAN的IEEE803.11协议(Wi-Fi);另一个是用于WMAN的IEEE803.16协议(WiMAX)。这两个协议在制定的初期所采用的安全机制中主要使用的分别是RC4和DES, 2004年后这两个协议也都将AES加入到协议的安全机制中。此外,其他的一些无线网络技术为了保障数据传输安全性也都使用了AES。ZigBee技术就是一个典型的代表,它作为新一代的无线传感器网络采用了IEEE802.15.41 ZigBee协议(一种低功率WPAN)。ZigBee技术是一种近距离,低复杂度,低功耗,低数据速率,低成本的双向无线通信技术,主要适合于自动控制和远程控制领域,可以嵌入各种设备中。ZigBee的MAC层使用了AES算法进行加密,并且它基于AES算法生成一系列的安全机制,用来保证MAC帧的机密性,完整性,一致性和真实性。 除了保障网络应用的信息安全外,AES在其他的信息安全领域中也有着广泛的应用。从AES硬件实现的应用上看,主要研究的方向有射频IC(集成电路)卡中的数据安全,智能安全卡和对硬盘数据的加密等方面。目前射频IC卡在国内的应用范围很广泛,从市民乘车使用的公交IC卡、学校食堂使用的饭卡到新一代的居民身份证中都嵌入了IC芯片。在IC卡中所存储的数据通常都是含有持卡人的各人隐私信息的,这些信息如果不经过加密处理很容易在不经意间从各种渠道泄露出去。因此如何在射频IC卡中加入数据加密功能成为AES应用研究的方向。
从AES软件实现的应用上看,其应用领域也十分广泛,包含语音、视频信息的加密,数据库中的数据加密以及当前关注度很高的电子商务安全等。随着计算机性能的提高,尤其是对于多媒体信
息的处理能力的增强,越来越多的多媒体信息出现在人们的日常生活中。和一般的文字信息类似,多媒体信息也存在对需要保密的信息加密的问题。由于多媒体信息的数据量很大,如果对其直接进行数据加密的话,其效率很低,将会影响多媒体信息的传播及使用。因此,在对多媒体信息加密时,不仅要考虑到数据加密算法AES的使用方法,还要设计相应的加密过程。关于AES在数据库中的应用,其主要的研究方向在于如何生成,分配和管理在数据输入输出中所用的密钥以及安全的数据加密的策略上,形成一个完整的数据加密系统。关于AES在电子商务中的应用,其研究的重心在于电子商务基础平台中的密码协议和交易安全协议中AES的应用。如将AES应用在SSL(安全套接字层)协议中:在实时数据网络传输前,发送方通过身份认证后,用SSL安全通道发送AES密钥到接收方,同时用AES算法对实时数据加密,然后基于UDP协议通过互联网发送加密的实时数据到接收方。这样接收方可以用接收到的AES密钥解密加密后的实时数据得到具体的实时数据。此外,将AES与其他的密码算法相结合,尤其是一些公钥加密算法(非对称加密算法),设计出的新的密码也是AES应用研究的主要方向之一。目前比较典型的研究包括:AES与RSA相结合的混合加密体系,AES与ECC(椭圆曲线加密算法)相结合的加密体系,利用NTRU公钥密码体系分配AES密钥,AES在公钥加密体系PKI中的应用,AES在数据签名中的应用等等。 高级加密标准AES(Rijndael)算法在各行业各部门中将获得广泛的应用,成为虚拟专用网、SONET(同步光网络)、远程访问服务器(RAS)、高速ATM/Ethernet路由器、移动通信、卫星通信、电子金融业务等的加密算法,并逐渐取代DES在IPSec、SSL和ATM中的使用。IEEE 802.11i草案已经定义了AES加密的两种不同运行模式,成功解决了无限局域网(WLAN)标准中的诸多安全问题。
综上所述,AES的研究从理论到实现,从实现到应用,己经深入到了信息安全技术的各个领域,继续研究与开发新的AES实现和应用具有很重要的理论和实践意义。当前,从应用的角度上看,拓展数据加密技术应用领域,将现有的关于AES的研究成果与非信息安全领域的相关技术与应用相结合,从而得到新的应用将是一个很好的研究方向。 1.2 LDPC低密度奇偶校验码
信道编码是以信息在信道上的正确传输为目标的编码,在研究中它着重强调的是如何避免少量的差错信号对信息内容的影响。从信息论角度来看的信道编码指的是差错控制编码,包括各种形式的纠错、检错马,可以统称为纠错编码。
LDPC码即低密度奇偶校验码(Low Density Parity Check Code,LDPC),最早在20世纪60年代由麻省理工学院的Robert Gallager在他的博士论文中提出的一种具有稀疏校验矩阵的线性分组纠错码,但限于当时的技术条件,缺乏可行的译码算法,此后的35年间基本上被人们忽略,其间由Tanner在1981年推广了LDPC码并给出了LDPC码的图表示,即后来所称的Tanner图。1993年Berrou等人发现了Turbo码,在此基础上,1995年前后MacKay和Neal等人对LDPC码重新进行了研究,提出了可行的译码算法,从而进一步发现了LDPC码所具有的良好性能,迅速引起强烈反响和极大关注。经过十几年来的研究和发展,研究人员在各方面都取得了突破性的进展,LDPC码的相关技术也日趋成熟,甚至已经开始有了商业化的应用成果,并进入了无线通信等相关领域的标准。
LDPC码是通过校验矩阵H定义的一类线性分组码(linear block codes),为使译码可行,在码长较长时需要校验矩阵满足“稀疏性”,即校验矩阵中1的密度比较低,也就是要求校验矩阵中1的个数远小于0的个数,并且码长越长,密度就要越低。LDPC码几乎适用于所有的信道,因此成为编码界近年来的研究热点。它的性能逼近香农限,且描述和实现简单,易于进行理论分析和研究,译码简单且可实行并行操作,适合硬件实现。
LDPC 码的奇偶校验矩阵H是一个稀疏矩阵,相对于行与列的长度,校验矩阵的行重、列重非常小,这也是LDPC码之所以称为低密度码的原因。由于校验矩阵H的稀疏性以及构造时所使用的不同规则,使得不同LDPC码的编码二分图(Tanner图)具有不同的闭合环路分布。而二分图中闭合环路是影响LDPC码性能的重要因素,它使得LDPC码在类似置信传播(Belief Propagation)算法的一类迭代译码算法下,表现出完全不同的译码性能。当H的行重和列重保持不变或尽可能的保持均匀时,我们称这样的LDPC码为正则LDPC码,反之如果列、行重变化差异较大时,称为非正则的LDPC码。研究结果表明正确设计的非正则LDPC码的性能要优于正则LDPC。根据校验矩阵H中的元素是 属于还是 ( ),我们还可以将LDPC码分为二元域或多元域的LDPC码。研究表明多元域LDPC码的性能要比二元域的好。
Mackay,Luby提出的非正则LDPC码将LDPC码的概念推广。非正则LDPC码的性能不仅优于正则LDPC码,甚至还优于Turbo码的性能,是目前己知的最接近香农限的码。
Richardson和Urbank也为LDPC码的发展做出了巨大的贡献。首先,他们提出了一种新的编码算法,在很大程度上减轻了随机构造的LDPC码在编码上的巨大运算量需求和存储量需求。其次,他们发明了密度演进理论,能够有效的分析出一大类LDPC译码算法的译码门限。最后,密度演进理论还可以用于指导非正则LDPC码的设计,以获得尽可能优秀的性能。
对于低密度奇偶校验码LDPC码而言没有一个最优译码器,且对LDPC进行译码是一个NP-完全问题。所有的低密度奇偶校验码LDPC的有效译码策略都是使用消息传递算法。在实际中常用的实用的译码方法是和-积算法,又称作迭代概率译码或者是置信度译码,它是目前已知的最佳译码。用和-积算法来译码可以分为初始化,水平步骤,垂直步骤,最后完成即停止,可以在一定次数的迭代之后,产生比特的准确后验概率。另外二进制LDPC码还可以使用低复杂度的硬判决译码算法:比特翻转译码算法。但是性能好复杂度高的LDPC码一般使用软判决译码算法:BP译码算法。此迭代算法仅适用于具有低密度的奇偶校验矩阵H而不能用于一般的分组码,因为只有控制了H中“1”的密度,才有可能控制总运算量。
如果精心设计,LDPC码可以达到优于Turbo码的性能。Chung等人在2001年已经设计出一种极长(码长 ),码率1/2的非正则LDPC码,其性能与香农限仅差0.0045dB。
LDPC码具有逼近香农限的优异性能。并且具有译码复杂度低(与码长呈线性关系),结构灵活,最小距离正比于码长,可并行译码以及译码错误的可检测性等特点,具有巨大的应用潜力,从而成为了近年信道编码理论新的研究热点。LDPC码具有以下几个优势: