【转】ECC加密算法简介

原文链接:https://blog.csdn.net/xuanli4845/article/details/115907886

ECC全称为“Ellipse Curve Ctyptography”,是一种基于椭圆曲线数学的公开密钥加密算法。椭圆曲线在密码学中的使用是在1985年由Neal Koblitz和Victor Miller分别独立提出的。

与传统的基于大质数分解难题的加密算法不同,该加密方式基于 “离散对数” 这种数学难题。

ECC主要优势是可以使用更小的密钥并提供相当高等级的安全。

ECC164位的密钥产生一个安全级,相当于RSA 1024位密钥提供的保密强度,而且计算量较小,处理速度更快,存储空间和传输带宽占用较少。

目前我国居民二代身份证正在使用 256 位的椭圆曲线密码,虚拟货币比特币也选择ECC作为加密算法。

ECC加密算法原理介绍


ECC也是使用了正向运算很简单,但是反向运算很难的单向函数,但是和RSA的原理不同,RSA使用的时模函数作为单向函数,而ECC是建立在基于椭圆曲线的离散对数问题上的密码体制,给定椭圆曲线上的一个点G,并选取一个整数k,求解K=kG很容易(注意根据kG求解出来的K也是椭圆曲线上的一个点);反过来,在椭圆曲线上给定两个点K和G,若使K=kG,求整数k是一个难题。

ECC就是建立在此数学难题之上,这一数学难题称为椭圆曲线离散对数问题。其中椭圆曲线上的点K则为公钥(注意公钥K不是一个整数而是一个椭圆曲线点),整数k则为私钥(实际上是一个大整数)。

ECC加密算法优缺点:
1.优点
对于ECC加密算法的优点,那就是性能上的提升,同样的密钥长度,基于ECC加密要比基于RSA安全很多。对于安全多少呢,可能需要一个量化的概念来证明ECC究竟有多强。那我们以碳排放量作为量化标准。

同样是228字节的私钥,使用RSA加密算法加密之后进行破解的话,可能只需要煮沸一勺水的碳排放。但是使用ECC加密之后进行破解的话,就可能需要煮沸一整个地球的水的碳排放。

2.缺点
前面我们介绍了ECC算法的优势,但是它真的有那么强么?其实它也仍存在几个方面的缺陷,要不然凭借ECC的优势估计早已席卷全球,还有RSA什么事儿呢?
第一个缺点是:它是基于椭圆曲线的离散对数问题,这并不是一个很好理解的问题,这里的椭圆曲线实际上并不是一个真正意义的椭圆,它的运算和椭圆类似,实际上是一个随着参数变化而不断变化的曲线,不同参数的选取会出现不同的曲线,不同的曲线就会形成不用的ECC标准,不同标准的ECC产生的加解密效果也是千差万别的。所以第一个缺陷就是曲线的选择很复杂。

第二个缺陷是:有没有可能这条复杂的曲线被人植入了后门呢,然后别人就可以通过这个后门轻松的破解。现行的一套很流行的ECC标准是由美国郭建安全局NAS发布的,这个标准就被很多人质疑是有被植入了后门的。

第三个缺陷就是专利之争。关于ECC的使用,很多人申请了很多的专利,现在关于ECC使用的专利大多数都掌握在一家公司的手中,这家公司就是黑莓,就是产手机的那个黑莓。所以,当你想要构建自己的一套ECC标准的时候,可能不知道哪里就触及了它们的专利,卷入专利之争。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

kotlin 编写一个简单的天气预报app(五)增加forcast接口并显示

参考资料 OpenWeatherMap提供了一个/forecast接口,用于获取未来几天的天气预报。你可以使用HTTP GET请求访问该接口,并根据你所在的城市或地理坐标获取相应的天气数据。 以下是一个示例请求的URL和一些常用的参数: URL: http://api.openwe…

Flink(二十二)Flink 的table api与sql之创建表的DDL

Flink 系列文章 Flink(一)1.12.7或1.13.5详细介绍及本地安装部署、验证 Flink(二)1.13.5二种部署方式(Standalone、Standalone HA )、四种提交任务方式(前两种及session和per-job)验证详细步骤 Flink&…

K8s安全配置:CIS基准与kube-bench工具

01、概述 K8s集群往往会因为配置不当导致存在入侵风险,如K8S组件的未授权访问、容器逃逸和横向攻击等。为了保护K8s集群的安全,我们必须仔细检查安全配置。 CIS Kubernetes基准提供了集群安全配置的最佳实践,主要聚焦在两个方面:主…

Greeplum以每日一个区间,批量创建多个分区

目录 一、需求分析 二、实施流程 2.1、创建以日期分区的临时表 2.2、循环创建每日的分区 2.3、单语句新增分区 2.4、删除特定分区 三、其他 一、需求分析 如标题所示,现在需要建一张临时表来存储每日增量的流水数据。存储周期为近两年,其中日增量约10…

【解析】对比学习和孪生网络的关系

文章目录 区别联系具体概念孪生网络(Siamese Networks)对比学习(Contrastive Learning) 总结 区别 孪生网络是一种特定的神经网络结构;对比学习是一种学习策略,它试图让模型学习如何区分正样本对&#xff…

C语言指针进阶-2

本篇文章带 1. 数组传参和指针传参 2. 函数指针 3. 函数指针数组 的相关知识详细讲解! 如果您觉得文章不错,期待你的一键三连哦,你的鼓励是我创作动力的源泉,让我们一起加油,一起奔跑,让我们顶峰相见&…

(文章复现)梯级水光互补系统最大化可消纳电量期望短期优化调度模型matlab代码

参考文献: [1]罗彬,陈永灿,刘昭伟等.梯级水光互补系统最大化可消纳电量期望短期优化调度模型[J].电力系统自动化,2023,47(10):66-75. 1.基本原理 1.1 目标函数 考虑光伏出力的不确定性,以梯级水光互补系统的可消纳电量期望最大为目标,函数…

kernel32.dll如何修复,快速解决kernel32.dll缺失的方法

Kernel32.dll是Windows操作系统中一个重要的系统文件,对于系统的正常运行至关重要。然而,由于各种原因,用户可能会遇到kernel32.dll文件的缺失问题。今天小编就来给大家详细的介绍一下kernel32.dll这个文件,并且详细的介绍一下ker…

Mybatis映射关系mybatis核心配置文件

目录 1.Mybatis映射关系 1.1一对一映射之resultType 1.2resultMap处理映射关系 2.mybatis核心配置文件 1. properties(属性) 2. settings(设置) 3.typeAliases(类型别名) 4.environments&#xff0…

Iptables

常用名词 容器:存放东西 表(table):存放链的容器,防火墙的最大概念 链(chain):存放规则的容器 规则(policy):准许或拒绝规则 Iptables处理流程 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上…

小程序通过ip+port+路径获取服务器中的图片

配置IIS 首先需要配置IIS。 打开控制面板,接下来的流程按下图所示。 安装好后,按“win”键,搜索IIS 选择一个ip地址,或手动填写,端口号按需更改 填写别名和物理路径,别名就是后续通过url访问物理…

Ubuntu上安装与配置SFTP

目录 一、预装软件 二、创建sftp管理组 三、SSH设置 三、创建用户家目录和设置home权限 四、创建用户并设置上传目录权限控制 五、用户初始化密码 六、说明 需求客户要求与第三方通过sftp交互文件,需要在Linux系统部署sftp服务器。考虑安全,计划对…

代码随想录算法训练营第五十二天 | 300.最长递增子序列、674.最长连续递增序列、718.最长重复子数组

文章目录 一、300.最长递增子序列二、674.最长连续递增序列三、718.最长重复子数组 一、300.最长递增子序列 题目链接 代码如下&#xff1a; class Solution { public:int lengthOfLIS(vector<int>& nums) {if (nums.size() < 1) return nums.size();vector<…

html5播放器视频切换和连续播放的实例

当前播放器实例可以使用changeVid接口切换正在播放的视频。当有多个视频&#xff0c;在上一个视频播放完毕时&#xff0c;自动播放下一个视频时也可采用该处理方式。 const option {vid: 88083abbf5bcf1356e05d39666be527a_8,//autoplay: true,//playsafe: , //PC端播放加密视…

牛客网Verilog刷题——VL41

牛客网Verilog刷题——VL41 题目答案 题目 请设计一个可以实现任意小数分频的时钟分频器&#xff0c;比如说8.7分频的时钟信号&#xff0c;注意rst为低电平复位。提示&#xff1a;其实本质上是一个简单的数学问题&#xff0c;即如何使用最小公倍数得到时钟周期的分别频比。设小…

typescipt学习笔记-常见类型

学习文档&#xff1a; TypeScript 之 Class&#xff08;上&#xff09; (yuque.com) 某个人博客 - 基础类型_TypeScript中文文档 基础类型 - TypeScript 中文手册 TypeScript 基础类型 | 菜鸟教程 (runoob.com) 一、前言 1、ts的作用&#xff1a;静态类型检查、非异常失败、…

数据中台系列2:rabbitMQ 安装使用之 window 篇

RabbitMQ 是一个开源的消息队列系统&#xff0c;是高级消息队列协议&#xff08;AMQP&#xff09;的标准实现&#xff0c;用 erlang 语言开发。 因此安装 RabbitMQ 之前要先安装好 erlang。 1、安装 erlang 到 这里 下载本机能运行的最新版 erlang 安装包。如果本机没有装过 …

Mac/win开发快捷键、vs插件、库源码、开发中的专业名词

目录 触控板手势&#xff08;2/3指&#xff09; 鼠标右键 快捷键 鼠标选择后shift⬅️→改变选择 mac command⬅️&#xff1a;删除←边的全部内容 commadtab显示下栏 commandshiftz向后撤回 commandc/v复制粘贴 command ⬅️→回到行首/末 commandshift3/4截图 飞…

PHP使用PhpSpreadsheet实现导出Excel时带下拉框列表 (可支持三级联动)

因项目需要导出Excel表 需要支持下拉 且 还需要支持三级联动功能 目前应为PHPExcel 不在维护&#xff0c;固采用 PhpSpreadsheet 效果如图&#xff1a; 第一步&#xff1a;首先 使用composer 获取PhpSpreadsheet 我这里PHP 版本 7.4 命令如下&#xff1a; composer r…

报错 -bash: wget: command not found

1、报错 -bash: wget: command not found 可以重装 wget 工具&#xff1a; 卸载 wget 工具 yum remove wget下载 wget 工具 yum -y install wget最后尝试 wget “url” 又OK了&#xff0c;一般是原来的wget初始化有文件损坏造成的。