
密码学
文章平均质量分 81
MY CUP OF TEA
所谓的念念不忘,在自己眼中是爱,在对方眼中是烦,在旁人眼中是贱。
展开
-
Engine实现国密算法SM4 ECB/CBC 模式的代码和逻辑图
Engine实现国密算法SM4 ECB/CBC 模式的代码和逻辑图原创 2023-02-15 19:13:11 · 969 阅读 · 3 评论 -
Engine实现国密算法SM3的代码和逻辑图
Engine实现国密算法SM3的代码和逻辑图原创 2023-02-13 19:08:52 · 492 阅读 · 0 评论 -
GmSSL-master\include\openssl\engine.h 注释翻译
E:\code\gmssl_source_code\GmSSL-master\include\openssl\engine.h 对于Engine头文件的注释进行翻译原创 2023-02-13 17:38:32 · 704 阅读 · 0 评论 -
构建用于签名/加密双证书测试体系的可执行命令
构建用于签名/加密双证书测试体系的可执行命令原创 2022-11-28 18:05:53 · 4021 阅读 · 3 评论 -
往USBKey里面导入双证书专题:概念介绍、执行逻辑
往USBKey里面导入双证书专题:概念介绍、执行逻辑原创 2022-11-24 17:03:05 · 2793 阅读 · 2 评论 -
解决吉大正源(身份认证网关|USBKey)和gmssl(server|client)使用gmtl协议交叉互通报错tlsv1 alert decrypt error
解决吉大正源(身份认证网关|USBKey)和gmssl(server|client)使用gmtl协议交叉互通报错SSL_connect:error in SSLv3/TLS write finished140057291788288:error:1409441B:SSL routines:ssl3_read_bytes:tlsv1 alert decrypt error:ssl/record/rec_layer_s3.c:1385:SSL alert number 51原创 2022-11-23 14:46:22 · 2194 阅读 · 0 评论 -
gmssl使用双证书双向认证的gmtl协议报错crypto/sm2/sm2_sign.c 510: sm2_do_verifySSL3 alert write:fatal:decrypt error
gmssl使用双证书双向认证的gmtl协议报错crypto/sm2/sm2_sign.c 510: sm2_do_verifySSL3 alert write:fatal:decrypt error原创 2022-09-24 13:25:07 · 2045 阅读 · 0 评论 -
gmssl服务端和客户端程序、吉大正元身份认证网关、吉大正元SDK+USBkey 两两之间双证书双向认证数据通信测试
gmssl服务端和客户端程序、吉大正元身份认证网关、吉大正元SDK+USBkey 两两之间数据通信测试原创 2022-09-26 15:00:03 · 9216 阅读 · 2 评论 -
本地使用openssl生成一个sm2的私钥,并生成req请求(p10数据),将其作为申请书内容,进行证书的下载
本地使用openssl生成一个sm2的私钥,并生成req请求(p10数据),将其作为申请书内容,进行证书的下载,得到了cer和p7b格式的签名和加密证书原创 2022-09-20 22:57:02 · 5223 阅读 · 10 评论 -
国密gmtls协议-双证书体系的服务端和客户端通信代码
国密gmtls协议-双证书体系的服务端和客户端通信代码原创 2022-08-21 18:20:09 · 7510 阅读 · 0 评论 -
openssl编程-基础知识-OpenSSL堆栈
openssl编程-基础知识-OpenSSL堆栈原创 2022-07-28 18:05:31 · 1051 阅读 · 0 评论 -
openssl编程-基础知识-OpenSSL简介
openssl编程-基础知识-OpenSSL简介原创 2022-07-27 11:37:15 · 1241 阅读 · 0 评论 -
openssl编程-基础知识-回调函数
openssl编程-基础知识-回调函数原创 2022-07-27 10:30:05 · 537 阅读 · 0 评论 -
使用wireshark抓包,验证客户端和服务端SSL通信时指定的算法套件
使用wireshark抓包,验证客户端和服务端SSL通信时指定的算法套件原创 2022-07-26 16:59:37 · 2300 阅读 · 0 评论 -
在基于 Ubuntu 的 Linux 发行版上安装 Wireshark
在基于 Ubuntu 的 Linux 发行版上安装 Wireshark原创 2022-07-26 13:54:02 · 773 阅读 · 0 评论 -
使用Clion和gmssl动态库实现服务器server和客户端client之间的SSL通信,测试指定密码套件
使用Clion和gmssl动态库实现服务器server和客户端client之间的SSL通信,测试指定密码套件原创 2022-07-25 19:59:44 · 1934 阅读 · 0 评论 -
使用Clion和openssl动态库实现服务器server和客户端client之间的SSL通信
使用Clion和openssl动态库实现服务器server和客户端client之间的SSL通信原创 2022-07-25 18:27:43 · 1565 阅读 · 0 评论 -
使用Clion和gmssl动态库实现服务器server和客户端client之间的SSL通信
使用Clion和gmssl动态库实现服务器server和客户端client之间的SSL通信原创 2022-07-25 17:13:18 · 584 阅读 · 0 评论 -
Ubuntu配置gmssl和openssl,且均使用动态库,使用时根据需要进行动态切换
Ubuntu配置gmssl和openssl,且均使用动态库,使用时根据需要进行动态切换原创 2022-07-25 14:32:27 · 1061 阅读 · 0 评论 -
openssl 密码套件相关内容(OID|密码套件)
openssl 密码套件相关内容(OID|密码套件)原创 2022-07-25 11:52:49 · 3240 阅读 · 0 评论 -
基于GmSSL实现server服务端和client客户端之间SSL通信代码(升级优化公开版)
基于GmSSL实现server服务端和client客户端之间SSL通信代码(升级优化公开版)原创 2022-07-22 11:47:53 · 1782 阅读 · 3 评论 -
使用Clion软件实现基于国密SM2-SM3的SSL安全通信
使用Clion软件实现基于国密SM2-SM3的SSL安全通信原创 2022-07-21 17:08:27 · 890 阅读 · 0 评论 -
基于SM2证书实现SSL通信
基于SM2证书实现SSL通信原创 2022-07-21 16:06:44 · 1156 阅读 · 1 评论 -
基于Gmssl库静态编译,实现服务端和客户端之间的SSL通信
基于Gmssl库静态编译,实现服务端和客户端之间的SSL通信原创 2022-07-21 11:22:39 · 1186 阅读 · 0 评论 -
基于openssl和国密算法生成CA、服务器和客户端证书
基于openssl和国密算法生成CA、服务器和客户端证书原创 2022-07-20 22:53:20 · 3465 阅读 · 2 评论 -
openssl实现双向认证教程(服务端代码+客户端代码+证书生成)
openssl实现双向认证教程(服务端代码+客户端代码+证书生成)原创 2022-07-19 21:15:14 · 1909 阅读 · 0 评论 -
在ubuntu环境下执行openssl编译和安装
在ubuntu环境下执行openssl编译和安装原创 2022-07-14 22:57:06 · 4406 阅读 · 0 评论 -
密码学专题 OpenSSL中SSL相关指令
再谈SSL和OpenSSL由于SSL协议已经是密码学和PKI技术中非常具体的一个应用协议,为了实现它,OpenSSL在密码学基础应用和PKI技术的基础实现上做了大量的工作,才逐渐形成和奠定了OpenSSL在密码学应用和PKI技术开发中的重要基础软件包地位。 OpenSSL涉及到SSL协议的实现、协议的应用和协议的开发调试等多个方面。 本章将主要从应用层面上来对SSL协议进行阐述,这仅是OpenSSL提供的SSL支持的一部分内容,OpenSSL还提供了基于SSL开发API等更多具有重要价值的资料,但并原创 2021-12-07 21:54:05 · 1261 阅读 · 0 评论 -
密码学专题 OpenSSL标准转换指令
概述繁多复杂的各种文件编码格式、证书格式和密钥格式等。事实上,并非OpenSSL开发者想要将数字世界弄得如此令人头疼,只是由于各种原因,数字世界存在各种不同的标准,为了尽量兼容这些不同的标准,OpenSSL开发者才相应地在其指令和代码中支持如此多的格式。 日常使用会面临处理这些不同标准之间相互兼容和转换的问题,比如将X.509证书转换成PKCS#12格式证书就是常见的任务。事实上,在OpenSSL的很多指令中提供了不同格式和标准之间的转换功能 本章将集中介绍pkcs8和nseq指令的使用及其相关的标原创 2021-12-07 19:32:52 · 3696 阅读 · 0 评论 -
密码学专题 证书和CA指令 申请证书|建立CA|CA操作|使用证书|验证证书
Req指令介绍功能概述和指令格式req指令一般来说应该是提供给证书申请用户的工具,用来生成证书请求以便交给CA验证和签发证书。但是,OpenSSL的req指令的功能远比这样的要求强大得多,它不仅可以生成RSA密钥、DSA密钥,以及将它们封装成证书请求,还可以对现有的证书请求进行签名验证、格式转换及信息修改等。下面将通过对req指令的各个参数的介绍来了解其全面的功能。首先来看看req指令的格式:eq指令的许多选项跟OpenSSL配置文件(默认为openslcnf)的证书请求部分是紧密相关的,如原创 2021-12-07 19:04:34 · 3305 阅读 · 0 评论 -
密码学专题 证书和CA指令 证书和CA功能概述
为什么需要证书实现了公钥和私钥的相互验证,但是任何人都可以生成很多的密钥对,密钥对并没有关联实体身份,因此诞生可数字证书 前提是CA是所有用户都信任的 用户需要将自己的信息和公钥交给CA进行认证生成一个属于自己并被其与用户认可的数字证书,然后双方通信的时候使用与数字证书里面对应的公钥进行数字签名证书生命周期证书申请证书的声明周期是指证书申请到证书被吊销整个过程,这个过程中涉及到证书的申请、颁发、使用和其余各个管理方面的问题 最常用的是RSA密钥和DSA密钥,算法的类型和具体的使用场景相关原创 2021-12-06 19:24:36 · 1527 阅读 · 0 评论 -
密码学专题 信息摘要和数字签名指令
信息摘要区别于对称加密和非对称加密,信息摘要算数是一种不可逆的操作,无论输入数据的大小输出的数据长度是固定的 信息摘要算数对输入很敏感,即使数据变化很细微,输出的结果会出现很大的差异 从不同输入得到相同的输出的概率非常低,因此信息摘要算数用于验证数据的完整性数字签名算法非对称加密算法,实质是使用非对称算法的私钥对数据进行加密,使用公钥对密文进行验证 数字签名算法配合信息摘要算法的整体流程OpenSSL目前支持的信息摘要算法包括SHA1、SHA、MD5、MD4、MD2、MDC2和RIP.原创 2021-12-06 18:09:52 · 2526 阅读 · 0 评论 -
密码学专题 非对称加密算法指令概述 DSA算法指令
DSA算法和DSA指令概述DSA算法是美国国家标准的数字签名算法,只具备数字签名的功能不具备密钥交换的功能 生成DSA参数然后生成DSA密钥,DSA参数决定了DSA密钥的长度 三个指令 首先是dsaparam指令,该指令主要用来生成DSA密钥参数,并提供了一些格式转换、C代码生成等其他类似于dhparam指令的功能。一组DSA参数可以用来生成多个不同的DSA密钥,而不是仅仅对应于一个DSA密钥。 gendsa指令用来从现有的DSA参数中生成DSA密钥,使用相同的DSA参数可以生成不同的DSA密钥原创 2021-12-06 15:59:00 · 5436 阅读 · 0 评论 -
密码学专题 非对称加密算法指令概述 DH算法指令
DH概述用于密钥交换的公开算法,广泛应用于各种安全协议 SSL协议同样支持DH算法 DH算法使用之前需要预先共享两个参数,本原元g和模n,这两个参数影响到算法的安全性,因此需要预先生成并检测其安全性 生成这些必要参数和管理这些参数的指令dhparam、gendh和dh 注意事项:DH算法本身不定义加密和解密的操作,只是单纯的提供一个安全交换或者生成共同数据加密密钥(用于对称加密的会话密钥)的方法 OpenSSL也没有提供利用DH进行加密和解密操作的指令和生成DH的指令,只提供了生成DH参数和对原创 2021-12-06 15:04:07 · 3634 阅读 · 0 评论 -
密码学专题 非对称加密算法指令概述 RSA
非对称加密算法也称为公开密钥算法,其解决了对称加密算法密钥需要预分配的难题,使得现代密码学的研究和应用取得了重大发展。 非对称加密算法的基本特点如下: 加密密钥和解密密钥不相同; 密钥对中的一个密钥可以公开(称为公开密钥); 根据公开密钥很难推算出私人密钥。 根据非对称加密算法的这些特点,我们可以使用非对称加密算法进行数字签名、密钥交换及数据加密等。但是,由于非对称加密算法的加密速度相对于对称加密算法来说慢很多,所以一般不直接用于大量数据的加密,而是用于数据加密密钥的交换和数字签名。并非所原创 2021-12-06 13:30:40 · 1529 阅读 · 0 评论 -
STL源码剖析 算法开篇
STL源码剖析 算法章节 算法总览_CHYabc123456hh的博客-优快云博客质变算法质变算法 - 会改变操作对象的数值,比如互换、替换、填写、删除、排列组合、分隔、随机重排、排序等#include <iostream>#include <vector>int main(){ int ia[] = {22,30,20,34,45,64,34,56,75,34}; std::vector<int>iv(ia,ia+(sizeof (ia原创 2021-11-27 17:25:41 · 572 阅读 · 0 评论 -
STL源码剖析 deque双端队列 概述
vector是单向开口的连续线性空间,deque是一种双向开口的连续线性空间。 deque可以在头尾两端分别进行元素的插入和删除操作vector和deque的差异 1,deque允许常数时间内对于头端元素进行插入和删除操作 2,deque没有所谓容量(capacity)的概念,因为它是动态的以分段连续空间组合而成的,随时可以增加一段空间,将其衔接起来。deque不会发生vector那样的“因旧的空间不足而重新配置一段内存区间,然后进行元素的复制和旧的空间的释放”,因此deque不具备所谓的空.原创 2021-11-22 10:24:03 · 1243 阅读 · 0 评论 -
STL源码剖析 simple_alloc|构造和析构共用部分的代码
template<class T,class Alloc>class simple_alloc{public: static T* allocate(std::size_t n){ return 0==n?0:(T*)Alloc::allocate(n * sizeof(T)); } static T* allocate(void){ return (T*)Alloc::allocate(sizeof (T)); } .原创 2021-11-21 15:45:53 · 508 阅读 · 0 评论 -
密码学专题 对称加密算法
一般来说,使用OpenSSL对称加密算法有两种方式,一种是使用API函数的方式,一种是使用OpenSSL提供的对称加密算法指令方式。本书将介绍对称加密算法的指令方式 OpenSSL的对称加密算法指令主要用来对数据进行加密和解密处理,输入输出的方式主要是文件,当然,也可以是默认的标准输入输出设备。 OpenSSL基本上为所有其支持的对称加密算法都提供了指令方式的应用,这些应用指令的名字基本上都是以对称加密算法本身的名字加上位数、加密模式或其他属性组合而成。比如DES算法的CBC模式,其对应的指令就是des原创 2021-11-19 22:21:57 · 3645 阅读 · 0 评论 -
密码学专题 口令输入的方式
虽然口令的安全性很值得担忧,但是口令在OpenSSL中是经常使用的,这是没有办法替代的一种简易的保护数据的方法。 OpenSSL中使用口令的地方很多,比如密钥的加密和解密,等等。OpenSSL的指令提供了多种灵活的口令输入方法,但是,正是因为方法太多了,反而令很多使用者觉得迷惑不解。 在OpenSSL的指令中,通常通过“-pasin”或者“-pasout”的参数来输入口令,这些参数的形式有5种,分别对应5种不同的口令获取途径。1, 提示输入最简单的,也就是默认的,是从指令行界面提示输入口令。一般来原创 2021-11-15 16:22:31 · 3902 阅读 · 0 评论