CN111049639A - 一种基于fpga的动态数据加解密实现方法 - Google Patents

一种基于fpga的动态数据加解密实现方法 Download PDF

Info

Publication number
CN111049639A
CN111049639A CN201911059711.5A CN201911059711A CN111049639A CN 111049639 A CN111049639 A CN 111049639A CN 201911059711 A CN201911059711 A CN 201911059711A CN 111049639 A CN111049639 A CN 111049639A
Authority
CN
China
Prior art keywords
encryption
data
decryption
sub
keys
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.)
Granted
Application number
CN201911059711.5A
Other languages
English (en)
Other versions
CN111049639B (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.)
Zhejiang Sci Tech University ZSTU
Original Assignee
Zhejiang Sci Tech University ZSTU
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 Zhejiang Sci Tech University ZSTU filed Critical Zhejiang Sci Tech University ZSTU
Priority to CN201911059711.5A priority Critical patent/CN111049639B/zh
Publication of CN111049639A publication Critical patent/CN111049639A/zh
Application granted granted Critical
Publication of CN111049639B publication Critical patent/CN111049639B/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/0625Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0435Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • 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/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0891Revocation or update of secret information, e.g. encryption key update or rekeying

Abstract

本发明公开了一种基于FPGA的动态数据加解密设计与实现方法。本发明采用FPGA作为主控制器完成对动态密钥加解密主状态机的设计,将整个动态密钥加解密分成3DES加解密和密钥更新两个部分;同时在加密帧数达到设定的阈值,就更新密钥和阈值,达到双重混沌态,极大的保证了数据的安全性。本发明具有高速数据处理能力,也极大的提高了加解密速度,能够满足工业网关快速加解密以及高安全性的要求。

Description

一种基于FPGA的动态数据加解密实现方法
技术领域
本发明涉及通信加密领域的一种数据加解密处理方法,具体为一种基于 FPGA的动态数据加解密设计与实现方法。
背景技术
信息是信息化社会发展的重要战略资源,也是衡量一个国家综合国力的重 要指标之一。随着网络信息技术的迅猛发展,信息的地位与作用在急剧上升, 信息安全问题因此而日益突出。尤其是在当前大力发展工业物联网的情况下, 工业环境下对信息安全的要求更加高。因此在满足工业高速通信的前提条件下 还要对数据进行有效的加解密就显得尤为重要。
发明内容
为了解决背景技术中存在的问题,本发明目的是针对工业网关快速加解密 以及高安全性的要求,设计并实现了一种能够快速加解密并且实现动态密钥的 加解密方法。
本发明方法包括以下具体步骤:
一、一种基于FPGA的动态数据加密方法,包括以下步骤:
步骤1:待加密数据缓存:对输入的待加密数据进行缓存,存入第一缓存器 中;
步骤2:子密钥生成:根据步骤7中生成的三个密钥key1、key2、key3进 行子密钥生成操作获得子密钥,每个密钥得到其对应的16个子密钥,并给出子 密钥完成生成标志位信号;
步骤3:读取待加密数据:
(1)初始状态:当步骤2中的子密钥完成生成标志位信号出现时,第一缓 存器读取出待加密数据的1帧数据;
(2)非初始状态:当步骤2中的子密钥完成生成标志位信号和步骤6-1中 的请求读取脉冲信号均出现时,第一缓存器读取出待加密数据的1帧数据;
步骤4:Padding处理:对步骤3中读取出来的待加密数据的1帧数据进行 预处理,不足64位的数据在低位补0至64位;
步骤5:加密处理;
步骤6:已加密数据缓存:将步骤5获得的数据存入第二缓存器中,即获得 当前帧数据加密后的数据;
步骤7:加密链状态检测:步骤5中的步骤5-1每完成一次,加密链状态寄 存器的值都加1,并根据加密链状态寄存器的值判断进行密钥更新和加密帧数阈 值Nx更新,并回到步骤2;
步骤8:不断迭代上述步骤2~7,直到完成每一帧数据的加密处理。
所述步骤5具体是对步骤4获得的数据进行如下处理:
步骤5-1:DES1加密:采用第一密钥key1的子密钥对步骤4获得的数据进 行一次DES加密处理,一次加密分为16轮,每一轮依次采用1个子密钥进行加 密;
步骤5-2:DES2加密:采用第二密钥key2的子密钥对步骤5-1获得的数据 再进行一次DES加密处理,一次加密分为16轮,每一轮依次采用1个子密钥进 行加密;
步骤5-3:DES3加密:采用第三密钥key3的子密钥对步骤5-2获得的数据 再进行一次DES加密处理,一次加密分为16轮,每一轮依次采用1个子密钥进 行加密。
所述步骤7具体为:
步骤7-1:若加密链状态寄存器的值小于加密帧数阈值Nx,则发送请求读 取脉冲信号为1到第一缓存器并回到步骤3处理;
步骤7-2:若加密链状态寄存器的值大于等于加密帧数阈值Nx,则暂停加 密工作,开始发送密钥更新启动信号给密钥更新模块和加密帧数阈值更新模块, 进行密钥更新和加密帧数阈值Nx更新,并回到步骤2;
7-2-A:密钥更新:
(1)初始状态:随机生成三个密钥key1、key2、key3的初始值并直接输出 给步骤2;
(2)非初始状态:对当前的三个密钥key1、key2、key3进行MD5加密, 分别获得新的三个密钥key1、key2、key3,输出给步骤2;
7-2-B:加密帧数阈值Nx更新:
(1)初始状态:预先设定加密帧数阈值Nx的初始值并直接输出给步骤7;
(2)非初始状态:对当前的加密帧数阈值Nx进行MD5加密,获得新的加 密帧数阈值Nx,输出给步骤7-1。
二、一种基于FPGA的动态数据解密方法,与上述加密方法相配合使用实 施:
步骤1:待解密数据缓存:对输入的待解密数据进行缓存,存入第一缓存器 中;
步骤2:子密钥生成:根据步骤7中生成的三个密钥key1、key2、key3进 行子密钥生成操作获得子密钥,每个密钥得到其对应的16个子密钥,并给出子 密钥完成生成标志位信号;
步骤3:读取待解密数据:
(1)初始状态:当步骤2中的子密钥完成生成标志位信号出现时,第一缓 存器读取出待解密数据的1帧数据;
(2)非初始状态:当步骤2中的子密钥完成生成标志位信号和步骤6-1中 的请求读取脉冲信号均出现时,第一缓存器读取出待解密数据的1帧数据;
步骤4:Padding处理:对步骤3中读取出来的待解密数据的1帧数据进行 预处理,不足64位的数据在低位补0至64位;
步骤5:解密处理;
步骤6:已解密数据缓存:将步骤5获得的数据存入第二缓存器中,即获得 当前帧数据解密后的数据;
步骤7:解密链状态检测:步骤5中的步骤5-1每完成一次,解密链状态寄 存器的值都加1,并根据解密链状态寄存器的值判断进行密钥更新和解密帧数阈 值Nx更新,并回到步骤2;
步骤8:不断迭代上述步骤2~7,直到完成每一帧数据的解密处理。
所述步骤5具体是对步骤4获得的数据进行如下处理:
步骤5-1:DES1解密:采用第三密钥key3的子密钥对步骤4获得的数据进 行一次DES解密处理,一次解密分为16轮,每一轮依次采用1个子密钥进行解 密;本步骤16轮的子密钥依次顺序和权利要求2中所述步骤5-3的16轮的子密 钥依次顺序颠倒相反;
步骤5-2:DES2解密:采用第二密钥key2的子密钥对步骤5-1获得的数据 再进行一次DES解密处理,一次解密分为16轮,每一轮依次采用1个子密钥进 行解密;本步骤16轮的子密钥依次顺序和权利要求2中所述步骤5-2的16轮的 子密钥依次顺序颠倒相反;
步骤5-3:DES3解密:采用第一密钥key1的子密钥对步骤5-2获得的数据 再进行一次DES解密处理,一次解密分为16轮,每一轮依次采用1个子密钥进 行解密;本步骤16轮的子密钥依次顺序和权利要求2中所述步骤5-1的16轮的 子密钥依次顺序颠倒相反。
所述步骤7具体为:
步骤7-1:若解密链状态寄存器的值小于解密帧数阈值Nx,则发送请求读 取脉冲信号为1到第一缓存器并回到步骤3处理;
步骤7-2:若解密链状态寄存器的值大于等于解密帧数阈值Nx,则暂停解 密工作,开始发送密钥更新启动信号给密钥更新模块和解密帧数阈值更新模块, 进行密钥更新和解密帧数阈值Nx更新,并回到步骤2;
7-2-A:密钥更新:
(1)初始状态:随机生成三个密钥key1、key2、key3的初始值并直接输出 给步骤2;
(2)非初始状态:对当前的三个密钥key1、key2、key3进行MD5解密, 分别获得新的三个密钥key1、key2、key3,输出给步骤2;
7-2-B:解密帧数阈值Nx更新:
(1)初始状态:预先设定解密帧数阈值Nx的初始值并直接输出给步骤7;
(2)非初始状态:对当前的解密帧数阈值Nx进行MD5解密,获得新的解 密帧数阈值Nx,输出给步骤7-1。
本发明的解密处理框架过程和加密过程一致,解密的时候在步骤5时,仅 只把密钥key3给DES1模块,把密钥key2给DES2模块,把密钥key1给DES3 模块,并同时倒置每组密钥对应的16个子密钥的顺序,即可解密出原始数据, 处理方便迅速。
三、一种基于FPGA的动态数据加解密实现方法:发送端对于待加密数据 采用所述加密方法进行加密后传输,接收端接收加密数据后采用所述解密方法 进行解密使用。
所述的发送端和接收端均为移动通信设备,例如手机、计算机等。
本发明采用FPGA作为主控制器完成对动态密钥加解密主状态机的设计, 将整个动态密钥加解密分成3DES加解密和密钥更新两个部分;并且在加密帧数 达到设定的阈值,就更新密钥和阈值,达到双重混沌态,极大的保证了数据的 安全性。同时,本发明具有高速数据处理能力,也极大的提高了加解密速度, 能够满足工业网关快速加解密以及高安全性的要求。
本发明的有益效果是:
本发明方法采用了FPGA作为主控制器,基于FPGA的高速处理性能实现 对数据的快速加密,速度快,可扩展性强,能实行数据加密的并行处理,可以 通过增加FPGA逻辑单元扩展并行加密的数据量,大大提高了数据加密处理的 速度,能保证对数据加密并实现有效传输。
本发明还设置了数据缓存器,在加密一部分数据时,能把其他数据先缓存 下来,然后依次加密,避免了数据丢失。
本发明方案下在通信传输信道中传输的只有密文,即使被第三方获取,由 于密钥动态更新,也无法有效破解,保证了信息的安全。
附图说明
图1为本发明的实现流程图;
图2为本发明实施例采用的密钥更新以及阈值Nx更新仿真实施示意图;
图3为本发明实施例的加密结果仿真实施示意图;
图4为本发明实施例的解密结果仿真实施示意图。
表1为本发明实施例的加解密测试结果。
具体实施方式
下面结果附图详细描述本发明,本发明的目的和效果将变得更加明显。
如图1所示,本发明具体实施的FPGA包括第一缓存器(fifo_in)、密钥生 成模块(fifo_in)、预处理模块(Padding)、第一加密模块(DES1)、第二加 密模块(DES2)、第三加密模块(DES3)、第二缓存器(fifo_out)、加密链 状态寄存器、控制模块(control)、密钥更新模块(MD5_key)和加密帧数阈值 更新模块(MD5_Nx)。主要由第一缓存器(fifo_in)、密钥生成模块(fifo_in)、 预处理模块(Padding)、第一加密模块(DES1)、第二加密模块(DES2)、第三加密模块(DES3)、第二缓存器(fifo_out)、加密链状态寄存器构成了加 密部分;主要由控制模块(control)、密钥更新模块(MD5_key)和加密帧数阈 值更新模块(MD5_Nx)构成了密钥更新部分。
加密链状态寄存器(Key)、第一缓存器(fifo_in)、密钥生成模块(fifo_in)、 预处理模块(Padding)、第一加密模块(DES1)、第二加密模块(DES2)、 第三加密模块(DES3)、第二缓存器(fifo_out)依次连接,待加密数据输入缓 存到FPGA的第一缓存器(fifo_in),第一加密模块(DES1)输出连接到控制 模块(control)的输入,控制模块(control)的输出分别连接到密钥更新模块 (MD5_key)和加密帧数阈值更新模块(MD5_Nx)的输入以及第一缓存器 (fifo_in),密钥更新模块(MD5_key)的输出连接到加密链状态寄存器(Key) 的输入,加密帧数阈值更新模块(MD5_Nx)的输出连接到控制模块(control) 的输入。
如图1所示,具体实施例及其实施过程如下:
步骤1:待加密数据缓存:对输入的待加密数据(plaintext)进行缓存,存 入第一缓存器(fifo_in)中。具体实施可采用网站文本类的数据作为待加密数据。
步骤2:子密钥生成:在密钥生成模块中根据步骤7中生成的三个密钥key1、 key2、key3进行包含有转置、移位、异或等一系列子操作的子密钥生成操作获 得子密钥,每个密钥得到其对应的16个子密钥,并给出子密钥完成生成标志位 信号(Done_key)。
步骤3:读取待加密数据:
(1)初始状态:当步骤2中的子密钥完成生成标志位信号(Done_key)出 现时,第一缓存器(fifo_in)读取出待加密数据的1帧数据;
(2)非初始状态:当步骤2中的子密钥完成生成标志位信号(Done_key) 和步骤6-1中的请求读取(flag_rd)脉冲信号均出现时,第一缓存器(fifo_in) 读取出待加密数据的1帧数据。
步骤4:Padding处理:预处理模块接收待加密数据的1帧数据后,对步骤 3中读取出来的待加密数据的1帧数据进行预处理,不足64位(2进制)的数 据在低位补0至64位。
步骤5:加密处理:
步骤5-1:DES1加密:利用第一加密模块采用第一密钥key1的子密钥对步 骤4获得的数据进行一次DES加密处理,一次加密分为16轮,每一轮依次采用 1个子密钥进行加密;
步骤5-2:DES2加密:利用第二加密模块采用第二密钥key2的子密钥对步 骤5-1获得的数据再进行一次DES加密处理,一次加密分为16轮,每一轮依次 采用1个子密钥进行加密;
步骤5-3:DES3加密:利用第三加密模块采用第三密钥key3的子密钥对步 骤5-2获得的数据再进行一次DES加密处理,一次加密分为16轮,每一轮依次 采用1个子密钥进行加密。
步骤6:已加密数据缓存:步骤5操作之后的数据就是已加密数据,将步骤 5获得的数据存入第二缓存器(fifo_out)中,即获得当前帧数据加密后的数据。
步骤7:加密链状态检测:步骤5中的步骤5-1每完成一次,加密链状态寄 存器的值都加1,并根据加密链状态寄存器的值判断进行密钥更新和加密帧数阈 值Nx更新,并回到步骤2。具体为:
步骤7-1:控制模块(control)接收并根据第一加密模块(DES1)的完成信 号(Done_DES1)和加密帧数阈值Nx进行判断,若加密链状态寄存器的值小于 加密帧数阈值Nx,则发送请求读取(flag_rd)脉冲信号为1到第一缓存器(fifo_in) 并回到步骤3处理;
发送请求读取(flag_rd)脉冲信号为1,控制模块的电路高电平,代表继续 读取下一帧数据;发送请求读取(flag_rd)脉冲信号为0,控制模块的电路低电 平,所有帧数据读取完毕,停止读取。
步骤7-2:若加密链状态寄存器的值大于等于加密帧数阈值Nx,则主要由 三个加密模块构成的加密系统暂停加密工作,开始发送密钥更新启动信号 (flag_MD5)给密钥更新模块(MD5_key)和加密帧数阈值更新模块(MD5_Nx), 进行密钥更新和加密帧数阈值Nx更新,并回到步骤2;
7-2-A:密钥更新模块(MD5_key)的密钥更新:
(1)初始状态:随机生成三个密钥key1、key2、key3的初始值并直接输出 给步骤2;
(2)非初始状态:对当前的三个密钥key1、key2、key3进行MD5加密, 分别获得新的三个密钥key1、key2、key3,输出给步骤2;
7-2-B:加密帧数阈值更新模块(MD5_Nx)的加密帧数阈值Nx更新:
(1)初始状态:预先设定加密帧数阈值Nx的初始值并直接输出给步骤7;
(2)非初始状态:对当前的加密帧数阈值Nx进行MD5加密,获得新的加 密帧数阈值Nx,输出给步骤7-1。
步骤8:不断迭代上述步骤2~7,直到完成每一帧数据的加密处理,根据步 骤5获得了加密后的数据并进行传输。
本发明的解密处理框架过程和加密过程一致,但是解密的时候把加密后的 数据输入到第一缓存器。然后实施过程中在步骤5时,仅只把密钥key3给DES1 模块,把密钥key2给DES2模块,把密钥key1给DES3模块,并同时倒置每组 密钥对应的16个子密钥的顺序,作出上述改变后通过步骤5获得了即可解密出 每一帧的原始数据,处理方便迅速。
图2给出了ModelSim仿真平台仿真测试的情形,当加密帧数达到设定的阈 值Nx,就会发送密钥更新标志位(flag_MD5),对密钥key1、key2、key3和 阈值Nx进行1次更新。
图3给出了ModelSim仿真平台仿真加密测试的情形,仿真结果表明,待加 密数据(data_in)存在缓存器(fifo)中,当缓存器使能信号高电平时,从缓存 器读出1帧数据(data_buf),然后开始加密操作,得到已加密数据(system_out), 加密完成之后加密完成标志(Done_DES3)位置高电平。
图4给出了ModelSim仿真平台仿真解密测试的情形,仿真结果表明,已加 密数据(data_in)存在缓存器(fifo)中,当缓存器使能信号高电平时,从缓存 器读出1帧数据(data_buf),然后开始解密操作,得到原始数据(system_out), 解密完成之后解密完成标志(Done_DES3)位置高电平。
本发明实验的加解密测试结果如下表:
Figure BDA0002257577180000071
Figure BDA0002257577180000081
表1
上述表格和结果可见,待加密数据通过加密之后形成了看起来毫无意义的 密文,然后通过解密之后正确的还原出了原始的数据,证明了该方法可以正确 有效的加解密数据。
由此实施可见,本发明加解密方法的加密速度较快,而且还能保证加密强 度,既能满足工业传输的要求,又能满足到信息安全的要求;基于MD5算法的 密钥动态更新系统能够产生动态密钥,使得系统不会因为被获取了原密钥而导 致所有密文被破解,大大提高了安全性,在设定的更新周期下,几乎是无法被 有效破解的。
本发明不仅局限与上述具体实施方法,本领域一般技术人员根据本发明公 开的内容,可以采用其它多种具体实施方案实施本发明。因此,凡是采用本发 明的设计结构和思路,做一些简单的变化或更改的设计,都落入本发明保护范 围。

Claims (7)

1.一种基于FPGA的动态数据加密方法,其特征是方法包括以下步骤:
步骤1:待加密数据缓存:对输入的待加密数据进行缓存,存入第一缓存器中;
步骤2:子密钥生成:根据步骤7中生成的三个密钥key1、key2、key3进行子密钥生成操作获得子密钥,每个密钥得到其对应的16个子密钥,并给出子密钥完成生成标志位信号;
步骤3:读取待加密数据:
(1)初始状态:当步骤2中的子密钥完成生成标志位信号出现时,第一缓存器读取出待加密数据的1帧数据;
(2)非初始状态:当步骤2中的子密钥完成生成标志位信号和步骤6-1中的请求读取脉冲信号均出现时,第一缓存器读取出待加密数据的1帧数据;
步骤4:Padding处理:对步骤3中读取出来的待加密数据的1帧数据进行预处理,不足64位的数据在低位补0至64位;
步骤5:加密处理;
步骤6:已加密数据缓存:将步骤5获得的数据存入第二缓存器中,即获得当前帧数据加密后的数据;
步骤7:加密链状态检测:步骤5中的步骤5-1每完成一次,加密链状态寄存器的值都加1,并根据加密链状态寄存器的值判断进行密钥更新和加密帧数阈值Nx更新,并回到步骤2;
步骤8:不断迭代上述步骤2~7,直到完成每一帧数据的加密处理。
2.根据权利要求1所述的一种基于FPGA的动态数据加密方法,其特征是:
所述步骤5具体是对步骤4获得的数据进行如下处理:
步骤5-1:DES1加密:采用第一密钥key1的子密钥对步骤4获得的数据进行一次DES加密处理,一次加密分为16轮,每一轮依次采用1个子密钥进行加密;
步骤5-2:DES2加密:采用第二密钥key2的子密钥对步骤5-1获得的数据再进行一次DES加密处理,一次加密分为16轮,每一轮依次采用1个子密钥进行加密;
步骤5-3:DES3加密:采用第三密钥key3的子密钥对步骤5-2获得的数据再进行一次DES加密处理,一次加密分为16轮,每一轮依次采用1个子密钥进行加密。
3.根据权利要求1所述的一种基于FPGA的动态数据加密方法,其特征是:
所述步骤7具体为:
步骤7-1:若加密链状态寄存器的值小于加密帧数阈值Nx,则发送请求读取脉冲信号为1到第一缓存器并回到步骤3处理;
步骤7-2:若加密链状态寄存器的值大于等于加密帧数阈值Nx,则暂停加密工作,开始发送密钥更新启动信号给密钥更新模块和加密帧数阈值更新模块,进行密钥更新和加密帧数阈值Nx更新,并回到步骤2;
7-2-A:密钥更新:
(1)初始状态:随机生成三个密钥key1、key2、key3的初始值并直接输出给步骤2;
(2)非初始状态:对当前的三个密钥key1、key2、key3进行MD5加密,分别获得新的三个密钥key1、key2、key3,输出给步骤2;
7-2-B:加密帧数阈值Nx更新:
(1)初始状态:预先设定加密帧数阈值Nx的初始值并直接输出给步骤7;
(2)非初始状态:对当前的加密帧数阈值Nx进行MD5加密,获得新的加密帧数阈值Nx,输出给步骤7-1。
4.用于和权利要求1所述加密方法配合实施的一种基于FPGA的动态数据解密方法,其特征是方法包括以下步骤:
步骤1:待解密数据缓存:对输入的待解密数据进行缓存,存入第一缓存器中;
步骤2:子密钥生成:根据步骤7中生成的三个密钥key1、key2、key3进行子密钥生成操作获得子密钥,每个密钥得到其对应的16个子密钥,并给出子密钥完成生成标志位信号;
步骤3:读取待解密数据:
(1)初始状态:当步骤2中的子密钥完成生成标志位信号出现时,第一缓存器读取出待解密数据的1帧数据;
(2)非初始状态:当步骤2中的子密钥完成生成标志位信号和步骤6-1中的请求读取脉冲信号均出现时,第一缓存器读取出待解密数据的1帧数据;
步骤4:Padding处理:对步骤3中读取出来的待解密数据的1帧数据进行预处理,不足64位的数据在低位补0至64位;
步骤5:解密处理;
步骤6:已解密数据缓存:将步骤5获得的数据存入第二缓存器中,即获得当前帧数据解密后的数据;
步骤7:解密链状态检测:步骤5中的步骤5-1每完成一次,解密链状态寄存器的值都加1,并根据解密链状态寄存器的值判断进行密钥更新和解密帧数阈值Nx更新,并回到步骤2;
步骤8:不断迭代上述步骤2~7,直到完成每一帧数据的解密处理。
5.根据权利要求4所述的一种基于FPGA的动态数据解密方法,其特征是:
所述步骤5具体是对步骤4获得的数据进行如下处理:
步骤5-1:DES1解密:采用第三密钥key3的子密钥对步骤4获得的数据进行一次DES解密处理,一次解密分为16轮,每一轮依次采用1个子密钥进行解密;本步骤16轮的子密钥依次顺序和权利要求2中所述步骤5-3的16轮的子密钥依次顺序颠倒相反;
步骤5-2:DES2解密:采用第二密钥key2的子密钥对步骤5-1获得的数据再进行一次DES解密处理,一次解密分为16轮,每一轮依次采用1个子密钥进行解密;本步骤16轮的子密钥依次顺序和权利要求2中所述步骤5-2的16轮的子密钥依次顺序颠倒相反;
步骤5-3:DES3解密:采用第一密钥key1的子密钥对步骤5-2获得的数据再进行一次DES解密处理,一次解密分为16轮,每一轮依次采用1个子密钥进行解密;本步骤16轮的子密钥依次顺序和权利要求2中所述步骤5-1的16轮的子密钥依次顺序颠倒相反。
6.根据权利要求4所述的一种基于FPGA的动态数据解密方法,其特征是:
所述步骤7具体为:
步骤7-1:若解密链状态寄存器的值小于解密帧数阈值Nx,则发送请求读取脉冲信号为1到第一缓存器并回到步骤3处理;
步骤7-2:若解密链状态寄存器的值大于等于解密帧数阈值Nx,则暂停解密工作,开始发送密钥更新启动信号给密钥更新模块和解密帧数阈值更新模块,进行密钥更新和解密帧数阈值Nx更新,并回到步骤2;
7-2-A:密钥更新:
(1)初始状态:随机生成三个密钥key1、key2、key3的初始值并直接输出给步骤2;
(2)非初始状态:对当前的三个密钥key1、key2、key3进行MD5解密,分别获得新的三个密钥key1、key2、key3,输出给步骤2;
7-2-B:解密帧数阈值Nx更新:
(1)初始状态:预先设定解密帧数阈值Nx的初始值并直接输出给步骤7;
(2)非初始状态:对当前的解密帧数阈值Nx进行MD5解密,获得新的解密帧数阈值Nx,输出给步骤7-1。
7.一种基于FPGA的动态数据加解密实现方法,其特征是:包括权利要求1所述的加密方法和权利要求4所述的解密方法,发送端对于待加密数据采用所述加密方法进行加密后传输,接收端接收加密数据后采用所述解密方法进行解密使用。
CN201911059711.5A 2019-11-01 2019-11-01 一种基于fpga的动态数据加解密实现方法 Active CN111049639B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911059711.5A CN111049639B (zh) 2019-11-01 2019-11-01 一种基于fpga的动态数据加解密实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911059711.5A CN111049639B (zh) 2019-11-01 2019-11-01 一种基于fpga的动态数据加解密实现方法

Publications (2)

Publication Number Publication Date
CN111049639A true CN111049639A (zh) 2020-04-21
CN111049639B CN111049639B (zh) 2022-10-28

Family

ID=70232751

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911059711.5A Active CN111049639B (zh) 2019-11-01 2019-11-01 一种基于fpga的动态数据加解密实现方法

Country Status (1)

Country Link
CN (1) CN111049639B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116260659A (zh) * 2023-05-15 2023-06-13 典基网络科技(上海)有限公司 一种ipsec数据包丢包处理方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104219044A (zh) * 2014-09-22 2014-12-17 杭州华澜微科技有限公司 一种用于加密存储装置的密钥保密方法
US20160359635A1 (en) * 2011-03-11 2016-12-08 Emsycon Gmbh Tamper-protected hardware and method for using same
US20170063530A1 (en) * 2013-08-13 2017-03-02 Michael Stephen Fiske NADO Cryptography with Key Generators
CN109428712A (zh) * 2017-08-24 2019-03-05 上海复旦微电子集团股份有限公司 数据加、解密方法及数据加、解密系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160359635A1 (en) * 2011-03-11 2016-12-08 Emsycon Gmbh Tamper-protected hardware and method for using same
US20170063530A1 (en) * 2013-08-13 2017-03-02 Michael Stephen Fiske NADO Cryptography with Key Generators
CN104219044A (zh) * 2014-09-22 2014-12-17 杭州华澜微科技有限公司 一种用于加密存储装置的密钥保密方法
CN109428712A (zh) * 2017-08-24 2019-03-05 上海复旦微电子集团股份有限公司 数据加、解密方法及数据加、解密系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
TERUYOSHI YAMAGUCHI ETAL: "《FPGA implementation of dynamic key management for DES encryption algorithm》", 《IEEE》 *
苗三立等: "基于FPGA的RC4加密算法设计及实现", 《计算机测量与控制》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116260659A (zh) * 2023-05-15 2023-06-13 典基网络科技(上海)有限公司 一种ipsec数据包丢包处理方法
CN116260659B (zh) * 2023-05-15 2023-07-11 典基网络科技(上海)有限公司 一种ipsec数据包丢包处理方法

Also Published As

Publication number Publication date
CN111049639B (zh) 2022-10-28

Similar Documents

Publication Publication Date Title
US7336783B2 (en) Cryptographic systems and methods supporting multiple modes
US11387980B2 (en) Hardware multiple cipher engine
US9712319B2 (en) Method and apparatus to encrypt plaintext data
US7978851B2 (en) Keystream encryption device, method, and program
EP3461056B1 (en) Systems and methods for facilitating iterative key generation and data encryption and decryption
CN110138795B (zh) 一种通信过程中的多步混合加解密方法
CN109981249B (zh) 基于拉链式动态散列和nlfsr的加密解密方法及装置
CN105897406A (zh) 一种明密文等长的aes加解密的装置
CN111010266B (zh) 消息的加解密、读写方法、装置、计算机设备和存储介质
CN111224974A (zh) 用于网络通信内容加密的方法、系统、电子设备及存储介质
CN102664729A (zh) 一种基于fpga的aes加解密网络通讯装置及其实现方法
WO2021129470A1 (zh) 基于多项式完全同态的二进制数据加密系统及方法
CN107534558A (zh) 用于保护经由数据总线传输的数据的信息安全的方法以及数据总线系统
GB2498063A (en) Checking acceptance of a string by automaton
CN111049639B (zh) 一种基于fpga的动态数据加解密实现方法
CN106549754A (zh) 管理密钥的方法和装置
CN114499857B (zh) 一种实现大数据量子加解密中数据正确性与一致性的方法
CN106973061B (zh) 一种基于可逆逻辑电路的aes的外发文件加密方法
CN108763982B (zh) 一种适用于rfid阅读器的des加密解密装置
CN103634113B (zh) 一种带用户/设备身份认证的加解密方法及装置
TW202218373A (zh) 混合式多階運算加解密系統、其發送端裝置、以及其接收端裝置
Sawant et al. Advanced Encryption Standard Block Cipher Algorithm
CN111131158A (zh) 单字节对称加密解密方法、装置及可读介质
CN117411727B (zh) 一种通信传输对称加密的加密方法、装置及存储介质
JPH0934355A (ja) 暗号化システム及び通信ネットワークに適用する暗号化システム

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