初步理解ECC

news2024/11/27 11:54:00

理解一下公钥加密的概念

image-20240502163326375

公钥加密需要一对钥匙,公钥和私钥,公钥可以公开,而私钥不能泄露。

image-20240502163450424

那就可以用公钥给明文加密

image-20240502163528186

而只有私钥才能进行解密

image-20240502163555147

而要想实现这个过程,就需要满足两个点

1:加密简单易行

2:解密困难,这里的困难说的是没有私钥的解密困难

椭圆曲线

image-20240502163833241

先不用管这个公式是如何得到的

image-20240502163928338

image-20240502163951912

当b的数值发生变化的时候,这里的图形就会也跟着变化,但是图形总体就是一个椭圆和一条曲线,也就是椭圆和曲线的综合体。这也就是椭圆曲线。

分析一下椭圆曲线的特征,观察下面的图片

image-20240502164159458

以X轴为中心,对折,我们可以发现,图形线条其实是可以重合的,也就是说。你再上方画一个点,那么下方也一定有一个点是对称的。上下方距离水平线X轴是相同的。

image-20240502164428207

同时,在这个图形上,随便画两个点,而后连线这两个点,形成一条线,延长这条线,这条线就会和图形有第三个交点。当然这里是要求除了垂直线以外的。

image-20240502164604536

根据以上两个特点,咱们就有的玩了。

image-20240502164945058

我们在这个图形上随便选择两个点A,B,而后形成一条线以后,延长这个线,形成一个交点,然后再找到这个交点的在这个图形上的对称点。我们将这个点称之为C。

这里我们通过A,B得到C,我们这里就将这个运算称之为点运算,即是:A点B得到C ,这里的点运算其实也就是椭圆曲线上的加法运算。

image-20240502165341434

现在我们将A和C进行连线,而这条线也和图形有一个交点,对这个交点找到在图像上的对称点,我们称之为D点。我们就可以称为A点C得到D。

image-20240502165527095

而后A和D连线,形成一条线,与图形交与一点,这个点在图形上的对称点是E,我们称之为A点D得到E。

image-20240502165709687

那么当你们都不知道以上过程的话,问起点A终点是E,请问:经过多少次的点运算得到了E呢?在没有这些线条的时候,大部分人很难知道这个过程。这是很难知道的,同RSA的困难问题。也就符合了前面说的公钥加密的特点:正向简单,而逆向简单。但是用到实际加密过程中,我们还要考虑一种特殊情况。

image-20240502170046997

当发生了图中的情况的时候,该如何定义运算呢?这不就是一条切线嘛?

image-20240502170213065

切线垂直于经过切点的半径。

image-20240502170500212

我们将这个情况中,找到延长P后和图像的交点的对称点。我们称之为P点P等于Q.也可以理解为P+P=2P

image-20240502170600558

而后P和2P连线,和图形交与一点,这个点在这个图形上也有一个对称的点,我们将之称之为3P

image-20240502170724076

将这个过程延长下去,我们就可以得到6P这个点的。

image-20240502170827584

对6P来说,3P点两次可以得到6P,2P点3次也可以得到6P,这就是椭圆曲线上的乘法问题。

ECDHE=椭圆曲线和DH混合起来的算法

复习一下什么是DH算法

Alice和Bob要生成一种只要他们俩才知道的颜色,而Alice有一种私有颜色:青色。Bob也有一种私有的颜色是红色。他俩公开了一种颜色是黄色。Alice用公开的黄色和私有的青色混合到一块生成了一个颜色:绿色,发给Bob。Bob用私有的红色和公开的黄色混合成橙色发给Alice.

image-20240502171531395

image-20240502171558159

Alice将私有的青色和拿到的橙色混合成便便色。Bob将拿到的绿色和私有的红色也混合成便便色。这个颜色就是两者通过交换得到的。而其他人没有这个私有的颜色,很难得到这个颜色。

image-20240502171745423

那么我们就可以将椭圆曲线的特征加到这个DH算法当中。 这也就是我们要讲的ECDHE.

Alice生成一个私钥a,而后再确定生成椭圆上的一个点:G,这个G点是公开的,是大家都知道的G点。Alice要生成一个公钥A,A就通过前面提到的椭圆曲线来计算。即公钥A=aG.

这里就是G这个点进行点运算,次数是a.也就是G点G点G一共进行了a次。得到了椭圆曲线上的一个点A。

image-20240502172604482

现在Alice把A和G发送给Bob,也是就说A和G是公开的。根据前面的推导,知道A和G推导出a简直难于上青天。知道起点和终点,但是中间经历了多少次,是非常难于计算的。这也就是椭圆曲线加进来的奥妙。

当Bob收到后,也生成了一个私钥b,而后生成椭圆曲线上一个B,B也就是b进行b次点G运算得到的。G点G点G一共进行了b次。Bob将生成的B发给Alice,就算别人知道B和G,也很难知道b

image-20240502173335459

现在Alice将收到的B和a进行运算得到新密钥。Bob用收到的A和b也计算出新的密钥。而这个密钥也就只有他们知道。而且这个密钥是相同的。

image-20240502173606974

为什么密钥是相同的?在Alice那边有A=aG,而将这个公式带入新密钥=bA中就是baB,Bob也同理。

image-20240502173959254

这样一看就知道密钥是相同的,只不过是a和b互换了位置。

优势

和RSA比都是正向简单,逆向困难,但两者中RSA更容易破解。

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

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

相关文章

经常睡不好觉?试试用上华为手环9新升级的睡眠监测功能

睡眠问题是不是经常困扰着你呢?听说,华为手环9的睡眠监测功能升级了,无论是入睡前、睡眠中还是睡醒后,都能够帮助我们改善睡眠,让我们告别糟糕的睡眠质量! 睡觉前,打开华为手环9的睡眠模式&…

Linux 操作系统TCP、UDP

1、TCP服务器编写流程 头文件&#xff1a; #include <sys/socket.h> 1.1 创建套接字 函数原型&#xff1a; int socket(int domain, int type, int protocol); 参数&#xff1a; domain: 网域 AF_INET &#xff1a; IPv4 AF_INET6 &a…

RockChip Android13 添加/删除ListPreference方法

概述: 本章将讲述在Android添加或删除ListPreference的几种方法,并以EthernetSettingsActivity为例,添加/删除一项ListPreference: 默认效果图: 添加后效果图: 方法一: 1、全部添加xml 在Activity类中使用addPreferencesFromResource()方法解析XML文件并添加Prefere…

OpenHarmony 实战开发——南向统一编译的docker镜像来了

由于我自己的南向设备开发平台的需求&#xff0c;我将当前几个不同的 docker 镜像版本进行了整合&#xff0c;经过一段时间的攻关和验证&#xff0c;目前整合已完成&#xff0c;新版本的 Dockerfile 如下&#xff0c;这个不是公共需求&#xff0c;所以没有提交主干&#xff0c;…

Linux学习笔记4---点亮LED灯(汇编裸机)

本系统学习利用的是正点原子的阿尔法mini开发板&#xff0c;本系列的学习笔记也是按照正点原子的教程进行学习&#xff0c;但并不是利用虚拟机进行开发&#xff0c;而是使用Windows下的子系统WSL进行学习。 因为 Cortex-A 芯片一上电 SP 指针还没初始化&#xff0c;C 环境还没准…

网络安全之弱口令与命令爆破(下篇)(技术进阶)

目录 一&#xff0c;什么是弱口令&#xff1f; 二&#xff0c;为什么会产生弱口令呢&#xff1f; 三&#xff0c;字典的生成 四&#xff0c;九头蛇&#xff08;hydra&#xff09;弱口令爆破工具 1&#xff0c;破解ssh登录密码 2&#xff0c;破解windows登录密码 3&#xf…

新增分类——后端

实现功能&#xff1a; 代码开发逻辑&#xff1a; 页面发送ajax请求&#xff0c;将新增分类窗口输入的数据以json形式提交到服务端服务端Controller接收页面提交的数据并调用Service将数据进行保存Service调用Mapper操作数据库&#xff0c;保存数据 代码实现&#xff1a; Con…

测试项目实战——安享理财1(测试用例)

说明&#xff1a; 1.访问地址&#xff1a; 本项目实战使用的是传智播客的安享理财项目&#xff08;找了半天这个项目能免费用且能够满足测试实战需求&#xff09; 前台&#xff1a;http://121.43.169.97:8081/ 后台&#xff1a;http://121.43.169.97:8082/ &#xff08;点赞收藏…

电脑ip地址设置成什么比较好

随着信息技术的快速发展&#xff0c;IP地址已成为电脑在网络世界中的“身份证”。它不仅是电脑在网络中进行通信的基础&#xff0c;也直接关系到网络连接的稳定性、安全性和效率。然而&#xff0c;面对众多IP地址设置选项&#xff0c;许多用户可能会感到困惑。那么&#xff0c;…

C#进阶-OleDb操作Excel和数据库

在C#编程中&#xff0c;使用OleDb可以方便地实现对Excel文件和数据库的操作。本文探讨了在C#中使用OleDb技术操作Excel和数据库的策略。文章详述了OleDb的定义、配置环境的步骤&#xff0c;并通过实际代码示例演示了如何高效读写Excel文件和交互数据库。文中还评估了OleDb技术的…

5到15秒片头音乐200款,30秒片头音效音乐大全

一、素材描述 本套音乐音效素材&#xff0c;大小2.88G&#xff0c;13个压缩文件。 二、素材目录 200个5到15秒的片头音乐.zip 30秒片头-1.zip 30秒片头-2.zip 30秒片头-3.zip 30秒片头-4.zip 30秒片头-5.zip 30秒片头-6.zip 30秒片头-7.zip 30秒片头-8.zip 30秒片头…

武汉星起航电子商务有限公司助力打造一站式跨境电商服务

在全球电商市场蓬勃发展的当下&#xff0c;武汉星起航电子商务有限公司以其独特的经营模式和全方位的服务体系&#xff0c;成为亚马逊自营领域的佼佼者。自2017年专注于亚马逊自营以来&#xff0c;武汉星起航凭借丰富的经验和深入的市场洞察&#xff0c;为合作伙伴提供了一站式…

生信软件17 - 基于fasta文件的捕获探针设计工具catch

catch是broad研究所开发的一款用于设计捕获探针的python软件。 1. 软件安装 适用于Linux / windows等&#xff0c;安装要求Python≥3.8 | NumPy≥1.22 | SciPy≥1.8.0 # github安装 git clone https://github.com/broadinstitute/catch.git cd catch pip install -e .# coon…

react项目中封装一个通用的边界Boundary

# Boundary 通用的边界,同时是一个Suspense 和一个 ErrorBoundary 正常情况不直接用,使用一下几个封装好的: -Boundary.FullSizeLoading: 占满父容器全部高度,居中显示等待动画; -Boundary.Loading: 占满一行,显示一个普通尺寸的等待动画; -Boundary.Blank: 什么都不显示…

未来编码探索:揭秘Java的进化之旅与技术革新!

Java是一种广泛使用的编程语言&#xff0c;自1995年问世以来&#xff0c;它在企业级应用、移动应用开发、大数据处理等领域都有着广泛的应用。随着时间的推移&#xff0c;Java也在不断发展和进化&#xff0c;以满足不断变化的技术需求和市场趋势。本文将全面详细地探讨Java的未…

Linux 用户进程启动与Systemd

Linux用户空间的启动 我们都知道&#xff0c;Linux在内核的初始化自身的流程结束后&#xff0c;就会将程序流的运行转到用户态&#xff0c;也就是进入init进程流之后&#xff0c;他会按照这个流程进行初始化&#xff1a; init进程初始化 基础的底层服务&#xff1a;比如说ude…

视频号小店怎么开通优选联盟?开通之后有什么好处?

大家好&#xff0c;我是电商糖果 糖果做视频号小店已经快两年时间了&#xff0c;这期间也一直坚持在网上分享自己做店的经验。 这里糖果就来给大家分享一下&#xff0c;视频号小店怎么开通优选联盟&#xff0c;店铺开通之后会有什么好处&#xff1f; 首先我们要知道优选联盟是…

20240509解决Protel99se导入philips.ddb出现File is not recognized的问题

20240509解决Protel99se导入philips.ddb出现File is not recognized的问题 2024/5/9 16:25 缘起&#xff1a;最近需要用到/画PCB&#xff0c;想到十年前用过Protel99SE。 使用的系统&#xff1a;WIN10/WIN11都会出错。WIN7没有测试&#xff01; 从115网盘的角落里找到七集视频…

Objective-C的对象复制与拷贝选项

对象复制与拷贝 文章目录 对象复制与拷贝copy与mutablecopycopy与mutablecopy的简介示例&#xff1a;不可变对象的复制可变对象的复制 NSCopying和NSMutableCopying协议深复刻和浅复刻浅拷贝&#xff08;Shallow Copy&#xff09;&#xff1a;深拷贝&#xff08;Deep Copy&…

【python】将json内解码失败的中文修改为英文(‘utf-8‘ codec can‘t decode,labelme标注时文件名未中文)

出现问题的场景&#xff1a; 语义分割数据集&#xff0c;使用labelme工具进行标注&#xff0c;然后标注图片存在中文名&#xff0c;导致json标签文件写入中文图片名&#xff0c;从而解析失败。 代码解析json文件时&#xff0c;出现报错&#xff1a; python脚本需求&#x…