OpenSSL密码库算法笔记——第5.1.1章 椭圆曲线点群的定义

OpenSSL密码库算法笔记——第5.1.1章 椭圆曲线点群的定义下面定义的椭圆曲线点群不仅包含了域的信息和曲线的信息,甚至还包括了很多别的有利于实现的信息。椭圆曲线点群的定义如下。typedefstructec_group_stEC_GROUP;structec_group_st{constEC_METHOD*meth;EC_POINT*generator;BIGNUM…

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

下面定义的椭圆曲线点群不仅包含了域的信息和曲线的信息,甚至还包括了很多别的有利于实现的信息。

椭圆曲线点群的定义如下。

typedef struct ec_group_st   EC_GROUP;

struct ec_group_st {

        const EC_METHOD *meth;

        EC_POINT *generator;

        BIGNUM order, cofactor;

        int curve_name;

        int asn1_flag;

        point_conversion_form_t asn1_form;

        unsigned char *seed;

        size_t seed_len;

        EC_EXTRA_DATA *extra_data;

        BIGNUM field;

        unsigned int poly[5];

        BIGNUM a, b;

        int a_is_minus3;

        void *field_data1;

        void *field_data2;

        int (*field_mod_func)(BIGNUM *, const BIGNUM *, const BIGNUM *);             

} /* EC_GROUP */;

现在来介绍下上面列举出的部分参数,这部分介绍可参见代码中的ec.h和ec_lcl.h文件。

  1. const EC_METHOD *meth指出椭圆曲线所用的是那些算法,详情参见§5.1.2。
  2. EC_POINT *generator为基点(EC_POINT的定义参见§5.1.3)。
  3. BIGNUM order, cofactor为基点的阶和相伴因子
  4. point_conversion_form_t asn1_form为点的压缩形式(参见§5.4.5)。
  5. BIGNUM field对素域而言就是特征p。
  6. BIGNUM a, b为曲线参数,即Weierstrass方程中的参数a、b。
  7. int a_is_minus3; 判断a是否为负3,因为a为负3时点的运算可优化(参见§5.4.4)。
  8. void *field_data1, *field_data2和int (*field_mod_func)(BIGNUM *, const BIGNUM *, const BIGNUM *)是为了优化点运算而采取的特殊方法(如Montgomery方法)。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

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

(0)
上一篇 2022年7月20日 下午1:46
下一篇 2022年7月20日 下午1:46


相关推荐

  • Java中ldc与lconst区别_写Java不懂Java系列之加载和存储

    Java中ldc与lconst区别_写Java不懂Java系列之加载和存储很多 Java 工程师语法用的很 666 但是真的让他说说 Java 是怎样编译运行的 我相信他会懵逼 希望处于这个阶段的同学可以仔细阅 Class 文件系列的文章 这里涵盖了 Class 文件的绝大部分内容 当你阅读并理解之后 相信你不再迷茫 不知道是否还记得 Code 属性 不记得的小伙伴建议回顾一下 Code 属性中存储了今天我们将要讲解的字节码指令 今天介绍一下字节码指令 加载和存储指令 所谓的字

    2026年3月26日
    1
  • 面向对象多态概念理解

    面向对象多态概念理解1 nbsp 什么是多态一句话概括 父类对象引用子类变量调用的是子类的实现例子 子类 publicclassC publicvoidhe System out println 我是中国人 publicvoidba System out println 我来拜年了

    2026年3月16日
    2
  • ArrayList与LinkList对比

    ArrayList与LinkList对比前边两篇博文简要总结了一下 ArrayList 和 LinkedList 的用法以及源码 本文简要总结一下这二者的区别 这在面试中也是常常会问到的一个知识点 先来看一下 ArrayList 和 LinkedList 的关系是怎样的 从继承体系可以看到 ArrayList 与 LinkedList 都是 Collection 接口下 List 接口的实现类 可谓是一对双胞胎 但由于底层数据结构的不同导致 Array

    2026年3月18日
    2
  • Vue 路由守卫

    Vue 路由守卫文章目录路由前置 路由守卫全局后置 路由守卫独享路由守卫组件内路由守卫 1 路由作用 对路由进行权限控制 2 路由分类 全局守卫 独享守卫 组件内守卫路由前置 路由守卫现在的需求是访问 News 和 Message 时验证 localstorage 如果 school 的值是三里屯小学才能正常访问 否则提示没有权限 现在增加 localstorage 现在就能正常访问了修改 index js 给每个路由增加 name 属性 然后增加前置路由守卫 创建一个路由器 con

    2026年3月19日
    2
  • kettle工具中嵌入java代码_kettle设置变量

    kettle工具中嵌入java代码_kettle设置变量Java调用Kettle工具方法/***Java调用Kettle工具类**@classnameKettleUtil*@date2020/3/2416:24*/publicfinalclassKettleUtil{privatestaticfinalLoggerlog=LoggerFactory.getLogger(KettleUt…

    2022年10月16日
    5
  • 【Pycharm】自动调整代码格式

    【Pycharm】自动调整代码格式文章目录如何在 Pycharm 自动调整代码格式 方法一 方法二 如何在 Pycharm 自动调整代码格式 方法一 1 打开 Pycharm2 在最上面工具栏 找到 Code 外链图片转存失败 源站可能有防盗链机制 建议将图片保存下来直接上传 img EuV12vOH 26 C Users 15802 AppData Roaming Typora typora user images image png 3 点击 Reformat

    2026年3月19日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号