【密码学】椭圆曲线密码体制(ECC)
椭圆曲线密码体制(Elliptic Curve Cryptography, ECC)是一种基于椭圆曲线数学特性的公钥密码系统。在介绍椭圆曲线之前,我们先来了解一下椭圆曲线的基本概念。
一、椭圆曲线是什么?
(1)椭圆曲线的数学定义
椭圆曲线是一条由方程 给定的曲线,其中a和b是常数,并满足
,以确保曲线没有奇点(即曲线是平滑的)。在无限域(如实数域)上,椭圆曲线看起来像是一条平滑的、不自交的曲线。
椭圆曲线的图像如下:


【注】椭圆曲线并不是椭圆,只因为该方程与计算椭圆周长的方程相似。
可以证明如果 没有重复因子,或者满足
那么椭圆曲线上的点集
可构成一个Abel群(阿贝尔群)。椭圆曲线包括所有曲线上的点以及一个特殊的点,我们称为无限远点
(2)椭圆曲线上的算术运算
椭圆曲线上定义了加法运算,这使得椭圆曲线成为一个群。具体来说,对于椭圆曲线上任意两点 P 和 Q,可以定义它们的和 R=P+Q,其计算方法遵循以下规则:
① 加法运算

加法:如果 P 和 Q 不重合,那么通过连接这两点的直线与椭圆曲线的第三个交点,然后在 y 轴上找到这个点的反射点作为 R

二倍点:如果 P=Q,则使用切线代替直线,找到切线与椭圆的交点,再找到该点关于 y 轴的反射点作为 2P

无穷远点:椭圆曲线上的加法还定义了一个特殊点,称为无穷远点,它与任何其他点相加都保持不变
② 点乘运算
点乘:将一个给定点沿着椭圆曲线进行多次加法操作。点乘运算通常被记作 kP,其中 k 是一个整数,P 是椭圆曲线上的一点。
如上图3P的计算过程,先计算出2P也就是Q,然后再将Q和P连接在一起,找到和椭圆曲线的交点,这个交点关于X轴的对称点就是3P。
二、椭圆曲线密码体制
有限域上的椭圆曲线是椭圆曲线的一个变体,它定义在一个有限域(finite field)上,而不是在实数域或复数域上。有限域上的椭圆曲线在密码学中有重要的应用,特别是用于构建椭圆曲线密码体制(ECC)
(1)有限域上的椭圆曲线
有限域是一个具有有限个元素的域。域意味着在这个集合中定义了加法和乘法操作,并且这些操作满足特定的代数性质,比如加法和乘法的封闭性、结合律、交换律、单位元的存在性、逆元的存在性等。
有限域的一个重要例子是模 p 的剩余类,这个有限域通常记作,当椭圆曲线定义在一个有限域
上时,我们考虑的是所有
,其中
和
都是
中的元素,并且满足上述椭圆曲线方程。这样的点集构成了有限域上的椭圆曲线。

(2)有限域上的椭圆曲线结论
在有限域上的椭圆曲线上定义的加法运算构成了一个阿贝尔群,这是因为加法运算满足群的四个基本性质:封闭性、结合律、存在单位元、存在逆元,同时加法运算还满足交换律。
-
封闭性:
对于椭圆曲线 E 上的任意两点 P 和 Q,它们的和 R=P+Q 也是一个椭圆曲线上的点。这意味着加法运算的结果仍然属于椭圆曲线 E。
-
结合律:
对于椭圆曲线 E 上的任意三点 P、Q 和 R,有 (P+Q)+R=P+(Q+R)。这意味着加法运算的顺序不影响结果。
-
单位元:
椭圆曲线 E 上定义了一个特殊点 O,称为无穷远点,它是加法的单位元。这意味着对于椭圆曲线上的任意点 P,都有 P+O=P。
-
逆元:
对于椭圆曲线 E 上的每一个点 P,存在一个唯一的点 −P,使得 P+(−P)=O。这里的 −P 称为 P 的加法逆元。
-
交换律:
对于椭圆曲线 E 上的任意两点 P 和 Q,有 P+Q=Q+P。这意味着加法运算满足交换律。
(3)椭圆曲线上的离散对数问题(ECDLP)
椭圆曲线上的离散对数问题 (ECDLP) 是椭圆曲线密码学 (ECC) 安全性的基础。ECDLP 是指在给定的椭圆曲线上,找到一个点的倍数所需的秘密倍数的问题。它的定义如下:
ECDLP 的难度在于,虽然给定一个点 P 和一个整数 k,很容易计算出 Q=kP,但是反过来,给定 Q 和 P,找到 k 是非常困难的。这种问题的难解性是椭圆曲线密码学安全性的核心。

ECDLP 的难度确保了椭圆曲线密码系统的安全性。由于目前没有已知的有效算法可以在多项式时间内解决 ECDLP,因此只要选择合适的椭圆曲线和密钥长度,就可以实现高度的安全性。

三、椭圆曲线密码学体制的应用
椭圆曲线密码学利用 ECDLP 的难解性来构建安全的密码协议,例如:
- 椭圆曲线数字签名算法 (ECDSA):用于创建数字签名。
- 椭圆曲线密钥交换协议 (ECDH):用于安全地交换密钥。
- 椭圆曲线集成加密方案 (ECIES):用于加密数据。
(1)椭圆曲线上的DH密钥交换算法(ECDH)举例说明
① 准备阶段
第一步:首先取一个素数 ,以及参数
,则椭圆曲线上的点构成Abel群
第二步:取上的一个生成元
,要求
的阶是一个非常大的数
,
的阶
是满足
的最小正整数。
第三步:将和生成元
作为公钥密码体制的公开参数对外公布,不保密。
② 密钥交换阶段
通过上面密钥交换算法,A和B共同拥有密钥K,攻击者如果想获得密钥K,他就必须由和
求出
,或者由
和
求出
,而这等价于求椭圆曲线上的离散对数问题ECDLP,因此是不可行的,所以确保了安全。
③ 带入具体数字举例说明
相关文章:

【密码学】椭圆曲线密码体制(ECC)
椭圆曲线密码体制(Elliptic Curve Cryptography, ECC)是一种基于椭圆曲线数学特性的公钥密码系统。在介绍椭圆曲线之前,我们先来了解一下椭圆曲线的基本概念。 一、椭圆曲线是什么? (1)椭圆曲线的数学定义…...

第25集《大佛顶首楞严经》
丑二、腾疑细释 分二:寅一、阿难腾疑;寅二、如来细释 请大家打开讲义第五十六页,“丑二、腾疑细释”。 本经的修学重点,就是修学首楞严王三昧。它的整个重点,其实就是一个心地法门。我们在行菩萨道的时候慢慢会发觉…...
python 读写文件之 open 和 with open() 详细解析
python 读写文件之 open 和 with open() 详细解析 文章目录 python 读写文件之 open 和 with open() 详细解析1. open() 和 with open() 能打开不同的文件类型吗?2. 文本文件和二进制文件的区别2.1 文本文件 (Text Files)2.2 二进制文件 (Binary Files)区别 3. 读文…...
操作系统:内存----知识点
什么是虚拟内存? 虚拟内存简称虚存,是计算机系统内存管理的一种技术。它是相对于物理内存而言的,可以理解为“假的”内存。它使得应用程序认为它拥有连续可用的内存(一个连续完整的地址空间),允许程序员编…...
pfx如何配置到nginx中
有pfx文件的时候如何在nginx上使用 好的,如果您已经确认没有中间证书(或中间证书内容为空),那么可以直接使用服务器证书和私钥。以下是简化后的步骤: 从PFX文件中导出私钥: openssl pkcs12 -in xxx.com.pfx…...

详细测评下搬瓦工香港CN2 GIA VPS
搬瓦工香港VPS分移动CMI和电信CN2 GIA两个大类,一个属于骨干网,一个属于轻负载。搬瓦工的香港CN2 GIA根据测试来看实际上是CN2 GIABGP,并非三网纯CN2 GIA。详细测评数据如下: 用FIO再给测试一下硬盘I/O,可以仔细看看数…...

Java中的五种线程池类型
Java中的五种线程池类型 1. CachedThreadPool (有缓冲的线程池)2. FixedThreadPool (固定大小的线程池)3. ScheduledThreadPool(计划线程池)4. SingleThreadExecutor (单线程线程池)…...

FFmpeg Windows安装教程
一. 下载ffmpeg 进入Download FFmpeg网址,点击下载windows版ffmpeg。 下载第一个essentials版本就行。 二. 环境配置 上面源码解压后如下 将bin添加到系统环境变量 验证安装是否成功,输入ffmpeg –version,显示版本即为安装成功。...

‘#‘ is not followed by a macro parameter 关于宏定义的错误
今天在项目代码上想定义一个这样的宏,结果编译错误,这个宏定义类似这样的: #define DELETE_FILE_DPP(key) \ #ifdef PLATFORM_DPP \delete_file(&key); \ #endif 因为有平台之分需要用到编译宏,但不想每个调用的地方都写 #i…...

内网穿透--meterpreter端口转发实验
实验背景 通过公司带有防火墙功能的路由器接入互联网,然后由于私网IP的缘故,公网无法直接访问内部主机,则需要通过已连接会话,代理穿透访问内网主机服务。 实验设备 1.路由器一台 2.内网 Win 7一台 3.公网 Kali 一台 4.网络 …...
Python 数据类:减少样板并提高可读性
一.介绍 在本文中,我们将了解数据类。Python 3.7 引入了数据类,这是一个强大的功能,它简化了创建主要用于存储数据的类的过程。数据类减少了样板代码并提供有用的默认行为,使您的代码更简洁、更高效。 二.为什么要使用数据类&am…...
家庭教育系列—北京海淀区”鸡娃“攻略
文章目录 1. 背景介绍2. 道3. 法3.1 **目标设定(Goal Setting)**3.2 **学习计划(Study Planning)**3.3 **资源利用(Resource Utilization)**3.4 **能力培养(Skill Development)**4. 术4.1 英语4.1.1 启蒙4.1.2 启蒙之后4.3 数学4.3.1 奥数4.3.2 普通数学知识4.4 语文4.…...
DLMS/COSEM中的信息安全:DLMS/COSEM安全概念(下)
3.安全语境 安全语境定义了与加密转换有关的安全属性,并包括以下元素: ——安全组件,确定可用的安全算法。 ——安全策略,在AA内对所有xDLMS APDU确定将应用的那种保护; ——与给定的安全算法相关的安全资料,包含安全密钥、初始化向量、公共密钥证书等。由于安全资料是针…...

基于 systemc-2.3.1的virtual device 接入 qemu-arm
1,下载systemc-2.3.1 下载网址: SystemC Files $ wget https://www.accellera.org/images/downloads/standards/systemc/systemc-2.3.1.tgz 2,编译安装 systemc-2.3.1 tar zxf systemc-2.3.1.tgz cd systemc-2.3.1/ export CXXg mkdir bu…...
(七)自动化测试
1. 简述什么是UI自动化测试? 正确回答通过率:78.0%[ 详情 ] 推荐指数: ★★★★ 试题难度: 中级 UI自动化测试(User Interface Automation Testing)是一种通过编写脚本或使用自动化测试工具,对用户界面(UI)进行自动化测试的方法。它可以模拟用户与应用程序或网站的交…...

【信创】virtualbox内虚拟机连接U盘 _ 统信 _ 麒麟 _ 中科方德
原文链接:【信创】virtualbox内虚拟机连接U盘 | 统信 | 麒麟 | 中科方德 Hello,大家好啊!今天给大家带来一篇关于在信创操作系统上使用VirtualBox虚拟机连接物理主机U盘的文章。在使用VirtualBox虚拟机时,有时候需要将物理主机上的…...

【2024】Datawhale AI夏令营 Task4笔记——vllm加速方式修改及llm推理参数调整上分
【2024】Datawhale AI夏令营 Task4笔记——vllm加速方式修改及llm推理参数调整上分 本文承接文章【2024】Datawhale AI夏令营 Task3笔记——Baseline2部分代码解读及初步上分思路,对其中vllm加速方式进行修改,推理速度获得了极大提升。另外,…...
腾讯OCR签名算法
云服务器 签名方法 v3-调用方式-API 中心-腾讯云 一,签名算法-官网 copy官网 package com.smcv.customer.service.util;import org.springframework.http.HttpHeaders;import javax.crypto.Mac; import javax.crypto.spec.SecretKeySpec; import javax.xml.bind.D…...

CTFHUB-SSRF-DNS重绑定 Bypass
开启题目,页面空白,访问附件 附件是一个知乎的文章,翻到下面点击文中这个链接 跳转之后,进行设置 把得到的链接拼接到题目的后面进行访问,然后得到了本题的 flag...
【oracle】数据库基本使用
一、oracle数据库简介 Oracle 数据库,亦称 Oracle RDBMS,或简称 Oracle,是一款由甲骨文公司推出的高效、稳定且广泛应用的关系型数据库管理系统。该数据库系统不仅在数据管理领域处于领先地位,而且由于其良好的可移植性、易用性和…...

树莓派超全系列教程文档--(61)树莓派摄像头高级使用方法
树莓派摄像头高级使用方法 配置通过调谐文件来调整相机行为 使用多个摄像头安装 libcam 和 rpicam-apps依赖关系开发包 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 配置 大多数用例自动工作,无需更改相机配置。但是,一…...

Opencv中的addweighted函数
一.addweighted函数作用 addweighted()是OpenCV库中用于图像处理的函数,主要功能是将两个输入图像(尺寸和类型相同)按照指定的权重进行加权叠加(图像融合),并添加一个标量值&#x…...
1688商品列表API与其他数据源的对接思路
将1688商品列表API与其他数据源对接时,需结合业务场景设计数据流转链路,重点关注数据格式兼容性、接口调用频率控制及数据一致性维护。以下是具体对接思路及关键技术点: 一、核心对接场景与目标 商品数据同步 场景:将1688商品信息…...

【机器视觉】单目测距——运动结构恢复
ps:图是随便找的,为了凑个封面 前言 在前面对光流法进行进一步改进,希望将2D光流推广至3D场景流时,发现2D转3D过程中存在尺度歧义问题,需要补全摄像头拍摄图像中缺失的深度信息,否则解空间不收敛…...

[10-3]软件I2C读写MPU6050 江协科技学习笔记(16个知识点)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...
OpenLayers 分屏对比(地图联动)
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 地图分屏对比在WebGIS开发中是很常见的功能,和卷帘图层不一样的是,分屏对比是在各个地图中添加相同或者不同的图层进行对比查看。…...

三分算法与DeepSeek辅助证明是单峰函数
前置 单峰函数有唯一的最大值,最大值左侧的数值严格单调递增,最大值右侧的数值严格单调递减。 单谷函数有唯一的最小值,最小值左侧的数值严格单调递减,最小值右侧的数值严格单调递增。 三分的本质 三分和二分一样都是通过不断缩…...
redis和redission的区别
Redis 和 Redisson 是两个密切相关但又本质不同的技术,它们扮演着完全不同的角色: Redis: 内存数据库/数据结构存储 本质: 它是一个开源的、高性能的、基于内存的 键值存储数据库。它也可以将数据持久化到磁盘。 核心功能: 提供丰…...

spring Security对RBAC及其ABAC的支持使用
RBAC (基于角色的访问控制) RBAC (Role-Based Access Control) 是 Spring Security 中最常用的权限模型,它将权限分配给角色,再将角色分配给用户。 RBAC 核心实现 1. 数据库设计 users roles permissions ------- ------…...

【iOS】 Block再学习
iOS Block再学习 文章目录 iOS Block再学习前言Block的三种类型__ NSGlobalBlock____ NSMallocBlock____ NSStackBlock__小结 Block底层分析Block的结构捕获自由变量捕获全局(静态)变量捕获静态变量__block修饰符forwarding指针 Block的copy时机block作为函数返回值将block赋给…...