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


相关推荐

  • Pycharm远程开发操作

    Pycharm远程开发操作Pycharm 远程开发操作可以在 Windows 中使用 Pycharm 编写代码 而代码的调试运行可以使用远程服务器中的 python 解释器 在本地创建好工程项目 或从 git 上 clone 下代码 后 用 Pycharm 打开 1 打开 Tools 设置 Deployment 2 选择 SFTP3 设置服务器名字 4 设置服务器信息 1 测试服务器连接是否可用 2 设置上传代码的目录映射 3 打开设置 设置远程 Python 解释器 4 选择已存在的服务器设置 5 选择 Create 复制服务器设置到解

    2026年3月27日
    2
  • 关于CBoard中文查询条件不能正常显示问题?

    关于CBoard中文查询条件不能正常显示问题?但是将 SQL 代码放到查询框里去查询并不是 SQL 代码问题 通过 Debug 后只知道是通过 PrepareState 后 中文参数全部变成了 问号 在网上搜了好久 看见几个方案 最后发现是自己的编码问题 通过纠结的几个小时 最终解决 方案如下 一 将 MYSQL 编码设置为 utf8 unicode ci 二 将连接字符串设置成 jdbc mysql loca

    2026年3月16日
    1
  • 拖库经验

    拖库经验拖库经验技巧集合 mssql 1 射点导出 and1 2unionselect char 94 CaSt Loginnameasv char 94 CaSt passwordasva char 94 CaSt trueNameasva char 94 CaSt emailasvarch char 94 CaSt p

    2026年3月17日
    2
  • 详解随机梯度下降法(Stochastic Gradient Descent,SGD)

    详解随机梯度下降法(Stochastic Gradient Descent,SGD)深度学习最常用的优化方法就是随机梯度下降法 但是随机梯度下降法在某些情况下会失效 这是为什么呢 带着这个问题我们接着往下看 一个经典的例子就是假设你现在在山上 为了以最快的速度下山 且视线良好 你可以看清自己的位置以及所处位置的坡度 那么沿着坡向下走 最终你会走到山底 i 1n f xi yi sum i 1 n nabla theta f left theta x i y i right nabla theta phi theta

    2026年3月18日
    2
  • sql 时间转字符串_字符串举例

    sql 时间转字符串_字符串举例一、日期时间类型转换为字符串:SelectCONVERT(varchar(100),GETDATE(),0):052020213:47PMSelectCONVERT(varchar(100),GETDATE(),1):05/20/21SelectCONVERT(varchar(100),GETDATE(),2):21.05.20SelectCONVERT(varchar(100),GETDATE(),3):20/05/21SelectCONVERT(var

    2022年10月8日
    6
  • 实测|WSL2 从零部署 OpenClaw AI 助手:安装配置与实战运行教程

    实测|WSL2 从零部署 OpenClaw AI 助手:安装配置与实战运行教程

    2026年3月13日
    3

发表回复

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

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