2021SC@SDUSC
文章平均质量分 90
神说未
major in Cryptanalysis
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
山东大学软件工程应用与实践——GMSSL开源库(十三)——总结
2021SC@SDUSC目录关于密码关于OPENSSL\GMSSL关于自己写了这么多篇文章,也该最后做个总结了。这学期无论是课程也好,写这些文章也好,对密码、对openssl、对gmssl都有了相应的一定的认识。作为软件工程应用与实践这门课的最后一篇文章,我将总结一下我在这学期的所学、所理解、所感悟。关于密码有幸认识一位公司里的前辈领导,他曾经问过我:“能用一句话概括密码吗?”我当时想了很久,感觉并没有能得到一个比较合适的答案。最后前辈告诉了我他对于密码的理解,即“让正确的的人看见正确的事”。回去原创 2021-11-29 15:50:27 · 3995 阅读 · 0 评论 -
山东大学软件工程应用与实践——GMSSL开源库(十二)——浅尝SM3
2021SC@SDUSC标题先介绍一下HASH吧SM3算法大致过程GMSSL中SM3算法的实现小结先介绍一下HASH吧Hash,一般翻译做散列、杂凑,或音译为哈希,是把任意长度的输入(又叫做预映射pre-image)通过散列算法变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,所以不可能从散列值来确定唯一的输入值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。(来自百度百科)哈希函数由于其原创 2021-11-26 11:07:02 · 4542 阅读 · 0 评论 -
山东大学软件工程应用与实践——GMSSL开源库(十一)——重要的大素数
2021SC@SDUSC目录大素数产生的思想生成大素数的代码实现小结大素数产生的思想在所有的密码算法中,甚至比大整数还要重要的就是大素数。在经典RSA算法中大素数起着至关重要的作用、SM9算法中所用到的有限域问题、数学方面的难解问题等,大都依托于素数特别是大素数,所以大素数的产生、验证、计算等都是密码学主要关注的问题,特别是在程序中代码的快速实现。大素数的第一个特征就是“大”!首先如何生成“大数”,也就是我上一篇提到的big number,就是一个非常值得研究的问题。在密码学中,为了保证安全性,这原创 2021-11-18 15:36:55 · 732 阅读 · 0 评论 -
山东大学软件工程应用与实践——GMSSL开源库(十)——重要的大整数
2021SC@SDUSC文章标题BIGNUM的结构大整数的加减法(绝对值加减)绝对值加减带符号加减大整数的乘法经典乘法递归和comba乘法小结无论是SM2、SM9等国密算法还是以RSA为代表的国际标准算法或者任何其他密码算法,对于大整数都有一定的要求,例如RSA中公钥的生成,需要用到大素数的乘法模幂等运算。而像1024位这种大整数的运算,肯定不能用普通的整数的加减乘除运算方法,一个是int类型的变量不能容纳这么长的数,另一个是考虑到计算机的计算效率问题。既能实现大整数“big number”加减乘除乘方原创 2021-11-15 20:14:49 · 862 阅读 · 0 评论 -
山东大学软件工程应用与实践——GMSSL开源库(九)——SM9密钥封装与公钥加密的源代码分析
2021SC@SDUSC文章目录int SM9_wrap_key(密钥的封装)int SM9_unwrap_key(密钥的解封)int SM9_encrypt(公钥加密算法)int SM9_decrypt(解密算法)小结为了便于理解,在把流程图再次贴在每一个函数标题下。int SM9_wrap_key(密钥的封装)参数定义:int ret = 0; EC_GROUP *group = NULL; EC_POINT *Ppube = NULL; EC_POINT *C = NULL; E原创 2021-10-27 16:58:43 · 2001 阅读 · 0 评论 -
山东大学软件工程应用与实践——GMSSL开源库(八)——SM9密钥封装机制与公钥加密算法
2021SC@SDUSC文章目录概念符合及辅助算法密钥封装与公钥加密的算法流程密钥封装算法密钥解封算法密钥解封算法的正确性证明公钥加密算法解密算法小结概念密钥封装操作模式是NIST制定的最新的一类分组密码工作模式。密钥封装模式使用AES或三种DES作为底层加密算法。密钥封装的目的是为通信双方安全地交换对称密钥,而通信双方事先已共享有一组称为密码加密密钥的对称密钥。通常一个协议需要调用不同层次的密钥,其中低级密钥使用频率高,为了抵抗攻击需要频繁更换。而高级密钥使用频率低,受到密码攻击的威胁相对较少。原创 2021-10-25 20:24:51 · 3923 阅读 · 1 评论 -
山东大学软件工程应用与实践——GMSSL开源库(七)——SM9密钥交换的源代码分析
2021SC@SDUSC文章目录int SM9_generate_key_exchangeSM9_compute_share_key_Aint SM9_compute_share_key_B小结把密钥交换流程图重新放到这里,供下文代码分析时更好理解。以下代码在\GmSSL-master\crypto\sm9\sm9_exch.c中int SM9_generate_key_exchange进行密钥交换前的一系列准备工作1、 生成[1,n-1]的随机数rdo { if (!BN_rand_原创 2021-10-18 17:18:29 · 1485 阅读 · 2 评论 -
山东大学软件工程应用与实践——GMSSL开源库(六)——SM9密钥交换协议
2021SC@SDUSC文章目录基本概念符号及辅助算法SM9密钥交换协议基本概念1976年,Diffie和Hellman在其题为《密码学的新方向》的论文中首次给出了公钥密码学的定义,并提出了Diffie-Hellman密钥交换算法。该算法解决了对称密码体制中的密钥分发问题,使得通信双方可以通过公开信道安全地交换共享密钥。使用SM9通信的双方通过对方的标识和自身的私钥,经过两次或者可选的三次信息传递过程,计算获取一个由双方共同决定的共享秘密密钥。该密钥可以作为对称密码算法的会话密钥,其中可选步骤用来实原创 2021-10-18 11:23:10 · 1859 阅读 · 1 评论 -
山东大学软件工程应用与实践——GMSSL开源库(五)——SM9密钥的生成
2021SC@SDUSC目录前言源文件中函数的分析SM9_hash1 *SM9_MASTER_KEY_extract_key*check if mastercheck hash1 and set hash1 md **if private**check schemeSM9_extract_public_key与SM9_extract_private_keySM9PrivateKey_get_public_key小结前言由前文可知,SM9算法的数字签名的生成与密钥的生成密不可分,在SM9_SignFin原创 2021-10-13 14:59:12 · 2209 阅读 · 2 评论 -
山东大学软件工程应用与实践——GMSSL开源库(四)——SM9数字签名算法及验证的源代码分析
2021SC@SDUSC一、引言上一篇文章主要分析了SM9的数字签名算法和相对应的签名验证算法,本篇将结合GMSSL密码库的源代码,进行进一步的相关代码分析。二、密钥的生成数字签名与签名验证相关代码1、判定函数2、签名的初始化函数 int SM9_SignInit(EVP_MD_CTX *ctx, cons原创 2021-10-11 10:59:20 · 4492 阅读 · 1 评论 -
山东大学软件工程应用与实践——GMSSL开源库(三)——SM9数字签名算法及验证
2021SC@SDUSC文章目录符号及辅助算法源代码用户A私钥的生成过程签名主公钥的生成数字签名的生成签名的认证总结符号及辅助算法下面对在SM9算法中用到的符号及函数进行了声明源代码在源程序\GmSSL-master\crypto\sm9\sm9_lcl.h中,找到了针对这些全局变量的定义:私钥提取算法类型:所用到的椭圆曲线类型:椭圆曲线上的双线性对类型(即eid):不同的嵌入度:定义最大明密文长度:源文件中还有其他函数及变量声明,在此不一一赘述。用户A私钥的生成过程原创 2021-10-08 10:59:02 · 4827 阅读 · 0 评论 -
山东大学软件工程应用与实践——GMSSL开源库(二)——浅尝SM9
2021SC@SDUSC概述为了降低公开密钥系统中密钥和证书管理的复杂性,以色列科学家、RSA算法发明人之一Adi Shamir在1984年提出了标识密码(Identity-Based Cryptography)的理念。标识密码将用户的标识(如邮件地址、手机号码、QQ号码等)作为公钥,省略了交换数字证书和公钥过程,使得安全系统变得易于部署和管理,非常适合端对端离线安全通讯、云端数据加密、基于属性加密、基于策略加密的各种场合。2008年标识密码算法正式获得国家密码管理局颁发的商密算法型号:SM9(商密九号原创 2021-10-04 19:25:37 · 5106 阅读 · 0 评论 -
山东大学软件工程应用与实践——GMSSL开源库(一) ——WINDOWS下GMSSL的安装与编译的超详细保姆级攻略
2021SC@SDUSCGMSSL简介GmSSL是一个开源的密码工具箱,支持SM2/SM3/SM4/SM9/ZUC等国密(国家商用密码)算法、SM2国密数字证书及基于SM2证书的SSL/TLS安全通信协议,支持国密硬件密码设备,提供符合国密规范的编程接口与命令行工具,可以用于构建PKI/CA、安全通信、数据加密等符合国密标准的安全应用。GmSSL项目是OpenSSL项目的分支,并与OpenSSL保持接口兼容。因此GmSSL可以替代应用中的OpenSSL组件,并使应用自动具备基于国密的安全能力。GmSSL原创 2021-09-29 11:22:59 · 3302 阅读 · 7 评论
分享