您的位置:首页 > 运维架构 > Linux

加密算法

2016-04-25 23:02 387 查看
加密算法主要分为两大类:对称加密和非对称加密
对称加密算法 发送者和接受者共享相同的密钥,密钥长度一般在40-256bit之间。 常见的对称加密算法有DES、3DES、AES、RC4
DES(DataEncryption Standard),于1975年由IBM开发,使用固定56bit长度的密钥,基于加密密钥进 行一系列的移换位操作,由于只是使用了简单的逻辑操作,很容易使用硬件实现加速
DES有两种模式的块加密方式: 1、ECB mode(Electronic CodeBook,电子密码本)
相同的明文产生相同的密文;这种模式容易遭受字典攻击
2、CBC mode(Cipher Block Chaining,加密块链接) 加密前,将当前的明文块与一个IV字段进行异或操作



3DES(Triple DES),基于DES,密钥长度放大3倍,168bit长度;算法强度更好

AES(Advanced Encryption Standard),在密码学中又称Rijndael加密法,但AES和Rijndael又不尽相同,Rijndael加密法可以支持更大范围的区块和密钥长度:AES的区块长度固定为128比特,密钥长度则可以是128,192或256比特;而Rijndael使用的密钥和区块长度可以是32位的整数倍,以128位为下限,256比特为上限。AES的软件和硬件运行效率均非常高,广泛用于对无线和语音的加密
对称加密的特点:
1、对称加密算法加密数据速度快,而且紧凑 2、明文传输共享密钥,容易出现中途挟持和窃听的问题 3、密钥数量以参与者平方的速度增长,当数量过多时,不便管理和储存 4、不支持数字签名和检验数据的不可否认性非对称加密算法
使用一对密钥进行加密和解密,这一对密钥为公钥和私钥,用其中一个密钥加密的数据只能用另一个密钥来解密,密钥长度一般在512-2048bit之间,非对称加密算法的加密速度较慢,一般用来加密很小的数据,两大用途:数字签名和密钥交换.
在一对密钥中,公钥可由私钥导出,但公钥无法导出私钥发送方用自己的私钥加密数据,可以实现身份验证
发送方用对方的公钥加密数据,可以保证数据机密性
常用的非对称加密算法有RSA、DSA、ECC
RSA:由RSA公司发明,是一个支持变长密钥的公共密钥算法,需要加密的文件块的长度也是可变的
RSA加密解密过程

DSA是一种标准的数字签名算法
ECC与RSA相比,有极大的优势,主要表现在:1、抗攻击性更强
2、计算量小,处理速度快
3、存储空间占用小

散列算法 散列算法是对数据进行提炼,生成数据的特征码,保证数据的完整性 散列算法的特点 1. 固定大小 散列函数可以接收任意大小的数据,但输出的散列值长度是固定的 2. 雪崩效应 原始数据就算修改一个bit,计算得到的散列值也会发生巨大的改变 3. 单向性 只能从原始数据计算得到散列值,无法从散列值求出原始数据 4. 冲突避免 两个不同数据计算得到的散列值必然不相同常见的散列算法 MD5,一种单向散列算法,非可逆,相同的明文产生相同的密文。使用128bit固定输出
SHA-1,可以对任意长度的数据运算生成一个160位的数值,与MD5相比,SHA-1具有更强的安全性,但运行速度比MD5慢

DH 协议(Diffie-Hellman)
DH协议是一种密钥协商协议,通信双方不在互联网上直接传送密钥,而是经过一系列数据的交换,最后计算出双方共享的密钥,大大提高的通信的安全性 原理: DH基于大素数的数学难题:现有g b p三个数,其中c为一个大素数,则已知p、g和g^b%p无法推出b。
A、B通信双方约定一个初始数g和一个大素数p
A生成一个保密的随机数x,并计算g^x%p
将g^x%p的值发送给B
B生成一个保密的随机数y,并计算g^y%p
B将g^y%p的值发送给A
A计算(g^y%p)^x的值并将其作为通信的密钥B计算(g^x%p)^y的值并将其作为通信的密钥

在整个密钥协商的过程中,g、p、g^x%p、g^y%p是公开的,而x、y是保密的,所以第三方无法计算出密钥 在互联网中,通信过程一般有下面2种: 一、 A和B拿到彼此的公钥
双方通过DH协商产生密钥;

A通过计算产生要发送数据的特征码,用自身私钥加密特征码

用经过协商得到的对称密钥加密数据和特征码,保证了通信的私密性、完整性和身份验证

二、
A和B拿到彼此的公钥;

A通过计算产生要发送数据的特征码,用自身私钥加密特征码

用随机数加密数据和特征码

用B的公钥加密随机数,一并打包发送到b,保证了通信的私密性、完整性和身份验证
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux 加密算法 DH