简述密码算法在智能卡上的应用发展

时间:2011-08-30

  引言

  在过去的十年中,智能卡上的计算能力发展迅速,基于 公钥的智能卡广泛应用于各个领域。智能卡(Smart Card)有接触与非接触卡片,内嵌有微芯片的塑料卡的通称。有包含RFID芯片的,也有加上热敏膜技术的,实现可视功能的,卡片具有储存信息的功能,能实现智能功能作用。智能卡配备有CPU和RAM,可自行处理数量较多的数据而不会干扰到主机CPU的工作。智能卡还可过滤错误的数据,以减轻主机CPU的负担。适应于端口数目较多且通信速度需求较快的场合。智能卡是IC卡(集成电路卡)的一种,按所嵌的芯片类型的不同,IC卡可分为三类: 1.存储器卡:卡内的集成电路是可用电擦除的可编程只读存储器EEPROM,它仅具数据存储功能,没有数据处理能力;存储卡本身无硬件加密功能,只在文件上加密,很容易被破解。卡内的集成电路包括中央处理器CPU、可编程只读存储器EEPROM、随机存储器RAM和固化在只读存储器ROM中的卡内操作系统COS(Chip Operating System)。卡中数据分为外部读取和内部处理部分,确保卡中数据安全可靠。

  1 消息码

  消息码实际上是对消息本身产生的一个冗余的信 息,消息码是利用密钥对要的消息产生新的数据块 并对数据块加密生成的,它对于要保护的信息来说是一一对 应的。因此消息码可以有效保证消息的完整性,以及实现发送方消息的不可抵赖和不可伪造。

  消息码不支持可逆性,是多对一的函数,其定义域由任意长的消息组成,而值域是由远小于消息长度的比特串构成。从理论上来说,一定存在不同的消息产生相同的码,因此必须找到一种足够单向和强碰撞自由性的方法才是安全的。

  而对于消息码的主要攻击目标也是找到一对或者多对碰撞消息。对于现有的攻击方法,有些可以攻击任意类型的哈希方案,有些只针对特定的哈希方案。自从2004年MD5算法被攻破以后,SHA也面临被攻破的危险。

  2 分组密码

  分组密码在密码领域广泛使用,除了本身的几种工作模式之外,它可以用来构建MAC,也可以用来构建哈希函数、伪随机函数等等。分组密码具有速度快、易于标准化和便于软硬件实现等特点,通常是信息域网络安全中实现数据加密、数字签名、及密钥管理的体制,它在计算机通信和信息系统安全领域中有着广泛的应用。

  个广泛使用的分组密码算法是DES算法。DES自1977年公布后得到了许多组织、部门的使用,各国的密码学工作者也对它进行了深入的分析,它是迄今为止使用广泛和成功的分组密码。DES的轮函数采用Feistel网络,8个s盒,扩充、压缩置换、块置换。其算法简洁、快速且加解密相似。但一个明显的缺陷是s盒为黑盒,因此公众长久地抱怨并怀疑它设有陷门。早期的迭代分组密码设计主要围绕DES进行,后来在此基础上有很大的发展,出现了众多的Feistel型密码,DES的设计至今仍闪烁着人类设计思想的精华,其结构和部件仍在被后人效仿。数据加密算法(Data Encryption Algorithm,DEA)是一种对称加密算法,很可能是使用广泛的密钥系统,特别是在保护金融数据的安全中,初开发的DEA是嵌入硬件中的。通常,自动取款机(Automated Teller Machine,ATM)都使用DEA.它出自IBM的研究工作,IBM也曾对它拥有几年的权,但是在1983年已到期后,处于公有范围中,允许在特定条件下可以免除使用费而使用。

  DES 使用一个 56 位的密钥以及附加的 8 位奇偶校验位,产生 64 位的分组大小。这是一个迭代的分组密码,使用称为 Feistel 的技术,其中将加密的文本块分成两半。使用子密钥对其中一半应用循环功能,然后将输出与另一半进行"异或"运算;接着交换这两半,这一过程会继续下去,但一个循环不交换。DES 使用 16 个循环,使用异或,置换,代换,移位操作四种基本运算。是旅居瑞士中国青年学者来学嘉和着名密码J.Massey于1990年提出的。它在1990年正式公布并在以后得到增强。这种算法是在DES算法的基础上发展出来的,类似于三重DES,和DES一样IDEA也是属于对称密钥算法。发展IDEA也是因为感到DES具有密钥太短等缺点,已经过时。IDEA的密钥为128位,这么长的密钥在今后若干年内应该是安全的。类似于DES,IDEA算法也是一种数据块加密算法,它设计了一系列加密轮次,每轮加密都使用从完整的加密密钥中生成的一个子密钥。与DES的不同处在于,它采用软件实现和采用硬件实现同样快速。

  Rijndael是AES活动的终胜利者,现已替代DES成为美国新的加密标准。国家标准技术研究所(NIST)选择Rijndael作为美国政府加密标准(AES)的加密算法,AES取代早期的数据加密标准(DES)。Rijndael由比利时计算机科学家Vincent Rijmen和Joan Daemen开发,它可以使用128位,192位或者256位的密钥长度,使得它比56位的DES更健壮可靠。Rijndael也有一个非常小的版本(52位),合适用在蜂窝电话、个人数字处理器(PDA)和其他的小设备上。宽轨迹策略的优点是可以估计算法的差分特征概率和线性逼近概率,由此可以评估算法抵抗差分密码分析和线性密码分析的能力。继美国征集AES的活动之后,欧洲在2000年3月启动了NESS1E大计划,目的是为了推出一系列的安全的密码模块,保持欧洲在密码研究领域的地位并增强密码在欧洲工业中的应用 作为欧洲新一代的加密标准,Camellia算法具有较强的安全性,能够抵抗差分和线性密码分析等已知的攻击。与AES相比,Camellia算法在各种软硬件平台上表现出与之相当的加密速度。

  3 流密码

  流密码也称序列密码,它是对称密码算法的一种。"一密"的密码方案是流密码的雏形,但由于 一密"的密码体制存在密钥产生、分配和管理极为困难的缺点,使其应用范围受到限制。在保密强度要求高的场合,如大量军事密码系统,仍多采用流密码。流密码是指利用少量的密钥(制乱元素)通过某种复杂的运算(密码算法)产生大量的伪随机位流,用于对明文位流的加密。解密是指用同样的密钥和密码算法及与加密相同的伪随机位流,用以还原明文位流。流密码设计的一般原则是采用多重密钥、多重环节、多重安全措施等技术,达到"一密",总体上达到流密码终靠密钥保密,因此流密码的关键是产生密钥序列的算法,其密码系统的安全性也主要取决于密钥序列。当前流密码的重点研究方向主要包括:①自同步流密码的研究;②有记忆前馈网络密码系统的研究;③多输出密码函数的研究;④高速密码芯片的开发:⑤同步序列密码在失步后如何重新同步的问题;⑥混沌序列密码和新研究方法的探索等。

  4 公钥加密算法

  Whitfield Di衢e和Martin Hellman在1976年发表的"New Direction in Cryptography"首次提出了公钥密码体制,冲破了长期以来一直沿用的私钥体制。自从公钥密码体制被提出以来,相继出现了许多公钥密码方案,其中以RSA和椭圆曲线密码算法ECC为典型。

  4.1 RSA算法

  当前着名、应用广泛的公钥系统RSA是在1978年由美国麻省理工学院的Rivest、Shamir和Adleman提出的,它是一个基于数论的非对称密码体制。RSA算法是个既能用于数据加密也能用于数字签名的算法,它容易理解和操作。

  RSA的安全性基于大整数索因子分解的困难性,而大整数因子分解问题是数学的着名难题,至今没有有效的方法予以解决,因此可以确保RSA算法的安全性。RSA系统是公钥系统的有典型意义的方法,大多数使用公钥密码进行加密和数字签名的产品和标准使用的都是RSA算法RSA的缺点主要有:首先,产生密钥很麻烦,受到素数产生技术的限制,因而难以做到一密;其次运算速度慢。

  4.2椭圆曲线密码算法

  椭圆曲线在代数学和几何学上已有一百五十多年的研究历史,有着复杂的数学背景,涉及到数论、群论和射影几何等学科。

  1985年,N.Koblitz和V.Miller分别提出了椭圆曲线密码体制ECC,其安全性依赖于椭圆曲线群上离散对数问题码的难解性,即已知椭圆曲线上的点P和kp计算k的困难程度,不过在当时一直没有像RSA等密码系统一样受到重视。但从现在来看,ECC是目前已知的公钥密码体制中,对每一比特所提供加密强度的一种体制,它具有安全性上高、计算量小、存储空间占用小、带宽要求低等特点,这些优点使得椭圆曲线公钥密码体制将应用到越来越多的领域。如存储空间小,这对于加密算法在智能卡上的应用具有特别重要的意义。1999年ANSI X9.62标准的发布成为ECC标准化的一个重要里程碑,同年美国政府的国家标准与技术委员会NIST发布了新的规定FIPS186-2,确定了ECC的地位。

  5 结束语

  在过去的五年中,智能卡上的计算能力发展很快,智能卡和终端计算机上应用的密码算法的区别已经日益显现AES算法很快成为世界范围内的一个标准,对于该算法的攻击手段也渐渐涌现。另外,边信道攻击也成为一 个越来越重要的研究领域,这种攻击的出现将会对硬件和软件的实现产生影响。新的安全证明和安全模型也在不断涌现,这些都使我们对安全的理解越来越深刻。在现在各种攻击手段和安全证明充分发展的情况下,需要尽快地升级智能卡中所使用的密码算法。尽管如此,密码 密算法的完全更替还是需要一些时日。



  
上一篇:从社会性角度分析MANET节点移动轨迹特征
下一篇:浅谈企业级路由器选购方法

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料