您的位置:首页 > 编程语言 > Java开发

java加密与解密的艺术(三)——非对称密码体制

2017-05-20 08:51 435 查看
(写在前面的话:之前负责了一个关于数据安全接入的模块,涉及到了数据的加密解密,文件校验,下载落地,入库等。在wannercry肆虐之际,更深刻体会到数据安全的重要意义。鉴于此,不才受邀在今天给团队成员统一普及了一下数据安全方面的概念,重点给Java同事分享了一下基于Java的数据加密解密实现和梁栋的《java加密与解密的艺术》。有感于这次的wannercry风暴,特将今天的培训整理出来和大家分享一下,诚邀勘误指正。
培训资料:参考了梁栋的《java加密与解密的艺术》,大家也可以自行买这本书阅读,应该感谢梁栋为我们提供了一本好书。)

一、非对称密码体制

          非对称密码最大的特征在于加密与解密秘钥不同。两个秘钥,公开的叫公钥,保密的叫私钥。用公钥加密,则必须用私钥解密;反之亦然。非对称密码体制实现了无秘钥传输的保密通信,这一点对称密码体制是不能及的。

          通常情况下公钥用于加密,私钥用于解密。

         非对称密码体制适用于开放环境,安全性高,秘钥管理简单,可方便、安全地实现数字签名、验证、数字信封等技术。

        非对称密码体制算法安全性往往都是基于计算复杂度上的难题,一般都是来自于数论中的难题。但正因为于此,非对称密码体制计算依赖的计算资源就比较多,这就造成了性能方面的瓶颈,因而不适用于大数据量的加密。这一点较对称密码体制来说,略逊一筹。

        通常,采用复合加密系统方案:采用对称密码体制加密数据,而通过非对称加密体制机密对称密码体制中的秘钥。

二、经典非对称加密算法

RSA(整数因子分解问题)
DSA(离散对数问题)
Elgamal
背包算法
Rabin
D-H
ECC(椭圆曲线加密算法,离散对数问题)

         RSA算法是已知安全系数最高的非对称加密算法。RSA算法原理,可参考http://songshuhui.net/archives/84941
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: