zoukankan      html  css  js  c++  java
  • ECC算法整理纪要

    初始ECC算法

    1、用户A 密钥生成

    (1):用随机数发生器产生随机数k[1,n-1];

    (2):计算椭圆曲线点PA=[k]G,为公钥,k为用户A私钥;

    2、 用户B加密算法及流程

    设需要发送的消息为比特串M,klen为M的比特长度。

    为了对明文M进行加密,作为加密者的用户B应实现以下运算步骤:

    (1):用随机数发生器产生随机数r[1,n-1](随机数r为用户B的私钥);

    (2):计算椭圆曲线点C1=[r]G=(x1,y1),,将C1(用户B的公钥)的数据类型转换为比特串;

    (3):计算椭圆曲线点C2=[r]=(x2,y2),将C2的数据类型转换为比特串;

    (4):计算C 3= M*x2(modp)

    (5):输出密文C=(x1,y1,C3)

    (一个M对应一个C;)

    3、 用户A解密算法及流程

    (1):从密文C中取出C1(x1,y1)。

    (2):使用私钥k计算点C4(x2,y2)=k C1=k ( x1,y1)。

    (3):在中计算。

    (4):最后计算明文P = C3,解密完成。

    明文嵌入ECC算法

    1、密钥生成用户A

    (1):用随机数发生器产生随机数k[1,n-1];

    (2):计算椭圆曲线点=[k]G,为公钥,k为用户A私钥;

    2、 用户B加密算法及流程

    设需要发送的消息为比特串M,klen为M的比特长度。

    为了对明文M进行加密,作为加密者的用户B应实现以下运算步骤:

    (1):用随机数发生器产生随机数r[1,n-1](随机数r为用户B的私钥);

    (2):计算椭圆曲线点C1=[r]G=(x1,y1),,将C1(用户B的公钥)的数据类型转换为比特串;

    (3):计算椭圆曲线点C2=[r]=(x2,y2),将C2的数据类型转换为比特串;

    (4):将明文M表示成一个域元素,即将明文转换成椭圆曲线上的点

    (5):计算C 3=  C2

    (6):输出密文C=(x1,y1,C3)

    (一个对应一个C)

    3、 用户A解密算法及流程

    (1):从密文C中取出C1(x1,y1)。

    (2):使用私钥k计算点C4(x2,y2)=k C1=k ( x1,y1)

    (3):从密文C中取出C3。

    (4):最后计算明文P = C3- C4,解密完成。(解密时以密文点对中第二及之后的点减A对应私钥与第一个点对的倍乘)

  • 相关阅读:
    SQL SERVER常用的统计用法
    SQL SERVER将多行数据合并成一行(转载)
    RabbitMQ安装与搭建
    CentOS 配置vncserver
    sql server2008禁用远程连接
    CentOS系统常用命令
    CentOS系统配置redis
    CentOS系统配置solr
    利用Warensoft Stock Service编写高频交易软件--客户端驱动接口说明
    蛙人高频交易拆单策略—蛙人高频软件结构及使用说明
  • 原文地址:https://www.cnblogs.com/smy87/p/8039038.html
Copyright © 2011-2022 走看看