1密码学(Cryptology)
密码编码学(Cryptography):专注于设计和实现有效的加密算法和安全协议,以保护信息。
密码分析学(Cryptanalysis):研究如何破解加密信息或伪造认证信息,评估加密系统的安全性,并帮助改进加密算法
2密码学的主要任务
机密性(Confidentiality):确保信息只能被授权的接收者访问和理解,对于非授权用户则是不可理解的。这一目标通常通过加密技术实现,将明文转换成密文,只有拥有正确密钥的接收者才能解密恢复原始信息。
完整性(Integrity):保证信息在存储或传输过程中未被未经授权地修改、删除或插入。密码学利用诸如消息认证码(MAC)、数字签名等技术来验证数据的完整性,使得接收者能够检测到任何对数据的非授权改动。
鉴别(Authentication):验证信息的来源和通信双方的身份,确保通信双方确实是他们所声称的实体。这包括用户身份鉴别和数据源鉴别,可通过密码技术如数字签名和鉴权协议来实现。
抗抵赖性(Non-repudiation):防止发送方在事后否认曾经发送过某条信息,同时也保护接收方不能否认已经接收到的信息。数字签名等机制是实现抗抵赖性的关键技术,因为它们提供了可验证且不可否认的发送证据。
:
密码编码学(Cryptography):专注于设计和实现有效的加密算法和安全协议,以保护信息。
密码分析学(Cryptanalysis):研究如何破解加密信息或伪造认证信息,评估加密系统的安全性,并帮助改进加密算法
3现代密码学的主要研究内容
4密码学的基本思想是伪装信息使未授权者不能理解.
明文(Plaintext/Message):这是用户希望保护的原始信息,可以是文本、图像、音频、视频等任何形式的数据,在未经过加密处理之前,其内容可以直接阅读和理解。
密文(Ciphertext):通过加密算法和密钥对明文进行处理后得到的数据形式。密文看起来应该是无意义的或难以理解的,除非拥有正确的解密密钥将其还原为明文。
密钥(Key):是密码系统中的核心元素,用于控制加密和解密过程。根据密钥类型的不同,可以分为对称密钥(加密和解密使用同一密钥)和非对称密钥(加密和解密使用不同密钥,常见于公钥加密体系)。
加密(Encrypt):这是一个将明文转换为密文的过程,目的是保护信息不被未授权的第三方获取或理解。加密过程依据特定的加密算法进行,并需要密钥作为输入之一。
加密算法:是一系列精心设计的数学运算规则,用于将明文数据变换为密文。这些算法的设计需确保加密过程高效且加密结果对于没有密钥的攻击者来说是不可预测和难于破解的。
解密(Decrypt):与加密相反的过程,使用解密算法和相应的密钥将密文转换回原始的、可理解的明文状态。
解密算法:与加密算法相对应,用于将密文逆向转换为明文的数学变换规则。解密算法必须与加密算法设计相匹配,以确保密文能准确无误地恢复为明文,同时保持高度的安全性。
5密码体制(Cryptosystem)是由以下五个基本组成部分构成
明文空间(M, Message Space):定义了所有可能的明文的集合。明文指的是用户想要保护并传输的信息原始形态,它可以是任何类型的数据。
密文空间(C, Ciphertext Space):指所有可能生成的密文的集合。密文是明文经过加密算法和密钥处理后得到的形式,对未经授权的观察者而言应表现为随机或无意义的。
密钥空间(K, Key Space):包含了所有合法密钥的集合。每个密钥都是用于控制加密和解密过程的参数。在对称密钥系统中,加密密钥(Ke)和解密密钥(Kd)相同;而在非对称密钥系统(如RSA)中,加密密钥(公钥)和解密密钥(私钥)不同,但相互关联。
加密算法(E, Encryption Algorithm):这是一套规则或程序,用于将明文空间中的消息转换为密文空间中的对应项。加密算法需要结合密钥来执行这一转换,确保只有拥有正确解密密钥的接收者能够恢复信息。
解密算法(D, Decryption Algorithm):与加密算法相对应,它定义了一套从密文恢复明文的规则。使用相应的解密密钥,解密算法能够将密文准确无误地转换回原始明文,从而实现信息的保密传输和存储。
5.1密码体制的简化模型
5.2密码体制的设计原则
安全性(Security):这是最基本也是最重要的原则。密码体制必须能够抵抗各种已知的攻击方法,包括但不限于暴力破解、统计分析、差分分析、线性分析等。即使攻击者拥有一定的计算资源和部分系统信息,也应难以破解密码。
不可逆性(Irreversibility):加密过程应该是不可逆的,意味着从密文直接推算出明文在计算上应是不可行的,除非拥有正确的解密密钥。
无密钥推导(Key Unrecoverability):即使知道一些密文和对应的明文,或者了解加密算法的细节,攻击者也应该无法推导出密钥。
确定性(Determinism):对于同一明文和相同的密钥,加密算法应始终产生相同的密文,这对于保证信息传递的一致性和可验证性是必要的。但在某些现代密码系统中,如使用随机初始化向量的模式,可以引入一定程度的非确定性以增加安全性。
计算效率(Computational Efficiency):密码算法应尽可能高效,以适应不同场景下的实时或批量数据处理需求,特别是在资源有限的设备上。
密钥管理(Key Management):有效的密钥生成、分配、存储、更新和销毁机制是密码体制安全性的关键。密钥应该足够长且随机,以抵御穷举攻击。
认证(Authentication):除了加密,密码体制还应提供数据源的认证,确保信息来自可信的发送方,防止篡改和冒充。
向前安全性(Forward Secrecy):一旦密钥被更换或废弃,之前使用该密钥加密的信息不应被后来获得密钥的攻击者解密,这通常通过会话密钥的即时生成和销毁来实现。
可证明安全性(Provable Security):理想情况下,密码体制应基于已知困难问题,其安全性可以通过数学证明来保证,而不是仅仅依赖于“看起来很难
5.3密码体制的分类
5.31按密钥类型分类:
对称密码体制(单钥体制):加密和解密使用相同的密钥。这类密码体制的优点是加解密速度快,密钥管理相对简单,但密钥的分发是个挑战。典型算法包括DES、3DES、AES、Blowfish等。
非对称密码体制(双钥体制或公钥体制):加密和解密使用两个不同的密钥,一个公钥用于加密,一个私钥用于解密。这种体制解决了密钥分发的问题,并提供了额外的安全服务,如数字签名和密钥交换。代表性的算法有RSA、ElGamal、ECC(椭圆曲线密码)等。
5.3.2按操作方式分类:
流密码:明文消息按字符或比特流逐位加密,生成相应的密文流。这类密码体制的典型例子是RC4。
分组密码:将明文消息分割成固定长度的块(分组),然后对每个分组独立加密。常见的有DES、AES等。
5.3.3按功能分类:
哈希函数(杂凑密码体制):也称为散列函数,用于生成消息的固定长度摘要,确保数据完整性,常用的如MD5、SHA系列。
5.3.4其他分类:
代数作业体制:基于代数运算设计的密码体制,如早期的多表代替、转轮密码等。序列密码与分组密码:序列密码是流密码的一种特例,而分组密码强调的是对固定长度数据块的操作。
混合密码体制:实际应用中,往往结合对称和非对称密码体制的优点,形成混合体制,例如,利用非对称加密来安全地分发对称密钥,然后使用对称加密进行快速的数据加密。
6 密码分析
惟密文攻击(Ciphertext-only attack):这是最严格的攻击类型,攻击者仅有的信息是密文,没有任何其他辅助信息。这种情况下,密码分析的难度最大。
已知明文攻击(Known-plaintext attack, KPA):攻击者知道一些明文与其对应的密文。这可以用来发现加密模式或密钥。
选择明文攻击(Chosen-plaintext attack, CPA):攻击者可以选择任意明文并观察其对应的密文。这种攻击模式下,密码分析者可以精心挑选明文以暴露加密系统的弱点。
选择密文攻击(Chosen-ciphertext attack, CCA):攻击者不仅可以选择密文进行解密,还可以观察解密后的结果。这是最强大的攻击类型之一,能揭示加密系统的很多潜在漏洞。
适应性选择密文攻击(Adaptive chosen-ciphertext attack, A-CCA):在该类型的攻击中,攻击者可以根据之前解密操作的结果动态地调整其选择的密文,进一步增加了攻击的威力