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

消息鉴别码 ,通常简称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等)来增强安全性。

相关推荐
一袋米扛几楼981 天前
【密码学】密码学中的 Frequency Test(语言有“口音”) 是什么?
密码学
搬砖魁首1 天前
密码学系列 - ECDSA的门限签名方案
密码学·ecdsa·门限签名·partial_sign·combine_sign
Codefengfeng2 天前
zsteg的安装与使用(kali环境)
chrome·web安全·网络安全·密码学
武帝为此2 天前
【HMAC加密算法介绍】
算法·密码学
qq_4592344216 天前
【题库】| 商用密码应用安全性评估从业人员考核题库(四十)
职场和发展·密码学·学习方法·考核·商用密码·商用密码应用安全性评估·密评
黄金龙PLUS17 天前
数据加密标准算法DES
网络安全·密码学·哈希算法·同态加密
黄金龙PLUS20 天前
高级加密标准算法AES
网络安全·密码学·哈希算法·同态加密
Chengbei1120 天前
内网渗透过程中搜寻指定文件内容Everything小工具
android·安全·网络安全·系统安全·密码学·网络攻击模型·安全架构
qq_459234421 个月前
【题库】| 商用密码应用安全性评估从业人员考核题库(十二)
安全·职场和发展·密码学·跳槽·学习方法