密码学读书笔记系列(二):《图解密码技术》

密码学读书笔记系列(二):《图解密码技术》

第1部分 密码

第一章 环游密码世界

1.2 密码

发送者、接受者、窃听者
加密(之前为明文,之后为密文)
解密(将密文恢复为明文)
密码破译/破译/密码分析——破译者

1.3 对称密码与公钥密码

密码算法(加密算法+解密算法)
密钥(密码算法中所需要)
对称密码(加密和解密时使用同一密钥的方式)
公钥密码/非对称密码(加密和解密时使用不同密钥的方式)
混合密码系统(结合对称密码和公钥密码)

1.4 其他密码技术

散列值:又称哈希值、密码校验和、指纹、消息摘要,被单向散列函数计算所得。
单向散列函数:保证完整性(即数据是正牌的而不是伪造的,可以检测出数据是否被篡改过)
消息认证码:确认消息是否来自所期望的通信对象(保证完整性+提供认证机制)
数字签名:防止伪装、篡改、否认等威胁的技术(保证完整性+提供认证+防止否认)	
伪随机数生成器:能够模拟生成随机数列的算法——密钥生成

1.5 密码学家的工具箱

对称密码
公钥密码
单向散列函数
消息认证码
数字签名
伪随机数生成器

1.6 隐写术与数字水印

隐写术——隐藏消息本身,但明白嵌入消息的方法,就可以搞清楚消息内容,不可以代替密码
数字水印技术——将著作权拥有者及购买者的信息嵌入文件中的技术
密码隐藏的是内容,隐写术隐藏的是消息本身。

1.7 密码与信息安全常识

1、不要使用保密的密码算法(隐蔽式安全性)
原因:
	密码算法的秘密早晚会公诸于世
	开发高强度的密码算法是非常困难的

2、使用低强度的密码比不进行任何加密更危险——错误的安全感

3、任何密码总有一天都会被破解(除非是一次性密码本,但现实不可用)

4、密码只是信息安全的一部分

第二章 历史上的密码——写一篇别人看不懂的文章

2.2 凯撒密码

将明文中所使用的字母表按照一定的字数进行“平移”
	平移操作:密码的算法
	平移的字母数量:密钥
	解密:反向平移
	暴力破解/穷举搜索:按顺序尝试

2.3 简单替换密码

将明文中所使用的字母表替换为另一套字母表的密码来生成密文
	加密:依次按照替换表进行替换
	解密:反向替换
	密钥空间:即所有密钥的集合,在简单替换密码中暴力破解较难
	频率分析:统计字母出现的频率
		·密文越长越容易破译
		·高频字母、低频字母、开头和结尾、单词之间的分隔均是线索

2.4 Enigma

20C初发明,能够进行加密、解密的机器,由键盘、齿轮、电池、灯泡组成,通过一台机器完成加密、解密两种操作。
需要使用相同的密钥——国防军密码本,记录每日密码
每日密码——加密通信密码(通信密码为3个字母),叫做:密钥加密密钥
解密步骤:分解、设置Enigma、解密通信密码、重新设置Enigma、解密消息
弱点:
	将通信密码连续输入两次并加密
	通信密码是认为选定的
	必须派发国防军密码本

2.5 密码算法和密钥分开

解决了希望重复使用,但重复使用增加风险的问题

第三章 对称密码(共享密钥密码)——用相同的密钥进行加密和解密

3.3 从文字密码到比特序列密码

1、编码:将现实世界中的东西映射为比特序列的操作称为编码
(计算机的操作对象是0和1排列而成的比特序列)
2、XOR异或操作

3.4 一次性密码本

原理基于:将明文与一串随机的比特序列进行XOR运算
解密:加密的反运算
无条件安全,理论上无法破译
但是现实不可行:
	密钥的配送、保存、重用、同步、生成(流密码,使用伪随机数生成其所产生的比特序列)

3.5 DES

一种将64比特的明文加密成64比特的密文的对称密码算法,
实际密钥长度是56比特(64比特,但每隔7比特会设置一个用于错误检查的比特)
分组密码:以分组为单位进行处理的密码算法
模式:迭代的具体方式
结构:Feistel网络/结构/密码
	在此网络中,加密的步骤称为“轮round”
	轮函数的作用:根据“右侧”和子密钥生成对“左侧”进行加密的比特序列,是密码系统的核心
	性质:
		·轮数可以任意增加
		·加密时无论使用任何函数作为轮函数都可以正确解密
		·加密和解密可以用完全相同的结构来实现

差分分析:“改变一部分明文并分析密文如何随之改变”
线性分析:将明文和密文的一些对应比特进行XOR并计算其结果为零的概率
该两种分析的前提是,假设密码破译者可以选择任意明文并得到其加密的结果——选择明文攻击		

3.6 三重DES(TDEA/3DEA)

三重DES:为了增加DES的强度,将DES重复3次所得到的一种密码算法,具有加密、解密、加密的过程
当三重DES中所有的密钥都相同时,三重DES等同于普通的DES
密钥长度:56*3=168比特
现状:除被银行等机构使用,较少使用

3.7 AES

在DES之后的新标准的一种对称密码算法
竞选条件:被选为AES的密码算法必须无条件地免费供世界使用
通过竞争实现标准化

3.8 Rijndael

分组密码算法,使用了SPN结构

第四章 分组密码的模式——分组密码是如何迭代的

4.2 分组密码的模式

分组密码:每次只能处理特定长度的一块数据的一类密码(分组:一块)
		——处理完一个分组即结束,不需要通过内部状态记录加密的进度
分组长度:一个分组的比特数
流密码:对数据流进行连续处理的密码算法(一般以1比特、8比特、32比特为单位进行加密解密)
		——对数据流进行连续处理,需要保持内部状态
比特和字节的换算:8比特等于1字节

对分组密码算法进行迭代,从而将超过分组长度的密码进行加密——分组密码的模式
分组密码的主要模式(5种):
	ECB模式——电子密码本模式(将明文分割为多个分组,并逐个加密,不可以使用)
	CBC模式——密码分组链接模式		
	CFB模式——密文反馈模式
	OFB模式——输出反馈模式
	CTR模式——计数器模式

明文分组:将分组密码算法中作为加密对象的明文,长度与分组密码算法的分组长度是相等的。
密文分组:使用分组密码算法将明文分组加密之后生成的密文

主动攻击者Mallory:主动介入发送者和接受者之间的通信进程,进行阻碍通信或篡改密文等活动

4.3 ECB模式(electronic codebook):

将明文分组直接加密,即将明文分组加密之后的结果直接成为密文分组(一一对应)
当最后一个明文分组的内容小于分组长度时,需要用一些特定数据进行填充
攻击:攻击者无需破译密码就能操纵明文,只需知道哪个分组记录了什么样的数据即可
弱点:可以在不破译密文的情况下操纵明文

4.4 CBC模式(cipher block chaining):

密文分组如链条般相互连接在一起
首先将明文分组与前一个密文分组进行XOR运算,然后再进行加密
加密第一个明文分组时,准备一个长度为一个分组的比特序列代替前一个密文分组——初始化向量
特点:一旦存在n密文分组损害,则缺失比特的位置之后的密文分组也就无法解密,但
攻击:对初始化向量中的任意比特进行反转,则明文分组中的相应比特也会被反转。	
填充提示攻击:利用分组密码中的填充部分进行攻击的方法。攻击者反复发送一段密文,每次发送时都对其中填充的数据进行少许改变,接受者返回错误信息,其中包含一部分与明文相关的信息。
	——适用于所有需要进行分组填充的模式
应用实例:SSL/TLS(确保互联网安全的通信协议)

*在CBC模式中,假设每次加密都使用同一个初始化向量,当同一密钥对同一明文进行加密时,所得到的密文一定是相同的。

4.5 CFB模式(cipher feedback)

前一个密文分组会被送回密码算法的输入端(XOR实际充当了对分组进行加密的角色)
密码算法的输出相当于一次性密码本中的随机比特序列
密钥流:由密码算法࿰
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值