06-加密和解密的原理
加密技术作用
机密性:通过数据加密实现。提供只允许特定用户访问和阅读信息,任何非授权用户对信息都不可理解的服务
完整性:通过数据加密、散列或数字签名来实现,提供确保数据在存储和传输过程中不被未授权修改(篡改、删除、插入和重放等)的服务。
鉴别性:通过数据加密、数据散列或数字签名来实现,提供与数据和身份识别有关的服务,即认证数据发送和接受者的身份。
不可否定性:通过对称加密或非对称加密,以及数字签名等,并借助可信的注册机构或证书机构的辅助来实现,提供阻止用户否认先前的言论或行为的抗抵赖服务。
加密技术分类
对称加密:(DES、3DES(TripleDES)、AES、RC2、RC4、RC5)
- 又称为共享密钥加密,它使用同一个密钥对数据进行加密和解密。
非对称加密:(RSA、DSA(数字签名用)、ECC)
加解密使用两个不同的密钥,私钥用来保护数据,公钥则由同一系统的人公用,用来检验信息及其发送者的真实性和身份。
密钥:公钥&私钥。(公钥加密,私钥解密)
对称和非对称加密比较
数据加密- 数字信封
数字信封是指发送方采用接收方的公钥来加密对称密钥后所得的数据。采用数字信封时,接收方需要使用自己的私钥才能打开数字信封得到对称密钥。
甲事先获得乙的公钥,具体加解密过程如下:
甲使用对称密钥对明文进行加密,生成密文信息。
甲使用乙的公钥加密对称密钥,生成数字信封。
甲将数字信封和密文信息一起发送给乙。
乙接收到甲的加密信息后,使用自己的私钥打开数字信封,得到对称密钥。
乙使用对称密钥对密文信息进行解密,得到最初的明文。
从加解密过程中,可以看出,数字信封技术结合了对称密钥加密和公钥加密的优点,解决了对称密钥的发布和公钥加密速度慢等问题,提高了安全性、扩展性和效率等。
缺点:数字信封技术还有个问题,如果攻击者拦截甲的信息,用自己的对称密钥加密伪造的信息,并用乙的公钥加密自己的对称密钥,然后发送给乙。乙收到加密信息后,解密得到的明文,而且乙始终认为是甲发送的信息。此时,需要一种方法确保接收方收到的信息就是指定的发送方发送的。
数据验证- 数字签名
(私钥签名,公钥验证)
数字签名是指发送方用自己的私钥对数字指纹进行加密后所得的数据。采用数字签名时,接收方需要使用发送方的公钥才能解开数字签名得到数字指纹。
数字指纹又称为信息摘要,它是指发送方通过HASH算法对明文信息计算后得出的数据。采用数字指纹时,发送方会将数字指纹和明文一起发送给接收方,接收方用同样的HASH算法对明文计算生成的数据指纹,与收到的数字指纹进行匹配,如果一致,便可确定明文信息没有被篡改。
甲事先获得乙的公钥,具体加解密过程如下:
甲使用乙的公钥对明文进行加密,生成密文信息。
甲使用HASH算法对明文进行HASH运算,生成数字指纹。
甲使用自己的私钥对数字指纹进行加密,生成数字签名。
甲将密文信息和数字签名一起发送给乙。
乙使用甲的公钥对数字签名进行解密,得到数字指纹。
乙接收到甲的加密信息后,使用自己的私钥对密文信息进行解密,得到最初的明文。
乙使用HASH算法对明文进行HASH运算,生成数字指纹。
乙将生成的数字指纹与得到的数字指纹进行比较,如果一致,乙接受明文;如果不一致,乙丢弃明文。
优点:数字签名技术不但证明了信息未被篡改,还证明了发送方的身份。数字签名和数字信封技术也可以组合使用。
缺点:如果攻击者更改乙的公钥,甲获得的是攻击者的公钥,攻击者拦截乙发送给甲的信息,用自己的私钥对伪造的信息进行数字签名,然后与使用甲的公钥的加密伪造的信息一起发送给甲。甲收到加密信息后,解密得到的明文,并验证明文没有被篡改,则甲始终认为是乙发送的信息。此时,需要一种方法确保一个特定的公钥属于一个特定的拥有者。
加解密常见算法
对称加密算法
流加密算法:流加密算法在算法过程中连续输入元素,一次产生一个输出元素。典型的流密码算法一次加密一个字节的明文,密钥输入到一个伪随机字节生成器,产生一个表面随机的字节流,称为密钥流。流加密算法一般用在数据通信信道,浏览器或网络链路上。
- RC4
分组加密算法:分组加密算法的输入为明文分组及密钥,明文被分为两半,这两半数据通过n轮处理后组合成密文分组,每轮的输入为上轮的输出;同时子密钥也是由密钥产生。典型分组长度是64位。
DES (密钥长度:56,分组长度:64)
3DES (密钥长度:112,分组长度:64)
AES (密钥长度:128、192、256,分组长度:128,推荐使用)
IDEA (密钥长度:128,分组长度:64)
RC2,RC5,RC6
SM1,SM4
非对称加密算法
非对称加密算法
DH
RSA (能同时用于加密和数字签名的算法)
DSA (只用于签名)
散列算法
HASH算法的特点:
1.不可逆
2.随机输入,固定输出
3.雪崩效应,原始数据任意bit被改动,则改动后的数据HASH值和原始数据的HASH会不同
散列算法:把任意长度的输入变换成固定长度的输出。
常见散列算法
MD5(Message Digest Algorithm 5) (固定 128bit)
SHA(Secure Hash Algorithm) (固定 160bit,推荐使用)
SHA-1
SHA-2
SM3(Senior Middle 3)
06-加密和解密的原理相关推荐
- php实现加密解密,php实现加密与解密的原理与用法
这篇文章主要介绍了PHP加密解密类,实例分析了php实现加密与解密的原理与相关技巧,非常具有实用价值,需要的朋友可以参考下 本文实例讲述了PHP加密解密类.具体分析如下: 这段代码支持 数组加密 , ...
- 加密与解密技术原理(密码学)
加密与解密原理 1. 加密技术发展 加密是利用数学方法将明文转化为密文,从而达到保护数据的目的. 通过加密可保证数据的机密性.完整性.鉴别性.不可否认性. 机密性:通过数据加密实现.只允许特定用户访问 ...
- iOS小技能:RSA签名、验签、加密、解密的原理
文章目录 引言 I RSA算法流程 1.1 算法原理 1.2 公钥和私钥的生成 1.3 RSA 加密 1.4 RSA 解密 1.5 RSA加密.签名区别 1.6 RSA签名的过程 II 代码实现 2. ...
- WebConfig 加密解密的原理是什么?
WebConfig 加密解密的原理是什么? 使用命令 加密数据连接串 加密:aspnet_regiis -pef connectionStrings d:/...(webconfig所在路径,不能含中 ...
- RSA加密、解密、签名、验签(验证签名)RSA算法原理
转载链接:https://www.jianshu.com/p/8dc4a5f64e06 https://www.cnblogs.com/pcheng/p/9629621.html RSA原理:http ...
- 凯撒、栅栏密码和3种特殊古典加密(贴了原理和解密、加密网址)
凯撒密码 凯撒密码是对26个字母进行位移替换加密,如位移为2,那么字母a对应字母c,b对应d,·······依次向后位移. 举例:位移为2,k nqxg aqw就是 i love you 缺点:规律简 ...
- 迅雷、快车、QQ旋风链接的加密解密方式原理
from http://www.forece.net/post/570.htm 上次给大家介绍了转换快车.迅雷.QQ旋风链接地址的软件和在线工具.今 天我们就研究一下,他们链接加密解密的转换原理.写这 ...
- RSA加密、解密、签名、验签的原理及方法
目录 一.RSA加密简介 二.公钥与私钥的理解 三.RSA加密解密 四.RSA签名和验证 五.加密的作用 六.两种不同的加密与解密 七.RSA加密.签名区别 八.RSA加密.签名的方法,代码例子如下: ...
- RC4加密解密算法原理及实现对文件的加解密
本文简单实现了RC4算法对于文件的加解密,并已经验证成功.同时实现了对RC4算法加解密较大文件的测速 RC4加密解密算法的原理: 首先,通过我的理解,RC4算法所依赖的最根本原理是:对明文使用同一个密 ...
- RSA不对称加密,公钥加密私钥解密,私钥加密公钥解密
RSA算法是第一个能同时用于加密和数字签名的算法,也易于理解和操作. RSA是被研究得最广泛的公钥算法,从提出到现在已近二十年,经历了各种攻击的考验,逐渐为人们接受,普遍认为是目前最优秀的公钥方案之一 ...
最新文章
- Android JNI 第三篇 Java参数类型与本地参数类型对照
- Snmp学习总结系列——开篇
- oracle估算大小,Oracle 估算數據庫大小的方法
- 如何在云上使用confd+ACM管理敏感数据
- spring(java,js,html) 截图上传
- dubbo配置文件xml校验报错
- python txt 操作_python TXT文件操作
- 力扣(LeetCode)56
- Android的动画简单学习
- VNPY思维导图架构
- 大数据处理应遵循的四大原则
- YIT-CTF—社工类
- html 走马看花还有vb,走马看花的故事
- 微信小程序05---聊天室的搭建
- C++算法进制间的转换
- 笔记:caffe ssd gpu训练自己的数据集
- 面对HP MSA存储中硬盘掉线的情况,学会这种解决方式至关紧要
- jdk-7u80-linux-i586.tar.gz
- 小米商场系统的购物网站的具体的功能实现(重点讲下订单的生成)
- HoloLens 2 系列视频来袭