CN116541898A - 一种基于fpga实现多算法可重配置的密码卡设计方法 - Google Patents
一种基于fpga实现多算法可重配置的密码卡设计方法 Download PDFInfo
- Publication number
- CN116541898A CN116541898A CN202310827971.2A CN202310827971A CN116541898A CN 116541898 A CN116541898 A CN 116541898A CN 202310827971 A CN202310827971 A CN 202310827971A CN 116541898 A CN116541898 A CN 116541898A
- Authority
- CN
- China
- Prior art keywords
- algorithm
- password
- card
- fpga
- control area
- 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
Links
- 238000004422 calculation algorithm Methods 0.000 title claims abstract description 99
- 238000000034 method Methods 0.000 title claims abstract description 24
- 238000013461 design Methods 0.000 title claims abstract description 11
- 230000003068 static effect Effects 0.000 claims abstract description 29
- 238000004891 communication Methods 0.000 claims description 6
- 238000010586 diagram Methods 0.000 description 4
- 230000003993 interaction Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 1
- 230000034184 interaction with host Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/76—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in application-specific integrated circuits [ASIC] or field-programmable devices, e.g. field-programmable gate arrays [FPGA] or programmable logic devices [PLD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种基于FPGA实现多算法可重配置的密码卡设计方法,包括:根据FPGA内部各模块功能分别划分为静态逻辑控制区域和动态逻辑控制区域;通过编程工具在所述动态逻辑控制区域添加多种密码算法;将所述静态逻辑控制区域编译到单个静态配置文件中,将所述密码卡所需的多种密码算法编译成相对应的多个动态配置文件中。为保护密码卡本身的安全性,可在出厂时将密码卡所支持的密码算法设置为固定的模拟算法或者根据客户要求设置固定算法,在真正使用密码卡进行加解密运算时,可根据不同的需求与应用场景,将事先生产的不同密码算法对应的动态配置文件写入密码卡,达到保护密码算法的目的,增加密码卡加解密功能的保障性。
Description
技术领域
本发明涉及信息安全技术领域,涉及密码卡的算法保护与在线更新,更具体的说是涉及一种基于FPGA实现多算法可重配置的密码卡设计方法。
背景技术
目前,市面上存在很多版本类型的密码卡,基本上绝大多数密码卡在出厂时就已经将密码卡本身所支持的密码算法类型固定,但是由于密码算法种类较多,且占用资源较大,在有限的硬件资源上很难支持所有的密码算法,这样就导致市面上的密码卡根据密码算法的不同而区分出多种版本类型。
另外由于密码卡所支持的密码算法已经固定,在一些比较重要的场合中,如果意外出现密码算法泄露的情况时,密码卡已经不能为保密数据提供安全保护,此时需要重启机器并更换其它版本类型的密码卡,才能继续保护数据安全,这样操作相当繁琐且危险,在这种背景下目前市面上的密码卡都存在着一定的安全缺陷,对于密码卡的灵活性与适应性重视程度较低。
发明内容
有鉴于此,本发明提供了一种基于FPGA实现多算法可重配置的密码卡设计方法,旨在解决因密码算法种类较多而导致密码卡区分出过多版本类型的问题,同时也可以在密码算法意外泄露时重新配置密码算法,为密码卡密码算法提供在线保护。
为了实现上述目的,本发明采用如下技术方案:
本发明提供一种基于FPGA实现多算法可重配置的密码卡设计方法,包括以下步骤:
S1、根据FPGA内部各模块功能分别划分为静态逻辑控制区域和动态逻辑控制区域;
S2、通过编程工具在所述动态逻辑控制区域添加多种密码算法;
S3、将所述静态逻辑控制区域编译到单个静态配置文件中,将所述密码卡所需的多种密码算法编译成相对应的多个动态配置文件中。
在一个实施例中,所述静态逻辑控制区域包括:
数据通信模块、算法控制模块、协议解析模块以及算法在线更新控制模块。
在一个实施例中,所述动态逻辑控制区域包括:密码卡自身支持的多种密码算法逻辑。
在一个实施例中,还包括:
S4、在出厂时将所述静态逻辑控制区域对应的静态配置文件固化到所述密码卡中。
在一个实施例中,还包括:
S5、当所述密码卡正常工作时,判断所述密码卡中所支持的密码算法是否支持当前数据加解密运算;若不支持,则向所述密码卡发送算法重配置指令,选择对应密码算法的动态配置文件写入密码卡,利用所述算法在线更新控制模块完成对密码算法的局部动态重配置。
经由上述的技术方案可知,与现有技术相比,本发明公开提供了一种基于FPGA实现多算法可重配置的密码卡设计方法,为保护密码卡本身的安全性,可在出厂时将密码卡所支持的密码算法设置为固定的模拟算法或者根据客户要求设置固定算法,在真正使用密码卡进行加解密运算时,可根据不同的需求与应用场景,将事先生产的不同密码算法对应的动态配置文件写入密码卡,达到保护密码算法的目的,增加密码卡加解密功能的保障性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明所使用的外部硬件结构示意图。
图2为本发明的动态重配置功能组成示意图。
图3为本发明的方法应用过程可重配的流程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例公开了一种基于FPGA实现多算法可重配置的密码卡设计方法,如图1所示,为该密码卡正常工作需要的整体硬件结构示意图,展示了该密码卡应用的场景和硬件环境,该密码卡主要外界数据通信接口为PCIe接口,板卡硬件组成主要包括:FPGA模块、SOC主控模块、存储模块以及电源管理模块。
板卡硬件各模块功能如下所述:
(1)FPGA模块:此模块主要功能为密码算法的实现,并保障板卡通过PCIe接口与主机设备实现高速数据交互;
(2)SOC模块:此模块主要功能为在数据加解密过程中的管理功能,如密钥管理、算法调度等;
(3)存储模块:此模块主要功能为板卡FPGA与SOC的固件存储;
(4)电源管理模块:此模块主要功能为板卡各个模块提供电源,以保障各个模块的正常工作。
本发明公开的方法为算法可重配的密码卡设计方法,该方法主要是由图1中的FPGA模块来具体实现,具体包括:
S1、根据FPGA内部各模块功能分别划分为静态逻辑控制区域和动态逻辑控制区域;
S2、通过编程工具在所述动态逻辑控制区域添加多种密码算法;
S3、将所述静态逻辑控制区域编译到单个静态配置文件中,将所述密码卡所需的多种密码算法编译成相对应的多个动态配置文件中。
S4、在出厂时将所述静态逻辑控制区域对应的静态配置文件固化到所述密码卡中。
S5、当所述密码卡正常工作时,判断所述密码卡中所支持的密码算法是否支持当前数据加解密运算;若不支持,则向所述密码卡发送算法重配置指令,选择对应密码算法的动态配置文件写入密码卡,利用所述算法在线更新控制模块完成对密码算法的局部动态重配置。
其中,FPGA模块内部可根据功能分别划分为静态逻辑控制区域与动态逻辑控制区域,具体划分如下说明:
1.静态逻辑控制区域:此模块主要功能包括数据通信模块、算法控制模块、协议解析模块以及算法在线更新控制模块;
静态逻辑控制区域中各模块功能如下所述:
(1)数据通信模块:此模块主要功能为实现FPGA模块与外部模块的数据交互,并且与协议解析模块交互运算数据;
(2)算法控制模块:在进行数据算法加解密时,此模块主要与算法进行数据交互,实现对算法的控制,并处理后的数据返回;
(3)协议解析模块:在进行数据处理时,此模块会根据事先制定好的通信协议进行帧头解析,获取此次数据处理需要进行的具体信息;
(4)算法在线更新模块:当FPGA进行动态逻辑配置时,此模块将接收到的动态配置文件传入动态逻辑控制区域,对动态逻辑控制区域内的算法进行更新。
2.动态逻辑控制区域:此模块主要包括密码卡本身所支持的各种密码算法逻辑。
FPGA内部功能模块框图详见图2。
本发明公开的算法可重配的密码卡设计方法中,算法可重配功能主要通过使用可编程逻辑器件上(如Xilinx的FPGA)内部配置访问端口 (Internal Configuration AccessPort,ICAP)来实现,首先根据FPGA内部各模块功能划分静态与动态两个区域,通过编程工具在动态配置区域添加各种密码算法,然后将静态逻辑控制区域编译到单个静态配置文件中,将密码卡所需的各种密码算法编译成相对应的多个动态配置文件中,这样就可以把密码卡的FPGA模块实现的密码算法对应到一个静态配置文件和多个动态配置文件,从而在有限的FPGA资源里支持更多的密码算法。比如密码算法包括AES、SM1(国密)、SM4(国密)、DES、3DES、IDEA、RC2等。
然后在出厂时将静态逻辑控制区域对应的静态配置文件固化到密码卡中,以便客户使用。在密码卡系统正常工作时,上层用户可判断密码卡中所支持的密码算法是否支持当前数据加解密运算,若支持则无需对密码卡进行算法重配置,若不支持则向密码卡发送算法重配置命令,并选择对应密码算法配置文件写入密码卡,利用算法在线更新控制模块完成对密码算法的局部动态重配置,以满足当前数据的加解密运算。
密码卡算法更新与正常业务具体应用流程如图3所示:
Step1:开始;
Step2:密码卡初始化;
Step3:上层是否发送重配置命令,若是执行step4;若否执行step7;
Step4:开始接收动态配置文件并存储;
Step5:算法在线更新控制模块,对算法进行更新;
Step6:更新是否完成;是则执行step7;否则执行step8;
Step7:密码卡系统正常工作;执行step9;
Step8:返回更新识别错误码;
Step 9:结束。
本发明公开的方法基于可编程逻辑器件(Xilinx的FPGA)上实现,在具体应用中有几个关键部分,包括:
1)、动态逻辑控制区域可以包含多个密码算法,在编程工具中可以把多个算法放在动态逻辑控制区域,生成多个动态配置文件以便应对多种应用场景;
2)、在用户需要进行动态配置算法时,需要将动态配置文件整个下发到密码卡的FPGA模块中,FPGA模块会实时检测用户是否有算法更新的需求;
3)、在算法更新过程中,由于密码卡正在对密码算法进行配置,配置成功后密码卡会返回配置完成的信号,在配置完成之前不可以对调用密码卡进行算法业务。
为保护密码卡本身的安全性,基于本发明的方法,可在出厂时将密码卡所支持的密码算法设置为固定的模拟算法或者根据客户要求设置固定算法,在真正使用密码卡进行加解密运算时,可根据不同的需求与应用场景,将事先生产的不同密码算法对应的动态配置文件写入密码卡,达到保护密码算法的目的,增加密码卡加解密功能的保障性。最终实现在有限的硬件资源上可以支持所有的密码算法,并且当意外出现密码算法泄露的情况时,密码卡已经不能为保密数据提供安全保护,此时只需要重新请求并配置对应的动态配置文件,就可以继续保护数据安全,而无需重新启动机器更换其它版本类型的密码卡。也减少了繁琐操作,增强了安全性。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (5)
1.一种基于FPGA实现多算法可重配置的密码卡设计方法,其特征在于,包括以下步骤:
S1、根据FPGA内部各模块功能分别划分为静态逻辑控制区域和动态逻辑控制区域;
S2、通过编程工具在所述动态逻辑控制区域添加多种密码算法;
S3、将所述静态逻辑控制区域编译到单个静态配置文件中,将所述密码卡所需的多种密码算法编译成相对应的多个动态配置文件中。
2.根据权利要求1所述的一种基于FPGA实现多算法可重配置的密码卡设计方法,其特征在于,所述静态逻辑控制区域包括:
数据通信模块、算法控制模块、协议解析模块以及算法在线更新控制模块。
3.根据权利要求1所述的一种基于FPGA实现多算法可重配置的密码卡设计方法,其特征在于,所述动态逻辑控制区域包括:密码卡自身支持的多种密码算法逻辑。
4.根据权利要求2所述的一种基于FPGA实现多算法可重配置的密码卡设计方法,其特征在于,还包括:
S4、在出厂时将所述静态逻辑控制区域对应的静态配置文件固化到所述密码卡中。
5.根据权利要求4所述的一种基于FPGA实现多算法可重配置的密码卡设计方法,其特征在于,还包括:
S5、当所述密码卡正常工作时,判断所述密码卡中所支持的密码算法是否支持当前数据加解密运算;若不支持,则向所述密码卡发送算法重配置指令,选择对应密码算法的动态配置文件写入密码卡,利用所述算法在线更新控制模块完成对密码算法的局部动态重配置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310827971.2A CN116541898B (zh) | 2023-07-07 | 2023-07-07 | 一种基于fpga实现多算法可重配置的密码卡设计方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310827971.2A CN116541898B (zh) | 2023-07-07 | 2023-07-07 | 一种基于fpga实现多算法可重配置的密码卡设计方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116541898A true CN116541898A (zh) | 2023-08-04 |
CN116541898B CN116541898B (zh) | 2023-10-13 |
Family
ID=87452880
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310827971.2A Active CN116541898B (zh) | 2023-07-07 | 2023-07-07 | 一种基于fpga实现多算法可重配置的密码卡设计方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116541898B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1553650A (zh) * | 2003-06-08 | 2004-12-08 | 华为技术有限公司 | 动态超级密码生成方法及交换机安全管理方法 |
CN105701166A (zh) * | 2015-12-30 | 2016-06-22 | 广东欧珀移动通信有限公司 | 一种广告拦截方法及拦截系统 |
CN106843955A (zh) * | 2017-01-17 | 2017-06-13 | 西安电子科技大学 | 基于文件压缩及非接触式的fpga动态配置方法 |
US20180095670A1 (en) * | 2016-09-30 | 2018-04-05 | Amazon Technologies, Inc. | Controlling access to previously-stored logic in a reconfigurable logic device |
US20190325166A1 (en) * | 2019-06-28 | 2019-10-24 | Intel Corporation | Post quantum public key signature operation for reconfigurable circuit devices |
CN112291237A (zh) * | 2020-10-28 | 2021-01-29 | 山东超越数控电子股份有限公司 | 一种基于国产fpga实现软件定义的可重构对称加密方法 |
CN113297588A (zh) * | 2021-01-22 | 2021-08-24 | 阿里巴巴集团控股有限公司 | 密码处理设备、以及密码处理设备的控制方法和装置 |
CN114911749A (zh) * | 2022-07-20 | 2022-08-16 | 中科亿海微电子科技(苏州)有限公司 | 一种具有可编程逻辑块部分重构功能的方法及fpga |
CN115220810A (zh) * | 2022-07-01 | 2022-10-21 | 中国电子科技集团公司第三十研究所 | 基于龙芯2k1000的fpga资源动态加载配置方法 |
-
2023
- 2023-07-07 CN CN202310827971.2A patent/CN116541898B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1553650A (zh) * | 2003-06-08 | 2004-12-08 | 华为技术有限公司 | 动态超级密码生成方法及交换机安全管理方法 |
CN105701166A (zh) * | 2015-12-30 | 2016-06-22 | 广东欧珀移动通信有限公司 | 一种广告拦截方法及拦截系统 |
US20180095670A1 (en) * | 2016-09-30 | 2018-04-05 | Amazon Technologies, Inc. | Controlling access to previously-stored logic in a reconfigurable logic device |
CN106843955A (zh) * | 2017-01-17 | 2017-06-13 | 西安电子科技大学 | 基于文件压缩及非接触式的fpga动态配置方法 |
US20190325166A1 (en) * | 2019-06-28 | 2019-10-24 | Intel Corporation | Post quantum public key signature operation for reconfigurable circuit devices |
CN112291237A (zh) * | 2020-10-28 | 2021-01-29 | 山东超越数控电子股份有限公司 | 一种基于国产fpga实现软件定义的可重构对称加密方法 |
CN113297588A (zh) * | 2021-01-22 | 2021-08-24 | 阿里巴巴集团控股有限公司 | 密码处理设备、以及密码处理设备的控制方法和装置 |
CN115220810A (zh) * | 2022-07-01 | 2022-10-21 | 中国电子科技集团公司第三十研究所 | 基于龙芯2k1000的fpga资源动态加载配置方法 |
CN114911749A (zh) * | 2022-07-20 | 2022-08-16 | 中科亿海微电子科技(苏州)有限公司 | 一种具有可编程逻辑块部分重构功能的方法及fpga |
Non-Patent Citations (2)
Title |
---|
YOHEI HORI 等: "Secure Content Distribution System Based on Run-Time Partial Hardware Reconfiguration", 《2006 INTERNATIONAL CONFERENCE ON FIELD PROGRAMMABLE LOGIC AND APPLICATIONS》, pages 1 - 4 * |
易晟: "FPGA 在线演化自修复方法研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》, no. 1, pages 135 - 700 * |
Also Published As
Publication number | Publication date |
---|---|
CN116541898B (zh) | 2023-10-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2696531B1 (en) | Initialization of embedded secure elements | |
CN108898005B (zh) | 一种硬盘识别的方法、系统、设备及计算机可读存储介质 | |
CN104380652A (zh) | 用于nfc使能设备的多发行商安全元件分区架构 | |
CN102867157B (zh) | 移动终端和数据保护方法 | |
CN106682521B (zh) | 基于驱动层的文件透明加解密系统及方法 | |
CN105612715A (zh) | 具有可配置访问控制的安全处理单元 | |
US8328104B2 (en) | Storage device management systems and methods | |
CN111191252A (zh) | 一种智能卡操作系统加解密方法、装置及存储介质 | |
CN104298936B (zh) | 一种基于cpld芯片的fpga加密及参数配置系统 | |
CN102711089B (zh) | 对移动终端进行锁网锁卡的方法及装置 | |
CN102118503B (zh) | 数据保护方法、装置及终端 | |
CN107315966A (zh) | 固态硬盘数据加密方法及系统 | |
CN105512520B (zh) | 一种反克隆的车载系统及其工作方法 | |
US8798261B2 (en) | Data protection using distributed security key | |
CN104182691B (zh) | 数据保密方法及装置 | |
CN116541898B (zh) | 一种基于fpga实现多算法可重配置的密码卡设计方法 | |
WO2015154469A1 (zh) | 数据库的操作方法及装置 | |
CN102681672B (zh) | 可复用加密键盘电路及其设计方法 | |
CN103873245B (zh) | 虚拟机系统数据加密方法及设备 | |
CN116821020A (zh) | Bmc控制器、信息安全系统以及信息交互方法 | |
CN110636491A (zh) | 面向服务的可信执行模块及通信方法 | |
CN105430022A (zh) | 一种数据输入控制方法和终端设备 | |
CN104202166A (zh) | 一种erp系统数据加密方法 | |
CN101727557B (zh) | 保密隔离硬盘及其保密方法 | |
JP6763096B1 (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 |