网络安全 频道

计算机密码系统的理论安全和实际安全

    计算机密码学所讨论的系统,其安全性是最高的评价准则。再好的密码系统,若其安全性不足(即可被破解)则一文不值。不幸的是,一个密码系统的安全性很难用理论证明(事实上证明其为安全很难,但若此系统不安全,则证明其为不安全很容易)。因此,一个密码系统被提出公布之后,就会有很多人怀疑其安全性,而想要提出破解方式。通常许多系统,在提出后不久就会被“证明”为不安全。而密码系统设计者就会对破解方式进行围堵与改良,而破译者就会提出新的破解法。密码学领域就成长在如此反复挑战与改进的环境中。

    Shannon在1949年首先讨论了密码系统的安全性。他考虑下列两个问题:

    (1)当破译者有无限制的时间与计算能力(Computational Power),对密文加以分析时,一个密码系统最多能有多少安全性呢?

    (2)当破译者在有限的时间及计算能力对密文分析下,一个密码系统是否足够安全呢?

    Shannon接着定义理论安全(Theoretical Security)及实际安全(Practical Security)两个名词。所谓理论安全,是指不管多少破译者截获多少密文C,并对之加以分析,其结果是与直接猜明文m时一样的。考虑以下例子,如下图所示:
 


    此秘密密钥系统的加密函数为简单的异或门(Exclusive OR),密文C=m(+)K。若明文m与加密密钥K均为n位且互相独立。当我们收到密文C(例如C:1011)并加以分析时,发现所有16种可能的明文均可能经由加密密钥k加密成此密文。因此破译者截获C,对其用无限制的时间与计算能力加以分析时,对明文的了解与直接猜的是一样的。一个密码系统能达此安全性,即称为理论安全,或完全安全(Perfect Security)。Shannon用理论证明一个密码系统欲达理论安全,必须加密密钥的长度大于或等于明文的长度。亦即密钥只用一次,用完即丢。此种系统称为一次一密码本(One-Time Pad)系统。此乃沿用二次大战时间谍们均派给的一本活页纸,记载着加解密密钥,且被告知为用完一次加密后即丢弃的简称。理论安全的密码系统,如上图所示,虽可达到最高安全性,但因明文长度通常很长,如何获得比明文长度相等或更长的密钥时一大难题。因此,此系统一般认为不适合于实际应用。

    再考虑以下问题,如下图所示。若密钥K长度为n位,我们可以利用伪随机数产生器(Pseudo Random Number Generator)产生长度为2n 位底伪随机序列,此伪随机序列可将明文(长度最长为2n 位)加密成密文。此系统无法达到理论安全,因为猜对明文m的概率为2-2n ,而破译者猜密钥K底概率为2-n ,当K被找到后经随机数产生器即可将截获的密文还原成明文。虽然此例的密码系统无法达到理论安全,但若适当设计随机数产生器,使其满足一些特性则此系统仍可达到一定的安全性。此类系统称为序列密码系统(Stream Cryptosystem)。

    密码系统并非一定满足理论安全才是安全的系统。Shannon假设,每一密码系统在给定n位密文时,均有一破解此系统的最少工作次数,称为此系统的工作特性W(n)(Work Characteristic)。Shannon原意是指唯密文攻击法,但此工作特性W(n),可推广至任何的攻击方式。更确切的说,W(n)可定义为:所有破解此密码系统方法中非常好的方法所需的最少次数。已知n位密文时,若n为无穷大时,其工作特性表示为W(∞)。若一系统的W(n)大到使得具有有限计算能力及内存的破译者无法在合理的时间内破解此系统,则此系统即可称为实际安全(Practical Security)或计算上安全(Computational Security)。

0
相关文章