密码算法在智能卡上的应用发展综述
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的地位。现已颁布的有关ECC的标准有IEEEP1363及P1363a、ANSIX9.62、ANSI X9.63、ISO/IEC14888—3、IETF、ATM If)RUM 等,这些标准的公布将提高ECC技术在世界范围内的通用性,使ECC技术在全球的广泛应用成为可能。而SET协议的制定者已把它作为下一代SET协议中缺省的公钥密码算法。
5 结束语
在过去的五年中,智能卡上的计算能力发展很快,智能卡和终端计算机上应用的密码算法的区别已经日益显现AES算法很快成为世界范围内的一个标准,对于该算法的攻击手段也渐渐涌现。另外,边信道攻击也成为一 个越来越重要的研究领域,这种攻击的出现将会对硬件和软件的实现产生影响。新的安全证明和安全模型也在不断涌现,这些都使我们对安全的理解越来越深刻。在现在各种攻击手段和安全证明充分发展的情况下,需要尽快地升级智能卡中所使用的密码算法。尽管如此,密码 密算法的完全更替还是需要一些时日。系统设计者们需要在这种情况下,通过更快的生成密钥等手段更新算法。
评论