目录
[1.1 密码系统(Cryptosystem)](#1.1 密码系统(Cryptosystem))
[1.2 密码编码学](#1.2 密码编码学)
[1.3 密码分析学](#1.3 密码分析学)
[1.4 基于算法保密](#1.4 基于算法保密)
[1.5 基于密钥保密](#1.5 基于密钥保密)
[1.7 单钥体制](#1.7 单钥体制)
[1.8 双钥体制](#1.8 双钥体制)
1.1 密码系统(Cryptosystem)
也称为密码体制 ,主要包括以下几个基本要素:明文,密文,加密算法,解密算法和密钥。用数学符号描述为:S = {M, C, K, E, D}
- M明文:发送方即将要发送的消息。
- C密文:明文经过密码变换后的消息。
- E加密:由明文变换为密文的过程。
- D解密:由密文恢复出原明文的过程。
- K密钥/或密钥空间:是一种特定的值,能使密码算法按照指定的方式进行,并产生相应的密文,密钥是密码体制安全保密的关键。
- 加密算法:对明文进行加密时所采用的一组规则。
- 解密算法:对密文进行解密时所采用的一组规则。

密码系统中的一些基本术语:
- 加密员(密码员):对明文进行加密操作的人员。
- 接收者:传送消息的预定对象。
- 截收者:在信息传输和处理系统中,通过搭线窃听、电磁窃听、声音窃听等方式来窃取机密信息。 加密密钥和解密密钥:加密算法和解密算法的操作通常都是在一组密钥控制下进行。
- 单钥密码体制(对称密码体制):传统密码体制所用的加密密钥和解密密钥相同,或实质上等同,即从一个易于得出另一个。如DES、ARS、RC4、
- 双钥密码体制(非对称密码体制):若是加密密钥和解密密钥不相同,即从一个难于推出另一个。
- 密码分析:截收者通过分析可能从截获的密文推断出原来的明文或密钥。
- 密码分析学:研究如何从密文推演出明文、密钥或解密算法的学问。
- 密码分析员:从事密码分析这一工作的人。
- 被动攻击:对一个保密通信系统采取截获密文进行分析的这类攻击。分为获取消息的内容和业务流分析。
- 主动攻击:非法入侵者、攻击者或黑客主动向系统窜扰,采用删除、增添、重放、伪造等窜改手段向系统注入假消息,达到利已害人的目的。主要有三类:中断、篡改、伪造。

密码学(cryptology):是一门关于发现、认识、掌握和利用密码内在规律的科学,由密码编码学(cryptography)和密码分析学(cryptanalysis) 组成。
1.2 密码编码学
- 定义 :密码编码学主要研究如何对信息进行编码 ,以实现信息的保密性、完整性、认证性和不可否认性等安全目标。它通过设计各种加密算法和密码体制,将明文信息转化为密文形式,使得只有合法的接收者能够在密钥的帮助下还原出原始明文。
- 具体内容
- 设计加密算法:运用数学原理和计算方法,构造出复杂的变换规则,将明文按照特定方式进行混淆和扩散,例如著名的 AES(高级加密标准)算法,通过字节替换、行移位、列混合和轮密钥加等操作,对明文进行多次变换,使其变成难以理解的密文。
- 密钥生成与管理:产生安全可靠的密钥,并确保密钥在生成、存储、分发和使用过程中的安全性和保密性。例如,使用密钥交换协议在不安全的网络环境中安全地共享密钥。
- 构建密码体制:将加密算法、密钥管理等要素有机结合,形成一个完整的密码系统,以满足不同应用场景的安全需求,如对称密码体制、非对称密码体制等。
1.3 密码分析学
- 定义 :密码分析学主要研究如何通过分析截获的密文、已知的加密算法以及可能获取的相关信息,来推断出原始明文、密钥或解密算法等。它是对密码体制进行安全性评估和攻击的学科。
- 具体内容
- 分析加密算法:研究加密算法的数学原理和逻辑结构,寻找其中可能存在的弱点和漏洞。例如,通过对 RSA 算法中模数分解的难度分析,来评估其安全性。
- 实施攻击方法:利用各种技术和手段对密文进行攻击,如穷举攻击、字典攻击、差分密码分析、线性密码分析等。例如,穷举攻击通过尝试所有可能的密钥来解密密文。
- 评估密码体制安全性:根据对加密算法的分析和攻击结果,对密码体制的安全性进行量化评估,确定其能够抵御何种类型和强度的攻击,以及在何种情况下可能被破解。
密码系统可以采用的两种安全策略:基于算法保密和基于密钥保密 。在实际应用中,基于密钥保密的方式使用得更为广泛。
1.4 基于算法保密
- 策略原理 :该策略主要依靠对加密算法本身进行保密来实现信息安全。即通过隐藏加密算法的具体细节、操作步骤以及数学原理等,使得未授权者难以知晓信息是如何被加密的,从而无法轻易破解密文。
- 优点:在一定程度上能提供安全保障,若算法保密工作做得好,外界难以通过分析算法来进行解密。在早期一些简单的密码系统中,这种方式较为常见,例如古代一些通过特定的字符替换或移位规则进行加密的方法,只要这些规则不被泄露,信息就具有一定的保密性。
- 缺点
- 难以实现绝对保密:随着技术的发展和人员的流动,算法的细节很可能会被泄露。而且,保密算法的相关人员一旦出现疏忽或被敌方策反,整个密码系统的安全性就会立刻崩溃。
- 算法的开发非常复杂:一旦算法泄密,重新开发需要一定的时间;
- 不便于标准化:由于每个用户单位必须有自己的加密算法,不可能采用统一的硬件和软件产品;
- 不便于质量控制:用户自己开发算法,需要好的密码专家,否则对安全性难于保障。
1.5 基于密钥保密
- 策略原理 :这种策略是将加密算法公开 ,但是通过使用密钥来对信息进行加密和解密。合法用户拥有正确的密钥就能顺利进行加解密操作,而没有密钥的攻击者即使知道加密算法,也难以从密文还原出明文。例如在现代的对称加密算法如 AES(高级加密标准)和非对称加密算法如 RSA 中,算法都是公开的,安全性主要依赖于密钥的保密性。
- 优点
- 安全性高且可验证:由于算法公开,能够接受全球范围内密码学专家的分析和检验,其安全性可以得到更可靠的评估。如果经过长时间的公开验证后没有发现重大安全漏洞,那么该算法在当前技术条件下是较为安全的。
- 便于密钥管理:可以通过专门的密钥管理系统来生成、分发、存储和更新密钥,相较于保密算法,密钥的管理更加集中和可控。而且可以根据不同的安全需求,灵活地更换密钥,而无需改变加密算法。
- 促进技术发展:公开的算法为密码学研究人员提供了研究和改进的基础,有利于推动密码技术的不断发展和创新。新的算法可以在已有的公开算法基础上进行优化和改进,提高加密效率和安全性。
- 缺点 :
- 对密钥的保密性要求极高。一旦密钥泄露,那么整个密码系统就会失去安全性,攻击者可以利用获取的密钥轻易解密所有使用该密钥加密的信息。因此,需要建立完善的密钥保护机制,防止密钥被窃取、篡改或泄露。
1.6密码系统的设计要求
- 系统即使达不到理论上不可破译,也应该是实际上不可破译的(也就是说,从截获的密文或某些已知的明文和密文对,要决定密钥或任意明文在计算上是不可行的);
- 加密算法和解密算法适用于所有密钥空间的元素;
- 系统便于实现和使用方便;
- 系统的保密性不依赖于对加密体制或算法的保密,而依赖于密钥(著名的Kerckhoff原则,现代密码学的一个基本原则)。
密码体制从原理上分为两类:
- 单钥密码体制(One-key System)或对称密码体制(Symmetric Cryptosystem)
- 双钥密码体制(Two-Key System)或公开密码体制(Public Key Cryptosystem)
1.7 单钥体制
对称密码体制(symmetric cryptosystem)的加密密钥和解密密钥相同 ,也叫单钥密码体制或者秘密密码体制。
- 单钥体制的加密密钥和解密密钥相同。
- 单钥体制有很高的保密性,很强的安全性,根据这种特性,单钥加解密算法可通过低费用的芯片来实现。
- 单钥体制不仅可用于数据加密,也用于消息的认证。
单钥体制对明文消息的加密有两种方式:
- 流密码( 或序列密码, Stream Cipher**)** :对明文消息按字符(如二元数字)逐位地进行加密。
- 分组密码( Block Cipher**)** :将明文消息分组(含有多个字符),逐组地进行加密。
下面为对称密码体制的基本流程,发送者需要发送明文消息m,发送前在加密器中使用密钥K将明文加密,得到密文c;接受者受到密文c后在解密器使用密钥K解密得到明文消息m。
1.8 双钥体制
双钥体制又称作公钥体制。采用双钥体制的每个用户都有一对选定的密钥:一个是可以公开的,可以像电话号码一样进行注册公布;另一个则是秘密的。
公钥密码中,加密密钥一般是公开的,因此被称为公开密钥(public key) ,简称公钥 。相对地,解密密钥是绝对不能公开的,不可以将它发送给别人(通信对象也不可以),只能由自己使用,因此被称为秘密密钥(private key) ,简称私钥 。因此公钥密码体制也叫做双钥密码体制。公钥和私钥是一一对应的 ,一对公钥和私钥统称为密钥对(key pair)。公钥和私钥是不能分别单独生成的,成对存在。
双钥密码体制的特点:将加密和解密能力分开
- 可以实现多个用户加密的消息只能由一个用户解读,可用于公共网络中实现保密通信。
- 由一个用户加密的消息而使多个用户可以解读,可用于实现对用户的认证。
密钥管理
- 主要包括密钥产生、分配、存储、销毁等问题。
- 密钥管理是影响系统安全的关键因素,即使密码算法再好,若密钥管理问题处理不好,就很难保证系统的安全保密。
下面是公钥密码体制的基本流程:
- **密钥生成:用户首先生成一对密钥,一个是公钥K1,一个是私钥K2。**这对密钥在数学上是相关的,但从公钥很难推导出私钥。例如,RSA 算法中,通过选择两个大素数相乘等一系列操作生成公钥和私钥。
- 加密过程:当发送方要向接收方发送明文信息m时,发送方使用接收方的公钥K1对明文进行加密得到密文C。由于公钥是公开的,所以任何人都可以获取接收方的公钥来加密信息。加密后的信息称为密文,这个过程是基于公钥和特定的加密算法实现的。
- 解密过程: 接收方收到密文C后,使用自己的私钥K2对密文进行解密,从而得到原始的明文信息m。只有拥有正确私钥的接收方才能完成解密操作,因为私钥是保密的,所以保证了信息的安全性。
