《深入浅出密码学》|ing

一、密码学和数据安全导论

1.1对称密码学

1.1.1基础知识

  • 了解明文密文密钥|公钥私钥的含义以及相关流程

  • 加密算法一般都是公开的,不公开的加密算法无法确保安全性

1.1.2简单对称加密:替换密码

  • 如何破译密文(得到密码表)
    • 蛮力攻击或穷尽密钥搜索
    • 字母频率攻击(根据英文字母的出现频率,单词字母的组合,常用单词出现的频率来进行破译)

1.2密码分析

破译密码体制的一般思路

  1. 经典密码分析

    1. 发现加密方法内部结构的分析攻击
    2. 将加密算法看成黑盒,试图测试所有可能密钥的进行破解的蛮力攻击
  2. 实施攻击

    1. 旁道分析获得密钥(测量处理私钥的处理器的功耗)

    2. 信号处理技术从功耗轨迹中恢复出密钥

    3. 电磁辐射或算法运行时的行为都隐含着一定的密钥信息

      以上方法只适用于物理访问的密码体制

  3. 社会工程攻击

合适的密钥长度

通过蛮力破解跟密钥的长度关系非常大

1.3模运算和多种古典密码

模运算在现代密码学中的非对称算法中占有重要地位。本书主要介绍凯撒密码和仿射密码。

1.3.1模运算

除以模数,考虑余数

  1. 余数的计算

  2. 余数不唯一

  3. 等价类中所有成员的行为等价

    1. 理解什么是等价类:模m之后具有相同余数的一组数构成一个等价类
    2. 对于一个给定的模数m,选择等价类中任何一个元素用于计算的结果都是一样的。不管在等价类中怎么切换,任何模数计算的最终结果都是相同的。
  4. 余数的选择问题

    一般选择满足以下条件的r:

    0<=r<=(m-1),但从数学角度来看,选择等价类中任何一个元素对最后的结果都没有任何影响。

1.3.2整数环

  • 如果环内任何两个数相加或相乘得到的结果始终在环内,那么这个环就是封闭的
  • 加法和乘法可以相互结合
  • 加法中存在中性元素0,使得对每个(a∈Z_m)都有a+0 (equiv) a mod m
  • 环中任何元素a都存在一个负元素-a,使得a+(-a)$equiv$0 mod m,即加法逆元始终存在。
  • 乘法中存在中性元素1,类似上
  • 不是所有元素都存在乘法逆元。假设a∈Z,乘法逆元(a^{-1})可以定义为:$a*a^{-1}equiv(1 mod m. 如果a的乘法你愿存在,则可以除以这个元素,因为b/a)equiv(b*)a^{-1} mod $ m
  • 通过欧几里得算法可以判断某个元素的逆元,另外可以通过看当且仅当gcd(a,m)=1(互素),一个元素a ∈Z存在乘法逆元(a^{-1}),gcd表示最大公约数。

1.3.3移位密码(凯撒密码)

1.3.4仿射密码

1.3.5希尔密码

1.3.6维吉尼亚密码

二、序列密码

定义:序列密码也叫流密码,由密钥发生器产生密钥流,密钥流对一串明文进行加密

2.1 典型序列密码算法

  1. A5-1算法
  2. SNOW算法
  3. ZUC算法
  4. Trivium算法

2.2 密码编码学

  • 对称密码学
    • 分组密码
    • 序列密码
  • 非对称密码
  • 密码协议

2.3序列密码的加密与解密

  • 加密解密使用相同的函数

  • 使用简单的模2加法进行加密

  • 序列密码加密的密钥流长度与明文长度相同,将该铭文看作字符串或比特串,并逐字符或者逐位进行加密,为了防止密钥穷举,使用和明文信息一样长的密钥流进行加密

  • 序列密码分为同步序列密码和自(异)同步序列密码。啥区别呢,就是前者密钥序列独立于明文序列和密文序列。后者并不独立。

    • 同步序列密码特点:消息的发送者和接受者必须同步,即相同的密钥。

    • 自同步序列密码特点:明文统计扩散。


    2.4随机数生成器(RNG)

    2.4.1 真随机数生成器(TRNG)

    2.4.2 伪随机数生成器(PRNG)

    2.4.3 加密安全的味素技术生成器


    2.5 一次一密


    2.6 利用PRNG构建密钥流


    2.7 基于移位寄存器的序列密码

    2.7.1 线性反馈移位寄存器

    2.7.2 针对单个的LFSR的已知明文攻击

    2.7.3 Trivium

三、数据加密标准与替换算法

3.1 DES简介

3.2 DES算法概述

3.3 DES的内部结构

3.4 解密

3.5 DES安全性

3.6 DES替换算法

3.6.1 AES和AES入围密码

3.6.2 3DES 和 DESX

3.6.3 轻量级密码 PRESENT

四、高级加密标准

4.1 AES算法概述

4.2 伽罗瓦域

4.3 AES的内部结构

五、分组密码

5.1 分组密码加密:操作模式

5.1.1 电子密码本模式(ECB)

5.1.2 密码分组链接模式(CBC)

5.1.3 输出反馈模式(OFB)

5.1.4 密码反馈模式(CFB)

5.1.5 计数器模式(CTR)

5.1.6 伽罗瓦计数器模式(GCM)

5.2 回顾穷尽密钥搜索

5.3 增强分组密码的安全性

5.3.1 双重加密与中间人攻击

5.3.2 三重加密

5.3.3 密钥漂白

六、公钥密码学简介

6.1 对称密码学与非对称密码学

6.2 公钥密码学的实用性

6.2.1 安全机制

6.2.2 遗留问题:公钥的可靠性

6.2.3 重要的公钥算法

6.2.4 密钥长度与安全等级

6.3 公钥算法的基本数论知识

6.3.1 欧几里得算法

6.3.2 扩展的欧几里得算法

6.3.3 欧拉函数

6.3.4 费马小定理与欧拉定理

七、RSA密码体制

7.1 引言

7.2 加密与解密

7.3 密钥生成与正确性验证

7.4 加密与解密:快速指数运算

7.5 RSA的加速技术

7.5.1 使用短公开指数的快速加密

7.5.2 使用中国余数定理的快速加密

7.6 寻找大素数

7.6.1 素数的普遍性

7.6.2 素性测试

7.7 实际中的RSA:填充

7.8 攻击

八、基于离散对数问题的公钥密码体制

8.1 Diffie-Hellman密钥交换

8.2 一些代数知识

8.2.1 群

8.2.2 循环群

8.2.3 子群

8.3 离散对数问题

8.3.1 素数域内的离散对数问题

8.3.2 推广的离散对数问题

8.3.3 针对离散对数问题的攻击

8.4 Diffie-Hellman密钥交换的安全性

8.5 Elgamal加密方案

8.5.1 从Diffie-Hellman密钥交换到Elgamal加密

8.5.2 Elgamal协议

8.5.3 计算方面

8.5.4 安全性

九、椭圆曲线密码体制

9.1 椭圆曲线的计算方式

9.1.1 椭圆曲线的定义

9.1.2 椭圆曲线上的群操作

9.2 使用椭圆曲线构建离散对数问题

9.3 基于椭圆曲线的Diffie-Hellman密钥交换 9.4 安全性

十、数字签名

10.1 引言

10.1.1 对称密码学尚不能完全满足需要的原因

10.1.2 数字签名的基本原理

10.1.3 安全服务

10.2 RSA签名方案

10.2.1 教科书的RSA数字签名

10.2.2 计算方面

10.2.3 安全性

10.3 Elgamal数字签名方案

10.3.1 教科书的Elgamal数字签名

10.3.2 计算方面

10.3.3 安全性

10.4 数字签名算法

10.4.1 DSA算法

10.4.2 计算方面

10.4.3 安全性

10.5 椭圆曲线数字签名算法

10.5.1 ECDSA算法

10.5.2 计算方面

10.5.3 安全性

十一、哈希函数

11.1 动机:对长消息签名

11.2 哈希函数的安全性要求

11.2.1 抗第一原像性或单向性

11.2.2 抗第二原像性或弱抗冲突性

11.2.3 抗冲突性与生日攻击

11.3 哈希函数概述

11.3.1 专用的哈希函数:MD4家族

11.3.2 从分组密码构建的哈希函数

11.4 安全哈希算法SHA-1

11.4.1 预处理

11.4.2 哈希计算

11.4.3 实现

十二、消息验证码

12.1 消息验证码的基本原理

12.2 来自哈希函数的MAC:HMAC

12.3 来自分组密码的MAC:CBC-MAC

12.4 伽罗瓦计数器消息验证码

十三、密钥建立

13.1 引言

13.1.1 一些术语

13.1.2 密钥刷新和密钥衍生

13.1.3 n2密钥分配问题

13.2 使用对称密钥技术的密钥建立

13.2.1 使用密钥分配中心的密钥建立

13.2.2 Kerberos

13.2.3 使用对称密钥分配的其他问题

13.3 使用非对称密钥技术的密钥建立

13.3.1 中间人攻击

13.3.2 证书

13.3.3 PKI和CA

原文地址:https://www.cnblogs.com/Weber-security/p/13741173.html