RSA、DSA 和 ECC 加密算法有什么区别?
RSA、DSA 和 ECC 加密算法是用于在公钥基础设施中生成密钥的主要算法。
公钥基础设施 (PKI) 用于管理互联网通信和计算机网络中的身份和安全性。 启用 PKI 的核心技术是公钥密码术,这是一种依赖于使用两个相关密钥(公钥和私钥)的加密机制。
这个公钥和私钥对一起加密和解密消息。 以这种方式配对两个密码密钥也称为非对称加密,它不同于对称加密,其中单个密钥用于加密和解密。
非对称加密的优点是公钥可以公开给全世界看,而私钥在用户设备上保持安全,比对称加密安全得多。
公钥加密如何依赖加密
公钥密码术依靠数学算法来生成密钥。公钥由一串随机数组成,可用于加密消息。只有预期的接收者才能解密和阅读此加密消息,并且只能使用相关的私钥来解密和阅读,该私钥是秘密的,只有接收者知道。
公钥是使用复杂的加密算法创建的,以将它们与相关的私钥配对,这样它们就不会被暴力攻击利用。
公钥的密钥大小或比特长度决定了保护的强度。例如,2048 位 RSA 密钥通常用于 SSL 证书、数字签名和其他数字证书。此密钥长度提供了足够的加密安全性,以防止黑客破解算法。 CA/浏览器论坛等标准组织定义了支持的密钥大小的基线要求。
PKI 支持我们在使用网站、移动应用程序、在线文档和连接的设备时每天都会遇到的、不显眼且无处不在的数字证书。 PKI 最常见的用例之一是基于 X.509 的传输层安全性 (TLS)/安全套接层 (SSL)。这是 HTTPS 协议的基础,可实现安全的 Web 浏览。但数字证书也适用于广泛的用例,包括应用程序代码签名、数字签名以及数字身份和安全性的其他方面。
什么是 RSA、DSA 和 ECC 算法?
PKI 密钥生成使用了三种主要算法:
- Rivest-Shamir-Adleman (RSA)
- 数字签名算法 (DSA)
- 椭圆曲线密码学 (ECC)
RSA、DSA、ECC 算法
RSA 算法由 Ron Rivest、Adi Shamir 和 Leonard Adleman 于 1977 年开发。 它依赖于大素数分解需要强大的计算能力这一事实,并且是第一个利用公钥/私钥范式的算法。 与 RSA 相关的密钥长度不同,2048 位 RSA 密钥长度是当今大多数网站的标准。
DSA 使用与 RSA 不同的算法来创建公钥/私钥,基于模幂运算和离散对数问题。它为同等大小的密钥提供与 RSA 相同级别的安全性。 DSA 由美国国家标准与技术研究院 (NIST) 于 1991 年提出,并于 1993 年被联邦信息处理标准 (FIPS) 采用。
ECC 基于控制有限域上椭圆曲线代数结构的数学算法。它提供与 RSA 和 DSA 同等级别的加密强度,但密钥长度更短。 ECC 是三者中最新开发的加密方法,椭圆曲线数字签名算法 (ECDSA) 于 1999 年获得认可,使用椭圆曲线加密的密钥协议和密钥传输于 2001 年紧随其后。与 DSA 一样,ECC 已通过 FIPS 认证,并且还得到了美国国家安全局 (NSA) 的认可。
请注意,可以同时支持多种加密算法。例如,Apache 服务器可以在同一台服务器上同时支持 RSA 和 DSA 生成的密钥。采用这种“束手无策”的方法可以增强您的企业安全性。
RSA 和 DSA 如何比较?
虽然 RSA 和 DSA 使用不同类型的数学算法来生成密钥对,但出于加密强度的目的,两者被认为是等效的。相反,RSA 和 DSA 之间的主要区别在于性能和速度。
性能和速度
RSA 在加密和签名方面比 DSA 快,但在解密和验证方面比 DSA 慢。但是,由于身份验证需要两者,因此对于许多实际应用程序而言,性能差异在很大程度上可以忽略不计。
RSA 在密钥生成方面也比 DSA 慢,但由于密钥生成一次并使用数月或数年,这通常不是一个重要的考虑因素。
SSH 协议支持
另一个不同之处在于它们的 Secure Shell (SSH) 协议支持。 RSA 与原始 SSH 以及更新的第二版 SSH2 兼容,而 DSA 仅适用于 SSH2。由于 SSH 被认为不如 SSH2 安全,这可能是使用 DSA 的一个考虑因素。
联邦背书
DSA 和 RSA 之间的另一个区别是 DSA 得到美国联邦政府的认可。 对于向联邦机构提供服务的企业,跟上政府标准的能力可能是使用 DSA 的一个理由。
底线是,对于大多数用例、行业和监管环境,RSA 和 DSA 非常相似,提供相同的加密强度,两者之间的差异相对较小。 这两种算法也同样兼容领先的互联网协议,包括 Nettle、OpenSSL、wolfCrypt、Crypto++ 和 cryptlib。
ECC 与 RSA 和 DSA 相比如何?
ECC 和 RSA/DSA 之间的最大区别在于 ECC 为等效密钥大小提供了更大的加密强度。 ECC 密钥比相同大小的 RSA 或 DSA 密钥更安全。
密钥大小比较:
对称密钥大小(位) | RSA 大小(位) | 椭圆曲线密钥大小(位) |
---|---|---|
80 | 1024 | 160 |
112 | 2048 | 224 |
128 | 3072 | 256 |
192 | 7680 | 384 |
256 | 15360 | 521 |
根据 NIST 推荐的密钥大小
ECC 更高效
如图所示,使用 ECC,您可以获得等效的加密强度,但密钥大小要小得多 - 大约小一个数量级。例如,要达到使用 112 位对称密钥加密的等效加密强度,需要 RSA 2048 位密钥,但只需要 ECC 224 位密钥。
更短的密钥长度意味着设备需要更少的处理能力来加密和解密数据,这使得 ECC 非常适合移动设备、物联网和其他计算能力更有限的用例。
安全和速度
在 Web 服务器等更传统的用例中,与 RSA 或 DSA 相比,ECC 也有一些优势,因为较小的密钥大小可以通过更快的 SSL 握手实现更强的安全性,这意味着更快的网页加载时间。
值得注意的是,ECDSA 是 ECC 的原始版本,是 DSA 的一个变种。 ECDSA 提供与 ECC 相同的每比特数的加密强度级别。
RSA、DSA 和 ECC 加密算法有什么区别?的更多相关文章
- ECC加密算法入门介绍 --- 看雪
标 题:ECC加密算法入门介绍 作 者:zmworm 时 间:2003/05/04 08:32pm 链 接:http://bbs.pediy.com ECC加密算法入门介绍 作者 :ZMWorm[C ...
- SGC强制最低128位加密,公钥支持ECC加密算法的SSL证书
Pro SSL证书,验证企业域名所有权和企业身份信息,采用SGC(服务器门控)技术强制128位以上至256位加密,属于企业OV验证级专业版(Pro) SSL证书:即使用户使用低版本浏览器(比如浏览 ...
- DH、RSA与ElGamal非对称加密算法实现及应用
1.对称加密与非对称加密概述 关于对称加密与非对称加密的概念这里不再多说,感兴趣可以看下我之前的几篇文章,下面说一说两者的主要区别. 对称加密算法数据安全,密钥管理复杂,密钥传递过程复杂,存在密钥泄露 ...
- OpenSSH 密钥管理:RSA/DSA 认证(转载)
我们中有许多人把优秀的 OpenSSH用作古老的 telnet 和 rsh 命令的替代品,OpenSSH 不仅是安全的而且是加密的. OpenSSH 更加吸引人的特性之一是它能够使用基于一对互补的数字 ...
- OpenSSH的RSA/DSA密钥认证系统
OpenSSH的RSA/DSA密钥认证系统,它可以代替OpenSSH缺省使用的标准安全密码认证系统. OpenSSH的RSA和DSA认证协议的基础是一对专门生成的密钥,分别叫做私用密钥和公用密钥. 使 ...
- RSA/DSA 密钥的工作原理
下面从整体上粗略的介绍了 RSA/DSA 密钥的工作原理.让我们从一种假想的情形开始,假定我们想用 RSA 认证允许一台本地的 Linux 工作站(称作 localbox)打开 remotebox 上 ...
- [转]RSA,DSA等加解密算法介绍
From : http://blog.sina.com.cn/s/blog_a9303fd90101cgw4.html 1) MD5/SHA MessageDigest是一个数据的数字指纹. ...
- ECC加密算法原理入门介绍
前言 同RSA(Ron Rivest,Adi Shamir,Len Adleman三位天才的名字)一样,ECC(Elliptic Curves Cryptography,椭圆曲线密码编码学)也属于公开 ...
- 浅析DES与AES、RSA三种典型加密算法的比较
DES与AES的比较 自DES 算法公诸于世以来,学术界围绕它的安全性等方面进行了研究并展开了激烈的争论.在技术上,对DES的批评主要集中在以下几个方面: 1.作为分组密码,DES 的加密单位仅有64 ...
- RSA DSA
RSA https://blog.csdn.net/sunmenggmail/article/details/11994013 https://baike.baidu.com/item/RSA%E7% ...
随机推荐
- flex常用布局
公共样式: <style> * { margin: 0; padding: 0; } .has-flex { display: flex; } </style> 垂直居中 子元 ...
- K8S name_namespace
Name 由于K8S内部,使用"资源"来定义每一种逻辑概念(功能),故没种"资源",都应该有自己的"名称" "资源"有 ...
- Java SE final关键字
final关键字 final可以修饰类.属性.方法和局部变量 如下情况,可以使用final 当不希望类被继承时,可以用final修饰 当不希望父类的某个方法被子类覆盖/重写(override)时,可以 ...
- Python数据科学手册-Pandas:层级索引
一维数据 和 二维数据 分别使用Series 和 DataFrame 对象存储. 多维数据:数据索引 超过一俩个 键. Pandas提供了Panel 和 Panel4D对象 解决三维数据和四维数据. ...
- 2.Ceph 基础篇 - 集群部署及故障排查
文章转载自:https://mp.weixin.qq.com/s?__biz=MzI1MDgwNzQ1MQ==&mid=2247485243&idx=1&sn=e425c31a ...
- Elasticsearch:ICU分词器介绍
ICU Analysis插件是一组将Lucene ICU模块集成到Elasticsearch中的库. 本质上,ICU的目的是增加对Unicode和全球化的支持,以提供对亚洲语言更好的文本分割分析. 从 ...
- 天翼云主机某一IP多次登录失败导致IP被锁无法登录,天翼云主机莫名其妙无法远程登陆
情况说明: 直接使用该IP通过ssh远程连接失败,但是先通过ssh远程连接其他主机上,然后在这个主机上再ssh刚才连接失败的主机,就能登陆上. 说明,root用户不是被锁了, 而是远程登陆IP被锁了 ...
- 使用port-forward访问集群中的应用程序,以Redis 为例
为Redis创建Deployment和Service 创建 Redis Deployment,YAML文件如下: apiVersion: apps/v1 kind: Deployment metada ...
- rocketmq 4.x 双主双从同步读写
文章标题写的是多M多S同步双写集群安装,但是看具体参数配置,写的是异步复制Master brokerRole=ASYNC_MASTER flushDiskType=SYNC_FLUSH #刷盘方式 # ...
- Linux Subsystem For Android 11!适用于Debian GNU/Linux的Android子系统,完美兼容ARM安卓软件!
本文将讲述如何在Debian Stable 系统安装一个Android 11子系统,并且这个子系统带有Houdini可以兼容专为移动设备开发的ARM软件.在root权限下,编辑/etc/apt/sou ...