
非对称算法中,目前主流的有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 的安全性是基于整数有限域离散对数难题8夏芄灰晕谎茉砍ざ鹊 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