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% ...
随机推荐
- 阿里druid-spring-boot-starter 配置,个人整理以及遇到的问题(防止之后找不到)
简介,什么是Druid Druid是阿里巴巴开源平台上的一个项目,整个项目由数据库连接池.插件框架和SQL解析器组成.该项目主要是为了扩展JDBC的一些限制,可以让程序员实现一些特殊的需求,比如向 ...
- 硬核解析MySQL的MVCC实现原理,面试官看了都直呼内行
1. 什么是MVCC MVCC全称是Multi-Version Concurrency Control(多版本并发控制),是一种并发控制的方法,通过维护一个数据的多个版本,减少读写操作的冲突. 如果没 ...
- mysql杂记漫谈
Hello,大家好,我是烤鸭,这几天消失了一下,主要是线上系统出了点小bug和sql性能问题,在努力搬砖,就把之前的设计模式系列放了一下下,正好趁这个复习巩固了一下sql执行计划和sql优化等相关的东 ...
- [Python]-opencv-python模块(cv2)-图片读取和格式转换
python常常用opencv模块来处理图像. import cv2 as cv 读取图片:imread() 默认按照彩色三通道读取: img = cv2.imread(path) 读取灰度图: im ...
- MQ的消息丢失/重复/积压的问题解决
在我们实际的开发过程中,我们肯定会用到MQ中间件,常见的MQ中间件有kafka,RabbitMQ,RocketMQ.在使用的过程中,我们必须要考虑这样一个问题,在使用MQ的时候,我们怎么确保消息100 ...
- 配置git环境与项目创建
主要用于记录上课笔记,方便以后复习 acgit的地址:https://git.acwing.com/wyw/kob1/ 1. 项目模块的包含 1.1 采用前后端分离 Web端大概框架 2. git环境 ...
- 配置 Containerd 在 harbor 私有仓库拉取镜像
官方文档地址:https://github.com/containerd/cri/blob/master/docs/registry.md 严格来说,这个具体可分为两部分 1.在k8s中使用Conta ...
- 阿里云下配置keepalive,利用HAVIP实现HA
注:这篇文章参考网络,有些称呼都变了,比如阿里云上的现在是弹性ip 包括阿里云在内的很多云环境,因为不支持浮动IP广受诟病.目前阿里云在VPC网络下发布了HAVIP,能够实现arp宣告IP.这样也就让 ...
- k8s中yaml文件常见参数含义
apiVersion: apps/v1 #与k8s集群版本有关,使用 kubectl api-versions 即可查看当前集群支持的版本 kind: Deployment #该配置的类型,我们使用的 ...
- CentOS 7.7系统安装Redis 6.0.3
前提操作 避免出现如下的错误 yum -y install gcc tcl yum -y install centos-release-scl yum -y install devtoolset-9- ...