CN203086489U - 一种fpga加密数据流的解密电路 - Google Patents
一种fpga加密数据流的解密电路 Download PDFInfo
- Publication number
- CN203086489U CN203086489U CN 201220690910 CN201220690910U CN203086489U CN 203086489 U CN203086489 U CN 203086489U CN 201220690910 CN201220690910 CN 201220690910 CN 201220690910 U CN201220690910 U CN 201220690910U CN 203086489 U CN203086489 U CN 203086489U
- Authority
- CN
- China
- Prior art keywords
- key
- module
- decryption
- encrypted data
- instruction
- 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.)
- Expired - Fee Related
Links
- 230000015654 memory Effects 0.000 claims abstract description 38
- 230000010354 integration Effects 0.000 claims description 6
- 238000000034 method Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 2
- 230000003213 activating effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Landscapes
- Storage Device Security (AREA)
Abstract
本实用新型公开了一种FPGA加密数据流的解密电路,包括:数据输入接口、指令解码器、移位寄存器、密钥存储器、密钥界面模块、密钥扩展模块以及解密模块;数据输入接口分别连接指令解码器和解密模块;指令解码器连接移位寄存器和密钥界面模块;密钥界面模块连接密钥存储器和密钥扩展模块;其中,数据输入接口用于输入加密的数据文件或密钥指令,并将加密的数据文件送到解密模块,或将密钥指令送到指令解码器。本实用新型实施例的FPGA加密数据流的解密电路,有专门的非易失性密钥存储电路用以存储多个密钥,可进行多重加密和损坏加密,不但没有增加解密电路的复杂度和降低解密电路的编程速度,而且增强了加密数据的安全性,使FPGA的解加密更加可靠安全。
Description
技术领域
本实用新型涉及数字电路技术领域,尤其涉及FPGA数据流的加解密领域,具体的讲是一种FPGA加密数据流的解密电路。
背景技术
在当下竞争日益激烈的商业以及军事环境中,设计(IP)安全对于数字设计人员而言是一个至关重要的考虑因素。随着FPGA在更庞大、更关键的系统组件中扮演着愈来愈重要的角色,保护设计免受非法复制、逆向工程以及篡改也愈加显得重要。FPGA通过使用128(或更高数位)高级加密标准(AES)算法来对配置数据流进行解密能力可以消除这些顾虑。
FPGA器件在操作过程中,将配置数据存储在SRAM配置单元中。由于SRAM存储器的易失性,每次器件上电后,都必须将配置数据加载到SRAM单元中。通常将配置数据从外部存储器源(例如闪存或配置器件)发送至FPGA,但在此过程中,数据有可能会被拦截,不法分子可以使用截获的配置数据来配置另一个全新的FPGA,使其具有同样的功能。
而使用加密的配置数据流,即使被截获,在不知道密钥的情况下,也无法使用在新的FPGA器件上,因为密钥是被存储在FPGA当中的。
美国专利US6931543公开了一种数据流解密电路,但是其加密和解密的算法是基于64位的自行开发出来的算法。相对于当今广泛商业应用的AES128,192和256位的算法比较,保密性较低。而且,其密钥存储在FPGA当中的易失性存储器中,为保持器件掉电后密钥不丢失,需采用电池供电,如电池出现问题或供电不稳定,系统将会出现严重问题。
美国专利US7675313也公开了一种数据流解密电路,其解密模块的算法采用了AES标准,安全性大大提高;并且其密钥存储在非易失性的存储器中,从而不再需要外加电池。但是,在此方案中采用了3组存储器,即多数胜出的解码方法。这种增加电路复杂度的作法是为了解决非易失性的存储器良率过低的问题,对解密方法没有任何帮助。并且,此方案只能存放一个密钥,如用户想更换密钥或想利用多个密钥作更进一步的加密则没有可能。
实用新型内容
本实用新型实施例提供一种FPGA加密数据流的解密电路,以解决现有技术中的解密电路无法在密钥存储器中存放多个密钥,实现多重解密或损坏解密的问题。
为了达到上述目的,本实用新型实施例公开了一种FPGA加密数据流的解密电路,所述解密电路包括:数据输入接口、指令解码器、移位寄存器、密钥存储器、密钥界面模块、密钥扩展模块以及解密模块;所述数据输入接口分别连接所述指令解码器、移位寄存器和解密模块;所述指令解码器连接所述移位寄存器和密钥界面模块;所述密钥界面模块连接所述密钥存储器和密钥扩展模块;其中,所述数据输入接口用于输入加密的数据文件或密钥指令,并将所述加密的数据文件送到所述解密模块,或将所述密钥指令送到所述指令解码器;当所述密钥指令为密钥写入指令时,所述数据输入接口接收输入的数据文件为密钥,所述指令解码器根据所述密钥写入指令将所述密钥移入所述移位寄存器,当所述移位寄存器位满后,将所述密钥加载到所述密钥界面模块中的密钥移位寄存器上,并写入到所述密钥存储器进行存储;当所述密钥指令为数据解密指令时,所述数据输入接口接收输入的数据为加密数据流,所述加密数据流经字节整合后进入到所述解密模块;所述指令解码器根据所述数据解密指令从所述密钥存储器中选取相应的AES密钥,送至所述密钥界面模块中的密钥移位寄存器,所述密钥扩展模块对所述密钥移位寄存器中的AES密钥进行扩展操作后送至所述解密模块;所述解密模块结合所述扩展后的AES密钥,对所述加密数据流进行解密。
本实用新型实施例的FPGA加密数据流的解密电路,有专门的非易失性密钥存储电路用以存储多个密钥,可进行多重加密和损坏加密,不但没有增加解密电路的复杂度和降低解密电路的编程速度,而且增强了加密数据的安全性,使FPGA的解加密更加可靠安全。
附图说明
为了更清楚地说明本实用新型实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本实用新型的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本实用新型实施例的FPGA加密数据流的解密电路的结构示意图;
图2为本实用新型实施例的包括密钥移位寄存器以及运算模块的FPGA加密数据流的解密电路的结构示意图;
图3为利用图2所示实施例进行密钥写入的流程示意图;
图4为利用图2所示实施例进行数据流解密的流程示意图;
图5为利用图2所示实施例进行数据流解密的另一个实施例的流程示意图;
图6为利用本实用新型实施例的FPGA加密数据流的解密电路进行解密的方法流程图。
具体实施方式
下面将结合本实用新型实施例中的附图,对本实用新型实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本实用新型一部分实施例,而不是全部的实施例。基于本实用新型中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本实用新型保护的范围。
图1为本实用新型实施例的FPGA加密数据流的解密电路的结构示意图。如图所示,所述解密电路包括:数据输入接口1、指令解码器2、移位寄存器3、密钥存储器4、密钥界面模块5、密钥扩展模块6以及解密模块7。其中,所述数据输入接口1分别连接所述指令解码器2、移位寄存器3和解密模块7;所述指令解码器2连接所述移位寄存器3和密钥界面模块5;所述密钥界面模块5连接所述密钥存储器4和密钥扩展模块6。所述数据输入接口1用于输入加密的数据文件或密钥指令,并将所述加密的数据文件送到所述解密模块7,或将所述密钥指令送到所述指令解码器2。
在本实用新型实施例中,所述数据输入接口1为JTAG接口、专用串行接口或8位CPU接口,加密数据流可以从JTAG接口、专用串行接口或8位CPU接口任一个接口输入。在本实施例中,所述指令解码器2、移位寄存器3、密钥存储器4、密钥界面模块5、密钥扩展模块6以及解密模块7都可以用硬件电路或者芯片来实现。
在本实用新型实施例中,密钥存储器4为非易失性密钥存储器,可存储多个密钥,有足够的存储空间及相应的地址解码器。如N个128位的密钥需要有N*128个存储单元,地址解码器负责将密钥存在相应地址的存储单元中。
在本实用新型实施例中,密钥可以为128位、192位或256位,即可以是AES中认可的所有长度,对应的移位寄存器3也可以是128位移位寄存器、192位移位寄存器或256位移位寄存器。
在图1所示实施例中,如图2所示,密钥界面模块5还包括密钥移位寄存器502以及运算模块501,其中,密钥移位寄存器502用以将密钥从移位寄存器3中移入到密钥存储器4中,或者将密钥从密钥存储器4中移入到密钥扩展模块6中。运算模块501用于在利用本实用新型的解密电路进行解密时,将从密钥存储器4中取出的密钥进行运算,生成一最终解密码。其中,运算包括加、减、乘、除等数学运算或者逻辑运算等。当然,在本发明实施例中,也可以不应用运算模块501对取出的密钥进行运算,直接将其作为最终的解密码,因此,运算模块501的功能是可以选择使用的。
本实用新型实施例的FPGA加密数据流的解密电路的原理是:
当输入的数据流为非加密数据流时,如图1和2所示,非加密数据流直接送至SRAM数据整合单元中进行数据整合后,送至FPGA的SRAM存储器编程处理。
当所述密钥指令为密钥写入指令时,如图3所示,所述数据输入接口1接收输入的数据文件为密钥,所述指令解码器2根据所述密钥写入指令将所述密钥移入所述移位寄存器3,当所述移位寄存器3位满后,将所述密钥加载到所述密钥界面模块5中的密钥移位寄存器502上,然后密钥存储器4经过密钥编程将密钥写入到所述密钥存储器4中。如图3所示,密钥存储器4进行密钥编程的过程为:首先收到编程指令,判断第1位是否为“0”,因为非易失性存储器的初始状态为“0”,所以可以开始看下一位而不需启动写入电路。如果是“1”,则启动写入电路,写入“1”,直到“1”被写入后可开始看下一位。看下一位的动作是由密钥向低一位移位来完成的。地址解码器会自动指向下一个要写的非易失性存储器的位置,此过程在密钥移位128次后结束(以128位移位寄存器为例说明)。如此,可在非易失性密钥存储器4中存储有多个密钥。
当所述密钥指令为数据解密指令时,如图4所示,所述数据输入接口1接收输入的数据为加密数据流,所述加密数据流经字节整合后进入到所述解密模块7;所述指令解码器2根据所述数据解密指令从所述密钥存储器4中选取相应的AES密钥,送至所述密钥界面模块5中的密钥移位寄存器502,所述密钥扩展模块6对所述密钥移位寄存器502中的AES密钥进行扩展操作后送至所述解密模块7;所述解密模块7结合所述扩展后的AES密钥,对所述加密数据流进行解密。以128位密钥为例,解密模块7结合密钥,一次解密128位数据,直到整个加密数据流结束。在解密的同时,解密的数据也被送至一数据移位寄存器,开始对FPGA的SRAM存储器编程。整个解密,编程过程是连续的,不需要再加缓存。除开始的读密钥步骤,编程速度并未因数据加密而变得缓慢。
在本发明一实施例中,当用户存储一个密钥时,自动使用这一个,当用户存储新的密钥时,则自动使用新的密钥。并且,本发明还可以实现:当从密钥存储器4中取出的第一个密钥失效后,所述密钥存储器4自动激活下一个密钥进行解密。因此,本发明实施例的解密电路可以进行损坏加密,如果密钥损坏或者用户想更换密钥都可以实现。
在另一实施例中,如图5所示,当所述密钥指令为数据解密指令时,所述数据输入接口1接收输入的数据为加密数据流,加密数据流经字节整合后进入到所述解密模块7;所述指令解码器2根据所述数据解密指令从所述密钥存储器4中选取相应的AES密钥,送至所述密钥界面模块5中的密钥移位寄存器502,此时,选取的对应的AES密钥为多个,在将所述多个AES密钥送到密钥扩展模块6前,先利用运算模块501对多个AES密钥进行一系列运算,生成最终的一个密钥送至所述密钥扩展模块6进行扩展操作;所述解密模块7结合所述扩展后的最终的密钥,对所述加密数据流进行解密。
在此实施例中,从密钥存储器4中选取对应的多个密钥,例如为密钥A和B,在运算单元501中对其进行加法运算后得到最终密钥C=A+B,然后将密钥C送至密钥扩展模块6中进行扩展操作。根据此实施例,即使不法分子同时截获了加密数据流和放置密钥的存储器数据,如果不知道运算法则,也无法对加密数据流进行解密,因此,安全性更强,使FPGA的解加密更加可靠安全。
图6为利用本实用新型实施例的FPGA加密数据流的解密电路进行解密的方法流程图。如图所示,所述解密方法包括:步骤S101,输入加密数据流和解密指令;步骤S102,根据所述解密指令从密钥存储器中选取相应的AES密钥;步骤S103,对所述AES密钥进行运算生成最终解密码;步骤S104,将所述最终解密码进行扩展操作;步骤S105,根据所述扩展操作后的解密码,对所述解密数据流进行解密。
在本实施例中,步骤S101中的加密数据流和加密指令是通过数据输入接口输入的,所述数据输入接口可为JTAG接口、专用串行接口或8位CPU接口,加密数据流或加密指令可以从JTAG接口、专用串行接口或8位CPU接口任一个接口输入。
在本实用新型实施例中,密钥存储器为非易失性密钥存储器,可存储多个密钥,有足够的存储空间及相应的地址解码器。如N个128位的密钥需要有N*128个存储单元,地址解码器负责将密钥存在相应地址的存储单元中。
在本实用新型实施例中,密钥可以为128位、192位或256位,即可以是AES中认可的所有长度。
本实用新型实施例的FPGA加密数据流的解密电路,有专门的非易失性密钥存储电路用以存储多个密钥,可进行多重加密和损坏加密,不但没有增加解密电路的复杂度和降低解密电路的编程速度,而且增强了加密数据的安全性,使FPGA的解加密更加可靠安全。
以上所述的具体实施例,对本实用新型的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本实用新型的具体实施例而已,并不用于限定本实用新型的保护范围,凡在本实用新型的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本实用新型的保护范围之内。
Claims (5)
1.一种FPGA加密数据流的解密电路,其特征在于,所述解密电路包括:数据输入接口、指令解码器、移位寄存器、密钥存储器、密钥界面模块、密钥扩展模块以及解密模块;
所述数据输入接口分别连接所述指令解码器、移位寄存器和解密模块;所述指令解码器连接所述移位寄存器和密钥界面模块;所述密钥界面模块连接所述密钥存储器和密钥扩展模块;其中,
所述数据输入接口用于输入加密的数据文件或密钥指令,并将所述加密的数据文件送到所述解密模块,或将所述密钥指令送到所述指令解码器;
当所述密钥指令为密钥写入指令时,所述数据输入接口接收输入的数据文件为密钥,所述指令解码器根据所述密钥写入指令将所述密钥移入所述移位寄存器,当所述移位寄存器位满后,将所述密钥加载到所述密钥界面模块中的密钥移位寄存器上,并写入到所述密钥存储器进行存储;
当所述密钥指令为数据解密指令时,所述数据输入接口接收输入的数据为加密数据流,所述加密数据流经字节整合后进入到所述解密模块;所述指令解码器根据所述数据解密指令从所述密钥存储器中选取相应的AES密钥,送至所述密钥界面模块中的密钥移位寄存器,所述密钥扩展模块对所述密钥移位寄存器中的AES密钥进行扩展操作后送至所述解密模块;所述解密模块结合所述扩展后的AES密钥,对所述加密数据流进行解密。
2.如权利要求1所述的FPGA加密数据流的解密电路,其特征在于,所述密钥界面模块还包括有运算模块,用于对从所述密钥存储器中选取的多个密码进行运算,生成最终的解密码。
3.如权利要求1所述的FPGA加密数据流的解密电路,其特征在于,所述密钥存储器为非易失性密钥存储器。
4.如权利要求1所述的FPGA加密数据流的解密电路,其特征在于,所述移位寄存器为128位、192位或256位。
5.如权利要求1所述的FPGA加密数据流的解密电路,其特征在于,所述数据输入接口为JTAG接口、专用串行接口或8位CPU接口。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201220690910 CN203086489U (zh) | 2012-12-13 | 2012-12-13 | 一种fpga加密数据流的解密电路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201220690910 CN203086489U (zh) | 2012-12-13 | 2012-12-13 | 一种fpga加密数据流的解密电路 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN203086489U true CN203086489U (zh) | 2013-07-24 |
Family
ID=48832291
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201220690910 Expired - Fee Related CN203086489U (zh) | 2012-12-13 | 2012-12-13 | 一种fpga加密数据流的解密电路 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN203086489U (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103873227A (zh) * | 2012-12-13 | 2014-06-18 | 艺伦半导体技术股份有限公司 | 一种fpga加密数据流的解密电路及解密方法 |
CN109995508A (zh) * | 2019-04-30 | 2019-07-09 | 上海安路信息科技有限公司 | 一种fpga码流的加解密装置及方法 |
CN112583783A (zh) * | 2020-07-22 | 2021-03-30 | 厦门智多晶科技有限公司 | 一种集成于fpga的配置数据解密电路及fpga |
-
2012
- 2012-12-13 CN CN 201220690910 patent/CN203086489U/zh not_active Expired - Fee Related
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103873227A (zh) * | 2012-12-13 | 2014-06-18 | 艺伦半导体技术股份有限公司 | 一种fpga加密数据流的解密电路及解密方法 |
CN109995508A (zh) * | 2019-04-30 | 2019-07-09 | 上海安路信息科技有限公司 | 一种fpga码流的加解密装置及方法 |
CN109995508B (zh) * | 2019-04-30 | 2021-02-02 | 上海安路信息科技有限公司 | 一种fpga码流的加解密装置及方法 |
CN112583783A (zh) * | 2020-07-22 | 2021-03-30 | 厦门智多晶科技有限公司 | 一种集成于fpga的配置数据解密电路及fpga |
CN112583783B (zh) * | 2020-07-22 | 2022-11-08 | 厦门智多晶科技有限公司 | 一种集成于fpga的配置数据解密电路及fpga |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7225220B2 (ja) | 記憶データ暗号化/復号化装置及び方法 | |
KR102013841B1 (ko) | 데이터의 안전한 저장을 위한 키 관리 방법 및 그 장치 | |
CN102334307B (zh) | 密码系统的密钥恢复机制 | |
US8428251B2 (en) | System and method for stream/block cipher with internal random states | |
US20140164793A1 (en) | Cryptographic information association to memory regions | |
CN103154963A (zh) | 对地址的加扰和对需存储于存储设备中的写入数据的加密 | |
US20190384938A1 (en) | Storage apparatus and method for address scrambling | |
EP3667535B1 (en) | Storage data encryption and decryption device and method | |
TWI570590B (zh) | 與使用縮減回合編密的xts加密系統一起使用之動態加密金鑰 | |
CN111819562A (zh) | 密钥加密处理 | |
CN104516834A (zh) | 在永久存储器中的数据存储 | |
US7841014B2 (en) | Confidential information processing method, confidential information processor, and content data playback system | |
US10320562B2 (en) | Application specific low-power secure key | |
US8826042B2 (en) | Memory controller, memory control apparatus, memory device, memory information protection system, control method for memory control apparatus, and control method for memory device | |
US9729319B2 (en) | Key management for on-the-fly hardware decryption within integrated circuits | |
CN112887077A (zh) | 一种ssd主控芯片随机缓存保密方法和电路 | |
WO2020010642A1 (zh) | 安全加密芯片及含有该芯片的电子设备 | |
JP2008524969A (ja) | イン−ストリームデータ暗号化/復号の機能を有するメモリシステム | |
CN203086489U (zh) | 一种fpga加密数据流的解密电路 | |
JP2005122745A (ja) | 対称型マルチプロセッサを持つ電子機器におけるデータの暗号化 | |
CN213876729U (zh) | 一种ssd主控芯片随机缓存保密电路 | |
US8379850B1 (en) | Method and integrated circuit for secure encryption and decryption | |
CN103873227A (zh) | 一种fpga加密数据流的解密电路及解密方法 | |
KR101126596B1 (ko) | 단일 및 다중 aes 동작을 지원하기 위한 듀얼 모드 aes 장치 및 방법 | |
JPWO2006118101A1 (ja) | 機密情報処理用ホスト機器および機密情報処理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130724 Termination date: 20131213 |