Java加密与解密的艺术-非对称加密

8 篇文章 0 订阅
2 篇文章 0 订阅

场景:银行工作人员验明户主身份后,拿出另一把钥匙同户主一起打开保险柜,这个保险柜称为’双钥保险柜’。

相比于对称加密算法的单钥体系,非对称加密的双钥体系更为安全。在某些极端情况下,费对称加密算法甚至比对称加密算法慢1000倍。

公钥加密的数据,只可用私钥对其解密;私钥加密的数据,只可用公钥对其解密。

使用对称加密算法为数据加密/解密,使用公钥和私钥为( 对称加密算法密钥 ) 加密/解密。
RSA算法要求待加密数据不得大于53个字节。非对称加密算法主要用于交换对称加密算法的秘密密钥,而非数据交换。

非对称加密算法的家谱:
基于因子分解难题-RSA,第一个既能用于数据加密,又能用于数字签名的算法。
基于离散对数难题-DSA
ECC-椭圆曲线加密算法以椭圆曲线理论为基础。

DH算法是第一个密钥协商算法,但仅能用于密钥分配,不能用于加密/解密消息。

基于DH算法实现的加密通信系统实际上是使用同一个秘密密钥完成相应的加密/解密对称加密系统。
DH算法支持的密钥长度为64的倍数位,取值范围在512~1024位之间。

我们熟知的电子邮件加密软件PGP就采用了RSA算法对数据进行加密/解密和数字签名处理。

RSA算法公钥长度远小于私钥长度,并遵循”公钥加密,私钥解密”和”私钥加密,公钥解密”这两项加密/解密原则。

代码参见github:
https://github.com/DISSIDIA-986/EncDecAboutJava

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值