密码学 | 椭圆曲线密码学 ECC 入门(三)

目录

7  这一切意味着什么?

8  椭圆曲线密码学的应用

9  椭圆曲线密码学的缺点

10  展望未来


⚠️ 原文地址:A (Relatively Easy To Understand) Primer on Elliptic Curve Cryptography

⚠️ 写在前面:本文属搬运博客,自己留着学习。如果你和我一样是小白,那么看完本文我们将仍然不能理解下图具体是在干什么,但能够对 RSA 和椭圆曲线加密的初衷有所了解。


密码学 | 椭圆曲线 ECC 密码学入门(二)文章浏览阅读121次。4 椭圆曲线:更好的陷门函数5 奇异的对称性6 让我们变得奇特https://blog.csdn.net/m0_64140451/article/details/137676044

7  这一切意味着什么?

椭圆曲线离散对数 是椭圆曲线密码学的难题。尽管已经有近三十年的研究,数学家们仍然没有找到一个算法来解决这个问题,这个算法比朴素的方法有所改进。

换句话说,与因式分解不同,基于目前理解的数学,似乎没有捷径可以缩小围绕这个问题的基础陷门函数的差距。这意味着,对于相同大小的数字,解决椭圆曲线离散对数的问题比因式分解要困难得多。由于计算上更费力的难题意味着更强的密码系统,因此椭圆曲线密码系统比 RSA 和 Diffie-Hellman 更难破解。

为了想象它有多难破解,Lenstra 最近引入了 “全球安全性” 的概念。你可以计算破解一个密码算法需要多少能量,并将这个能量与这些能量能煮沸多少水进行比较。这是一种密码学的碳足迹。按照这个标准,破解一个 228 位的 RSA 密钥所需的能量比煮沸一茶匙水所需的能量还要少。相比之下,破解一个 228 位的椭圆曲线密钥所需的能量足以煮沸地球上所有的水。要达到这种安全级别,使用 RSA 需要一个 2380 位的密钥。

使用 ECC,你可以使用更小的密钥来获得相同级别的安全性。小的密钥尤其重要,尤其是在越来越多加密是在像手机这种功率较小的设备上完成的世界里。虽然将两个素数相乘比将乘积分解为其组成部分的因式分解要容易,但当素数变得非常长时,即使是乘法步骤也可能在低功率设备上需要一些时间。

RSA 这种陷门函数靠的就是 “因式分解的难度” 和 “乘法的难度” 之间的差距。如果为了保证加密速度而缩短密钥长度,那么 RSA 算法的安全性大打折扣。如果保持密钥长度不变,那么像手机这种功率较小的设备完成加密的时间又比较长。

虽然你可能会通过增加密钥长度来继续保持 RSA 的安全,但这样做会在客户端带来加密性能变慢的成本。ECC 似乎提供了一个更好的权衡:短的、快速的密钥提供高安全性。

8  椭圆曲线密码学的应用

经过缓慢的起步之后,基于椭圆曲线的算法正变得越来越受欢迎,并且其采用的速度正在加快。椭圆曲线密码学现在被广泛应用于多种场合:

美国政府使用它来保护内部通信,Tor 项目使用它来帮助确保匿名性,它也是证明比特币所有权的机制,为苹果的 iMessage 服务提供签名,在 DNSCurve 中用于加密 DNS 信息,并且是安全网页浏览中通过 SSL/TLS 进行认证的首选方法。

CloudFlare 使用椭圆曲线密码学来实现完美的向前保密性,这对于在线隐私至关重要。第一代密码学算法如 RSA 和 Diffie-Hellman 在大多数领域仍然是标准,但椭圆曲线密码学正在迅速成为网络隐私和安全的最佳解决方案。

为什么后文一直在提 CloudFlare?答:因为 CloudFlare 是原博所属网站。

如果您从 Chrome 或 Firefox 的最新版本访问原文博客的 HTTPS 版本:

https://blog.cloudflare.com

则您的浏览器正在使用椭圆曲线密码学。您可以亲自检查这一点。在 Chrome 中,您可以点击地址栏中的锁图标,然后选择连接标签,以查看建立安全连接时所使用的密码学算法。在 Chrome 30 中点击锁图标后,应显示以下图片。

我只在 Firefox 找到了锁图标:

原博客写作于 2013 年,现在的 Chrome 和 Firefox 早变样了😇

在 CloudFlare 中,ECDHE_RSA 是一种用于安全套接字层(SSL)的密钥交换协议,它结合了椭圆曲线密钥交换(ECDHE)和 RSA 加密的优势。ECDHE 代表椭圆曲线 Diffie-Hellman 临时密钥交换,它基于椭圆曲线数学提供了一种安全高效的方法来建立加密通信的密钥。RSA 组件则用于验证服务器的身份,这是因为 CloudFlare 的 SSL 证书绑定了一个 RSA 密钥对。

现代浏览器也支持基于椭圆曲线的证书。如果 CloudFlare 的 SSL 证书是基于椭圆曲线的,那么页面上的描述将是 ECDHE_ECDSA。在这种情况下,服务器身份的验证将使用 ECDSA(椭圆曲线数字签名算法)。

CloudFlare 使用的 ECC 曲线(与 Google.com相同)的参数如下:

最大值:115792089210356248762697446949407573530086143415290314195533631308867097853951
曲线:y² = x³ + ax + b
a = 115792089210356248762697446949407573530086143415290314195533631308867097853948
b = 41058363725152142129326129780047268409114441015993725554835256314039467401291

ECDSA 相对于 RSA 的性能提升是显著的。即使在使用没有汇编优化椭圆曲线代码的较老版本的 OpenSSL 时,一个 256 位的 ECDSA 签名也比一个 2048 位的 RSA 签名快 20 倍以上。

在一台配备 OpenSSL 0.9.8 的 MacBook Pro 上,性能基准测试结果显示:

  • 执行 10 秒的 256 位 ECDSA 签名:42874 个 256 位 ECDSA 签名在 9.99 秒内完成
  • 执行 10 秒的 2048 位私钥 RSA 签名:1864 个 2048 位私钥 RSA 签名在 9.99 秒内完成

这表明使用 ECDSA 的签名速度是 RSA 的 23 倍。

CloudFlare 不断寻求改进 SSL 性能。就在本周,CloudFlare 开始使用一种汇编优化的 ECC 版本,这使得 ECDHE 的速度翻了一番。使用椭圆曲线密码学可以为服务器和浏览器节省时间、电力和计算资源,帮助云服务平台使网络变得更加快速和安全。

9  椭圆曲线密码学的缺点

在椭圆曲线的世界中,并非一切都是美好的,一些问题和不确定性曾经阻碍了它在整个行业中的广泛采用。

最近新闻中提到的双椭圆曲线确定性随机数生成器(Dual_EC_DRBG)就是一个例子。这是一种由美国国家标准与技术研究院(NIST)标准化,并得到国家安全局(NSA)推广的随机数生成器。Dual_EC_DRBG 利用椭圆曲线的数学生成看似随机的数字。该算法涉及在曲线上的点,并反复进行椭圆曲线的 “dot” 操作。发表后,有报道称它可能被设计有一个后门,这意味着拥有正确秘密数字的人可以完全预测返回的数字序列。

最近,RSA 公司召回了几款安全产品,因为这些随机数生成器被设置为它们安全产品线的默认伪随机数生成器(PRNG)。无论这个随机数生成器是否真的有后门,这并不影响椭圆曲线技术的强度,但它确实引发了人们对椭圆曲线标准化过程的质疑。正如我们之前所写,这也部分解释了为什么应该关注确保系统使用足够的随机数。在未来的博客文章中,我们将讨论如何在这个算法规格中悄悄地植入后门。

一些世界上最持怀疑态度的密码学家现在对 NIST 本身以及它发布并由 NSA 支持的标准持有一般性的不信任。几乎所有广泛实现的椭圆曲线都属于这个类别。这些曲线尚未知的攻击,选择它们是因为它们的算术效率,但是劣质曲线确实存在,一些人认为谨慎总比后悔好。在 NIST 之外开发具有高效算术的曲线取得了进展,包括由 Daniel Bernstein(djb)创建的曲线 25519 以及 Paulo Baretto 及其合作者最近计算的曲线,尽管这些曲线的广泛采用还需要几年时间。直到这些非传统的曲线被浏览器实现,它们才能用于保护网络上的加密传输。

关于椭圆曲线密码学的另一个不确定性与专利有关。黑莓(通过其 2009 年收购的 Certicom)拥有超过 130 项专利,涵盖椭圆曲线的特定用途。许多这些专利已经授权给私营组织和甚至 NSA 使用。这使得一些开发者在实施 ECC 时犹豫不决,担心他们的实现是否侵犯这些专利组合。2007 年,Certicom 对索尼提起诉讼,指控其使用椭圆曲线的方式,但该诉讼在 2009 年被驳回。现在有许多被认为是不会侵犯这些专利的椭圆曲线密码学实现,并且已经被广泛使用。

与 RSA 相比,ECDSA 数字签名的一个缺点是它需要一个好的熵源。没有适当的随机性,私钥可能会被揭示。Android 上的随机数生成器的一个漏洞允许黑客在 2013 年初找到用于保护数人比特币钱包的 ECDSA 私钥。索尼的 PlayStation 实现中的 ECDSA 也有类似的漏洞。在制作签名的机器上需要一个好的随机数源。Dual_EC_DRBG 不被推荐使用。

10  展望未来

即使有了上述警告,椭圆曲线密码学相对于传统 RSA 的优势仍然被广泛接受。许多专家担心,RSA 和 Diffie-Hellman 背后的数学算法可能在 5 年内(原博客写作于 2013 年)被破解,使 ECC 成为唯一合理的替代方案。

椭圆曲线得到所有现代浏览器的支持,大多数证书颁发机构也提供椭圆曲线证书。CloudFlare 保护的每个 SSL 连接默认会在现代浏览器上使用 ECC 。很快,CloudFlare 将允许客户上传自己的椭圆曲线证书。这将使 ECC 不仅用于保护底层消息,还用于身份验证,从而加快 HTTPS 会话的速度。关于这一功能的更多详情,将在功能上线时发布。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/554938.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Argus DBM 一款开源的数据库监控工具,无需部署Agent

开箱即用 无需部署Agent,开箱即用。我们使用JDBC直连您的数据库,输入IP端口账户密码即可。 全平台支持 Argus目前支持对Mysql, PostgreSQL, Oracle等数据库类型的监控,我们也会尽快适配其它数据库,致力于监控所有数据库。我们提…

ctfshow web入门 SQl注入web171--web179

从这里开始SQl建议大家去看这篇文章学习一下先 MySQl web171 法一联合查询 题目 $sql "select username,password from user where username !flag and id ".$_GET[id]." limit 1;";爆数据库名 -1 union select 1,database(),3 -- 爆表名 -1 union s…

el-input在type=“textarea“中文字换行,导出成word文档中也显示换行

el-input在type"textarea"文字中换行,是\n转义的,文字导出成word文档没有换行,只需要把\n替换成\r,这样el-input和word文档都能正常显示换行 val.replace.replace("\n", "\r")

UWB技术应用:UWB模块在室内定位系统中的关键角色

随着室内定位技术的不断发展,UWB模块在室内定位系统中扮演着关键角色,其高精度、抗干扰和多路径传输等特点,为室内定位提供了可靠的技术支持。本文将探讨UWB模块在室内定位系统中的关键角色,包括其原理、应用场景和技术优势&#…

Java项目 苍穹外卖 黑马程序员

目录 day1一、项目效果展示二、项目开发整体介绍三、项目介绍3.1 定位3.2 功能架构3.3 产品原型3.4 技术选型 四、开发环境搭建4.1 前端环境4.2 后端环境 五、导入接口文档六、Swagger6.1 介绍6.2 使用方式6.3 常用注解 day2一、新增员工二、员工分页查询三、启用禁用员工账号四…

【无标题】PHP-parse_str变量覆盖

[题目信息]: 题目名称题目难度PHP-parse_str变量覆盖1 [题目考点]: 变量覆盖指的是用我们自定义的参数值替换程序原有的变量值,一般变量覆盖漏洞需要结合程序的其它功能来实现完整的攻击。 经常导致变量覆盖漏洞场景有:$$&…

paddle gpu install

官方教程 https://www.paddlepaddle.org.cn/documentation/docs/zh/install/pip/linux-pip.html#sanyanzhenganzhuang 创建一个新的环境安装 python3 -m pip install paddlepaddle-gpu2.6.1.post112 -f https://www.paddlepaddle.org.cn/whl/linux/cudnnin/stable.htmlpython …

网络基础-TCP和UDP协议区别

什么是 TCP 协议? TCP 全称是 Transmission Control Protocol(传输控制协议),它由 IETF 的 RFC 793 定义,是一种面向连接的点对点的传输层通信协议。 TCP 通过使用序列号和确认消息,从发送节点提供有关传输…

请陪伴Kimi和GPT成长

经验的闪光汤圆 但是我想要写实的 你有吗? 岁数大了,希望如何学习新知识呢?又觉得自己哪些能力亟需补强呢? 看论文自然得用Kimi,主要是肝不动了,眼睛也顶不住了。 正好昨天跟专业人士学会了用工作流的办法跟…

【动态规划 状态机dp】3082. 求出所有子序列的能量和

算法可以发掘本质,如: 一,若干师傅和徒弟互有好感,有好感的师徒可以结对学习。师傅和徒弟都只能参加一个对子。如何让对子最多。 二,有无限多1X2和2X1的骨牌,某个棋盘若干格子坏了,如何在没有坏…

idea连接Docker数据库

我们在docker下创建了数据库,想要更方便的查看和操作该数据库,idea和DataGrip或者其他人家都可以。在数据库连接时需要填写数据库名字,主机,端口,数据库用户名和密码。 输入之后先不要点击OK和按Enter键,我…

vue+springboot实验个人信息,修改密码,忘记密码功能实现

前端部分 新增Person(个人页面),Password(修改密码页面),还需要对Manager,login页面进行修改 router文件夹下的index.js: import Vue from vue import VueRouter from vue-router i…

【运输层】TCP 的流量控制和拥塞控制

目录 1、流量控制 2、TCP 的拥塞控制 (1)拥塞控制的原理 (2)拥塞控制的具体方法 1、流量控制 一般说来,我们总是希望数据传输得更快一些。但如果发送方把数据发送得过快,接收方就可能来不及接收&#x…

Ubuntu20.04无法连接蓝牙

连接蓝牙的时候一直转圈显示搜索中,但是搜索不出来任何设备。 在终端输入 dmesg | grep -i blue 可看到有以下信息 可以看到无法识别蓝牙,处于一个unknow的状态 Bluetooth: hci0: RTL: unknown IC info, lmp subver 8852, hci rev 000b, hci ver 000b…

云轴科技ZStack入选中国信通院《高质量数字化转型产品及服务全景图(2023年度)》

近日,由中国互联网协会主办、中国信通院承办的“2024高质量数字化转型创新发展大会”暨“铸基计划”年度会议在北京成功召开。 本次大会发布了2024年度行业数字化转型趋势,总结并展望了“铸基计划”2023年取得的工作成果及2024年的工作规划。同时&#…

支付宝支付之SpringBoot整合支付宝创建自定义支付二维码

文章目录 自定义支付二维码pom.xmlapplication.yml自定义二维码类AlipayService.javaAlipayServiceImpl.javaAlipayController.javaqrCode.html 自定义支付二维码 继&#xff1a;SpringBoot支付入门 pom.xml <dependency><groupId>org.springframework.boot<…

大语言模型微调技术

Adapter 参考资料&#xff1a;《Parameter-efficient transfer learning for nlp》 adpater首先将原始的d维特征映射到较小的维度m&#xff0c;应用非线性函数&#xff0c;然后再重新映射回d维。总的参数量&#xff08;包含biases&#xff09;为 2mddm&#xff0c; 当m远小于d…

算法打卡day38

今日任务&#xff1a; 1&#xff09;完全背包理论基础(卡码网52. 携带研究材料) 2&#xff09;518.零钱兑换II 3&#xff09;377. 组合总和 Ⅳ 4&#xff09;复习day13 完全背包理论基础(卡码网52. 携带研究材料) 题目链接&#xff1a;52. 携带研究材料&#xff08;第七期模拟…

以大学生活为主题的演讲稿(3篇)

以大学生活为主题的演讲稿&#xff08;3篇&#xff09; 以下是三篇以大学生活为主题的演讲稿范文&#xff0c;供您参考&#xff1a; 演讲稿一&#xff1a;拥抱大学生活&#xff0c;绽放青春梦想 尊敬的老师、亲爱的同学们&#xff1a; 大家好&#xff01; 今天&#xff0c;我…

VLAN知识点总结

首先对交换机等设备进行了解 中继器&#xff1a;物理层设备 只能提供电流信息的电压恢复&#xff0c;但无法恢复波形&#xff0c;所以无法理论无限延长传输距离 集线器&#xff1a;物理层设备 多接口的中继器 二层交换机的作用&#xff1a; 区别集线器&#xff08;HUB&#…