对称加密 和 非对称加密
文章目录
对称解密——异或运算
异或(xor),顾名思义,是一种基于异或运算的加密算法。
异或加密是密码学中一种简单的加密算法,常作为更为复杂的加密算法的组成部分。
原理:
两个值不相同,则异或结果为1;两个值相同,异或结果为0。
所以根据异或的运算规则,在二进制中,相同为0,不同为1。
特性:
异或运算具有可逆性。
如:若 a xor b = c,则 c xor b = a
由此可知
如果a为需要加密的明文
b为规定的密钥
则将明文a与密钥b进行异或运算加密得到密文c
此时对方需要对密文c进行解密
只要得到密钥b
然后将密文c与密钥b进行异或运算加密就可以得到明文a。
非对称解密——RSA算法
问题
由于对称加密的加密和解密使用同样规则(简称"密钥")
这种加密模式有一个最大弱点:甲方必须把加密规则告诉乙方,否则无法解密。
保存和传递密钥,就成了最头疼的问题。
RSA算法
为了解决这个问题,就有了一种新的加密模式被称为"非对称加密算法"。
(1)乙方生成两把密钥(公钥和私钥)。公钥是公开的,任何人都可以获得,私钥则是保密的。
(2)甲方获取乙方的公钥,然后用它对信息加密。
(3)乙方得到加密后的信息,用私钥解密。
如果公钥加密的信息只有私钥解得开,那么只要私钥不泄漏,通信就是安全的。
RSA算法作为当前最成熟且广泛应用的公钥加密体系
RSA算法解决了传统对称密码体系中密钥分发的难题,
并且能够有效地进行数字签名,确保信息的不可否认性,有效抵御非法篡改,从而保障了数据传输的完整性。
社会地位
毫不夸张地说,RSA算法几乎遍布所有计算机网络之中。这种算法因其坚固的防线而备受信赖——密钥越长,其防御越是坚不可摧。据公开资料显示,迄今为止,已被攻破的RSA密钥长度纪录为768位。据此推断,1024位的RSA密钥可被视为相对安全,而2048位的密钥则堪称固若金汤,至今尚无人能撼动其安全壁垒。
缺点
速度慢:与对称密码体制相比,其加/解密过程相对缓慢,更适合处理小规模数据
资源消耗大:加解密运算过程的复杂性和密钥长度的增加,导致计算机资源的使用率很高。
私钥丢失将不可挽回:私钥的独特性意味着一旦遗失,将无法恢复,且无法从发送者那里获取私钥。
密钥位数较多:同等安全强度下,非对称体系所需的密钥位数更多。
数据量变大:加密后的数据往往比原始文本更长
PS:RSA算法的攻击方式
1.穷举攻击:这种方法尝试遍历所有可能的私钥组合,以期找到正确的密钥;
2.数学攻击:这类方法的核心在于尝试分解两个大素数的乘积
其中包括试除分解法、连分数分解法、
p
−
1
p-1
p−1分解法、
p
+
1
p+1
p+1分解法、二次筛选分解法、椭圆曲线分解法以及代数域筛选分解法等多种策略;
3.计时攻击:此类攻击依赖于解密过程的执行时间差异;
4.基于硬件故障的攻击:利用处理器在签名过程中的异常行为;
5.选择密文攻击:针对RSA算法特性进行的针对性攻击;
6.共模攻击:由于目前生成大素数的速度还是比较慢的,造成有的人为了加快算法速度而选择同样的大素数,也就是相同的模数,只是选择不同的密钥。这样做虽然加快了速度,但也给RSA算法带来了安全隐患。
用数学方法攻击RSA的途径有以下三种:
1.分解n为两个素因子。这样就可以计算出
φ
(
n
)
=
(
p
−
1
)
(
q
−
1
)
φ(n)=(p-1)(q-1)
φ(n)=(p−1)(q−1) ,从而可以确定
d
d
d
2.直接确定
φ
(
N
)
φ(N)
φ(N)而不先确定
p
p
p和
q
q
q。这样同样也可以确定d
3.直接确定
d
d
d,而不先确定
φ
(
N
)
φ(N)
φ(N)
┈┈┈┈▕▔╲┈┈┈┈┈┈┈ ┈┈┈┈▕▔╲┈┈┈┈┈┈┈ ┈┈┈┈▕▔╲┈┈┈┈┈┈┈┈
┈┈┈┈┈▏▕┈┈┈┈┈┈┈ ┈┈┈┈┈▏▕┈┈┈┈┈┈┈ ┈┈┈┈┈▏▕┈┈┈┈┈┈┈ ┈
┈┈┈┈┈▏ ▕▂▂▂▂▂┈┈┈┈┈┈┈▏ ▕▂▂▂▂▂┈┈┈┈┈┈┈▏ ▕▂▂▂▂▂┈┈┈
▂▂▂▂╱┈┈▕▂▂▂▂▏┈ ▂▂▂▂╱┈┈▕▂▂▂▂▏┈ ▂▂▂▂╱┈┈▕▂▂▂▂▏┈┈
▉▉▉┈┈┈┈▕▂▂▂▂▏ ┈ ▉▉▉┈┈┈┈▕▂▂▂▂▏ ┈ ▉▉▉┈┈┈┈▕▂▂▂▂▏ ┈
▉▉▉┈┈┈┈▕▂▂▂▂▏ ┈ ▉▉▉┈┈┈┈▕▂▂▂▂▏ ┈ ▉▉▉┈┈┈┈▕▂▂▂▂▏ ┈
▔▔▔▔╲▂▂▕▂▂▂▂▏┈ ▔▔▔▔╲▂▂▕▂▂▂▂▏┈ ▔▔▔▔╲▂▂▕▂▂▂▂▏┈┈