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

2.1
密码学概论

密码学就是将数字化信息转换成不同的数据,使没有访问权限者无法直接识别并难以破解,从而保护信息的安全。从这个意义上说,好比是加密后的这些数字中“隐藏”了需要保护的那些数字。密码技术就是用各种巧妙的方法试图让数字隐藏得更好。

2.1.1 密码学模型

密码学(Cryptology)是研究信息加密(Information Encryption)的科学。密码学的基本原理是:把明文(Plaintext)用加密(Encryption)方法结合密钥(Key)生成保密的密文(Cryptograph或Ciphertext);只有使用正确的解密(Decryption)方法结合解密密钥才能成功还原出明文。换句话说,如果运用的解密方法不相符或解密密钥不正确,即使采用高性能计算机依然难以破解。

只要是用计算机表达的二进制数据(但不限于数据),如数值、数据块、数据库、字符串、文本文档、图片、动画、音乐、指令、软件源代码、可执行程序等,都可以被加密。

根据密码学原理,可以构造如图2.1所示的信息加密和解密模型,包含明文、密文、加密方法、解密方法和密钥五要素。依采用的加密技术不同,加密模型并不是一成不变的,而是可以灵活变化的。例如:加密和解密密钥不一定是同一个,可以是不同数值;有些加密方法可以不使用密钥;加密后未必要解密,即可以不支持解密。需要注意的是,所谓明文并非是“可读”的代名词,明文是相对于密文而言的,只是一次加密过程的输入或一次解密过程的输出。已经加密的密文也可以成为另一次加密的“明文”,即加密可以反复迭代、层层嵌套。多次加密的过程是一种栈式运算,后进行的加密应该先做解密。

图2.1 信息加密和解密模型示意图

信息加密和解密可以用数学函数表示。设明文空间为T,密钥空间为K,密文空间为C,f e 为加密方法,f d 为解密方法。若有明文t∈T,加密密钥k e ∈K,解密密钥k d ∈K,密文c∈C,则加密和解密函数可分别表示为:

信息加密技术的设计原则是:加密快、解密易、破解难。加密和解密分别对应信息的变换和还原,都是在可控的范围内进行,一般在信息生成和发送方与指定(授权)的信息接收和使用方之间展开,所以不仅加密要快速高效(防止加密过程成为系统运行中耗时耗力的瓶颈而制约业务顺畅性),而且解密同样要简单易行,不应成为信息应用的沉重负担。然而,加密破解(或称为破译)则越困难越好,因为破解是一种非授权行为,往往不掌握解密所需的关键信息(比如密钥),那么就要让破解过程成为在伸手不见五指的暗夜里行路、让找到正确密钥的概率变成仿佛在大海里捞针。可见,一种加密技术的强弱优劣并非单纯取决于加密、解密,在安全性方面更取决于破解的困难性。

实际上密码破解技术也是密码学研究的重要内容之一。不能简单地把破解当成一个贬义词来看。保密与破解是一对矛盾体,也是一枚硬币的正反两面。有保密,就必然存在破解。既然如此,就不应被动等待防线被突破,而是要主动研究并掌握破解之道,才能做到知己知彼,通过破解来全面排查加密方法的薄弱环节并进行针对性改进,同时清晰了解自身的抵抗破解的能力水平,比如破解可能需要多长时间,做到心中有数。在不同的应用场景中选择加密方法,也要参考保密强度指标,以做出合理的选择。密码破解在技术上不是只有一种针对密钥的尝试法,具有更大威胁性的是算法分析,即寻找加密过程及使用的数学原理的“可逆性”。一旦可以通过数学推导或推算来破译,即便只是缩小搜索范围,对保密性的伤害也是极大的。

信息加密技术是一把“双刃剑”,既有防范自身隐私信息受到侵害的作用,又会带来诸如投入成本上升、系统复杂性增大、信息传递延迟等弊端。同时,加密和破解永远是“矛尖还是盾固”的关系,一个在明处,另一个在暗处。即使采用最先进的信息加密技术,也达不到绝对的安全。

信息安全始终具有相对性。

其一,计算相对性。比如,普通计算机难以破译的密码,高性能计算机或许就能轻松攻破,因为难度实际上取决于算力的高低;再比如,针对某种加密算法,可能有人已经悄悄研究出一种数学方法,可以极大地降低破解密码的计算工作量。

其二,时间相对性。目前很安全的密码,随着时间的推移,安全性会衰减。必须假定在密文产生的第一时间就有人开始破译,那么在攻击者持续不断的尝试下,随着时间的推移,被攻破的可能性将越来越高,最后将失去保密性。

其三,价值相对性。信息的价值越高,受到攻击的概率就越大;反之,假如被保护的信息没什么价值,而破解成本很高,则信息可以认为是“高枕无忧”的。

正因为如此,应避免过度运用加密技术,而应该根据信息对象属性、信息价值、应用场景等各种因素来选择合适的加密方法,设计合理的保密方案。

信息加密不单是直观上用于数据保密的技术,还具有三大作用,如图2.2所示。

图2.2 密码学三大作用示意图

● 信息保密性:加密后的信息即使被截获或窃取也不能被直接利用,用于防止信息内容的暴露,以及防止隐私信息泄露。

● 数据完整性:数据被修改后,哪怕只是修改了一个比特,也能被检验出来,起到防篡改作用,同理也能防止任意伪造信息。

● 不可否认性:建立数据与其所有者的绑定关系,他人无法生成该密文,一方面可以此确定数据归属方,另一方面可防止数据所属方抵赖。

当然,密码学三大作用不是由单一算法实现的,而是由不同技术原理的算法来实现的,很多时候还需要相互结合来实现。

密码技术由来已久、类型多样,在国家或民间都有使用。古代多出于军事需要,主要在军队中使用,用于传递密令,现代则扩展到商业及个人用途,用于各种数字化信息的保密和保护。从加密技术的角度来看,可断代为“二战”前后,“二战”前的数千年中采用的技术统称为传统密码(或称为古典密码),“二战”后特别是随着计算机诞生,开启了现代密码的历程。

2.1.2 传统密码技术

信息加密作为保障消息安全传递的一种方式,其历史相当久远,大致可追溯到公元前2000年。虽然那个时代的技术与当代不可同日而语,但已具备加密的含义和雏形。

传统密码的表现形式丰富多彩。敲门暗号、约定手势、藏头诗歌等都可以算作信息传递的加密方法。湖南江永一带流传一种女书,已被列入国家级非物质文化遗产名录,是只在女性间代代相传的汉字书写方式,对于男性而言,满篇的奇特符号无异于让人一头雾水的“天书”了。又如,某个电影中,两国发生战争,其中一国某族用他们独特的方言在本族通信兵之间进行无线电语音通信(同时还把重要术语如飞机用苹果代替),敌国收听到后完全不知所云,技术上要破解根本无从下手。所以,加密并不一定要靠数字变换。

虽然信息加密亦属于信息编码技术,但应注意与其他编码技术相区别。信息加密属于广义的数据编码,狭义的编码只是对信息表达方式进行映射转换,并不是以保密为目的,往往是一对一的、标准公开的、简单可逆的,如文字的计算机编码、图像编码、信道编码、地址编码、加入冗余信息的容错编码、节省存储空间的压缩编码等。

公元前1世纪,古罗马恺撒大帝的军队使用过一种恺撒密码(Caesar Cipher),方法是将明文字母表A到Z向左或向右进行循环移位,位数可以灵活指定(相当于密钥),形成密文字母表。如图2.3所示是循环左移3位的明文和密文对应字母表,加密就是把明文字母一一对应换成相应的密文字母,例如把T替换为W,解密则是反过来。如今可以简单运用数学中的模运算,将明文字母表编码为0~25的数值,设步长为k,循环左移或右移分别取k为正数和负数,则加密运算即为c=(t+k)mod 26,解密或破解同理,计算相当简单,看上去保密性有限。但是,任何事物的价值都要放到其所处的时代和当时的条件来评估。在那个文盲占大多数的年代,设想从俘虏的信使身上搜出一封“乱码”写的信,信使也不知道如何加密的,要破解真的非常困难。

图2.3 恺撒密码加密解密原理示意图

类似的加密方法还有古希腊密码,其技术含量更高,将字母表编为5×5或3×8的二维矩阵(可将形似的i和j放进同一个位置),然后用每个字母的行号和列号组合来表示字母(反之则解密为明文)。

历史上加密与破译的对抗有许多惊心动魄的故事,如二战中盟军巧妙地从纳粹潜艇上猎取恩尼格玛(Enigma,意为谜)密码机。这是一种电子和机械紧密结合的登峰造极的加密方法,外形是一台打字机,而内部设计了快速、中速、慢速三个串联转轮,每个转轮有不同的英文字母转换映射。每键入一个字母(例如E),输出一个密文字母(例如W),并带动快速转轮转一格,导致字母映射关系发生改变,再输入A时输出的可能就变成G了。快速转轮转一圈,驱动中速转轮转一格,中速转轮转一圈,驱动慢速转轮转一格(相当于时钟的秒针、分针和时针),显然通过三个转轮的转换映射,对于输入的同一个明文字母,其输出的密文字母是不断变化的,重复周期为26 3 =17576个字母,由此形成的转换规律极为复杂。但解密很方便,同样使用密码机(设为解密模式),在键盘上依次键入密文字母,输出的字母就是明文。每次使用恩尼格玛密码机时,先要调节三个转子的初始位置,相当于加解密双方约定的密钥。因此,为了破译恩尼格玛密码,获得实物密码机(如图2.4所示)是必不可少的。可喜的是,在英国布莱切利庄园,以“人工智能之父”艾伦·图灵(Alan Turing)为代表的一群天才科学家经过不懈努力,最终成功破译了这种有史以来最强密码,并通过其获取的高度机密的情报的助力,取得了诺曼底登陆等战役的胜利,挽救了千百万生命,拯救了世界。

图2.4 恩尼格玛密码机

传统密码技术总体上是利用字母简单替换的原理,存在两个致命的弱点:一是非常依赖方法的保密性,有的还需要依赖密码本等容易泄露或丢失的工具,一旦方法被破译者掌握,例如知道是恺撒密码的字母表移位法,尝试解密就相当容易了;二是字母的替换虽然使表达方式彻底改变,但是改变不了字母出现的频率,如图2.5所示,通过统计可以得到英文文章中各个字母的字频,则只需分析密文中字母字频,即可让明文字母露出庐山真面目,例如密文中字频最高的字母即为明文字母i,次高字频且首字母字频最高的必为t。解密不需要复杂艰难的分析过程,对于大多数传统密码算法,只需用同字频统计法即可让明文露出庐山真面目。在公元9世纪,阿拉伯密码破译专家就已经娴熟地运用这一破译法。如果使用计算机辅助,破译更是无比轻松。当然,统计法的运用有个前提,就是需要密文数量较大,否则字频的规律无法显现出来。

图2.5 英文字母字频柱状图和首字母字频折线图

因此,在具有强大存储、运算、处理能力的计算机出现后,传统密码技术日薄西山,已无安全性可言,取而代之的是结合数学研究成果与计算机算力的现代密码技术。

2.1.3 现代密码技术

1946年2月14日,世界上第一台通用计算机ENIAC(Electronic Numerical Integrator And Computer,电子数字积分器与计算机)诞生,密码分析技术也随之跨入了新阶段,曾经主宰信息保密世界数千年的古典加密法永远退出了历史舞台。同时伴随着高等数学研究不断取得新成果、数学原理的密码学应用被不断发掘,信息加密领域开启了“数学+计算机”的现代加密技术时代,加密技术也升级成为密码科学。

网络上每年的数据量飞速增长,海量的数据通过网络进行传输,其中存在很大比例的需要保密、保护的数据。如果没有密码技术,所有数据就相当于在网络上“裸奔”,这是不可想象的。事实上,如果没有数据安全性保障,就像人的人身安全都得不到保障就免谈繁荣发展一样,网络和信息就不可能膨胀到如今这个程度。

短短数十年间,现代加密技术发展出了更多种类的密码类型,不仅可用于信息的保密性(防泄露),而且可用以保障信息的完整性(防篡改),实现信息发布者的不可否认性(防抵赖)。同时,计算机网络应用的迅猛发展对传输、存储、处理的信息的安全性提出了更多、更高要求,反过来促进了密码技术的不断扩展、改进。现代密码技术主要演化出三类,即对称密钥加密、非对称密钥加密、单向函数,如图2.6所示。

图2.6 现代密码技术分类示意图

1948年信息论创始人(又被誉为现代密码学鼻祖)香农(Claude Elwood Shannon)发表了划时代论文《通信的数学原理》(A Mathematical Theory of Communication)。香农开创性地将鲁道夫·克劳修斯(Rudolf Clausius)提出的熵(Entropy)理论引入信息论,用信息熵来量化计算信息量。设消息x发生的概率为p(x),则消息所含信息量I为:

当随机事件x发生前,I表示事件x的不确定性;当事件x发生后,I表示事件x所含的信息量。根据计算式,小概率事件的熵值较大,说明不确定性较强。若对数底a=2,则I的单位是比特(binary unit,bit);若a=e,则I的单位是奈特(nature unit,nat);若a=10,则I的单位是哈特(hartley,hart)。通常,用比特(bit)作为信息量的单位。

对于多个消息(或符号)的集合,用平均信息量H(x)即信息熵来度量。设离散信息源为符号集{x i }(i=1 ,…, n),独立概率分别为p ( x i ),且 ,则各符号(symbol)的信息量(熵)分别为:

计算各符号信息量(熵)后,统计平均值得H(x)为:

符号信息量(熵)的单位为bit/symbol。当每个符号(可以为单词、字母等)等概率出现时,即p(x i )=1/n,显然每个符号的熵与平均值一致,此时熵达到最大值:

熵还有联合熵、条件熵、相对熵等。联合熵(Joint Entropy)是指两个随机变量x和y的同时发生,用H(xy)表示;条件熵是指在随机变量x发生的前提下,随机变量y发生所新生成的未知熵,表示为H(y|x),且H(y|x)=H(xy)–H(x)成立(证明从略)。

设密码体制(模型)为{P,C,K,E,D},分别表示明文、密文、密钥、加密方法、解密方法。现代加密技术的信息保密性取决于密钥的安全性(因为破译者重点是破解密钥),等价于考察密钥的信息量(熵)大小。在已知(截获)密文的情况下,密钥熵(未知信息量)越大则说明密钥的随机性、不确定性越强,也即密钥被破解的概率较小,那么加密信息就更安全。故应成立H(K|C)=H(K)+H(P)-H(C),表示破译者掌握密文后,密钥的未知信息量等于明文和密钥联合熵减去从已知密文中可以获得的信息量(熵)。证明如下:

根据加密体制原理,成立H(KPC)=H(C|KP)+H(KP),表示加密体系{K、P、C}联合熵等价于已知明文和密钥下的密文的熵与明文和密钥的联合熵之和。

∵按加密原理,通过明文和密钥可唯一确定密文,有H(C|KP)=0,故H(KPC)=H(KP)。

又∵明文P与密钥K是统计独立(无相关性)的,∴有H(KP)=H(K)+H(P)。同理(考察解密原理)成立:H(KPC)=H(P|KC)+H(KC)=H(KC)。

∴H(KC)=H(KP)成立。

∴H(K|C)=H(KC)-H(C)=H(KP)-H(C)=H(K)+H(P)-H(C)成立。证明完毕。

可见,信息熵与密码技术之间存在深刻的内在联系。用信息熵理论可以推导出上述表达式H(K|C)=H(K)+H(P)-H(C),清晰地呈现出密码体制安全性的设计要点。

(1)密钥空间(密钥长度)越大越好,密钥随机性越强越好,不确定性较大使密钥更难以被破解。

(2)明文空间大(可能性多)更难被猜测。

(3)密文透露的信息量越少越好,比如在明文相似的情况下,密文不应具有相似性,防止破译者根据密文规律性信息进行推测。

(4)应避免泄露明文密文对,影响PC联合熵,有利于实现已知明文攻击。

(5)应用中尽量使明文为等概率分布,即避免个别明文符号的重复(大概率)出现,因为概率均匀分布下才能得到H(P)熵值最大值。

(6)长期使用同一个密钥,相当于破坏了密钥的等概率分布,降低了H(K)熵值,对安全性不利。

(7)虽然加密解密算法很重要,但与信息熵没有直接关系,所以加密解密算法可以公布(例如发布技术标准),不影响密码安全性。

在实现技术上,香农信息论提出使用信息编码的混淆(Confusion)和扩散(Diffusion)方法,使信息(密文)尽可能混乱,比如消除字符频率特征,以抵抗各种方法(例如基于统计方法)的密码分析(破解)。其中,混淆可以尽可能使密文和密钥间的统计关系复杂化,增强独立性、减少相关性,阻止发现密钥;扩散则使明文的统计特征消散在密文中,使概率分布更趋均匀,让每个明文编码单元尽可能多地影响多个密文编码单元。

熵是对混乱程度的度量。熵的概念不仅被引入热力学,还被运用于概率论、生物学、天文学乃至社会学领域。香农提出的信息量与消息的种类、特定内容、重要程度等无关,仅与随机消息发生的概率密切相关。若消息发生概率小,不确定性强(更混乱)、意外和惊奇程度高,信息量就大,反之信息量就小。若消息发生的概率趋近于零(不可能事件),则消息的信息量趋于无穷大;若消息发生的概率为1(必然事件),则消息包含的信息量为0。

据此推论:若一个信息很稀有(小概率事件)、特别有吸引力,即信息熵必然较大;但是,这类具有“轰动性”的信息意味着会有更多的人感兴趣,纷纷在网上转发,从而被传播得更广泛或者说被引用的数量更多,那么在网上这个消息的出现概率就更高,导致熵较小。看上去结果是相反的,似乎存在矛盾。实际上,熵的计算要立足特定时间和场景,不能一概而论。前一种情况是从信息本身的性质出发(具有新闻性)来计算,是一种面向静态的衡量;后一种情况是从信息的利用、行为(传播性)来计算,是一种面向动态的衡量。因此,不能简单地以信息熵大小来评判信息的价值高低。

在一个系统中,如果不施加外力,其趋势是熵增。比如,恒星逐渐坍缩,一杯水慢慢变凉,桌上的苹果一点点烂掉,房间一天比一天杂乱无章,信息系统越用越“卡”等,都属于混乱程度在逐步加剧,依靠自身是无法实现逆转的,甚至有些是不可逆的。假如毫无作为的话,系统不会自己变得井然有序。故熵的概念对于创新思变有很强的启示意义。 BAGJHOL2+mUFuo5nTNZn7O4TtKSv8jHHKrfrykDaTCi56tAiU20Mu76bxrxtZ2cD

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