密码学基本和典型的任务是通过变换将明文消息变换成只有合法者才可以恢复的密文。假设用户Alice和用户Bob进行通信,为了防止用户Eve窃取通信的内容,Alice加密明文 m 得到密文 c ,并把密文 c 传送给Bob,Bob解密密文 c 得到明文 m 。加密打消了Eve从截获的密文中获取任何有用信息的企图。
密码学是一门研究密码算法和安全协议设计、使用及分析的学科,密码技术是提供网络安全认证、保护信息安全最重要的技术手段。密码学包括密码编码学和密码分析学:把来自信息源的可理解的原始消息变换成不可理解的消息,又可把该消息恢复到原始消息的方法和原理称为密码编码学;研究密码变化客观规律中的固有缺陷,并应用于破译密码以获取通信情报的方法和原理称为密码分析学。密码分析也称为对密码体制的攻击。
自从人类有了战争,就有了保密通信,也就有了密码的应用。密码学的基本思想是伪装信息,是对信息施加一种可逆的数学变换(如图3-1所示)。伪装前的信息称为明文(Plaintext),伪装后的信息称为密文(Ciphertext),伪装信息的过程称为加密(Encryption),解除伪装的过程称为解密(Decryption)。加密和解密的过程在密钥(Key)的控制下进行。只给合法的用户分配密钥,未授权的用户因为没有密钥所以不能从密文得到明文。
图3-1 密码学的基本思想
无论是加密还是解密都牵扯到两个概念:算法和密钥。
· 加密:将明文按照一定的算法编码为密文的过程称为加密,加密的方法即为加密算法。
· 解密:将密文按相应的算法解码为明文的过程称为解密,它是加密的相反过程。同样,解密的方法被称为解密算法。
· 密钥是算法的关键,不管是加密算法还是解密算法,都要用到密钥。
一般来讲,加解密的算法是可以公开的,但是密钥只能被通信的双方拥有,密钥是保证通信安全的根本。同时为了顺利完成上述保密通信过程,通信之前还必须完成以下准备工作。
· 制定协议(Protocol):约定通信双方的通信步骤和各个技术应用细节。
· 密钥交换(Key Exchange):通信双方必须设法取得所约定的密钥(指对称密钥)。然而用公共信道传输密钥是不安全的,除非利用某种专门用于传送密钥的秘密信道来传输,但是其代价可能是昂贵的或是很不方便的。可见密钥交换问题是传统密码体制的一大难题。
人类对密码的研究和应用已有几千年的历史,但在第一次世界大战之前,很少有公开的密码学文献出现。1949年,信息论的创始者香农发表的著名论文《保密系统的通信理论》(Communication Theory of Secrecy Systems)为密码学奠定了坚实的数学基础,证明了一次一密密码系统的完善保密性,也促使密码学正式成为一门科学。
密码技术的发展经历了古典密码时期、近代密码时期和现代密码时期三个阶段(如表3-1所示)。
表3-1 密码技术的发展
古典密码在历史上发挥了巨大作用。编制古典密码的基本方法对于编制现代密码仍然有效。凯撒密码(Caesar Cipher)和栅栏密码(Rail Fence Cipher)是古典密码时期的经典案例。
古罗马的凯撒大帝使用凯撒密码与前线的将军们通信。凯撒密码将英文中的每一个字母用比自身位置滞后3位的字母来替代(如表3-2所示)。信件写好后,在封口滴上厚厚的蜡,压上自己的私印。前线的将军们收到信件后,首先检查蜡封是否完整,蜡印是否为凯撒的印章,然后拆开信件,将英文中的每一个字母用比自身位置超前3位的字母来替代,以此方法读取信件内容。
表3-2 凯撒密码明密对照表
例3-1 凯撒密码应用示例
在应用凯撒密码时,首先构造一个或者多个密文字母表,然后用密文字母表中的字母或者字母组来代替明文字母或者字母组,各字母或者字母组的相对位置不变,但其本身改变了。这样编成的密码称为代替密码。凯撒密码就是一种代替密码。
栅栏密码是将明文依次交替写成平行的两行,然后按行的顺序输出得到密文。解密的过程正好与之相反,将密文从中间分成平行的两行,然后依次交替读取两行的内容得到明文。
例3-2 栅栏密码应用示例
在应用栅栏密码时,把明文中的字母重新排列,字母本身不变,但其位置改变了,这样编成的密码称为置换密码。栅栏密码就是一种置换密码。
1917年,美国电话电报公司的Gillbert Vernam为电报通信设计了一种非常方便的密码,后来被称为Vernam密码。Vernam密码奠定了序列密码的基础,在近代计算机和通信系统中得到广泛应用。
例3-3 Vernam密码应用示例
1976年,美国著名学者Diffie和Hellman的经典论文《密码学的新方向》(New Directions in Cryptography)奠定了公钥密码学(Public Key Cryptosystem)的基础,标志着密码学的研究和实践由传统走向现代。1977年,美国颁布了数据加密标准(Data Encryption Standard,DES),揭开了密码学的神秘面纱,使密码学的研究和应用从秘密走向公开,从此密码学成为一门蓬勃发展的学科。
1997年,美国宣布公开征集高级加密标准(Advanced Encryption Standard,AES),以取代1998年年底停止的DES。2001年11月26日,美国政府正式颁布AES为美国国家标准(编号为FIST PUBS 197)。2002年以来,许多国际标准化组织都已经采纳AES作为国际标准。为了规范密码应用和管理,促进密码事业发展,保障网络与信息安全,维护国家安全和社会公共利益,2019年10月,我国通过了《中华人民共和国密码法》。另外,为了符合中国国情、保障我国商用密码安全、实现密码算法的自主可控,国家密码管理局制定了一系列标准的国产密码算法(即国密算法),具体包括祖冲之密码、SM1、SM2、SM3、SM4、SM7、SM9算法(SM是“商密”的拼音首字母)。截至2021年,我国的SM2、SM3、祖冲之密码、SM4、SM9已相继成为国际标准化组织ISO/IEC发布的国际标准,这展现了我国先进的密码科技水平,对促进我国商用密码产业发展、提升我国商用密码的国际影响力具有重要意义。
随着科学技术的迅速发展,受社会需求的推动,密码正从原来的基于数学的密码向基于非数学的密码发展。由信息科学、计算机科学和量子力学结合而成的新的量子信息科学正在建立,量子技术在信息科学方面的应用掀起了对量子计算机、量子通信和量子密码的研究热潮。
一些在电子计算机环境下安全的密码,在量子计算机环境下却是可破译的。人们估计用量子计算机攻破RSA(Rivest、Shamir和Adleman)和ECC(Elliptic Curve Cryptography)等公开密钥密码只需要几十分钟。在强大的量子计算机面前,现在的许多密码将无密可言。量子密码学(Quantum Cryptography)是量子物理学和密码学融合的一门学科,量子密码学的理论基础是量子力学,而以往密码学的理论基础是数学。与传统密码学不同,量子密码学利用物理学原理保护信息。量子密码的基本依据是量子的测不准原理和量子态的不可克隆、不可删除原理,是一种基于非数学原理的密码。量子密码体系采用量子态作为信息载体,通过量子通道在合法的用户之间传送密钥。量子密码的安全性由量子力学原理保证,它是使用量子的选择来阻止信息被截取的方式。量子密码具有可证明的安全性,能对窃听行为方便地进行检测。这些特性使量子密码具有许多其他密码所没有的优势,因而量子密码引起了国际密码学界和物理学界的高度重视。量子密码已经允许成为可选择的密码技术,现在的应用以密钥分配为主。我国科学家在量子计算和量子保密通信领域做出了卓越的贡献。2007年,国际上首个量子密码通信网络由我国科学家在北京测试运行成功,标志着量子保密通信技术从点对点方式向网络化迈出了关键一步。
近年来,生物信息技术的发展推动了DNA计算机和DNA密码的研究。DNA计算具有许多现在的电子计算所无法比拟的优点,比如,具有高度的并行性、极低的能量消耗和极高的存储密度。目前,人机交互DNA计算机已经问世,人们已经开始利用DNA计算机求解数学难题,如果能够利用DNA计算机求解数学难题,就意味着可以利用DNA计算机破译密码。现在的各种密码基于各种数学困难问题,可以认为量子密码是基于量子状态测定、克隆和删除的困难问题。人们认为,DNA密码应当基于生物学中的某种困难问题。DNA密码以传统密码学为基础利用DNA分子强大的存储能力、低能耗、高度并行性等特点,通过分子处理技术制作DNA分子,并将该DNA分子作为计算工具来构造和完成密码算法。与基于数学问题的传统密码学相比,DNA密码不仅基于数学问题,同时也依靠生物技术,这使得DNA密码的破译更加困难,因此DNA密码更具有安全保障。
我们相信,量子密码、DNA密码将会把我们带入一个新的密码时代。
密码学为信息安全中的保密性、完整性、可认证性和不可否认性提供基本保障,使通信系统能够尽可能正常地工作。
1.保密性
保密性是隐藏消息的真实含义和目的的属性。Alice和Bob相互发送消息,为了防止消息的真实内容被Eve窃取,Alice和Bob把消息隐藏起来,只有他们自己可以还原消息,而Eve不能。
2.完整性
完整性用于确保在传输过程中消息和数据的正确性。消息接收者能够检验消息在传输过程中是否被有意或者无意篡改。完整性包括数据来源的完整性和数据内容的完整性,数据来源的完整性是指数据来源的准确性和可信性,数据内容的完整性是指接收到的数据与由正确来源生成的数据的一致性。
3.可认证性
可认证性是具有身份特征或者消息实体的代表的属性。Alice和Bob能够互相验证对方的身份是真实的,而不是假冒的,此为实体认证(Entity Authentication)。Alice和Bob能够互相验证消息的来源和消息的完整性,即验证消息是否来自对方所声称的实体,验证消息在传送过程中是否被篡改、重放或者延迟等,此为消息认证(Message Authentication)。
4.不可否认性
不可否认性是同意负责任的属性,更确切地说,此责任是无法反驳的应尽责任。例如,你在一份具有法律效力的合同书上签了字,事后你不能否认曾经同意了合同书中的条款。Alice向Bob发送了一条消息,Alice不能事后否认曾经向Bob发送了这条消息,同样,Bob也不能事后否认曾经接收到了Alice发来的这条消息。不可否认性用于保证参与交互的实体对他们行为的诚实。
密码学能够为上述信息安全服务提供基本保障,同时还能够提供其他更多的安全服务,如数字签名、身份认证、访问控制等。