0
点赞
收藏
分享

微信扫一扫

PDF Expert for mac(专业pdf编辑器)苹果电脑

其生 2023-11-13 阅读 47

密码学发展史

写在最前面

请添加图片描述

参考:密码学发展简史

骆婷老师的《现代密码学(32H)》课程,笔记+查找的资料补充
期末为闭卷考试的形式

密码学概述

现代密码学

在密码学的发展史上,公钥密码被认为是一个重大的突破。公钥密码中加密和解密使用不同的密钥,其中,用于加密的叫做公钥,用于解密的为私钥。这种密码的安全性不是建立在秘密性上,而是基于相应数学问题在计算机上的难解性来保证。RSA算法是公钥加密算法中最为广泛应用的一种,它的安全性是建立在大整数素因子分解在计算机上的困难性上的。但随着计算能力的不断增强和因子分解算法的不断改进,特别是量子计算机的发展,公钥密码的安全性也渐渐受到威胁。

1977年,美国麻省理工学院提出第一个公钥加密算法RSA算法,之后ElGamal、椭圆曲线、双线性对等公钥密码相继被提出,密码学真正进入了一个新的发展时期。

一般来说,公钥密码的安全性由相应数学问题在计算机上的难解性来保证
以广为使用的 RSA算法为例,它的安全性是建立在大整数素因子分解在计算机上的困难性,如,对于整数22,我们易于发现它可以分解为2和11两个素数相乘,但对于一个500位的整数,即使采用相应算法,也要很长时间才能完成分解。

量子密码学

但随着计算能力的不断增强和因子分解算法的不断改进,特别是量子计算机的发展,公钥密码安全性也渐渐受到威胁。目前,研究者们开始关注量子密码、格密码等抗量子算法的密码,后量子密码等前沿密码技术逐步成为研究热点。

量子密码利用了量子力学中的不可克隆性原理保证消息的安全性,这种密码技术被认为是未来密码学发展的一个重要方向。量子密码术是一种新的重要加密方法,它利用单光子的量子性质,借助量子密钥分配协议可实现数据传输的可证性安全。量子密码具有无条件安全的特性(即不存在受拥有足够时间和计算机能力的窃听者攻击的危险),而在实际通信发生之前,不需要交换私钥。

基本术语

  1. 密码学 (Cryptography): 研究保护信息安全的一门学科,通过加密技术实现信息的保密、完整性和可靠性。

  2. 密码编码学 (Cryptology): 既包括密码学也包括密码分析学,是一门研究加密和解密的科学。

  3. 密码分析学 (Cryptanalysis): 研究破解密码和密码系统弱点的一门学科。

  4. 明文 (Plaintext): 未经加密的原始信息或数据。

  5. 密文 (Ciphertext): 经过加密处理的信息或数据。

  6. 密钥 (Key): 加密和解密的关键,是一组特定的参数或信息,使用正确的密钥才能获得正确的明文。

  7. 加密 (Encryption): 将明文转换为密文的过程。

  8. 解密 (Decryption): 将密文转换为明文的过程。

  9. 加密方案 (Encryption Scheme): 加密和解密的完整流程和方法,包括选择加密算法、密钥生成、加密过程、解密过程等。

密码分析,主要是秘钥的分析

  1. 分组密码(Block cipher):将明文按照一定长度(分组大小)进行分块,对每个分组进行加密,输出密文。

  2. 流密码(Stream cipher):将明文和密钥进行逐位异或(XOR)运算,逐位输出密文。

  3. 对称密码(Symmetric key cryptography):加密和解密使用相同的密钥。

  4. 非对称密码(Asymmetric key cryptography):加密和解密使用不同的密钥,包括公钥和私钥。

  5. Kerckhoffs假设(Kerckhoffs’ principle):密码系统的安全性不依赖于保密算法,而依赖于保密密钥。

在不同攻击能力的情况下,敌手获得信息的情况不一样

  1. 唯密文攻击(Ciphertext-only attack):攻击者只拥有密文,试图通过分析密文来破解加密算法或密钥。

  2. 选择明文攻击(Known-plaintext attack):攻击者拥有明文和密文对,并试图破解加密算法或密钥。

  1. 选择密文攻击(Chosen-ciphertext attack):攻击者可以选择一些密文并获得其对应的明文(有条件询问加密机的权限),然后观察输出结果,以此来推断密钥或加密算法。

加解密的通信模型

对称加密

使用同一个密钥,对数据镜像加密和解密,这种加密技术,称为对称加密。
在这里插入图片描述

对称加密常用算法:
DES,3DES,IDEA,AES

优点:
算法公开、计算量小、加密速度快、加密效率高

缺点:
不同通讯双方使用不同密钥,导致密钥过多,难以管理
通讯双方密钥交换,无法保证安全
无法验证发送者和接受者身份

PKI通信工作流程

从以上的介绍中可以看出,各种加密算法都有其特点和适用性:

使用非对称加密,发送者A使用私钥加密,接受者B能够验证数据的发送者A是谁,由于所有人都能使用发布者A公钥解密,这种方法只能适合发布公开的信息。
接受者B的公钥是公开的,用它加密数据后发给B,有可能被截获掉包。

非对称加密算法,加密速度很慢,强度高。对称加密算法,速度快,但是密钥交换是个问题。

单向加密不可逆,接收者无法还原到明文。

那么,就需要一种通信模型能够扬长避短,解决通信安全的问题,于是便有了下面的模型:PKI通信流程

以上的通信模型很好的解决了数据完整性、不可否认性,但这个模型的依赖的关键点是双方公钥。

这个模型中双方公钥来源无法验证,而且在通讯前,如何获得每个人的可信任的公钥也成了整个系统的关键。

因此,需要一套系统,能够解决以上存在的种种问题:身份认证、数据完整性、密钥交换、操作的不可否认性,它就是PKI。

古典密码与分析

古代密码的加密

古典密码的加密方式是使用某种规则将明文转化为密文,而解密就是将密文转化为明文。在这个过程中,密钥起到了重要的作用,密钥是一个参数,用于决定加密和解密的规则。

这一时期的密码学更像是一门艺术,其核心手段是代换和置换。代换是指明文中的每一个字符被替换成密文中的另一个字符,接收者对密文做反向替换便可恢复出明文;置换是密文和明文字母保持相同,但顺序被打乱。

古典密码的分析

古典密码的分析方法有很多种,其中比较常用的是频率分析和差分分析。

频率分析是指通过分析密码中出现频率最高的字母来推断密钥。在英语中,字母“e”出现的频率最高,所以攻击者可以通过分析密文中出现频率最高的字母来猜测密钥。

差分分析是指通过对明文和密文之间的差异进行分析来推断密钥。攻击者可以选择两个密文,并比较它们在明文中的差异,然后推测密钥。

安全服务

身份认证、传输加密、存储加密、应用程序保护

身份认证是安全服务的基础,它通过验证用户身份来保护系统和数据的安全。身份认证可以采用多种方式,如用户名密码、指纹识别等,其目的是确认用户的身份,确保只有授权用户才能访问敏感信息。

传输加密是通过使用加密技术来保护数据在传输过程中不被恶意攻击者窃取或篡改。加密技术可以采用公开密钥加密(PKI)、SSL/TLS等方式来保护敏感数据在传输过程中的安全。

存储加密是指采用加密技术来保护数据在存储时的安全。通过对存储数据进行加密,可以保护数据不被未授权访问或窃取,增强数据安全性。

应用程序保护是指在应用程序开发过程中,采用安全开发、代码审计等方法来保护应用程序的安全性。应用程序保护可以增强应用程序的鲁棒性和防御能力,有效预防各种漏洞和攻击。

香农理论

香农理论,又称信息论,是由美国数学家克劳德·香农于1948年发明的一种基于数学原理的理论体系。它主要研究如何量化信息的传输和处理,包括信息的压缩、传输、存储以及加密等方面。它的贡献在于提供了一套清晰的数学工具,用于衡量信息的容量、可靠性和传输速度等问题,从而为通信领域提供了强有力的支持和指导。

香农理论的核心概念是信息熵和信道容量
信息熵是指信息的不确定性程度,即信息中所包含的“信息量”。比如,如果一组信息有多种可能的取值,那么它的信息熵就比较高,因为我们无法确定具体的取值。
信道容量则是指在一定的信道条件下,信道可以传输的最大信息量。这两个概念被广泛应用于通信领域,例如在数据压缩、数据传输和信道编码等方面。

此外,香农理论还提出了一种被广泛应用的加密方法,即信息论加密。它利用信息熵的概念,将明文数据转化为一种无规律可循的密文数据,从而保证了信息的保密性和语义安全性。

现代密码学

乘积密码方案

乘积密码方案是一种经典的加密方法,其基本思想是将明文转化为数字序列,并在一定规则下进行乘法运算,得到密文。其加密过程简单、安全性高,曾经被广泛应用于电报通信和军事领域的加密。

具体的实现方法是,首先将明文进行编码,得到数字序列。然后选取两个长度相等的密钥,分别为公钥和私钥。公钥可以公开,而私钥只有接收方知道。接下来,将明文数字序列中的每个数字与公钥中的对应数字相乘,并取模得到密文数字序列。接收方可以使用私钥将密文数字序列进行解密,还原出明文。

例如,假设明文为“hello world”,
编码为数字序列为[8,5,12,12,15,0,23,15,18,12,4],
选取公钥为[2,3,5,7,11,13,17,19,23,29,31],
私钥为[59,61,67,71,73,79,83,89,97,101,103]。
则加密过程为:

[8,5,12,12,15,0,23,15,18,12,4] * [2,3,5,7,11,13,17,19,23,29,31] = [16,15,60,84,165,0,391,285,414,348,124]
[16,15,60,84,165,0,391,285,414,348,124] % [59,61,67,71,73,79,83,89,97,101,103] = [50,11,26,13,16,0,62,7,93,15,10]

解密过程为:

[50,11,26,13,16,0,62,7,93,15,10] * [59,61,67,71,73,79,83,89,97,101,103] = [2950,671,1734,923,1168,0,5146,623,9021,1515,1030]
[2950,671,1734,923,1168,0,5146,623,9021,1515,1030] % [2,3,5,7,11,13,17,19,23,29,31] = [8,5,12,12,15,0,23,15,18,12,4]

可以发现,加密后的密文数字序列与原始的明文数字序列没有任何关联,因此具有较高的安全性。

虽然乘积密码方案已经被现代密码学所取代,但其思想和基本原理依然具有参考价值,尤其是在一些传统的通信和加密场景中仍然得到了广泛应用。

代换-置换网络

代换-置换网络(Substitution-Permutation Network,SPN)是一种常用的对称密钥密码算法结构。它采用代换和置换两种基本操作,使得密文与明文之间的关系变得非常复杂,从而增强加密的安全性。

代换操作是指将明文某一部分替换成密文的另一部分,常见的代换操作包括置换、S盒代换等。例如,置换操作可以将明文中的某个比特位置与其他比特位置交换,S盒代换则是将一组输入映射到一组输出。在SPN中,代换操作通常是通过多个轮次的代换层实现的。

置换操作则是指通过重排明文的比特顺序来生成密文。置换操作可以增强加密算法的弥散性,使得每一位明文比特对最终密文的影响都非常均衡。在SPN中,置换操作通常是通过最终的置换层实现的。

安全性概念

可证明安全性——规约(*规约证明的方案——会考)

可证明安全性指的是一种安全证明,即证明一个密码协议在某些假设下是安全的。可证明安全性的证明不仅可以增加对加密算法的信任度,也可以帮助设计密码协议的人们更好地理解安全性考虑的所有细节,从而设计更加安全的协议。

密码学中的归约(Reducibility)是指将一个复杂问题转化为一个已知解法的问题。具体来说,它是一种证明方法,通过将一个待证明的问题转化为另一个已知解法的问题,来证明待证明问题的正确性。

这就是归约的基本过程,通过将一个问题转化为另一个已知解法的问题,来证明原问题的正确性。

加密方案的定义

在密码学中,加密方案的目标是将一个明文消息m加密为一个密文c,使得只有拥有相应密钥的人能够解密并获得原始的明文消息。为了实现这个目标,加密方案可以采用对称加密或公钥加密的方式。

对称加密方案的加密密钥和解密密钥是相同的,通常用一个变换函数E来表示,即

c = E k ( m ) c = E_k(m) c=Ek(m)

其中,k表示密钥,m表示明文消息,c表示密文。
基本思路是,用密钥k对明文m进行加密得到密文c,然后将密文c传输给接收者,接收者再使用密钥k进行解密得到明文m。

而在公钥加密方案中,加密密钥和解密密钥是不同的,通常用一个加密函数E和一个解密函数D来表示,即

c = E p k ( m ) ,   m = D s k ( c ) c = E_{pk}(m),\ m = D_{sk}(c) c=Epk(m), m=Dsk(c)

其中,pk表示公钥,sk表示私钥,m表示明文消息,c表示密文。
基本思路是,使用接收者的公钥pk对明文m进行加密得到密文c,然后将密文c传输给接收者,接收者再使用自己的私钥sk进行解密得到明文m。

完善保密性

完善保密性的方法主要包括密钥管理、密钥交换、随机数生成等。其中,密钥管理是指保证密钥的安全性,如生成、存储、更新和销毁密钥;密钥交换是指在不安全信道上安全地交换密钥,常用的方法包括Diffie-Hellman密钥交换、RSA密钥交换等;随机数生成是指生成高质量的随机数以保证加密算法的安全性。
P ( m ∣ c ) = P ( c ∣ m ) P ( m ) P ( c ) P(m|c) = \frac{P(c|m)P(m)}{P(c)} P(mc)=P(c)P(cm)P(m)

其中, P ( m ∣ c ) P(m|c) P(mc)为明文 m m m在得到密文 c c c的情况下的后验概率, P ( c ∣ m ) P(c|m) P(cm)为明文 m m m加密后得到密文 c c c的概率, P ( m ) P(m) P(m)为明文 m m m的先验概率,即 m m m出现的概率, P ( c ) P(c) P(c)为密文 c c c的先验概率,即 c c c出现的概率。

如果对于任意的 m m m c c c,都有 P ( m ∣ c ) = P ( m ) P(m|c) = P(m) P(mc)=P(m),则密码体制具有完善保密性。

实际应用中,常用的完善保密性的密码体制有一次性密码本(One-Time Pad)和矩阵加密(Matrix Encryption)等。这些密码体制的基本思想是利用随机性和密钥的唯一性来实现完善保密性。同时,在应用过程中,也需要确保密钥的安全性和随机性,以免被攻击者破解。

语义安全性

语义安全性是指对于任意两个不同的明文消息m和m’,加密后的密文c和c’几乎是相互独立的,即对于任意的攻击者攻击策略,攻击者无法在多项式时间内区分出密文c是由明文消息m加密得到还是由明文消息m’加密得到。常用的语义安全加密方案包括基于单向函数的加密方案和基于公钥密码的加密方案。

举报

相关推荐

0 条评论