网络空间安全——密码学基础

2-0  基本概念

1、密码体制语法定义

        明文消息空间M: 可能的明文字母串集合

        密文消息空间C: 可能的密文字母串集合

        加密密钥空间K: 可能的加密密钥集合

        解密密钥空间K’: 可能的解密密钥集合

        有效的密生成算法: N>K X K’

        加密算法E: M X K → C

        解密算法D: C X K’→ M

  • 密码体制分类
    • 双(公)钥密码体制 ke≠kd
    • 单(私)钥密码体制 ke=kd
      • 流密码
      • 分组密码

2、古典密码  Kryptos

  • 置换密码 -> 明文字母保持不变,但顺序打乱  -> 矩阵置换
  • 代换密码  -> 明文字母被替换,但顺序保持不变

                单表代换 -> 一个明文字母对应的密文字母是确定的 -> 凯撒密码

                多表代换 -> 一个明文字母可以表示为多个密文字母 -> 维吉尼亚密码(引入密钥)

                弗纳姆密码 -> 流密码雏形 -> 将每消息比特和相应的密钥比特进行比特异或运算

​​​​2-1 单(私)钥密码体制

 1、流密码 逐比特异或

  • 基本概念
    • 明文m
    • 伪随机序列k   ->  有限状态自动机(有限存储单元和确定性算法)
    • 若密钥流是完全随机的非周期序列,则可以用它实现一次一密
    • 密文 c = Ek(m)
    •  密钥流生成器的结构   ->  δ:密钥流生成器的内部状态
    • 加密解密过程相同且互逆;流密码的安全性完全依赖于伪随机数的强度

                        驱动部分:状态序列s控制生成器的周期和统计特性

                        组合部分:对s进行非线性组合        

  • 分类
    • 同步流密码:δ与明文消息无关,则密钥流独立于明文。(明文不进入密钥流发生器)
      • 无记忆性,时变的;对失步敏感;没有传输差错。
    • 自同步流密码:δ依赖于密钥流与明文。
      • 一位出错,影响后n位密钥的正确性;具有自同步功能。

 2、快速软、硬件实现的流密码算法

  • A5加密算法(自同步流密码)
    • GSM(数字蜂窝网)中采用,用于手机到基站无线链路的加密
    • 由三个线性反馈移位寄存器(LFSR)组成,级数N分别为19、22、23
    • 特点:执行效率高✅移位寄存器级数短,可以用穷尽法破译❌
  • 加法流密码生成器

    • 递归关系式给出i时刻的输出字
    • 选择适当系数使生成序列周期最大化,条件:选用次数大于2的本原3次式,且以斐波纳切数列决定递推式的系数
    • 加法流密码生成器举例:FISH、PIKE、MUSH
  • RC4算法(不公开,密钥长度可变,同步流密码)
    • 基于输出反馈模式,利用8x8个S盒,在变长密钥控制下对0,1,...,255的数进行置换
  • 祖冲之密码算法  -> 128-EEA3(用于4G)

 3、分组密码

  • m长分组 -> n长数字序列
  • 设计要求:
    • 分组长度大于128bit
    • 密钥长度大于128bit
    • 算法足够复杂
    • 加密解密简单,易于实现
    • 数据无扩展
    • 差错传播尽可能得小
  • shannon密码设计思想
    • 扩散diffusion:如置换,重新排列字符。隐蔽明文数字的统计特性
    • 混淆confusion:如代换。密钥和密文关系复杂化,统计相关特性极小化。
  • DES(data encryption standard)介绍:
    • 明文64bit,密文56bit
    • 满足feistel网络结构,加密解密操作非常相似,只需要逆转密钥编排
    • DES一轮加密过程
    • S盒-> 混淆:决定安全性 ;
      • S盒是在对称密钥算法中用于执行置换计算的基本结构,它是唯一的一个非线性结构。S盒的主要功能是通过简单的“代替”操作来混淆密钥与密文之间的关系。 ​具体来说,S盒可以将48比特的数据压缩成32比特。这个过程涉及将特定的数量(通常是48比特)通过8个不同的S盒进行处理,每个S盒具有6位输入和4位输出的能力。 ​这些S盒构成一个四行十六列的表格,其中的每一项是一个4位二进制数,代表相应的十进制数值。
    •   P盒 ->扩散:一比特明文改变,影响大部分密文

  • AES(advanced encryption standard)
    •  rijndeal算法为AES原型,由基本的“轮变换”(记为Round(State,Roundkey))经过多次迭代而成。
    • ​​​​​​
      • state ->消息轮矩阵  ; roundkey -> 轮密钥矩阵
      • eg:以明文分组长度128bit,密钥长度128bit为例
      • 字节代换  SubBytes(state)  ->为每个字节提供非线性变换
      • 行位移       ShiftRows(state)
      • 列混淆       Mix Columns(state) ->
      • 轮密钥加 AddRoundKey(State,RoundKey)   ->
    • 加密解密不满足feistel结构,需要两块板子,两种算法。

4、中国商用分组密码算法SM4

5、分组密码的工作模式分类

  • 电码本模式(ECB)Electronic CodeBook     用相同的密钥分别对明文分组单独加密。

  • 优点:每个数据块独立加密,可并行加密,实现简单
  • 缺点:相同明文会产生相同密文,不具备数据完整保护性
  • 适用:于短消息加密传输
  • 密码分组链接模式(CBC)Cipher Block Chaining  前一个密文块当前明文块进行异或运算后再加密。
    • 优点:每个密文块的加密依赖前一个密文块,具备数据完整性保护
    • 缺点:错误传播、不适合并行处理
    • 适用:于常规文件加密、非实时加密等场景
  • 密码反馈模式(CFB) Cipher FeedBack前一个密文块作为输入进行加密,生成一个密钥流,再与当前明文块进行异或运算得到密文块
    • 优点:可变长度的加密操作;实时性;可以部分解密数据
    • 缺点:错误传播敏感;不适合并行处理;需要保证初始向量的唯一性和完整性
    • 适用于流加密和对特定部分数据进行随机访问的场景
  • 输出反馈模式(OFB)Output-FeedBack前一个加密算法的输出作为输入进行加密,生成一个密钥流,再与当前明文块进行异或运算得到密文块
    • 优点:可变长度的加密操作;实时性;对于密文分组的错误不敏感
    • 缺点:传输错误不可恢复;不支持并行加密;无法提供数据完整性保护
    • 适用于实时数据流加密和随机访问的场景
  • 计数器模式(CTR)Counter 每一个明文分组都与一个经过加密的计数器异或。对每个后续的分组,计数器增1。
    • 优点:可并行处理;随机访问;不受错误传播影响
    • 缺点:计数器必须唯一;密钥流和明文相关性较弱
    • 适用于并行加密、随机访问和实时加密的场景

2-2 双(公)钥密码体制

  • 公钥密码体制的基础 -> 计算复杂度理论
    • Whitfield Diffie& Martin Hellman公钥密码思想
    • f(x):A → B
      • 单射(一 一映射)
      • 单向函数:逆向求x极为困难
      • 陷门单向函数:fz:Az→Bz,z∈Z,Z->陷门信息集合
        • 对于给定z∈Z,容易找到一对算法Ez和Dz,使对于所有x∈A,易于计算fz及其逆
          • fz(x)=Ez(x) ; Dz(fz(x))=x
        • 对于所有z∈Z,给定Ez和Dz,使对于所有x∈A,难以计算x
      • 数学难问题eg:
        • 有限域上的离散对数问题DL ->Elgamal、DH
        • 大整数难分解问题FAC ->RSA、Rabit
        • 椭圆曲线上的离散对数问题
        • 多项式求根
        • Diffie-Hellman问题(DHP)
  • 公钥密码体制原理
    • A给B发送消息,采用B的公钥加密
    • 常用加密模式:用公钥传递会话密钥(单钥)
  • 公钥密码体制特点
    • 公钥:可以被任何人知道,用于加密和验证签名
    • 私钥:只有持有者知道,用于解密或签名
    • 公钥密码体制解决了对称密钥的发布和管理问题
  •  公钥密码体制用途
    • 密钥分发
    • 消息加密
    • 数字签名
      • 发送方采用自己的私钥对消息进行签名
      • 接收方采用发送方的公钥对签名进行验证
  •  公钥密码体制的安全型
    • 安全性依赖于解数学上的困难问题。
    • 穷搜索(exhaustive search)在理论上能够破解公钥密码,当密钥足够长时破解极其困难目前,通常要求足够大的密钥长度(>1024 bits)。
    • 密钥太长会导致加密速度缓慢,因此公钥算法常用于密钥传递,而一般不用于实时的数据加密。
  • RSA密码体制 PKCS系列标准
    • 理论基础为一种特殊的可逆模指数运算,安全性基于大整数分解的困难性
    • 可应用于消息加密和数字签名。
    • RSA公钥算法说明
      • 密钥生成算法
        • (两个不同奇素数p,q)、算(n=p*q, 欧拉函数值φ(n)=(p-1)(q-1))、选(一个整数1≤ e <φ(n),GCD(φ(n),e)=1)、算(e逆元d=e-1modφ(n) ->费马小定理)
        • 公钥为n、e,私钥为d (p、q不再需要,可销毁,但绝不可泄露)
      • 加密算法 :m → c = me mod n
      • 解密算法:  c  → cd = m mod n
    • RSA算法的安全性
      •  理论上,RSA的安全性取决于模n分解的困难性。采用广义域筛所需计算机资源:
      • 单钥和双钥密码在相同安全性下的等价密钥长度
    • RSA算法的局限性:加密速度很慢,为DES的千分之一
      • RSA破解
  •  ElGamal公钥密码算法/ Schnorr /DSA签名算法
    • 基于有限域上的离散对数问题的困难性
    • 算法说明
      • 密钥生成算法: 选择私钥α in GF(p)*,计算公钥 β =gα mod p
      • 加密算法 :选择一个随机数k(仅发送方持有),且(k,p-1)=1 ; 加密 m → (gk,m βk) mod p = (y1,y2) =c
      • 解密算法:m=y2 y1-α mod p
  • 其他公钥密码算法
    • Diffie-Hellman公钥密码体制
      •  D-H协议核心思想:1、交换公钥;2、计算共享密钥
      • 基于离散对数难题
      • 不能抵抗中间人攻击
    • 椭圆曲线密码体制ECC
      • 基于椭圆曲线上的离散对数问题
      • 可以使用比RSA更短的密钥
      • 应用:无线MODEM、WEB服务器、集成电路卡
      • 实数域上的椭圆曲线的概念
  • 中国商用密码SM2算法
  • 31
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值