现代密码学——第一章密码学基础

消息鉴别码 ,通常简称MAC

它的核心思想是:通信双方(A和B)持有同一个密钥 。发送方A用这个密钥和一段消息,通过特定的算法,生成一小段固定长度的数据,这就是消息鉴别码

A把消息本身 和这个消息鉴别码 一起发给B。B收到后,用同一把密钥和收到的消息,重新计算出一个消息鉴别码。如果B计算出来的码和A发过来的码一模一样,就说明两件事:

  • 消息没有被篡改(完整性);

  • 消息确实来自于拥有这把密钥的人(真实性)。

  • 双密钥(非对称加密)支持数字签名 :除了加密,它还能用于身份验证。比如,你可以用私钥给文件"签名",别人用你的公钥就能验证这个文件确实是你发的,且没有被篡改。

被动攻击 :即窃听,是对系统的保密性进行攻击,如搭线窃听、对文件或程序的非法拷贝等,以获取他人的信息。

主动攻击 :包括对数据流的某些篡改或产生某些假的数据流。主动攻击又可分为中断、篡改(有中生变)、伪造(无中生有)、重放等。
c:密文 m:明文 k:解密密钥 z:加密密钥 E:加密 D:解密

密码分析分类

1、唯密文攻击 破译者已知:加密算法、待破译的密文 目标:密钥,已经获得的密文对应的明文

2、已知明文攻击 破译者已知:加密算法、一定数量的密文和对应的明文 目标:密钥,任意密文对应的明文

3、选择明文攻击 破译者已知:加密算法、由任意选定的明文可得到对应的密文 目标:密钥,任意密文对应的明文

4、选择密文攻击 破译者已知:加密算法、选定的明文和对应的密文、选定的密文和对应的明文 目标:密钥,任意密文对应的明文

目的都要任意密文对应的明文

唯密文攻击是难度最大的

上述攻击的强度是递增的

一个密码体制是安全的,通常是指在前三种攻击下的安全性
一个密码系统是安全的必要条件:穷举密钥搜索将是不可行的
密钥变化量少于2的80的密码算法是不安全的! 密钥变化量为2的128的密码算法是安全的!
加解密算法(E,D)应该是公共的标准算法,是公开的

如果每一次加密/解密过程,都要选择一次加解密密钥(z,k),则加解密方式称为一次一密的。

多次一密的加解密方式使得攻击者增加了集中新的攻击手段,其中包括:已知明文攻击。

古典密码

置换密码

古典密码的基本运算:

置换密码 (permutation cipher),又称换位密码 (transposition cipher):明文的字母保持相同,但顺序被打乱了。

代换密码 (substitution cipher):明文中的每一个字符被替换成密文中的另一个字符。接收者对密文做反向替换就可以恢复出明文。

代换密码

凯撒密码

凯撒密码

加密算法:C=(m+k)mod26 解密算法:m=(C-k)mod26

循环移位密码 ------ 加密: 字母向后移动k位; 解密: 字母向前移动k位。

这个函数是欧拉函数

仿射密码(Affine cipher)

加密变换:f(x)=xk_1+k_2 mod q, 0≤x<q 其中k_1,k_2∈Z_q ,(k_1,q)=1,以k_1,k_2表示密钥。当k_2=0时就得到乘数密码,当k_1=1时就得到移位密码。 q=26时可能的密钥数为26×φ(26)=26×12=312个。

只要密文中含有q个不同的字母(因此对应的明文中也含有q个不同的字母),则加密变换f被确定。

对于移位代换密码,只要密文中含有1个字母(对应的明文中也含有1个字母),则密钥𝑘被确定。

对于乘法密码,只要密文中含有1个字母(对应的明文也含有1个字母),则密钥𝑘被确定。

对于仿射密码,只要密文中含有2个不同的字母(对应的明文中也含有2个不同的字母),则密钥k1,k2被确定。

对于多项式代换密码,只要密文中含有min⁡{𝑡+1,𝑞}个不同的字母(对应明文中也含有min⁡{𝑡+1,𝑞} 个不同的字母),则密钥k0,... kt被确定。

多表代换密码

维吉尼亚密码(Vigenere)

可逆映射f_0,f_1,...,f_d−1都是移位代换密码

注意:A为0

例:p=data security k=best c=EELT TIUN SMLR

当d接近于无穷大,vigenere变成了现代密码的一种,我们称之为流密码或序列密码

简单快速协商极长的密钥序列:一种办法 取为一本书,只需相互告知书名版本号;另一种办法 取为周期序列的一个周期,周期d极大,用长度ln(d)的"密钥种子"采用公开算法递归生成这个周期序列,只需告知密钥种子,这是现代流密码一般构造

流密码和分组密码

流密码 (Stream Cipher)

  • 原理 :流密码的核心是生成一个与明文长度相等的、看似随机的密钥流(KeyStream)。然后,将这个密钥流与明文进行逐位(通常是一个比特或一个字节)的异或(XOR) 运算,从而得到密文。

  • 类比:想象你有一条很长的秘密消息(明文)。流密码会生成一条与之等长的、一次性使用的乱码纸条(密钥流)。你把消息和乱码纸条对齐,然后按照某种规则(比如字母替换)组合起来,就形成了外人看不懂的密文。接收方只要有同样的乱码纸条生成方法,就能反向操作还原消息。

  • 关键点:加密是无状态的,它处理的是一个连续的流。每个明文位对应一个密钥流位。

分组密码 (Block Cipher)

  • 原理 :分组密码将明文分成固定长度的数据块(例如,每128位为一个块)。然后,使用密钥和固定的算法对每个数据块进行加密,输出同样长度的密文块。如果最后一块不足规定长度,则需要使用特定的填充(Padding)技术将其补满。

  • 类比:你有一份长电报(明文)。你把它剪成每张固定长度的纸条(比如每张写10个字)。然后,你使用一个复杂的机器和密钥,把每张纸条上的字通过一系列的置换和替换操作,变成完全不同的另一组字(密文块)。最后把这些加密后的纸条串起来发给对方。

  • 关键点:加密是有状态的,它处理的是固定大小的数据块。由于算法复杂,它通常会采用多种模式(如CBC、CTR等)来增强安全性。

相关推荐
AI科技星4 天前
基于全域数学公理体系求解三元约束极值题【乖乖数学】
人工智能·算法·机器学习·密码学·拓扑学·乖乖数学·全域数学
云水一下6 天前
DVWA从入门到精通(十八):Cryptography(密码学问题)
web安全·密码学·dvwa
MartinYeung56 天前
W3C Agent Identity 最新标准:从密码学视角的深度解析
密码学
风行南方6 天前
弄懂有限域,AES加密核心GF(2⁸)数学原理详解
密码学
想你依然心痛9 天前
量子计算对嵌入式密码学的挑战与后量子算法准备
算法·密码学·量子计算
AI科技星11 天前
超复数全域经济周期场与信息谱场——金融与密码学底层理论重构《0·1·∞三元一体全域超复数统一场论》系列全集(六一字不漏完整合订终版)
人工智能·算法·金融·密码学·拓扑学·乖乖数学·全域数学
被克制了12 天前
安全协议设计与分析(2)
网络安全·密码学·安全协议
风行南方12 天前
密码学之分组密码
网络·密码学
北域码匠14 天前
RIPEMD-128哈希算法深度解析
c#·密码学·哈希算法·加密算法·消息摘要·ripemd-128·原生实现
如君愿1 个月前
考研复习 Day 52 | 密码学--第九章 密钥管理(下)
密码学·课后习题