当前位置: 首页 > news >正文

密码学_加密

目录

密码学

01 密码基础进制与计量

02 加解密基操 替换 移位 编码

编码

置换

移位

加解密强度

03 对称加密算法(私钥)

工作过程

缺陷

对称加密算法列举?

DES

DES算法架构

DES分组加密公式

DES中ECB-CBC两种加密方式

3DES

由于DES密钥太短,后来就有了3DES

缺点:3des很安全,加密效率不高,语言视频加密不适用

AES

非常大特点:扩展性

优点:替代3des ,加密效率高,合适语音视频

RC系列

用的比较广的RC4 流加密算法

轻量级算法

IDEA

软件实现的效率快des2倍

Blowfish

也是一个轻量级算法

国密算法

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

公钥私钥一起用才能实现加解密功能

工作过程

公钥密码系统应用

RSA全能,DH交换,DSA只能签名。

DH

DH会话:解决前面这么把密钥给你问题

工作过程

RSA

慢(加密一般不用RSA)

其它公钥算法

05 数字签名(私钥签名)

06 数字证书与CA

作用:证明公钥是你的

07 哈希Hash与HMAC

哈希核对文件有没有被修改

HMAC(加盐)

在原文基础是加一个key

08 对称与非对称加密算法的完美融合

项目案例

09 密码学原理总结


密码学

01 密码基础进制与计量

ipv4 点分十进制  

ipv6 十六进制

最小单位 0101比特流

存储最小单位  字节

02 加解密基操 替换 移位 编码

加密 = 加密算法+密钥

置换=替换

移位=移位

编码

编码规则

128个字符 2^7 = 我们可以把7个二进制数编码成一个ASCII码的这样一个编码

64个字符 2^5 = 我们可以把7个二进制数编码成一个BASE64的这样一个编码

base64编码问题:歧义 太相近混淆去掉6个字符

base58编码

------------------------------------------------加解密基本思想------------------------------------

置换

置换=双方先约定(对照规则)    具有规律性容易破解

移位

移位=不改变内容改变顺序    具有规律性容易破解

现代密码学设计基本原理:算法公开   +     关注密钥解决安全性保密性。

加解密强度

常识上:密钥越短加解密越快

03 对称加密算法(私钥)

工作过程

缺陷

对称加密非常大的一个缺陷:怎么去把你的密钥告诉给对方? 防止窃听  10W个人呢?

对称加密算法列举?

DES

des=块加密算法     ——>1G  拆分成几块加密

密钥56位太短很容易被当今电脑破解

DES算法架构

置换=替换(A改成G)

交换=移位(打乱顺序ABC   CBA)

我们只需要知道

输入64位明文信息    块加密

中间运用到了置换和移位的操作  重复16轮

DES分组加密公式

左边32位

48位          (经过一个Expand函数扩展到)

密钥        +(经过一个S-Box函数移位)

32密文       (经过一个P-Box函数压缩32)

DES中ECB-CBC两种加密方式

EBC方式容易被攻击

统计学攻击(猜): 英文出现最多字母是E 汉语出现最多字母是的。我发送一堆信息统计密文出现最多的字母是x,就能知道x是E或者是的。 根据频率第二多的是什么统计就能分析出明文密文对应关系

尝试攻击(猜):我发送一堆东西,123  用此算法   得到M

                                                456 用此算法   得到N

                                                以后我看到M就知道密码是123

部分解密:解密其中某一个块。相同的块都知道了。

EBC方式安全一点

首先:加了个生成初始随机向量 IV ,我们的块+由这个生成随机的IV= 一个密文

安全?:由于这个随机值每次都不一样。

                             123(即使你是)(由于随机值是1)

                              M  (输出)

下次再加密

                             123                     (随机值是2)

                              N  (输出)

此时 统计学攻击  尝试攻击都没有用了

由于明文+随机向量IV=密文,又作为下次的随机向量。链式结构。

下次:上次密文+下一个明文=密文   #保障了加密的安全 现在用的是CBC   ECB几乎不用

DES是56位密钥,密钥太短不安全,要用的话得经常去修改密码,防止被暴力破解

DES的算法底层是比较安全的现在已经用了几十年了 只能够被暴力破解,if你要破解这个算法的话最少要进行2^55次方暴力破解次数(因为一共有2^56次方种密钥按照暴力破解运气有50%(相当于除以2)——>2^56 / 2 = 2^55

这个DES(CBC)算法本身是比较安全的,有比DES密钥更长的比如不对称加密算法中WEP108但这个算法本身有漏洞所以破解起来比DES56还要快。

所以DES算法肯定是安全的。

但是DES有一个问题。DES算法因为有一个密钥。我们要提供一个安全的信道给别人密钥。

困难:我有密钥,我加完密之后,怎么把密钥给你。

3DES

由于DES密钥太短,后来就有了3DES

密钥长度放大3倍

56x3=168位

缺点:3des很安全,加密效率不高,语言视频加密不适用

AES

1997发布用来替代DES的算法,DES56太短,随着计算机发展早期56不安全。开始寻找新的算法

为了解决3des的效率问题。

AES(高级加密算法),合适用户高速的网络并且适合在硬件上去实现加密。

非常大特点:扩展性

aes密钥是可以变的既可以是128(4倍)也可以是192(6倍)256位(8倍)(并且还能以32位区间去扩展:32的倍数)。我们的des56  3des168。

即使将来量子力学出现了,我的密码可以给你扩展成2^10  2^20....这样子计算机破解太困难了

作为替代3des加密技术,软硬件运行效率比较高。

优点:替代3des ,加密效率高,合适语音视频

aes用的非常多。要了解。特别是aes加密算法的应用。无线和语音视频加密。

RC系列

后来又有了RC系列

用的比较广的RC4 流加密算法

它不是基于块的,是基于比特流的。

des  1G分块  64   64   64   64

rc     1G基于流  010101整个加密

无线里面WEP    WPA认证都是用的RC4  WPA2-AES

轻量级算法

RC算法对硬件的要求特别低,相当于是一个轻量级加密算法,出现时间晚,运行速度快des

#速度快,对硬件要求低(物联网:芯片内存CPU耗电比较低合适这种轻量级加密算法)

IDEA

用的比较少,听的比较少。

分组长度也是64   64   64  64

密钥长度128

软件实现的效率快des2倍

Blowfish

也是一个轻量级算法

合适小芯片这类空间小的

特别是在以后互联网普及之后,前端一些传感器一些很小的嵌入式芯片空间内存电量比较少更合适

这种轻量级加密算法。

需要的空间不到5kb

des  aes加密算法比较耗内存。更合适在电脑手机上去跑。不合适在轻量级终端去跑。

国密算法

国内加密算法

SM1  SM2(这些加密的产品不允许被出口)

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

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

公钥私钥一起用才能实现加解密功能

工作过程

我:用你的公钥加密    你:私钥解密

应用:用户私钥“数字签名”,我确定是不是他签的“用他的公钥去解一下”能解开就是他签的。

单向过程

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

公钥密码系统应用

RSA全能,DH交换,DSA只能签名。

DH

DH会话:解决前面这么把密钥给你问题

不会被中间人截获,或者截获了也看不懂。

工作过程

分成两步   

第一步(上):算法生成一对密钥    4个密钥。把公钥发给对方 私钥自己保存

第二步(下):自己私钥 对方发过来的公钥   生成一个key

底层数学保证两边key相同

这样Bob发送密文,Alice这边通过DH算法就能知道使用什么key。这样就实现了密钥交换

也就是通过交互公钥就实现了密钥的交换

底层数学:作用保证key相等

可行之处:在两端产生相同的密钥, 外人是抓不到的

RSA

使用非常多

慢(加密一般不用RSA)

主要用于:数字签名和密钥交换  (加密散列、密钥)

私钥都存在本地的话 没有通过网络传送  过程安全

公钥加密密文

私钥加密数字签名(可以理解为  证明私人签名  私钥)

密码学的最底层都是数学问题

其它公钥算法

ECC比特币加密算法就是这个

05 数字签名(私钥签名)

底层还是基于公钥密码学算法

认证:对方私钥加密    对方公钥解密成功 则证明是对方发的

抗抵赖:用你公钥解开,肯定用你私钥加密的。你发过这个消息不能否认。

数字签名类比RSA这个原理

数字签名

哈希算法是无论明文多大都能生成定长的摘要  对这个摘要进行签名(密文加本人签名一并发送)

核心:你私钥签名,你公钥解开签名    证明就是你发的。

为什么用哈希对摘要签名? 不对明文签名?   明文太大非常慢

这个图其实有点问题,明文加密用的不是对方公钥(用的不是非对称加密算法)(用的是对称加密算法key),真实项目是对称非对称一起来用。

06 数字证书与CA

问题:确定是对方的公钥?假如发过来公钥是冒充的客户。

作用:证明公钥是你的

怎么证明你是你

权威机构颁发一个证书   CA         #私钥签名

公安局颁发一个证书      身份证   #公安局印章

数字证书格式

07 哈希Hash与HMAC

什么是哈希? 就是将一段数据转化成一段定长的数据

不可逆性(单向): 1比特  ----> 128  但不可能128 ——>1比特

无碰撞性 :哈希值几乎唯一

雪崩效应:123明文改一个 哈希后全部变没有规律可言

应用:下载软件。验证哈希值  软件完整性

           密码保存。哈希后保存在系统中(MD5)

单向,不能通过哈希值推出密码。

彩虹表  既MD5数据库也就是MD5破解网站(其实就是123哈希后记住生成一堆常见密码对照表形成数据库 猜出来的)  而不是通过逆向算法找出来的

存哈希密码也有一定风险,密码强度不够高还是彩虹得到。

怎么复杂一点: 创建时间  密码   一起哈希存

哈希核对文件有没有被修改

HMAC(加盐)

hmac=盐+哈希 类比

在原文基础是加一个key

也就是不是纯粹的哈希  而是在哈希前面加一个key

123+X 生成一个HMAC

为什么两边不用123哈希验证? 假如我在中间截获哈希码(拿去彩虹表攻击)#也就是网站破解 

#碰撞破解

密码+加一个随机数哈希的话    没有这个随机数算不出来。

哈希hash和hmac一定要理解非常非常重要

08 对称与非对称加密算法的完美融合

对称加密算法有几个问题    密钥怎么安全传递对端(分发),10W人怎么做密钥存储管理,对称加密算法不支持数字签名。

对称加密算法缺点   加密速度太慢

项目案例

发送方   3步操作

1   明文哈希摘要签名

2  明文/签名/公钥key(或者数字签名)/    大数据打包后随机数密钥KEY加密

3  KEY加密传输          #过程安全私钥是存人家本地的

数字证书存的就是公钥,私钥是签名。

接收方  3步操作

1

2

3

09 密码学原理总结

私钥不需要在网络上传输。传输的是公钥。

验证对方发的  数字签名

验证篡改   比对哈希

可以理解为,签名就是一个加密的过程 。也密钥问题

验证签名就是解密

数字签名引发一个非常重要的概念  证书  CA

怎么证明公钥是你的   数字证书

PKI公钥管理体现  生成  颁发等等

相关文章:

  • 【Redis】List类型
  • Python实例题:Python获取小说数据并分析
  • 【项目设计】MySQL 连接池的设计
  • 数据结构之平衡二叉树
  • 非对称加密算法(RSA、ECC、SM2)——密码学基础
  • 会话历史管理——持久化
  • 2.4 GHz频段的11个信道通过 5 MHz中心频率间隔 实现覆盖
  • 学习:困?
  • vue2和vue3组件如何监听子组件生命周期
  • 【AI面试准备】对新技术充满热情,具有较强的学习能力和独立解决问题的能力
  • 藏语英语中文机器翻译入门实践
  • c++_csp-j算法 (6)_高精度算法(加减乘除)
  • 多线程编程的常见问题
  • 深度理解linux系统—— 进程优先级
  • 柔性PZT压电薄膜多维力传感器在微创手术机器人的应用
  • 数字智慧方案6186丨智慧应急指挥解决方案(43页PPT)(文末有下载方式)
  • C++调试(贰):Dump文件的生成(附Qt示例)
  • 鼎讯信通【专注通信解决方案】
  • 销售总监求职简历模板
  • 开闭原则(OCP)
  • 中国驻旧金山总领馆:领区发生旅行交通事故,有中国公民伤亡
  • 贵州锦屏县委原书记舒健已任黔东南州政府办主任
  • 新华时评:防范安全事故须臾不可放松
  • 奔驰一季度利润降四成,受美国加征关税影响放弃全年盈利展望
  • 阿斯利康中国区一季度收入增5%,或面临最高800万美元新罚单
  • 国台办:相关优化离境退税政策适用于来大陆的台湾同胞