
openssl
艾米的爸爸
密码算法技术及应用行业10+年从业经验。
展开
-
OpenSSL/GMSSL EVP接口说明——目录
OpenSSL/GMSSL EVP接口说明——目录原创 2023-04-05 13:12:12 · 11384 阅读 · 1 评论 -
OpenSSL/GMSSL EVP接口说明——3.6数字信封
OpenSSL/GMSSL EVP接口说明——3.6数字信封原创 2023-04-05 11:00:00 · 37491 阅读 · 0 评论 -
OpenSSL/GMSSL EVP接口说明——3.5 加密解密
OpenSSL/GMSSL EVP接口说明——3.5 加密解密原创 2023-04-05 10:45:00 · 28601 阅读 · 0 评论 -
OpenSSL/GMSSL EVP接口说明——3.4 签名验签
OpenSSL/GMSSL EVP接口说明——3.4 签名验签原创 2023-04-05 10:30:00 · 6435 阅读 · 4 评论 -
OpenSSL/GMSSL EVP接口说明——3.3 密钥生成
OpenSSL/GMSSL EVP接口说明——3.3 密钥生成原创 2023-04-05 10:15:00 · 35160 阅读 · 0 评论 -
OpenSSL/GMSSL EVP接口说明——3.2 EVP_PKEY_CTX和EVP_PKEY操作
OpenSSL/GMSSL EVP接口说明——3.2 EVP_PKEY_CTX和EVP_PKEY操作原创 2023-04-05 10:00:00 · 11802 阅读 · 0 评论 -
OpenSSL/GMSSL EVP接口说明——3.1 非对称算法使用流程
OpenSSL/GMSSL EVP接口说明——3.1 非对称算法使用流程原创 2023-04-05 09:45:00 · 34377 阅读 · 0 评论 -
OpenSSL/GMSSL EVP接口说明——2.8 MAC示例代码
OpenSSL/GMSSL EVP接口说明——2.8 MAC示例代码原创 2023-04-05 09:30:00 · 10585 阅读 · 0 评论 -
OpenSSL/GMSSL EVP接口说明——2.7 杂凑示例代码
OpenSSL/GMSSL EVP接口说明——2.7 杂凑示例代码原创 2023-04-05 09:15:00 · 43715 阅读 · 0 评论 -
OpenSSL/GMSSL EVP接口说明——2.6 MAC操作
OpenSSL/GMSSL EVP接口说明——2.6 MAC操作原创 2023-04-05 09:00:00 · 26436 阅读 · 0 评论 -
OpenSSL/GMSSL EVP接口说明——2.5 HMAC_CTX操作
OpenSSL/GMSSL EVP接口说明——2.5 HMAC_CTX操作原创 2023-04-04 20:59:20 · 10829 阅读 · 0 评论 -
OpenSSL/GMSSL EVP接口说明——2.4 摘要操作
OpenSSL/GMSSL EVP接口说明——2.4 摘要操作原创 2023-04-04 20:58:39 · 3563 阅读 · 0 评论 -
OpenSSL/GMSSL EVP接口说明——2.3 EVP_MD的辅助信息获取
OpenSSL/GMSSL EVP接口说明——2.3 EVP_MD的辅助信息获取原创 2023-04-04 20:53:27 · 35758 阅读 · 0 评论 -
OpenSSL/GMSSL EVP接口说明——2.2 EVP_MD_CTX操作
OpenSSL/GMSSL EVP接口说明——2.2 EVP_MD_CTX操作原创 2023-04-04 20:50:07 · 21764 阅读 · 0 评论 -
OpenSSL/GMSSL EVP接口说明——2.1 杂凑和MAC的使用步骤
OpenSSL/GMSSL EVP接口说明——2.1 杂凑和MAC的使用步骤原创 2023-04-04 20:51:46 · 25462 阅读 · 0 评论 -
OpenSSL/GMSSL EVP接口说明——1.7 加密解密示例代码
OpenSSL/GMSSL EVP接口说明——1.7 加密解密示例代码原创 2023-04-04 20:48:16 · 26106 阅读 · 0 评论 -
OpenSSL/GMSSL EVP接口说明——1.6 解密接口的说明
OpenSSL/GMSSL EVP接口说明——1.6 解密接口的说明原创 2023-04-04 20:49:48 · 34520 阅读 · 0 评论 -
OpenSSL/GMSSL EVP接口说明——1.5 加密接口的说明
OpenSSL/GMSSL EVP接口说明——1.5 加密接口的说明原创 2023-04-04 20:46:36 · 34303 阅读 · 0 评论 -
OpenSSL/GMSSL EVP接口说明——1.4 加解密统一接口的说明
OpenSSL/GMSSL EVP接口说明——1.4 加解密统一接口的说明原创 2023-04-04 20:48:14 · 36161 阅读 · 0 评论 -
OpenSSL/GMSSL EVP接口说明——1.3 CIPHER_CTX操作
OpenSSL/GMSSL EVP接口说明——1.3 CIPHER_CTX操作原创 2023-04-04 20:45:59 · 44647 阅读 · 0 评论 -
OpenSSL/GMSSL EVP接口说明——1.2 加解密接口说明
加解密接口共有15个,图1描述了这些接口之间的关系。原创 2023-04-04 20:42:54 · 42058 阅读 · 0 评论 -
OpenSSL/GMSSL EVP接口说明——1.1 对称算法加密解密使用步骤
OpenSSL/GMSSL EVP接口说明——1.1 对称算法加密解密使用步骤原创 2023-04-04 20:42:31 · 31433 阅读 · 0 评论 -
OpenSSL、OpenSSL-FIPS、OpenSSL-FIPS-ECP的区别
在OpenSSL的官网上可以看到三个分支,分别是openssl-、openssl-fips-、openssl-fips-ecp-。这三者的区别如下。 分支 内容差异 openssl- 完整版的OpenSSL openssl-fips- 把密码函数库单独抽出来,做成一个满足FIPS 1...原创 2019-12-26 18:07:04 · 69896 阅读 · 0 评论 -
OpenSSL v0.9.8a随机数发生器分析(合集)
OpenSSL随机数发生器本文档对OpenSSL使用的随机数进行研究分析,主要涉及OpenSSL v0.9.8a的随机数发生器以及其在Windows系统下的熵源采集情况。目录1. 概况... 11.1 OpenSSL随机数发生器概况... 11.2 OpenSSL 0.9.8a的随机数发生器概述... 22. 随机数发生器内部状态... 33. 函数说明... 4...原创 2018-10-30 09:27:16 · 12150 阅读 · 5 评论 -
OpenSSL v0.9.8a随机数发生器分析之三——熵采集
4. 熵采集熵采集函数为RAND_poll,它在不同操作系统下使用不同的熵源产生方式,Windows下的代码见.\crypto\rand\rand_win.c。此外,不同的OpenSSL版本中其熵采集方式也有较大出入。 OpenSSL版本 熵采集 v0.9.8a 使用了大量的各种信息,详情见本章后续部分。 ...原创 2018-10-29 18:18:13 · 25070 阅读 · 0 评论 -
OpenSSL v0.9.8a随机数发生器分析之二——随机数发生器函数说明
3. 函数说明默认的随机数发生器的调用函数为(代码见.\crypto\rand\md_rand.c)ssleay_rand_cleanup 置零 ssleay_rand_status 获取状态信息 ssleay_rand_seed 添加满熵种子 ssleay_rand_add ...原创 2018-10-29 18:15:51 · 21133 阅读 · 0 评论 -
OpenSSL v0.9.8a随机数发生器分析之一——基本情况与内部状态
摘要:本文档对OpenSSL使用的随机数进行研究分析,主要涉及OpenSSL v0.9.8a的随机数发生器以及其在Windows系统下的熵源采集情况。 关键词:OpenSSL,密码模块,随机数发生器,密码算法,杂凑算法,熵。1. 概况1.1 OpenSSL随机数发生器概况OpenSSL不同版本使用的随机数发生器不太相同,主要差别在于:非FIPS版本:默认使用OpenS...原创 2018-10-29 18:09:40 · 16357 阅读 · 0 评论 -
OpenSSL密码库算法笔记——第0章 大整数的表示及相关函数
第0章 大整数的表示及相关函数 在这一章中,我们先介绍大整数的表示方法(见§0.1),与大整数结构相关的常用函数和宏定义(见§0.2),这些函数和宏定义在后面章节中将陆续涉及到。OpenSSL密码库算法笔记——第0.1章 大整数的表示OpenSSL密码库算法笔记——第0.2章 相关函数和宏定义OpenSSL密码库算法笔记——第0.2.1章 新建与释...原创 2019-01-04 13:46:22 · 66904 阅读 · 0 评论 -
OpenSSL密码库算法笔记——第0.1章 大整数的表示
大整数的表示 现在,我们要面对的大整数将远远超出标准数据类型所能表示的范围,因此需要解决的第一个问题就是怎样在计算机中表示大整数。 回想一下大整数的十进制表示。比如20080512这个数在十进制中表示为:。受此思想的启发,可以利用数组来表示大整数。不过基数B不再是十进制表示时所取的10,而是取2的32次方:。有了这个雏形之后,再稍加润色——添加上...原创 2019-01-04 13:47:16 · 24141 阅读 · 1 评论 -
OpenSSL密码库算法笔记——第0.2.1章 新建与释放大整数
首先来看怎样新建一个大整数。以下两种方式中的任意一种都可以新建一个大整数。方法1:首先象定义普通数据类型一样定义一个大整数a:BIGNUM a;然后用初始化函数void BN_init(BIGNUM *a)作初始化:BN_init(&a);方法2:首先象定义指向普通数据类型的指针一样定义一个指向大整数的指针a:BIGNUM *a;然后调用新建大整数函数B...原创 2019-01-05 10:06:44 · 17095 阅读 · 0 评论 -
OpenSSL密码库算法笔记——第0.2.2章 大整数赋值
在新建了一个大整数以后,就可以开始设置这个大整数了。比如给这个大整数赋值——有可能是复制前面已有的某个大整数的所有相关数据,也有可能是将大整数设置为一些特殊的数,比如1、0等,当然你也可以自己输入相关数据。将一个大整数的相关数据复制给另外一个大整数可以使用BN_copy:───────────────────────────────────────BIGNUM *BN_copy(BIG...原创 2019-01-05 10:07:40 · 12976 阅读 · 2 评论 -
OpenSSL密码库算法笔记——第0.2.3章 逻辑判断和逻辑移位
首先介绍几个简单的大整数逻辑判断函数——比较两个大整数的大小,判断大整数是否为奇数,判断大整数是否为零,判断大数的某一位是否为0或者1。 最简单最常用的大整数比较函数为:───────────────────────────────────────int BN_cmp(const BIGNUM *a, const BIGNUM *b)功能: 比较两个大整数大小...原创 2019-01-05 10:08:35 · 16874 阅读 · 6 评论 -
OpenSSL密码库算法笔记——第0.2.4章 比特操作与二进制展开
这里简单介绍两个比特操作函数——判断大整数的某一比特是否为零和设置大整数的某一比特为1。在模指数运算里面需要判断指数的某一位是不是1,这时候就需要:───────────────────────────────────────int BN_is_bit_set(const BIGNUM *a, int n)功能: 判断大整数第n比特是否为1输入: a,n输出:...原创 2019-01-05 10:09:26 · 48178 阅读 · 0 评论 -
OpenSSL密码库算法笔记——第0.2.5章 其它
在程序中会经常看到一个宏定义bn_correct_top,它是为了便于程序调试而放置的,目前并无任何功能,是一个空语句。但若定义了BN_DEBUG,则该宏定义可以检查大整数的长度是否有误。───────────────────────────────────────#define bn_correct_top(BIGNUM *a)功能: 无(目前为空语句)输入: a...原创 2019-01-05 10:10:13 · 16217 阅读 · 0 评论 -
OpenSSL密码库算法笔记——第0.2章 相关函数和宏定义
这一节将介绍怎样使用大整数。比如新建大整数、释放大整数等,还将介绍大整数的一些简单操作,比如比较大整数,判断大整数是否为零,将大整数设置为1或者0,等等。需要说明一点:我们在宏定义的变量名前添加了其对应的变量类型,这只是形式上的添加,目的是希望能帮助大家更清楚的理解宏定义的用法。以后的章节中也是如此,请大家留意。原OpenSSL密码库算法笔记——第0.2.1章 新建与释放大整数原...原创 2019-01-05 10:12:13 · 12511 阅读 · 0 评论 -
OpenSSL密码库算法笔记——第1章 大整数的基本运算
本章主要介绍大整数的基本运算:加法、减法、乘法、平方和除法。(以下仅展示本章内容,由于文章更新速度原因,目录链接待更新)第1章 大整数的基本运算...1.1 加减法...1.1.1 绝对值加减法...1.1.2 带符号的加减法...1.1.3 加减法相关函数......原创 2019-01-05 10:24:01 · 21062 阅读 · 0 评论 -
OpenSSL密码库算法笔记——第1.1章 加减法
先考虑不带符号的加减法,即绝对值的加减法(见§1.1.1),再考虑带符号的加减法(见§1.1.2)。OpenSSL密码库算法笔记——第1.1.1章 绝对值加减法OpenSSL密码库算法笔记——第1.1.2章 带符号的加减法OpenSSL密码库算法笔记——第1.1.3章 加减法相关函数...原创 2019-01-05 10:24:56 · 27108 阅读 · 0 评论 -
OpenSSL密码库算法笔记——第1.1.1章 绝对值加减法
粗略的说,两个大整数a、b做绝对值加法r=|a|+|b|就是从低字到高字分别做带进位的加法。具体说来就是:───────────────────────────────────────算法: 绝对值加法step 1. 做低n个字的齐字加法,其中n=min(a的字长,b的字长),最终进位记为carry。step 2. 将余下的高位字复制到r的相应字。step...原创 2019-01-05 10:28:31 · 53294 阅读 · 0 评论 -
OpenSSL密码库算法笔记——第1.1.2章 带符号的加减法
带符号的加减法就是在绝对值加减法的基础上考虑a、b的符号。具体说来就是,带符号的加法的执行规则是:( a)+( b) <=> a+b; (-a)+(-b) <=> -(a+b);( a)+(-b) <=> a-b; (-a)+( b) <=> b-a ;────────────────────...原创 2019-01-05 10:29:25 · 24215 阅读 · 0 评论 -
OpenSSL密码库算法笔记——第1.1.3章 加减法相关函数
当大数加法中的某个加数退化为字的时候,可以利用更加有效的函数——大数与字的加法实现。───────────────────────────────────────int BN_add_word(BIGNUM *a, BN_ULONG w)功能: 大数与字的加法输入: a【大数】,w【字】输出: a=a+w返回: 1【正常】or 0【出错】出处:...原创 2019-01-06 11:13:02 · 18987 阅读 · 0 评论