密码算法在智能卡上的应用发展综述
摘要:在过去的十年中,智能卡上的计算能力发展迅速,基于 公钥的智能卡广泛应用于各个领域。2001年Borst总结了智 能卡上应用的各种密码算法以及关于这些算法的攻击。
在过去的十年中,智能卡上的计算能力发展迅速,基于 公钥的智能卡广泛应用于各个领域。2001年Borst总结了智 能卡上应用的各种密码算法以及关于这些算法的攻击。从那以后,关于密码算法的各种攻击也越来越多,其中比较著名 的有对于MD5和SHA一1的攻击以及其他对哈希函数的攻 击。另外不太为人注意的还有,对于像A5/l(应用于GSM 中) 和EO(应用于蓝牙中)这样的流密码分析技术也取得了不小 的进步。在分组密码方面,AES的采用一定程度上保证了安 全性。公钥密码方面,RSA的安全填充技术也成为一个研究 热点。
1 消息认证码
消息认证码实际上是对消息本身产生的一个冗余的信 息,消息认证码是利用密钥对要认证的消息产生新的数据块 并对数据块加密生成的,它对于要保护的信息来说是一一对 应的。因此消息认证码可以有效保证消息的完整性,以及实现发送方消息的不可抵赖和不可伪造。消息认证码的安全性主要取决于两点:首先,采用的加密算法,即所谓的数字签名;其次,是待加密的数据块的生成方法。
消息认证码不支持可逆性,是多对一的函数,其定义域由任意长的消息组成,而值域是由远小于消息长度的比特串构成。从理论上来说,一定存在不同的消息产生相同的认证码,因此必须找到一种足够单向和强碰撞自由性的方法才是安全的。
而对于消息认证码的主要攻击目标也是找到一对或者多对碰撞消息。对于现有的攻击方法,有些可以攻击任意类型的哈希方案,有些只针对特定的哈希方案。自从2004年MD5算法被攻破以后,SHA也面临被攻破的危险。因此,寻找一种足够安全的单向哈希函数已经成为当务之急,消息认证码的实现也会随之改变。
2 分组密码
分组密码在密码领域广泛使用,除了本身的几种工作模式之外,它可以用来构建MAC,也可以用来构建哈希函数、伪随机函数等等。分组密码具有速度快、易于标准化和便于软硬件实现等特点,通常是信息域网络安全中实现数据加密、数字签名、认证及密钥管理的核心体制,它在计算机通信和信息系统安全领域中有着最广泛的应用。
第一个广泛使用的分组密码算法是DES算法。DES自1977年公布后得到了许多组织、部门的使用,各国的密码学工作者也对它进行了深入的分析,它是迄今为止使用最广泛和最成功的分组密码。DES的轮函数采用Feistel网络,8个s盒,扩充、压缩置换、块置换。其算法简洁、快速且加解密相似。但一个明显的缺陷是s盒为黑盒,因此公众长久地抱怨并怀疑它设有陷门。早期的迭代分组密码设计主要围绕DES进行,后来在此基础上有很大的发展,出现了众多的Feistel型密码,DES的设计至今仍闪烁着人类设计思想的精华,其结构和部件仍在被后人效仿。但是它的密钥长度太短,仅为56比特,已经不能抵抗穷尽密钥搜索攻击。
对DES的成功破译迫使人们重新设计密码算法。IDEA是X.Lai和J.L.Massey于1990年发表的,当时称为PES,1992年改名为IDEA。IDEA是第一个不使用Feistel网络的分组密码。IDEA的安全性设计思想是:采用同一明文空间上的三个不同的群运算,使隐蔽、混淆和扩散融为一体。IDEA是分组密码的杰出代表,开创了新的一类设计风格。但是IDEA存在大量的弱密钥,这与其密钥拓展算法只是线性变换有关,这点也表明需要对其密钥拓展算法重新设计。此后出现的NEA也是一种IDEA型的密码。
Rijndael是AES活动的最终胜利者,现已替代DES成为美国新的加密标准。Rijndael轮函数的设计基于宽轨迹策略,这种设计策略是针对差分密码分析和线性密码分析制定的,主要包括两个设计准则:首先,选择差分均匀性比较小和非线性度比较高的s盒;其次,适当选择线性变换,使得固定轮数巾的活动S盒的个数尽可能多。如果差分特征(或线性逼近)中某一轮的活动s盒的个数比较少,那么下一轮中的活动s盒的个数就必须要多一些。宽轨迹策略的最大优点是可以估计算法的最大差分特征概率和最大线性逼近概率,由此可以评估算法抵抗差分密码分析和线性密码分析的能力。继美国征集AES的活动之后,欧洲在2000年3月启动了NESS1E大计划,目的是为了推出一系列的安全的密码模块,保持欧洲在密码研究领域的领先地位并增强密码在欧洲工业中的应用 作为欧洲新一代的加密标准,Camellia算法具有较强的安全性,能够抵抗差分和线性密码分析等已知的攻击。与AES相比,Camellia算法在各种软硬件平台上表现出与之相当的加密速度。除了在各种软件和硬件平台上的高效性这一显著特点外,它的另外一个特点是针对小规模硬件平台的设计。
评论