购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

3.2 密码体制

密码系统(Cryptosystem)通常简称为密码体制或加密体制,完整的密码体制包括如下5个要素。

· 明文空间 M ,它是全体明文的集合。

· 密文空间 C ,它是全体密文的集合。

· 密钥空间 K ,它是全体密钥的集合。其中,每一个密钥 k 均由加密密钥 k e 和解密密钥 k d 组成,即 k =( k e k d )。

· 加密算法 E ,它是一族由 M C 的加密变换。

· 解密算法 D ,它是一族由 C M 的解密变换。

对于每一个确定的密钥,加密算法将确定一个具体的加密变换,解密算法将确定一个具体的解密变换,而且解密变换就是加密变换的逆变换。对于明文空间 M 中的每一个明文 m ,加密算法 E 在密钥 k e 的控制下将明文 m 加密成密文 c ,而解密算法 D 在密钥 k d 的控制下将密文 c 解密成同一明文 m 。如果一个加密体制中的加密密钥 k e 和解密密钥 k d 相同,即 k e = k d ,或者由其中一个密钥很容易推导出另一个密钥,则称该加密体制为对称加密体制或者单密钥加密体制或者传统加密体制,否则称为双密钥密码体制。进而,如果在计算上不能由 k e 推导出 k d ,那么将 k e 公开不会损害 k d 的安全,于是可将 k e 公开。这种密码体制称为公开密钥加密体制,简称为公钥加密体制。

3.2.1 对称加密体制原理

对称加密体制由一个映射

E : M × K C

构成,且对任意的 k K ,映射

是可逆的。其中, M 为明文的集合, K 为密钥的集合, C 为密文的集合, m M 为明文, k K 为密钥。 E 为关于密钥 k 的加密函数,其逆函数 D = E -1 ( k , m )为解密函数。加密算法 E 和解密算法 D 是公开的。只要知道密钥 k ,任何人都可以破译密文。因此,对于加密映射的一个基本安全性要求是:不知道密钥 k ,就不可能计算出解密函数 D 的值。

在对称加密体制中,加密算法 E 和解密算法 D 取决于相同的密钥 k (如图3-2所示)。对于明文 m ,发送方Alice利用加密算法 E 和密钥 k 将明文 m 加密成密文 c ,有 c = E k , m )。对于密文 c ,接收方Bob利用解密算法 D 和密钥 k 将密文 c 解密成明文 m ,有 m = D k , c )。因此,在对称加密体制中,对于明文 m ,有

D ( k , E ( k , m ))= m

为了使用对称加密体制,合法的通信双方必须事先商定一个共享密钥,然后双方就可以利用这个共享密钥进行秘密通信了。

图3-2 对称加密体制示例

3.2.2 公钥加密体制原理

1976年,Diffie和Hellman在他们的论文《密码学的新方向》中提出了公开密钥的思想,设想了一种无须事先传递密钥的密码体制,给出了一种密钥协商的方法,这种方法在公钥密码学中使用至今。

公钥密码学的基本思想是公开密钥。每一个公钥密码体制的用户都拥有一对个人密钥 k =( k e , k d ),包括任何人都可以使用的加密用的公钥 k e 和只有用户本人使用的解密用的私钥 k d ,公钥 k e 是公开的,任何用户都可以知道,私钥 k d 只有用户本人知道。

在公钥加密体制中,加密算法 E 和解密算法 D 取决于不同的密钥 k =( k e , k d )(如图3-3所示)。用户Alice和Bob相互发送消息,发送方Alice利用Bob的公钥 k e 加密明文 m 得到密文 c = E k e , m ),并把密文 c 传送给Bob。接收方Bob利用自己的私钥 k d 解密密文 c 得到明文 m = D k d , c ),即

D ( k d , E ( k e , m ))= m

图3-3 公钥加密体制示例

保密性要求从密文中不能得到有关明文的任何信息。不严格地说,如果从密文中提取有关明文的任何信息都是不可行的,就称这种加密体制是安全的。公钥加密体制的安全性基于这样的事实:利用公钥 k e 加密明文 m 是容易的,但是不知道私钥 k d ,从密文 c 推断明文 m 是困难的。

研究表明,公钥加密方法要求更复杂的计算,比对称加密方法需要消耗更多的计算资源和通信资源。因此,对称加密方法更适合大量数据的加密,而公钥加密方法用来实现密钥协商。

3.2.3 密码体制安全性

攻击密码体制就是为了从密文中恢复明文或者恢复密钥。衡量密码体制安全性的方法有三种。

第一种方法是计算安全性(Computational Security),又称实际保密性(Practical Secrecy)。如果对一种密码系统最有效的攻击算法至少需要指数时间,则称其密码体制是计算安全的。在实际中,人们经常通过穷尽密钥搜索攻击来研究计算安全性。然而,还没有一个已知的实际密码系统能被证明是计算安全的。在实际中,人们说一个密码系统是计算安全的,意思是利用已有的最好的方法破译该系统所需要的努力超过了攻击者的破译能力(如时间、空间和资金等资源)。

第二种方法是可证明安全性(Provable Security)。如果密码体制的安全性可以归结为某个NP(Nondeterministic Polynomial)完全问题,则称其是可证明安全的。例如,RSA密码可以归结为大整数分解问题,ECC密码可以归结为椭圆曲线离散对数求解问题。计算机可以在多项式时间复杂度内解决的问题称为P类问题,不可以在多项式时间复杂度内解决的问题称为NP类问题,NP类问题中最困难的问题称为NP完全问题,简称NPC(NP-Complete)问题。香农曾指出,设计一个安全的密码本质上是要寻找一个难解的问题。

第三种方法是无条件安全性(Unconditional Security)或者完善保密性(Perfect Secrecy)。假设存在一个具有无限计算能力的攻击者,如果密码体制无法被这样的攻击者攻破,则称其为无条件安全的。香农证明了一次一密系统具有无条件安全性,即从密文中得不到关于明文或者密钥的任何信息。

3.2.4 密码分析

密码分析用于研究如何在不知道密钥的情况下,通过密文获得明文信息或密钥信息。密码分析也称为对密码体制的攻击。攻击者主要使用三种手段对密码体制进行攻击。

1.穷举攻击

穷举攻击又称为蛮力攻击,是指攻击者依次尝试所有可能的密钥对所截获的密文进行解密,直至得到正确的明文。穷举攻击需要消耗大量的资源。1997年6月18日,美国科罗拉多州Rocket Verser工作小组宣布,首次通过网络利用数万台计算机历时4个多月以穷举攻击方式攻破了DES。

2.统计分析攻击

统计分析攻击是指攻击者通过分析密文和明文的统计规律来攻击密码系统。统计分析攻击在历史上为破译密码做出过极大的贡献。许多古典密码都可以通过分析密文字母和字母组的频率及其他统计参数而被破译。例如,在英语里,字母E是英文文本中最常用的字母,字母组合TH是英文文本中最常用的字母组合。在简单的替换密码中,每个字母只是简单地被替换成另一个字母,那么在密文中出现频率最高的字母就最有可能是E,出现频率最高的字母组合就最有可能是TH。抵抗统计分析攻击的方式是在密文中消除明文的统计特性。

3.数学分析攻击

数学分析攻击是指攻击者针对加密算法的数学特征和密码学特性,通过数学求解的方法来破译密码。按照从密文推导明文的方式,数学分析攻击包括唯密文攻击、已知明文攻击、选择明文攻击、自适应选择明文攻击、选择密文攻击和自适应选择密文攻击(如表3-3所示)。

表3-3 数学分析攻击类型 rqZnet0nO25iPJWpBFsV/pM2I+e+bUUs7+RCaQzYkzQqohq1DVSiJV0/GHvJ+Ewm

点击中间区域
呼出菜单
上一章
目录
下一章
×