保密学(汉语拼音:bǎo mì xué;英语:cryptology),研究改变消息和信号形式以隐蔽和复现其含意的规律的科学。保密学中着重研究消息的变形及其合法复现的称为密码学;处于局外人的地位,着重从已变形的消息中研究其含意的复现规律的称为密码分析学。除这些内容外,保密学有时还泛指包括诸如隐蔽通信、业务保密与业务分析、截收与测向、电子对抗等在内的提供信号安全与获取信号情报的一切方式。
保密体制或称密码体制,是由密钥控制的消息或信号变形处理的一族规则。假设对拉丁字母作变形处理,其规则是:将明文字母按字母顺序abcd…排列时,其对应的密文字母HIJK…也按字母顺序排列,Z后面接着排ABCD…,但明文字母a可以对应于密文的A到Z中任何字母。这是一种保密体制,称为代替密表体制。又因明文字母按自然序排列时密文字母也是自然序,故称为自然序代替密表。可供选取的这一种或那一种对应关系(特定的变形规则)称为密钥,在这里共有26种选取方法,除去没有变形的以外有25种,这个数目称为密钥量。
在保密体制中最初引入密钥仅是为了使它有一些可供选择的变化,但后来却认识到它是保密的关键因素。保密体制的其他部分,即变形处理的一般规则,有可能被截取者知道,并且难于迅速更换。只有特定的密钥,即具体选哪一种变形规则可以保守秘密,丢失了也便于更换。因此“必须使秘密仅存在于密钥之中”成为公认的原则。保密体制的保密性即以此来衡量。这种保密体制可能为消息的截获者用统计方法破译密文字母。
以往保密学的应用仅限于军事、政治、外交、公安等国家机关。20世纪70年代以来由于电子技术的迅速进步,通信设备和电子计算机应用范围的扩展,在某些国家中通过通信系统和电子计算机的犯罪已成为新的社会问题。为防止消息和数据的被窃取、篡改或伪造,人们不得不借重于保密设施,因而人们对保密学的兴趣大大增加。
体制模型
对短报文的破译往往能得到多种结果,其中概率最高的消息未必是真实的,而对长报文只要能得出结果几乎总是真的。并且,密钥量和语言剩余度对于破译能否得到正确的结果起着重要作用。仙农将密钥量和语言剩余度表达为字符数目的函数,引入熵作为信息计量标准,并用疑义度作为理论保密指标。他用HC(M)=0,即已知密文后对消息不存在任何疑义度作为消息有惟一解的条件。此时所需的密文字符数称作惟一解距离。仙农是用两条曲线的交点来表达这种关系的。这个关系也可用代数式近似,此时惟一解距离取为n0=H(K)/d,其中H(K)为密钥熵,d为所用语言的剩余。这个理论的重要性在于指出增加密钥量和减少语言剩余是改善保密体制的重要因素。
从惟一解的理论出发,仙农导出两种理想化的保密体制。一种称为完全保密体制,其特点是密钥数量随字符数的增加而无限制地增加,实际体制原型是一次一密乱码本和弗纳姆体制。另一种称之为理想保密体制,其特点是消息的剩余被完全消除。这两种体制的共同点是无论密文的数量多大都不会出现惟一解,因而被称为是理论保密体制,实际使用却受到很大限制。完全保密体制要求“安全传送”的密钥字符的数量不能少于消息字符的数量,消息量稍多就难以实现。理想保密要求彻底消除剩余度,对自然语言也难实现。实际上能广泛使用的不是理论保密的体制而是计算保密的体制。虽然当密文数量增加到一定程度,计算保密体制会出现惟一解,但为获得这个解需要相当大的计算量。设计这类保密体制的出发点是:在最坏条件下为获得此惟一解所需的计算量或存储量,在现实的计算技术水平下是无法实现的,或者在保密所要求的最小时限内是不能解出的。最坏条件是指截取者具有超过唯一解距离的密文量,完全了解保密的一般体制而且具有一定数量与密文相对应的明文。
由于微电子技术的发展,一个保密体制有相当大的密钥量已不难做到。如果用穷举搜索或类似的算法去解,这些体制往往都是安全的。问题在于有无快速解法。例如,线性移位寄存器的保密体制有快速解法已属众所周知。
大多数流水密码与分组密码在有对应的明文、密文条件下,可以构成以密钥为变量的非线性方程组。这类非线性方程组的求解问题属于NP完全性问题。NP完全性问题在确定型计算机中尚无多项式时间算法,而一般认为没有多项式时间算法的问题是计算上不可行的,这种体制是计算保密的。因而计算复杂性已成为对计算保密问题有指导作用的理论。然而,一个具体的保密体制不一定是NP完全性问题,可能有多项式时间算法,需要作具体的密码分析。
体制思想
1976年W.迪菲和M.E.赫尔曼发表了关于公开密钥保密体制的思想。这是为简化密钥分配问题而将保密体制的概念作了有创见的扩大,也是继仙农之后在保密学理论上有意义的进展。它的模型如图2。这种体制属于加密、解密算法不同的非对称密码体制,不同于通常用得较多的对称密码体制。它比原体制需要安全保护的部分少了,重要的是不需要有保护的密钥传送信道。然而这种体制的每个使用者都必须能利用特定密钥k∈K容易地产生一对互逆变换Ek和Dk。Ek用于加密,Dk用于解密。加密、解密算法也应该简单易行。但从Ek推算出k或Dk必须是计算上不可行的。如果做到了这一点,使得使用者的加密算法Ek可以公开而不影响他的解密算法Dk的安全。他可以将加密变换Ek置于公共的检索簿中,任何人都能将自己的消息加密后发送给这个使用者,但除了这个使用者本人外,其他任何人都不能解开它。具体的公开密钥体制已有多种,例如,根据从子集和求得相应子集的困难性而提出的背包体制,和根据分解大素数的合数的困难性而提出的RSA体制等。
保密体制的种类
历史上有许多种保密体制,保密程度不一,并且往往结合起来使用,例如代替、换位、密本、机械密码、一次一密乱码本等。现代密码体制大体上分为两大类:流水密码与分组密码。
流水密码
由密钥控制的算法产生一个看来随机的数字(或字符)序列和数字信号(或消息)序列按比特(或字符)加密的体制。它与多表代替有相似之处。这是在电子学发展后广泛流行的体制,它可以为数据和文字加密,也可以为数字化以后的语声、传真或图像加密,也可以用作控制置乱的信号。
分组密码
将要加密的消息分成等长的组,将这些组送入由密钥控制的算法并产生与消息组等长的密文组的体制。它也是在数据、报文加密中受到广泛注意的新体制,最著名的如作为美国联邦信息处理标准的DES体制。它也可以采取某种方式构成流水密码来使用。
密码分析方法
所有的手工作业或机械密码的体制(一次一密乱码本除外)都没有逃脱被破开的命运。现代的密码分析以高速计算机为手段,与算法研究紧密联系,必要时可以某些保密体制为对象或以某些分析方法为依据,设计专用计算机来进一步提高分析能力。密码分析方法很多,可根据分析对象灵活运用。
密钥分发和管理
密钥是保密体制中需要绝对保密的信息,要求通信双方准确掌握,又需要经常更换。在加密、解密运算已自动进行的现代,密钥的分发、更换和管理已成为保密通信系统正常运行中最费事的环节。由于通信网对保密的需要日益增加,而通信网中密钥分发的复杂更非点对点通信可比,问题就更为突出。
解决这个问题有两个途径。其一是采用公开密钥体制,任何人都能向检索簿中的某个使用者发送用后者的加密算法加了密的消息,但只有他本人才能将消息解开。另一个途径是在传统保密体制的基础上使密钥分发、管理自动化,通过通信线路传送加了密的密钥。为了给密钥加密需要另一个保密体制和密钥,这样就需要一个分层次的密钥结构体系。为了简化层次结构,为密钥加密的保密体制,也有采用公开密钥的趋向。
保密性的评定
广泛使用的保密体制不可能是理论保密的,只能是计算保密的,然而计算保密体制的保密性的评定有赖于对它进行各种各样的密码分析攻击,这就使得这种评定十分困难。于是就产生了对保密性从理论上作定性表达的企图。例如用 P类、NP类、NP完全类等表达密码分析运算的复杂性,并设法用对保密学有意义的指标来表达保密体制的非线性、随机性、周期性等,目的是为了使保密性的评定能够有理论或数值的表达方法,而不必完全依靠密码分析攻击。
确证体制
除去传统的通信保密,这是现代保密学应用的另一领域。保密是为了阻止局外人获得机密,而确证则是为了阻止局外人接近机密和识别被伪造或篡改的文件数据。确证体制的应用已有相当长的历史,古代有虎符、口令等。飞行器、舰艇的敌我识别也已有多年历史。而且往往在一个实际系统中需要同时解决保密和确证问题。例如一个银行的数据系统既有金融保密问题,也需要阻止局外人接触数据,还需要防止受被篡改的数据的欺骗。确证体制所用技术也与保密体制基本相同。例如受确证的一方可用加密变换,而确证的一方用解密变换,企图冒充者由于无密钥而不能得逞,肆意篡改伪造的文件也经不起解密的检验。
为防止真的文件被抵赖或受伪造文件的欺骗,并解决手写签名不能输入计算机的困难,一种利用公开密钥体制的称作数字签名的确证体制颇受人们注意。一个当事人用他个人持有的秘密算法Dk给文件加密,就成了他个人签名的文件,因为别人无法复制。然而这文件可以由公证人或其他任何人用这个当事人的公开算法Ek作解密操作来进行检验,以取信于人并防止当事人的抵赖。
此外,尚有公开密钥确证保密体制,即同时具有保密性和确证性的体制。