密码学复习(上)_密码反馈模式

本文详细介绍了密码学的基本概念,包括加密、解密函数,以及信息安全的CIA三要素。讨论了对称密码体制和非对称密码体制的特点,重点剖析了DES加密算法和分组密码的设计原则。此外,文章还涵盖了网络安全的基础知识,如渗透测试和攻击类型,以及黑客入门学习路径。
摘要由CSDN通过智能技术生成

使用密钥  一般用k表示

加密(Encryption) 加密函数一般用 E()表示  c=E_{k}§

解密  (Decryption)  解密函数一般用 D( )表示   p=D_{k}(c)

密码学与信息安全:

经典信息安全三要素:  机密性、完整性、可用性 confidentiality、Intergerity availability

(CIA!!)

拓展:机密性,完整性,可用性,隐私性,可认证性与可信赖性,不可抵赖性,可说明性,可审计性。

其中与密码学相关的:机密性,完整性,可用性,认证性、不可抵赖性

攻击:

如图所示

中断 (拒绝服务)阻止或禁止通信设施的正常使用两种实现方式:1.攻击者删除传输过程中某个地方的链接。2.DDos,对特定目标滥发消息使之过载

截取

篡改

伪造

重放    是指攻击者发送一个目的主机已接收过的包,来达到欺骗系统的目的

对安全性的攻击

中断:  可用性

截取:机密性

篡改:完整性、真实性、有序性

伪造、重放:认证性

分类:

被动攻击:截取。通常难以检测

主动攻击:中断、篡改、伪造、重放。是指攻击者对连接中通过的协议数据单元进行各种处理

密码学分类

密码学的技术分两部分,一个是密码编码学、一个是密码分析学。

密码编码学研究如何对信息编码以实现信息和通信安全

密码分析学研究如何破解或攻击受保护的信息

密码编码学:

从安全目标来看,分为保密体制和认证体制

根据使用密钥策略,分为对称密码体制和非对称密码体制

对称密码体制

密钥完全保密,加密密钥和解密密钥相同,或根据一个可以很容易推出另一个

优点:

运算速度比较快、密钥相对较短、密文长度往往与明文长度相同

缺点:

密钥分发需要安全通道、密钥量大,难以管理(不同人给的密钥要不同)、难以解决不可否认问题

非对称密码体制

使用两个密钥:一个公钥对外公开,一个私钥只有拥有者知道 理论上不能从公钥推出私钥

例如电子邮件机制:任何人可以用接收者的公钥进行加密(找到接受者的邮箱地址发送),接收者用私钥解密(登录账号密码,来查看邮件)

加解密算法和数字签名算法

优点:

密钥分发容易、密钥管理简单、可以有效实现数字签名

缺点:

运算速度较慢、密钥位数相对多些、密文长度往往大于明文长度。(??学到时再回来看)

保密体制模型:

明文空间P:所有可能的明文

密文空间C:所有可能的密文

密钥空间K:所有可能的密钥    K1 加密密钥空间 K2 解密密钥空间

加密算法   c=E_{k}§

解密算法   p=D_{k}(c)

密码分析学:

现代密码学的密码系统设计必须遵循柯克霍夫原则,秘密必须完全寓于密钥中,加密和解密的安全性取决于密钥的安全性,加密解密算法是公开的。只要密钥安全,攻击者就无法得到明文。

安全性分为无条件安全性(理论安全性)和有条件安全性(实际安全性)

密码体制的攻击类型

在不知道密钥的情况下,不同条件下的攻击

唯密文攻击:只知道一定数量密文

已知明文攻击:除了一部分密文,还有一些明密文对

选择明文攻击:对任意明文可得到其密文,比如掌握加密机时

选择密文攻击:对任意密文可得到其明文,比如掌握解密机时

选择文本攻击:  选择明文和选择密文的结合,同时掌握加密机和解密机时

不同时期的密码学

按照1949年香农发表的那篇论文《保密系统的通信理论》为分界

古典密码学:主要分为代换式密码和置换式密码两大类

现代密码学:计算机的出现提供了新的加密技术,也提供了破译密码的新武器
主要有 对称密码体制下的分组密码,序列密码

二、古典密码学

主要通过置换和代换的简单方式实现

1.置换密码

置换:根据一定的规律重新排列明文,一遍打破明文的结构特性。

本质是X域上的双射函数 \sigma:X\rightarrow X

常见的有列置换和周期置换两种

置换

表示方式:

密钥空间大小为 |x|!

逆置换:\sigma函数的逆函数\sigma^{-1}

\sigma得到\sigma^{-1}

1.双行表示法的上下颠倒,重新排序

2.循环表示法每个括号第一个不变,其余颠倒

置换的组合  \tau o \sigma 类比函数关系的组合

周期置换

密钥:

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 \nmid 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.仿射密码

是一个线性变换

y\equiv(x)\equiv ax+b \mod(26),gcd(a,26)=1

称e(x)为仿射加密函数

要求a与26互素,不然会有两个数被加密为同一个密文

凯撒密码 : a=1,b=3 (是移位密码,仿射密码的特例)

密钥空间:12*26=312

逆变换:

x\equiv d(e(x))\equiv a^{-1}(e(x)-b)(mod\26)

注意!:az被映射为数字025 a对应0

多表代换密码

明文消息中出现的同一个字母,不是完全被同一固定的字符代换,而是根据其出现的位置次序用不同的字母代换。

代换既取决于具体字母,也取决于字符的相对位置(不同的地方用不同的代换表)

多表代换中有理论上的非周期多表代换密码,实际使用的都是周期多表代换

周期为1时就成了单表代换(不同地方使用同一代换表)

密钥空间
K={
一个分组内所有字母组合间的所有置换
}

|
K|=
(
26^{n}
)!

如果代换表序列是非周期的无限序列,则相应的密码称为非周期多表代换密码,称为一次一密密码。(序列密码的一种)

优点:能更好抵抗统计密码分析

1.Playfair密码

2.维吉尼亚密码

每一分组密钥空间为   26^{n}  (置换是固定的)

查表法

或者用模运算实现

  1. 希尔密码

明文按n分组

密钥矩阵: n*n的非奇异矩阵 且gcd(det(k),26)=1

矩阵的行列式满足和26互质,则存在模26下的乘法逆元(逆矩阵存在)。

加强版的希尔密码  补充常数项,c=mk+b

4.轮转密码机

目的:通过转轮的转动来实现复杂的多表代换,从而打破明文与密文之间的固定替代关系

三个转速不一的转轮构成:慢轮子、中轮子、快轮子。每个轮子是一个代换表

一个周期内,不同位置的相同明文代换成不同的密文

快轮子转一圈,中轮子转一个

中轮子转一圈,慢轮子转一个

密钥周期为26*26*26log_{2}((2^{n})!)

解密时密文倒着解密,密码机倒着转(一步一步恢复状态)

3.古典密码的分析

单表密码和部分多表代换密码可以用统计分析法进行唯密文攻击,Hill密码等需要用已知明文攻击

三、分组密码

明文、密文和密钥都采用二进制编码
,也就是字符集是简单的
0

1

1.分组密码(块密码)概述

将明文消息编码的表示后二进制序列,划分成固定大小的块,每块分别在密钥的控制下变换成等长的二进制序列

注:传统密码也分组,但不是分组密码

分组密码属于对称密码体制

分组密码的设计要求

明文密文分组长度相同即可。

分组长度
n
要足够长,即
明文空间大小
2
n
足够大(防止明文穷举攻击)。

密钥长度
t
要足够长,即
密钥空间大小
2
t
足够大(防止密钥穷举攻击)。但亦不能过长,否则影响
加解密速度

密钥管理

由密钥
k
确定的明文空间到密文空间的映射
e_{k}:P->C
足够复杂(注:
e_{k}
可认为是
2^{n}
个元素上的一个置换)。

已知密钥时
的加解密运算简单,便于软硬件的快速实现。

密文空间与明文空间都是2^{n}

理想分组密码是每种输入都会被代换成唯一的输出,因此密钥空间是2^{n}!,对应的密钥长度是

log_{2}((2^{n})!)

实际的密钥长度和分组长度差不多,密钥空间为2^{k},就是说对任意的密钥,一种明文不会加密成所有的密文

分组密码的设计原则

扩散(Diffusion
):

明文和密文间的
统计特性尽可能复杂
,使得使得一比特明文的变化尽可能多的影响到输出密文的比特,以
隐藏明文的统计特性

理想状态下,明文改变一比特,密文里改变大约一半比特位。同样,密文改变一比特,相应的明文改变大约一半比特位。

混乱(Confusion
):

使明文、密文和密钥之间的关系尽可能复杂。

设计分组密码时一般我们通过
乘积密码体制
来实现扩散和混乱。

(类似于函数的复合,函数复合不一定满足交换律,满足结合律,乘积密码体制同样)

迭代密码体制:

大部分分组密码用的都是迭代结构

主要是两种迭代网络:

Feistel
网络
(如
DES

SP
网络
(如
AES

均能引起雪崩效应,即少量的明文变化引起密文巨大变化

Feistel网络

答:由于异或的特性 a xor a =0   a xor 0 =a

SP网络

I

2.DES

如何自学黑客&网络安全

黑客零基础入门学习路线&规划

初级黑客
1、网络安全理论知识(2天)
①了解行业相关背景,前景,确定发展方向。
②学习网络安全相关法律法规。
③网络安全运营的概念。
④等保简介、等保规定、流程和规范。(非常重要)

2、渗透测试基础(一周)
①渗透测试的流程、分类、标准
②信息收集技术:主动/被动信息搜集、Nmap工具、Google Hacking
③漏洞扫描、漏洞利用、原理,利用方法、工具(MSF)、绕过IDS和反病毒侦察
④主机攻防演练:MS17-010、MS08-067、MS10-046、MS12-20等

3、操作系统基础(一周)
①Windows系统常见功能和命令
②Kali Linux系统常见功能和命令
③操作系统安全(系统入侵排查/系统加固基础)

4、计算机网络基础(一周)
①计算机网络基础、协议和架构
②网络通信原理、OSI模型、数据转发流程
③常见协议解析(HTTP、TCP/IP、ARP等)
④网络攻击技术与网络安全防御技术
⑤Web漏洞原理与防御:主动/被动攻击、DDOS攻击、CVE漏洞复现

5、数据库基础操作(2天)
①数据库基础
②SQL语言基础
③数据库安全加固

6、Web渗透(1周)
①HTML、CSS和JavaScript简介
②OWASP Top10
③Web漏洞扫描工具
④Web渗透工具:Nmap、BurpSuite、SQLMap、其他(菜刀、漏扫等)
恭喜你,如果学到这里,你基本可以从事一份网络安全相关的工作,比如渗透测试、Web 渗透、安全服务、安全分析等岗位;如果等保模块学的好,还可以从事等保工程师。薪资区间6k-15k

到此为止,大概1个月的时间。你已经成为了一名“脚本小子”。那么你还想往下探索吗?

如果你想要入坑黑客&网络安全,笔者给大家准备了一份:282G全网最全的网络安全资料包评论区留言即可领取!

7、脚本编程(初级/中级/高级)
在网络安全领域。是否具备编程能力是“脚本小子”和真正黑客的本质区别。在实际的渗透测试过程中,面对复杂多变的网络环境,当常用工具不能满足实际需求的时候,往往需要对现有工具进行扩展,或者编写符合我们要求的工具、自动化脚本,这个时候就需要具备一定的编程能力。在分秒必争的CTF竞赛中,想要高效地使用自制的脚本工具来实现各种目的,更是需要拥有编程能力.

如果你零基础入门,笔者建议选择脚本语言Python/PHP/Go/Java中的一种,对常用库进行编程学习;搭建开发环境和选择IDE,PHP环境推荐Wamp和XAMPP, IDE强烈推荐Sublime;·Python编程学习,学习内容包含:语法、正则、文件、 网络、多线程等常用库,推荐《Python核心编程》,不要看完;·用Python编写漏洞的exp,然后写一个简单的网络爬虫;·PHP基本语法学习并书写一个简单的博客系统;熟悉MVC架构,并试着学习一个PHP框架或者Python框架 (可选);·了解Bootstrap的布局或者CSS。

8、超级黑客
这部分内容对零基础的同学来说还比较遥远,就不展开细说了,附上学习路线。
img

网络安全工程师企业级学习路线

img
如图片过大被平台压缩导致看不清的话,评论区点赞和评论区留言获取吧。我都会回复的

视频配套资料&国内外网安书籍、文档&工具

当然除了有配套的视频,同时也为大家整理了各种文档和书籍资料&工具,并且已经帮大家分好类了。

img
一些笔者自己买的、其他平台白嫖不到的视频教程。
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以点击这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 13
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值