1. 密码学概述
(1)密码学的发展历程
密码学是一门古老而深奥的学科,是结合数学、计算机科学、电子与通信等诸多学科于一体的交叉学科,是研究信息系统安全保密的一门科学。密码学主要包括密码编码学和密码分析学两个分支,其中密码编码学的主要目的是寻求保证信息保密性或仁整形的方法,密码分析学的主要目的是研究加密消息的破译或消息的伪造。密码学经历了从古代密码学到现代密码学的演变。
最早将现代密码学概念运用于实际的是Caesar大帝,他是古罗马帝国末期著名的统帅和政治家。Caesar发明了一种简单的加密算法把他的信息加密用于军队传递,后来被称为Caesar密码。它是将字母按字母表的顺序排列,并且最后一个字母与第一个字母相连。加密方法是将明文中的每个字母用其后边的第三个字母代替,就变成了密文。
替代密码的基本思想,是将明文中的每个字母用此字符在字母表中后面第 k个字母替代,加密过程可以表示为函数E(m)=(m+k) mod n。其中:m 为明文字母在字母表中的位置数,n 为字母表中的字母个数,k 为密钥,E(m)为密文字母在字母表中对应的位置数。其解密过程可以表示为函数E(m)=(m-k) mod n。
置换密码的基本思想,不改变明文字符,只是将字符在明文中的排列顺序改变,从而实现明文信息的加密,又称为换位密码。矩阵换位法是实现置换密码的一种常用方法,它将明文中的字母按照给的顺序安排在一个矩阵中,然后根据密钥提供的顺序重新组合矩阵中字母,从而形成密文。
第一阶段:古代―1949年
这阶段的密码技术可以说是一种艺术,而不是一种科学,密码学专家常常是凭知觉和信念来进行密码设计和分析,而不是推理和证明,没有形成密码学的系统理论。这一阶段设计的密码称为经典密码或古典密码,并且密码算法在现代计算机技术条件下都是不安全的。
第二阶段:1949―1975年
1949年C.E.Shannon(香农)发表在《贝尔实验室技术杂志》上的《保密系统的信息理论(Communication Theory of Secrecy System)》为私钥密码体系(对称加密)建立了理论基础,从此密码学成为一门科学。图3-3为Shannon提出的保密通信模型。密码学直到今天仍具有艺术性,是具有艺术性的一门科学。这段时期密码学理论的研究工作进展不大。1967年David Kahn发表了《The Code Breakers(破译者)》一书,详尽地阐述了密码学的发展和历史,使人们开始了解和接触密码。1976年,Pfister(菲斯特)和美国国家安全局NSA(National Security Agency)一起制定了数据加密标准(Data Encryption Standard,DES),这是一个具有深远影响的分组密码算法。
第三阶段:1976年到~
1976年Diffie和Hellman发表的文章“密码学发展的新方向”导致了密码学上的一场革命,他们首先证明了在发送端和接收端无密钥传输的保密通信是可能的,从而开创了公钥密码学的新纪元。从此,密码开始充分发挥它的商用价值和社会价值。1978年,在ACM通信中,Rivest、Shamir和Adleman公布了RSA密码体系,这是第一个真正实用的公钥密码体系,可以用于公钥加密和数字签名。由于RSA算法对计算机安全和通信的巨大贡献,该算法的3个发明人因此获得计算机界的诺贝尔奖—图灵奖(A.M.Turing Award)。在EuroCrypt’91年会上,中国旅居瑞士学者来学嘉(X.J.Lai)和James L. Massey提出了IDEA,成为分组密码发展史上的又一个里程碑。
3.1.2 密码学的基本知识
密码学的基本目的是使得两个在不安全信道中通信的人,通常称为Alice和Bob,以一种使他们的敌手Oscar不能明白和理解通信内容的方式进行通信。不安全信道在实际中是普遍存在的,例如电话线或计算机网络。Alice发送给Bob的信息,通常称为明文(plaintext),例如英文单词、数据或符号。Alice使用预先商量好的密钥(key)对明文进行加密,加密过的明文称为密文(ciphertext),Alice将密文通过信道发送给Bob。对于敌手Oscar来说,他可以窃听到信道中Alice发送的密文,但是却无法知道其所对应的明文;而对于接收者Bob,由于知道密钥,可以对密文进行解密,从而获得明文。图3-4给出加密通信的基本过程,加密算法E,解密算法D,明文M,密文C;要传输明文M,首先要加密得到密文C,即C=E(M),接受者收到C后,要对其进行解密,即D(C)=M,为了保证将明文恢复,要求D(E(M))=M。
(2) 基本概念
明文消息(Plaintext):未加密的原消息,简称明文。
密文消息(Ciphertext):加密后的消息,简称密文。
加密(Encryption):明文到密文的变换过程。
解密(Decryption):密文到明文的恢复过程。
加密算法(Encryption Algorithm):对明文进行加密时所采用的一组规则或变换。
解密算法(Decryption Algorithm):对密文进行解密时所采用的一组规则或变换。
密码算法强度(Algorithm Strength):对给定密码算法的攻击难度。
密钥(Key):加解密过程中只有发送者和接收者知道的关键信息,分为加密密钥(Encryption Key)和解密密钥(Decryption Key)。
密码分析(Cryptanalysis):虽然不知道系统所用的密钥,但通过分析可能从截获的密文中推断出原来的明文,这一过程称为密码分析。
一个密码系统(或称为密码体制,Cryptosystem)由加密算法、解密算法、明文空间(全体明文的集合)、密文空间(全体密文的集合)和密钥空间(全体密钥的集合)组成。
什么是密码学?密码学(Cryptology)是研究如何实现秘密通信的科学,包含密码编码学和密码分析学。密码编码学(Cryptography)是研究对信息进行编码以实现信息隐蔽;密码分析学(Cryptanalytics)是研究通过密文获取对应的明文信息。
(3) 密码技术的基本应用
①用加密来保护信息。利用密码变换将明文变换成只有合法者才能恢复的密文,这是密码的最基本的功能。利用密码技术对信息进行加密是最常用的安全交易手段。
②采用密码技术对发送信息进行验证。为防止传输和存储的消息被有意或无意地篡改,采用密码技术对消息进行运算生成消息验证码(mac),附在消息之后发出或与信息一起存储,对信息进行认证。它在票据防伪中具有重要应用(如税务的金税系统和银行的支付密码器)。
③数字签名。在信息时代,电子信息的收发使我们过去所依赖的个人特征都被数字代替,数字签名的作用有两点:一是接收方可以发送方的真实身份,且发送方事后不能否认发送国该报文这一事实;二是发送方或非法者不能伪造、篡改报文。数字签名并非是用手书签名的图形标志,二是采用双重加密的方法来防伪、防赖。根据采用的加密技术不同,数字签名有不同的种类,如私用密钥的数字签名、公开密钥的数字签名、只需签名的数字签名、数字摘要的数字签名等。
④身份识别。当用户登录计算机系统或者建立最初的传输连接时,用户需要证明他的身份,典型的方法是采用口令机制来确认用户的真实身份。此外,采用数字签名也能够进行身份鉴别,数字证书用电子手段来证实一个用户的身份和对网络资源的访问权限,是网络正常运行锁屏必须的。在电子商务系统中,所有参与活动的实体都需要用数字证书来表明自己的身份。
3. 密码学的体制
按密钥使用的数量不同,将密码体制分为对称密码体系 (symmetric)(又称为单钥密码)和非对称密码(asymmetric)(又称为公钥密码)。
在对称密码体系中,加密密钥和解密密钥相同,彼此之间很容易相互确定。对于对称密码而言,按照明文加密方式的不同,又可分为分组密码(block cipher)和流密码(stream cipher)。流密码是指将明文消息按字符逐位地进行加密。分组密码是指将明文消息分组(每组含有多个字符)逐组地进行加密。在公钥密码体系中,加密密钥(又称为公钥,Public Key)和解密密钥(又称为私钥,Private Key)不同,从一个密钥很难推出另一个密钥,可将加密能力和解密能力分开,不需要通过专门的安全通道来传送密钥。大多数公钥密码属于分组密码。
(4) 对密码的攻击
密文分析者在不知道密钥的情况下,从密文恢复出明文。成功的密码分析不仅能够恢复出消息明文和密钥,而且能够发现密码体制的弱点,从而控制通信。常见的密码分析方法有以下四类。
①唯密文攻击(Ciphertext only)。密码破译者除了拥有截获的密文,以及对密码体制和密文信息的一般了解外,没有什么其它可以利用的信息用于破译密码。在这种情况下进行密码破译是最困难的,经不起这种攻击的密码体制被认为是完全不保密的。
②已知明文攻击(Known plaintext)。密码破译者不仅掌握了相当数量的密文,还有一些已知的明---密文对(通过各种手段得到的)可供利用。现代的密码体制(基本要求)不仅要经受得住唯密文攻击,而且要经受得住已知明文攻击。
③选择明文攻击(Chosen plaintext)。密码破译者不仅能够获得一定数量的明---密文对,还可以用它选择的任何明文,在同一未知密钥的情况下能加密相应的密文。密码破译者暂时控制加密机。
④选择密文攻击(Chosen ciphertext) 。密码破译者能选择不同的被加密的密文,并还可得到对应的解密的明文,据此破译密钥及其它密文。密码破译者暂时控制解密机。
一个好的密码系统应该满足下列要求:①系统即使理论上达不到不可破,实际上也要做到不可破。也就是说,从截获的密文或已知的明文—密文对,要确定密钥或任何明文在计算上是不可行的。②系统的保密性是依赖于密钥的,而不是依赖于对加密体制或算法的保密。③加密和解密算法适用于密钥空间的所有元素。④系统既易于实现又便于使用。
@木子羽辰,将一直带给大家信息安全知识,由浅至深、采用体系化结构逐步分享,大家有什么建议和问题,可以及留言,多谢大家关注,谢谢大家。