初始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对应私钥与第一个点对的倍乘)

ECC算法整理纪要的更多相关文章

  1. NAND Flash中常用的纠错方式(ECC算法)

    Hanming,RS,BCH —— NAND Flash中常用的纠错方式 因为闪存中会有出错的可能,如果没有使用ECC模块,读出的数据和写入的数据会有不匹配的可能,也许一个文件中只有一两个bit不匹配 ...

  2. (排序算法整理)NEFU 30/32

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/caihongshijie6/article/details/26165093        事实上, ...

  3. ECC 算法

    一.简介 1)椭圆曲线密码学的初级读本 http://8btc.com/thread-1240-1-1.html 2)ECC加密算法入门介绍 http://www.pediy.com/kssd/ped ...

  4. 【图像配准】基于互信息的图像配准算法:MI、EMI、ECC算法

    简单介绍: 基于互信息的图像配准算法以其较高的配准精度和广泛的适用性而成为图像配准领域研究的热点之中的一个.而基于互信息的医学图像配准方法被觉得是最好的配准方法之中的一个.基于此.本文将介绍简单的基于 ...

  5. Leetcode——回溯法常考算法整理

    Leetcode--回溯法常考算法整理 Preface Leetcode--回溯法常考算法整理 Definition Why & When to Use Backtrakcing How to ...

  6. BFS与DFS常考算法整理

    BFS与DFS常考算法整理 Preface BFS(Breath-First Search,广度优先搜索)与DFS(Depth-First Search,深度优先搜索)是两种针对树与图数据结构的遍历或 ...

  7. Leetcode——二叉树常考算法整理

    二叉树常考算法整理 希望通过写下来自己学习历程的方式帮助自己加深对知识的理解,也帮助其他人更好地学习,少走弯路.也欢迎大家来给我的Github的Leetcode算法项目点star呀~~ 二叉树常考算法 ...

  8. 排序算法整理C++(初赛)

    排序算法整理 常见考点 将一个乱掉的字符串排回有序(以交换为基本操作)的最少操作,就是冒泡排序. 排序算法的稳定性 排序算法的时间复杂度 排序算法的稳定性 稳定性是指排序前两个元素a1 = a2,a1 ...

  9. 常用的 JS 排序算法整理

    关于排序算法的问题可以在网上搜到一大堆,但是纯 JS 版比较零散,之前面试的时候特意整理了一遍,附带排序效率比较. //1.冒泡排序 var bubbleSort = function(arr) { ...

随机推荐

  1. 20145306 网路攻防 web安全基础实践

    20145306 网络攻防 web安全基础实践 实验内容 使用webgoat进行XSS攻击.CSRF攻击.SQL注入 XSS攻击:Stored XSS Attacks.Reflected XSS At ...

  2. 20145309李昊《网络对抗技术》实验9 web安全基础实践

    本实验在同学帮助下完成 一.实验准备 1.0 实验目标和内容 Web前端HTML.能正常安装.启停Apache.理解HTML,理解表单,理解GET与POST方法,编写一个含有表单的HTML. Web前 ...

  3. 20145313张雪纯Exp8 Web基础

    回答问题 (1)什么是表单 表单在网页中主要负责数据采集功能.一个表单有三个基本组成部分: 表单标签:这里面包含了处理表单数据所用CGI程序的URL以及数据提交到服务器的方法. 表单域:包含了文本框. ...

  4. 20145314郑凯杰《网络对抗技术》PE文件病毒捆绑(插入捆绑)的实现

    20145314郑凯杰<网络对抗技术>PE文件病毒捆绑(插入捆绑)的实现 一.本节摘要 简介:每个应用程序内部都有一定的空间(因为文件对齐余留的00字段)可以被利用,这样就可以保证被插入的 ...

  5. tf.multiply()和tf.matmul()区别

    (1)tf.multiply是点乘,即Returns x * y element-wise. (2)tf.matmul是矩阵乘法,即Multiplies matrix a by matrix b, p ...

  6. poj 1274 The Prefect Stall - 二分匹配

    Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 22736   Accepted: 10144 Description Far ...

  7. ubuntu16.04下内核模块解析

    一.环境如下: 1.1内核版本: jello@jello:~$ uname -a Linux jello 4.4.0-89-generic #112-Ubuntu SMP Mon Jul 31 19: ...

  8. springmvc的声明式事务管理类型讲解

    以方法为单位,进行事务控制:抛出异常,事务回滚.   最小的执行单位为方法.决定执行成败是通过是否抛出异常来判断的,抛出异常即执行失败   中文名 声明式事务 外文名 declarative tran ...

  9. python 字节与字符串转化

    name = 'laogaoyang' # 采用系统默认编码格式 nameBytes = name.encode('utf-8') # 先将 name 解码(采用系统默认格式),然后用 'utf-8' ...

  10. Linux - 命令重定向

    命令重定向, 就是将目前得到的数据转移到指定的地方.分为以下几种: >>>1>2>1>>2>>< 1. > 与 >>先看一 ...