椭圆曲线公钥加密

发布时间 2023-06-24 21:51:31作者: 逆世混沌

(224条消息) 椭圆曲线上两种基本的运算:点集运算、P+Q详解_椭圆曲线点加运算_怀恋的愤怒的博客-CSDN博客

首先,了解一下这里的点加,

接着就是基础流程了

假设我们有一个要加密的消息M。加密过程如下:
  1. 随机选择一个整数k。
  2. 计算点P = kG。
  3. 将P的x坐标作为密文的一部分。
  4. 计算临时密钥K = kQ。
  5. 使用某个对称加密算法(如AES)和临时密钥K来加密消息M。
解密过程如下:
  1. 使用私钥d和收到的密文中的x坐标计算点P = xQ。
  2. 计算临时密钥K = dP。
  3. 使用相同的对称加密算法和临时密钥K来解密密文,得到原始消息M。

第一点显然不需要多少解释,随机一个数嘛,但是第二点就要说说了,点加这个东西已经说过了,而kG就是k个点加,每次计算一个点后,拿这个点计算下一个,当然就有人恍然大悟,那不就是递归嘛,确实是这样考虑的,如果你要写程序的话,我写了一段程序试着做了做,实际上如果你用递归很难控制次数,需要在里面设置标志位,还要考虑清零,索性直接写了次数

 

 用的是现代密码学课本的例子,咋们接着往下看

接着选取一个随机数,真随机,自己找一个就好,例题是k=13

接着计算P1=k*生成元

然后是P2=k*B的公钥,即PB

然后是P3=Pt+P2

Pt是一个随机点,有随机坐标(xt,yt)

密文C=m*xt+yt

那么加密数据是{P1,P3,C}

这三个数据怎么解呢?

也很简单,C知道xt和yt不就解出来了

那么P1和P3就是给你解xt和yt的