【密码学】1. 引言

目录

  • [1. 引言](#1. 引言)
    • [1.1 密码学的发展概况](#1.1 密码学的发展概况)
    • [1.2 密码学的基本概念](#1.2 密码学的基本概念)
    • [1.3 密码体制的攻击方法](#1.3 密码体制的攻击方法)
    • [1.4 古典密码体制](#1.4 古典密码体制)
    • [1.5 第一章重点](#1.5 第一章重点)
    • [1.6 密码的其他分类方式](#1.6 密码的其他分类方式)

1. 引言

1.1 密码学的发展概况

  1. 学科属性:古老、年轻且深奥,研究信息系统安全保密,包含密码编码学和密码分析学。
  2. 发展阶段:
    • 古典密码学→现代密码学
    • 1949 年前:技术型 "艺术",非科学
    • 1949 年:Shannon 发表《保密系统的通信理论》,使密码学成为科学
    • 1976 年:Diffie 和 Hellman 发表《密码学的新方向》,引发密码学革命(提出非对称密钥思想)
    • 1977 年:美国国家标准局公布 DES 算法,公开算法细节,推动密码学普及
  3. 现代应用:数据加密、密码分析、数字签名、信息鉴别、零知识认证、秘密共享等。
  4. 数学工具:概率统计、数论、代数、混沌、椭圆曲线等。

1.2 密码学的基本概念

  1. 核心术语
    • 明文(plaintext):未加密的信息
    • 密文(ciphertext):加密后的信息
    • 加密:将明文伪装为密文的过程(记为 E K ( M ) = C E_K(M)=C EK(M)=C)
    • 解密:将密文恢复为明文的过程(记为 D K ( C ) = M D_K(C)=M DK(C)=M)
    • 密钥(K):控制加密和解密的参数,部分算法使用不同加密密钥( K 1 K_1 K1)和解密密钥( K 2 K_2 K2),满足 D K 2 ( E K 1 ( M ) ) = M D_{K_2}(E_{K_1}(M)) = M DK2(EK1(M))=M。
  2. 密码系统模型
    • 要素:信源(明文 M M M)、加密器( E K 1 E_{K_1} EK1)、密钥源( K 1 , K 2 K_1,K_2 K1,K2)、传输信道(密文 C C C、密钥信道)、解密器( D K 2 D_{K_2} DK2)、接收者(明文 M M M)。
    • 攻击类型:主动攻击(篡改 c c c 为 c ′ c′ c′)、被动攻击(窃听 c c c)。
  3. 密码体制分类
    • 对称密码(单钥 / 私钥密码):加密与解密密钥相同(如分组密码、流密码)。
    • 非对称密码(双钥 / 公钥密码):加密与解密密钥不同(如 RSA)。
  4. 好的密码体制的条件
    • 已知明文 m m m 和加密密钥 k 1 k_1 k1 时,计算 c = E k 1 ( m ) c=E_{k_1}(m) c=Ek1(m) 容易;已知密文 c c c 和解密密钥 k 2 k_2 k2 时,计算 m = D k 2 ( c ) m=D_{k_2}(c) m=Dk2(c) 容易。
    • 未知解密密钥 k 2 k_2 k2 时,无法由密文 c c c 恢复明文 m m m。
  5. 可破译性
    • 可破译:能由密文确定明文 / 密钥,或由明文 - 密文对确定密钥。
    • 不可破译:反之。

1.3 密码体制的攻击方法

  1. 攻击类型
    • 穷举攻击:试遍所有密钥→对抗:增大密钥数量。
    • 统计分析攻击:分析明文与密文的统计规律→对抗:使两者统计规律不同。
    • 解密变换攻击:针对加密变换的数学基础求解解密变换→对抗:选用数学基础坚实、复杂度高的算法。
  2. 攻击场景(强度递增)
    • 唯密文攻击:仅知密文。
    • 已知明文攻击:知部分明文及对应密文。
    • 选择明文攻击:可选择明文并获取对应密文。
    • 选择密文攻击:可选择密文并获取对应明文。
  3. 安全性分类
    • 无条件安全:一次一密方案(理论上不可破译)。
    • 计算上安全:满足以下任一条件:破译代价超过信息价值;破译时间超过信息有效期(如流密码、分组密码、公钥密码)。

1.4 古典密码体制

  1. 置换密码(易位密码)

    • 原理:明文字母位置重新排列,字母本身不变。
    • 例子:明文 "never accept failure no matter how often it visits you"→密文 "uoys tisi vtin etfo wohr etta mone ulia ftpe ccar even"。
    • 特点:简单但不安全,易被识破。
  2. 单表代替密码

    • 原理:用一个密文字母表中的字母一对一替换明文字母表中的字母( f : A → B , f ( a i ) = b i f:A→B,f(a_i)=b_i f:A→B,f(ai)=bi)。
    • 分类:
      • 加法密码: j = i + k ( m o d n ) ( 0 < k < n ) j=i+k(modn)(0<k<n) j=i+k(modn)(0<k<n),如凯撒密码(k=3,明文 "ATTACK"→密文 "DWWDFN")。
      • 乘法密码: j = i k ( m o d n ) ( 0 < k < n ,且 k 与 n 互质) j=ik(modn)(0<k<n,且k与n互质) j=ik(modn)(0<k<n,且k与n互质)。
      • 仿射密码:加法与乘法结合, j = k 0 + i k 1 ( m o d n ) ( 0 < k 0 < n , k 1 与 n 互质) j=k_0+ik_1(modn)(0<k_0<n,k_1与n互质) j=k0+ik1(modn)(0<k0<n,k1与n互质)。
      • 密钥短语代替密码:以短语为密钥(去重后作为密文前缀,剩余字母补全),如密钥 "Happy New Year"→密文表(a→H,b→A,c→P,...)。
  3. 多表代换密码

    • 原理:将明文分为 n 个字母的分组,

      加密公式 C i = A M i + B ( m o d N ) ( A 为可逆矩阵, g c d ( ∣ A ∣ , N ) = 1 ) C_i=AM_i+B(modN)(A为可逆矩阵,gcd(∣A∣,N)=1) Ci=AMi+B(modN)(A为可逆矩阵,gcd(∣A∣,N)=1);

      解密公式 M i = A − 1 ( C i − B ) ( m o d N ) M_i=A^{−1}(C_i−B)(modN) Mi=A−1(Ci−B)(modN)。

    • 例子:n=3,N=26,明文 "YOUR PIN NO IS FOUR ONE TWO SIX"→密文 "WGI FGJ TMR LHH XTH WBX ZPS BRB"。

1.5 第一章重点

  • 密码体制的分类(对称 / 非对称)。
  • 攻击方法:穷举攻击、统计分析攻击、解密变换攻击。
  • 攻击场景:唯密文、已知明文、选择明文、选择密文攻击。
  • 古典密码的基本原理(置换、单表 / 多表代替)。

1.6 密码的其他分类方式

  • 按历史发展阶段:手工密码、机械密码、电子机内乱密码、计算机密码。
  • 按操作类型:替代密码、移位密码。
  • 按保密程度:理论上保密、实际上保密、不保密。
  • 按明文处理方法:分组密码、序列密码。
  • 按密钥类型:对称密钥密码、非对称密钥密码
相关推荐
枷锁—sha几秒前
从零掌握XML与DTD实体:原理、XXE漏洞攻防
xml·前端·网络·chrome·web安全·网络安全
Mr_Xuhhh12 分钟前
Qt窗口(2)-工具栏
java·c语言·开发语言·数据库·c++·qt·算法
JQLvopkk31 分钟前
C#通过HslCommunication连接西门子PLC1200,并防止数据跳动的通用方法
前端·javascript·算法
艾莉丝努力练剑40 分钟前
【数据结构与算法】数据结构初阶:详解顺序表和链表(五)——双向链表
c语言·开发语言·数据结构·学习·算法
李昊哲小课1 小时前
支持向量机SVM
人工智能·算法·机器学习·支持向量机·数据挖掘·sklearn
jndingxin1 小时前
OpenCV多尺度图像增强算法函数BIMEF()
人工智能·opencv·算法
算法_小学生1 小时前
Hinge Loss(铰链损失函数)详解:SVM 中的关键损失函数
开发语言·人工智能·python·算法·机器学习·支持向量机
paopaokaka_luck1 小时前
基于SpringBoot+Vue的汽车租赁系统(协同过滤算法、腾讯地图API、支付宝沙盒支付、WebsSocket实时聊天、ECharts图形化分析)
vue.js·spring boot·后端·websocket·算法·汽车·echarts
kyle~2 小时前
C++---cout、cerr、clog
开发语言·c++·算法
钢铁男儿2 小时前
PyQt5信号与槽(信号与槽的高级玩法)
python·qt·算法