混合加密(RSA算法和DES算法)
常见的混合加密算法主要是指RSA加解密算法和DES加解密算法这两种加解密算法。随着计算机系统能力的不断发展,因为两种算法各有各优点以及缺点,单独的使用DES或RSA加密可能没有办法满足实际需求,所以就采用了RSA和DES加密方法相结合的方式来实现数据的加密。
RSA算法
RSA公开密钥密码体制。所谓的公开密钥密码体制就是使用不同的加密密钥与解密密钥,是一种“由已知加密密钥推导出解密密钥在计算上是不可行的”密码体制。
RSA算法是第一个能同时用于加密和数字签名的算法,也易于理解和操作。RSA是被研究得最广泛的公钥算法,从提出到现在的三十多年里,经历了各种攻击的考验,逐渐为人们接受,普遍认为是目前最优秀的公钥方案之一。
DES算法
是一种使用密钥加密的块密码,它基于使用56位密钥的对称算法。DES现在已经不被视为一种安全的加密算法,主要因为它使用的56位密钥过短。为了提供实用所需的安全性,可以使用DES的派生算法3DES来进行加密,虽然3DES也存在理论上的攻击方法。在2001年,DES作为一个标准已经被高级加密标准(AES)所取代。另外,DES已经不再作为国家标准科技协会(前国家标准局)的一个标准。在某些文献中,作为算法的DES被称为DEA(Data Encryption Algorithm,数据加密算法),以与作为标准的DES区分开来。
混合加密实现方式
1、信息(明文)采用DES密钥加密。
2、使用RSA加密前面的DES密钥信息。
最终将混合信息进行传递。
而接收方接收到信息后:
1、用RSA解密DES密钥信息。
2、再用RSA解密获取到的密钥信息解密密文信息。
最终就可以得到我们要的信息(明文)。
如
/// <summary>
/// RSA和DES混合加密
/// </summary>
/// <param name=”data”>待加密数据</param>
/// <param name=”publicKey”>RSA公钥</param>
/// <returns></returns>
public Param Encrypt(string data, string publicKey)
{
//加密数据
DESSecurity DES = new DESSecurity();
string DESKey = DES.GenerateKey();
string encryptData = DES.Encrypt(data, DESKey);
//加密DESkey
RSASecurity RSA = new RSASecurity();
string encryptDESKey = RSA.Encrypt(DESKey, publicKey);
Param mixParam = new Param();
mixParam.DESKey = encryptDESKey;
mixParam.Data = encryptData;
return mixParam;
}
/// <summary>
/// RSA和DES混合解密
/// </summary>
/// <param name=”data”>待解密数据</param>
/// <param name=”key”>带解密的DESKey</param>
/// <param name=”privateKey”>RSA私钥</param>
/// <returns></returns>
public string Decrypt(string data, string key, string privateKey)
{
//解密DESKey
RSASecurity RSA = new RSASecurity();
string DESKey = RSA.Decrypt(key, privateKey);
//解密数据
DESSecurity DES = new DESSecurity();
return DES.Decrypt(data, DESKey);
}
GDCA是一家提供信息安全证书的运营企业,从事信息安全证书数十载,在信息安全方面拥有雄厚的实力。GDCA已通过WEBTRUST国际认证,具备了国际化的电子认证服务能力。其中,GDCA的 产品之一SSL证书是一种服务器端的数字证书,它能确保用户在使用SSL协议进行数据交换时验证和确保数据安全。GDCA SSL证书使用的加密长度是128/256位。据目前IT技术,40位强度的证书暴力破解耗费4小时,而对于128位证书破解需要一万亿年以上。目前,GDCA SSL证书是国内领先的安全证书。日后,GDCA将会坚持不断深入研发,为各大网络商业平台提供更安全的信息安全证书,为网络安全虚拟世界贡献一份微弱的力量。