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

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


一、非对称密码体制

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


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


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


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


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


二、经典非对称加密算法

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


         RSA算法是已知安全系数最高的非对称加密算法。RSA算法原理,可参考http://songshuhui.net/archives/84941


猜你喜欢

转载自blog.csdn.net/stefan_xiepj/article/details/72568689