0%

第3章 密码学基本理论

密码学概况

密码学主要由密码编码和密码分析两个部分组成。密码编码学研究信息等变换处理以实现信息等安全保护,密码分析学研究通过密文获取对应的明文信息。

密码安全性分析

密码分析攻击类型分为五种:

  1. 唯密文攻击(ciphertext-only attack)。密码分析者只拥有一个或多个用一个密钥加密等密文。
  2. 已知明文攻击(known-plaintext attack)。密码分析者仅知道当前密钥下的一些明文及所对应的密文。
  3. 选择明文攻击(chosen-plaintext attack)。密码分析者能够得到当前密钥下自己选定的明文所对应的密文。
  4. 密文验证攻击(ciphertext verification attack)。密码分析者对于任何选定的密文,能够得到该密文“是否合法”的判断。
  5. 选择密文攻击(chosen-ciphertext attack)。除了挑战密文外,密码分析者能够得到选定的密文所对应的明文。

密码体制分类

私钥密码体制

又称为对称密码体制,加解密使用相同密钥。n个使用者,则共有n(n-1)/2个密钥。

缺点:密钥分配问题、密钥管理问题以及无法认证源。

典型算法:DES、IDEA、AES

公钥密码体制

又称为非对称密码体制,公钥加密,私钥解密。

优点:分发方便,密钥保管量少,支持数字签名。

公钥密码:RSA体制、ELGamal体制以及椭圆曲线密码体制。

混合密码体制

利用公钥密码体制分配私钥密码体制密钥,双方共用此密钥,然后按私钥密码体制加解密。工作原理如图:

常见密码算法

DES

分组长度64位,秘钥为64比特,实际使用56比特,另外8位用作奇偶校验。进行16轮加密,得到64比特的密文串。三重DES(TDEA)执行3次DES。

计算:设输入为b1b2b3b4b5b6,则以b1b6组成的二进制位行号,b2b3b4b5组成的二进制位列号。行列交点处对应的值转换为二进制作为输出。则当S1盒输入为”111000”时,则第1位和第6位组成二进制串”10”(十进制2),中间四位组成二进制“1100”(十进制12)。查询S1盒的2行12列,得到数字3,得到输出二进制数是0011。需要注意行号和列号从0开始。

IDEA

国际数据加密算法。明文密文64比特,密钥128比特。在PGP中IDEA接受64比特分组加密。

进行 8 轮迭代操作,每轮需要 6 个子密钥,另外还需要 4 个额外子密钥输出变换,所以总共需要 52 个子密钥(从 128 比特密钥中扩展)。

AES

AES明文分组长度至少是128位;秘钥长度也可以是128位,192位,256位。

新版中未作解读,需要了解详情的可以看这篇文章:密码学基础:AES加密算法

RSA

非对称算法。应用于SSH、OpenPGP、S/MIME、SSL/TLS等

步骤:

  1. 生成两个大素数p和q。
  2. 计算两个素数的乘机n=pq。
  3. 计算小于n并且与n互素的整数的个数,即欧拉函数$φ(n)=(p-1)(q-1)$。
  4. 选取一个随机数e,且满足$1<e<φ(n)$,并且e和$φ(n)$互素,即$gcd(e,φ(n))=1$。
  5. 计算$d=e^{-1}mod(φ(n))$,即ed=1(modφ(n)),即$d=\frac{kφ(n)+1}{e}$,k为p-1和q-1的最大公约数。
  6. 保密d、p和q,而公开n和e,即d作为私钥,而n和e作为公钥。

明文M,密文C加解密算法如下

国产密码算法

Hash函数与数字签名

Hash函数

杂凑函数简称Hash函数。用h表示Hash函数:

  • h的输入可以是任意长度的消息或文件M
  • h的输出的长度是固定的
  • 给定h和M,计算h(M)是容易的
  • 给定h的描述,找两个不同的消息M1和M2,使h(M1)=h(M2)是计算上不可行的。

Hash算法

将任意长的比特串映射到一个固定长的比特串。

算法:MD5算法、SHA算法、SM3国产算法

数字签名

确认数据的完整性、真实性和抗抵赖性。

满足三个条件:1. 非否认。2. 真实性。3. 可见别性。

  • 数字签名流程:
    1. A用Hash函数加密文件形成摘要
    2. A用自己私钥将消息摘要加密,形成数字签名。
    3. A将加密摘要和原文一并发给B
  • 验证签名流程:
    1. B使用A相同Hash算法计算文件摘要
    2. B使用A公钥解密数字签名,恢复A的消息摘要
    3. 比较两个消息摘要,一致则未被篡改

密码管理与数字签名

密码管理

  1. 密钥管理

生命周期:密钥生成、密钥存储、密钥分发、密钥使用、密钥更新、密钥撤销、密钥备份、密钥恢复、密钥销毁、密钥审计。

  1. 密码管理政策

《商用密码管理条例》:商用密码的科研生产管理、销售管理、使用管理、安全保密管理。

《中华人民共和国密码法》:密码分为核心密码、普通密码、商用密码。

  1. 密码测评

对相关密码产品即系统安全行、合规性评估。

机构:商用密码检测中心

数字证书

公钥证书,由认证机构(CA)签名包含公开密钥拥有者信息、公开密钥、签发者信息、有效期以及扩展信息的一种数据结构。

类别:个人证书、机构证书和设备证书

用途:签名证书和加密证书

CA:提供证书的申请、审核、签发、查询、发布以及证书吊销等全生命周期的管理服务。

认证系统主要有目录服务器、OCSP服务器、注册服务器、签发服务器等。

典型的PKI系统由5个基本部分组成:证书申请者、RA注册中心、CA认证中心、证书库和证书信任方

安全协议

Diffie-Hellman密钥交换协议

在已知C和P的前提下,由d求M很容易,由M求d需指数级次计算。

操作步骤:

  1. A与B确定一个素数p和整数a,并使a是p的原根,a,p可公开
  2. A秘密选取整数$a_A$,计算$y_A=a^{a_A}mod(p)$,并把$y_A$发送给B
  3. B密码选取整数$a_B$,计算$y_B=a^{a_B}mod(p)$,并把$y_B$发送给B,$y_A$和$y_B$即公开值
  4. A和B双方分别计算出共享密钥K

A:$K=(y_B)^{a_A}mod(p)$

B:

SSH

组成:SSH传输层协议、SSH用户认证协议和SSH连接协议三个子协议。

SSH工作机制7个步骤:

认证服务器的公钥真实性:

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