1.1密码学的基本概念
1、什么是密码学
密码学是保密学的一部分。保密学是研究密码系统或通信安全的科学,它实际上包含两个分支——密码学和密码分析学。密码学是对信息进行编码实现隐蔽信息的一门科学;而密码分析学是研究分析如何破解密码的学问。两者相互独立,又相互促进,正如病毒技术和反病毒技术一样。
采用密码技术可以隐藏和保护需要保密的信息,使未经授权者不能提取信息。需要隐藏的消息称为“明文”;明文被变换成的另一种隐蔽的形式就是“密文”。这种变换称为“加密”;加密的逆过程,即从密文恢复出对应的明文的过程称为“解密”。对明文进行加密时采用的一组规则(函数)称为“加密算法”。对密文解密时使用的算法称为“解密算法”。一般地,加密算法和解密算法都是在一组密钥控制之下进行的,加密时使用的密钥称之为“加密密钥”,解密时使用的密钥称之为“解密密钥”。
2、密码系统的分类
密码系统通常从3个独立的方面进行分类:
(1)按将明文转换成密文的操作类型可以分为:置换密码和易位密码。
所有加密算法都是建立在两个通用的原则上的:置换和易位。置换是指将明文的每一个元素(比特、字母、比特或字母的组合)映射成其他的元素。如最古老的一种置换密码是由Julius Caesar发明的凯撒密码,这种密码算法是将明文中的每一个字母都用该字母后的第n个字母代替,其中n就是密钥。显然这种密码体制中的密钥空间只有26个密钥,只要知道用的是凯撒密码,破译者只需尝试25次,就可以知道正确的密码了。
易位是对明文的元素进行重新布置,但并不隐藏它们,即明文中的所有字母都可以从密文中找到,只是位置不一样。列易位密码是一种常用的易位密码。
大多数实用的密码算法都是用了多级置换及易位。无论如何进行置换和易位,总之,没有信息丢失是最基本的要求,也就是说,所有的操作都应该是可逆的。
(2)按照明文的处理方式可分为:分组密码和序列密码。
分组密码又称为“块密码(block cipher)”,它每次处理一块输入元素,每个输入块生成一个输出块。序列密码又称为“流密码(stream cipher),它对输入元素进行连续处理,每次生成一个输出块。
(3)按密码体制中密钥使用的个数可以分为:对称密码体制和非对称密码体制。
如果加密操作和解密操作采用的是相同的密钥,或者从一个密钥易于得出另一个密钥,这样的系统就叫做“对称密码系统”,也称为“密钥密码体制”。如果加密使用的密钥和解密使用的密钥不相同,且从一个密钥难以推出另一个密钥,这样的密码系统称为“非对称密码系统”,也称为“公钥密码体制”。
3、未来的密码——量子密码
随着物理学和信息科学的发展与交融,研究人员发现:以微观粒子作为信息的载体,利用量子技术,可以解决许多传统信息论无法处理或是难以处理的问题。“量子密码”的概念就是在这种背景下提出的。
当前,量子密码研究的核心内容,就是如何利用量子技术在量子信道上安全可靠地分配密钥。在信息保密中,密钥的地位是举足轻重的。但是,如何安全可靠、迅速高效地分配密钥,一直是密码学领域的一大难题。与传统密码学不同,量子密码学利用物理学原理保护信息。
通常把以量子为信息载体,经由量子信道传送,在合法用户之间建立共享的密钥的方法,称为量子密钥分配(QKD),其安全性由“海森堡测不准原理”及“单量子不可复制定理”保证。“海森堡测不准原理”是量子力学的基本原理,它表明,在同一时刻以相同的精度测定量子的位置与动量是不可能的,只能精确测定两者之一。“单量子不可复制定理”是“海森堡测不准原理”的推论,它表明,在不知道量子状态的情况下复制单个量子是不可能的,因为要复制单个量子就只能先作测量,而测量必然改变量子的状态,所以说不可能。量子的上述特性可以用来解决密钥的分配问题,从而突破传统信息论的束缚,设计出无条件安全的密码。
1.2 密码体制及其安全性
1.密码体制与密码函数