文章目录

    • 一、核心区别:目的完全不同
    • 二、协同工作关系:缺一不可的安全组合
    • 三、技术结合点:都基于ECC(椭圆曲线密码学)



ECDH(椭圆曲线迪菲-赫尔曼密钥交换)和数字签名(如ECDSA,椭圆曲线数字签名算法)是两种截然不同但又经常协同工作的密码学原语。
它们的关系可以概括为:分工明确,互补共赢

一、核心区别:目的完全不同

特性ECDH (密钥协商)数字签名 (如 ECDSA)
核心目的保密性 (Confidentiality)认证性与完整性 (Authentication & Integrity)
要解决的问题“我们如何安全地生成一个只有我们俩知道的秘密,用来加密消息?”“我如何向你证明这条消息确实是我发的,并且没有被篡改?”
数学操作椭圆曲线上的标量乘法和点运算椭圆曲线上的标量乘法和点运算(但用法和目的不同)
密钥使用使用对方的公钥使用自己的私钥
输出结果一个共享的秘密值(通常是对称加密密钥)一个可被任何人用公钥验证的签名值
类比商量一个只有你们俩懂的暗号(密钥)。在文件上盖上你的个人印章(签名)。

二、协同工作关系:缺一不可的安全组合

尽管目的不同,但在实际的安全通信协议(如TLS/SSL、SSH)中,它们几乎总是成对出现,共同构建完整的安全体系。

最常见的合作模式:ECDHE + 数字签名

这个模式解决了基础ECDH最大的安全缺陷:缺乏身份认证,易受中间人攻击(MITM)

攻击场景(无认证的ECDH)

  1. Alice想和Bob通信。

  2. 攻击者Carter截获了Alice的公钥 A,将自己的公钥 M1 发给Bob。

  3. Carter截获了Bob的公钥 B,将自己的公钥 M2 发给Alice。

  4. Alice和Carter建立了共享密钥 S1。

  5. Bob和Carter建立了共享密钥 S2。

  6. Alice以为她在和Bob安全通信,但实际上所有消息都被Carter解密、窃听甚至篡改后再加密转发给Bob。Bob亦然。

解决方案(ECDHE + 签名)
为了防御这种攻击,必须对交换的ECDH公钥进行身份认证。这就是数字签名发挥作用的地方。

Alice (Client)Bob (Server)证书颁发机构(CA)1. 身份预置信任(信任锚)我的证书请求颁发证书(含Bob公钥+CA签名)预先内置可信CA根证书2. 密钥交换与认证流程Client HelloServer Hello发送证书(Certificate)验证证书签名,提取Bob的公钥发送临时公钥 B_pub = b * G(ECDHE)对整个握手消息(含B_pub)用私钥生成签名(Signature)用Bob的公钥验证签名确认B_pub确实来自Bob发送临时公钥 A_pub = a * G计算共享秘密 S = a * B_pub计算共享秘密 S = b * A_pub3. 安全通信使用S派生出的密钥加密通信终止连接!可能存在中间人攻击alt[签名验证成功][签名验证失败]Alice (Client)Bob (Server)证书颁发机构(CA)

三、技术结合点:都基于ECC(椭圆曲线密码学)

虽然目的不同,但ECDH和ECDSA等技术经常基于相同的椭圆曲线参数(例如相同的曲线 secp256k1prime256v1 和相同的基点 G)。这使得一个系统可以使用同一套底层密码学基础设施来支持两种功能。

  • Bob的密钥对:
  1. 用于ECDH:Bob可以生成一个临时的密钥对 (b_临时, B_临时 = b_临时 * G) 用于一次会话。

  2. 用于签名:Bob拥有一个长期的密钥对 (b_长期, B_长期 = b_长期 * G)。私钥 b_长期 用于对握手信息(包含 B_临时)进行签名,公钥 B_长期 则被放在证书中。

关系阐述
分工关系ECDH 负责建立保密的共享密钥数字签名 负责认证通信方的身份和数据的完整性。
互补关系ECDH解决了对称密钥分发的难题,但需要签名来解决其固有的身份认证缺陷。签名确保了ECDH过程不会被中间人劫持。
协同关系在现代安全协议(TLS)中,ECDHE(ephemeral ECDH)与 RSA 或 ECDSA 签名结合,共同提供了前向保密身份认证密钥协商这三大功能,构成了安全通信的基石。

简单来说:ECDH用来商量“暗号”,而数字签名用来证明“你是你”。两者合作,才能实现既保密又可信的安全通信。

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

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

相关文章

withCredentials(简单说:带不带凭证)

一、withCredentials是什么?withCredentials 是浏览器 XMLHttpRequest 或 Fetch API(以及 axios 等基于它们的库)中的一个配置项,作用是控制跨域请求时是否携带 Cookie、HTTP 认证信息等凭证。用更通俗的方式解释:二、…

window系统使用命令行来安装OpenSSH服务器或客户端

可以通过 PowerShell 命令行来安装,这种方式更直接可靠:以管理员身份打开 PowerShell: 按下 Win S 搜索 “PowerShell”右键点击 “Windows PowerShell”,选择"以管理员身份运行"安装 OpenSSH 客户端: Add-…

vim中常见操作及命令

在 Vim 中为所有行的行首添加相同字符,可以使用以下方法: 方法1:使用 :%s 替换命令(推荐) vim :%s/^/要添加的字符/ 例如要在所有行首添加 #:vim :%s/^/#/ 方法2:使用块选择模式(可视…

开发使用mybatis是用混合模式还是全注解模式

在使用 MyBatis 开发项目时,Mapper 接口是为数据库操作提供最直观的方法,但在实现方式上,我们有两种选择:全注解模式和混合模式。那么,他们有什么区别,应该如何选择?我们一起来讨论一下。一、全…

WS2812灯带效果设计器上位机

软件使用方法介绍:bilibili地址 【免写单片机代码WS2812灯带效果设计软件-哔哩哔哩】 https://b23.tv/xFhxMGm

Docker 容器(二)

Docker四、Docker容器数据卷1.数据卷的主要特点2.卷的共享与继承(1)卷的共享(Sharing)(2) 卷的继承(Inheritance)3.数据卷运行实例五、Dockerfile1.Dockerfile2. 创建一个名为 myubuntu的自定义镜像第 1 步…

PCB基础细节--工艺篇

pcb基础细节(工艺篇) 1. 孔与焊盘2. PCB各层之间的作用3. 阻抗匹配 3.1. 什么是传输线?我们只看特性阻抗,时延以后再说。 在画原理图时,我们把电阻,电容,电感是抽象成一个点了。两边加一个电压&…

信创服务器总死机原因及解决办法

哈喽,你好啊,我是雷工!最近有个项目使用信创的服务器,总是出现死机的情况,联系厂家检查了一下,说是沐创网卡固件较低造成的,让移除网卡或升级固件尝试一下。记得5月份按厂家的说法处理过一台&am…

03_网关ip和端口映射(路由器转发)操作和原理

网关ip和端口映射(路由器转发)操作和原理IP 与端口映射配置全指南:2 种方案搞定外网访问内网一、先搞懂:为什么需要 IP 与端口映射?二、方案一:路由器端口映射(适合有公网 IP,长期稳…

「数据获取」《安徽建设统计年鉴》(2002-2007)(2004、2006缺失)(获取方式看绑定的资源)

01、数据简介《安徽建设统计年鉴》是一部全方位反映安徽省建设事业发展变迁的重要统计资料著作。该书系统收集并精心整理了 2006 年度安徽省城乡建设领域的核心统计数据,涵盖城乡建设固定资产投资、建筑业发展态势、城镇建设推进情况等多个关键方面,为政…

Python/JS/Go/Java同步学习(第一篇)格式化/隐藏参数一锅端 四语言输出流参数宇宙(附源码/截图/参数表/避坑指南/老板沉默术)

🤝 免骂声明: 本文四语言输出流参数经本蜀黎实战整理,旨在提供快速参考指南📝因各语言版本迭代及不同系统环境差异,偶尔可能出现整理不全面之处,实属正常✅欢迎理性交流补充,喷子勿喷——毕竟你…

人工智能助力流感疫苗选择:MIT 团队推出 VaxSeer 系统

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

使用 qmake 生成 Makefile,Makefile 转换为 Qt 的 .pro 文件

使用 qmake 生成 Makefile 的完整指南 qmake 是 Qt 提供的构建工具,用于从 .pro 项目文件生成 Makefile。以下是详细的使用方法: 基本使用方法 1. 从 .pro 文件生成 Makefile bash qmake -o Makefile your_project.pro2. 直接运行 qmake(自动…

利用DeepSeek编写验证xlsx格式文件中是否启用sharedStrings.xml对读写效率影响python程序

让他分别用100*10000个单元格有100、1000、10000个不同的1-200字符长的大写英文字母字符串测试. 一开始DeepSeek没有找到启用sharedStrings.xml的写xlsx模块,我自己找了pyxlsbwriter的例子告诉他才改好的。 import os import time import random import string impo…

【C++框架#2】gflags 和 gtest 安装使用

spdlog 安装和使用 1. 概述 介绍:spdlog 是一个高性能、超快速、零配置的 C 日志库,它旨在提供简洁的 API 和丰富的功能,同时保持高性能的日志记录。它支持多种输出目标、格式化选项、线程安全以及异步日志记录。 github 链接:htt…

平衡掌控者-游戏数值战斗设计

一、有效生命值1、计算公式有效生命生命值/(1-伤害减免率)/(1-闪避率)2、前摇和后摇对数值来说,战斗由两大模块组成,一个是战斗公式生效前的战斗攻击流程,一个是战斗公式与自身流程。比如说&…

使用DataLoader加载本地数据 食物分类案例

目录 一.食物分类案例 1..整合训练集测试集文档 2.导入相关的库 3.设置图片数据的格式转换 3.数据处理 4.数据打包 5.定义卷积神经网络 6.创建模型 7.训练和测试方法定义 8.损失函数和优化器 9.训练模型,测试准确率 10.测试模型 之前我们DataLoader加载…

从零开始的python学习——函数(2)

ʕ • ᴥ • ʔ づ♡ど 🎉 欢迎点赞支持🎉 个人主页:励志不掉头发的内向程序员; 专栏主页:python学习专栏; 文章目录 前言 一、变量作用域 二、函数执行过程 三、链式调用 四、嵌套调用 五、函数递归 六、…

RAG 的完整流程是怎么样的?

RAG(检索增强生成)的完整流程可分为5个核心阶段:数据准备:清洗文档、分块处理(如PDF转文本切片);向量化:使用嵌入模型(如BERT、BGE)将文本转为向量&#xff1…

研发文档版本混乱的根本原因是什么,怎么办

研发文档版本混乱的根本原因通常包括缺乏统一的版本控制制度、团队协作不畅、文档管理工具使用不当以及项目需求频繁变化等因素。这些问题使得研发团队在日常工作中容易出现文档版本混乱的情况,导致信息的不一致性、沟通不畅以及开发进度的延误。为了解决这一问题&a…