RSA:RSA 是一种目前应用非常广泛、历史也比较悠久的非对称秘钥加密技术,在1977年被麻省理工学院的罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)三位科学家提出,由于难于破解,RSA 是目前应用最广泛的数字加密和签名技术,比如国内的支付宝就是通过RSA算法来进行签名验证。它的安全程度取决于秘钥的长度,目前主流可选秘钥长度为 1024位、2048位、4096位等,理论上秘钥越长越难于破解,按照维基网络上的说法,小于等于256位的秘钥,在一台个人电脑上花几个小时就能被破解,512位的秘钥和768位的秘钥也分别在1999年和2009年被成功破解,虽然目前还没有公开资料证实有人能够成功破解1024位的秘钥,但显然距离这个节点也并不遥远,所以目前业界推荐使用 2048 位或以上的秘钥,不过目前看 2048 位的秘钥已经足够安全了,支付宝的官方文档上推荐也是2048位,当然更长的秘钥更安全,但也意味着会产生更大的性能开销。
DSA:既 Digital Signature Algorithm,数字签名算法,他是由美国国家标准与技术研究所(NIST)与1991年提出。和 RSA 不同的是 DSA 仅能用于数字签名,不能进行数据加密解密,其安全性和RSA相当,但其性能要比RSA快。
ECDSA:Elliptic Curve Digital Signature Algorithm,椭圆曲线签名算法,是ECC(Elliptic curve cryptography,椭圆曲线密码学)和 DSA 的结合,椭圆曲线在密码学中的使用是在1985年由Neal Koblitz和Victor Miller分别独立提出的,相比于RSA算法,ECC 可以使用更小的秘钥,更高的效率,提供更高的安全保障,据称256位的ECC秘钥的安全性等同于3072位的RSA秘钥,和普通DSA相比,ECDSA在计算秘钥的过程中,部分因子使用了椭圆曲线算法。
‘贰’ 对称加密和非对称加密的区别是什么
对称加密技术的特点如下:
1、加密方和解密方使用同一密钥。
2、加密和解密的速度比较快,适用于需要加密的数据量比较大时。
3、密钥传输的过程不安全,且容易被破解,密钥管理也比较麻烦。
非对称加密技术的特点如下:
1、每个用户拥有一对密钥加密:公钥和私钥。
2、公钥加密,私钥解密;私钥加密,公钥解密。
3、由于公钥使用的密钥长度非常长,因此公钥加密速度非常慢,一般不使用它对大数据量进行加密。
4、某一个用户用自己的私钥加密,其他用户用这个用户的公钥解密,实现数字签名。
非对称加密算法的运行速度比对称加密算法的速度慢很多,当需要加密大量的数据时,建议采用对称加密算法,提高加解密速度。对称加密算法不能实现签名,因此签名只能使用非对称算法。
由于对称加密算法的密钥管理是一个复杂的过程,密钥的管理直接决定着它的安全性,因此当数据量很小时,还是要考虑采用非对称加密算法。
‘叁’ 科普知识—对称加密和非对称加密
区块链技术中广泛应用到非对称加密技术,非对称加密技术保证了信息在传输过程中的安全性,非对称加密技术是在对称加密技术上发展来的。本文主要阐述对称加密技术和非对称加密技术的概念和特点,并举例说明。
对称加密就是用相同的密钥对原文进行加密和解密,通信双方共用一个密钥。
基于对称加密算法传输信息“ABC”的步骤。
(1)发送方通过密钥对原文"ABC"进行加密,得到密文"abc",并发送给接收方。密钥为将字母转换为对应的小写字母,大写A转换为小写a,“BC”同理转换为“bc”。
(2)发送方将密钥发送给接收方。
(3)接收方通过密钥对密文进行解密,反推出原文“ABC”。
对称加密算法的缺点:无法确保密钥被安全传递。
密钥就是传说中的“密码本”。密文在传输过程中是可能被第三方截获的,关键就落在“密码本”上,如果密码本也被第三方截获,则传输的密码信息将被第三方破获,所以经常看到电影、电视剧的情节中通过各种手段保护密码本的安全送达。
非对称加密技术很好的解决了对称加密技术密钥无法安全传递的问题。
非对称加密有两个密钥,即公钥(Public Key)和私钥(Private Key),对数据进行加密和解密使用不同的密钥。使用公钥进行加密,使用私钥进行解密。
非对称加密算法中私钥就是一个随机数,基于不同的算法生成不同的随机数,如:SHA256算法生成的是256位的随机数,通常是调用操作系统的随机数生成器来生成私钥,私钥通过一定的加密算法推导出公钥,私钥到公钥的推导过程是单向的,也就是说公钥无法反推导出私钥。
基于非对称加密算法传输信息“hello world”的步骤。
(1)发送方使用接收方的公钥对待发送信息“hello world”加密,此处需注意:信息发送给谁,使用谁的公钥进行加密,公钥是可以公开的,类似于银行卡账户。
(2)发送方将加密后的密文通过网络发送给接收方。
(3)接收方接收到密文后,使用自己的私钥对密文进行解密,从而获得传输信息“hello world”。
采用非对称加密算法即使第三方在网络上截获到密文,但其无法获得接收方的私钥,也就无法对密文进行解密,作为接收方务必保证自己私钥的安全,所以非对称加密技术解决了密钥传输过程的安全性问题。
本文主要阐述对称加密技术和非对称加密技术的概念和特点,并举例说明。对称加密是通信双方共用密钥,无法保证密钥的安全传递;非对称加密使用接收方的公钥对数据加密,接收方使用自己的私钥解密,即使信息被第三方截获,由于没有接收方的私钥,也无法破解密文。