IT评测·应用市场-qidao123.com
标题:
【阿一网络安全】怎样让你的暗码更安全?(二) - 非对称加密
[打印本页]
作者:
尚未崩坏
时间:
2024-12-8 01:06
标题:
【阿一网络安全】怎样让你的暗码更安全?(二) - 非对称加密
前次《【阿一网络安全】怎样让你的暗码更安全?(一) - 对称加密》提到加密算法的对称加密,我们这次来聊聊非对称加密。
和对称加密差别,非对称加密的加密密钥息争密密钥差别。
非对称加密
大概过程就是,发送方使用公钥对明文数据举行加密,把密文发送给吸收方,吸收方收到密文,用私钥举行解密。如图所示:
在我们使用对称加密的时候,不但要约定好发送、吸收方的密钥,还要担心密钥泄漏。而在非对称加密中,不需要担心这个问题,公钥自己就是公开的,不需要额外对其举行保密,可以把公钥发给所有需要的人。
非对称加密,除了加密功能之外,部分非对称算法还提供了签名功能(确保明文数据的完备性和真实性,并不是保密性)。
发送方用私钥对明文数据举行加密,得到签名。吸收方收到明文数据和签名后,用发送方的公钥解密签名,并将结果与明文数据比对。如果匹配,就证实这段消息确实是发送方发送的且没有被篡改。
非对称加密的核心头脑,是基于特定的数学困难设计的,特点就是:
正向盘算轻易
反向盘算在盘算上不可行(在公道的时间内无法完成)
经典且广泛使用的非对称加密算法包罗这几种,RSA、ECC和国密的SM2。
RSA
RSA是一种非对称加密算法,在公开密钥加密和电子贸易中被广泛使用,是由 Ron Rivest、Adi Shamir 和Leonard Adleman 三人一起提出,RSA就是他们三人姓氏的首字母构成。
RSA的安全性,基于
大整数因子分解
的数据困难,换言之,对一极大整数做因数分解愈困难,RSA 算法愈可靠。它使用两个差别的密钥举行加密,公钥用于加密,私钥用于解密。
密钥的天生
公钥和私钥,都是由
发送方
约定并天生的。
选择两个大的质数 p 和 q,
p ≠ q
,盘算
N = p * q
盘算欧拉函数
φ(N) = φ§ * φ(q) = (p - 1) * (q - 1)
选择一个小于 φ(N) 的整数 e,使得 e 与 φ(n) 互质
盘算 e 关于 φ(N) 的模逆元 d,使得
d * e ≡ 1(mod φ(N))
公钥 = (N, e)。
私钥 = (N, d)。
加密
c = me mod N
假设发送方想把明文 m 发送给吸收方,就可以按照这个公式把 明文 m,加密成 密文 c 发送给吸收方。
解密
m = cd mod N
与加密类似,吸收方获取到 密文 c,可以按照这个公式 把 密文 c,解密成 明文 m。
数字签名
RSA也可以用作 数字签名。
吸收方 想给 发送方 发消息的话,可以把 他想要发的消息明文盘算一个 散列值(Message Digest),然后用私钥 加密 这个 散列值 并放在消息明文后一起发送给发送方。
发送方 收到 吸收方发送的消息后,把密文用 公钥 举行解密,然后和 发送发自己对这个 消息明文 的盘算的散列值相比较,如果二者同等的话,那么就可以确保该消息 是吸收方发送的,并且没有被篡改过。
安全性
安全性基于 大整数因子分解的困难性。
密钥长度 一样平常为 2048 或 4096 位。如今保举的长度至少位 2048位。
优缺点
长处:
原理相对简朴
可用于加密,也可用于数字签名
广泛使用
缺点:
盘算速率慢
大概受到量子盘算机的威胁
现实应用
HTTPS 协议
SSH 安全连接
数字证书
虽然RSA的理论底子相对简朴,但是现实使用过程中,需要思量许多的细节,好比填充方案,密钥管理,性能优化等。
ECC
ECC(椭圆曲线暗码学,
E
lliptic
C
urve
C
ryptography),是一种基于椭圆曲线数学的公开密钥加密算法。
对比RSA的主要优势在于,使用较小的密钥长度就能提供相当级别的安全性,使得它特别适合资源受限的环境下使用,好比移动设备和物联网设备。
ECC 的安全性,基于椭圆曲线离散对数问题(ECDLP)的困难性,在椭圆曲线上,已知点P 和 点Q,找到整数k使得
Q = kP
是困难的。
密钥的天生
选择椭圆曲线 E 和 基点 G
选择 私钥 d (随机大整数)
盘算 公钥 Q = dG
加密
选择随机数 r
盘算
R = rG
和
S = rQ
使用 S 的 x坐标 作为对称密钥 加密
解密
盘算
S = dR
使用 S 的 x坐标 作为对称密钥 解密
数字签名
签名:
选择随机数 k
盘算
R = kG
,r 为 R 的 x坐标
盘算
s = k-1 (H(m) + dr) mod n
签名为 (r, s)
验证:
盘算
u1 = H(m)s-1 mod n
和
u2 = rs-1 mod n
盘算
V = u1G + u2Q
如果 V 的x坐标即是r,则签名正确
安全性
基于 椭圆曲线离散对数问题的困难性
密钥最小长度为 224位,对应的对称加密密钥的长度为 128位
优缺点
长处:
使用更短的密钥得到相同的安全性,最小224位
盘算速率更快
资源耗费低
缺点:
量子盘算攻击
无效曲线攻击
后门
旁路攻击
现实应用
TLS / SSL
移动设备安全
物联网设备
加密货币
虽然ECC的数学底子看起来更复杂,但是他的盘算效率更加的高效。它的高效性使得它广泛用于许多加密货币中。实现过程中仍然需要注意一下细节,好比曲线的选择、随机数的天生等。
SM2
SM2是我国国家暗码管理局发布的一种公钥暗码算法,属于国家商用暗码,算法公开。
它基于ECC(椭圆曲线暗码学),但有其特定的参数和实现细节,加密强度和ECC相当。
密钥的天生
天生随机数
d ∈ [1, n-1]
,其中 n 是椭圆曲线的阶
盘算 公钥
P = dG
,G为基点
加密
天生随机数
k ∈ [1, n-1]
盘算点,
(x1, y1) = kG,(x2, y2) = kP
,P为吸收方公钥
使用对称加密算法 SM4加密消息,密钥为 x2
然后加密明文
解密
盘算点,
(x2, y2) = d(x1, y2)
,d为吸收方私钥
使用对称加密算法 SM4解密密文,密钥 为 x2
数字签名
签名:
对 消息 M举行摘要处理(SM3),得到 e = H(M),H为哈希函数
天生随机数
k ∈ [1, n-1]
盘算点,
(x1, y1) = kG
盘算 r,
r = (e + x1) mod n
,如果 r = 0 或者 r + k = n,则重新选择 k
盘算 s,
s = ((1 + d)-1 * (k - r * d)) mod n
,如果 s = ,则重新选择 k
签名为 (r, s)
验证:
检查 r,
s ∈ [1, n-1]
盘算 e,
e = H(M)
盘算 t,
t = (r + s) mod n
,如果 t = 0,则签名无效
盘算点,(x1, y1) = sG + tP
盘算 R,
R = (e + x1) mod n
,如果 R = r,则签名有效,否则签名无效
安全性
接纳256的椭圆曲线
不可伪造、不可否认性
有效防止中间人攻击
前向安全性,纵然长期泄漏密钥,也不会影响之前会话的安全性
优缺点
长处:
基于ECC,使用更短的密钥得到相同的安全性
效率高
为我国国家暗码管理局发布的标准算法,具有良好的兼容性和标准化支持
不但支持加解密,还支持数字签名,可以或许满意多种安全需求
本地化,配套使用SM3
缺点:
主要在国内使用,国际化大概存在兼容性问题
实现复杂
现实应用
被广泛用于政府部门、金融机构和大型企业的信息体系中
电子政务、电子商务、可信盘算等多个领域
总结
本文主要简朴介绍了非对称加密算法 RSA、ECC 和 SM2 的基本原理,以及它们的实现过程。对比对称加密,非对称加密算法的最大优势就是保障了密钥分发的安全性、支持数字签名。
因此,如今大部分的认证和签名场景,其实使用的都是非对称加密算法。好比,在SSH登录、Git上传等场景中,我们都可以将自己的公钥上传到服务端,然后由客户端生存私钥。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 IT评测·应用市场-qidao123.com (https://dis.qidao123.com/)
Powered by Discuz! X3.4