ECDH、ECDSA、AES

ECDH 秘钥协商算法原理
RSA过程

首先需要了解ECDH、ECDSA只是用于交换密钥信息,最后对明文的加密还是需要通过AES来实现。

ECDH

Alice生成(P_A, k_A),Bob生成(P_B, k_B),两者分别交换公钥。由于ECC算法,他们可以得到一个公共的密钥信息:

S = k_AP_B = k_Ak_BG = k_Bk_AG = k_BP_A

但是ECDH存在中间人攻击问题,因此为了安全,还需要进行签名来互相确认。

ECDSA

在上述ECDH基础上,若Alice需要发出签名,则生成一个临时密钥对(P, k),并进行以下操作:

  1. 将临时密钥信息隐藏在r中:r = x_{tmp} mod q
  2. 将自己的签名信息隐藏在s中:s = k^{-1}(z + rk_A) mod q,其中,z是一段公开的信息的哈希序列。
  3. (P, r, s)分享给Bob

Bob若要确认该信息确实来自Alice,则进行以下计算:

u_1 = s^{-1}z \\ u_2 = s^{-1}r \\ P = u_1G + u_2P_A

最后一行计算可展开如下:

u_1G + u_2P_A = u_1G+u_2k_AG = (u_1+u_2k_A)G = s^{-1}(z+rk_A)G = kG = P

因此,若r,s签名信息确实来自Alice,则第三行等式应该成立。此时,Alice和Bob再进行加密通信时,分别通过(k, P_B)(k_B, P)来进行AES所需对称密钥key的生成。

不过这里,具体通过什么方式生成key,我暂时还不太了解。

RSA工作过程:

发送方:

  1. 生成两个大质数p & q并得到N = pq
  2. 计算r = \varphi(N) = \varphi(pq) = \varphi(p)\varphi(q) = (p-1)(q-1) 
  3. 寻找与r互质的一个整数e,此时有定理可找到整数d满足ed = 1(mod r) = 1(mod \varphi(N))

此时,公钥即(N, e),私钥即(N, d)

加密方计算:

m^e = c(mod N)

解密方计算:

c^d = m(mod N)

原理(这里计算情况是m与N互质):

c^d = (m^e)^d = m^{ed} = m^{1+kr} = m^{1+k\varphi(N)} = m*m^{\varphi(N)}*...*m^{1+k\varphi(N)} = m(mod N)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值