信安精品课-第3章密码学基本理论精讲笔记
第3章 密码学基本理论精讲笔记
一、本章知识框架
二、本章大纲要求
3.1 密码学概况
●密码学发展简况●密码学基本概念●密码安全性分析
3.2 密码体制分类
●私钥密码体制●公钥密码体制●混合密码体制
3.3 常用密码算法
●DES密码算法●IDEA密码算法●AES 密码算法●RSA 密码算法●·国产密码算法
3.4 Hash函数与数字签名
● Hash函数的工作原理●常见的Hash算法●数字签名的概念及作用●数字签名的工作原理●数字签名的相关算法
3.5 密码管理与数字证书
● 密码管理●数字证书
3.6 安全协议
● SSL ● SSH●Diffie-Hellman 密钥交换协议
3.7 密码学网络安全应用
●密码技术主要应用场景类型● 路由器安全应用●网站安全应用● 电子邮件安全应用
三、本章重要易考知识点清单
3.1 密码学概况
密码学是一门研究信息安全保护的科学,以实现信息的保密性、完整性、可用性及抗抵赖性。
密码学主要由密码编码和密码分析两个部分组成。其中,密码编码学研究信息的变换处理以实现信息的安全保护,而密码分析学则研究通过密文获取对应的明文信息。
早期的密码学主要用于军事和外交通信。
传统密码学中的技术主要是换位和置换,这种加密方式易遭到统计分析破译,
如字母的频率、字母的组合关系是分析传统密码的基本方法。
1949 年,香农发表了著名的论文《保密系统的通信理论》,提出交替使用换位和置换以抵御统汗分析,增加了混乱(Contusion)和扩散(Diftision)的密码技术新方法。
1976年,W.Diffie和M.E.Hellman发表了《密码学的新方向》一文,提出了公钥密码体制的思想,Diffie-Helman 算法、RSA算法的提出开辟了公钥密码学的新纪元。
美国政府正式发布了数据加密标准(DES),以提供给商业公司和非国防政府部门使用。
之后其他的公钥密码相关方案相继出现,如 Rabin 体制、EIGamal 公钥体制、椭圆曲线密码公钥体制以及基于代理编码理论的 MeEliece 体制和基于有限自动机理论的公钥密码体制等。
1984 年,针对传统公钥认证和证书管理的问题,Shamir 提出了基于身份的公钥密码系统的思想,简化了证书管理。在这种公钥密码体制的密钥生成过程中,公钥直接为实体的身份信息,例如唯一的身份证号码、电子邮件地址等,因而基于身份的公钥密码体制可以很自然地解决公钥与实体的绑定问题。
RSA 算法及 Diffie-Heliman 算法的发明者都相继获得了计算机领域的图灵奖。
2005年我国施行《中华人民共和国电子签名法》,2006年我国公布商用密码算法,
2019年公布《中华人民共和国密码法》,2020年1月1日施行。
根据密码分析者在破译时已具备的前提条件,密码分析攻击类型分为五种
(1)唯密文攻击(ciphertext-only attack)。密码分析者只拥有一个或多个用同一个密钥加密的密文,没有其他可利用的信息。
(2)已知明文攻击(known-plaintext attack)。密码分析者仅知道当前密钥下的一些明文及所对应的密文。
(3)选择明文攻击(chosen-plaintext attack)。密码分析者能够得到当前密钥下自己选定的明文所对应的密文。
(4)密文验证攻击(ciphertext verification attack)。密码分析者对于任何选定的密文,能够得到该密文“是否合法”的判断。
(5)选择密文攻击(chosen-ciphertext attack)。除了挑战密文外,密码分析者能够得到任何选定的密文所对应的明文。
3.2 密码体制分类
根据密钥的特点,密码体制分为私钥和公钥密码体制两种,而介于私钥和公钥之间的密码体制称为混合密码体制。
私钥密码体制又称为对称密码体制,指广泛应用的普通密码体制,该体制的特点是加密和解密使用相同的密钥。
私钥密码体制的缺陷可归结为三点:密钥分配问题、密钥管理问题以及无法认证源。
私钥密码体制有不足之处,但私钥密码算法处理速度快,常用作数据加密处理。
私钥密码典型算法有DES、IDEA、AES等、其中 DES 是美国早期数据加密标准,现已被 AES 取代。
公钥密码体制又称为非对称密码体制,其基本原理是在加密和解密的过程中使用不同的密钥处理方式,其中,加密密钥可以公开,而只需要把解密密钥安全存放即可。在安全性方面,密码算法即使公开,由加密密钥推知解密密钥也是计算不可行的。
与私钥密码体制相比较,公钥密码体制有以下优点。
(1)密钥分发方便,能以公开方式分配加密密钥。
(2) 密钥保管量少。网络中的消息发送方可以共用一个公开加密密钥,从而减少密钥数量。只要接收方的解密密钥保密,就能实现消息的安全性。
(3)支持数字签名。
目前,有三种公钥密码体制类型被证明是安全和有效的。即 RSA体制、ELGamal 体制及椭圆曲线密码体制。
混合密码体制利用公钥密码体制分配私钥密码体制的密钥。消息的收发双方共用这个密钥,然后按照私钥密码体制的方式,进行加密和解密运算。
混合密码体制的工作原理:
第一步,消息发送者 Alice用对称密钥把需要发送的消息加密。
第二步。Alice用 Bob的公开密钥将对称密钥加密,形成数字信封。然后,一起把加密消息和数字信封传送给 Bob。
第三步,Bob 收到 Alice 的加密消息和数字信封后,用自己的私钥将数字信封解密。获取Alice 加密消息时的对称密钥。
第四步,Bob 使用 Alice加密的对称密钥把收到的加密消息解开。
3.3 常见密码算法
DES(Data Encryption Standard)是数据加密标准的简称,由IBM公司研制。
DES是一个分组加密算法,能够支持 64比特的明文块加密,其密钥长度为56比特。
DES是世界上应用最广泛的密码算法。
NIST 于 1999年 10 月 25 日采用三重 DES(Triple Data Encryption Algorithm,TDEA)作为过渡期间的国家标准,以增强 DES 的安全性,并开始征集AES(Advanced Encryption Standard)算法。其中, TDEA算法的工作机制是使用 DES 对明文进行“加密→解密一加密”操作,即对DES 加密后的密文进行解密再加密,而解密则相反。
IDEA(Interntional Data Encrption Algorithm)是国际数据加密算法的简记,是一个分组加密处理算法,其明文和密文分组都是64 比特,密钥长度为 128 比特。该算法是由来学嘉(X.J.Lai)和Massey提出的建议标准算法,已在PGP中得到应用。IDEA算法能够接受64比特分组加密处理,同一算法既可用于加密又可用于解密,该算法的设计思想是“混合使用来
自不同代数群中的运算”。
1997年美国国家标准技术研究所(NIST)发起征集 AES (Advanced Encryption Standard算法的活动,并专门成立了AES 工作组,其目的是确定一个非保密的、公开的、全球免费使用的分组密码算法,用于保护下一世纪政府的敏感信息。
NIST规定候选算法必须满足下面的要求:
密码必须是没有密级的,绝不能像商业秘密那样来保护它;
算法的全部描述必须公开披露;
密码必须可以在世界范围内免费使用;
密码系统支持至少 128 比特长的分组;
密码支持的密钥长度至少为 128、192 和 256 比特。
参与AES 的候选算法中,Rijndael 提供了安全性、软件和硬件性能、低内存需求以及灵活性的最好的组合,因此 NIST 确定选择 Rijindael作为 AES。
RSA 算法是非对称算法,由 Ronald Rivest 、Adi Shamir, Leonard Adleman 三人共同在1977年公开发表。
在RSA加密算法中,公钥和私钥都可以用于加密消息,用于加密消息的密钥与用于解密消息的密钥相反。
RSA算法提供了一种保护网络通信和数据存储的机密性、完整性、真实性和不可否认性的方法。目前,SSH、OpenPGP、S/MIME 和 SSL/TLS 都依赖于 RSA进行加密和数字签名功能。RSA 算法在浏览器中使用,能够在不可信任的互联网中建立安全连接。RSA 签名验证是网络连接系统中最常见的执行操作之一。
RSA 安全性保证要做到选取的素数p和q足够大,使得给定了它们的乘积n后,在事先不知道p或q的情况下分解n是计算上不可行的。破译RSA密码体制基本上等价于分解n。
基于安全性考虑,要求n长度至少应为1024比特。从长期的安全性来看。n的长度至少应为2048比特,或者是616位的十进制数。
目前,已经公布的国产密码算法主要有 SM1分组密码算法、SM2椭圆曲线公钥密码算法、SM3密码杂凑算法、SM4分组算法、SM9标识密码算法。
SM1算法是一种对称加密算法,分组长度为128比特,密钥长度为128比特。
SM2算法是一种非对称加密,基于椭圆曲线,应用于公钥密码系统,用于数字签名、密钥交换、公钥加密。
详见GM/T 0009—2012《SM2 密码算法使用规范》。
SM3杂凑算法对长度为l比特的消息m,经过填充、迭代压缩,生成杂凑值,杂凑值输出长度为256比特。
详见 GM/T0004—2012《SM3 密码杂凑算法》。
SM4密码算法是一个分组算法。该算法的分组长度为128比特,密钥长度为128比特。加密算法与密钥扩展算法都采用 32 轮非线性迭代结构。数据解密和数据加密的算法结构相同,只是轮密钥的使用顺序相反,解密轮密钥是加密轮密钥的逆序。详见 GM/T0002—2012《SM4分组密码算法》。
SM9 是标识密码算法。在标识密码系统中,用户的私钥由密钥生成中心(KGC)根据主密钥和用户标识计算得出,用户的公钥由用户标识唯一确定,因而用户不需要通过第三方保证其公钥的真实性。与基于证书的公钥密码系统相比较,标识密码系统中的密钥管理环节可以得到简化。SM9 可支持实现公钥加密、密钥交换、数字签名等安全功能,
详见 GM/T0044—2016《SM9标识密码算法》。
3.4 Hash 函数与数字签名
3.5 密码管理与数字证书
3.6 安全协议
3.7 密码学网络安全应用
四、本章历年考点分布
详见2020软考信安精讲课程群
五、本章历年真题及答案解析
详见2020软考信安精讲课程群