作者:丿虚伪丿 | 来源:互联网 | 2023-09-14 14:38
信息保密技术是利用数学或物理手段,对信息的传输和存储进行保护以防止泄露的技术,主要包括信息加密技术和信息隐藏技术。
密码学的发展历程:
手工加密阶段 机械加密阶段 计算机加密阶段 密码学中的基本术语:
明文(plaintext/message):指待加密的信息,用P或M表示,可以是文本文件、图形、数字化存储的语音流或数字化视频图像的比特流等。
密文(cipertext) : 指明文经过加密处理后的形式,用C表示。
加密(encryption) : 指用某种方法伪装消息以隐藏它的内容的过程。
加密算法(encryption algorithm): 指将明文变换为密文的变换函数,通常用E表示。
解密(decryption) : 指把密文转换为明文的过程。
解密算法(decryption algorithm): 指将明文变换为密文的变换函数,通常用E表示。
密钥(key) :变换函数所用的一个控制参数。加密解密算法操作通常是在一组密钥控制下进行的,分别称为加密密钥和解密密钥,通常用K表示。
密码分析(cryptanalysis):指截获密文者试图通过分析截获的密文从而推断出原来的明文或密钥的过程。
被动攻击(passive attack):指对一个保密系统采取截获密文并对其进行分析和攻击。这种攻击对密文没有破坏作用。
主动攻击(active attack):指攻击者非法入侵一个密码系统,采用伪造、修改、删除等手段向系统注入假消息进行欺骗。这种攻击对密文具有破坏作用。
密码系统(cryptosystem):指用于加密和解密的系统。
密码体制:密码系统采用的基本工作方式称为密码体制。要素是密码算法和密钥。
柯克霍夫(Kerckhoffs)原则:
密码系统的安全性取决于密钥,而不是密码算法,即密码算法要公开。柯克霍夫原则是荷兰密码学家Kerckhoffs于1883年在名著《军事密码学》中提出的基本假设。遵循这个假设的好处是,它是评估算法安全性唯一可用的方式。因为如果密码算法保密,密码算法的安全强度就无法进行评估;防止算法设计者在算法中隐藏后门。因为算法被公开后,密码学家可以研究、分析其是否存在漏洞,同时也接受攻击者的检验,有助于推广使用。当前网络应用十分普及,密码算法的应用不再局限于传统的军事领域,只有公开使用,密码算法才可能被大多数人接受并使用。同时,对用户而言,只需掌握密钥就可以使用了,非常方便。 古典密码体制 古典密码时期一般认为是从古代到19世纪末,这个时期生产力水平低,加密、解密方法主要以纸、笔或简单的器械来实现,在这个时期提出和使用的密码称为古典密码。古典密码是密码学发展的初级阶段。尽管古典密码大都较简单,但由于其安全性差,目前应用很少。研究古典密码的原理,有助于理解、构造和分析近代密码。替代( substitution)和置换(permutation)是古典密码中用到的两种基本处理技巧,它们在现代密码学中也得到了广泛使用。
1. 替代密码:
替代密码(substitution cipher)是明文中的每-一个字符被替换成密文中的另一个字符。接收者对密文做反向替换就可以恢复出明文。古典密码学中采用替代运算的典型密码算法有单表密码、多表密码等。
(1)单表密码
单表密码全称为单表替代密码。单表替代密码是对明文中的所有字母都使用同一个映射,即 Vp∈P, 有Ek:P→C, Ex(p)=c. 为了保证加密的可逆性,一般要求映射E是一一映射。 单表替代密码最典型的例子就是著名的恺撒密码,一般意义上的单表替代也称移位密码、乘法密码、仿射密码、使用密钥词(组)的单表替代和随机替代等。 凯撒密码: 使用秘钥词(组)替代:
(2)多表密码
单表替代密码的明文中单字母出现频率分布与密文中的相同,为了克服这个缺点,多表替代密码使用从明文字母到密文字母的多个映射来隐藏单字母出现的频率分布,其中每个映射是简单替代密码中的一对一映射(即处理明文消息时使用不同的单字母替代)。多表替代密码将明文字符划分为长度相同的消息单元,称为明文组,对不同明文组进行不同的替代,即使用了多张单字母替代表,从而使同一个字符对应不同的密文,改变了单表代替中密文与明文字的唯一对应性,使密码分析更加困难。多字母代替的优点是很容易将字母的自然频度隐蔽或均匀化,从而可以抗击统计概率分析。Playfair 密码、Vigenere密码、Hill密码都是这一类型的密码。 Playfair密码:
Playfair 密码出现于1854年,它将明文中的双字母组合作为一个单元对待,并将这些单元转换为密文双字母组合。Playfair密码基于一个5X5字母矩阵,该矩阵使用一个关键词(密钥)来构造,其构造方法是:从左至右、从上至下依次填人关键词的字母(去除重复的字母),然后再以字母表顺序依次填入其他字母。字母I和J被算为一个字母(即J被当作I处理)。 对每一对明文字母p、p2的加密方法如下。
若p办2在同一行,则对应的密文C和C2分别是紧靠p加2右端的字母。其中第一列被看作是最后一列的右方(解密时反向)。 若pr、pz在同一列,则对应的密文C和C2分别是紧靠p、p:下方的字母。其中第一行被看作是最后一行的下方(解密时反向)。 若p、P2不在同一行,也不在同一列,则C;和C2是由p和pr确定的矩形的其他两角的字母,并且C和pi、C2和p2同行(解密时处理方法相同)。 若p1=pz,则在重复字母之间插人一个字母(如Q,需要事先约定),并用前述方法处理。 若明文字母数为奇数,则在明文的末端添加某个事先约定的字母作为填充。
Vigenere密码:
Vigenere 密码是16世纪法国著名密码学家Blaise deVigenere于1568年发明的,它是最著名的多表替代密码的例子。Vigenere密码使用一个词组作为密钥,密钥中每一个字母用来确定一个替代表,每一个密钥字母被用来加密一个明文字母,第一个密钥字母加密明文的第一个字母,第二个密钥字母加密明文的第二个字母,等所有密钥字母使用完后,密钥又再循环使用。 为了帮助理解该算法,需要构建一个表,如图3-3所示,26个密文都是水平排列的,最左边一列为密钥字母,最上面一行为明文字母。
加密过程:
给定一个密钥字母k和一个明文字母p,密文字母就是位于k所在行与p所在列交叉点上的那个字母。 解密过程:
由密钥字母决定行,在该行中找到密文字母,密文字母所在列的列首对应的明文字母就是相应的明文。 Hill密码:
Hill 密码是由数学家Lester Hill于1929年研制的,它也是一种多表密码,实际上它是仿射密码技术的特例。其基本加密思想将n个明文字母通过线性变换,将它们转换为n个密文字母。解密只需做一次逆变换即可。 2. 置换密码
置换密码( permutation cipher) 加密过程中明文的字母保持相同,但顺序被打乱了,又被称为换位密码。在这里介绍一种较常见的置换处理方法:将明文按行写在一张格纸上,然后再按列的方式读出结果,即为密文;为了增加变换的复杂性,可以设定读出列的不同次序(该次序即为算法的密钥)。
信息安全与技术(第二版)