[发明专利]基于FPGA的SM4-GCM网络加密传输系统实现方法有效
申请号: | 202011604179.3 | 申请日: | 2020-12-29 |
公开(公告)号: | CN112769551B | 公开(公告)日: | 2022-07-26 |
发明(设计)人: | 崔颖超;姚英彪;周红;徐欣;姜显扬;冯维 | 申请(专利权)人: | 杭州电子科技大学 |
主分类号: | H04L9/08 | 分类号: | H04L9/08;H04W12/03 |
代理公司: | 浙江千克知识产权代理有限公司 33246 | 代理人: | 周希良 |
地址: | 310018 浙江省杭州市*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 fpga sm4 gcm 网络 加密 传输 系统 实现 方法 | ||
1.基于FPGA的SM4-GCM网络加密传输系统实现方法,其特征在于:包括以下步骤:
S1,从数据准备模块接受所需数据,将参数和密钥分别送入随机数模块和密钥扩展模块生成相应的随机数和扩展密钥;
S2,将随机数和明文送入加密模块进行加密;
S3,将得到的密文、密钥与随机数送入消息认证模块生成HMAC值;
S4,在加/解密的同时,系统会通过SM3算法和Pascal算法更新下一次所需的密钥;
步骤S4中,当触发密钥更新时,由加密方选择一个系统参数,选择的参数地址添加至附加消息以通知通信对方的相应模块;128bit的参数划分为16份并异或变为4个参数,较大的两个为n1,n2,较小的两个为k1,k2;根据参数求解两组Pascal的解,并对结果取模16得到两个参数地址;
将所得参数送入SM3模块后,计算过程为将输入的128bit数据根据填充规则变换成所需的512bit消息,并分成16个4Byte长度的消息块;后通过对特定消息块的循环移位、异或运算、置换得到其余的52个消息,记作消息组W;根据消息组W,得到第二个含64个字的消息分组W2;迭代压缩是将初始变量IV分为含8个字的消息组,通过64次对该消息组、W分组和W2分组的布尔替代、置换及移位运算规则,得到经过压缩后的256bit数据;参数将分为两个128bit数据循环左移位并替换原来运行系统参数组中对应参数地址的参数值,移位的大小基于参数自身的地址;三个所选的参数移位异或后即得到更新后的密钥,更新后的密钥被送入密钥扩展模块以参与下一次加密。
2.根据权利要求1所述的基于FPGA的SM4-GCM网络加密传输系统实现方法,其特征在于:步骤S1,S2,S3,S4中,明文M长度为固定128bit,密钥k长度为固定128bit,随机数r为128bit。
3.根据权利要求1或2所述的基于FPGA的SM4-GCM网络加密传输系统实现方法,其特征在于:步骤S1中,数据准备模块负责为FPGA模块传输数据并计算需加密的数据长度和附加消息的长度用于消息认证模块的运行;随机数的生成基于SHAKE-128算法。
4.根据权利要求1或2所述的基于FPGA的SM4-GCM网络加密传输系统实现方法,其特征在于:步骤S1和S2中,SM4算法的密钥扩展模块和加密模块均需使用非线性变换;通过利用RAM资源实现有限域上的乘法求逆操作以及组合逻辑实现仿射变换操作,使得加解密过程能共用非线性变换单元的资源。
5.根据权利要求1或2所述的基于FPGA的SM4-GCM网络加密传输系统实现方法,其特征在于:步骤S3中,获取消息认证码包括以下步骤:
S3.1、附加消息与密钥H经过GHASH单元的有限域模乘和模约后,得到128bit值后,下一块附加消息异或,重复操作,执行n次;
S3.2、密文与密钥H经过GHASH单元的有限域模乘和模约后,得到128bit值后,与下一块密文异或,重复操作,总共迭代m次。
6.根据权利要求4所述的基于FPGA的SM4-GCM网络加密传输系统实现方法,其特征在于:所述有限域上的乘法单元采用全并行运算实现并采用三级KOA方法进行优化,有限域模约单元基于改进的并行模约方法实现。
7.根据权利要求5所述的基于FPGA的SM4-GCM网络加密传输系统实现方法,其特征在于:步骤S3.2中,密钥H由密钥k和随机数r产生,m代表加密数据被分为每个128bit的消息块后的个数,n代表附加消息被分为每个128bit的消息块后的个数。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州电子科技大学,未经杭州电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011604179.3/1.html,转载请声明来源钻瓜专利网。