电子密码本模式(Electronic Code Book, ECB)
密码分组链接模式(Cipher Block Chaining,CBC)
密码反馈模式(Cipher Feedback Block,CFB)
输出反馈模式(Output Feedback Block,OFB)
一、密码学概述
密码学定义
密码学一种狭义定义:
是一种保密通信技术,通过对信息进行加密和解密,在第三方监听的情况下,实现信息的安全传输。
广义上讲,密码学不只是保密通信技术,已经延伸至信息安全诸多领域(是信息安全的基础和核心)
如:
数据完整性检测
消息认证
数字签名
更多地 :
保密通信、存储加密、用户身份验证、区块链、隐私计算、零知识证明、安全多方计算
听起来很高大上,但其实大部分核心技术就是用之后讲的哈希函数。。。
在狭义密码学中,根据定义,自然离不开明文–加密–》密文-- 解密–》明文的过程。
与国际接轨,常用英文来表示(之后会经常用到)
消息:
明文 (Plaintext) 常用p表示
密文 (Ciphertext) 常用c表示
算法 :
使用密钥 一般用k表示
加密(Encryption) 加密函数一般用 E()表示 c=§
解密 (Decryption) 解密函数一般用 D( )表示
密码学与信息安全:
经典信息安全三要素: 机密性、完整性、可用性 confidentiality、Intergerity availability
(CIA!!)
拓展:机密性,完整性,可用性,隐私性,可认证性与可信赖性,不可抵赖性,可说明性,可审计性。
其中与密码学相关的:机密性,完整性,可用性,认证性、不可抵赖性
攻击:
如图所示
中断 (拒绝服务)阻止或禁止通信设施的正常使用两种实现方式:1.攻击者删除传输过程中某个地方的链接。2.DDos,对特定目标滥发消息使之过载
截取
篡改
伪造
重放 是指攻击者发送一个目的主机已接收过的包,来达到欺骗系统的目的
对安全性的攻击
中断: 可用性
截取:机密性
篡改:完整性、真实性、有序性
伪造、重放:认证性
分类:
被动攻击:截取。通常难以检测
主动攻击:中断、篡改、伪造、重放。是指攻击者对连接中通过的协议数据单元进行各种处理
密码学分类
密码学的技术分两部分,一个是密码编码学、一个是密码分析学。
密码编码学研究如何对信息编码以实现信息和通信安全
密码分析学研究如何破解或攻击受保护的信息
密码编码学:
从安全目标来看,分为保密体制和认证体制
根据使用密钥策略,分为对称密码体制和非对称密码体制
对称密码体制
密钥完全保密,加密密钥和解密密钥相同,或根据一个可以很容易推出另一个
优点:
运算速度比较快、密钥相对较短、密文长度往往与明文长度相同
缺点:
密钥分发需要安全通道、密钥量大,难以管理(不同人给的密钥要不同)、难以解决不可否认问题
非对称密码体制:
使用两个密钥:一个公钥对外公开,一个私钥只有拥有者知道 理论上不能从公钥推出私钥
例如电子邮件机制:任何人可以用接收者的公钥进行加密(找到接受者的邮箱地址发送),接收者用私钥解密(登录账号密码,来查看邮件)
加解密算法和数字签名算法
优点:
密钥分发容易、密钥管理简单、可以有效实现数字签名
缺点:
运算速度较慢、密钥位数相对多些、密文长度往往大于明文长度。(??学到时再回来看)
保密体制模型:
明文空间P:所有可能的明文
密文空间C:所有可能的密文
密钥空间K:所有可能的密钥 K1 加密密钥空间 K2 解密密钥空间
加密算法 c=§
解密算法
密码分析学:
现代密码学的密码系统设计必须遵循柯克霍夫原则,秘密必须完全寓于密钥中,加密和解密的安全性取决于密钥的安全性,加密解密算法是公开的。只要密钥安全,攻击者就无法得到明文。
安全性分为无条件安全性(理论安全性)和有条件安全性(实际安全性)
密码体制的攻击类型:
在不知道密钥的情况下,不同条件下的攻击
唯密文攻击:只知道一定数量密文
已知明文攻击:除了一部分密文,还有一些明密文对
选择明文攻击:对任意明文可得到其密文,比如掌握加密机时
选择密文攻击:对任意密文可得到其明文,比如掌握解密机时
选择文本攻击: 选择明文和选择密文的结合,同时掌握加密机和解密机时
不同时期的密码学
按照1949年香农发表的那篇论文《保密系统的通信理论》为分界
古典密码学:主要分为代换式密码和置换式密码两大类
现代密码学:计算机的出现提供了新的加密技术,也提供了破译密码的新武器
主要有 对称密码体制下的分组密码,序列密码
二、古典密码学
主要通过置换和代换的简单方式实现
1.置换密码
置换:根据一定的规律重新排列明文,一遍打破明文的结构特性。
本质是X域上的双射函数
常见的有列置换和周期置换两种
置换
表示方式:
密钥空间大小为 |x|!
逆置换:函数的逆函数
由得到
1.双行表示法的上下颠倒,重新排序
2.循环表示法每个括号第一个不变,其余颠倒
置换的组合 类比函数关系的组合
周期置换
密钥:
对
m
个元素
集合的一个
置换
σ
加密:
将
明文
p
按固定长度
m
分组,对每个分组用
σ
进行置换,将各分组重新组合得到密文
c
解密:
将密文
c
按固定长度
m
分组,对每个分组用
σ
的逆置换
σ
-1
进行置换,将各个分组重新组合得到明文
p
使用
矩阵形式
表达更易于操作
列置换
明文按照密钥的规则按列换位并且按列读出明文序列得到密文
2.代换密码
将明文中的字符替换为其他字符的密码体制
所采取的代换机制本身就构成了密钥,通常是一个代换表
按一个明文字母是否总是被一个特定的字母代替进行划分,分为:
单表代换
多表代换
补充数论、模运算知识
对任意正整数m,整数n,存在唯一的q,r 使 n = qm + r 成立
q称为商(quotient),r称为m除n的余数(remainder)
r=0时
m整除n,写作 m | n
m称为n的因数或约数(divisor),n是m的倍数(multiple)
若r!=0 则m n
素数或质数:因数只有1和自身的大于等于2的正整数
合数:不是素数的大于等于2的正整数
0,1 既不是素数也不是合数
最大公约数 m,n约数中最大的 记作gcd(m,n)
互质 :gcd(m,n)=1 (素数之间一定互质,互质的不一定是素数)
最小公倍数 m,n共同的倍数最小的 lcm(m,n) =m*n/gcd(m,n)
任意一个大于1的正整数都可以分解为一串素数的乘积,分解是唯一的
线性同余
m,n互质,存在整数x,y 使 mx+ny=1
同余定理
a≡b(mod m)
如果两个整数a和b满足a-b能够被m整除,即(a-b)/m得到一个整数,那么就称整数a与b对模m同余
完全剩余系 完全剩余系内的加乘运算
乘法逆元
对于模运算的除法,都用乘法逆元转化为乘法(小数无法取模啊)
简化剩余系
欧拉函数
ax+by=gcd(a,b),求x,y
裴蜀定理
利用拓展欧几里得算法
费马定理求逆元 前提p是质数
费马小定理 a^(p-1) 模p 与1同余
a mod p的逆元 就是 a^(p-2)mod p
p不是质数是用拓展欧几里得ax+by=1 算
b*i mod p x b*i*xmod p
(r了,写到这垃圾csdn出了bug没自动保存还退回去了?,就写个简化版的算了)
单表代换密码
1.基于密钥的单表代换密码
给出一串无重复字母的字符串,明文a,b,c,d…依次对应于该字符串,明文中后面的其他字母顺序对应于剔除了该字符串的字母表
密文空间=明文空间=26
密钥空间=26!
2.仿射密码
是一个线性变换
称e(x)为仿射加密函数
要求a与26互素,不然会有两个数被加密为同一个密文
凯撒密码 : a=1,b=3 (是移位密码,仿射密码的特例)
密钥空间:12*26=312
逆变换:
注意!:az被映射为数字025 a对应0
多表代换密码
明文消息中出现的同一个字母,不是完全被同一固定的字符代换,而是根据其出现的位置次序用不同的字母代换。
代换既取决于具体字母,也取决于字符的相对位置(不同的地方用不同的代换表)
多表代换中有理论上的非周期多表代换密码,实际使用的都是周期多表代换
周期为1时就成了单表代换(不同地方使用同一代换表)
密钥空间
K={
一个分组内所有字母组合间的所有置换
}
|
K|=
(
)!
如果代换表序列是非周期的无限序列,则相应的密码称为非周期多表代换密码,称为一次一密密码。(序列密码的一种)
优点:能更好抵抗统计密码分析
1.Playfair密码
2.维吉尼亚密码
每一分组密钥空间为 (置换是固定的)
查表法
或者用模运算实现
- 希尔密码
明文按n分组
密钥矩阵: n*n的非奇异矩阵 且gcd(det(k),26)=1
矩阵的行列式满足和26互质,则存在模26下的乘法逆元(逆矩阵存在)。
加强版的希尔密码 补充常数项,c=mk+b
4.轮转密码机
目的:通过转轮的转动来实现复杂的多表代换,从而打破明文与密文之间的固定替代关系
三个转速不一的转轮构成:慢轮子、中轮子、快轮子。每个轮子是一个代换表
一个周期内,不同位置的相同明文代换成不同的密文
快轮子转一圈,中轮子转一个
中轮子转一圈,慢轮子转一个
密钥周期为26*26*26
解密时密文倒着解密,密码机倒着转(一步一步恢复状态)
3.古典密码的分析
单表密码和部分多表代换密码可以用统计分析法进行唯密文攻击,Hill密码等需要用已知明文攻击
三、分组密码
明文、密文和密钥都采用二进制编码
,也就是字符集是简单的
0
和
1
。
1.分组密码(块密码)概述
将明文消息编码的表示后二进制序列,划分成固定大小的块,每块分别在密钥的控制下变换成等长的二进制序列
注:传统密码也分组,但不是分组密码
分组密码属于对称密码体制
分组密码的设计要求
明文密文分组长度相同即可。
分组长度
n
要足够长,即
明文空间大小
2
n
足够大(防止明文穷举攻击)。
密钥长度
t
要足够长,即
密钥空间大小
2
t
足够大(防止密钥穷举攻击)。但亦不能过长,否则影响
加解密速度
和
密钥管理
。
由密钥
k
确定的明文空间到密文空间的映射
足够复杂(注:
可认为是
个元素上的一个置换)。
已知密钥时
的加解密运算简单,便于软硬件的快速实现。
密文空间与明文空间都是
理想分组密码是每种输入都会被代换成唯一的输出,因此密钥空间是,对应的密钥长度是
实际的密钥长度和分组长度差不多,密钥空间为,就是说对任意的密钥,一种明文不会加密成所有的密文
分组密码的设计原则
扩散(Diffusion
):
明文和密文间的
统计特性尽可能复杂
,使得使得一比特明文的变化尽可能多的影响到输出密文的比特,以
隐藏明文的统计特性
。
理想状态下,明文改变一比特,密文里改变大约一半比特位。同样,密文改变一比特,相应的明文改变大约一半比特位。
混乱(Confusion
):
使明文、密文和密钥之间的关系尽可能复杂。
设计分组密码时一般我们通过
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数网络安全工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上网络安全知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加VX:vip204888 (备注网络安全获取)
写在最后
在结束之际,我想重申的是,学习并非如攀登险峻高峰,而是如滴水穿石般的持久累积。尤其当我们步入工作岗位之后,持之以恒的学习变得愈发不易,如同在茫茫大海中独自划舟,稍有松懈便可能被巨浪吞噬。然而,对于我们程序员而言,学习是生存之本,是我们在激烈市场竞争中立于不败之地的关键。一旦停止学习,我们便如同逆水行舟,不进则退,终将被时代的洪流所淘汰。因此,不断汲取新知识,不仅是对自己的提升,更是对自己的一份珍贵投资。让我们不断磨砺自己,与时代共同进步,书写属于我们的辉煌篇章。
需要完整版PDF学习资源私我
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
1712902184676)]
[外链图片转存中…(img-EV8dbADw-1712902184676)]
[外链图片转存中…(img-XyVNoIgi-1712902184677)]
[外链图片转存中…(img-JLF478z6-1712902184677)]
[外链图片转存中…(img-TgHzJSR2-1712902184677)]
[外链图片转存中…(img-58M120fY-1712902184677)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上网络安全知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加VX:vip204888 (备注网络安全获取)
[外链图片转存中…(img-K7Cf20kR-1712902184678)]
写在最后
在结束之际,我想重申的是,学习并非如攀登险峻高峰,而是如滴水穿石般的持久累积。尤其当我们步入工作岗位之后,持之以恒的学习变得愈发不易,如同在茫茫大海中独自划舟,稍有松懈便可能被巨浪吞噬。然而,对于我们程序员而言,学习是生存之本,是我们在激烈市场竞争中立于不败之地的关键。一旦停止学习,我们便如同逆水行舟,不进则退,终将被时代的洪流所淘汰。因此,不断汲取新知识,不仅是对自己的提升,更是对自己的一份珍贵投资。让我们不断磨砺自己,与时代共同进步,书写属于我们的辉煌篇章。
需要完整版PDF学习资源私我
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
[外链图片转存中…(img-m2LbI5D4-1712902184678)]