
非对称算法中,,,,,现在主流的有DSA、RSA与ECC算法,,,,,今天我们或许先容一下三种算法的特点,,,,,与各自的优弱点。。。。。。。
一、DSA算法
1、简介
DSA (Digital Signature Algorithm) 是 Schnorr 和 ElGamal 署名算法的变种,,,,,被美国 NIST 作为 DSS (DigitalSignature Standard)。。。。。。。 DSA 是基于整数有限域离散对数难题的。。。。。。。
简朴的说,,,,,这是一种更高级的验证方法,,,,,用作数字署名。。。。。。。不但单只有公钥、私钥,,,,,尚有数字署名。。。。。。。私钥加密天生数字署名,,,,,公钥验证数据及署名,,,,,若是数据和署名不匹配则以为验证失败。。。。。。。数字署名的作用就是校验数据在传输历程中不被修改,,,,,数字署名,,,,,是单向加密的升级。。。。。。。
2、处置惩罚历程

(1) 使用新闻摘要算法将发送数据加密天生数字摘要。。。。。。。
(2) 发送方用自己的私钥对摘要再加密,,,,,形成数字署名。。。。。。。
(3) 将原文和加密的摘要同时传给对方。。。。。。。
(4) 接受方用发送方的公钥对摘要解密,,,,,同时对收到的数据用新闻摘要算法爆发统一摘要。。。。。。。
(5) 将解密后的摘要和收到的数据在吸收方重腥蚊爆发的摘要相互比照,,,,,若是两者一致,,,,,则说明在传送历程中信息没有破损和改动。。。。。。。不然,,,,,则说明信息已经失去清静性和保密性。。。。。。。
从上面的先容来看,,,,,DSA和RSA这似乎有点相似????那么两者有什么区别呢????
二、RSA 和DSA
RSA 全称为Rivest-Shamir Adelman算法,,,,,DSA为数字署名算法。。。。。。。两者都属于非对称加密算法。。。。。。。
其中RSA的清静性是基于极其难题的大整数的剖析(两个素数的乘积);;;DSA 的清静性是基于整数有限域离散对数难题。。。。。。。唬唬基本上可以以为相同密钥长度的 RSA 算法与 DSA 算法清静性相当。。。。。。。有要注重的是,,,,,RSA 的清静性依赖于大数剖析,,,,,可是否等同于大数剖析一直未能获得理论上的证实,,,,,由于没有证实破解 RSA 就一定需要作大数剖析。。。。。。。不过也不必太过担心,,,,,RSA 从降生以来,,,,,履历了种种攻击,,,,,至今未被完全攻破(依赖暴力破解,,,,,小于1024位密钥长度的 RSA 有被攻破的纪录,,,,,但未从算法上被攻破)。。。。。。。
1、用途:
DSA 只能用于数字署名,,,,,而无法用于加密(某些扩展可以支持加密);;;
RSA 即可作为数字署名,,,,,也可以作为加密算法。。。。。。。不过作为加密使用的 RSA 有着随密钥长度增添,,,,,性能急剧下降的问题。。。。。。。
2、性能:
相同密钥长度下,,,,,DSA 做署名时速率更快,,,,,但做署名验证时速率较慢,,,,,一样平常情形验证署名的次数多于署名的次数。。。。。。。
相同密钥长度下,,,,,DSA (在扩展支持下)解密密文更快,,,,,而加密更慢;;;
RSA 正好反过来,,,,,一样平常来说解密次数多于加密次数。。。。。。。不过由于非对称加密算法的先天性能问题,,,,,两者都不是加密的好选择。。。。。。。
3、外界看法:
在业界支持方面,,,,,RSA 显然是赢家。。。。。。。RSA 具有更为普遍的安排与支持。。。。。。。
4、使用 ssh-keygen 时的选择:
上面说了那么多,,,,,可以看到RSA 与 DSA 各有优弱点。。。。。。。那么,,,,,在使用 ssh-keygen 时,,,,,RSA 与 DSA究竟选哪个???? 着实这个问题,,,,,最终谜底与上面那些优弱点无关。。。。。。。
主要缘故原由在于,,,,,虽然理论上可以天生更长长度的 DSA 密钥 (NIST FIPS 186-3),,,,,但ssh-keygen在天生 DSA 密钥时,,,,,其长度只能为1024位(基于NIST FIPS 186-2);;;而 ssh-keygen 在 RSA 的密钥长度上没有限制。。。。。。。由于小于1024位密钥长度的 RSA 已经有被攻破的纪录,,,,,以是说现在:RSA 2048 位密钥是更好的选择。。。。。。。
现实上,,,,,OpenSSH 7.0及以上版本默认禁用了ssh-dss(DSA)公钥算法。。。。。。。官方没有给出详细的诠释,,,,,但其中可能有OpenSSH,,,,,DSA密钥位数天生的缘故原由,,,,,同时天生署名时随机性差,,,,,可能会走漏私钥,,,,,且以现在机算机的算力,,,,,DSA 1024-bit已经现实上可破解,,,,,建议不使用。。。。。。。(由于ssh-keygen在天生 DSA 密钥时,,,,,其长度只能为1024位)
以是适用ssh-leygen时,,,,,应该选什么????谜底必定是RSA2048。。。。。。。
三、ECC(椭圆曲线数字署名算法(ECDSA))
RSA 与 DSA 各有优弱点,,,,,那有没一个更好的选择呢????从各个角度来看,,,,,谜底是ECC(Elliptic Curves Cryptography):椭圆曲线算法。。。。。。。
ECC也是非对称加密算法的一种,,,,,是一种果真密钥算法,,,,,其数学基础是使用椭圆曲线上的有理点组成Abel加法群上椭圆离散对数的盘算难题性。。。。。。。
ECC算法具有密钥长度短、更高的清静性、更快的加密速率和更少的盘算量等优点。。。。。。。这使得它特殊适合应用于移动装备、物联网场景、电子票据署名和验证、数字版权治理以及金融生意等领域。。。。。。。在这些领域,,,,,ECC算法可以确保数据的神秘性、完整性和真实性,,,,,从而保唬唬护各方的权益。。。。。。。
别的,,,,,ECC算法的清静性基于椭圆曲线离散对数问题的难题性。。。。。。。也就是说,,,,,在已知椭圆曲线和一个点的情形下,,,,,盘算出另一个点的难度很大。。。。。。。这种特征使得ECC算法成为一种很是有用的非对称加密算法。。。。。。。
总的来说,,,,,ECC算法是一种高效且清静的非对称加密算法,,,,,适用于种种需要高清静性、高效率和低盘算量的场景。。。。。。。

1、ECC的密钥天生历程是怎样的????
在椭圆曲线密码算法(ECC)中,,,,,密钥key的天生是一个涉及多个办法的准确历程。。。。。。。
首先,,,,,用户需要结构一条椭圆曲线 (E),,,,,这通常涉及到选择适当的方程和参数来界说曲线。。。。。。。然后,,,,,用户在曲线上选择一点 (G) 作为天生元,,,,,这一点通常是曲线上的一牢靠点,,,,,其阶(即与该点相加获得曲线上另一个点的最小正整数)为 (n),,,,,且 (n) 必需是一个质数。。。。。。。
接下来,,,,,用户选择一个私钥 (k),,,,,这个私钥是一个小于 (n) 的随机数。。。。。。。然后,,,,,通过将私钥 (k) 与天生元 (G) 相乘(在椭圆曲线的群运算下),,,,,盘算出公钥 (Q = kG)。。。。。。。
在现实使用中,,,,,例如举行加密通讯时,,,,,发送方A会使用吸收方B的公钥 (Q) 来加密信息。。。。。。。而吸收方A收到加密的信息后,,,,,会使用自己的私钥 (k) 来解密,,,,,由于凭证椭圆曲线上的运算规则,,,,,只有准确的私钥才华解开由对应的公钥加密的信息。。。。。。。ECC的密钥天生历程不但涉及到重大的数学理论,,,,,还需要确保所选参数的清静性。。。。。。。这个历程是ECC清静性的基。。。。。。。,,,因此在实验时需要特殊小心和准确。。。。。。。
2、ECC的优势
清静性
ECC提供的清静性水平与RSA相当,,,,,但它可以使用更短的密钥长度来实现相同的清静级别。。。。。。。这意味着处置惩罚速率更快,,,,,存储和传输本钱更低。。。。。。。
效率
由于较短的密钥长度,,,,,ECC在盘算上比古板的RSA更为高效。。。。。。。这关于资源受限的装备如智能手机和物联网装备尤为主要。。。。。。。
带宽
较短的密钥还意味着在通讯历程中占用的带宽更少,,,,,这关于带宽受限的应用来说是一个重大的优势。。。。。。。
3、ECC的应用
SSL/TLS
ECC被用于清静套接层(SSL)和传输层清静性(TLS)协议中,,,,,为互联网通讯提供清静包管。。。。。。。
移动装备
智能手机和其他移动装备使用ECC来保唬唬护用户数据和通讯不被未经授权的会见。。。。。。。
物联网(IoT)
随着物联网装备的普及,,,,,ECC因其高效性而在这些装备的清静解决计划中占有了主要位置。。。。。。。
4、ECC焦点优点
业界普遍认同RSA胜于DSA,,,,,那么ECC 与 RSA 相比呢????我们可以得出ECC有以下的优点:
? (1)相同密钥长度下,,,,,清静性能更高,,,,,如160位ECC已经与1024位RSA、DSA有相同的清静强度。。。。。。。
? (2)盘算量。。。。。。。,,,处置惩罚速率快,,,,,在私钥的处置惩罚速率上(解密和署名),,,,,ECC远 比RSA、DSA快得多。。。。。。。
? (3)存储空间占用小 ECC的密钥尺寸和系统参数与RSA、DSA相比要小得多,,,,, 以是占用的存储空间小得多。。。。。。。
? (4)带宽要求低使得ECC具有普遍得应用远景。。。。。。。
在 ssh-keygen 中,,,,,ECC 算法的响应参数是 “-t ecdsa”。。。。。。???M锵У氖怯捎谕衷睬咚惴ㄖ挥性诮闲掳姹镜 openssl 与 ssh-keygen 中才被支持,,,,,而无法获得普遍使用而去完全替换 RSA/DSA。。。。。。。不过由于椭圆曲线算法的优点,,,,,使其取代 RSA/DSA 而成为新一代通用的非对称加密算法成为可能,,,,,至少 SET 协议的制订者们已经把它作为下一代 SET 协议中缺省的公钥密码算法了。。。。。。。
四、结论
| 名称 | 成熟度 | 清静特点 | 运算速率 | 资源消耗 |
| DSA | 高 | 数字署名 | 慢 | 大 |
| RSA | 高 | 数字署名&数据加密 | 中 | 中 |
| ECC | 高 | 数字署名&数据加密 | 快 | 小 |
椭圆曲线密码算法(ECC)是一种强盛且高效的加密手艺,,,,,它在清静性、效率和带宽使用方面提供了显著的优势. DSA署名快,,,,,验签慢,,,,,和RSA刚刚相反。。。。。。。ECC则是更好的选择。。。。。。。ECC算法的优点包括密钥长度短、更高的清静性、更快的加密速率和更少的盘算量,,,,,这使得它特殊适合应用于移动装备、物联网场景、电子票据署名和验证、数字版权治理以及金融生意等领域。。。。。。。
关注微信号,,,,,惊喜等你来
x