我是靠谱客的博主 魔幻蜜粉,最近开发中收集的这篇文章主要介绍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对应私钥与第一个点对的倍乘)

 

转载于:https://www.cnblogs.com/smy87/p/8039038.html

最后

以上就是魔幻蜜粉为你收集整理的ECC算法整理纪要的全部内容,希望文章能够帮你解决ECC算法整理纪要所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(51)

评论列表共有 0 条评论

立即
投稿
返回
顶部