前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >OpenSSL密码库算法笔记——第5.2章 椭圆曲线算法的函数架构图

OpenSSL密码库算法笔记——第5.2章 椭圆曲线算法的函数架构图

作者头像
全栈程序员站长
发布2022-09-13 16:48:32
4170
发布2022-09-13 16:48:32
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。

椭圆曲线算法中涉及的函数纷繁复杂,比如为了实现“复制点群”功能,就定义了四个函数,有:

int EC_GROUP_copy (EC_GROUP *dest, const EC_GROUP *src)、

int ec_GFp_mont_group_copy (EC_GROUP *dest, const EC_GROUP *src)、

int ec_GFp_simple_group_copy (EC_GROUP *dest, const EC_GROUP *src)、

int ec_GF2m_simple_group_copy (EC_GROUP *dest, const EC_GROUP *src)。

怎么会有这么多函数呢,它们之间有什么关系呢?在这一节里将会向你详细解释。

首先,实现椭圆曲线中算法的函数大部分在文件ec_lib.c、ecp_mont.c、ecp_smpl.c和ec2_smpl.c里面。这四个文件所起作用各不相同:

文件

大致作用

备注

ec_lib.c

提供统一的对外接口

个别函数接口未统一

ecp_mont.c

专门处理field_data1、field_data2和函数field_mod_func

只针对素域时处理点群的部分函数

ecp_smpl.c

素域底层基本功能的具体实现

只针对素域

ec2_smpl.c

二元域底层基本功能的具体实现

只针对二元域

表5.1 ec_lib.c、ecp_mont.c、ecp_smpl.c和ec2_smpl.c的作用

接着,来看看它们之间的关系。

  1. ec_lib.c中的函数(无论接口是否统一)会根据有限域类型调用ecp_mont.c(素域、点群)和ecp_smpl.c(素域)或者ec2_smpl.c(二元域)。
  2. 对素域而言,ecp_mont.c专门处理field_data1、field_data2和函数field_mod_func(二元域没有这三个参数),剩下的底层基本功能的具体实现需要去调用ecp_smpl.c。如果不需要处理field_data1、field_data2和函数field_mod_func,则直接调用ecp_smpl.c,而不需要调用ecp_ mont.c。
  3. 对二元域而言,ec2_smpl.c是底层基本功能的具体实现,被ec_lib.c直接调用。

以上关系的图示如下:

图5.2 ec_lib.c、ecp_mont.c、ecp_smpl.c和ec2_smpl.c的调用关系

接下来,举两个例子来说明。

例1:分析本小节开始部分提到的“复制点群”各函数之间的相互关系。

注意:以下用记号“EC_GROUP_copy @ec_lib.c”表示函数EC_GROUP_copy是在文件ec_lib.c中,其余类似。

图5.3 “复制点群”函数的调用关系

例2:“设置群信息”。该例中不需要处理field_data1、field_data2和函数field_mod_func,所以就没有调用ecp_mont.c文件,而是直接调用ecp_smpl.c。

图5.4 “设置群信息”函数的调用关系

最后再多说两句。其实每个函数的函数名都写的非常清楚,从函数名中就可以读出该函数是在哪个文件中,是对素域还是二元域进行操作,亦或是作为一个统一的接口。

  1. 如果函数名中带有“GFp”,则函数是对素域进行操作;如果函数名中带有“GF2m”,则函数是对二元域进行操作。
  2. 如果函数名中带有“mont”,则函数在ecp_mont.c文件中。
  3. 如果函数名中带有“smpl”,则函数在ecp_smpl.c或者ec2m_smpl.c文件中。至于具体在哪个文件,就看文件名里面是带有“GFp”还是“GF2m”。

另外,ec_lib.c中还有部分函数的接口并没有统一(比如例2),其实这部分函数同样可以做到接口的统一,但这是后一步的工作了。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/162135.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档