素数 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的更多相关文章

  1. STM32下FatFs的移植,实现了坏块管理,硬件ECC,ECC纠错,并进行擦写均衡分析

    最近因项目需要,做一个数据采集的单片机平台.需要移植 FatFs .现在把最后成果贴上来. 1.摘要 在 STM32 单片机上,成功移植 FatFs 0.12b,使用的 Nand Flash 芯片为 ...

  2. SAP ECC CO 配置

    SAP ECC 6.0 Configuration Document Controlling (CO) Table of Content TOC \o \h \z 1. Enterprise Stru ...

  3. SAP ECC FI配置文档

    SAP ECC 6.0 Configuration Document Financial Accounting (FI) Table of Content TOC \O "1-2" ...

  4. SAP ECC PP 配置文档

    SAP ECC 6.0 Configuration Document Production Planning & Control (PP) 1. General Settings 1.1 Ma ...

  5. SAP ECC MM 配置文档

    SAP ECC 6.0 Configuration Document Materials Management (MM) Table of Content TOC \o \h \z 1. Genera ...

  6. ECC中的CRM UI端摆弄

    前段时间想搞CRM了,可是公司没有环境,就去ECC直接试试事务码,结果竟然可以打开网页...兴奋之余又去看了一下CRM里的一些CLASS,结果很多都是没有的.沮丧! 后来想想,只能用UI的框架,挂WD ...

  7. 512字节纠错1位的ECC校验码生成演示

    Flash型号: NandFlash型号:TC58NVG2S3ETA00 pagesize: 2KB oobsize  : 64B blocksize : 128K 关于ECC可以参考:http:// ...

  8. ECC校验原理以及在Nand Flash中的应用

         本篇文章主要介绍ECC基本原理以及在Nand Flash中的应用,本文记录自己对ECC校验原理的理解和学习. ECC介绍      ECC,全称为Error Correcting Code, ...

  9. ECC校验优化之路

    引子: 今天上嵌入式课程时,老师讲到Linux的文件系统,讲的重点是Linux中对于nand flash的ECC校验和纠错.上课很认真地听完,确实叹服代码作者的水平. 晚上特地下载了Linux最新的内 ...

  10. ECC内存

    ECC内存,即应用了能够实现错误检查和纠正技术(ECC)的内存条.一般多应用在服务器及图形工作站上,这将使整个电脑系统在工作时更趋于安全稳定.ECC是“Error Checking and Corre ...

随机推荐

  1. 用2个DATETIMEPICKER分别输入时间和日期,再合并成一个DATETIME类型

    DtpDate为日期的,DtpTime为时间的 StrToDateTime(FormatDateTime('yyyy-MM-dd', DtpDate.Date) + ' ' + TimeToStr(D ...

  2. TMS WEB Core v1.2预览版:新的Electron应用程序支持

    2019年2月20日,星期三 几个月前,我们已经开始与Electron进行实验.在工作概念验证之后,我们的目标是为Delphi开发人员尽可能多地包装Electron API.但当然不仅仅是可以使用的E ...

  3. mysql存储过程游标嵌套循环

    自己写的一个mysql存储过程如下: BEGIN DECLARE _did bigint(20);DECLARE _count int;DECLARE s1 int;DECLARE cur_1 CUR ...

  4. Orchard Core 自定义权限配置

    在我们为Orchard Core配置了一个新的Module之后,我们要考虑的是谁可以访问这个Module,那么这里就涉及到了一个权限的配置.如下图,添加了自定义的权限: Orchard Core源码: ...

  5. 洛谷P3248 树 [HNOI2016] 主席树+倍增+分治

    正解:主席树+倍增+分治 解题报告: 传送门! 首先看到这题会想到之前考过的这题 但是那题其实简单一些,,,因为那题只要用个分治+预处理就好,只是有点儿思维难度而已 这题就不一样,因为它说了是按照原树 ...

  6. (1.6)MySQL执行计划

    关键词:mysql执行计划 1.用法 [1.1]explain select * from tab_name........ [1.2]desc select * from tab_name..... ...

  7. 2 jmeter常用功能介绍-测试计划、线程组

    1.测试计划测试用来描述一个性能测试,所有内容都是基于这个测试计划的. (1)User Defined Variables:设置用户全局变量.一般添加一些系统常用的配置.如果测试过程中想切换环境,切换 ...

  8. 如何卸载docker

    1.卸载 (1)yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ d ...

  9. Linux系统启动排错实验集合

    Centos6系统启动流程 1. post  加电自检  检查硬件环境 2. 选择一个硬件类型引导启动           mbr 446字节   grub  stage1 3. 加载boot分区的文 ...

  10. HyperlinkedIdentityField

    1.简介 其实就是创建一个链接,把查询到对象放到链接上,点链接可以查看.实际上用的很少. 2. views代码 查找的是一个对象的所有数据,link只是放在这个对象其中一个字段上的数据. from d ...