CN114915405B - 一种基于OpenSSL的国密算法硬件加速方法 - Google Patents

一种基于OpenSSL的国密算法硬件加速方法 Download PDF

Info

Publication number
CN114915405B
CN114915405B CN202210828864.7A CN202210828864A CN114915405B CN 114915405 B CN114915405 B CN 114915405B CN 202210828864 A CN202210828864 A CN 202210828864A CN 114915405 B CN114915405 B CN 114915405B
Authority
CN
China
Prior art keywords
decryption
encryption
cpu model
hardware acceleration
openssl
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202210828864.7A
Other languages
English (en)
Other versions
CN114915405A (zh
Inventor
李帅
张志成
杨沙洲
赵峰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kirin Software Co Ltd
Original Assignee
Kirin Software Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Kirin Software Co Ltd filed Critical Kirin Software Co Ltd
Priority to CN202210828864.7A priority Critical patent/CN114915405B/zh
Publication of CN114915405A publication Critical patent/CN114915405A/zh
Application granted granted Critical
Publication of CN114915405B publication Critical patent/CN114915405B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/122Hardware reduction or efficient architectures
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

本发明涉及一种基于OpenSSL的国密算法硬件加速方法,获取CPU型号,判断是否为兆芯相关的CPU型号,判断其是否支持用于硬件加速的GMI指令,如果不支持GMI指令,正常调用OpenSSL的evp接口进行软加解密;如果支持GMI指令,初始化支持硬件加速加解密的相关参数,调用相关接口进行数据传输的硬件加速加解密;本方法可以使OpenSSL实现硬件加速加解密,处理速度提高明显。

Description

一种基于OpenSSL的国密算法硬件加速方法
技术领域
本专利申请属于硬件加解密技术领域,更具体地说,是涉及一种基于OpenSSL的国密算法硬件加速方法。
背景技术
随着互联网、物联网的快速发展,网络和信息安全事件不断出现,因此信息安全越来越受到各个行业的广泛重视,而密码学算法是信息安全的核心技术和基础支撑,可以说是整个信息安全的灵魂所在。
国密算法是指由国家密码管理局颁布的一系列密码学算法标准,包括SM1、SM2、SM3、SM4、SM7、SM9以及祖冲之密码算法(ZUC)等一系列的密码算法。其中,SM1、SM4、SM7以及ZUC属于对称加密算法,SM2、 SM9属于非对称密码算法,而SM3是密码杂凑算法,也即常见的哈希算法。
OpenSSL是一套应用广泛的、开源的支持传输层安全协议的密码学基础库和全功能软件包,也已经支持国密SM2、SM3、SM4等加密算法。
硬件加速则需要兆芯硬件支持,由兆芯设计实现的GMI是一组硬件加速指令集,目前已经实现了两条CPU指令,分别用于加速国密算法SM3和SM4。
目前的OpenSSL高版本虽然已经支持国密算法,但仅仅只能做到软加解密,计算速度慢,性能相对较低。无法做到硬件加速加解密。
软加解密,完全由软件实现的方式,不需要其他的硬件设备进行的加解密,往往被称作软加解密。
硬件加速加解密,是指在软加解密的基础上使用硬件设备的高性能等特点,把原本比较复杂的编码算法,进行硬件指令化,简化操作复杂度,提高计算速度和性能。
发明内容
本发明需要解决的技术问题是提供一种基于OpenSSL的国密算法硬件加速方法,以使OpenSSL实现硬件加速加解密。
为了解决上述问题,本发明所采用的技术方案是:
一种基于OpenSSL的国密算法硬件加速方法,包括如下步骤:
步骤S1、初始化OpenSSL,输入加解密类型;
步骤S2、获取CPU型号,判断是否为兆芯相关的CPU型号;
步骤S3、如果不属于兆芯相关的CPU型号,执行步骤S5;
步骤S4、如果属于兆芯相关的CPU型号,判断其是否支持用于硬件加速的GMI指令,如果不支持GMI指令,执行步骤S5;如果支持GMI指令,执行步骤S6;
步骤S5、正常调用OpenSSL的evp接口进行软加解密;
步骤S6、初始化支持硬件加速加解密的相关参数,调用相关接口进行数据传输的硬件加速加解密;
步骤S7、步骤S5或步骤S6执行后(硬件加速加解密或软加解密执行后),释放空间。
本发明技术方案的进一步改进在于:步骤S1中,加解密类型是软加解密类型,即OpenSSL中的SM3,以及SM4的ecb、cbc、cfb、ofb、ctr五种模式加解密类型。
本发明技术方案的进一步改进在于:步骤S2中,通过调用汇编语言获取CPU型号,与兆芯相关的CPU型号包括ZX-C、ZX-D和ZX-E。
本发明技术方案的进一步改进在于:步骤S6中,硬件加速加解密适用的算法为SM3算法和SM4算法。
本发明技术方案的进一步改进在于:SM4算法包括五种模式,分别是ecb、cbc、cfb、ofb、ctr,针对上述五种模式对应执行ecb接口调用、cbc接口调用、cfb接口调用、ofb接口调用、ctr接口调用。
由于采用了上述技术方案,本发明取得的有益效果是:在使用硬件加速后,处理速度明显可以提高很大的性能。
附图说明
图1为本发明的流程示意图。
具体实施方式
下面结合实施例对本发明做进一步详细说明。
本发明公开了一种基于OpenSSL的国密算法硬件加速方法,参见图1,包括如下步骤:
步骤一、首先经过开始,初始化OpenSSL,输入加解密类型;
步骤二、获取CPU型号,判断是否为兆芯相关的CPU型号;
步骤三、如果不属于兆芯相关的CPU型号,执行步骤五;
步骤四、如果属于兆芯相关的CPU型号,判断其是否支持用于硬件加速的GMI指令,如果不支持GMI指令,执行步骤五;如果支持GMI指令,执行步骤六;
步骤五、正常调用OpenSSL的evp接口进行软加解密;
步骤六、初始化支持硬件加速加解密的相关参数,调用相关接口进行数据传输的硬件加速加解密;
步骤七、步骤五或步骤六执行后(硬件加速加解密或软加解密执行后),释放空间,至此结束。
步骤一中,加解密类型用来选择国密的指令代码,具体的,加解密类型是软加解密类型,即OpenSSL中的SM3,以及SM4的ecb、cbc、cfb、ofb、ctr五种模式加解密类型。
步骤二中,通过调用汇编语言获取CPU型号,与兆芯相关的CPU型号包括ZX-C、ZX-D和ZX-E。
步骤六中,硬件加速加解密适用的算法为SM3算法和SM4算法。
SM4算法包括五种模式,分别是ecb、cbc、cfb、ofb、ctr,针对上述五种模式对应执行ecb接口调用、cbc接口调用、cfb接口调用、ofb接口调用、ctr接口调用。
本发明在设计时,主要是使用OpenSSL的原生EVP接口,而由于硬件加速是由兆芯设计实现,只针对兆芯相关的CPU才可以使用,所以首先需要判断是否为可支持此功能的CPU型号,对于不支持硬件加速的则进行原有的加解密流程进行。
总体思路是:
1.通过对CPU型号的判断确认是否支持硬件加速, 若支持则进行硬件加速流程加解密,若不支持则进行原有的流程调用。
2.使用OpenSSL的原生EVP接口,针对SM3和SM4算法,对其原生EVP接口进行改造,即增加支持硬件加速的相关参数初始化工作,以及调用硬件加速加解密的接口。在不影响原生EVP接口调用原有功能的情况下,智能地选择是使用软加解密还是硬件加速加解密。
本发明已成功应用于麒麟V10系统中,已使用此版本的OpenSSL密码库。
相关代码如下:
1.判断是否支持硬件加速,相关接口调用:
int is_zx = 0;
int cpu_is_support_gmi()
{
unsigned int eax = 0;
unsigned int edx = 0;
unsigned char family,model,stepping;
int is_support_gmi = 0;
// to check zx's FMS
unsigned int leaf = 0x1;
asm volatile("cpuid":"=a"(eax):"0"(leaf):"ebx","ecx");
family = (eax & 0xf00) >> 8; // bit 11-08
model = (eax & 0xf0) >> 4; // bit 7-4
stepping = eax & 0xf; // bit 3-0
//for zx-d/zx-e
if((family == 7)&(model == 0xb))
{
is_support_gmi = 1;
}
// for zx-c
else if(((family == 6)&(model==0xf)&(stepping>=0xe))||((family==6)&(model==9)&(stepping>=0)))
{
is_support_gmi = 1;
}
//It doesn't support SM3/SM4 instructions
else
{
is_support_gmi = 0;
}
return is_support_gmi;
}
此部分代码通过调用汇编语言获取CPU信息并记录在eax变量中,进而判断出CPU型号,在支持硬件加速的CPU型号判断中使用参数is_support_gmi记录,如支持硬件加速则赋值为1,否则赋值为0。
2.对算法SM3,定义支持硬件加速的算法标记,通过判断是否支持硬件加速以及初始化后进行后续兆芯GMI指令加速,相关代码:
#define SM3_A_ZX 0x6f168073UL
#define SM3_B_ZX 0xb9b21449UL
#define SM3_C_ZX 0xd7422417UL
#define SM3_D_ZX 0x00068adaUL
#define SM3_E_ZX 0xbc306fa9UL
#define SM3_F_ZX 0xaa383116UL
#define SM3_G_ZX 0x4dee8de3UL
#define SM3_H_ZX 0x4e0efbb0UL
is_zx= cpu_is_support_gmi();
int sm3_init(SM3_CTX *c)
{
memset(c, 0, sizeof(*c));
if (is_zx)
{
c->A = SM3_A_ZX;
c->B = SM3_B_ZX;
c->C = SM3_C_ZX;
c->D = SM3_D_ZX;
c->E = SM3_E_ZX;
c->F = SM3_F_ZX;
c->G = SM3_G_ZX;
c->H = SM3_H_ZX;
}
else
{
c->A = SM3_A;
c->B = SM3_B;
c->C = SM3_C;
c->D = SM3_D;
c->E = SM3_E;
c->F = SM3_F;
c->G = SM3_G;
c->H = SM3_H;
}
return 1;
}
void sm3_block_data_order(SM3_CTX *ctx, const void *p, size_t num)
{
if (is_zx)//支持硬件加速发送硬件指令
{
uint64_t in, out;
in = (uint64_t)p;
out = (uint64_t)(&(ctx->A));
//利用汇编向CPU发送GMI指令,进行硬件加速
__asm__ __volatile__(
"movq %2, %%rdi \n"
"movq %0, %%rsi \n"
"movq %1, %%rcx \n"
"movq $-1, %%rax \n"
"movq $0x20, %%rbx \n"
".byte 0xf3,0x0f,0xa6,0xe8"
:
:"r"(in),"r"(num),"r"(out)
:"%rax","memory"
);
}
else {
……//此处为原有不支持硬件加速的软件算法流程
}
}
此部分代码对SM3算法进行初始化通过is_zx获取是否支持硬件加速,对于支持硬件加速的使用新定义的SM3_A_ZX等值进行初始化,不支持硬件加速的话按原有定义初始化,最后点用函数sm3_block_data_order进行最终的算法计算。
3.对于SM4算法同样需要判断是否支持硬件加速,SM4算法包含了五种不同模式,分别是ecb、cbc、cfb、ofb、ctr,所以针对不同模式都需要判断是否支持硬件加速并且初始化相关支持硬件加速参数,最后调用兆芯GMI指令进行硬件加速加解密。相关调用:
SM4算法使用GMI指令加速函数
void gmi_sm4_encrypt_full(unsigned char *out, const unsigned char *in,const SM4_KEY *key, uint64_t len,union ctrl c_w, unsigned char *iv)
{
uint64_t InTemp, OutTemp, KeyTemp, cword, cnt;
/* What the gmi needs is original key, not round key */
key = orig_key;
//参数赋值
InTemp = (uint64_t)in;
OutTemp = (uint64_t)out;
KeyTemp = (uint64_t)key;
cword = (uint64_t)c_w.pad[0];
cnt = ((len - 1)/16)+1;
//利用汇编向CPU发送指令进行加速加解密
__asm__ __volatile__(
"movq %0, %%rdi \n"
"movq %1, %%rsi \n"
"movq %2, %%rbx \n"
"movq %3, %%rdx \n"
"movq %4, %%rcx \n"
"movq %5, %%rax \n"
".byte 0xf3,0x0f,0xa7,0xf0 \n"
:
:"r"(OutTemp),"r"(InTemp), "r"(KeyTemp),"r"(iv), "r"(cnt),"r"(cword)
:"%rcx","rdi","rsi","rbx","rdx","rax","memory"
);
return;
}
此部门代码主要是利用汇编语言的方法向CPU发送GMI指令,进行硬件加速加解密方法。
3.1 判断是否支持硬件加速:
static int gmi_available(void)
{
unsigned int eax = 0;
unsigned int edx = 0;
unsigned char family, model;
/* Diff ZXC with ZXD */
unsigned int leaf = 0x1;
get_cpu_fms(eax, leaf);
family = (eax & 0xf00) >> 8;
model = (eax & 0xf0) >> 4;
//is ZX-D or ZX_E
if ((family == 7)&&(model == 0xb)) {
f_zxc = 0;
edx = padlock_capability();
padlock_use_ccs = ((edx & (0x3 << 4)) == (0x3 << 4));
}
//is ZX-C
else if (((family == 6)&&(model == 0xf)) ||
((family == 6)&&(model == 9))) {
f_zxc = 1;
edx = padlock_capability();
padlock_use_ccs = ((edx & (0x3 << 4)) == (0x3 << 4));
}
//不支持硬件加速
else {
padlock_use_ccs = 0;
}
return padlock_use_ccs;
}
此部分代码通过调用汇编语言获取CPU信息并记录在eax变量中,进而判断出CPU型号,使用参数f_zxc判断是否为ZX-C型号,如是此型号赋值为1,否则为0.在支持硬件加速的CPU型号判断中使用参数padlock_use_ccs记录,如支持硬件加速赋值为不为0的值,否则赋值为0。
3.2 ecb接口调用:
static void sm4_ecb_encrypt(const unsigned char *in, unsigned char *out, const SM4_KEY *key, const int enc)
{
if (padlock_use_ccs) //是否支持硬件加速
{
union ctrl ctrl_word = {0};
ctrl_word.b.encdec = !enc;//加解密类型
ctrl_word.b.func = CCS_ENCRYPT_FUNC_SM4;//使用的算法
ctrl_word.b.mode = 1<<(SM4_ECB_MODE-1);//算法类型
ctrl_word.b.digest = 0;
gmi_sm4_encrypt_full(out, in, key, 16, ctrl_word, NULL);
}
//原有的加解密流程
else {
if (enc)
SM4_encrypt(in, out, key);
else
SM4_decrypt(in, out, key);
}
}
此部分代码为SM4的ecb模式接口,通过padlock_use_ccs值判断后续流程,若支持硬件加速进行参数初始化,之后传输数据进行硬件加速,否则使用原来软件加解密流程。
3.3 cfb接口调用:
static void sm4_cfb128_encrypt(const unsigned char *in, unsigned char*out, size_t length, const SM4_KEY *key, unsigned char *ivec, int *num, constint enc)
{
if (padlock_use_ccs)//是否支持硬件加速
{
union ctrl ctrl_word = {0};
ctrl_word.b.encdec = !enc; //加解密类型
ctrl_word.b.func = CCS_ENCRYPT_FUNC_SM4; //使用的算法
ctrl_word.b.mode = 1<<(SM4_CFB_MODE-1); //算法类型
ctrl_word.b.digest = 0;
gmi_sm4_encrypt_full(out, in, key, length, ctrl_word,ivec);
}
else //原有的加解密流程
CRYPTO_cfb128_encrypt(in, out, length, key, ivec, num, enc,(block128_f)SM4_encrypt);
}
3.4 cbc接口调用:
static void sm4_cbc_encrypt(const unsigned char *in, unsigned char *out, size_t len, const SM4_KEY *key, unsigned char *ivec, const int enc)
{
if (padlock_use_ccs) //是否支持硬件加速
{
union ctrl ctrl_word = {0};
ctrl_word.b.encdec = !enc; //加解密类型
ctrl_word.b.func = CCS_ENCRYPT_FUNC_SM4; //使用的算法
ctrl_word.b.mode = 1<<(SM4_CBC_MODE-1); //算法类型
ctrl_word.b.digest = 0;
gmi_sm4_encrypt_full(out, in, key, len, ctrl_word, ivec);
}
//原有的加解密流程
else {
if (enc)
CRYPTO_cbc128_encrypt(in, out, len, key, ivec,
(block128_f)SM4_encrypt);
else
CRYPTO_cbc128_decrypt(in, out, len, key, ivec,
(block128_f)SM4_decrypt);
}
}
3.5 ofb接口调用:
static void sm4_ofb128_encrypt(const unsigned char *in, unsigned char*out, size_t length, const SM4_KEY *key, unsigned char *ivec, int *num)
{
if (padlock_use_ccs) //是否支持硬件加速
{
union ctrl ctrl_word = {0};
ctrl_word.b.encdec = 0; //加解密类型
ctrl_word.b.func = CCS_ENCRYPT_FUNC_SM4; //使用的算法
ctrl_word.b.mode = 1<<(SM4_OFB_MODE-1); //算法类型
ctrl_word.b.digest = 0;
gmi_sm4_encrypt_full(out, in, key, length, ctrl_word,ivec);
}
//原有的加解密流程
else
CRYPTO_ofb128_encrypt(in, out, length, key, ivec, num,(block128_f)SM4_encrypt);
}
3.6 ctr接口调用:
static int sm4_ctr_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
const unsigned char *in, size_t len)
{
unsigned int num = EVP_CIPHER_CTX_num(ctx);
EVP_SM4_KEY *dat = EVP_C_DATA(EVP_SM4_KEY, ctx);
if (padlock_use_ccs) //是否支持硬件加速
{
union ctrl ctrl_word = {0};
ctrl_word.b.encdec = 0; //加解密类型
ctrl_word.b.func = CCS_ENCRYPT_FUNC_SM4; //使用的算法
ctrl_word.b.mode = 1<<(SM4_CTR_MODE-1); //算法类型
ctrl_word.b.digest = 0;
gmi_sm4_encrypt_full(out, in, &dat->ks, len, ctrl_word,EVP_CIPHER_CTX_iv_noconst(ctx));
}
//原有的加解密流程
else {
CRYPTO_ctr128_encrypt(in, out, len, &dat->ks,
EVP_CIPHER_CTX_iv_noconst(ctx),
EVP_CIPHER_CTX_buf_noconst(ctx), &num,
(block128_f)SM4_encrypt);
}
EVP_CIPHER_CTX_set_num(ctx, num);
return 1;
}
使用本发明的方法后,处理速度有了很大的提升,如表1-表4的比对,分别针对16bytes、64 bytes、256 bytes、1024 bytes、8192 bytes、16384 bytes这六种情形,以SM3和SM4-ecb这两种算法为例,进行了针对的测算对比,可以看出本发明在速度提升方面有很大的优势。
表1为使用命令openssl speed -evp sm3得到的未使用硬件加速的SM3算法性能;
Figure DEST_PATH_IMAGE002
表2是使用命令openssl speed -evp sm4-ecb得到的未使用硬件加速的;SM4-ECB模式性能;
Figure DEST_PATH_IMAGE004
表3是使用命令openssl speed -evp sm3得到的使用硬件加速后的SM3算法性能;
Figure DEST_PATH_IMAGE006
表4是使用命令openssl speed -evp sm4-ecb得到的使用硬件加速的SM4-ECB模式性能;
Figure DEST_PATH_IMAGE008
通过表1-表4的对比,以每秒处理1000个字节为例,可以看到数据处理量飙升很多,处理数据加密速度亦增加很多,看出本发明在速度提升方面有巨大的优势。

Claims (1)

1.一种基于OpenSSL的国密算法硬件加速方法,其特征在于,包括如下步骤:
步骤S1、初始化OpenSSL,输入加解密类型;
步骤S2、获取CPU型号,判断是否为兆芯相关的CPU型号;
步骤S3、如果不属于兆芯相关的CPU型号,执行步骤S5;
步骤S4、如果属于兆芯相关的CPU型号,判断其是否支持用于硬件加速的GMI指令,如果不支持GMI指令,执行步骤S5;如果支持GMI指令,执行步骤S6;
步骤S5、正常调用OpenSSL的evp接口进行软加解密;
步骤S6、初始化支持硬件加速加解密的相关参数,调用相关接口进行数据传输的硬件加速加解密;
步骤S7、步骤S5或步骤S6执行后,释放空间;
步骤S6中,硬件加速加解密适用的算法为SM3算法和SM4算法,SM4算法包括五种模式,分别是ecb、cbc、cfb、ofb、ctr,针对上述五种模式对应执行ecb接口调用、cbc接口调用、cfb接口调用、ofb接口调用、ctr接口调用;
步骤S1中,加解密类型是软加解密类型,软加解密类型为OpenSSL中的SM3,以及SM4的ecb、cbc、cfb、ofb、ctr五种模式加解密类型;
步骤S2中,通过调用汇编语言获取CPU型号,与兆芯相关的CPU型号包括ZX-C、ZX-D和ZX-E。
CN202210828864.7A 2022-07-15 2022-07-15 一种基于OpenSSL的国密算法硬件加速方法 Active CN114915405B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210828864.7A CN114915405B (zh) 2022-07-15 2022-07-15 一种基于OpenSSL的国密算法硬件加速方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210828864.7A CN114915405B (zh) 2022-07-15 2022-07-15 一种基于OpenSSL的国密算法硬件加速方法

Publications (2)

Publication Number Publication Date
CN114915405A CN114915405A (zh) 2022-08-16
CN114915405B true CN114915405B (zh) 2022-11-11

Family

ID=82772735

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210828864.7A Active CN114915405B (zh) 2022-07-15 2022-07-15 一种基于OpenSSL的国密算法硬件加速方法

Country Status (1)

Country Link
CN (1) CN114915405B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117632271B (zh) * 2023-12-14 2024-05-28 江苏新质信息科技有限公司 一种硬件加速方法、装置、存储介质及电子设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106411498A (zh) * 2016-12-23 2017-02-15 艾体威尔电子技术(北京)有限公司 一种实现国密算法的方法
CN107395452A (zh) * 2017-06-22 2017-11-24 重庆大学 一种利用软硬件协同技术提高WebServer的HTTPS应用性能的方法
CN107818265A (zh) * 2017-10-23 2018-03-20 中国银行股份有限公司 加密方法、装置和系统
CN111103856A (zh) * 2019-12-18 2020-05-05 宁波和利时信息安全研究院有限公司 一种加密控制方法、装置及系统
CN112631772A (zh) * 2020-12-21 2021-04-09 海光信息技术股份有限公司 密码运算方法、处理器、装置及存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2010258041B2 (en) * 2009-06-12 2014-05-01 Blackberry Limited Methods and apparatus for managing mobile handover

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106411498A (zh) * 2016-12-23 2017-02-15 艾体威尔电子技术(北京)有限公司 一种实现国密算法的方法
CN107395452A (zh) * 2017-06-22 2017-11-24 重庆大学 一种利用软硬件协同技术提高WebServer的HTTPS应用性能的方法
CN107818265A (zh) * 2017-10-23 2018-03-20 中国银行股份有限公司 加密方法、装置和系统
CN111103856A (zh) * 2019-12-18 2020-05-05 宁波和利时信息安全研究院有限公司 一种加密控制方法、装置及系统
CN112631772A (zh) * 2020-12-21 2021-04-09 海光信息技术股份有限公司 密码运算方法、处理器、装置及存储介质

Also Published As

Publication number Publication date
CN114915405A (zh) 2022-08-16

Similar Documents

Publication Publication Date Title
Abadi et al. Mobile values, new names, and secure communication
US9537657B1 (en) Multipart authenticated encryption
US6055316A (en) System and method for deriving an appropriate initialization vector for secure communications
US8577023B2 (en) Encryption processing method, apparatus, and computer program utilizing different types of S-boxes
US20130014267A1 (en) Computer protocol generation and obfuscation
CN110391900A (zh) 基于sm2算法的私钥处理方法、终端及密钥中心
US10963593B1 (en) Secure data storage using multiple factors
Rathee et al. Improved multiplication triple generation over rings via RLWE-based AHE
CN114915405B (zh) 一种基于OpenSSL的国密算法硬件加速方法
US20130067212A1 (en) Securing implementation of cryptographic algorithms using additional rounds
CN111800260B (zh) 兼容rsa及国产商用密码算法的智能密匙签名方法
CN115516454B (zh) 硬件安全模块和系统
CN108063760B (zh) 一种分组加密的方法及其系统、分组解密的方法
CN113452705A (zh) 一种加密通信方法、装置、电子设备和存储介质
US20070277043A1 (en) Methods for Generating Identification Values for Identifying Electronic Messages
CN108737353A (zh) 一种基于数据分析系统的数据加密方法及装置
CN106817216B (zh) 一种基于Zlib库和AES算法的ZIP包解压方法
Weiss Java cryptography extensions: practical guide for programmers
CN115086048B (zh) 数据处理方法、装置、电子设备及可读存储介质
KR20080072345A (ko) 암호화 장치 및 그 방법
US20230169186A1 (en) Method to secure computer code
Han et al. Improved circuit-based PSI via equality preserving compression
CN116383803B (zh) 数据处理方法、装置、计算机设备和存储介质
CN113746812A (zh) 一种数据传输方法、系统、设备以及介质
CN109885309B (zh) 生成用于建立协议栈软件的配置文件的方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant