一种FPGA码流的加解密装置及方法与流程

文档序号:18133624发布日期:2019-07-10 10:26阅读:379来源:国知局
一种FPGA码流的加解密装置及方法与流程

本发明涉及电子技术领域,特别涉及一种fpga码流的加解密装置及方法。



背景技术:

可编辑逻辑门阵列(fpga)在目前的电子系统设计中,因为其灵活方便被广泛的使用,但基于静态存储器(sram)的fpga需要从外部写入码流进行配置,在配置过程中码流很容易被截获,这对fpga芯片的安全性造成了极大威胁,因此fpga芯片的加密逐渐受到设计人员的重视。现有的fpga部分没有采用加密技术,特别是大多数中端和低端芯片,如采用加密多数采用高级加密标准(aes)或者数据加密标准(des)的加密算法对fpga进行加密,还没有任何一款fpga同时采用两种不同的加密算法,特别是采用分组密码标准(sm4)算法。



技术实现要素:

本发明的目的在于提供一种fpga码流的加解密装置及方法,可选择不同的加解密方式对数据码流进行加解密。

为了解决上述问题,本申请公开了一种fpga码流的加解密方法,包括:

配置数据码流,判断是否需要对所述数据码流进行加密;

若采用第一加密方式进行加密,生成第一加密码流及第一加密同步字,若采用第二加密方式进行加密,生成第二加密码流及第二加密同步字;

接收数据码流,检测所述数据码流中是否存在加密同步字;

若检测到第一加密同步字,采用第一解密方式对所述加密的数据码流进行解密,若检测到第二加密同步字,采用第二解密方式对所述加密的数据码流进行解密。

在一个优选例中,采用第一加密方式进行加密的过程包括:随机生成第一密钥,对所述第一密钥进行密钥扩展,对所述数据码流进行加密,并加入第一加密同步字。

在一个优选例中,采用第二加密方式进行加密的过程包括:随机生成第二密钥,对所述第二密钥进行密钥扩展,对所述数据码流进行加密,并加入第二加密同步字。

在一个优选例中,采用第一解密方式进行解密的过程包括:对所述第一密钥进行密钥扩展操作生成第一解密密钥,根据所述第一解密密钥对所述加密的数据码流进行解密。

在一个优选例中,采用第二解密方式进行解密的过程包括:对所述第二密钥进行密钥扩展操作生成第二解密密钥,根据所述第二解密密钥对所述加密的数据码流进行解密。

在一个优选例中,所述第一加密方式和所述第二加密方式为aes或sm4加密方式,且所述第一加密方式和所述第二加密方式为不同的加密方式。

在一个优选例中,所述第一解密方式和所述第二解密方式为aes或sm4解密方式,且所述第一解密方式和所述第二解密方式为或sm4解密方式为不同的解密方式。

本申请还公开了一种fpga码流的加解密装置包括:

同步字检测模块,接收数据码流,并检测加密同步字;

密钥存储模块,用于存储第一密钥及第二密钥;

密钥扩展模块,根据所述第一密钥或第二密钥生成相应的第一解密密钥或第二解密密钥;

解密模块,根据所述第一解密密钥或第二解密密钥对加密的数据码流进行解密操作。

在一个优选例中,所述第一解密方式和所述第二解密方式为aes或sm4解密方式,且所述第一解密方式和所述第二解密方式为不同的解密方式。

相对于现有技术,本申请具有以下有益效果:

本发明根据用户需要进行加密方式的选择,能够选择aes加密或者sm4加密,在现有加密方案的基础上,增加加密方式的可选择性,进一步提高fpga芯片的安全性。进一步的,通过在加密码流中添加加密同步字的方式对不同中解密方式进行选择,方式简单有效。

附图说明

图1示出了本发明一实施例中fpga加密码流的加解密装置的框图;

图2示出了本发明一实施例中fpga加密码流的加解密方法的流程图;

图3示出了本发明一实施例中解密模块的端口示意图。

具体实施方式

在以下的叙述中,为了使读者更好地理解本申请而提出了许多技术细节。但是,本领域的普通技术人员可以理解,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请各权利要求所要求保护的技术方案。

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明的实施方式作进一步地详细描述。

参考图1所示,本申请公开了一种fpga码流的加解密装置10包括:同步字检测模块11、密钥存储模块12、密钥扩展模块14、解密模块13、加密模块15。

加密模块15接收数据码流,判断是否需要对数据码流进行加密,如需要对数据码流进行加密,则根据需要选择采用不同的加密方式。若采用第一加密方式进行加密,生成第一加密码流及第一加密同步字,若采用第二加密方式进行加密,生成第二加密码流及第二加密同步字。采用第一加密方式或第二加密方式进行加密的过程包括:随机生成第一密钥或第二密钥,对所述第一密钥或第二密钥进行密钥扩展,对所述数据码流进行加密。

同步字检测模块11接收数据码流,该数据码流可能为加密码流或非加密码流,并检测同步字。密钥存储模块12用于存储第一密钥及第二密钥,密钥扩展模块14根据所述第一密钥或第二密钥生成相应的第一解密密钥或第二解密密钥,解密模块13根据所述第一解密密钥或第二解密密钥对所述加密码流进行解密操作,从而输出解密码流。

在一个优选例中,所述第一加密方式和所述第二加密方式为aes或sm4加密方式,且所述第一加密方式和所述第二加密方式为两种不同的加密方式,所述第一解密方式和所述第二解密方式为aes或sm4解密方式,且所述第一解密方式和所述第二解密方式为两种不同的解密方式。

在一个优选实施例中,本发明中可以根据用户需要进行不同加密方式的选择,在现有加密方案的基础上,增加加密方式的可选择性,进一步提高fpga芯片的安全性。进一步的,通过在加密码流中添加加密同步字的方式对不同中解密方式进行选择,该方式简单有效。

参考图2所示,本申请公开了一种fpga码流的加解密方法,包括:

首先,系统上电,对加解密装置进行复位;

步骤101,配置数据码流;

步骤103,判断是否需要对所述数据码流进行加密;

步骤105,若采用第一加密方式进行加密,生成第一加密码流及第一加密同步字,采用第一加密方式进行加密的过程包括:随机生成第一密钥,对所述第一密钥进行密钥扩展,对所述数据码流进行加密,并在加密码流之前加入第一加密同步字,将第一密钥存储于密钥存储模块12。其中,所述第一加密方式为aes或sm4加密方式中的一种,例如以第一加密方式为aes加密方式为例进行说明。

步骤113,若采用第二加密方式进行加密,生成第二加密码流及第二加密同步字,采用第二加密方式进行加密的过程包括:随机生成第二密钥,对所述第二密钥进行密钥扩展,对所述数据码流进行加密,并在加密码流之前加入第二加密同步字,将第二密钥存储于密钥存储模块12。所述第一加密方式为aes或sm4加密方式中的一种,并且所述第一加密方式和第二加密方式为其中两种不同的加密方式,例如第一加密方式为aes加密方式,第二加密方式为sm4加密方式。

步骤107,同步字检测模块11接收数据码流;

步骤109,检测所述数据码流中是否存在加密同步字,参考图3所示,若preamble_aes为高电平,则同步字检测模块11检测到第一加密同步字,表明加密方式采用第一加密方式,若preamble_sm4为高电平,则同步字检测模块11检测到第二加密同步字,表明加密方式采用第二加密方式。

步骤111,若同步字检测模块11检测到第一加密同步字,采用第一解密方式对所述数据码流进行解密,采用第一解密方式进行解密的过程包括:密钥扩展模块14对所述第一密钥进行密钥扩展操作生成第一解密密钥,根据所述第一解密密钥对所述加密码流进行解密。其中,所述第一解密方式为aes或sm4解密方式中的一种,例如第一解密方式为aes解密方式为例进行说明。若preamble_aes为高电平,则生成第一解密密钥aes_key[255:0],根据第一解密密钥aes_key[255:0]对加密码流encrypt_date[127:0]进行解密生成解密码流decrypt_date[127:0]。

步骤115,若同步字检测模块11检测到第二加密同步字,采用第二解密方式对所述数据码流进行解密。采用第二解密方式进行解密的过程包括:密钥扩展模块14对所述第二密钥进行密钥扩展操作生成第二解密密钥,根据所述第二解密密钥对所述加密码流进行解密。其中,所述第二解密方式为aes或sm4解密方式中的一种,并且所述第一解密方式和第二解密方式为其中两种不同的加密方式,例如第一加密方式为aes加密方式,第二加密方式为sm4加密方式。若preamble_sm4为高电平,则生成第二解密密钥sm4_key[127:0],根据第二解密密钥sm4_key[127:0]对加密码流encrypt_date[127:0]进行解密生成解密码流decrypt_date[127:0]。

需要说明的是,密钥存储模块12通常采用非易失性存储器,因为aes加解密方式的密钥为256bit,sm4加解密方式的密钥为128bit,密钥存储模块的存储空间为256bit,可以采用密钥存储空间共用的方式,并且共用密钥存储空间的低128位,当采用aes加解密时占用密钥存储空间的256bit,当采用sm4加解密时占用密钥存储空间的低128位,节约非易失性存储器的占用,节省资源。

第一实施方式是与本实施方式相对应的装置实施方式,第一实施方式中的技术细节可以应用于本实施方式,本实施方式中的技术细节也可以应用于第一实施方式。

需要说明的是,本领域技术人员应当理解,上述fpga码流的加解密装置的实施方式中所示的各模块的实现功能可参照前述逻辑电路优化方法的相关描述而理解。fpga码流的加解密装置的实施方式中所示的各模块的功能可通过运行于处理器上的程序(可执行指令)而实现,也可通过具体的逻辑电路而实现。

需要说明的是,在本专利的申请文件中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。本专利的申请文件中,如果提到根据某要素执行某行为,则是指至少根据该要素执行该行为的意思,其中包括了两种情况:仅根据该要素执行该行为、和根据该要素和其它要素执行该行为。多个、多次、多种等表达包括2个、2次、2种以及2个以上、2次以上、2种以上。

在本说明书提及的所有文献都被认为是整体性地包括在本申请的公开内容中,以便在必要时可以作为修改的依据。此外应理解,以上所述仅为本说明书的较佳实施例而已,并非用于限定本说明书的保护范围。凡在本说明书一个或多个实施例的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例的保护范围之内。

在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1