#常用的加密算法汇总
常用的加密方式有:对称加密和非对称加密;
对称加密:加密和解密使用的方式和密钥相同;
*优点:*算法公开,计算量小,加密效率高,常用的对称加密算法有:DES,RC4,AES等
非对称加密:加密和解密使用的秘钥不相同的方式;
- DES算法
定义: DES算法又被称为美国数据加密标准,明文按64位进行分组,密钥长64位,其中56位参与DES运算,8位为校验码。
原理:
1.初始置换:把输入的64位数据块按位重新组合,并把输出分为L0,R0两部分,其置换规则,第58位换到第一位,第50位换到第2位……依次类推。结果:L0=D58D50……D8,R0=D57D49……D7.
2.逆置换:经过16次迭代运算后,得到L16,R16,将此作为输入,进行逆置换,逆置换正好是初始置换的逆运算,既得到密文输出。
组成 Key,Data,Mode,key为8Byte,Data也是对应的8Byte,Mode为工作模式,及加密或者解密
**特点:**极高的安全性,一般使用穷举搜索法进行攻击,但是缺点也比较明显:分组短,密钥短,密码生命周期短,运算速度较慢。
- AES加密
定义: AES算法是高级加密标准的缩写,采用一种区块加密标准。
**特点:**比DES具有更好的安全性,效率,灵活性,在软件和硬件上都能快速地加解密,需要的存储器较少。
- RC4
对称加密算法,使用私钥进行加密,所谓对称解密就是加密个解密的算法是一致的使用同样的密钥,RC4不对明文进行分组处理,而是字节流的方式依次加密明文中的每一个字节,解密的时候也是依次对密文中的每个字节进行解密;
解密原理:
1.通过密钥调度算法KSA初始化状态矢量S
2.利用S(伪随机数)生成算法PRAG得到密钥流;
3.通过密钥流与明文进行xor操作,解密是执行方式相同;
*密钥流:*数据是N位,通过一定的算法生成N位的数据,然后将其xor(异或)得到密文。
特点:
算法简单,执行速度快,速度可以达到DES加密的10赔左右,并且秘钥长度是可变的,可变的范围为1-256字节(8-2048bit),在现在技术支持的前提下,暴力方法搜索秘钥已经不太可行了,目前没有找到对于128bit秘钥长度的RC4加密算法有效的攻击;
采取先进的动态加解密算法在二进制级别进行对称加密,若APP退出,则加密结果失效。
关键标量:
1.密钥流:RC4算法的关键是依据明文和密钥生成对应的密钥流,密钥流的长度和明文的长度是相应的。密文第i字节=明文第i字节^密钥流第i字节;
2.状态向量S,长度为256,每个单元都是一个字节,算法执行的不论什么时候,S都包含0-255的8比特数的排列组合,仅仅只是值的位置发生了变换;
3.暂时向量T:长度为256,每一个单元也是一个字节,假设密钥的长度是256字节,就直接把密钥的值赋值给T,否则就将密钥轮转赋值给T;
4.密钥K:长度为1-256字节,长度可变,密钥的长度keylen与明文长度,密钥流的长度没有关系,密钥的长度一般为16字节。
- RSA加密
不对称的加密,加密密钥和解密密钥不同,一个为公钥,一个为私钥。
公钥和私钥的产生是基于一对很大的素数,将两个大素数相乘十分容易,但那时想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥,既公钥,两个大素数组合为私钥。
解密者拥有私钥,并且将由私钥计算生成公钥发布给加密者,
实现过程:
1.随意选择两个大的质数p和q,p不等于q,计算N=pq。
2.根据欧拉函数,不大于N且与N互质的整数個数為(p-1)(q-1)。
3.选择一个整数e与(p-1)(q-1)互质,并且e小于(p-1)(q-1)。
4.用以下这个公式计算d:d× e ≡ 1 (mod (p-1)(q-1))。
5.将p和q的记录销毁。
从以上内容中得出:(N,e)是公钥,(N,d)是私钥。一般加密位数使用1024位