首页 > 范文大全 > 正文

现代密码算法分析

开篇:润墨网以专业的文秘视角,为您筛选了一篇现代密码算法分析范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘 要: 随着网络技术的发展,网络安全也就成为当今网络社会的焦点,几乎没有人不在谈论网络上的安全问题,密码技术是信息安全的核心技术。本文对现代几种比较流行的加密技术作了重点阐述。

关键词:分组密码 流密码 非对称密码 密码协议

一、引论

密码学是一门充满挑战的交叉学科,有着悠久而迷人的历史。4000多年前就有埃及人运用简单的加密手段传递秘密信息的记录。在两次世界大战中,密码学更是扮演了举足轻重的角色。但是,传统密码技术更多被看成是门艺术,密码学专家常常是凭自己的直觉来进行密码算法的设计和分析,直到1949年Shannon发表《保密系统的通信理论》一文,文章从信息论的角度讨论了加密系统的安全性和设计准则,从此将密码学从艺术带人了系统科学的殿堂, 20世纪70年代,IBM公司设计出数据加密标准(DES)分组密码算法,并在1977年被美国联邦政府采纳为联邦信息处理标准。1978年,Rivesl、Shamir和Aldleman设计出了第一个在实践中可用的公开密钥加密和签名方案――RSA,从而拉升了现代密码学的序幕。

二、对称加密算法

密码算法主要分为对称密码算法和非对称密码算法两大类。对称加密算法指加密密钥和解密密钥相同,或知道密钥之一很容易推导另一个密钥。通常情况,对称密钥加密算法的加解密速度非常快,因此,这类算法适用于大批量数据加密的场合。这类算法又分为分组密码和流密码两大类。

1、分组密码

相对流密码算法来说,分组密码算法不需要存储生成的密钥序列,所以适用于存储空间有限的加密场合。此外,目前使用的分组密码算法的分析和设计过程都相对公开,通常伴随着大型的征集和公开评估活动。这样一来不仅仅增加了算法的透明度,防止攻击者隐藏陷门并使得用户充分相信算法的安全强度;另一方面极大促进了分组密码技术的飞速发展。

目前,分组密码的设计与分析依然是密码学研究的热点。设计方面主要是寻求更好的设计技术在安全性和效率方面突破AES算法分析方面主要是可证明安全性理论研究、应用安全性研究及新的攻击方法挖掘。此外,利用分组密码技术设计新的流密码算法、新的Hash函数算法也是研究的热点。

2、流密码

流密码(也叫序列密码)的理论基础是一次一密算法。它的主要原理是:生成与明文信息流同样长度的随机密钥序列,使用该序列按比特加密信息流,得到密文序列,解密变换是加密变换的逆过程根据Shannon的研究,这样的算法可以达到完全保密的要求。但是,在现实生活中,生成完全随机的密钥序列是不可行的,因此只能生成一些类似随机的密钥序列,称之为伪随机序列。

流密码内部存在记忆元件(存储器)来存储生成的密钥序列。根据加密器中记忆元件的存储状态是否依赖于输入的明文序列,又分为同步流密码算法和自同步流密码算法。

对流密码研究内容集中在如下两个方面:⑴衡量密钥流序列好坏的标准。通常,密钥序列的检验标准采用Golomb的3点随机性公设,除此之外,还需做进一步局部随机性检验,包括频率检验、序列检验、扑克检验、自相关检验和游程检验,以及反映序列不可预测性的复杂度测试等。但是,究竟什么样的序列可以作为安全可靠的密钥序列,还是一个未知的问题。⑵构造线性复杂度高周期大的密钥流序列。当前最常用的密钥序列产生器主要有:基于线性反馈移位寄存器的前馈序列产生器、非线性组合序列产牛器、钟控序列产生器、基于分组密码技术的密钥生成器等。

三、非对称密码算法

非对称密钥密码体制,即公开密钥密码体制指用户有两个密钥,一个公开密钥,一个私有密钥,并且从私有密钥推导公开密钥是计算不可行的。公钥加密算法在运行速度方而无法和对称加密算法媲美,但是这一思想很好地解决了对称密码学面临的密钥的分发与管理问题,同时对丁数字签名问题也给出了完美的解答,并正在继续产生许多新的、优秀的思想和方案。

1、基于CA的公钥密码

公钥密码算法设计的关键是存在多项式时间内不可解的困难问题。最早的也是目前使用最广泛的公钥加密和签名方案是RSA算法,该算法的安全性基于大整数分解问题。

Diffe和Hellman提出的DH密钥交换方案以及后来的数字签名标准(DSS)和EIGamal加密算法多基于同离散对数问题相关的困难问题。此外,在基于离散对数问题的密码算法中有一类特殊的算法―椭圆曲线和超椭圆曲线密码学(ECC)。这类算法的优点是参数长度较短可以达到较高的安全性,因此,非常适合在智能卡等存储空间有限的密码设备上使用。

历经20多年的分析研究,密码学家依然没有彻底攻破基于整数分解和基于离散对数的经典算法,从而增强了人们对于这些算法的信心,但是这并不意味着公钥加密和签名算法的研究可以停滞不前了。首先,虽然在原始计算模型的假设下,目前为止最有效的分解因子解法和离散对数解法都是亚指数时间。但是离散对数问题和分解因子问题始终没有被证明是多项式时间内不可解(NP)问题。其次,即使证明他们是NP问题,也不能确保相应的密码算法是安全的,例如基于背包问题设计的密码算法几乎全军覆没。最后,在量子v7算机问世后,这两类问题将存在多项式时间解法。所以,密码学家一直在探寻新的、可以用于设计公钥密码算法的困难问题。

2、基于身份的公钥密码

基于身份的密码学是由Shamirl于1984年提出的,系统中可以直接使用用户的标识,如姓名、IP地址、电子邮件地址等作为用户的公钥。用户的私钥通过一个被称作私钥生成器(PKG)的可信任第三方计算分发给用户。目前,基于身份的方案(包括基于身份的加密算法签名算法以及各种协议)不断涌现出来。现阶段,基于对的运算效率问题是急需解决的问题也是现在研究的热门问题。

3、密码协议

所谓协议,就是两个或者两个以上的参与者为完成某项特定的任务而采取的系列步骤。密码协议的参与者可能是可以信任的人,也可能是攻击者。在网络通信中最常用的基本密码协议按照其完成的功能可以分成以下3类:

(1)密钥交换协议

参与协议的两个或者多个实体之间建立共享的秘密,例如在一次通信中所使用的会话密钥。协议可以采用对称密码体制,也可以采用非对称密码体制。

(2)认证协议

认证协议中包括实体认证(身份认证)协议、消息认证协议、数据源认证和数据目的认证协议等。

(3)解决特殊问题的安全协议

解决特殊问题的安全协议有电子选举协议、电子钱币协议、安全多方计算协议等〕。

密码协议是许多分布式系统安全的基础,因此,对协议的安全性进行分析和研究是一个重要的课题。造成协议存在安全缺陷的原因主要有两个:一是协议设计者误解或者采用了不恰当的技术;二是协议设计者对环境的安全需求研究不足。目前,对密码协议进行分析的方法主要有两大类:一类是攻击检验方法;一类是形式化的分析方法。所谓攻击检验方法就是搜集使用目前的对协议的有效攻击方法,逐一对安全协议进行攻击,检验安全协议是否具有抵抗这些攻击的能力。形式化的分析方法是采用各种语言或者模型,为协议建立模型,并按照规定的假设和分析、验证方法证明协议的安全性。目前,形式化的分析方法是研究的热点,但是目前还没有什么突破性的进展。