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

第一节
密码学原理

在确保网络系统安全方面,虽然法律具有不可或缺的作用,但仅依赖法律这一单一的手段并不足以杜绝恶意黑客对网络数据造成的各种威胁。为了增强网络系统的安全性,除了法律的框架,必须同时加强行政管理、人事管理等内部管理措施,并结合物理保护手段等防护措施。然而,这些方法在实际应用中常常受到诸多因素的制约,如环境条件、资金投入、技术发展及系统操作人员的专业水平等。虽然采取访问控制策略和加强系统软件及硬件保护是相对简便且有效的安全防范方式,但其面临着一些技术上的难题,因此可能无法完全解决所有的安全隐患。

相比之下,加密技术在确保网络数据的安全性方面显示出了巨大的优势。无论是在数据的存储还是传输过程中,使用加密技术都能够有效防止敏感信息被恶意恶意黑客窃取。数据加密不仅是保护系统信息安全的一项必备手段,也是一个既实用又经济的解决方案,尤其适用于防止信息泄露及确保只有授权用户能够访问数据。

本节将重点介绍密码技术的基本原理及其在网络安全中的应用。

作为一门研究密码及其运用的学科,密码学涉及对信息进行加密和解密的技术与方法。尽管密码学是在近代得以快速发展的,但人们对密码的应用历史悠久,其在军事、外交和情报领域中早已得到广泛运用,只是其自带的神秘性质使外界对这一学科知之甚少。

一、密码学的基本概念

(一)密码学的发展

密码学是一门历史悠久的学科,早在四千多年前,古埃及就已经开始应用密码了。棋盘密码作为当时的加密手段,其诞生标志着密码学的初步发展。随后,在两千多年前的罗马帝国,凯撒密码出现并成为流行的加密体系。然而,密码学的真正飞速发展和被广泛应用源于现代计算机技术的普及,在计算机技术的推动下,密码学得到了前所未有的发展。

从历史角度来看,密码学的发展可以分为以下几个重要阶段。

1.传统密码学阶段(1949年之前)

在这个时期,密码学尚未形成一门独立的学科,其表现为一些简单的字符加密方法,加密和解密的操作主要依赖人工或机械装置,且技术相对原始。在这一阶段,密码学仅作为辅助的信息保护手段之一来发挥作用。

2.计算机密码学阶段(1949—1975)

计算机的发明与应用使得密码学进入了一个崭新的时代。密码学从此成为一门独立的学科,研究者们开始借助计算机进行更复杂的加密运算。在这一阶段,尽管有了计算机的帮助,但密码学的核心理论仍主要基于传统加密算法,其研究重点从算法本身转向了如何有效保护密钥的安全性。

3.现代密码学阶段(1975年至今)

进入现代密码学阶段后,密码学的理论和应用得到了迅猛发展。公钥密码学的提出彻底改变了信息加密的方式。在这一阶段,重要的里程碑事件包括以下几项。

1976年,Whitfield Diffie和Martin Hellman提出了公钥密码的概念,为后来的密码技术奠定了基础。

1977年,RSA公钥算法被提出,该算法成为公钥密码学的经典之一;同年,NBS(National Bureau of Standards,美国国家标准局)[现更名为 NIST(National Institute of Standards and Technology,美国国家标准与技术研究院)]发布了DES(Data Encryption Standard,数据加密标准),其在之后的很长一段时间内成为对称密钥加密的标准。

20世纪90年代,椭圆曲线密码算法、Rijndael、RC6等新的加密算法被相继提出,推动了对称加密算法的进一步完善。

2001年,NIST发布了AES,该标准取代了DES,至今依然是全球广泛采用的对称密钥加密标准。

随着计算机网络的迅猛发展,密码学的应用逐渐渗透到各行各业,数字签名、身份验证等新技术层出不穷,它们是密码学在实际应用中的延伸,且进一步提升了网络系统的安全性。

(二)密码学的相关概念

密码学可划分为密码编码学和密码分析学两大领域。密码编码学主要研究如何通过密码变化的规律来编制密码,从而保障信息的隐私性,它利用编码技术将信息转化为一种形式,确保除授权接收者外,任何人都无法理解这些信息的内容。密码分析学则主要研究如何分析、破解密码,并恢复被隐藏的信息,它的目标是通过解密和分析密码来获取加密信息。因此,密码编码学和密码分析学是相辅相成的,二者在共同保障信息安全的同时,也存在对立的一面,即密码编码学负责信息加密,密码分析学负责信息解密。

在网络系统中,密码技术用于加密信息,即使信息在存储或传输过程中遭遇截获或盗取,非法获得者也无法解读它们。加密后的信息以密文的形式存在,密文通过其不可读性来保证网络数据的安全。

明文是指未经加密的原始数据或信息,在网络通信中通常被称为报文。这些信息可能是待发送的电文、程序代码等。密文是指通过加密过程转换后的信息,且通常是人们难以理解的内容。加密是将明文转化为密文的过程,而解密是将密文恢复为明文的过程。

加密和解密是通过密码算法实现的。密码算法通常由一些数学函数或程序规则构成,其规定了从明文到密文的转化方式。加密时所使用的算法被称为加密算法,解密时所使用的算法被称为解密算法。

密钥是进行加密或解密时依赖的关键信息或工具。在加密过程中,使用加密密钥对明文进行变换;在解密过程中,使用解密密钥将密文还原为明文。整个加密过程将密钥与算法相结合,从而确保信息在网络中传输的安全性。

使用密码算法和密钥的加密和解密过程如图2-1所示。其中, P 为明文, C 为密文, E 为加密操作, D 为解密操作, K e 为加密密钥, K d 为解密密钥。

图2-1 加密和解密过程

密码系统的基本构成包括密码算法、明文、密文和密钥,通过它们的协同工作,以及加密操作和解密操作,我们可以保障信息的安全性。根据密码算法的破解难度不同,密码系统的安全等级也不同。如果破解密码所需的成本和时间超出了加密数据的价值或保密期限,或者破解密码所需的数据量远大于实际加密的数据量,那么该密码算法是安全的。

密码算法本身是可以被公开和分析的。事实上,许多加密系统的安全性并不依赖于算法本身,而是依赖于密钥的保密性。换句话说,只要恶意黑客无法获得密钥,那么即便其知道了加密的算法和原理,密码依然无法被破解。

在图2-1中,加密算法实际上是要完成函数 C = f P K e )的运算。对于一个确定的加密密钥 K e ,加密过程可看作只有一个自变量的函数,记作 E k ,该过程称为加密变换。因此加密过程也可记为 C = E k P ),即加密变换作用到明文 P 后得到密文 C 。同样,解密算法完成函数 P = g K d C )的运算,对于一个确定的解密密钥 K d 来说,解密过程(又称解密变换)可记为

P = D k ( C ) D k

D k 作用于密文 C 后得到明文 P

由此可见,密文 C 经解密后要想还原成原来的明文 P ,则必须有

P = D k ( E k ( P ))= D k · E k ( P )

此处的“·”代表复合运算,且应要求

D k · E k = I

上式中, I 为恒等变换,表明 D k E k 是互逆变换。

(三)密码的分类

密码可按照以下几种分类方式进行划分。

首先,根据密码的历史发展阶段和技术应用,可将其分为手工密码、机械密码、电子机内乱密码和计算机密码。手工密码依赖人工或简单工具进行加密和解密,属于最早期的加密方式;机械密码使用机械或电动设备完成这些操作;电子机内乱密码通过电子设备和电路,采用复杂的算法实现加密和解密;计算机密码利用计算机程序进行高效、复杂的加密和解密运算。

其次,根据密码转换操作的类型,可将其分为替代密码和移位密码。替代密码通过将明文中的字符替换为其他字符来生成密文;移位密码通过将明文中的字符按照一定的规则移位来生成密文。在实际应用中,许多密码算法会将这两种方法结合使用,以增强加密效果。

再次,根据加密时明文的处理方式,可将密码分为分组密码和序列密码。分组密码的加密过程将明文分为固定长度的分组,每一组都通过相同的密钥和算法进行加密,该方法具有较强的扩散性,但解密速度较慢;序列密码采用异或运算,将密钥与明文结合,从而生成密文,该方法不仅加密和解密的速度较快,而且能提供更高的安全性,尤其适用于密钥序列完全随机的情况。

最后,根据密钥类型,可将密码分为对称密钥密码和非对称密钥密码。对称密钥密码在加密和解密时,使用的是相同或相似的密钥,且该密钥需要严格保密;非对称密钥密码使用的是两个不同的密钥,一个公开,另一个保密。非对称密钥密码具有更高的安全性,通常用于数字签名和加密通信。

(四)典型密码介绍

历史中存在一些经典的加密方法,它们通过不同的规则和技巧来确保信息的安全,下面举例进行介绍。

莫尔斯电码是人们最早使用的编码方式之一,它通过一系列时通时断的信号及其中间的停顿来表示不同的字母、数字和标点符号。最初,莫尔斯电码仅通过数字来表示单词,解码时需要查阅特定的代码表,以对照每个数字并找出其对应的词汇。

四方密码是一种对称式的加密方法,由法国人Felix Delastelle发明。它通过将字母两两分组,并用多字母替换的方法进行加密。这种方法增加了加密的复杂性,提高了信息的安全性。

希尔密码由Lester S.Hill于1929年提出,其采用基本矩阵的原理进行加密,即通过矩阵运算,将明文转换为密文。在希尔密码中,相同的明文可以生成不同的密文,因此,它比传统的移位密码或仿射密码更加安全。此外,希尔密码的算法既简洁又高效,适用于所有 ASCII字符的加密和解密。

波雷费密码是一种对称式加密方法,它采用双字母替代的方法,将明文中的字母对进行替代,从而生成密文,这也是最早出现的双字母替代方法之一。

仿射密码是一种简单的替换密码,其将每个明文字母通过某种规则对应为另一个字母。由于该密码的加密算法简单,且未有效隐藏字母的频率信息,因此其安全性较低,容易被密码分析方法破解,如今不再被广泛使用。

二、传统密码技术

传统密码技术通常是指人们在计算机出现之前使用的加密方法,是专门用于保护文字信息的加密技术。在计算机普及之前,密码学主要利用字符之间的互换或位移,以及简单的字符替代或排列等方式实现对文字信息的加密。

随着计算机技术的发展,现代密码学逐渐变得复杂,这是因为计算机能够进行更高速的运算处理。然而,密码学的核心原理并没有改变,只是密码算法的运算对象从字母转变为比特。这一变化将原本由26个字母构成的字母表,转化为仅包含两个二进制元素的组合。当前,很多优秀的密码算法依旧基于替代和换位的基本加密方式,只是其现在是基于比特级操作进行的。

传统加密方法通常处理的是文字信息,这些文字由字母组成,字母按顺序排列在字母表中。在这种情况下,每个字母可被赋予一个数字标号,从而使其通过数学方法进行变换。如果将字母表视作一个环状结构,那么字母之间的加减运算可以通过求模运算来表示。例如,在字母表中,字母A加4会得到字母E,字母X加6会得到字母D。这种简单的数学处理方式构成了传统密码技术的基础。

(一)替代密码

替代变换是古典密码学中最基础且常见的加密方法之一,其工作原理是先构建一个替换表,并通过该表,将明文字符逐个替换为密文字符,这样,经过替代后的明文就变成了没有意义的密文。替代密码的密钥就是这个替换表,它决定了明文字符与密文字符之间的映射关系。

根据加密过程中使用的替换表的数量,替代密码可以分为单表替代密码和多表替代密码。单表替代密码使用一个固定的替换表,而多表替代密码使用多个替换表。

1)单表替代密码

在单表替代密码中,明文中的每一个字母都会被映射到密文字母表中的一个固定字母上。加密过程就是将明文字母按照这个映射表逐个替换为密文字母,而解密过程是将密文字母按照相反的映射逐个还原回明文字母。这种密码可进一步分为以下几类。

(1)一般单表替代密码:使用一个固定的替换表进行加密。

(2)仿射密码:结合了数学运算的替换方法,不仅对字母进行替换,还涉及数学上的加法或乘法。

(3)密钥短语密码:通过特定的密钥短语生成替换表,从而对字母进行替换。

2)多表替代密码

与单表替代密码不同,多表替代密码采用了多个替换表来增加加密过程的复杂性,从而提高密码的安全性。下面介绍两种著名的多表替代密码。

(1)弗吉尼亚密码:与移位密码类似,但其密码密钥是周期性变化的,替换表会随着加密过程动态变化,这使得其比单一的移位密码更加安全。

(2)希尔密码:一种线性变换密码,通过矩阵运算将多个明文字母一起加密。加密时, n 个明文字母通过矩阵变换被转化为 n 个密文字母;解密时,使用逆矩阵恢复原文。

(二)移位密码

移位密码是一种简单、有效的加密技术,其基本原理是改变明文中字母的顺序,而不修改字母本身。在移位密码中,明文中的字母保持不变,但它们在加密过程中会被重新排序,从而打乱原文的结构。其常见的实现方式是将明文以固定宽度水平排列在纸上,然后垂直读取这些字母,以形成密文。解密过程则是将密文以相同宽度垂直排列在纸上,然后水平读取这些字母,即可得到明文。

(三)一次一密钥密码

一次一密钥密码(又称一次性密码或Vernam密码)是理想的加密方式之一,它的关键特性是每次加密都使用一个全新的、随机生成的密钥。每个密钥仅被使用一次,加密后即被销毁,因此每次加密都有不同的密钥,避免了密钥重复。一次一密钥密码的密钥本就像一本日历,包含多个随机生成的密钥,每使用一个密钥进行加密后,发送者就会销毁该密钥,接收者则使用相同的密钥本解密信息。在加密过程中,明文字母和密钥字母会进行模加法运算,从而生成密文。接收者使用相同的密钥本,通过相同的运算还原出明文。

一次一密钥密码的安全性依赖于密钥的随机性,随机密钥确保了加密的高度安全性。每个密钥都是随机产生的,并且仅被使用一次,因此无法通过任何密码分析手段破解密文。但要注意的是,该方法存在的唯一威胁是密钥本的泄露,一旦恶意黑客获得了密钥本,系统的安全性便会受到影响。

三、密码技术的应用

密码技术主要用于更好地解决数据的机密性和完整性保护问题。

(一)保护数据的机密性

我们将数据加密后,只有手中有解密密钥的人才能将其还原,因此实现了数据的机密性保护。在这里,我们要强调一下,密码技术保护的是数据本身,而不是容器。而访问控制技术是通过对容器进行保护来保护数据的,其保护的并不是数据本身。从这个意义上说,密码技术的保护可靠性更高。

(二)保护数据的完整性

下面详细介绍密码技术在保护数据完整性方面的应用。图2-2所示为数据完整性检验原理。

图2-2 数据完整性检验原理

在甲乙双方的通信中,甲方用一个信道传输数据,用另一个信道传输数据的概要码(当然,在传输前,甲方要利用单向函数对数据进行运算,以得到概要码)。

乙方收到数据后,先用与甲方完全相同的单向函数算法对接收到的数据进行运算,得到概要码。再将这个概要码与从另一个信道中收到的甲方传递过来的概要码进行比对。如果两个概要码完全一致,那么表明这个数据是完整的,否则表明概要码出现了问题或原数据出现了问题,即数据的完整性被破坏了。

与其说密码技术是对数据完整性进行保护,不如说它是对完整性进行验证。真正能保护数据完整性的是前向纠错和反馈重传,因为这些技术不属于密码技术,故此处不进行讨论。

任何技术都不是万能的,对数据进行加密对保护其机密性来说是非常有效的,但是对保护其完整性来说是无用的,这是因为,若对一个已经加密的数据进行加密,那么其完整性也会被破坏。例如,2017年出现的某勒索病毒可对已经加密的数据再加密,使被入侵方因没有第二次加密的密钥,而只能看着一堆乱码无可奈何。 CPEnaEs3CLviW8Z2wPCKomoTeG6UNPllSW5nDjA0eZu8v2Ga4D8cQcVHtfJpevUm

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