test1密码学基础——对称加密和非对称加密以及MD5
密码学基础
一、信息安全的目标
私密性
完整性
源认证
不可否认性
二、如何保证信息的私密性
加解密的相关术语:
*算法
***
*明文
*密文
F(明文+**)= 密文
FN(密文+**)= 明文
三、加解密算法总共分为两大类:
对称加解密算法:
定义:加解***一致
特征:加解密长度在40~256位之间;加解密速度快(适合加密视频这种大文件);使用简单的数学操作,很容易通过硬件加速;用于大块数据的加密。
缺点:**管理是严重问题(窃取或劫持)。
常见的对称加密算法:DES、3DES、AES
DES:(数据加密标准)
广泛使用的对称加解密算法
固定**长度是56位
算法非常的好,没有任何的漏洞,但由于**长度短,容易收到暴力**
DES加密的过程:
3DES
特征:
**长度放大3倍,168位
暴力**变的不可能
基于非常好的算法
AES(高级加密标准)
特征:
97年颁布,用于替换DES
**长度和块是变长
AES的软件和硬件的运行效率,广泛应用于无线和语音加密
RC4
特征:
流加密
软件运行效率高
广泛应用于流加密,还有老的无线技术WEP
非对称加解密算法:
定义:加*** != 解***
公钥 私钥
**长度一般是在512bit~2058bit
特点:
加解密速度较为缓慢
实现简单的**管理或者对小数据进行加解密
两大用途:签名和**交换(**管理)
常见的非对称**算法:RSA
RSA:
特征:
基于大素数因式分解的数学难题
不能够通过公钥推导私钥
一个**加密,另一个**解密
RSA工作原理:
通过对称**和非对称**的结合,来提供一个综合的加解密的解决方案
对称**
优点:能够加密大量数据,并且加密速度快
缺点:没有**管理
非对称**
优点:提供相对安全的**管理机制(公钥和私钥)
缺点:加解密速度慢,没办法做大数据的加解密
解决办法:用非对称**的公钥加密对称**的**,然后非对称**的持有者用私钥解密密文,得到对称加***后续的数据就是用对称**进行的加解密。
(由于对称**和非对称**的优缺点互补,所以做一个结合:B的公钥加密A的**得到密文,密文返回给B,B再用私钥解密,得到明文,再用对称加密将明文加密,发给A,A用相应的对称**解密。)
四、如何解决数据完整性?
散列函数
定义:散列函数也叫HASH,主流的散列算法MD5和SHA-1.
F(x) = 散列值(MD5/128bit;SHA-1/160bit)
X就是做完整性计算的数据
散列函数的特点:
固定大小
雪崩效应
单向性(只能数据>推导散列值,不能反推)
利用散列函数做完整性校验原理:
A文件àFmd5(A)à散列值(A) A’ + 散列值(A) A’文件àFmd5(A’)à散列值(A’)
可以通过md5校验器软件,得到md5,与软件提供者的md5做比对,校验下载的安装包在网络传输过程中是否完整。
HMAC(哈希算法)
*增加一个HASH(key)
*接受双方必须预先知道这个key
*在保障完整性的同时,实现源认证(解决中间被攻击的问题)
*消除了HASH易受中间人攻击的问题
五、如何解决源认证问题?
用非对称**(数字签名)来解决源认证
公钥加密,私钥解密(**管理、**交换)
公钥解密,私钥加密(数字签名)
数字证书(作用:验证公钥持有者)
CA:颁发数字证书的权威机构