2.2.2 DES 算法
为了适应社会对计算机数据安全保密越来越高的需求,美国国家标准局 (NBS)
1973 年向社会公开征集一种用于政府机构和商业部门对非机密的敏感数据进行加密的
加密算法。许多公司都提交了自己的加密算法,经过评测,最后选中了 IBM公司提交的
一种加密算法。经过一段时间的试用和征求意见,美国政府于 1977 月 1月5日颁布作为
数据加密标准 (Data Encryption Standard, DES)DES 的设计目标是,用于加密保护静
态存储和传输信道中的数据,安全使用1O~15 年。
DES 综合运用了置换、代替、代数等多种密码技术。它设计精巧、实现容易、使用
方便,堪称是适应计算机环境的近代传统密码的一个典范。 DES 的设计充分体现了
Shannon 信息保密理论所阐述的设计密码的思想,标志着密码的设计与分析达到了新的
水平。
DES 是一种分组密码。费文、密文和密钥的分组长度都是 64 位。
DES 是面向二进制的密码算法。因而能够加解密任何形式的计算机数据。
DES 是对合运算,因南加密和解密共用自一算法,从而使工程实现的工作量
DES 的整体结构如图 2-2 所示。

2.2.3 AES 算法
美国政府于 1997 年叉开始公开征集新的数据加密标准算法 AES ,以取代 1998 年底
废止的 DES 。经过三轮筛选, 2000 10 日美国政府正式宣布选中比利时密码学家
Joan Daemen 和Vincent Rijmen 提出的一种密码算法阳JNDAEL 作为 AESo 2001 11
26 日,美国政府正式颁布 AES 为美国国家标准(编号为 FIST PUBS 197) 。这是密码
史上的又一个重要事件,世界各国都高度重视这一事件。目前 AES 己经被一些国际标准
化组织 OSO IETF, IEEE802.11 等〉采纳作为标准。 RIJNDAEL 算法之所以能够最终
被选为 AES 的原因是其安全、的捕、效率高、实用、灵活。
阳刚DAEL 算法是一个数据块长度和密钥长度都可变的分组加密算法,其数据块长
度和密钥长度都可独立地选定为大于等于 128 位且小于等于 256 位的 32 位的任意倍数。
而美国颁布 AES 时却规定数据块的长度为 128 位、密钥的长度可分别选择为 128 位, 192
位或 256 位。
阳刚DAEL 算法仍然采用分组密码的一种通用结构:对轮函数实施迭代的结构。只
是轮函数结构采用的是代替/置换网络结构 (SP 结构),没有采用 DES Feistel 结构。
如图 2-12 所示, RIJNDAEL 的轮函数由以下三层组成。

2.3.4 ZUC 算法
ZUC 算法,即祖冲之算法,是移动通信 3GPP 机密性算法 EEA3 和完整性算法 EIA3
的核心,是中国自主设计的加密算法。 2009 ZUC 算法获得 3GPP 安全算法组 SA
立项,正式申请参加 3GPP LτE 第三套机密性和完整性算法标准的竞选工作。历时两年
多的时间, ZUC 算法经过包括 3GPP SAGE 内部评估,两个邀请付费的学术团体的外部
评估以及公开评估等在内的 个阶段的安全评估工作后,于 2011 月正式被 3GPPSA
全会通过,成为 3GPPLTE 第三套加密标准核心算法。 ZUC 算法是中国第一个成为国际
密码标准的密码算法。其标准化的成功,是中国在商用密码算法领域取得的一次重大突
破,体现了中国离用密码应用的开放性和商用密码设计的高能力,其必将增大中国在国
际通信安全应用领域的影响力,旦今后无论是对中国在国际商用密码标准化方面的工作
还是商周密码的密码设计来说都有深远的影响。
ZUC 是一个同步流密码算法,其以中国古代著名数学家祖冲之的拼音(ZU Chongzhi)
首字母命名,中文称作祖冲之算法。该算法在设计之初就面拖着高的挑战。美国高级加
密标准 AES 和欧洲 SNOW 3G 已经被选为 LTE 加密标准,它们是两个设计非常优秀的
密码算法,具有非常高的安全强度。 ZUC 算法的设计必须做到不能比 AES SNOW3G
差, 才有可能在 GPPLTE 有立脚之处。面对挑战, ZUC 算法的设计必须具有高安全、
高效率以及新颖性等特点。其中高安全和高效率要求设计的新算法在安全和效率上不能
AES SNOW3G 低,而新颖性要求设计的密码算法在结构和部件上都有创新。然而
密码算法设计发展到今天,许多经典结构和部件的设计都基本定型,要同时达到上述目
标,无疑是一项非常艰巨的任务。
ZUC 算法在逻辑上采用三层结构设计,如图 2-24 所示。上层为定义在素域 GF(23 1)
上的线性反馈移位寄存器(LFSR) ,这是 ZUC 算法设计的一大创新。目前常见流密码体
制的 LFSR 均采用二元域或二元域的某个扩域上的 序列。这种序列具有明显的多重线
性关系,这使得以其为序列源的密码算法容易受黠相关攻击。 ZUC 算法的 LFSR 设计首
次采用素域 GF(23 1) 序列。该类序列周期长、统计特性好,且在特征为 的有限
域上是非线性的,其具有线性结构弱、比特关系符合率低等优点。因而采用 GF(23 1)
上的 LFSR 设计的 ZUC 算法具有天然的强抵抗二元域上密码攻击方法的能力,譬如二元
域上的代数攻击、区分分析和相关攻击等。此外,由于素域 GF(23 1)上的乘法可以快速
实现, ZUC 算法 LFSR 在设计时充分考虑到安全和和效率两方 的问题,在达到高安全目
标的同时可以非常高效地软硬件实现。

zuc 算法中间层为比特重组。比特重组采用取半合并技术,实现 LFSR 数据单元到
非线性函数 和密钥输出的数据转换,其主要目的是破坏 LFSR 在素域 GF(231
_1)上的线
性结构。结合下层的非线性函数 ,比特重组可使得一些在素域 GF(231
1)上的密码攻击
方法变得非常困难。
zuc 算法下层为非线性函数 。在非线性函数 的设计上, zuc 算法设计充分借鉴
了分组密码的设计技巧,采用 盒和高扩散特性的线性变换 非线性函数 具有高的
抵抗区分分析、快速相关攻击和猜测确定攻击等方法的能力。此外,非线性函数
盒采用结构化设计方法,在具有好的密码学性质的同时降低了硬件实现代价,具有实现
面积小、功耗低等特点。
经过上述三层结构的综合运用, zuc 算法具有非常高的安全强度,能够抵抗目前常
见的各种流密码攻击方法。其设计已得到国内外著名密码学家的认可,他们对其安全强
度给予了很高的评价。
上面介绍的 zuc 算法本质上是一种非线性序列产生器。由此,在种子密钥的作用
下,可以产生足够长的安全密钥序列。把与密钥序列晓文数据模 相加,便完成了数据加密。同样,把密钥序列与密文数据模 相加,便完成了数据解密。
2.7 认证
2.7.1 认涯的概念
认证(Authentication )又称鉴别或确认,它是证实某事是否名副其实或是否有效的
一个过程。
认证和加密的区别在于:加密用以确保数据的保密'性,阻止对手的被动攻击,如截
取,窃听等;而认证用以确保报文发送者和接收者的真实性以及报文的完整性,阻止对
手的主动攻击,如冒充、篡改、重播等。认证往往是许多应用系统中安全保护的第一道
设防,因而极为重要。
认证的基本思想是通过验证称谓者(人或事)的一个或多个参数的真实性和有效性,
来达到验证称谓者是否名副其实的目的(见图 2-40) 。这样,就要求验证的参数和被认
证的对象之间存在严格的对应关系,理想情况下这种对应关系应是唯一的。
待认证人或事
N
人或事为假
2-40 认证原理
T _人或事为真
认证系统常用的参数有口令、标识符、密钥、信物、智能卡、指纹、视网纹等。对
于那些能在长时间内保持不变的参数(非时变参数)可采用在保密条件下预先产生并存
储的位模式进行认证,币对于经常变化的参数则应适时地产生位模式,再对此进行认证。
一般说来,利用人的生理特征参数进行认证的安全性高,但技术要求也高,至今尚
未普及。目前广泛应用的还是基于密码的认证技术。
认证和数字签名技术都是确保数据真实性的措施,但两者有着明显的区别。
(1)认证总是基于某种收发双方共享的保密数据来认证被鉴别对象的真实性,而数
字签名中用于验证签名的数据是公开的。
(2) 认证允许收发双方互相验证其真实性,不准许第三者验证,而数字签名允许收
发双方和第三者都能验证。
(3)数字签名具有发送方不能抵赖、接收方不能伪造和具有在公证人前解决纠纷的
能力,而认证则不→定具备。
如果收发双方都是诚实的,那么仅有认证就足够了。利用认证技术收发双方可以验
证对方的真实性和报文的真实性、完整性。但因他们双方共享保密的认证数据,如果接
收方不诚实,则他便可以伪造发送方的报文,且发送方无法争辩;同样,发送方也可抵赖其发出的报文,且接收方也无法争辩。由于接收方可以伪造,发送方能够抵牒,因此
第三者便无法仲裁。
2.7.2 身份认证
用户的身份认 正是许多应用系统的第一道防线,其目的在于识别用户的合法性,从
而阻止非法用户访问系统。身份识别对确保系统和数据的安全保密是极其重要的,可以
通过验证用户知道什么、用户拥有什么或用户的生理特征等方法来进行用户身份认证。
2.7.2.1 口令认证
口令是接枚双方预先约定的秘密数据,它用来验证用户知道什么。口令验证的安全
性虽然不如其他几种方法,但是口令验证简单易行,因此口令验证是吕前应用最为广泛
的身份认证方法之一。在计算机系统中,操作系统、网络、数据库都采用了口令验证。
在一些简单的系统中,用户的口令以口令表的形式存储。当用户要访问系统时,系
统要求用户提供其口令,系统将用户提供的口令与口令表中存储的相应用户的口令进行
比较,若相等则确认用户身份有效,否则确认用户身份无效,担绝访问。
但是,在上述口令验证机制中,存在下列一些问题:
(1)攻击者可能从口令表中获取用户口令。因为用户的口令以明文形式存储在系统
中,系统管理员可以获得所有口令,攻击者也可利用系统的漏洞来获得他人的口令。
(2) 攻击者可能在传输线路上截获用户口令。因为用户的口令在用户终端到系统的
线路上以明文形式传输,所以攻击者可在传输线路上截获用户口令。
(3)用户和系统的地位不平等。这里只有系统强制性地验证用户的身份,而用户无
法验证系统的身份。
下面给出几种改进的口令验证机制。
1.利用单向函数加密口令
在这种验证机制中,用户的口令在系统中以密文的形式存储,并且对用户口令的加
密应使得从口令的密文恢复出口令的明文在计算上是不可行的。也就是说,口令一旦加
密,将永不可能以明文形式在任何地方出现。这就要求对口令加密的算法是单向的,即
只能加密,不能解密。用户访问系统时提供其口令,系统对该口令用单自函数加密,并
与存储的密文相比较。若相等,则确认用户身份有效,否则确认用户身份无效。
2. 利用数字签名方法验证口令
在这种验证机制中,用户 将其公钥提交给系统,作为验证口令的数据,系统为每
个用户建立一个时间标志1'; (如访问次数计数器),用户访问系统时将其签名信息
IDdID( (IDi, NÙ' Kdi)
提供给系统,其中 表示本次访问是第 次访问。系统根据明文形式的标识符 IDi
查出 Kei' 并

3353

被折叠的 条评论
为什么被折叠?



