一种素域Fp下的SM2椭圆曲线公钥加密算法的硬件实现系统技术方案

技术编号:16460116 阅读:138 留言:0更新日期:2017-10-26 00:35
本发明专利技术公开了一种素域Fp下的SM2椭圆曲线公钥加密算法的硬件实现系统。该系统在素域Fp下,采用高层次的模块化方法,对系统进行了合理的划分,将系统划分为多个模块,可以用硬件的方法实现加密消息和解密密文,采用硬件模块复用的方法,通过设置上层复选模块,实现了对随机数生成模块、运算控制模块、比特串处理模块、密钥派生模块、杂凑模块的复用,通过设置下层复选模块,实现了对点乘运算模块、异或运算模块、比特串转换模块、比特串拼接模块的复用,从而提供了一种所用硬件资源更少,成本更低、运行速度更快、结构简单、易于实现的SM2椭圆曲线公钥加密算法的硬件实现系统。

A hardware implementation system of SM2 elliptic curve public key encryption algorithm in prime domain Fp

The invention discloses a hardware implementation system of SM2 elliptic curve public key encryption algorithm in the prime domain Fp. The system in Fp domain, using modular method in high level, the system is divided reasonably, the system is divided into several modules, can use the hardware realization method of encrypted messages and decrypt the ciphertext, using the method of hardware module reuse, by setting the upper check module, the realization of random number generation operation module, control module, bit string multiplexing processing module, key derivation module, hash module, by setting the lower check module, the realization of point multiplication module, XOR operation module, bit string conversion module, bit string multiplexing module connected together, thus providing a with fewer hardware resources and system cost the lower, faster operation, simple structure, easy encryption algorithm SM2 implementation of elliptic curve public key hardware.

【技术实现步骤摘要】
一种素域Fp下的SM2椭圆曲线公钥加密算法的硬件实现系统
本专利技术涉及信息安全领域中的消息加密和解密技术,特别涉及一种素域Fp下的SM2椭圆曲线公钥加密算法的硬件实现系统。
技术介绍
随着网络技术的发展,人们对网络安全问题的关注越来越大。信息加密和解密技术在网络安全领域中应用广泛,可保证信息的安全,防止信息在传输过程中受到攻击,从而被不法分子截取或破坏。SM2是国家密码管理局于2010年12月17日发布的椭圆曲线公钥密码算法,与传统的公钥密码体制(例如RSA密码体制)相比,椭圆曲线密码体制使用相对比较短的密钥就可以达到相同的安全程度。因此,更短的密钥使得椭圆曲线密码体制的应用范围更加广泛。虽然国家密码局早在2010年就公布了SM2椭圆曲线公钥加密算法,但是目前将其用硬件实现的方案还比较少,并且现有的硬件实现方案的硬件资源消耗较大。
技术实现思路
本专利技术所要解决的技术问题是提供一种素域Fp下的SM2椭圆曲线公钥加密算法的硬件实现系统,该系统在素域Fp下,采用高层次的模块化方法,对系统进行了合理的划分,将系统划分为多个模块,采用硬件模块复用的方法,通过设置上层复选模块,实现了对随机数生成模块、运算控制模块、比特串处理模块、密钥派生模块、杂凑模块的复用,通过设置下层复选模块,实现了对点乘运算模块、异或运算模块、比特串转换模块、比特串拼接模块的复用,从而提供了一种所用硬件资源更少,成本更低、运行速度更快、结构简单、易于实现的SM2椭圆曲线公钥加密算法的硬件实现系统。为解决上述技术问题,本专利技术提供一种素域Fp下的SM2椭圆曲线公钥加密算法的硬件实现系统,该系统可以对传输的消息进行加密和解密,该系统所用到的模块包括:SM2主控模块、SM2解析模块、加密控制模块、解密控制模块、上层复选模块、随机数生成模块、运算控制模块、比特串处理模块、密钥派生模块、杂凑模块、下层复选模块、点乘运算模块、异或运算模块、比特串转换模块、比特串拼接模块,其中:所述SM2主控模块:用于与所述SM2解析模块进行通信,进而调用加密控制模块和解密控制模块对消息进行加密和解密;所述SM2解析模块:用于解析所述SM2主控模块发出的命令,确定系统当前时间要实现的是消息加密还是消息解密功能,并将进行消息加密的命令发送给所述加密控制模块,将进行消息解密的命令发送给解密控制模块;所述加密控制模块:用于在收到所述SM2解析模块发送的进行消息加密的命令后,与所述上层复选模块进行通信,通过所述上层复选模块调用所述随机数生成模块、所述运算控制模块、所述比特串处理模块、所述密钥派生模块、所述杂凑模块,通过所述下层复选模块调用所述点乘运算模块、所述异或运算模块、所述比特串转换模块、所述比特串拼接模块,对消息进行加密;所述解密控制模块:用于在收到所述SM2解析模块发送的进行消息解密的命令后,与所述上层复选模块进行通信,通过所述上层复选模块调用所述随机数生成模块、所述运算控制模块、所述比特串处理模块、所述密钥派生模块、所述杂凑模块,通过所述下层复选模块调用所述点乘运算模块、所述异或运算模块、所述比特串转换模块、所述比特串拼接模块,对消息进行解密;所述上层复选模块:用于当系统要进行消息加密时,所述加密控制模块与所述上层复选模块进行通信,通过所述上层复选模块调用所述随机数生成模块、所述运算控制模块、所述比特串处理模块、所述密钥派生模块、所述杂凑模块进行消息加密,当系统要进行消息解密时,所述解密控制模块与所述上层复选模块进行通信,通过所述上层复选模块调用所述随机数生成模块、所述运算控制模块、所述比特串处理模块、所述密钥派生模块、所述杂凑模块进行消息解密;所述随机数生成模块:用于生成随机数k∈[1,n-1];所述运算控制模块:用于通过所述下层复选模块来调用所述点乘运算模块和所述异或运算模块,完成点乘运算和异或运算;所述比特串处理模块:用于通过所述下层复选模块来调用所述比特串转换模块和所述比特串拼接模块,完成比特串转换和比特串拼接;所述密钥派生模块:用于进行密钥派生运算,生成密钥数据比特串;所述杂凑模块:用于采用SM3密码杂凑算法,进行密码杂凑运算,产生相应的杂凑值;所述下层复选模块:用于当系统要进行点乘运算和异或运算时,所述运算控制模块与所述下层复选模块通信,通过所述下层复选模块调用所述点乘运算模块和所述异或运算模块,完成点乘运算和异或运算;当系统要进行比特串转换和比特串拼接时,所述比特串处理模块与所述下层复选模块通信,通过所述下层复选模块调用所述比特串转换模块和所述比特串拼接模块,完成比特串转换和比特串拼接;所述点乘运算模块:用于完成消息加密和消息解密过程中所需的点乘运算;所述异或运算模块:用于完成消息加密和解密过程中所需的异或运算;所述比特串转换模块:用于将椭圆曲线上的点转换为与之相对应的比特串,将比特串转换为椭圆曲线上与之相对应的点;所述比特串拼接模块:用于将两个以上的比特串进行拼接,使之成为一个比特串。在系统的设计过程中,采用了高层次的模块化方法,按照硬件占用资源少、成本低、系统运行速度快,结构简单、易实现的原则,将系统进行了合理的划分,具体划分为所述SM2主控模块、所述SM2解析模块、所述加密控制模块、所述解密控制模块、所述上层复选模块、所述随机数生成模块、所述运算控制模块、所述比特串处理模块、所述密钥派生模块、所述杂凑模块、所述下层复选模块、所述点乘运算模块、所述异或运算模块、所述比特串转换模块、所述比特串拼接模块,每个模块可实现相应的功能。所述比特串拼接模块采用首尾依次相接进行拼接。一种素域Fp下的SM2椭圆曲线公钥密码算法中利用公钥加密算法来加密消息的实现方法,包括如下步骤:步骤一:通过上层复选模块调用随机数生成模块,产生随机数k∈[1,n-1];步骤二:运算控制模块通过下层复选模块来调用点乘运算模块,计算C1=[k]G=(x1,y1)和S=[h]PB;步骤三:检验S是否为无穷远点,若S是无穷远点,则报错并退出,若S不是无穷远点,则执行步骤四;步骤四:运算控制模块通过下层复选模块来调用点乘运算模块,计算[k]PB=(x2,y2);步骤五:比特串处理模块通过下层复选模块来调用比特串转换模块,将点(x1,y1)和点(x2,y2)转换为相应的比特串,调用比特串拼接模块,拼接比特串x2和y2,得比特串x2||y2;步骤六:通过上层复选模块来调用密钥派生模块,对比特串x2||y2和整数klen进行密钥派生运算,得比特串t;步骤七:检验t是否为全为0的比特串,若是则返回步骤一,若否则执行步骤八;步骤八:运算控制模块通过下层复选模块来调用异或运算模块,计算步骤九:比特串处理模块通过下层复选模块来调用比特串拼接模块,拼接比特串x2、M和y2,得比特串x2||M||y2;步骤十:通过上层复选模块调用杂凑模块,对比特串x2||M||y2进行密码杂凑运算,得杂凑值C3;步骤十一:比特串处理模块通过下层复选模块来调用比特串拼接模块,拼接比特串C1、C2和C3,得到密文C=C1||C2||C3。在加密消息的过程中,采用硬件模块复用的方法,通过运用上层复选模块,实现了对随机数生成模块、运算控制模块、比特串处理模块、密钥派生模块、杂凑模块的复用,通过运用下层复选模块,实现了对点乘运算模本文档来自技高网...
一种素域Fp下的SM2椭圆曲线公钥加密算法的硬件实现系统

【技术保护点】
一种素域Fp下的SM2椭圆曲线公钥加密算法的硬件实现系统,该系统可以对传输的消息进行加密和解密,该系统所用到的模块包括:SM2主控模块、SM2解析模块、加密控制模块、解密控制模块、上层复选模块、随机数生成模块、运算控制模块、比特串处理模块、密钥派生模块、杂凑模块、下层复选模块、点乘运算模块、异或运算模块、比特串转换模块、比特串拼接模块,其特征在于:所述SM2主控模块:用于与所述SM2解析模块进行通信,进而调用加密控制模块和解密控制模块对消息进行加密和解密;所述SM2解析模块:用于解析所述SM2主控模块发出的命令,确定系统当前时间要实现的是消息加密还是消息解密功能,并将进行消息加密的命令发送给所述加密控制模块,将进行消息解密的命令发送给解密控制模块;所述加密控制模块:用于在收到所述SM2解析模块发送的进行消息加密的命令后,与所述上层复选模块进行通信,通过所述上层复选模块调用所述随机数生成模块、所述运算控制模块、所述比特串处理模块、所述密钥派生模块、所述杂凑模块,通过所述下层复选模块调用所述点乘运算模块、所述异或运算模块、所述比特串转换模块、所述比特串拼接模块,对消息进行加密;所述解密控制模块:用于在收到所述SM2解析模块发送的进行消息解密的命令后,与所述上层复选模块进行通信,通过所述上层复选模块调用所述随机数生成模块、所述运算控制模块、所述比特串处理模块、所述密钥派生模块、所述杂凑模块,通过所述下层复选模块调用所述点乘运算模块、所述异或运算模块、所述比特串转换模块、所述比特串拼接模块,对消息进行解密;所述上层复选模块:用于当系统要进行消息加密时,所述加密控制模块与所述上层复选模块进行通信,通过所述上层复选模块调用所述随机数生成模块、所述运算控制模块、所述比特串处理模块、所述密钥派生模块、所述杂凑模块进行消息加密,当系统要进行消息解密时,所述解密控制模块与所述上层复选模块进行通信,通过所述上层复选模块调用所述随机数生成模块、所述运算控制模块、所述比特串处理模块、所述密钥派生模块、所述杂凑模块进行消息解密;所述随机数生成模块:用于生成随机数k∈[1,n‑1];所述运算控制模块:用于通过所述下层复选模块来调用所述点乘运算模块和所述异或运算模块,完成点乘运算和异或运算;所述比特串处理模块:用于通过所述下层复选模块来调用所述比特串转换模块和所述比特串拼接模块,完成比特串转换和比特串拼接;所述密钥派生模块:用于进行密钥派生运算,生成密钥数据比特串;所述杂凑模块:用于采用SM3密码杂凑算法,进行密码杂凑运算,产生相应的杂凑值;所述下层复选模块:用于当系统要进行点乘运算和异或运算时,所述运算控制模块与所述下层复选模块通信,通过所述下层复选模块调用所述点乘运算模块和所述异或运算模块,完成点乘运算和异或运算;当系统要进行比特串转换和比特串拼接时,所述比特串处理模块与所述下层复选模块通信,通过所述下层复选模块调用所述比特串转换模块和所述比特串拼接模块,完成比特串转换和比特串拼接;所述点乘运算模块:用于完成消息加密和消息解密过程中所需的点乘运算;所述异或运算模块:用于完成消息加密和解密过程中所需的异或运算;所述比特串转换模块:用于将椭圆曲线上的点转换为与之相对应的比特串,将比特串转换为椭圆曲线上与之相对应的点;所述比特串拼接模块:用于将两个以上的比特串进行拼接,使之成为一个比特串。...

【技术特征摘要】
1.一种素域Fp下的SM2椭圆曲线公钥加密算法的硬件实现系统,该系统可以对传输的消息进行加密和解密,该系统所用到的模块包括:SM2主控模块、SM2解析模块、加密控制模块、解密控制模块、上层复选模块、随机数生成模块、运算控制模块、比特串处理模块、密钥派生模块、杂凑模块、下层复选模块、点乘运算模块、异或运算模块、比特串转换模块、比特串拼接模块,其特征在于:所述SM2主控模块:用于与所述SM2解析模块进行通信,进而调用加密控制模块和解密控制模块对消息进行加密和解密;所述SM2解析模块:用于解析所述SM2主控模块发出的命令,确定系统当前时间要实现的是消息加密还是消息解密功能,并将进行消息加密的命令发送给所述加密控制模块,将进行消息解密的命令发送给解密控制模块;所述加密控制模块:用于在收到所述SM2解析模块发送的进行消息加密的命令后,与所述上层复选模块进行通信,通过所述上层复选模块调用所述随机数生成模块、所述运算控制模块、所述比特串处理模块、所述密钥派生模块、所述杂凑模块,通过所述下层复选模块调用所述点乘运算模块、所述异或运算模块、所述比特串转换模块、所述比特串拼接模块,对消息进行加密;所述解密控制模块:用于在收到所述SM2解析模块发送的进行消息解密的命令后,与所述上层复选模块进行通信,通过所述上层复选模块调用所述随机数生成模块、所述运算控制模块、所述比特串处理模块、所述密钥派生模块、所述杂凑模块,通过所述下层复选模块调用所述点乘运算模块、所述异或运算模块、所述比特串转换模块、所述比特串拼接模块,对消息进行解密;所述上层复选模块:用于当系统要进行消息加密时,所述加密控制模块与所述上层复选模块进行通信,通过所述上层复选模块调用所述随机数生成模块、所述运算控制模块、所述比特串处理模块、所述密钥派生模块、所述杂凑模块进行消息加密,当系统要进行消息解密时,所述解密控制模块与所述上层复选模块进行通信,通过所述上层复选模块调用所述随机数生成模块、所述运算控制模块、所述比特串处理模块、所述密钥派生模块、所述杂凑模块进行消息解密;所述随机数生成模块:用于生成随机数k∈[1,n-1];所述运算控制模块:用于通过所述下层复选模块来调用所述点乘运算模块和所述异或运算模块,完成点乘运算和异或运算;所述比特串处理模块:用于通过所述下层复选模块来调用所述比特串转换模块和所述比特串拼接模块,完成比特串转换和比特串拼接;所述密钥派生模块:用于进行密钥派生运算,生成密钥数据比特串;所述杂凑模块:用于采用SM3密码杂凑算法,进行密码杂凑运算,产生相应的杂凑值;所述下层复选模块:用于当系统要进行点乘运算和异或运算时,所述运算控制模块与所述下层复选模块通信,通过所述下层复选模块调用所述点乘运算模块和所述异或运算模块,完成点乘运算和异或运算;当系统要进行比特串转换和比特串拼接时,所述比特串处理模块与所述下层复选模块通信,通过所述下层复选模块调用所述比特串转换模块和所述比特串拼接模块,完成比特串转换和比特串拼接;所述点乘运算模块:用于完成消息加密和消息解密过程中所需的点乘运算;所述异或运算模块:用于完成消息加密和解密过程中所需的异或运算;所述比特串转换模块:用于将椭圆曲线上的点转换为与之相对应的比特串,将比特串转换为椭圆曲线上与之相对应的点;所述比特串拼接模块:用于将两个以上的比特串进行拼接,使之成为一个比特串。2.如权利要求1所述的系统,其特征在于:在系统的设计过程中,采用了高层次的模块化方法,按照硬件占用资源少、成本低、系统运行速度快,结构简单、易实现的原则,将系统进行了合理的划分,具体划分为所述SM2主控模块、所述SM2解析模块、所述加密控制模块、所述解密控制模块、所述上层复选模块、所述随机数生成模块、所述运算控制模块、所述比特串处理模块、所述密钥派生模块、所述杂凑模块、所述下层复选模块、所述点乘运算模块、所述异或运算模块、所述比特串转换模块、所述比特串拼接模块,每个模块可实现相应的...

【专利技术属性】
技术研发人员:王丽雪熊晓明
申请(专利权)人:广东工业大学
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1