首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏数安视界

    非对称密钥沉思系列(4):密钥交换

    密钥交换的概念密钥交换,也有称作密钥协商,这套机制,最主要的作用是用来得到通信双方的临时会话密钥。这里的临时会话密钥,可以理解为对称加密的密钥,只不过他的有效性仅限于一次会话链接,并不是长期有效的。 基于RSA的密钥交换简单的密钥交换过程基于RSA进行密钥交换,基于非对称密钥的两个基本特性:使用公钥加密、私钥解密,且此过程无法逆向公钥是对外公开的,私钥是私密不公开的客户端与服务端在简单的密钥交换场景中 图片客户端是密钥生成的决定方在基于RSA的密钥交换体系中,总是由客户端来生成密钥密钥交换协议DH前面我们聊了很多RSA,但其实,RSA更侧重于非对称密钥算法,主要功能其实还是在于加密与解密。而密钥交换协议DH,是专门用于协商密钥生成的。 RSA可以用来传输信息,DH更适合用来协商密钥。DH算法解决了密钥在双方不直接传递密钥的情况下完成密钥交换,这个神奇的交换原理完全由数学理论支持。

    8.3K11319编辑于 2023-01-04
  • 来自专栏斜述视角

    Diffie-Hellman密钥交换

    数学描述 Diffie-Hellman密钥交换 Diffie-Hellman密钥交换是W.Diffie和M.Hellman在1976年提出的第一个公钥密码算法,已在很多商业产品中得到应用。 算法的唯一目的是要让两个用户安全的协商出一个共同的密钥。 首先选择一个大素数p,再选择p的一个本原根a,p和a这两个值可以在网上公开,任何人都可以查询到。用户A选择一个保密的数 ? ,并将 ?

    1.1K30发布于 2019-01-23
  • 来自专栏gojam技术备忘录

    Diffle-Hellman密钥交换

    用户A通过计算Yb^Xa mod q产生密钥。用户B同理计算出密钥。 那么,这两个密钥是相同的。 为什么相同呢? 就这样,用户AB都自己随便凑了个数,得到了相同密钥,中间人监听也得不到有用信息。不过,如果中间人假冒A与B,同时拿两份密钥,DH算法一样可以被攻破。

    61030发布于 2019-11-29
  • 来自专栏架构之巅

    TLS加密套件之密钥交换

    图片TLS是固定格式,一般在ng配置的时候是不需要配置TLS_这一部分的,直接从密钥交换开始算。 DH 算法:DH 交换密钥时就只有客户端的公钥是变化,而服务端公钥是不变的,那么随着时间延长,黑客就会截获海量的密钥协商过程的数据,因为密钥协商的过程有些数据是公开的,黑客就可以依据这些数据暴力破解出服务器的私钥 ,然后就可以计算出会话密钥了,于是之前截获的加密数据会被破解DHE 算法既然固定一方的私钥有被破解的风险,那么干脆就让双方的私钥在每次密钥交换通信时,都是随机生成的、临时的,这个方式也就是 DHE 算法 (这里解释下原因:如果RSA证书,那么密钥交换方式也是RSA的,肯定可以。 密钥交换模式是ECDHE的话,由于ECDHE的密钥交换过程无需证书的实质性参与,所以RSA证书也可以和ECDHE一起工作;ECDHE的密钥交换方式可以参考我的另一篇博客;交换过程主要是client和server

    1.6K51编辑于 2023-08-10
  • 来自专栏iiopsd技术专栏

    密钥交换算法(DH算法)

    背景 对称加密算法通过密钥解决了数据加密问题,但是如何安全的传输密钥成为了下一个问题。如果密钥被窃取了,那对称加密数据就没有什么意义了。 密钥交换算法(Diffie-Hellman算法 or DH算法)就是为了解决这个问题而出现的算法,DH算法也奠定了非对称加密算法的基础。 密钥交换算法(DH算法) 张三先随机取一个较大的素数p = 7777,一个底数g = 11,私钥k1 = 31,计算A = g^k1 MOD p = 2937 张三将p、g、A三个值发个李四 李四随机选择私钥为 k2 = 19,计算B = g^k2 MOD p = 6325, 李四将B发给张三 李四计算密钥S2 = A^k2 MOD p = 781 张三计算密钥S1 = B^k1 MOD p = 781 明文传输了 p、g、A、B四个值,只通过这四个值是无法计算出最终的密钥S,张三李四通过自己的私钥K1和k2计算出约定的密钥S1和S2,这样就完成了密钥交换

    1.5K50编辑于 2022-12-23
  • 来自专栏向治洪

    DH密钥交换非对称加密

    迪菲-赫尔曼密钥交换(Diffie–Hellman key exchange,简称“D–H”) 是一种安全协议。 它可以让双方在完全没有对方任何预先信息的条件下通过不安全信道建立起一个密钥。 例子: 假如用户Alice和用户Bob希望交换一个密钥。 取一个素数p =97和97的一个原根a=5。 在最初的描述中,迪菲-赫尔曼密钥交换本身并没有提供通讯双方的身份验证服务,因此它很容易受到中间人攻击。  一个中间人在信道的中央进行两次迪菲-赫尔曼密钥交换,一次和Alice另一次和Bob,就能够成功的向Alice假装自己是Bob,反之亦然。 有很多种安全身份验证解决方案使用到了迪菲-赫尔曼密钥交换。例如当Alice和Bob共有一个公钥基础设施时,他们可以将他们的返回密钥进行签名。

    2.4K50发布于 2018-02-01
  • 来自专栏全栈程序员必看

    HTTPS 和 SSLTLS 协议:密钥交换密钥协商)算法及其原理

    今天这篇来介绍一下实战中使用的“密钥协商算法”。 ★密钥交换/协商机制要达到啥目的? 前一篇介绍了 SSL/TLS 的身份认证机制。 ★密钥交换/协商机制的几种类型   俺总结了一下,大致有如下几种类型: ◇依靠非对称加密算法   原理:   拿到公钥的一方先生成随机的会话密钥,然后利用公钥加密它;再把加密结果发给对方,对方用私钥解密 举例: RSA ◇依靠专门的密钥交换算法   原理:   这个原理比较复杂,一两句话说不清楚,待会儿聊到 DH 的那个章节会详谈。    ★基于 DH 的密钥协商 ◇概述   DH 算法又称“Diffie–Hellman 算法”。这是两位数学牛人的名称,他们创立了这个算法。该算法用来实现【安全的】“密钥交换”。 ◇如何防范偷窥(嗅探)   使用这种算法,在协商密钥的过程中交换的是密钥的标识(ID)而【不是】密钥本身。   就算攻击者监视了全过程,也无法知晓密钥啥。

    11.6K30发布于 2021-06-17
  • 来自专栏码神随笔

    DH算法 | Diffie-Hellman 密钥交换

    概述: DH 算法又称“Diffie–Hellman 算法”,像往常的算法名字一样,这是用俩个数学牛人的名字来命名的算法,实现安全的密钥交换,通讯双方在完全没有对方任何预先信息的条件下通过不安全信道创建起一个密钥 用该算法协商密码,即使中间被截获,也无法解密出来密钥是啥 缺点: 没有办法进行认证 计算很复杂,但是一般情况下,一个会话只用计算一次,那么假如有大量的请求,就会耗费大量的资源来进行计算,容易受阻塞性攻击 张三和李四互相交换各自的公钥。 y)发送至客户端 客户端计算Sa(x,y) = Ra * Pb(x,y) 服务器计算Sb(x,y) = Rb *Pa(x,y) 算法保证了Sa = Sb = S,提取其中的S的x向量作为密钥 (预主密钥

    2.6K20编辑于 2022-12-13
  • 来自专栏三丰SanFeng

    迪菲-赫尔曼密钥交换

    迪菲-赫尔曼密钥交换(英语:Diffie-Hellman key exchange,缩写为D-H) 迪菲-赫尔曼密钥交换是在美国密码学家惠特菲尔德.迪菲和马丁.赫尔曼的合作下发明的,发表于1976年。 它是第一个实用的在非保护信道中创建共享密钥(英语:Shared secret)方法。它受到了瑞夫.墨克的关于公钥分配工作的影响。 迪菲-赫尔曼通过公共信道交换一个信息,就可以创建一个可以用于在公共信道上安全通信的共享秘密(shared secret)。 以下解释它的过程(包括算法的数学部分): ? 算法理论证明 对上面Alice和Bob秘钥交换问题的解释(下面用A与B分别表示两人) 首先A: a^k1 mod b ≡ c (例子中a=5,b=23) B: a^k2 mod b ≡ d 之后二人交换所得

    1.6K100发布于 2018-01-16
  • 来自专栏IMWeb前端团队

    Nodejs进阶:使用DiffieHellman密钥交换算法

    本文作者:IMWeb 陈映平 原文出处:IMWeb社区 未经同意,禁止转载 简介 Diffie-Hellman(简称DH)是密钥交换算法之一,它的作用是保证通信双方在非安全的信道中安全地交换密钥 目前DH最重要的应用场景之一,就是在HTTPS的握手阶段,客户端、服务端利用DH算法交换对称密钥。 下面会先简单介绍DH的数理基础,然后举例说明如何在nodejs中使用DH相关的API。 console.log(clientSecret.toString('hex')); console.log(serverSecret.toString('hex')); 相关链接 理解 Deffie-Hellman 密钥交换算法 迪菲-赫尔曼密钥交换 Secure messages in NodeJSusing ECDH Keyless SSL: The Nitty Gritty Technical Details

    1.3K70发布于 2018-01-08
  • 来自专栏IMWeb前端团队

    Nodejs进阶:使用DiffieHellman密钥交换算法

    简介 Diffie-Hellman(简称DH)是密钥交换算法之一,它的作用是保证通信双方在非安全的信道中安全地交换密钥。 目前DH最重要的应用场景之一,就是在HTTPS的握手阶段,客户端、服务端利用DH算法交换对称密钥。 下面会先简单介绍DH的数理基础,然后举例说明如何在nodejs中使用DH相关的API。 console.log(clientSecret.toString('hex')); console.log(serverSecret.toString('hex')); 相关链接 理解 Deffie-Hellman 密钥交换算法 迪菲-赫尔曼密钥交换 Secure messages in NodeJSusing ECDH Keyless SSL: The Nitty Gritty Technical Details

    95960发布于 2019-12-03
  • 来自专栏网络技术联盟站

    什么是 IPSec 互联网密钥交换 (IKE)?

    Internet 密钥交换 (IKE) 是一种协议,旨在为需要加密通信的终端创建安全关联。 虽然非对称加密看起来很安全,但它也有一个缺点,非对称加密和解密非常耗时,这使得非对称加密在交换大量数据时不是最优的。 在主模式的第一阶段,IKE 通过包交换协商一个 IKE SA。该 SA 主要用于加密第 2 阶段用于数据加密的对称密钥协商中使用的对称密钥的消息。 IKE 提议参数交换消息 图 5. 密钥生成信息交换 图 6. 身份和认证信息交换 与IKEv1 相比,IKEv2 简化了协商过程,通过两次交换,四个 ISAKMP 消息建立一个 IPSec SA,大大改善了协商过程。 图 7.

    3.4K31编辑于 2023-03-05
  • 来自专栏一名叫大蕉的程序员

    密钥交换有点不安全 No.89

    今天聊聊关于对称加密算法中关于密钥的问题。如果对于密码学的基础概念还不太熟悉的可以复习一下我上一篇文章。手把脚看看密码学No.72。 我们都知道对称密钥可以用于传送加密信息,过程是这样的。 这时候我们又要搬出伟大的数学了,今天介绍一种算法 迪菲-赫尔曼密钥交换,这个算法能够解决在不安全的信道下进行安全的密钥交换问题,究竟是怎么实现的呢。 迪菲-赫尔曼密钥交换(Diffie–Hellman key exchange,简称“D–H”) 是一种安全协议。它可以让双方在完全没有对方任何预先信息的条件下通过不安全信道建立起一个密钥。 这个密钥可以在后续的通讯中作为对称密钥来加密通讯内容。 主要的思路就是,根据数学的指数运算的法则来进行本地的计算(本地计算可以认为是安全的),同时用使用模运算来降低传输的数的值。 (这两个概念不清楚的自己百度去) 交换的过程分为 3 part 。 第 1 part :A 和 B 各自生成一个私钥。 第 2 part :A 和 B 进行指数运算,然后求模。

    1.4K90发布于 2018-03-27
  • 来自专栏TechBlog

    python实现Diffie-Hellman密钥交换算法

    python实现Diffie-Hellman密钥交换算法工程文件

    1.4K20编辑于 2022-07-20
  • 来自专栏神奇的程序员的专栏

    迪菲赫尔曼密钥交换的理解

    前言 迪菲赫尔曼密钥交换是一种可以在通信双方之间安全交换密钥的方法。这种方法通过将双方共有的密码数值隐藏在公开数值相关的运算中,来实现双方之间密钥的安全交换。 但是,X无法用自己窃听到的密钥合成出P-SA-SB,因此这种交换方式是安全的。 迪菲赫尔曼密钥交换图解 如图所示,P、G两个整数表示一开始生成的公开密钥P。 因此,此处使用迪菲赫尔曼密钥交换是安全的。 迪菲赫尔曼密钥交换是通过素数P、生成元G和“G的x次方 mod P”求出X的问题就是「离散对数问题」,至今为止尚未找到这个问题的解法,而迪菲赫尔曼密钥交换正是利用了这个数学难题,因此在离散对数问题未解决前 ❝使用迪菲赫尔曼密钥交换,通信双方仅通过交换一些公开信息就可以实现密钥交换。但实际上,双方并没有交换密钥,而是生成了密钥。因此,该方法又被叫做「迪菲赫尔曼协议」。

    75240编辑于 2022-04-10
  • 来自专栏OpenIM

    TLS协议分析 (五) handshake协议 证书与密钥交换

    服务器证书的公钥,必须和选择的密钥交换算法配套。 如果一个CipherSuite指定了新的TLS密钥交换算法,也会指定证书格式和要求的密钥编码方法。 signed_params 对需要认证的(即非anonymous的)密钥交换,对服务器的密钥交换参数的数字签名。 ECDHE_RSA 密钥交换算法的 SignatureAlgorithm 是 ecdsa。 消息结构: 消息的选择取决于选择的密钥交换算法。

    2.1K20发布于 2021-09-07
  • 来自专栏烟草的香味

    密钥交换算法: 迪菲-赫尔曼算法

    概述 迪菲-赫尔曼算法用于通信双方交换密钥. 还记得之前介绍HTTPS协议的时候, 提到需要先通过对方公钥来进行密钥交换, 然后再通过密钥对通信内容进行加密. 迪菲-赫尔曼算法就是用于交换密钥的. . 此算法与非对称加密算法不同哦. OK, 一起来看看吧. 引入 在正式介绍迪菲-赫尔曼算法之前, 先简单跟我思考下面场景. 现场有你, 小王和小李三个人, 你和小王之间需要建立一个共享密钥, 但是, 你们不能交头接耳, 你们之间说的话小李都能听到. 那么, 有什么办法能够建立共享密钥而不让小李知道呢? 重复一下上面的交换步骤, 开始尝试建立公共密钥 「第一步」 选择自己的私人数字. ? image-20200503205038362 OK, 至此, 密钥交换成功. 当然, 通过穷举的方法还是可以得到共享密钥. 例子中的数字为方便计算, 都很小.

    1.4K20发布于 2020-05-13
  • 来自专栏认证协议的形式化分析

    基础知识补充1:密钥交换协商机制

    密钥交换/协商机制 密钥协商这一概念也得以提出。一方面它能为参与者提供身份认证,另一方面,也能与参与者协商并共享会话密钥。 针对以下问题: 1.有哪些密钥交换协议? 2.工作原理是什么? 靠非对称加密算法 原理:拿到公钥的一方先生成随机的会话密钥,然后利用公钥加密它;再把加密结果发给对方,对方用私钥解密;于是双方都得到了会话密钥。 举例:RSA算法应用于密钥交换。 依靠专门的密钥交换算法 原理:利用正向计算共享秘密简单、逆向求解私钥困难的思路。 ---- Diffie–Hellman密钥交换协议 简介:Diffie–Hellman(以下简称DH)密钥交换是一个特殊的交换密钥的方法。它是密码学领域内最早付诸实践的密钥交换方法之一。 DH可以让双方在完全缺乏对方(私有)信息的前提条件下通过不安全的信道达成一个共享的密钥。此密钥用于对后续信息交换进行对称加密。

    6.2K30发布于 2020-07-29
  • 来自专栏数安视界

    基于ECC-ECDH的密钥交换机制

    我的公众号:密码学人CipherHUB 本文描述一种客户端-服务器加密通信方案,核心流程结合临时ECDH密钥交换、HKDF密钥强化、AES-GCM数据加密三阶段技术栈。 该方法兼顾效率与安全性,适用于敏感数据传输场景(如凭证交换、支付信息传输)。 核心流程 服务端身份密钥初始化 服务端生成持久化ECC密钥对(ECC-PERSIST-KEY-B),公钥提前分发至客户端(标记为ECC-PERSIST-KEY-A)。 客户端会话密钥构建 客户端为当前会话生成临时ECC密钥对(ECC-Tmp-Key-B),私钥在内存中生存周期限于本次会话。 设计思想 现代密码学分层设计思想: 非对称层:ECDH提供密钥协商(临时密钥实现前向保密) 转换层:HKDF消解算法耦合,输出标准化密钥 对称层:AES-GCM实现高速保密通信undefined

    41821编辑于 2025-06-27
  • 来自专栏密码学和区块链

    斯坦福大学密码学-密钥交换 09

    image.png 不需要可信第三方的密钥交换。 image.png Merkle Puzzles 没有可信第三方的密钥交换,可以用对称加密实现吗? 可以滴!!!但是效率很低,实际中没有用。 image.png Alice 和 Bob 交换密钥所花费的时间很多,代价很高。 image.png 对于对称密钥和哈希函数,平方鸿沟是最好的结果了。 image.png DH密钥交换协议 能否实现一个指数级鸿沟? image.png DH密钥交换协议构造方法。 image.png 安全性。 image.png 离散对数问题的困难性。 表展示了使用DH协议交换会话密钥,用于分组加密的会话密钥要有合适的密钥大小,这张表展示了需要使用的模的大小,使得密钥交换协议的安全性和你之后使用的分组密钥的安全性相当。 image.png 交换密钥。 image.png 安全性。 针对窃听是安全的。 image.png 中间人攻击。 image.png 文献推荐 image.png

    1.1K21发布于 2020-11-05
领券