数据加解密算法研究

       在软件处理的过程中,常常涉及到敏感信息的处理,这时我们一般都会对数据进行要加解密,下面就和大家一起分享数据加解密技术。

1 对称加密算法:对数据中的敏感数据和密钥进行加密时一般时候AES256位算法

①定义:加密和解密使用相同密钥的算法。

②特点:速度快、效率高和使用长密钥时的难破解性,适用于一般数据的加密,但密钥安全性得不到保证,而且每对用户都需使用唯一的密钥,导致秘钥的几何增长,增加使

用和维护成本,且无签名。

③常见算法:DES、3DES、TDEA、Blowfish、RC5、IDEA算法

④算法比较:DES,56位密钥,安全性低;;3DES,三次DES,安全性尚可,性能差;AES,安全性高,性能好

⑤原理分析:

对称密钥:DES TripleDES算法
 
DES算法把64位的明文输入块变为数据长度为64位的密文输出块,其中8位为奇偶校验位,另外56位作为密码的长度。首先,DES把输入的64位数据块按位重新组合,并把输
 
出分为L0、R0两部分,每部分各长32位,并进行前后置换,最终由L0输出左32位,R0输出右32位,根据这个法则经过16次迭代运算后,得到L16、R16,将此作为输入,进行
 
与初始置换相反的逆置换,即得到密文输出。
 
DES算法具有极高的安全性,到目前为止,除了用穷举搜索法对DES算法进行攻击外,还没有发现更有效的办法,而56位长密钥的穷举空间为256,这意味着如果一台计算机的
 
速度是每秒种检测100万个密钥,那么它搜索完全部密钥就需要将近2285年的时间,因此DES算法是一种很可靠的加密方法。
 
对称密钥:RC算法
 
RC4算法的原理是“搅乱”,它包括初始化算法和伪随机子密码生成算法两大部分,在初始化的过程中,密钥的主要功能是将一个256字节的初始数簇进行随机搅乱,不同的数簇
 
在经过伪随机子密码生成算法的处理后可以得到不同的子密钥序列,将得到的子密钥序列和明文进行异或运算(XOR)后,得到密文。
 
由于RC4算法加密采用的是异或方式,所以,一旦子密钥序列出现了重复,密文就有可能被破解,但是目前还没有发现密钥长度达到128位的RC4有重复的可能性,所以,RC4
 
也是目前最安全的加密算法之一。

对称加密算法实现的参考:http://www.blogjava.net/amigoxie/archive/2014/07/06/415503.html

                                           http://mingcn.cnblogs.com/archive/2010/10/31/aes_c.html

 
2.非对称加密算法,速度要比对加密算法称慢千倍。对密钥数据进行加密时一般使用RSA2048
 
①定义:密钥成对出现,公钥私钥都可以用来加密和解密(但必须成对)。甲方可以使用乙方的公钥对机密信息进行签名后再发送给乙方;乙方再用自己的私匙对数据进行验签
 
②特点:无需像对称加密算法一样传输唯一密钥,速度慢,算法复杂,安全性依赖于算法与密钥;适用于加密对称密钥,口令等短数据,可用于数字签名,私钥不可公开。
 
非对称加密体系不要求通信双方事先传递密钥或有任何约定就能完成保密通信,并且密钥管理方便,可实现防止假冒和抵赖(可以确保发送者无法否认发送过该信息),更适合
 
网络通信中的保密通信要求。数字签名的意义在于,对传输过来的数据进行校验。确保数据在传输工程中不被修改。
 
③常见算法:RSA、Elgamal、背包算法、Rabin、D-H、ECC(椭圆曲线加密算法)
 
④算法比较:RSA2048安全性高(RSA1024已过时),而且可通过X.509数字证书防止中间人攻击(攻击者一但获得私钥,即可截获现在和以前所有的消息)
 
 
3.消息摘要算法,也叫哈希,散列,杂凑;对数据进行完整性校验时一般使用SHA256算法
 
①定义:无需密钥,且加密后不能被解密,只有输入相同的明文数据经过相同的消息摘要算法才能得到相同的密文,适合于分布式网络相同上使用,加密计算的工作量是瓶颈
 
②特点:任意长度的消息经过算法生成定长的摘要值,不同的输入产生的摘要的值是不同的。保证了信息的完整性和不可否认性。
 
③常见算法:通常也把摘要叫做数据签名或消息的指纹,MD5,SHA1,SHA256
 
④算法比较:MD5:128,SHA1:160(摘要长度),一般认为越长越安全。MD5的强碰撞难度大幅降低,SHA1逐渐被SHA256等废除。(碰撞即摘要相同)
 
 
4.数字签名算法:对数据进行防抵赖,防篡改一般使用SHA256WithRSA
 
①定义:结合摘要算法和非对称加密算法来实现对数据的防篡改、防伪造、防抵赖的一种技术。
 
②特点:对摘要进行加密是因为摘要相较于消息长度固定且短。
 
③常见算法:MD5WithRSA、SHA256WithRSA、SHA1WithRSA
 
 
5.数据编码算法
 
①定义:加密后的数据一般是二进制的,若想以字符方式显示和保存,需使用十六进制编码、Base64编码等数据编码算法将二进制数据转成字符数据
 
②特点:Base64算法效率最高(即编码后的数据最短)
 
6.在通道内传输敏感数据,一般使用http+tls的形式。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值