ECC
素数 prime,又称为质数,是指,除了1和它本身,没有其他因数的数。
素数的定理:
1)在一个大于1的数a和它的2倍之间必定存在至少一个素数;
素数的性质:
1)在所有的大于10的质数中,个位数,只有1,3,5,9;
素数还没有自己的生成函数,只能通过素数检测函数,进行循环判断;
C的基本判断函数:

大数的素数测试,有很多优化的算法,并不是简单的试除法,
确定性的素数判定法:太慢了
非确定性的素数判定法:
素数测试,输入是素数,来检测,该数并没有其他因子;绝不会把素数判断为合数,但可能把合数判断为素数。
合数测试,输入是合数,来检测,该数还有其他因子,米勒-拉宾(Miller-Rabin)测试。
互素,又称为互质,公约数只有1的两个整数,例如8,10的最大公因数是2。
梅森素数,Mersenne prime,是由梅森数来的。
梅森数,是指形如2p - 1的一类数,其中指数p是素数,记为Mp,如果梅森数为素数,就称为梅森素数;
目前仅仅发现了49个梅森素数;
ECC内部的椭圆曲线分为两大类,素数(p),二次多项式(2m)
ECC内部计算的blinding操作,在乘法过程中,加入输入的随机数来掩盖其中的中间值;
ECC的基于大素数P的椭圆曲线的方程是:y2 = x3 + ax + b mod p
NIST推荐的曲线中,a = -3,这样可以提高计算效率;
cofactor,余因子,必须不是n的因子,NIST推荐的曲线,一般cofactor都是1,2,4
n,基点G的阶,n*cofactor表示一条曲线上的所有点的个数。
ECC中P素域上的椭圆曲线的随机生成,需要一个160bit的seed,经过sha1运算之后,得到c,
a直接定为:-3
计算b:b2*c = -27 (mod p)
ECC Shamir trick,同时做两个点乘,内部进行分解,转变为更小的倍点和点加。
R = k*P + l*Q
ECC-C25519/Ed25519基于最新的一种椭圆曲线的方程,y2 - x2 = 1 + d*x2*y2 mod p
ECC中的affine coordinate和jacobian coordinate坐标系:
在affine coordinate,曲线的方程为:y2 = x3 + ax + b mod p
在jacobian coordinate中,曲线的方程为:y2 = x3 + axz4 + bz6
affine coordination 到Jacobian coordination的转换:
x = X/Z2 mod p
y = Y/Z2 mod p
Jacobian coordination 到affine coordination的转换:
X = x
Y = y
Z = 1
有些design内部,还可能使用standard projective来做运算,防止一些side-channel attack,这些运算如果使用
Jacobian坐标系不能实现,计算完成在转换为affine projective
Affine(x,y) 到 Standard_Prj(X,Y,Z)转变,
x = X/Z mod p
y = Y/Z mod p
standard_Prj(X,Y,Z) 到 Affine(x,y)转变,
X = x
Y = y
Z = 1
Z变量在standard_prj中的值是不等于Jacobian中的值的。
ecc曲线是关于x轴,可以对称的。曲线上的点的个数总共有order(阶)个。一般的可使用的点的个数会远小于order的值。
因为一般我们都取G点的n点乘的点的集合。n*G的点乘结果表示该曲线对应的无穷远点。
https://blog.csdn.net/hugewaves/article/details/53870397
ECC的更多相关文章
- STM32下FatFs的移植,实现了坏块管理,硬件ECC,ECC纠错,并进行擦写均衡分析
最近因项目需要,做一个数据采集的单片机平台.需要移植 FatFs .现在把最后成果贴上来. 1.摘要 在 STM32 单片机上,成功移植 FatFs 0.12b,使用的 Nand Flash 芯片为 ...
- SAP ECC CO 配置
SAP ECC 6.0 Configuration Document Controlling (CO) Table of Content TOC \o \h \z 1. Enterprise Stru ...
- SAP ECC FI配置文档
SAP ECC 6.0 Configuration Document Financial Accounting (FI) Table of Content TOC \O "1-2" ...
- SAP ECC PP 配置文档
SAP ECC 6.0 Configuration Document Production Planning & Control (PP) 1. General Settings 1.1 Ma ...
- SAP ECC MM 配置文档
SAP ECC 6.0 Configuration Document Materials Management (MM) Table of Content TOC \o \h \z 1. Genera ...
- ECC中的CRM UI端摆弄
前段时间想搞CRM了,可是公司没有环境,就去ECC直接试试事务码,结果竟然可以打开网页...兴奋之余又去看了一下CRM里的一些CLASS,结果很多都是没有的.沮丧! 后来想想,只能用UI的框架,挂WD ...
- 512字节纠错1位的ECC校验码生成演示
Flash型号: NandFlash型号:TC58NVG2S3ETA00 pagesize: 2KB oobsize : 64B blocksize : 128K 关于ECC可以参考:http:// ...
- ECC校验原理以及在Nand Flash中的应用
本篇文章主要介绍ECC基本原理以及在Nand Flash中的应用,本文记录自己对ECC校验原理的理解和学习. ECC介绍 ECC,全称为Error Correcting Code, ...
- ECC校验优化之路
引子: 今天上嵌入式课程时,老师讲到Linux的文件系统,讲的重点是Linux中对于nand flash的ECC校验和纠错.上课很认真地听完,确实叹服代码作者的水平. 晚上特地下载了Linux最新的内 ...
- ECC内存
ECC内存,即应用了能够实现错误检查和纠正技术(ECC)的内存条.一般多应用在服务器及图形工作站上,这将使整个电脑系统在工作时更趋于安全稳定.ECC是“Error Checking and Corre ...
随机推荐
- mysql学习【第5篇】:事务索引备份视图
狂神声明 : 文章均为自己的学习笔记 , 转载一定注明出处 ; 编辑不易 , 防君子不防小人~共勉 ! mysql学习[第5篇]:事务索引备份视图 MySQL事务 事务就是将一组SQL语句放在同一批次 ...
- SQLAlchemy中时间格式化及将时间戳转成对应时间的方法-mysql
https://blog.csdn.net/guoqianqian5812/article/details/80175866 方法很简答,都是借助于mysql数据库提供的函数将时间格式化方法 func ...
- MyEclipse中JDK运行环境和编译环境的设置
一.设置myEclipse中新项目使用的JDK 1.运行环境 [Window]->[Preferences]->[Java]->[Installed JREs] 步骤:Add-- ...
- vuex的小demo
效果图: vue的app.vue <template> <div> <p>click {{count}} times,count is {{evenOrOdd}}& ...
- HashMap如何解决取Value值为Null
场景: 用HashMap方法时候,取Keys时候自认为敲的肯定是准确无误,然后能得到对应的Values 值. 但写脚本代码时候不好习惯,没事总喜欢敲个空格建,导致取Keys之后多空格. Featur ...
- 协程.md
一. # 可迭代l = [ i for i in range(10) ] # l是可迭代的,但不是迭代器for idx in l: print(idx) # range是个迭代器for i ...
- 进程间通信IPC机制和生产者消费者模型
1.由于进程之间内存隔离,那么要修改共享数据时可以利用IPC机制 我们利用队列去处理相应数据 #管道 #队列=管道+锁 from multiprocessing import Queue # q=Qu ...
- 万恶之源 - Python生成器
生成器 首先我们来看看什么是个生成器,生成器本质就是迭代器 在python中有三种方式来获取生成器 1.通过生成器函数 2.通过各种推到式来实现生成器 3.通过数据的转换也可以获取生成器 首先,我们先 ...
- node—基础命令
1.安装node,在任意文件夹下按shift键选中“在此处打开PowerShell窗口”或者直接在开始菜单输入cmd启动 2.常用命令: c: 如果我们想访问c盘,那么我们需要在命令行中输入c:就行了 ...
- JDK 1.8源码阅读 ArrayList
一,前言 ArrayList是Java开发中使用比较频繁的一个类,通过对源码的解读,可以了解ArrayList的内部结构以及实现方法,清楚它的优缺点,以便我们在编程时灵活运用. 二,ArrayList ...