密码学基础 进制与计量

进制 一种计数方法

用有限的数字符号来表示无限的数值,列如阿拉伯数字10进制(0-9)

可使用的计数符号数目决定了进位制,简称进制

2进制(0,1)计算机机器语言唯一明白的

10进制(0-9)普通人计算常用的

16进制(0-9,A,B,C,D,E,F,G)每一个16进制的字符代表4个二进制组合数字

计量术语

位( bit )最小的数据单位 字节( Byte )8个bit组成,存储空间的最小单位

K-Klilo,网络/计算里面表示千1024 (2^10次方)存储里面表示1000 KB=1024B M-Million,表示百万( 2个20次方)

MB=1024KB G-Giga,表示10亿(2^30次方)

G=1024MB T-Tera,表示10 000亿(2^40次方).

TG=1024GB P-Peta表示10000 000亿 (2^50次方)比特币挖矿算力8359 PH/s

PG=1024T

你要大概知道当今计算机的能力上限。也就是说哪些是可以很快算出来的。哪些是不现实的。拿分解质因数来说。你要知道什么样的数是当今计算机分解不了的。个人认为就今天的计算机来说

2的40次方次运算是容易(easy)

2的56次方次运算是可做(feasible)2100万枚比特币=2^53

2的64次方次运算是勉强能做(barely feasible)

2的80次方次运算是不能做(infeasible)

2的128次方次运算是绝逼不能做(totally infeasible)

加解密基本操作

置换∶按照规则替换明文信息

移位:打乱字母的排列顺序

移位和置换都是可逆的操作,容易恢复信息移位、置换应用于现代密码算法中 加密的实现,不只是依赖以上这些基本的思想,同时也依赖于很多巧妙的设计。如军事应用中的加密电报,除了使用安全性很高的编码规则以外,解密还涉及到收发报文双方的约定。

编码规则有ASCII编码(2^7),BASE6编码(2^6),Base58编码

置换

图片[1]-入门级密码学

列如,凯撒密码图片[2]-入门级密码学

移位

图片[3]-入门级密码学

加密算法分类

密码设计的基本公理和前提是算法公开

系统的安全性仅依赖与密钥的保密性

加密算法分类

对称密钥密码算法(又称私有密钥算法)

非对称密钥密码算法(又称公钥密码算法)

对称加密算法(私钥加密算法)

对称加密:使用同一种密钥进行加密和解密

传统密码加密

私钥算法加密

优势:加解密速度快,密文是紧凑的,安全的

图片[4]-入门级密码学

对称加密算法的问题

图片[5]-入门级密码学

图片[6]-入门级密码学

所以对称加密算法缺点:密钥分发,密钥存储和管理。缺乏数字签名/不可否认的支持。

著名对称加密算法

对称加密的密钥长度从40bits到168bits著名加密算法

. DES 3DES

. AES

. RC系列(RC2、RC4、RC5 )

. IDEA

. CAST

. Blowfish

DES(Data Encryption Standard)

DES是一种块或分组加密算法

20世纪70年代,由IBM公司发明

1976年11月纳为美国国家标准

DES密钥是固定的56bit,不安全

DES以块模式对64bit的密文块进行操作

DES算法框架图

图片[7]-入门级密码学

DES密码分组方式

图片[8]-入门级密码学

图片[9]-入门级密码学

DES两组方式

图片[10]-入门级密码学

1.DES ECB

2.CBC Mode

CBC Mode本质是在开头给一个随机值,与明文联合起来用DES加密,第二次加密的时候联合上一次加密的密文产生新的密文,重复利用DES加密后的密文最后一起产生的密文难以攻击

DES总结

56bit的DES太短不安全,需要经常修改密钥,防止暴力破解没有漏洞,只能暴力破解2^55

WEP有108位密钥,但有漏洞,很快算出

需要在一个安全的信道交换DES密钥

使用DES的CBC模式

3DES

3DES(Triple DES)密钥长度放大3倍,168位

暴力破解几乎不能实现

底层基于一个很好的算法

安全,但会增加延迟,语言视频不适用

图片[11]-入门级密码学

AES(Advanced Encryption Standard)

1997年被颁布,取代DES的加密算法

比利时的Joan Daemen和Vincent Rijmen发明,“Rain Doll”

适合于高速网络,适合在硬件上实现

使用128位、192位或256位的密钥块(还能以32bit扩展) 3DES的替代加密技术,软硬件运行效率高,可用于无线/语音视频加密

RC系列加密算法

RC2

Ronald Rivest设计

密钥长度可变

RC2的运算速度比DES快

软件实现的RC2比DES快三倍

RC2是否比DES安全取决于其所使用的密钥长度

RC5

Rivest设计

分组长、密钥长和迭代轮数都可变

面向字结构,便于软件和硬件快速实现

数据相倚旋转技术

RC4

Rivest设计

密钥长度可变 (流模式加密算法)面向bit操作.

算法基于随机置换

RC4应用范围广( https/WEP/WPA )WPA2-AES

IDEA(稍微了解一下)

IDEA,国际数据加密算法 分组长度为64位,密钥长度为128位设计原则∶来自不同代数群的混合运算.

64位数据首先分成4个16-位子分组作为第一轮的输入

总共8轮计算 每轮中,4个子分组相互之间相异或,相加,相乘,且与6个16位子密钥相异或,相加,相乘 轮与轮之间,第二个和第三个子分组交换。最后在输出变换中4个子分组与4子密钥进行运算 IDEA共使用52个子密钥

软件实现的IDEA比DES快两倍

blowfish

Bruce Schneier设计

密钥长度可变 易于软件快速实现,所需存储空间不到5KB

安全性可以通过改变密钥长度进行调整

适用于密钥不经常改变的加密 不适用于需要经常变换密钥的情况

非对称加密算法(公钥加密算法)

公钥加密技术

公钥加密比私钥加密出现晚

私钥加密使用同一个密钥来加密和解密信息

公钥加密使用两个密钥,一个密钥用于加密信息,另一个密钥用于解密信息

公钥加密,私钥解 公钥加密,公钥不能解

私钥加密,私钥不能解

应用:公钥加密,保密性 私钥签名∶数字签名

图片[12]-入门级密码学

私钥需要安全保存(不通过网络传送)

公钥公开

加密速度慢,密文非紧凑

可以与对称加密相结合

公钥和私钥不相等

私钥可以推出公钥,公钥不可以推出私钥

具体有

RSA

DH(Diffie-Hellman)

DSA

ECC

公钥密码系统的应用

三种用途:

加密/解密

数字签名:发送方用自己的私钥签署报文,接收方用对方的公钥验证对方的签名

密钥交换:双方协商会话密钥

图片[13]-入门级密码学

Diffie-Hellman密钥交换

1976年,Whitfield Diffie和Martin Hellman发明

解决对称加密系统中密钥的发布问题

无需使用代价高昂即可对私钥达成共识

安全性来源于很难计算出很大的离散对数

在现代密钥管理中提供其他算法的密钥管理

密钥生成算法AGen输出一个公钥和私钥对(apk, ask), ask需要秘密地保存,apk可以公开发送给对方。

密钥协商算法Agree以一方的公钥apk和自己的私钥ask作为输入,计算出一个密钥K。

图片[14]-入门级密码学

图片[15]-入门级密码学

Diffie-Hellman可行之处:

产生共享密钥需要一个保密值,外人无法得到

计算大数的离散对数困难

RSA

1977年由Ron Rivest、Adi Shamir和Len Adelman开发

专利于2000年9月到期

密钥长度在512~4096bit之间

安全性基于大素数因子分解的困难性

RSA比用软件实现的DES慢100倍

RSA比用硬件实现的DES慢1000倍

RSA的主要功能∶加密、数字签名和密钥交换(加密散列、密钥)

图片[16]-入门级密码学

还有其他的公钥算法,椭圆曲线加密为ECC

图片[17]-入门级密码学

加密强度对比

图片[18]-入门级密码学

数字签名

RSA提供认证和抗抵赖(私钥签名)

图片[19]-入门级密码学

数字签名 Digital Signature

图片[20]-入门级密码学

发送方用接收方公钥加密明文,用哈希函数形成一段摘要,摘要用发送方私钥进行加密形成发送方签名,然后把密文和签名发送到接收方。接收方收到后用接收方私钥解密密文,用哈希函数把明文形成一段摘要,用发送方的公钥解密摘要,把这两段摘要对比,相等则完整。

数字证书与CA

图片[21]-入门级密码学

图片[22]-入门级密码学

如何确定接受到的接收方的公钥没有被更改,没有被掉包?

图片[23]-入门级密码学

数字证书相当于一个身份证,CA相当于分发身份证的公安局。

哈希与HMAC

将一段数据(任意长度)经过一道计算,转换为一段定长的数据.

http://www.fileformat.info/tool/hash.htm

不可逆性 几乎无法通过Hash结果推导出原文,即无法通过x的Hash值推导出x

无碰撞性 几乎没有可能找到一个y,使得y的Hash值等于x的Hash值 雪崩效应 输入轻微变化,Hash输出值产生巨大变化 单向 不可能从散列值推出原始数据

使用场景

1.发布文件的完整性验证,如炒股软件+MD5

2.服务器中保存用户的密码

3.数字签名

哈希用列 用户密码的储存

图片[24]-入门级密码学

彩虹表攻击:类似于暴力破解,不断累积密码,先是把这些密码哈希转换,存储起来在一个数据库,后面再从要破解的哈希值取出来放到数据库里对比,相同则把这段数据库已经有的哈希值再转换到明文,这就是彩虹表攻击。

怎么样防止彩虹表攻击,从加强复杂性入手,在原有的明文上加上时间精确到秒,复杂度提高,彩虹表无法存储如此庞大多的哈希值。

HMAC

图片[25]-入门级密码学

对称加密与非对称加密相结合

咱们回顾一下对称加密和非对称加密的优缺点

对称加密

优势:加密解密速度快,密文是紧凑的,安全的

缺点:密钥分发,密钥存储和管理。缺乏对数字签名的支持

非对称加密

优点:

1.无需私钥传送,天然防窃听

2.每个人2个密钥,不会随着人数增加倍数增长

3.支持数字签名,抗抵赖性/认证

缺点:

1.加密速度慢,密文非紧凑

可以看得出这两个算法优缺点相互补,则有

对称加密算法对大文件进行加密,非对称加密算法对密钥加密

两全其美的加解密解决方案 发送方操作123

图片[26]-入门级密码学

两全其美的加解密解决方案 接受方操作321

图片[27]-入门级密码学

密码学总结

公钥和私钥的使用口诀:

公钥加密私钥解密,私钥加密公钥解密

图片[28]-入门级密码学

图片[29]-入门级密码学

图片[30]-入门级密码学

加解密相关术语

图片[31]-入门级密码学

 

© 版权声明
THE END
喜欢就支持一下吧
点赞11 分享
评论 抢沙发

请登录后发表评论