信息安全工程师-软考中级-备考笔记:第三章 密码学基本理论
第3章 密码学基本理论
密码学概况
密码学发展简况
密码学是研究信息安全保护的科学,以实现信息的保密性、完整性、可用性及抗抵赖性。
密码学主要由密码编码和密码分析两个部分组成。密码编码学研究信息等变换处理以实现信息等安全保护,密码分析学研究通过密文获取对应的明文信息。简单来说就是密码编码研究加密技术,密码分析研究如何破解密码。再直白点,就是一个是防守,一个是进攻。
2005年4月1日 《中华人民共和国电子签名法》
2006年公布我国自己的商用密码算法
2019年《中华人民共和国密码法》草案发布(《中华人民共和国密码法》由中华人民共和国第十三届全国人民代表大会常务委员会第十四次会议于2019年10月26日通过,自2020年1月1日起施行。)
密码学基本概念
密码学的主要目的是保持明文的秘密以防止攻击者获知,而密码分析学则是在不知道密钥的情况下,识别出明文的科学。
密码系统(Crypto system)由以下五个部分组成
• 明文空间 M:需要采用密码技术进行保护的消息
• 密文空间 C:用密码技术处理过的明文的结果
• 密钥空间 K:K=<Ke,Kd>,每个秘钥K由加密密钥Ke和解密密钥Kd组成
• 加密算法 E:将明文变换成密文所使用的组操作运算规则
• 解密算法 D:将密文恢复成明文所使用的组操作运算规则
密码安全性分析
唯密文攻击:密码分析者只拥有一个或多个用同一个密钥加密的密文
已知明文攻击:密码分析者仅知道当前密钥下的一些明文及所对应的密文
选择明文攻击:密码分析者能够得到当前密钥下自己选定的明文对应的密文(有加密途径,但不知道加密方法)
密文验证攻击:密码分析者可以判断任何选定的密文的“合法性”
选择密文攻击:密码分析者能够得到任何选定的密文所对应的明文(有解密途径,但不知道解密方法)
密码体制分类

显然,若Kd = Ke,称为单密钥密码体制或者对称密码体制或者传统密码体制。否则为双密钥体制,进而,若Kd不能由Ke 推出,就可将Ke公开且不会损害Kd的安全,这种密码体制称为公开密钥密码体制,简称公钥密码体制
对称密码体制
对称密码体制(私钥密码体制):对信息进行明/密文变换时,加解和解密使用相同密钥的密码体制

安全性依赖于:
1、加密算法的安全性
2、密钥的秘密性
优点:效率高,算法简单,加密速度快,适合大量数量的加密
缺点:
• 消息的发送者和接收者必须事先通过安全渠道交换密钥
• n个使用者,就需要n ( n − 1 ) / 2个密钥,密钥管理困难
• 无法认证消息源,无法进行数字签名
用途:信息量大的加密需求
典型代表算法:DES算法、IDEA算法、AES算法等
非对称密码体制
非对称密码体制(公钥密码体制):对信息进行明/密文变换时,加密和解密密钥不相同的密码体制。
在非对称密码体制中,每个用户都具有一对密钥,一个用于加密,一个用于解密,其中加密密钥可以公开,称之为公钥,解密密钥属于秘密,称之为私钥,只有用户本人知道。

优点:
• 密钥分发方便
• 密钥保管量少
• 支持数字签名
缺点:实现速度慢,不适合信息量大的加密情况
用途:适用于加密关键性的、核心的机密数据
代表算法:RSA算法、ElGamal算法、椭圆曲线加密算法
混合加密体制
混合加密体制:同时使用对称密码和非对称密码的体制。
对称加密的一个很大问题就是通信双方如何将密钥传输给对方,安全起见一般采取带外传输,也就是说如果加密通信是在网络,那么密钥的传输需要通过其他途径,如短信,即使如此,也很难保证密钥传输的安全性。再就是为了安全密钥也应该定期更换,这更加重了密钥分发和管理的难度。
而非对称加密加解密最大的优点是事先不需要传输密钥,但速度慢。
因此实际应用中,经常采取混合密码体制。
假设Harden与James要实现保密通信,工作过程如下:

1、消息发送者Harden用对称密钥把需要发送的消息加密
2、Harden用James的公钥将对称密钥加密,形成数字信封
3、Harden将加密消息和数字信封一起传送给James
4、James收到Harden的加密消息和数字信封后,先用自己的私钥将数字信封解开获取对称密钥
5、James使用对称密钥把加密消息解开
常用密码算法
DES
DES(Data Encryption Standard)是数据加密标准的简称,支持64位的明文加密,密钥长度为56位。随着科技发展,DES被攻破,使用TDEA作为过渡算法,并开始征集AES算法
IDEA
IDEA(International Data Encryption Algorithm)是国际数据加密算法的简记,是一个分组加密处理算法。其明文和密文分组都是64位,密钥长度128位
AES
1997年美国国家标准技术研究所(NIST)发起征集AES(Advanced Encryption Standard,高级加密标准)算法的活动,成立AES小组

RSA
- 相关数学基础
o 欧拉函数:对于一个正整数n,小于n且与n互素的正整数的个数,记为φ(n)。
o 对于一个素数n,可知φ(n) = n-1
o 对于两个素数p和q,它们的乘积满足n = p * q,则可知φ(n) = (p-1) * (q-1)
o 欧几里得算法:gcd(a,b)表示a和b的最大公约数
o gcd(a,b) = 1,表示a,b最大公约数为1,说明a和b互质
o 同余:
两个整数a,b,若它们除以整数m所得的余数相等,则称a与b对于模m同余,或a同余b模m,记作a ≡ b ( mod m )
2. RSA密码体制参数的定义
o 随机选择两个大素数p和q (保密)
o 计算n = p * q (n公开)
o 计算φ(n) = (p-1) * (q-1) (φ(n)保密)
o 随机选取一个正整数e,且满足1 < e < φ(n),并且gcd(e,φ(n)) = 1 (e公开)
o 根据e∗d ≡ 1 mod φ (n)即 (ed) mod φ(n)=1,求出d(d保密)
o 加密运算 C = M^e mod n,
o 解密运算 M = C^d mod n
RSA密码公开的加密密钥Ke=<n,e>,保密的解密密钥Kd=<p,q,d,φ(n)>,因为d可以通过e∗d ≡ 1 mod φ (n),n=pq, φ(n)=(p-1)*(q-1)计算出,实际上Kd=<n,d>

- RSA密码的特点
- RSA算法具有加解密算法的可逆性,加密和解密运算可交换,可同时确保数据的秘密性和数据的真实性
- RSA密码的核心运算是模幂运算,实现效率高
- RSA密码的安全性
- 保证选取的素数p和q足够大,使得给定n的情况下分解n在计算上不可行,应采用足够大的整数n,一般n至少取1024位,通常是2048位
国产密码算法
国产密码算法是指由国家密码研究相关机构自主研发,具有相关知识产权的商用密码算法。目前已公布的国产密码算法如下图
![]()
Hash函数与数字签名
Hash函数
散列函数也称为Hash函数,它能够对不同长度的输入信息,产生固定长度的输出。
固定长度的输出称为原消息的散列或者消息摘要,消息摘要长度固定且比原始信息小得多,一般情况下,消息摘要是不可逆的,即从消息摘要无法还原原文。
令h表示Hash函数,h满足下列条件:
1、输入长度是任意的,输出是固定的
2、对每一个给定的h和M,计算h(M)是容易的
3、给定h,找到两个不同的M1、M2,使得h(M1)=h(M2)在计算上不可行
常见的散列算法:MD5、SHA、SM3、SHA-1、SHA-256等等
Hash算法
算法名称 算法特征描述
MD5算法 输入512位,产生128位消息摘要(哈希值),常用于文件完整性检查
SHA算法 输入512位,产生160位消息摘要,比MD5更安全,已有版本SHA-2,SHA-3
SM3国产算法 输入512位,产生256位消息摘要
数字签名
数字签名是指发送方以电子形式签名一个消息或文件,签名后的消息或文件能在网络中传输,并表示签名人对该消息或文件的内容负有责任。
数字签名综合使用了消息摘要和非对称加密技术。
数字签名满足以下三个条件:
1、不可抵赖。签名者事后不能否认自己的签名
2、真实性。接收者能验证签名,其他任何人都不能伪造签名
3、可鉴别性。当双方关于签名真伪发生争执,第三方能解决双方的争执
假设Harden需要签名发送一份电子合同文件给James。
Harden数字签名的示意图:

1、Harden使用Hash函数将电子合同文件生成一个消息摘要
2、Harden使用自己的私钥,将消息摘要加密形成一个数字签名
3、Harden把电子合同文件和数字签名一同发送给James
James收到Harden发送的电子合同文件及数字签名后,验证数字签名过程如下:

1、James使用与Harden相同的Hash函数,计算收到的电子合同的消息摘要
2、James使用Harden的公钥,解密来自Harden的数字签名,恢复Harden的消息摘要
3、James比较自己计算得到的消息摘要和恢复Harden的消息摘要异同,若摘要相同,则说明电子合同文件来自Harden,否则表明电子合同文件已被篡改
密码管理与数字证书
密码管理
o 密钥管理:围绕密钥的生命周期进行
密钥生成
密钥存储
密钥分发
密钥使用
密钥更新
密钥撤销
密钥备份
密钥恢复
密钥销毁
密钥审计
• 密码管理政策
《商用密码管理条例》
《中华人民共和国密码法》
• 密码测评
设立商用密码检测中心对密码产品进行安全评估
数字证书
数字证书也称为公钥证书,是一种权威的电子文档,由证书认证机构(CA)签名的包含公开密钥拥有者信息、公开密钥、签发者信息、有效期以及扩展信息的一种数据结构。
数字证书的格式按照《信息安全技术 公钥基础设施 数字证书格式》要求:
CA提供数字证书的申请、审核、签发、查询、发布以及证书吊销等全生命周期的管理服务
数字证书认证系统主要由目录服务器、OCSP服务器、注册服务器、签发服务器组成
数字证书种类:
• 按类别
个人证书
机构证书
设备证书
• 按用途
签名证书:用于证明签名公钥的数字证书
加密证书:用于证明加密公钥的数字证书
安全协议
Diffie-Hellman密钥交换协议
一种共享秘密的方案,简称Diffie-Hellman密钥交换协议,基于求解离散对数问题的困难性,对于下述等式 c^d = M mod P
操作步骤:
- A与B确定一个素数p和整数a,并使a是p的原根,a,p可公开
- A秘密选取整数aA,计算yA = a^(aA) mod P,并把yA发送给B
- B密码选取整数aB,计算yB = a^(aB) mod P,并把yB发送给A,yA和yB即公开值
- A和B双方分别计算出共享密钥K,即
Alice通过计算: K = (yB)^aA mod P生成秘钥K
Bob通过计算: K = (yA)^aB mod P生成秘钥K
即A的K与B的K是相同的,推导如下图,就实现了密钥的交换
![]()
SSH
SSH是Secure Shell的缩写,基于公钥的安全应用协议。
组成:SSH传输层协议、SSH用户认证协议和SSH连接协议三个子协议。
• SSH传输层协议:提供算法协商和密钥交换。实现服务器认证,形成加密全连接
• SSH用户认证协议:利用传输层的服务建立连接,使用多种认证机制认证用户
• SSH连接协议:利用已建立的认证连接,将其分解为多种不同的并发逻辑通道,支持注册会话隧道和TCP转发。
SSH工作机制7个步骤:

认证服务器的公钥真实性:
- 随身携带含有服务器公钥的拷贝,进行密钥交换前,读入客户端
- 从公开信道下载公钥和指纹,通过电话验证公钥指纹的真实性,用HASH软件生成公钥指纹,进行比较
- 通过PKI技术来验证服务器


浙公网安备 33010602011771号