了解了前面说的ecc的概念之后,我们就知道group的意义了,实际上group定义了一条曲线,定义了a,b,还有order等等,在openssl的实现中,group中还有一个EC_METHOD结构体,这个结构体中有一系列的函数,顾名思义这些函数是用来操作曲线的,可以看到这个method没有engine的支持,这是为什么呢?因为ecc的创立者根本就不把ecc算法所应用的曲线作为算法的一部分来考虑,也就是说,这些曲线是公开的,一旦你确定了曲线的参数,那么接下来的对曲线的操作就是确定的,没有必要自定义实现,因此,EC_METHOD基本都是固定的,没有engine的支持,可以说group和ecc密钥的计算基本没有关系,它只是提供了一个所谓的“基础设施”,因为现代计算机并没有实现曲线域的计算法则,所以openssl就应该自己实现,这个实现就是group中的EC_METHOD。
但是我们国家总是喜欢搞zg特色,正如我们国家搞双证书体系一样,我们国家的双证书体系为的是方便官方取证,这在别的国家是不存在的,在别的国家,你的私钥是任何机构都无权查看的,可是...公正乎?哀哉!正是因为我们的ecc标准没有公布椭圆曲线参数,于是我们就不能使用openssl了,但是openssl实在太棒了,我无法舍弃它,于是就要想办法将openssl改造成支持国家密码局的ecc标准的框架。要做到这个,首先的想法就是让EC_METHO支持engine,由于国家不公布椭圆曲线标准,那么我们只好调用国家的接口来自己实现。怎么让EC_METHOD支持engine呢?很简单,首先将自己的engine注册进openssl,然后修改获取group的代码,如果需要处理的密钥的oid是我们国家的标准,那么就获取我们实现的engine,之后就用我们的engine的实现的方法来实现曲线操作。
实现了曲线操作,接下来的密钥操作就简单了,密钥操作都是在“曲线”上进行的,只要我们加载自己的engine,那么很容易就可以使得我们自己的engine得到使用,这个就不必多说了,详细情况请看关于engine的介绍。这个工作简单的原因在于ecdh或者ecdsa等本来就是支持engine的。为了实现国密的ecc算法,或者说将国密ecc整合进openssl,我们需要很多的工作要做,我们之所以值得做这些工作原因有二:第一,国家的标准我们必须实现;第二,openssl实在太棒了!
分享到:
相关推荐
ECC算法校验工具ECC算法校验工具ECC算法校验工具
ecc算法 中P 256 曲线 算法规范,依据此规范进行 ECC 算法 开发
椭圆加密算法ecc是一种公钥加密体制 delph2007测试通过。
用C实现的ECC算法,用于用软件模拟ECC算法
资源分类:Python库 所属语言:Python 资源全名:py_ecc-5.0.0-py3-none-any.whl 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
需要了解 ECC 加密的,可以参考一下,这个是基于openssl 的ECC 算法。解压后,test_ecc 里面是测试代码,大家看看,就明白了ECC算法的流程,里面有生成key,加密、解密。
ecc加密算法库,是一种非对称加密算,可用于数字签名等。
本代码是用C语言实现的FLASH的1bit纠错,2bit校验ECC算法,可供在做FLASH相关算法的人员进行参考
ECC加密算法C语言源码
ECC256和ECC512的算法代码,实现数据的ECC码计算,比较和纠错
《Theory and Technology of Secure Protocol in Communication Network》作业3:实现ECC算法。实验环境VS2010
ECC算法 C++实现 加解密 已经过测试
SEC 2就是SECG推荐的ECC(Elliptic Curve Cryptography)算法曲线参数
将micro-ecc拷入nRF5_SDK_14.2.0_17b948a\external\micro-ecc,然后将micro_ecc_lib_nrf52.lib复制到nRF5_SDK_14.2.0_17b948a\external\micro-ecc\nrf52hf_keil\armgcc和nRF5_SDK_14.2.0_17b948a\external\micro-ecc...
Mo n t g o me r y标量乘法进行了抵抗, 简单功耗分析( S P A) 和差分功耗分析 ( D P A) 的研究。结果表明, 目前 常用的 Mo n t g o m e r y 算法具有较好的抵抗 S P A攻击的能力, 但是对 D P A攻击防护不够, 从...
可直接使用的nand flash ECC算法
有关ECC算法的引入和介绍,以及实现的流程和步骤
256字节ECC算法实现校正1比特错误,检测多与1比特的错误
真正由标准C写出来的ECC加密程序。要是谁用了有问题请发邮件到fjzhtaobao@sohu.com