采用密码算法的智能卡的应用

描述

引言

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

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分