打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
密码学

 密码学


绪论 

密码学的发展历史(1)    

1.3 密码学的发展历史

密码学的发展历程大致经历了三个阶段:古代加密方法、古典密码和近代密码。

1.3.1 古代加密方法(手工阶段)

源于应用的无穷需求总是推动技术发明和进步的直接动力。存于石刻或史书中的记载表明,许多古代文明,包括埃及人、希伯来人、亚述人都在实践中逐步发明了密码系统。从某种意义上说,战争是科学技术进步的催化剂。人类自从有了战争,就面临着通信安全的需求,密码技术源远流长。

古代加密方法大约起源于公元前440年出现在古希腊战争中的隐写术。当时为了安全传送军事情报,奴隶主剃光奴隶的头发,将情报写在奴隶的光头上,待头发长长后将奴隶送到另一个部落,再次剃光头发,原有的信息复现出来,从而实现这两个部落之间的秘密通信。

密码学用于通信的另一个记录是斯巴达人于公元前400年应用Scytale加密工具在军官间传递秘密信息。Scytale实际上是一个锥形指挥棒,周围环绕一张羊皮纸,将要保密的信息写在羊皮纸上。解下羊皮纸,上面的消息杂乱无章、无法理解,但将它绕在另一个同等尺寸的棒子上后,就能看到原始的消息。

我国古代也早有以藏头诗、藏尾诗、漏格诗及绘画等形式,将要表达的真正意思或“密语”隐藏在诗文或画卷中特定位置的记载,一般人只注意诗或画的表面意境,而不会去注意或很难发现隐藏其中的“话外之音”。

由上可见,自从有了文字以来,人们为了某种需要总是想法设法隐藏某些信息,以起到保证信息安全的目的。这些古代加密方法体现了后来发展起来的密码学的若干要素,但只能限制在一定范围内使用。

传输密文的发明地是古希腊,一个叫Aeneas Tacticus的希腊人在《论要塞的防护》一书中对此做了最早的论述。公元前2世纪,一个叫Polybius的希腊人设计了一种将字母编码成符号对的方法,他使用了一个称为Polybius的校验表,这个表中包含许多后来在加密系统中非常常见的成分,如代替与换位。Polybius校验表由一个55的网格组成(如表1-1所示),网格中包含26个英文字母,其中IJ在同一格中。每一个字母被转换成两个数字,第一个是字母所在的行数,第二个是字母所在的列数。如字母A就对应着11,字母B就对应着12,以此类推。使用这种密码可以将明文“message”置换为密文“32 15 43 43 11 22 15”。在古代,这种棋盘密码被广泛使用。

1-1 Polybius校验表

 

1

2

3

4

5

1

A

B

C

D

E

2

F

G

H

I/J

K

3

L

M

N

O

P

4

Q

R

S

T

U

5

V

W

X

Y

Z

古代加密方法主要基于手工的方式实现,因此称为密码学发展的手工阶段。

1.3.2 古典密码(机械阶段)

古典密码的加密方法一般是文字置换,使用手工或机械变换的方式实现。古典密码系统已经初步体现出近代密码系统的雏形,它比古代加密方法复杂,其变化较小。古典密码的代表密码体制主要有:单表代替密码、多表代替密码及转轮密码。Caesar密码就是一种典型的单表加密体制;多表代替密码有Vigenere密码、Hill密码;著名的Enigma密码就是第二次世界大战中使用的转轮密码。

阿拉伯人是第一个清晰地理解密码学原理的人,他们设计并且使用代替和换位加密,并且发现了密码分析中的字母频率分布关系。大约在1412年,al-Kalka-shandi在他的大百科全书中论述了一个著名的基本处理办法,这个处理方法后来广泛应用于多个密码系统中。他清楚地给出了一个如何应用字母频率分析密文的操作方法及相应的实例。

欧洲的密码学起源于中世纪的罗马和意大利。大约在1379年,欧洲第一本关于密码学的手册由Gabriela de Lavinde编写,由几个加密算法组成,并且为罗马教皇Clement七世服务。这个手册包括一套用于通信的密钥,并且用符号取代字母和空格,形成了第一个简要的编码字符表(称为Nomenclators)。该编码字符表后来被逐渐扩展,并且流行了几个世纪,成为当时欧洲政府外交通信的主流方法。

到了1860年,密码系统在外交通信中已得到普遍使用,并且已成为类似应用中的宠儿。当时,密码系统主要用于军事通信,如在美国国内战争期间,联邦军广泛地使用了换位加密,主要使用的是Vigenere密码,并且偶尔使用单字母代替。然而联合军密码分析人员破译了截获的大部分联邦军密码。

在第一次世界大战期间,敌对双方都使用加密系统(Cipher System),主要用于战术通信,一些复杂的加密系统被用于高级通信中,直到战争结束。而密码本系统(Code System)主要用于高级命令和外交通信中。

到了20世纪20年代,随着机械和机电技术的成熟,以及电报和无线电需求的出现,引起了密码设备方面的一场革命—发明了转轮密码机(简称转轮机,Rotor),转轮机的出现是密码学发展的重要标志之一。美国人Edward Hebern认识到:通过硬件卷绕实现从转轮机的一边到另一边的单字母代替,然后将多个这样的转轮机连接起来,就可以实现几乎任何复杂度的多个字母代替。转轮机由一个键盘和一系列转轮组成,每个转轮是26个字母的任意组合。转轮被齿轮连接起来,当一个转轮转动时,可以将一个字母转换成另一个字母。照此传递下去,当最后一个转轮处理完毕时,就可以得到加密后的字母。为了使转轮密码更安全,人们还把几种转轮和移动齿轮结合起来,所有转轮以不同的速度转动,并且通过调整转轮上字母的位置和速度为破译设置更大的障碍。

几千年来,对密码算法的研究和实现主要是通过手工计算来完成的。随着转轮机的出现,传统密码学有了很大的进展,利用机械转轮可以开发出极其复杂的加密系统。1921年以后的十几年里,Hebern构造了一系列稳步改进的转轮机,并投入美国海军的试用评估,并申请了第一个转轮机的专利,这种装置在随后的近50年里被指定为美军的主要密码设备。毫无疑问,这个工作奠定了二次世界大战中美国在密码学方面的重要地位。

在美国Hebern发明转轮密码机的同时,欧洲的工程师们,如荷兰的Hugo Koch、德国的Arthur Scherbius都独立地提出了转轮机的概念。Arthur Scherbius1919年设计出了历史上最著名的密码机—德国的Enigma机,在二次世界大战期间,Enigma曾作为德国陆、海、空三军最高级密码机。Enigma机(如图1-1a)所示)面板前有灯泡和插接板,它使用了3个正规轮和1个反射轮。这使得英军从19422月到12月都没能解读出德国潜艇发出的信号。4Enigma机在1944年装备德国海军。

 

绪论

密码学的发展历史(2)    

这些机器也刺激了英国在二次世界大战期间发明并使用TYPEX密码机,如图1-1b)所示。英国的TYPEX密码机是德国3Enigma的改进型密码机,它增加了两个轮使得破译更加困难,在英军通信中使用广泛,并帮助英军破译了德军信号。

Hagelin(哈格林)密码机是在二次世界大战期间得到广泛使用的另一类转轮密码机。它由瑞典的Boris Caesar Wilhelm Hagelin发明。二战中,Hagelin C-36型密码机(如图1-1c)所示)曾在法国军队中广泛使用,它由Aktiebolaget Cryptoeknid Stockholm1936年制造,密钥周期长度为3 900 255。对于纯机械的密码机来说,这已是非常不简单了。Hagelin C-48型(即M-209,如图1-1d)所示)是哈格林对C-36改进后的产品,由Smith-Corna公司负责为美国陆军生产,曾装备美军师到营级部队,在朝鲜战争期间还在使用。M-209增加了一个有26个齿的密钥轮,共由6个共轴转轮组成,每个转轮外边缘分别有17, 19, 21, 23, 25, 26个齿,它们互为素数,从而使它的密码周期达到了262523211917 = 101 405 850

日本人在二次世界大战期间所使用的密码机与HebernEnigma密码机间有一段有趣的历史渊源。在第一次世界大战期间及之后,美国政府组织了第一个正式的密码分析活动,一位曾指导该活动的美国密码学家出版了《The American Black Chamber》一书。该书列举了美国人成功破译日军密码的细节:日本政府致力于开发尽可能最好的密码机,为了达到这个目的,它购买了Hebern的转轮机和商业的Enigma机,包括其他几个当时流行的密码机来研究。在1930年,日本的第一个转轮密码机(美国分析家把它称之为RED)开始为日本外交部服务。然而,因为具有分析Hebern转轮密码机的经验,美国的密码分析家们成功地分析出了RED所加密的内容。在1939年,日本人引入了一个新的加密机(美国分析家将其称为PURPLE),其中的转轮机用电话步进交换机所取代。

1-1 几个典型的密码机

转轮密码机的使用大大提高了密码加密速度,但由于密钥量有限,到二战中后期时,引出了一场关于加密与破译的对抗。二次大战期间,波兰人和英国人破译了Enigma密码,美国密码分析者攻破了日本的RED, ORANGEPURPLE密码,这对联军在二次世界大战中获胜起到了关键性作用,是密码分析最伟大的成功。

二次大战后,电子学开始被引入到密码机中。第一个电子密码机仅仅是一个转轮机,只是转轮被电子器件取代。这些电子转轮机的惟一优势在于它们的操作速度,但它们仍受到机械式转轮密码机固有弱点(密码周期有限、制造费用高等)的影响。

绪论

 

密码学的发展历史(3)
    

1.3.3 近代密码(计算机阶段)

密码形成一门新的学科是在20世纪70年代,这是受计算机科学蓬勃发展刺激和推动的结果。快速电子计算机和现代数学方法一方面为加密技术提供了新的概念和工具,另一方面也给破译者提供了有力武器。计算机和电子学时代的到来给密码设计者带来了前所未有的自由,他们可以轻易地摆脱原先用铅笔和纸进行手工设计时易犯的错误,也不用再面对用电子机械方式实现的密码机的高额费用。总之,利用电子计算机可以设计出更为复杂的密码系统。

密码学的理论基础之一是1949ClaudeShannon发表的“保密系统的通信理论”(The Communication Theory ofSecrecy Systems),这篇文章发表了30年后才显示出它的价值。1976W.DiffieM.Hellman发表了“密码学的新方向”(New Directions in Cryptography)一文,提出了适应网络上保密通信的公钥密码思想,开辟了公开密钥密码学的新领域,掀起了公钥密码研究的序幕。受他们的思想启迪,各种公钥密码体制被提出,特别是1978RSA公钥密码体制的出现,成为公钥密码的杰出代表,并成为事实标准,在密码学史上是一个里程碑。可以这么说:“没有公钥密码的研究就没有近代密码学”。同年,美国国家标准局(NBS,即现在的国家标准与技术研究所NIST)正式公布实施了美国的数据加密标准(Data Encryption StandardDES),公开它的加密算法,并被批准用于政府等非机密单位及商业上的保密通信。上述两篇重要的论文和美国数据加密标准DES的实施,标志着密码学的理论与技术的划时代的革命性变革,宣布了近代密码学的开始。

近代密码学与计算机技术、电子通信技术紧密相关。在这一阶段,密码理论蓬勃发展,密码算法设计与分析互相促进,出现了大量的密码算法和各种攻击方法。另外,密码使用的范围也在不断扩张,而且出现了许多通用的加密标准,促进网络和技术的发展。

现在,由于现实生活的实际需要及计算机技术的进步,密码学有了突飞猛进的发展,密码学研究领域出现了许多新的课题、新的方向。例如:在分组密码领域,由于DES已经无法满足高保密性的要求,美国于19971月开始征集新一代数据加密标准,即高级数据加密标准(AdvancedEncryption StandardAES)。目前,AES的征集已经选择了比利时密码学家所设计的Rijndael算法作为标准草案,并正在对Rijndael算法做进一步评估。AES征集活动使国际密码学界又掀起了一次分组密码研究高潮。同时,在公开密钥密码领域,椭圆曲线密码体制由于其安全性高、计算速度快等优点引起了人们的普遍关注,许多公司与科研机构都投入到对椭圆曲线密码的研究当中。目前,椭圆曲线密码已经被列入一些标准中作为推荐算法。另外,由于嵌入式系统的发展、智能卡的应用,这些设备上所使用的密码算法由于系统本身资源的限制,要求密码算法以较小的资源快速实现,这样,公开密钥密码的快速实现成为一个新的研究热点。最后,随着其他技术的发展,一些具有潜在密码应用价值的技术也逐渐得到了密码学家极大的重视,出现了一些新的密码技术,例如,混沌密码、量子密码等,这些新的密码技术正在逐步地走向实用化。

绪论

 

密码学在网络信息安全中的作用


    

1.2 密码学在网络信息安全中的作用

在现实世界中,安全是一个相当简单的概念。例如,房子门窗上要安装足够坚固的锁以阻止窃贼的闯入;安装报警器是阻止入侵者破门而入的进一步措施;当有人想从他人的银行账户上骗取钱款时,出纳员要求其出示相关身份证明也是为了保证存款安全;签署商业合同时,需要双方在合同上签名以产生法律效力也是保证合同的实施安全。

在数字世界中,安全以类似的方式工作着。机密性就像大门上的锁,它可以阻止非法者闯入用户的文件夹读取用户的敏感数据或盗取钱财(如信用卡号或网上证券账户信息)。数据完整性提供了一种当某些内容被修改时可以使用户得知的机制,相当于报警器。通过认证,可以验证实体的身份,就像从银行取钱时需要用户提供合法的身份(ID)一样。基于密码体制的数字签名具有防否认功能,同样有法律效力,可使人们遵守数字领域的承诺。

以上思想是密码技术在保护信息安全方面所起作用的具体体现。密码是一门古老的技术,但自密码技术诞生直至第二次世界大战结束,对于公众而言,密码技术始终处于一种未知的保密状态,常与军事、机要、间谍等工作联系在一起,让人在感到神秘之余,又有几分畏惧。信息技术的迅速发展改变了这一切。随着计算机和通信技术的迅猛发展,大量的敏感信息常通过公共通信设施或计算机网络进行交换,特别是Internet的广泛应用、电子商务和电子政务的迅速发展,越来越多的个人信息需要严格保密,如:银行账号、个人隐私等。正是这种对信息的机密性和真实性的需求,密码学才逐渐揭去了神秘的面纱,走进公众的日常生活中。

密码技术是实现网络信息安全的核心技术,是保护数据最重要的工具之一。通过加密变换,将可读的文件变换成不可理解的乱码,从而起到保护信息和数据的作用。它直接支持机密性、完整性和非否认性。当前信息安全的主流技术和理论都是基于以算法复杂性理论为特征的现代密码学的。从DiffieHellman发起密码学革命起,该领域最近几十年的发展表明,信息安全技术的一个创新生长点是信息安全的编译码理论和方法的深入研究,这方面具有代表性的工作有数据加密标准DES、高级加密标准AESRSA算法、椭圆曲线密码算法ECCIDEA算法、PGP系统等。

今天,在计算机被广泛应用的信息时代,由于计算机网络技术的迅速发展,大量信息以数字形式存放在计算机系统里,信息的传输则通过公共信道。这些计算机系统和公共信道在不设防的情况下是很脆弱的,容易受到攻击和破坏,信息的失窃不容易被发现,而后果可能是极其严重的。如何保护信息的安全已成为许多人感兴趣的迫切话题,作为网络安全基础理论之一的密码学引起人们的极大关注,吸引着越来越多的科技人员投入到密码学领域的研究之中。

密码学尽管在网络信息安全中具有举足轻重的作用,但密码学绝不是确保网络信息安全的惟一工具,它也不能解决所有的安全问题。同时,密码编码与密码分析是一对矛和盾的关系,俗话说:“道高一尺,魔高一丈”,它们在发展中始终处于一种动态的平衡。在网络信息安全领域,除了技术之外,管理也是非常重要的一个方面。如果密码技术使用不当,或者攻击者绕过了密码技术的使用,就不可能提供真正的安全性。

 

 

2 密码学基础

2.1 密码学相关概念

密码学cryptology)作为数学的一个分支,是密码编码学和密码分析学的统称。或许与最早的密码起源于古希腊有关,cryptology这个词来源于希腊语,crypto是隐藏、秘密的意思,logo是单词的意思,grapho是书写、写法的的意思,cryptography就是“如何秘密地书写单词”。

使消息保密的技术和科学叫做密码编码学cryptography)。密码编码学是密码体制的设计学,即怎样编码,采用什么样的密码体制以保证信息被安全地加密。从事此行业的人员叫做密码编码者(cryptographer)。

与之相对应,密码分析学cryptanalysis)就是破译密文的科学和技术。密码分析学是在未知密钥的情况下从密文推演出明文或密钥的技术。密码分析者(cryptanalyst)是从事密码分析的专业人员。

在密码学中,有一个五元组:{明文、密文、密钥、加密算法、解密算法},对应的加密方案称为密码体制(或密码)。

明文:是作为加密输入的原始信息,即消息的原始形式,通常用mp表示。所有可能明文的有限集称为明文空间,通常用MP来表示。

密文:是明文经加密变换后的结果,即消息被加密处理后的形式,通常用c表示。所有可能密文的有限集称为密文空间,通常用C来表示。

密钥:是参与密码变换的参数,通常用k表示。一切可能的密钥构成的有限集称为密钥空间,通常用K表示。

加密算法:是将明文变换为密文的变换函数,相应的变换过程称为加密,即编码的过程(通常用E表示,即c=Ek(p))。

解密算法:是将密文恢复为明文的变换函数,相应的变换过程称为解密,即解码的过程(通常用D表示,即p=Dk(c))。

对于有实用意义的密码体制而言,总是要求它满足:p=Dk (Ek(p)),即用加密算法得到的密文总是能用一定的解密算法恢复出原始的明文来。而密文消息的获取同时依赖于初始明文和密钥的值,如图2-1所示。

根据密码分析者对明文、密文等信息掌握的多少,可将密码分析分为以下五种情形。

2.1.1 惟密文攻击(Ciphertext only

对于这种形式的密码分析,破译者已知的东西只有两样:加密算法、待破译的密文。

2.1.2 已知明文攻击(Known plaintext

在已知明文攻击中,破译者已知的东西包括:加密算法和经密钥加密形成的一个或多个明文-密文对,即知道一定数量的密文和对应的明文。

2.1.3 选择明文攻击(Chosen plaintext

选择明文攻击的破译者除了知道加密算法外,他还可以选定明文消息,并可以知道对应的加密得到的密文,即知道选择的明文和对应的密文。例如,公钥密码体制中,攻击者可以利用公钥加密他任意选定的明文,这种攻击就是选择明文攻击。

2.1.4 选择密文攻击(Chosen ciphertext

与选择性明文攻击相对应,破译者除了知道加密算法外,还包括他自己选定的密文和对应的、已解密的原文,即知道选择的密文和对应的明文。

2.1.5 选择文本攻击(Chosen text

选择文本攻击是选择明文攻击与选择密文攻击的结合。破译者已知的东西包括:加密算法、由密码破译者选择的明文消息和它对应的密文,以及由密码破译者选择的猜测性密文和它对应的已破译的明文。

很明显,惟密文攻击是最困难的,因为分析者可供利用的信息最少。上述攻击的强度是递增的。一个密码体制是安全的,通常是指在前三种攻击下的安全性,即攻击者一般容易具备进行前三种攻击的条件。

 

 

密码学基础

 

密码系统(1)
    

2.2 密码系统

2.2.1 密码系统的定义

密码系统(cryptosystem)是用于加密与解密的系统,就是明文与加密密钥作为加密变换的输入参数,经过一定的加密变换处理以后得到的输出密文,由它们所组成的一个系统。一个完整的密码系统由密码体制(包括密码算法以及所有可能的明文、密文和密钥)、信源、信宿和攻击者构成。

2.2.2 柯克霍夫(Kerckhoffs)原则

密码学领域存在着一个很重要的事实:“如果许多聪明人都不能解决的问题,那么它可能不会很快得到解决。”这说明很多加密算法的安全性并没有在理论上得到严格的证明,只是这种算法思想出来以后,经过许多人多年的攻击并没有发现其弱点,没有找到攻击它的有效方法,从而认为它是安全的。

在设计和使用密码系统时,有一个著名的“柯克霍夫原则”需要遵循,它是荷兰密码学家Kerckhoffs1883年在其名著《军事密码学》中提出的密码学的基本假设:密码系统中的算法即使为密码分析者所知,也对推导出明文或密钥没有帮助。也就是说,密码系统的安全性不应取决于不易被改变的事物(算法),而应只取决于可随时改变的密钥。

如果密码系统的强度依赖于攻击者不知道算法的内部机理,那么注定会失败。如果相信保持算法的内部秘密比让研究团体公开分析它更能改进密码系统的安全性,那就错了。如果认为别人不能反汇编代码和逆向设计算法,那就太天真了。最好的算法是那些已经公开的,并经过世界上最好的密码分析家们多年的攻击,却还是不能破译的算法(美国国家安全局曾对外保持他们的算法的秘密,但他们有世界上最好的密码分析家在内部工作。另外,他们互相讨论他们的算法,通过反复的审查发现他们工作中的弱点)。

认为密码分析者不知道密码系统的算法是一种很危险的假定,因为:① 密码算法在多次使用过程中难免被敌方侦察获悉;②在某个场合可能使用某类密码更合适,再加上某些设计者可能对某种密码系统有偏好等因素,敌方往往可以“猜出”所用的密码算法;③ 通常只要经过一些统计试验和其他测试就不难分辨出不同的密码类型。

2.2.3 密码系统的安全条件

如果算法的保密性是基于保持算法的秘密,这种算法称为受限制的(restricted)算法。受限制的算法的特点表现为:①密码分析时因为不知道算法本身,还需要对算法进行恢复;② 处于保密状态的算法只为少量的用户知道,产生破译动机的用户也就更少;③ 不了解算法的人或组织不可用。但这样的算法不可能进行质量控制或标准化,而且要求每个用户和组织必须有他们自己惟一的算法。

现代密码学用密钥解决了这个问题。所有这些算法的安全性都基于密钥的安全性,而不是基于算法的安全性。这就意味着算法可以公开,也可以被分析,即使攻击者知道算法也没有关系。算法公开的优点包括:①它是评估算法安全性的惟一可用的方式;② 防止算法设计者在算法中隐藏后门;③ 可以获得大量的实现,最终可走向低成本和高性能的实现;④有助于软件实现;⑤ 可以成为国内、国际标准;⑥ 可以大量生产使用该算法的产品。

所以,在密码学中有一条不成文的规定:密码系统的安全性只寓于密钥,通常假定算法是公开的。这就要求加密算法本身要非常安全。在考查算法的安全性时,可以将破译算法分为不同的级别。

全部破译(Total Break):找出密钥。

全部推导(Global Deduction):找出替代算法。

实例推导(Instance Deduction):找出明文。

信息推导(Information Deduction):获得一些有关密钥或明文的信息。

可以用不同的方式来衡量攻击方法的复杂性。

数据复杂性(Data Complexity):用做攻击所需要输入的数据量。

处理复杂性(Processing Complexity):完成攻击所需要的时间。

存储需求(Storage Requirement):进行攻击所需要的数据存储空间大小。

评价密码体制安全性的三个途径如下。

1)计算安全性。计算安全性指攻破密码体制所做的计算上的努力。如果使用最好的算法攻破一个密码体制需要至少N次操作(N是一个特定的非常大的数字),则可以定义这个密码体制是安全的。存在的问题是没有一个已知的实际密码体制在该定义下可以被证明是安全的。通常的处理办法是使用一些特定的攻击类型来研究计算上的安全性,如使用穷举搜索方法。很明显,这种判断方法对于一种攻击类型安全的结论并不适用于其他攻击方法。

2)可证明安全性。这种方法是将密码体制的安全性归结为某个经过深入研究的数学难题,数学难题被证明求解困难。这种判断方法存在的问题是:它只说明了安全和另一个问题相关,并没有完全证明问题本身的安全性。

3)无条件安全性。这种判断方法考虑的是对攻击者的计算资源没有限制时的安全性。即使提供了无穷的计算资源,依然无法被攻破,则称这种密码体制是无条件安全的。

无条件安全的算法(除一次一密方案[1]外,密码本身只使用一次)是不存在的。密码系统用户所能做的全部努力就是满足以下准则:

1)破译该密码的成本超过被加密信息本身的价值;

2)破译该密码的时间超过该信息有用的生命周期。

如果满足上述两个准则之一,一个加密方案就可认为是实际上安全的。困难在于如何估算破译所需要付出的成本或时间,通常攻击者有两种方法:蛮力攻击(Brute force,或称穷举搜索攻击)和利用算法中的弱点进行攻击。排除算法有弱点这一项外(如果算法有弱点就无法保证保密的强度,原则上,这类密码体制是不能使用的),通常用蛮力攻击来估算:用每种可能的密钥来进行尝试,直到获得了从密文到明文的一种可理解的转换为止,这是一种穷举搜索攻击。平均而言,为取得成功,必须尝试所有可能采用的密钥的一半。因此,密钥越长,密钥空间就越大,蛮力攻击所需要的时间也就越长,或成本越高,相应地也就越安全(当然作为该算法的使用者要进行加密、解密处理所需要的时间也就越长,因此,需要在安全性与效率间进行权衡)。

由此可见,一个密码系统要是实际可用的,必须满足如下特性。

1)每一个加密函数E和每一个解密函数D都能有效地计算。

2)破译者取得密文后将不能在有效的时间或成本范围内破解出密钥或明文。

3)一个密码系统是安全的必要条件:穷举密钥搜索是不可行的,因为密钥空间非常大。

密码学基础

 

密码系统(2)


    

2.2.4 密码系统的分类

密码编码系统通常有三种独立的分类方式。

1.明文变换到密文的操作类型

所有加密算法基于两个基本操作。

1)代替(substitution):即明文中的每个元素(比特、字母、比特组合或字母组合)被映射为另一个元素。该操作主要达到非线性变换的目的。

2)换位(transposition):即明文中的元素被重新排列,这是一种线性变换,对它们的基本要求是不丢失信息(即所有操作都是可逆的)。

2.所用的密钥数量

1)单密钥加密(single-keycipher):即发送者和接收者双方使用相同的密钥,该系统也称为对称加密、秘密密钥加密或常规加密。

2)双密钥加密(dual-keycipher):即发送者和接收者各自使用一个不同的密钥,这两个密钥形成一个密钥对,其中一个可以公开,称之为公钥,另一个必须为密钥持有人秘密保管,称之为私钥。该系统也称为非对称加密或公钥加密。

3.明文被处理的方式

1)分组加密(block cipher):一次处理一块(组)元素的输入,对每个输入块产生一个输出块,即一个明文分组被当做一个整体来产生一个等长的密文分组输出。通常使用的是64位或128位的分组大小。

2)流加密(stream cipher):也称为序列密码,即连续地处理输入元素,并随着该过程的进行,一次产生一个元素的输出,即一次加密一个比特或一个字节。

人们在分析分组密码方面做出的努力要比在分析流密码方面做出的努力多得多。一般而言,分组密码比流密码的应用范围广。绝大部分基于网络的常规加密应用都使用分组密码。

 

 

 

 

 

密码学基础

 

安全模型
    

2.3 安全模型

大多数信息安全涉及网络传输中的信息安全(动态数据的安全)和计算机系统中的信息安全(静态数据的安全)。它们面临着建立两种不同信息安全模型的需要。

2.3.1 网络安全模型

发送方要将秘密消息通过不安全的信道发送给接收方,就需要先对消息进行某种安全变换,得到安全的消息,以防止攻击者危害消息的保密性和真实性。安全的消息到达接收方后,再经过安全变换的逆变换,从而恢复原始的消息。在大多数情况下,对消息的安全变换及其逆变换是基于密码算法来实现的,因此在变换过程中还需要输入秘密信息(如密钥),这个秘密信息不能为攻击者所获知。

在网络安全模型中,有时还需要可信的第三方。如当通信双方发生有关信息传输真实性的争执时,他可以进行仲裁。第三方也可以起到秘密信息分发的作用,如向通信双方分发共享的密钥。

基于网络安全模型设计系统安全服务时应包括以下四方面的内容。

1)设计实现安全变换的算法,要求该算法有足够的安全强度,不会被攻击者有效地攻破。

2)生成安全变换中所需要的秘密信息(密钥)。

3)设计分配和共享秘密信息(密钥)的方法。

4)确定通信双方使用的协议,该协议利用安全算法和秘密信息实现系统所需要的安全服务。

2.3.2 网络访问安全模型

网络访问安全模型如图2-3所示。网络访问安全模型希望保护信息系统不受通过网络的有害访问。如阻止黑客试图通过网络访问信息系统,或阻止其他有破坏欲望(不满的雇员),或想利用计算机获利的人(盗取信用卡号或进行非法的资金转账等),或阻止恶意的程序利用系统的弱点来影响应用程序的正常运行。

 

对付有害访问的安全机制分为两大类:一类称为具有门卫功能的守卫者,它包含基于鉴别的登录过程,只允许授权实体不超越权限合法访问系统资源。另一类称为信息系统的内部安全机制,一旦非法用户或程序突破了守卫者,还将受到信息系统内部的各种监视活动和分析存储信息的内部控制机制的检测。

2-3 网络访问安全模型

密码学基础

密码体制(1)

2.4 密码体制

密码体制就是完成加密和解密功能的密码方案。近代密码学中所出现的密码体制可分为两大类:对称加密体制和非对称加密体制。

2.4.1 对称密码体制(Symmetric Encryption

对称密码体制也称为秘密密钥密码体制、单密钥密码体制或常规密码体制,对称密码体制的基本特征是加密密钥与解密密钥相同。对称密码体制的基本元素包括原始的明文、加密算法、密钥、密文及攻击者。

发送方的明文消息P = [P1P2PM]PM个元素是某个语言集中的字母,如26个英文字母,现在最常见的是二进制字母表{0,1}中元素组成的二进制串。加密之前先生成一个形如K = [K1K2KJ]的密钥作为密码变换的输入参数之一。该密钥或者由消息发送方生成,然后通过安全的渠道送到接收方;或者由可信的第三方生成,然后通过安全渠道分发给发送方和接收方。

发送方通过加密算法根据输入的消息P和密钥K生成密文C = [C1C2CN],即:

C =EK(P)                           2-1

接收方通过解密算法根据输入的密文C和密钥K恢复明文P = [P1P2PM],即:

P =EK(C)                          2-2

一个攻击者(密码分析者)能基于不安全的公开信道观察密文C,但不能接触到明文P或密钥K,他可以试图恢复明文P或密钥K。假定他知道加密算法E和解密算法D,只对当前这个特定的消息感兴趣,则努力的焦点是通过产生一个明文的估计值

来恢复明文P。如果他也对读取未来的消息感兴趣,他就需要试图通过产生一个密钥的估计值
来恢复密钥K,这是一个密码分析的过程。

对称密码体制的安全性主要取决于两个因素:① 加密算法必须足够安全,使得不必为算法保密,仅根据密文就能破译出消息是不可行的;② 密钥的安全性,密钥必须保密并保证有足够大的密钥空间,对称密码体制要求基于密文和加密/解密算法的知识能破译出消息的做法是不可行的。

对称密码算法的优缺点

1)优点:加密、解密处理速度快、保密度高等。

2)缺点:① 密钥是保密通信安全的关键,发信方必须安全、妥善地把密钥护送到收信方,不能泄露其内容,如何才能把密钥安全地送到收信方,是对称密码算法的突出问题。对称密码算法的密钥分发过程十分复杂,所花代价高。

② 多人通信时密钥组合的数量会出现爆炸性膨胀,使密钥分发更加复杂化,N个人进行两两通信,总共需要的密钥数为N(N-1)/2个。

③ 通信双方必须统一密钥,才能发送保密的信息。如果发信者与收信人素不相识,这就无法向对方发送秘密信息了。

④ 除了密钥管理与分发问题,对称密码算法还存在数字签名困难问题(通信双方拥有同样的消息,接收方可以伪造签名,发送方也可以否认发送过某消息)。

密码学基础

 

密码体制(2)


    

2.4.2 非对称密码体制(Asymmetric Encryption

非对称密码体制也叫公开密钥密码体制、双密钥密码体制。其原理是加密密钥与解密密钥不同,形成一个密钥对,用其中一个密钥加密的结果,可以用另一个密钥来解密,如图2-5所示。公钥密码体制的发展是整个密码学发展史上最伟大的一次革命,它与以前的密码体制完全不同。这是因为:公钥密码算法基于数学问题求解的困难性,而不再是基于代替和换位方法;另外,公钥密码体制是非对称的,它使用两个独立的密钥,一个可以公开,称为公钥,另一个不能公开,称为私钥。

公开密钥密码体制的产生主要基于以下两个原因:一是为了解决常规密钥密码体制的密钥管理与分配的问题;二是为了满足对数字签名的需求。因此,公钥密码体制在消息的保密性、密钥分配和认证领域有着重要的意义。

在公开密钥密码体制中,公开密钥是可以公开的信息,而私有密钥是需要保密的。加密算法E和解密算法D也都是公开的。用公开密钥对明文加密后,仅能用与之对应的私有密钥解密,才能恢复出明文,反之亦然。

公开密钥密码体制的优缺点

1)优点:① 网络中的每一个用户只需要保存自己的私有密钥,则N个用户仅需产生N对密钥。密钥少,便于管理。

② 密钥分配简单,不需要秘密的通道和复杂的协议来传送密钥。公开密钥可基于公开的渠道(如密钥分发中心)分发给其他用户,而私有密钥则由用户自己保管。

③ 可以实现数字签名。

2)缺点:与对称密码体制相比,公开密钥密码体制的加密、解密处理速度较慢,同等安全强度下公开密钥密码体制的密钥位数要求多一些。

公开密钥密码体制与常规密码体制的对比见表2-1

2-1 公开密钥密码体制与常规密码体制的比较

分类

常规密码体制

公开密钥密码体制

加密和解密使用同一个密钥和同一个算法

用同一个算法进行加密和解密,而密钥有一对,其中一个用于加密,另一个用于解密

发送方和接收方必须共享密钥和算法

发送方和接收方使用一对相互匹配,而又彼此互异的密钥

密钥必须保密

密钥对中的私钥必须保密

如果不掌握其他信息,要想解密报文是不可能或至少是不现实的

如果不掌握其他信息,要想解密报文是不可能或者至少是不现实的

知道所用的算法加上密文的样本必须不足以确定密钥

知道所用的算法、公钥和密文的样本必须不足以确定私钥

 

 

 

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
密码学发展简史
密码学:一场智力的巅峰对决
现代密码学
从简单到复杂,密码学让我们的信息更安全
起底密码学
密码学基本概念
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服