可编程器件的交互数据验证方法、装置、设备及介质制造方法及图纸

技术编号:34385613 阅读:26 留言:0更新日期:2022-08-03 21:07
本发明专利技术公开了可编程器件的交互数据验证方法、装置、设备及介质,属于集成电路技术领域。它包括:获取待验证的交互数据;通过第一摘要算法获取交互数据的第一公钥摘要和第二公钥摘要;通过RSA加密算法获取交互数据的第一数据流摘要和第二数据流摘要,通过第二摘要算法获取交互数据的第三数据流摘要;判断第一公钥摘要和第二公钥摘要是否一致,得到公钥判断结果;判断第一数据流摘要、第二数据流摘要和第三数据流摘要是否一致,得到数据流判断结果;根据公钥判断结果和数据判断结果确定交互数据是否被篡改或有部分数据丢失。本发明专利技术的交互数据的验证速度较快、花费时间较短,从而让整个可编程器件的开发周期较短。整个可编程器件的开发周期较短。整个可编程器件的开发周期较短。

【技术实现步骤摘要】
可编程器件的交互数据验证方法、装置、设备及介质


[0001]本专利技术属于集成电路
,尤其涉及一种可编程器件的交互数据验证方法、装置、设备及介质。

技术介绍

[0002]目前,可编程器件(如FPGA芯片)在开发过程中,需要对上述可编程器件和软件工具(如IspLever软件)之间的交互数据进行验证(也即校验和认证),以让可编程器件的开发人员能准确、及时地知道上述交互数据是否被篡改或有部分数据丢失,从而保证上述可编程器件始终处于安全的开发环境中。
[0003]现有技术中,可编程器件(如FPGA芯片)的开发人员常采用DPI(Deep Packet Inspection)检测技术来对可编程器件和软件工具之间的交互数据进行验证。
[0004]专利技术人发现由于上述现有技术方案在对交互数据进行验证时,为了能获取到摘要信息(如数据流摘要),上述DPI检测技术必须要使用到DPI接口,而采用DPI接口时又必须采用GCC编译器(GNU Compiler Collection,GNU编译器套件)来编译所调用的C语言模型(主要用于实现验证过程中需要用到的加密算法,如RSA加密算法)。
[0005]专利技术人认为:由于DPI接口通过GCC编译器调用C语言模型需要花费一定的时间,因此,上述现有技术方案在对交互数据进行验证时,交互数据的验证速度较慢、花费时间较长,从而让整个可编程器件的开发周期较长,故有必要进行改进。

技术实现思路

[0006]本专利技术实施例提供一种可编程器件的交互数据验证方法、装置、设备及介质,以解决交互数据的验证速度较慢、花费时间较长,从而让整个可编程器件的开发周期较长问题。
[0007]本专利技术的技术方案为:提供一种可编程器件的交互数据验证方法,包括:获取待验证的交互数据,所述交互数据包括待验证的公钥、待验证的私钥、待验证的模数和待验证的数据流;通过基于Verilog语言实现的第一摘要算法获取所述交互数据的第一公钥摘要,通过基于SystemVerilog语言实现的第一摘要算法获取所述交互数据的第二公钥摘要,所述第一公钥摘要和第二公钥摘要的位宽相同;通过基于所述SystemVerilog语言实现的RSA加密算法获取所述交互数据的第一数据流摘要,通过基于所述Verilog语言实现的RSA加密算法获取所述交互数据的第二数据流摘要,通过基于所述Verilog语言实现的第二摘要算法获取所述交互数据的第三数据流摘要,所述第一数据流摘要、第二数据流摘要和第三数据流摘要的位宽相同;判断所述第一公钥摘要和所述第二公钥摘要是否一致,得到公钥判断结果;判断所述第一数据流摘要、所述第二数据流摘要和所述第三数据流摘要是否一致,得到数据流判断结果;根据所述公钥判断结果和所述数据判断结果确定所述交互数据是否被篡改或有部分数据丢失。
[0008]可选地,所述通过基于Verilog语言实现的第一摘要算法获取所述交互数据的第一公钥摘要,通过基于SystemVerilog语言实现的第一摘要算法获取所述交互数据的第二
公钥摘要,包括:将所述待验证的公钥驱动至基于所述Verilog语言实现的第一摘要算法中,得到第一公钥摘要;将所述待验证的公钥驱动至基于所述SystemVerilog语言实现的第一摘要算法中,得到第二公钥摘要。
[0009]可选地,所述通过基于所述Verilog语言实现的RSA加密算法获取所述交互数据的第一数据流摘要,通过基于所述Verilog语言实现的RSA加密算法获取所述交互数据的第二数据流摘要,包括:将所述待验证的数据流驱动至通过基于所述SystemVerilog语言实现的第二摘要算法中,得到前置数据摘要;将所述前置数据摘要、所述待验证的私钥和所述待验证的模数驱动至基于所述SystemVerilog语言实现的RSA加密算法中,得到带有签名的认证数据;将所述认证数据分别驱动至基于所述Verilog语言实现的RSA加密算法和基于所述SystemVerilog语言实现的RSA加密算法中,得到所述第一数据流摘要和所述第二数据流摘要。
[0010]可选地,所述通过基于所述Verilog语言实现的第二摘要算法获取所述交互数据的第三数据流摘要,包括:将所述待验证的数据流驱动至基于所述Verilog语言实现的第二摘要算法中,得到第三数据流摘要。
[0011]可选地,所述根据所述公钥判断结果和所述数据判断结果确定所述交互数据是否被篡改或有部分数据丢失,包括:判断所述公钥判断结果和所述数据判断结果是否均为是,得到数据验证结果;若所述数据验证结果为是,则所述可编程器件的交互数据在交互数据过程中没有被篡改且没有数据丢失;若所述数据验证结果为否,则所述可编程器件的交互数据在交互数据过程中有被篡改或有部分数据丢失。
[0012]可选地,所述第一摘要算法和/或第二摘要算法为SHA

2算法、SHA

3算法和MessageDigest算法中的一种,所述第一数据流摘要的位宽不小于1024位。
[0013]可选地,所述第一摘要算法为SHA3

224算法、SHA3

256算法、SHA3

384算法、SHA3

512算法、SHAKE128算法和SHAKE256算法中的一种,所述第二摘要算法为SHAKE128算法或SHAKE256算法,所述第一数据流摘要的位宽为4096位。
[0014]本专利技术的另一技术方案为:提供一种可编程器件的交互数据验证装置,包括:交互数据采集模块,用于获取待验证的交互数据,所述交互数据包括待验证的公钥、待验证的私钥、待验证的模数和待验证的数据流;公钥摘要生成模块,用于通过基于Verilog语言实现的第一摘要算法获取所述交互数据的第一公钥摘要,通过基于SystemVerilog语言实现的第一摘要算法获取所述交互数据的第二公钥摘要,所述第一公钥摘要和第二公钥摘要的位宽相同;数据流摘要生成模块,用于通过基于所述SystemVerilog语言实现的RSA加密算法获取所述交互数据的第一数据流摘要,通过基于所述Verilog语言实现的RSA加密算法获取所述交互数据的第二数据流摘要,通过基于所述Verilog语言实现的第二摘要算法获取所述交互数据的第三数据流摘要,所述第一数据流摘要、第二数据流摘要和第三数据流摘要的位宽相同;摘要判断模块,用于判断所述第一公钥摘要和所述第二公钥摘要是否一致,得到公钥判断结果;判断所述第一数据流摘要、所述第二数据流摘要和所述第三数据流摘要是否一致,得到数据流判断结果;数据判断模块,用于根据所述公钥判断结果和所述数据判断结果确定所述交互数据是否被篡改或有部分数据丢失。
[0015]本专利技术的另一技术方案为:提供一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时
实现上述可编程器件的交互数据验证方法的步骤。
[0016]本专利技术的另一技术方案为:提供一种计算机可读存储介质,所述本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种可编程器件的交互数据验证方法,其特征在于,包括:获取待验证的交互数据,所述交互数据包括待验证的公钥、待验证的私钥、待验证的模数和待验证的数据流;通过基于Verilog语言实现的第一摘要算法获取所述交互数据的第一公钥摘要,通过基于SystemVerilog语言实现的第一摘要算法获取所述交互数据的第二公钥摘要,所述第一公钥摘要和第二公钥摘要的位宽相同;通过基于所述SystemVerilog语言实现的RSA加密算法获取所述交互数据的第一数据流摘要,通过基于所述Verilog语言实现的RSA加密算法获取所述交互数据的第二数据流摘要,通过基于所述Verilog语言实现的第二摘要算法获取所述交互数据的第三数据流摘要,所述第一数据流摘要、第二数据流摘要和第三数据流摘要的位宽相同;判断所述第一公钥摘要和所述第二公钥摘要是否一致,得到公钥判断结果;判断所述第一数据流摘要、所述第二数据流摘要和所述第三数据流摘要是否一致,得到数据流判断结果;根据所述公钥判断结果和所述数据判断结果确定所述交互数据是否被篡改或有部分数据丢失。2.根据权利要求1所述的方法,其特征在于,所述通过基于Verilog语言实现的第一摘要算法获取所述交互数据的第一公钥摘要,通过基于SystemVerilog语言实现的第一摘要算法获取所述交互数据的第二公钥摘要,包括:将所述待验证的公钥驱动至基于所述Verilog语言实现的第一摘要算法中,得到第一公钥摘要;将所述待验证的公钥驱动至基于所述SystemVerilog语言实现的第一摘要算法中,得到第二公钥摘要。3.根据权利要求1所述的方法,其特征在于,所述通过基于所述Verilog语言实现的RSA加密算法获取所述交互数据的第一数据流摘要,通过基于所述Verilog语言实现的RSA加密算法获取所述交互数据的第二数据流摘要,包括:将所述待验证的数据流驱动至通过基于所述SystemVerilog语言实现的第二摘要算法中,得到前置数据摘要;将所述前置数据摘要、所述待验证的私钥和所述待验证的模数驱动至基于所述SystemVerilog语言实现的RSA加密算法中,得到带有签名的认证数据;将所述认证数据分别驱动至基于所述Verilog语言实现的RSA加密算法和基于所述SystemVerilog语言实现的RSA加密算法中,得到所述第一数据流摘要和所述第二数据流摘要。4.根据权利要求1或2或3所述的方法,其特征在于,所述通过基于所述Verilog语言实现的第二摘要算法获取所述交互数据的第三数据流摘要,包括:将所述待验证的数据流驱动至基于所述Verilog语言实现的第二摘要算法中,得到第三数据流摘要。5.根据权利要求4所述的方法,其特征在于,所述根据所述公钥判断结果和所述数据判断结果确定所述交互数据是否被篡改或有部分数据丢失,包括...

【专利技术属性】
技术研发人员:梁振瑞夏君
申请(专利权)人:深圳市紫光同创电子有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1