CN110991129B - 一种基于fpga的密码协处理器全自动仿真验证方法 - Google Patents
一种基于fpga的密码协处理器全自动仿真验证方法 Download PDFInfo
- Publication number
- CN110991129B CN110991129B CN201911314758.1A CN201911314758A CN110991129B CN 110991129 B CN110991129 B CN 110991129B CN 201911314758 A CN201911314758 A CN 201911314758A CN 110991129 B CN110991129 B CN 110991129B
- Authority
- CN
- China
- Prior art keywords
- fpga
- password
- verification
- coprocessor
- algorithm
- 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.)
- Active
Links
- 238000012795 verification Methods 0.000 title claims abstract description 67
- 238000000034 method Methods 0.000 title claims abstract description 28
- 238000004088 simulation Methods 0.000 title claims abstract description 27
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 46
- 238000004364 calculation method Methods 0.000 claims description 13
- 230000002093 peripheral effect Effects 0.000 claims description 4
- 125000004122 cyclic group Chemical group 0.000 description 3
- 230000007547 defect Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000005284 excitation Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013524 data verification Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Classifications
-
- 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
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明涉及一种基于FPGA的密码协处理器全自动仿真验证方法,通过预先生成的随机数作为输入,利用软件和FPGA硬件电路平台分别实现密码协处理器的核心算法,计算的结果以文件为载体进行比较,同时全程无需人工干预,既提高了效率,缩短了时间,又能使算法达到足够的计算量,确保功能正确性。
Description
技术领域
本发明涉及一种对密码算法进行验证的方法,具体涉及一种基于FPGA的密码协处理器全自动仿真验证方法。
背景技术
密码协处理器(coprocessor),作为实现密码算法的一种芯片设计,为了协助中央处理器完成其无法执行或提高其执行效率而设计的辅助芯片。密码算法由于其特殊的实现方式,复杂的计算过程,在设计初期,需对其进行大量的数据验证才能保证设计功能的正确性。传统的验证方法是人工操作生成随机数作为输入,待运算完成后,使用仿真软件查看波形,在逻辑功能无误的情况下,再使用FPGA验证平台进行验证,此方法耗费时间长,效率低,并且计算次数太少,无法准确验证算法功能。本发明中提到的方法在设置好验证次数后,通过不同方式方法实现待验证的算法,计算的结果以文件为载体进行比较,同时全程无需人工干预,既提高了效率,缩短了时间,又能使算法达到足够的计算量,确保功能正确性。
发明内容
为克服现有技术的不足,本发明提供一种基于FPGA的密码协处理器全自动仿真验证方法。该方法通过预先生成的随机数作为输入,密码协处理器核心算法由软件和FPGA硬件电路平台分别实现并计算,最后将输出结果进行比对,达到仿真验证的目的。
为实现上述目的,本发明采取的技术方案为:一种基于FPGA的密码协处理器全自动仿真验证方法,包括如下步骤:
步骤一、随机源模块随机生成用于密码协处理器实现密码算法的输入数据,保存为随机数文件;
步骤二、将密码协处理器加载至FPGA验证平台并在PC端加载实现待验证密码算法的软件程序;
步骤三、FPGA验证平台读取随机数文件作为待验证密码算法的输入,PC端读取随机数文件作为待验证算法的输入并在PC端运行实现待验证密码算法的软件程序;
步骤四、对比FPGA验证平台和PC端的计算结果,若相同,则进入步骤五;若不同,则进入步骤八;所述密码协处理器的加载到FPGA验证平台实现以及由软件实现时,两种实现算法的方法是不相同的,但得到的最后结果应为一致,这样才能验证硬件电路实现的正确性。
步骤五、验证次数累加一次,判断是否到达所设置的验证次数,若是,则进入步骤六;若否,则进入步骤七;验证的次数越多,理论上出现错误的概率就越小。
步骤六、输出计算结果并进入步骤九;
步骤七、转至步骤一;
步骤八、输出错误位置及结果并进入步骤九;在软件及FPGA测试激励文件中,会随时输出运算中间结果及运算步骤,当出现错误时,根据输出的运算中间结果和步骤可定位错误位置。
步骤九、自动仿真完成。
上述方法通过预先生成的随机数作为输入,密码协处理器核心算法由PC端的软件程序和FPGA硬件电路平台分别实现并计算,最后将输出结果进行比对,达到仿真验证的目的。通过设置好所需的验证次数,在循环运行过程中无需人工干预,直到报错或仿真完成。本发明通过对待验证密码算法进行不同的实现方式,可以更好的检验密码算法的正确性,同时将仿真验证的时间大大缩短。
进一步,步骤一中所述随机数文件采用十六进制数进行保存。采用十六进制保存有以下优点:在验证系统验证算法出现错误并停止循环运作时,更方便的去查找错误所在的位置;另外,对于许多密码算法(如公钥算法RSA)其输入或者输出通常达到1024bit甚至更长,采用十六进制保存在初期环境搭建的时候更容易调试。
进一步,所述的密码协处理器以RTL(Register Transfer Level)电路或网表的原始形式存在,密码协处理器中的密码算法包括所有可能在FPGA验证平台实现的密码算法。
进一步,所述FPGA验证平台包括FPGA、MCU及周边配套器件,FPGA芯片与MCU之间经总线连接,密码协处理器在FPGA验证平台实现时,MCU控制数据的读写操作。
步骤四中所述计算结果以.dat文件保存,以此文件格式保存的内容更容易被软件进行读取。
进一步,所述的FPGA验证平台与PC端经USB连接线进行连接。两者经过USB连接线传输输入值、运算中间结果及输出结果,并通过上位机软件进行保存生成文件用来查看与对比。
本发明克服了背景技术中所存在的缺陷,本发明具有以下有益效果:
(1)通过随机源模块产生随机数作为实现密码算法的输入数据,避免传统验证方法中人工操作生成随机数作为输入的繁琐;
(2)密码协处理器核心算法由PC端的软件程序和FPGA硬件电路平台分别实现并计算,最后将输出结果进行比对,达到仿真验证的目的。
(3)通过设置好所需的验证次数,在循环运行过程中无需人工干预,直到报错或仿真完成并解决了传统验证算法中计算次数太少的弊端。
(4)本发明通过对待验证密码算法进行不同的实现方式,可以更好的检验密码算法的正确性,同时将仿真验证的时间大大缩短提高了验证效率。
附图说明
下面结合附图和实施例对本发明进一步说明;
图1是本发明所采用仿真验证系统连接示意图;
图2是本发明流程图;
图中:FPGA验证平台1-1;FPGA芯片1-2;MCU芯片1-3;PC机1-4;总线1-5;USB连接线1-6。
具体实施方式
现在结合附图和实施例对本发明作进一步详细的说明,这些附图均为简化的示意图,仅以示意方式说明本明所采用的基本结构,因此其仅显示与本发明有关的构成。
如图1所示,基于FPGA的密码协处理器全自动仿真验证方法采用的仿真验证系统包括FPGA验证平台1-1和PC机1-4,所述FPGA验证平台1-1包括FPGA芯片1-2、MCU芯片1-3及周边配套器件,FPGA芯片1-2与MCU芯片1-3之间经总线1-5连接,密码协处理器在FPGA验证平台1-1实现时,MCU芯片1-2控制数据的读写操作,PC机1-4运行实现待验证密码算法的软件程序。所述的FPGA验证平台1-1与PC机1-4经USB连接线1-6进行连接。两者经过USB连接线1-6传输输入值、运算中间结果及输出结果,并通过上位机软件进行保存生成文件用来查看与对比。
如图2所示,一种基于FPGA的密码协处理器全自动仿真验证方法,包括如下步骤:
步骤一、随机源模块随机生成用于密码协处理器实现密码算法的输入数据,采用十六进制数保存为随机数文件;
步骤二、将密码协处理器加载至FPGA验证平台并在PC端加载实现待验证密码算法的软件程序;所述的密码协处理器以RTL(Register Transfer Level)电路或网表的原始形式存在,密码协处理器中的密码算法包括所有可能在FPGA验证平台实现的密码算法;
所述FPGA验证平台包括FPGA、MCU及周边配套器件,密码协处理器在FPGA验证平台实现时,MCU控制数据的读写操作。
步骤三、FPGA验证平台读取随机数文件作为待验证密码算法的输入,PC端读取随机数文件作为待验证算法的输入并在PC端运行实现待验证密码算法的软件程序;
步骤四、对比FPGA验证平台和PC端的计算结果,所述计算结果以.dat文件保存。若相同,则进入步骤五;若不同,则进入步骤八;所述密码协处理器的加载到FPGA验证平台实现以及由软件实现时,两种实现算法的方法是不相同的,但得到的最后结果应为一致,这样才能验证硬件电路实现的正确性。
步骤五、验证次数累加一次,判断是否到达所设置的验证次数,若是,则进入步骤六;若否,则进入步骤七;
步骤六、输出计算结果并进入步骤九;
步骤七、转至步骤一;
步骤八、输出错误位置及结果并进入步骤九;在软件及FPGA测试激励文件中,会随时输出运算中间结果及运算步骤,当出现错误时,根据输出的运算中间结果和步骤可定位错误位置。
步骤九、自动仿真完成。
上述方法通过预先生成的随机数作为输入,密码协处理器核心算法由PC端的软件程序和FPGA硬件电路平台分别实现并计算,最后将输出结果进行比对,达到仿真验证的目的。通过设置好所需的验证次数,在循环运行过程中无需人工干预,直到报错或仿真完成。本发明通过对待验证密码算法进行不同的实现方式,可以更好的检验密码算法的正确性,同时将仿真验证的时间大大缩短。
以上依据本发明的理想实施例为启示,通过上述的说明内容,相关人员完全可以在不偏离本项发明技术思想的范围内,进行多样的变更以及修改。本项发明的技术性范围并不局限于说明书上的内容,必须要根据权利要求范围来确定技术性范围。
Claims (4)
1.一种基于FPGA的密码协处理器全自动仿真验证方法,其特征在于包括如下步骤:
步骤一、随机源模块随机生成用于密码协处理器实现密码算法的输入数据,保存为随机数文件;
步骤二、将密码协处理器加载至FPGA验证平台并在PC端加载实现待验证密码算法的软件程序;所述FPGA验证平台包括FPGA芯片、MCU及周边配套器件,FPGA芯片与MCU之间经总线连接;密码协处理器在FPGA验证平台实现时,MCU控制数据的读写操作;所述的FPGA验证平台与PC端经USB连接线进行连接;
步骤三、FPGA验证平台读取随机数文件作为待验证密码算法的输入,PC端读取随机数文件作为待验证算法的输入并在PC端运行实现待验证密码算法的软件程序;
步骤四、对比FPGA验证平台和PC端的计算结果,若相同,则进入步骤五;若不同,则进入步骤八;
步骤五、验证次数累加一次,判断是否到达所设置的验证次数,若是,则进入步骤六;若否,则进入步骤七;
步骤六、输出计算结果并进入步骤九;
步骤七、转至步骤一;
步骤八、输出错误位置及结果并进入步骤九;
步骤九、自动仿真完成。
2.根据权利要求1所述的基于FPGA的密码协处理器全自动仿真验证方法,其特征在于,步骤一中所述随机数文件采用十六进制数进行保存。
3.根据权利要求1所述的基于FPGA的密码协处理器全自动仿真验证方法,其特征在于,所述的密码协处理器以RTL电路或网表的原始形式存在,密码协处理器中的密码算法包括所有可能在FPGA验证平台实现的密码算法。
4.根据权利要求1所述的基于FPGA的密码协处理器全自动仿真验证方法,其特征在于,步骤四中所述计算结果以.dat文件保存。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911314758.1A CN110991129B (zh) | 2019-12-18 | 2019-12-18 | 一种基于fpga的密码协处理器全自动仿真验证方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911314758.1A CN110991129B (zh) | 2019-12-18 | 2019-12-18 | 一种基于fpga的密码协处理器全自动仿真验证方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110991129A CN110991129A (zh) | 2020-04-10 |
CN110991129B true CN110991129B (zh) | 2023-09-08 |
Family
ID=70095797
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911314758.1A Active CN110991129B (zh) | 2019-12-18 | 2019-12-18 | 一种基于fpga的密码协处理器全自动仿真验证方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110991129B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112329273B (zh) * | 2020-12-17 | 2023-10-24 | 芯天下技术股份有限公司 | 一种提升芯片验证效率的方法、装置、存储介质和终端 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107463473A (zh) * | 2017-09-01 | 2017-12-12 | 珠海泰芯半导体有限公司 | 基于uvm和fpga的芯片软硬件仿真环境 |
CN110502359A (zh) * | 2019-08-16 | 2019-11-26 | 兆讯恒达微电子技术(北京)有限公司 | 一种公开密钥密码算法协处理器自检的方法 |
-
2019
- 2019-12-18 CN CN201911314758.1A patent/CN110991129B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107463473A (zh) * | 2017-09-01 | 2017-12-12 | 珠海泰芯半导体有限公司 | 基于uvm和fpga的芯片软硬件仿真环境 |
CN110502359A (zh) * | 2019-08-16 | 2019-11-26 | 兆讯恒达微电子技术(北京)有限公司 | 一种公开密钥密码算法协处理器自检的方法 |
Non-Patent Citations (1)
Title |
---|
董巍,李广才.FPGA设计中软硬件自动协同仿真平台的搭建及验证.《数字技术与应用》.2016,(第3期),第81-82页. * |
Also Published As
Publication number | Publication date |
---|---|
CN110991129A (zh) | 2020-04-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104408264B (zh) | 一种基于断言的嵌入式存储控制器验证系统及方法 | |
CN105205249A (zh) | 一种soc调试验证系统及其软硬件协同方法 | |
US8578309B2 (en) | Format conversion from value change dump (VCD) to universal verification methodology (UVM) | |
JPH11328251A (ja) | モデル検査のための動作環境を自動的に生成する方法 | |
US8762907B2 (en) | Hierarchical equivalence checking and efficient handling of equivalence checks when engineering change orders are in an unsharable register transfer level | |
CN113536718B (zh) | 一种门级仿真网表文件正确性的验证方法及装置 | |
JPS63145549A (ja) | 論理回路シミユレ−シヨン方法 | |
US8645897B1 (en) | Integrated circuit design verification system | |
US7823101B2 (en) | Device, method, and storage for verification scenario generation, and verification device | |
CN110991129B (zh) | 一种基于fpga的密码协处理器全自动仿真验证方法 | |
JP2000207440A (ja) | 半導体集積回路の設計検証装置、方法及び記憶媒体 | |
CN113868046B (zh) | 一种pad控制单元的功能验证方法及系统 | |
CN107704351B (zh) | 一种芯片的验证方法和装置 | |
CN107784185B (zh) | 一种门级网表中伪路径的提取方法、装置及终端设备 | |
JP2007034833A (ja) | 機能検証記述生成装置,機能検証記述生成方法,及び機能検証記述生成プログラム | |
US6532573B1 (en) | LSI verification method, LSI verification apparatus, and recording medium | |
US10528689B1 (en) | Verification process for IJTAG based test pattern migration | |
KR102558036B1 (ko) | Python을 활용한 RTL 설계 검증 자동화 방법 및 시스템 | |
CN112731117A (zh) | 芯片的自动验证方法和系统,及存储介质 | |
TWI715403B (zh) | 數位電路強健度驗證方法及系統 | |
WO2006025412A1 (ja) | 論理検証方法、論理モジュールデータ、デバイスデータおよび論理検証装置 | |
JP3941336B2 (ja) | 論理回路検証装置 | |
CN113255287A (zh) | 一种基于ral的otp寄存器验证方法 | |
US7505887B1 (en) | Building a simulation of design block using a bus functional model and an HDL testbench | |
US8132135B2 (en) | Method and system for creating a boolean model of multi-path and multi-strength signals for verification |
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 | ||
PE01 | Entry into force of the registration of the contract for pledge of patent right |
Denomination of invention: A fully automatic simulation verification method for cryptographic coprocessors based on FPGA Granted publication date: 20230908 Pledgee: Huaxia Bank Co.,Ltd. Jinan Branch Pledgor: SHANDONG HUAYI MICRO-ELECTRONICS Co.,Ltd. Registration number: Y2024980024862 |
|
PE01 | Entry into force of the registration of the contract for pledge of patent right |