目录
1、密码学概况
1.1 密码学发展简况
1.2 密码学基本概念
1.3 密码安全性分析
2、密码体制分类
2.1 私钥密码体制(密钥不能公开)
2.2 公钥密码体制(密钥可以公开)
2.3 混合密码体制
3、常用密码算法
3.1 DES
3.2 IDEA
3.3 AES
3.4 RSA
3.5 国产密码(每年必考)
4、Hash函数与数字签名
4.1 Hash函数工作原理
4.2 常见的Hash算法
4.3 数字签名的概念与作用
4.4 数字签名的工作原理
4.5 数字签名相关算法
5、密码管理与数字证书
5.1 密码管理
5.2 数字证书(解决公钥的可信任性)
6、安全协议
6.1 SSH
6.2 Diffie-Hellman密钥交换协议
7、密码学网络安全应用
7.1 电子邮件安全应用参考
密码学是一门研究信息安全保护的科学,以实现信息的保密性、完整性、可用性及抗抵赖性。
密码学主要由密码编码和密码分析两个部分组成,其中,密码编码学研究信息的变换处理以实现信息的安全保护,而密码分析学则研究通过密文获取对应的明文信息。
1949年,香农发表《保密系统的通信理论》,提出交替使用换位和置换以抵御统计分析,增加了混乱(Confusion)和扩散(Diffusion)的密码技术新方法。
2019年《中华人民共和国密码法》草案发布。实施日期是2020年1月1日。
密码学的主要目的是保持明文的秘密以防止攻击者获知,而密码分析学则是在不知道密钥的情况下识别出明文的科学。
- 明文:需要加密进行保护的消息
- 密文:明文加密处理后的结果
- 加密:明文——>密文
- 解密:密文——>明文
- 加密算法:加密过程所使用的一组操作运算规则
- 解密算法:解密过程所使用的一组操作运算规则
人们通常将密码分析攻击类型分为五种:
- 唯密文攻击:密码分析者只拥有一个或多个用同一密钥加密的密文,没有其他可利用的信息
- 已知明文攻击:密码分析者仅知道当前密钥下的一些明文及所对应的密文
- 选择明文攻击:密码分析者能够得到当前密钥下自己选定的明文所对应的密文
- 选择密文攻击:除了挑战密文外,密码分析者能够得到任何选定的密文所对应的明文(之前考过)
- 密文验证攻击:密码分析者对于任何选定的密文,能够得到该密文是否合法的判断(第二版教材新增内容)
又称对称密码体制,加密和解密使用同一个密钥。发送接收双方必须事先通过安全渠道交换了密钥。
假设网络中有n个使用者,使用者之间共享一个密钥,则共用n(n-1)/2个密钥。
私钥密码体制的缺陷:密钥分配问题、密钥管理问题、无法认证源
私钥密码体制的优点:处理速度快,常用于数据加密处理
典型算法:DES、IDEA、AES
又称非对称密码体制,加密和解密使用不同密钥。加密密钥可以公开,只需要把解密密钥安全存放即可。由加密密钥推出解密密钥在计算上是不可行的。
公钥密码体制的缺陷:密钥分发方便(公开方式)、密钥保管量少、支持数字签名
典型算法:RSA、ELGamal、椭圆曲线密码体制
私钥和公钥混合使用,利用公钥密码体制来分配私钥密码体制的密钥。A利用公钥密码体制,将私钥密码体制的密钥传送给对方,A和B共用这个密钥,按照私钥密码体制的方式,进行加密和解密。
(1和4的步骤相当于私钥密码体制,2和3相当于公钥密码体制)
DES是分组加密算法,能够支持64比特的明文块加密,其密钥长度为56比特。
三重DES(TDEA),也称3DES。使用DES对明文进行“加密-解密-加密”的操作,即对DES加密后的密文进行解密再加密,解密则相反。
设Ek()为加密,Dk()为解密,K代表DES使用的密钥,I为明文输入,O为密文输出
IDEA是国际数据加密算法的简记,是一个分组加密处理算法,其明文和密文分组都是64比特,密钥长度为128比特。
IDEA算法能够接受64比特分组加密处理,同一算法既可用于加密又可用于解密,该算法的设计思想是“混合使用来自不同代数群中的运算”。
AES是确定非保密的、公开的、全球免费使用的分组密码算法。
分组长度128/192/256比特,密钥长度128/192/256比特
具体特点如下:
- 密码没有密级,绝不能像商业秘密那样保护它
- 算法的全部描述必须公开披露
- 密码必须可以在世界范围内免费使用
- 密码系统支持至少128比特长的分组
- 密码支持的密钥长度至少为128、192、256比特
从参与AES的候选算法中,最终选择Rijndael作为AES
RSA算法是非对称算法,公钥和私钥都可以用于加密消息,用于加密消息的密钥与用于解密消息的密钥相反。(一般公钥加密,私钥解密。)RSA提供了一种保护网络通信和数据存储的机密性、完整性、真实性和不可否认性的方法。目前,SSH、OpenPGP、S/MIME、SSL/TLS网络协议都依赖于RSA进行加密和数字签名功能。RSA算法在浏览器中使用,能够在不可信任的互联网中建立安全连接。RSA签名验证是网络连接系统中最常见的执行操作之一。
RSA算法基于大整数因子分解的困难性。(需要会计算)
1和4是对称加密,分组长度和密钥长度都为128比特
2和3不对称,椭圆曲线和杂凑值为256,SM2的应用也需要记住
9是一种标识
杂凑函数简称Hash函数,它能够将任意长度的信息转换成固定长度的哈希值(又称数字摘要或消息摘要),并且任意不同消息或文件所生产的哈希值是不一样的。
哈希函数h应满足以下要求:
- 输入可以是任意长度的消息或文件M
- 输出的长度是固定的
- 给定M,计算h(M)是容易的
- 给定h的描述,找到M1和M2使得h(M1)=h(M2)是不可行的
哈希函数的特点:
- 能将任意长度的信息转换成固定长度的Hash值
- 相同的明文输入得到相同的Hash值
- 不同的明文输入得到不同的Hash值
- Hash值越大的Hash函数,安全性越高
- Hash计算是不可逆的(Hash是有损计算)
(1)MD5
MD5以512位数据块为单位来处理输入,产生128位的消息摘要,即产生128比特长度的哈希值。常用于文件完整性检查。
(2)SHA
以512位数据块为单位输入,产生160的哈希值。
(3)SM3国产算法
该算法消息分组长度为512比特,输出杂凑值长度为256比特 。
数字签名是指签名者用私钥对待签名数据的杂凑值做密码运算得到的结果。该结果只能用签名者的公钥进行验证,用于确认待签名数据的完整性、签名者身份的真实性和签名行为的抗抵赖性。
数字签名的目的是确认交易当事人的真实身份,保证交易的安全性、真实性和不可抵赖性。
具有与手写签名一样的特点,是可信的、不可伪造的、不可重用的、不可抵赖的以及不可修改的。
数字签名至少应满足以下三个条件:
- 非否认性:签名者事后不可否认自己的签名
- 真实性:接收者能验证签名,签名不能被伪造
- 可鉴别性:当双方关于签名的真伪发生争执时,第三方能解决争执
一个数字签名方案一般由签名算法和验证算法组成。签名算法密钥是秘密的,只有签名人掌握;验证算法是公开的,以便他人验证。
典型的数字签名方案有:RSA签名体制、Rabin签名体制、ElGamal签名体制、DSS标准
密码系统的安全性依赖于密码管理。密码管理主要分为三方面:密钥管理、密码管理政策、密码测评
主要围绕密钥的生命周期进行,包括密钥生成、密钥存储、密钥分发、密钥使用、密钥更新、密钥撤销、密钥备份、密钥恢复、密钥销毁、密钥审计
(口诀:生存发誓更小杯,回校审)
指国家对密码进行管理的有关法律政策文件、标准规范、安全质量测评等
《商用密码管理条例》,内容主要有商用密码的科研生产管理、销售管理、使用管理、安全保密管理
《中华人民共和国密码法》规定,密码分为核心密码、普通密码和商用密码。核心密码、普通密码用于保护国家秘密信息,属于国家秘密,由密码管理部门依法严格统一管理;商用密码用于保护不属于国家秘密的信息。
对相关密码产品及系统进行安全性、合规性评估,以确保相关对象的密码安全有效,保障密码系统的安全运行
也称公钥证书,是由证书认证机构(CA)签名和包含公开密钥拥有者信息、公开密钥、签发者信息、有效期以及扩展信息的一种数据结构
分类
按类别分:个人证书、机构证书、设备证书
按用途分:签名证书(证明签名公钥)、加密证书(证明加密公钥)
为更好的管理数字证书,一般是基于PKI技术建立数字证书认证系统(CA)提供数字证书的申请、审核、签发、查询、发布、吊销等生命周期的管理服务。
作用:网络管理方面使用,比如登录路由器进行远程管理
SSH和telnet功能一样都是用来远程访问网络设备,但在PC和设备之间传输信息时,SSH基于TCP的22号端口传输是密文的,telnet基于TCP的23号端口传输是明文的。(类似于http明文传输、https密文传输)
SSH,安全外壳,是基于公钥的安全应用协议,由SSH传输层协议、SSH用户认证协议和SSH连接协议三个子协议组成,实现加密、认证、完整性检查等多种安全服务。SSH1版本因存在漏洞被停用,目前使用的是SSH2版本。
SSH工作机制:
在实际过程中,存储服务器公钥的Hash值这个设备是集成在SSH服务器中的
作用:在不安全的网络环境中实现安全传递密钥
基于求解离散对数问题的困难性(只用于密钥交换)
PGP是一种加密软件,广泛应用于电子邮件安全,它能够防止非授权者阅读邮件,并对用户的邮件加上数字签名,从而使收信人可以确信发信人的身份。PGP应用了多种密码技术,其中密钥管理算法选用RSA、数据加密算法IDEA、完整性检测和数字签名算法采用MD5、RSA、随机数生成器,PGP将这些密码技术有机结合在一起,利用对称和非对称加密算法的各自优点,实现一个比较完善的密码系统。