TreeMind树图在线AI思维导图
当前位置:树图思维导图模板高校与高等教育其他学科boringssl算法思维导图

boringssl算法思维导图

  收藏
  分享
免费下载
免费使用文件
做我的猫 浏览量:202022-12-30 10:38:44
已被使用0次
查看详情boringssl算法思维导图

树图思维导图提供 boringssl算法 在线思维导图免费制作,点击“编辑”按钮,可对 boringssl算法  进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:ecc9066d8db7a51ef95cadb9a00f13d1

思维导图大纲

boringssl思维导图模板大纲

添加套件

国密算法套件结构

子主题 4

(s3_lib.c) 基于openssl源码开发的天安项目中涉及套件 密钥加密传输 ECC 密钥磋商 ECDH

(tls1.h) 协商套件ECC-SM4-SM3 TLS1_TXT_ECC_WITH_SM4_SM3

(tls1.h) 协商套件ECDHE-SM4-SM3 TLS1_TXT_ECDHE_WITH_SM4_SM3

(tls1.h) TLS1_CK_ECC_WITH_SM4_SM3

(tls1.h) TLS1_CK_ECDHE_WITH_SM1_SM3

(ssl_local.h) SSL_KSM2

(ssl_local.h) SSL_KSM2DH

(ssl_local.h) SSL_aSM2DSA

(ssl_local.h) SSL_SM4

(ssl_local.h) SSL_SM3

(tls1.h) SM1_1_VERSION

(ssl_local.h) SSL_HIGH

(ssl_local.h) SSL_HANDSHAKE_MAC_SM3

(ssl_local.h) TLS1_PRF_SM3

(ssl_cipher.cc) 需在boringssl中新增套件

(ssl_cipher.cc) 在boringssl下拟添加套件详细信息

新增kSM2算法别名和应用规则

(tls1.h)声明套件名称 TLS1_TXT_ECC_WITH_SM4_SM3 TLS1_CK_ECC_WITH_SM4_SM3

声明算法协商宏定义 TLS1_CK_ECDHE_WITH_SM4_SM3 TLS1_CK_ECC_WITH_SM4_SM3

ssl文件夹下(internal.h)声明套件列表中各类算法 SSL_KSM2 SSL_aSM2DSA SSL_SM4 SSL_SM3

需要先安装LLVM、go语言到系统环境变量Path,后修改上述两个文件objects.txt和obj_mac.num 要重新生成上述三个文件,请运行脚本 go run objects.go(boringssl)

【nid.h】是为C中所有内置OID定义宏的头

【obj_dat.h】包含与内置OID本身对应的ASN1_OBJECT 以及用于按短名称、OID等进行搜索的查找表。

【obj_mac.num】是每个OID的NID值列表。这是一个输入/输出 文件,以便NID值在重新生成过程中保持稳定。

【objects.txt】包含所有内置OID的列表。它由【objects.go】处理输出【obj_mac.num】【obj_dat.h】和【nid.h】

(evp.h+evp_local.h) openssl中的EVP_MD 结构体

(internal.h+digest.h) boringssl中的EVP_MD 结构体

evp定义方法

openssl\evp.h ---> boringssl\ciper.h

根据openssl中的evp_lib.c对应修改boringssl下src\crypto\fipamodule\cipher.c

修改boringssl下的cipher.h

(evp_do_all.c)在总套件列表中新增算法模式

(cipher_extra.c) EVP_get_cipherbynid

(cipher_extra.c) EVP_get_cipherbyname

boringssl中evp_pkey_asn1_find的实现及声明

向kASN1Methods数组中新增sm2_asn1_meth

sm2_asn1_meth具体实现

sm2_asn1_meth宏声明

EVP_PKEY_SM2指定的数值NID_sm2

NID_sm2表示值

向objects.txt中新增sm2\sm3算法注册

向evp_methods新增sm2_pkey_meth

sm2_pkey_meth具体实现

sm2_pkey_meth宏声明

注册算法

(s3_lib.c) 天安中使用engine机制实现SM2引擎或SM4引擎 使用ENGINE_get_cipher_engine方法加载NID_sm4_cbc

(ssl_ciph.c) 每个密码的NID表,如SSL_SM4对应的NID为NID_sm4_cbc

openssl对应算法索引

相比天安openssl中table对应表的形式,boringssl中采用选择开关对应

(obj_mac.h) NID_sm4_cbc声明 SSL_SM4声明

(ssl_local.h) NID_sm4_cbc 实际代表数值

(obj.dat.h) 序列话OID各类声明

(eng_openssl.c) 3、实现ciphers函数 ciphers函数是配置算法结构初始化函数

使用openssl的引擎API注册和设置sm4引擎

(eng_openssl.c) 原生主接口定义处

(eng_openssl.c) 1、修改定义好的openssl主接口

(eng_openssl.c) 2、定义bind函数

(eng_openssl.c) 原生初始化算法结构函数定义处

(openssl/evp.h) 对应上处的keygen

(crypto/evp.h) 天安中对原生算法结构的改动

5、分别实现sm4_init函数体、sm4_func函数体

(evp.h) 4、修改原生定义算法结构evpcipher_st 在算法结构中,定义了如下信息 (1)指明了算法ID,由于我使用的openssl是1.0版本,还不支持sm4算法,目前只 能使用aes的id来代替。 (2) 定义了key和iv的长度,都为16字节 (3)定义了sm4_init 函数,用于初始化sm4算法,包括key 和id。 (4) 定义了sm4_func函数,用于sm4算法的加解密的实现。 (5) 定义了sm4_ctx_t 结构的大小,这个结构体中包括了sm4密钥和加解密标志。 (6)其他没有用到的元素都置NULL

了解engine机制

(conf_sap.c) engine配置初始化

新增evp_sm3

摘要列表新增sm3

对比boring处新增涉及NID_sm3

加入总NID数值表中加入NID_sm3

NID_SM3数值来源

相关思维导图模板

《被算法操控的生活:重新定义精准广告、大数据和AI》思维导图思维导图

树图思维导图提供 《被算法操控的生活:重新定义精准广告、大数据和AI》思维导图 在线思维导图免费制作,点击“编辑”按钮,可对 《被算法操控的生活:重新定义精准广告、大数据和AI》思维导图  进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:0c91e73ff7775b398b574ad797b0c912

零基础学js逆向技巧教学思维导图

树图思维导图提供 零基础学js逆向技巧教学 在线思维导图免费制作,点击“编辑”按钮,可对 零基础学js逆向技巧教学  进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:7f0d6ce39d97cb189fea67dfabf88da6