Skip to content

现代密码学

1836字约6分钟

Crypto

2024-11-25

一、密码学概述

1.信息安全的六个属性

可用性、机密性完整性真实性、非否认性、可控性。

2.密码体制五元组(M, C, K, E, D)

  • M: 明文空间
  • C: 密文空间
  • K: 密钥空间(加密密钥、解密密钥)
  • E: 加密算法
  • D: 解密算法

3.安全模型

  • 唯密文攻击
  • 已知明文攻击
  • 选择明文攻击
  • 自适应选择明文攻击
  • 选择密文攻击

4.密码体制

柯克霍夫准则

密码体制的安全性完全寓于密钥之中。

二、古典密码学

1.置换密码

  • 置换列密码
  • 周期置换密码

2.代换密码

单表代换密码

  • 移位密码(凯撒密码)
  • 仿射密码
  • 替换密码

多表代换密码

  • 维吉尼亚密码
  • Playfair密码
  • 转轮密码
  • 希尔密码

三、分组密码

设计思想:扩散混淆

操作模式:

  • 电子密码本模式(ECB,Electronic Code Book)
  • 密码分组链接模式(CBC,Clipher Block Chaining)
  • 密码反馈模式(CFB,Cipher Feedback)
  • 输出反馈模式(OFB,Output Feedback)

操作模式小结:

  • ECB是最快、最简单的分组密码模式,但它的安全性最弱,一般不推荐使用ECB加密消息,但如果是加密随机数据,如 密钥,ECB则是最好的选择。
  • CBC适合文件加密,而且有少量错误时不会造成同步失败,是软件加密的最好选择。
  • CFB通常是加密字符序列所选择的模式,它也能容忍少量错误扩展,且具有同步恢复功能。
  • OFB是在极易出错的环境中选用的模式,但需有高速同步机制。

1.DES密码算法

  • 明文和密文为64位分组长度
  • 密钥长度:56位 , 但存在弱密钥,容易避开。(64比特密钥中8比特为校验位)
  • 采用混乱扩散的组合,每个组合先替代置换,共16

密码模型

  • Festel模型

基本参数

  • 分组长度:64比特
  • 密钥长度:64比特
  • 有效密钥长度:56比特
  • 迭代圈数:16圈
  • 每圈子密钥长度:48比特

编码环节

  • 6进4出的S盒变换
  • 逐位模2加变换
  • 比特移位变换P盒
  • 比特移位变换E盒
  • 比特抽取变换PC1、PC2和IP

2.AES密码算法

加密过程: 字节代换行移位列混淆轮密钥加

AES和DES不同之处

AESDES
密钥长度128位、192位、256位(可变的)56位(固定的)
运算对象面向字节面向比特
加解密运算不一样,因而加密器不能同时用作解密器无AES的限制

3.SM4密码算法

密码算法结构

四、序列密码(流密码)

算法举例: RC4、A5

1.线性反馈移位寄存器

1732541103356
1732540927771
1732541116146
1732541130976

2.非线性序列

(选择填空)

  • Geffe序列生成器
  • J-K触发器
  • Pless生成器
  • 门限发生器

五、密码学数论基础

1.欧拉定理

  • 欧拉函数
    mm是一个正整数,则mm个整数0,1,...,m10,1,...,m-1中与mm互素的整数的个数,记为ϕ(m)\phi(m),称为欧拉函数。
    mm为素数时,ϕ(m)=m1\phi(m)=m-1mm合数时,ϕ(m)<m1\phi(m)<m-1

  • 费马小定理
    mm是素数,aa是任意整数,且(a,m)=1(a,m)=1,则有am11(mod m)a^{m-1}\equiv 1(mod\ m)

  • 欧拉定理
    mm是大于1的整数,aa是与mm互素的整数,则有aϕ(m)1(mod m)a^{\phi(m)}\equiv 1(mod\ m)

2.模重复平方计算法

计算bn( mod m)b^n(\ mod\ m),其中mmnn都是大整数。

①将n写成二进制形式

nn写成二进制形式:n=n0+n12+n222+...+nk12k1n=n_0+n_1 2+n_2 2^2+...+n_{k-1} 2^{k-1}

②计算

a=1a=1

{a0=abn0( mod m), b1=b2( mod m)a1=a0b1n1( mod m), b2=b12( mod m)ak1=ak2bk2nk1( mod m) \begin{cases} a_0 = a·b^{n_0}(\ mod\ m),\ b_1=b^2(\ mod\ m)\\ a_1 = a_0·b_1^{n_1}(\ mod\ m),\ b_2=b_1^2(\ mod\ m)\\ \cdots\\ a_{k-1} = a_{k-2}·b_{k-2}^{n_{k-1}}(\ mod\ m) \end{cases}

最终得到ak1a_{k-1},也就是结果:bn( mod m)b^n(\ mod\ m)
1732692706944

3.☆中国剩余定理(CRT)(一次同余式组)☆

m1,m2,...,mkm_1,m_2,...,m_k是两两互素的正整数,a1,a2,...,aka_1,a_2,...,a_k是任意整数,则同余式组

{xa1( mod m1)xa2( mod m2)xak( mod mk) \begin{cases} x\equiv a_1(\ mod\ m_1)\\ x\equiv a_2(\ mod\ m_2)\\ \cdots\\ x\equiv a_k(\ mod\ m_k) \end{cases}

求解x的步骤:

  • 1.计算m=m1m2...mkm=m_1m_2...m_k
  • 2.计算Mi=m/mi(i=1,2,...,k)M_i=m/m_i(i=1,2,...,k)
  • 3.计算MiM_i在模mim_i意义下的逆元Mi1M_i^{-1}
  • 4.计算x=i=1kaiMiMi1( mod m)x=\sum_{i=1}^{k}a_iM_iM_i^{-1}(\ mod\ m)
    1732697775533

4. 整数的原根

m>1m > 1 是整数,aa 是与 mm 互素的正整数,则使得

ae1( mod m) a^e \equiv 1 (\ mod\ m)

的最小正整数 ee 称为 aa 对模 mm 的指数(或阶),记作 ordm(a)\text{ord}_m(a)。如果 aa对模 mm 的指数是 ϕ(m)\phi(m) ,则称 aa 为模 mm 的原根(或本原元)。

m>1m >1是整数,aa是与mm互素的整数,则整数dd 使得 ad1( mod m)ad \equiv 1 (\ mod\ m) 成立的充要条件是ordm(a)d\text{ord}_m(a) | d

推论1 设m>1m > 1是整数,aa 是与mm 互素的整数,则 ordm(a)ϕ(m)\text{ord}_m(a) | \phi(m)

举例:5 模17的指数, ord17(5)=16=ϕ(17)\text{ord}_{17}(5) = 16 = \phi(17),5是模17的原根。

六、散列函数和消息认证

1.MD5算法

1.1 消息填充

1732712654941

1.2 附加消息长度

1732712682042

1.3 初始化链接向量

1732712750619

1.4 处理消息分组、输出结果

1732712782232

七、公钥密码

对称密码体制的缺陷、要求
1732712941570
1732712985941

常见算法

  • 背包问题(NP问题、背包算法
  • 基于大整数素因子分解问题(RSA)
  • 基于有限域乘法群上的离散对数问题(ElGamal)
  • 椭圆曲线的离散对数问题(ECC)
  • 基于身份、属性的密码体制(IBE、ABE)

1.背包算法

2.RSA算法

2.1 密钥对生成算法

3.ElGamal算法

1732713379818

4.RSA算法的安全性

八、数字签名

1732713413175
1732713424821
1732713432266
1732713440682
1732713455483
1732713464250
1732713475463
1732713486578
1732713504192
1732713516786
1732713528684

九、密钥管理

Easy

参考

https://osdoc.net/md/28/
https://chenyangwang.gitbook.io/mathematical-base-for-information-safety
https://oi-wiki.org/math/number-theory/crt/
http://www.uinio.com/Math/LaTex/

变更历史

最后更新于: 查看全部变更历史
  • Add Ubuntu

    于 2024/11/29
  • Update

    于 2024/11/27
  • Update 现代密码学 & Add GoogleAnalytics

    于 2024/11/27
  • Update

    于 2024/11/26
  • Update

    于 2024/11/25
  • Update 现代密码学

    于 2024/11/25