3.1、密码学概况
3.1.1、密码学发展:
- 是一门研究信息安全保护的学科,以实现信息的保密性、完整性、可用性、抗抵赖性。
- 组成:密码编码、密码分析
- 发展历史
传统密码学(换位、置换) |
1949年、香浓发表《保密系统通信理论》提出交替使用换位和置换抵御统计分析,增加混乱(Confusion)、扩散(Diffusion) |
20世纪70年代,Diffie-Hellman算法、RSA算法、美国政府颁布数据加密标准(DES) |
现代密码学诞生 |
1984年、Shamir提出基于身份的公钥密码思想,简化了证书管理 |
未来:后量子时代密码(Post-Quantum Cryptography) |
3.1.2、密码安全分析:
- 唯密文攻击(ciphertext-only attack):只知道密文。
- 已知明文攻击(known-plaintext attack):知道当前密钥下的一些明文及对应的密文。
- 选择明文攻击(chosen-plaintext attack):能得到当前密钥下自己选定的明文对应的密文。
- 密文验证攻击(ciphertext verification attack):能过验证任何选定密文是否合法。
- 选择密文攻击(chosen-ciphertext attack):能得到任何选定密文对应的明文。
3.2、密码体制分类
3.2.1、私有密码体制:
特点:一个密钥
优点:加解密简单,
缺点:密钥分配问题、密钥管理问题、无法认证源
典型算法:DES、IDEA、AES等
3.2.2、公钥密码体制:
1976年,W.Diffie和M.E.Hellman 发表《密码学新方向》提出公钥密码体制思想。
特点:双密钥、用公钥推私钥在计算上不可行
优点:密钥分配方、密钥保管量少、支持数字签名
3.2.3、混合密码体制:
原理:用私钥密码体制加密明文消息,公钥密码体制加密对称密钥。
3.3、常见密码算法
3.3.1、DESA(Date Encryption Standard)数据加密标准,由IBM公司研制,是一个分组加密算法。
明文分组快长:64比特 密钥长度:64比特(有效位=56,8比特校验码)
三重DES(Triple Date Encryption Algorithm,TDEA):使用DES对明文进行 加密--->解密--->加密 操作
加密:
解密:
密钥长度:三个密钥=168比特(有效位),入口只要两个密钥则为112比特
3.3.2、IDEA(International Date Encryption Algorithm):
明文分组块长:64比特 密钥长度:128比特
设计思想:混合使用来自不同代数群中的运算
3.3.3、AES(Advsnced Encryption Standard)
1997年美国国家标准技术研究所(NIST)发起征集AES算法活动。
候选算法要求:
- 密码没有密级、不能像商业密码保护。
- 算法公开。
- 密码在世界范围内免费使用。
- 密码系统支持至少128比特长的分组。
- 密码支持的密钥长度至少为128、192、256比特。
NIST选择Rijndeal作为AES
3.3.4、RSA
非对称算法:利用大整数因子分解困难问题。
步骤:
- 生成两个大素数p、q(保密)。
- 计算 n=p*q
- 计算欧兰函数
- 选取一个随机数e,满足 并且
- 计算
- 保密d、p、q,公开n、e,私钥{d,n},公钥{e,n}
3.3.5、国产密码算法
算法名称 | 算法特性描述 | 备注 |
SM1 | 对称加密,分组长度和密钥长度都为128比特 | |
SM2 | 非对称加密,用于公钥加密算法、密钥交换协议、数字签名算法 | 国家标准推荐使用素数域256位椭圆曲线 |
SM3 | 杂凑算法、杂凑值长度位256比特 | |
SM4 | 对称加密,分组长度和密钥长度都为128比特 | |
SM9 | 标识密码算法 |
3.4、Hash函数与数字签名
3.4.1、Hash函数:
h(M)=C
要求:
- h的输入可用是任意长度的消息或文件。
- h输出的长度固定。
- 给定h和M计算h(M)是容易的。
- 给定h的描述,找两个不同消息M1、M2,使得h(M1)=h(M2)在计算上是不可行的。
3.4.2、Hash算法:
MD5:n*512---->128,已被我国王小云研究团队破解。
SHA:n*512---->160。
SM3国产算法:n*512---->256。
3.4.3、数字签名:
要求:
- 非否认性
- 真实性
- 可鉴别性
过程:
3.5、密码管理与数字证书
3.5.1、密码管理:
- 密钥管理:密钥生成、密钥存储、密钥分发、密钥使用、密钥更新、密钥撤销、密钥备份、密钥恢复、密钥销毁、密钥审计。
- 密码管理政策
- 密码测评:商用密码检测中心。
3.5.2、数字证书:
由证书认证机构(CA)签名的包含公开密钥拥有者身份信息、公开密钥、签发者信息、有效期、扩展信息的一种数据结构。
分类:签名证书、加密证书
3.6、安全协议
3.6.1、Diffile-Hellman密钥交换协议:
原理:基于求解离散对数问题的困难性。
原根:
设a为整数、m为正整数。
a模m的阶:满足 的k的个数称为a模m的阶。
若a模m的阶等于φ(m)
则称a为模m的一个原根。
步骤:
- Alice和Bob确定一个合适的素数p和整数a,且a是p的原根(a、p可用公开)。
- Alice密码选取一个整数,计算 ,发送给Bob。
- Bob密码选取一个整数,计算 ,发送给Alice。
- Alice和Bob通过计算得到密钥K.
Alice:
Bob:
3.6.2、SSH:
SSH(Secure Shell),安全外壳,基于公钥的安全应用协议。端口号默认22。
组成:
- SSH传输层协议:提供算法协商和密钥交换,并实现服务器认证,形成加密的安全连接,该连接提供完整性、保密性、压缩选项服务
- SSH用户认证协议:利用传输层的服务来建立连接,使用口令认证、公钥认证、主机认证等认证用户。
- SSH连接协议:利用上两个协议建立的认证连接,将其分解为多种不同的并发逻辑通道,支持会话隧道和TCP转发,且能为这些通道提供流控服务、通道参数协商机制。
工作机制:
认证服务器公钥真实性:
- 用户直接随身携带含服务器公钥的拷贝,在进行密钥交换协议前,读入客户计算机。
- 从公开信道上下载服务器公钥和它对应的指纹,先验证指纹真实性,在提取公钥指纹做对比。
- 通过KPI技术验证服务器。
3.7、密码学网络安全应用
3.7.1、密码技术常见应用场景:
- 网络用户安全
- 物理和环境安全
- 网络和通信安全
- 设备和计算机安全
- 应用和数据安全
- 业务应用创新:构建网络发票、构建区块链、建立电子证件。
3.7.2、路由器安全应用参考
3.7.3、Web网站安全应用参考、
3.7.4、电子邮件安全应用参考
详细见《信息安全工程师教程》第二版61页。