用于产生设备特定的标识的方法和装置和包括个性化的可编程电路模块的设备与流程

文档序号:14011041阅读:201来源:国知局
用于产生设备特定的标识的方法和装置和包括个性化的可编程电路模块的设备与流程

本发明涉及用于通过对可编程的电路模块进行比特流个性化产生设备特定的标识的方法和装置,涉及一种包括可编程的电路模块的设备,以及一种计算机程序产品以及涉及一种数据载体,所述计算机程序产品执行该方法的步骤,所述数据载体存储计算机程序产品。



背景技术:

也称作为现场可编程门阵列(fpga)的可编程的电路模块是数字技术的集成电路,在所述集成电路中能够对逻辑电路进行编程。fpga因此通过以下方式不同于计算机处理器(cpu)和存储器可编程的控制装置(sps):即在fpga中功能结构在生产之后也还能编程或者也能够再次改变,在所述计算机处理器(cpu)和存储器可编程的控制装置(sps)中必须在制成之前确定功能结构并且仅对时间进程编程。这甚至在现场在安装时和在使用期间是可能的。

在对fpga编程时,确定功能结构和因此不同的集成组件,即fpga的期望的电路。该电路能够以电路图的形式图形地或借助于硬件描述语言、也已知为hdl来建立。随后,借助综合工具在专门考虑目标fpga的硬件资源的情况下产生集成组件的、例如查询表或触发器的,和所属的连接结构的比特流。随后,该比特流在运行期间、即在将运行电压接入fpga上时从附加需要的永久存储器加载到非永久的fpga中。借此,如在电路图中所确定的那样实现fpga中的组件。fpga在切断运行电压之前或在加载另一比特流之前保持该电路结构。

在电路图中也可以以固定编码的方式包含例如作为常量的数据,其中所述电路图下文中也简称为电路。所述数据能够由fpga内部使用或者也能够被输出。因此,也能够在fpga中安装加密密钥。电路之内的固定编码的数据能够极其简单地、例如经由硬件描述语言hdl来改变。然而,必须借助综合工具从每个电路建立新的比特流,这典型地持续数分钟。

比特流包含呈私有的、通常制造商或还有fpga特定的未知格式形式的配置数据,即电路。如果期望对设备经由fpga供应个体的数据比特流,那么必须借助于综合工具为每个设备重新产生自身的比特流,其中所述个体的数据比特流例如包含个体的设备序列号和/或个体的加密设备密钥。这在设备件数少的情况下已经需要很高的运算和时间耗费,以产生不同的比特流数据,并且尤其当以高频率生产设备时几乎无法执行。

从dirkkoch,christianbeckhoff的因特网公开文献中:hierarchicalreconfigurationoffpgas,fpl2014,https://www.fpl2014.tum.de/fileadmin/w00bpo/www/gallery/w2a_01_fpl2014_hierarchical_reconfiuration_of_fpgas_koch-beckhoff.pdf中已知fpga,所述fpga支持将fpga编程分解成各个模块,所述模块能够分开地产生并且能够作为子比特流存储并且能够在运行期间彼此独立地加载和交换。加密密钥也能够作为模块提供。然而,该动态地加载模块至今为止仅能够由少量较新的fpga来支持。此外,要交换的部分在设计电路图时必须被识别,安装在自身的模块中并且配备有接口。附加地,相应引入的加密密钥随后以单独的文件存在于设备上进而能够容易地识别和读出。



技术实现要素:

因此,本发明的目的是:能够将设备特定的数据以小的运算耗费引入fpga中,并且因此大件数的设备能够快速且简单地个性化。

所述目的通过在独立权利要求中描述的措施来实现。在从属权利要求中示出本发明的有利的改进方案。

用于在设备(200)中产生设备特定的标识的根据本发明的方法包括如下步骤,其中所述设备包含至少一个可编程的电路模块(210)并且所述设备的电路由各个组件构成,所述组件通过加载比特流来配置:

-将基准标识(r-id)表示(11)为比特序列,并且将所述基准标识(r-id)的每个比特分配给所述电路模块的各一个不同的组件,

-产生(12)用于所述电路模块(210)的基准电路(f0)的基准比特流(b0),在所述基准电路中至少包含所述基准标识(r-id)的预先确定的组件,和

-将所述设备特定的标识(g-id)作为二进制序列通过覆写所述基准标识(r-id)的相应组件的比特来直接地记录(13)在所述基准比特流(b0)中。

因此,个性化的信息能够安装在可编程的电路模块的比特流中,而不必由综合工具分别从电路重新产生比特流。通过将基准标识的每个比特分配进而关联到可编程的电路模块的确定的组件上、例如关联到触发器、查询表或块ram上,实现电路中的基准标识的比特与从中借助综合工具生成的比特流的比特的清楚的、尤其线性的关系。因此,基准标识的每个比特通过比特流中的确定数量的比特来代表,所述确定数量的比特专门用于数据比特流的所述比特。如果对于基准标识的应针对确定的设备特定的标识进行编码的全部比特来说已知在比特流中的相应的位置,那么能够直接地通过修改比特流中的比特来引入设备特定的标识。不再需要将具有设备特定的标识的电路转译成比特流。因此,显著地缩短用于产生个性化比特流的时间。

在一个有利的实施方案中,基准标识的每个组件被配置成或者输出值零或者输出值一。

因此,通过多个输出相应的比特序列的组件能够表示每个任意的标识。

在一个有利的实施方式中,通过如下方法步骤确定用于在比特流中对基准标识的组件进行编码的比特:

(a)产生基准电路的基准比特流,

(b)产生用于改变了预先给定的基准标识的至少一个比特的另一电路的另一比特流,和

(c)确定比特的至少一个位置,所述比特在所产生的另一比特流中相对于基准比特流改变。

如果比特流包含私有的未知格式的电路,那么能够通过所述方法步骤产生一种将基准标识的每个组件转译成比特流中的相应的比特的转译规定。如果转译规定例如对于基准标识的每个单独的组件是已知的,那么每个任意的设备特定的标识可以以一定长度的基准标识直接记录到比特流中。

在一个有利的实施方式中,预先给定的基准标识由多个任意在基准电路中分布的子基准标识构成。

这允许:遮掩设备特定的标识,即以代码混淆的方式安置在比特流中。这对于攻击方分配比特流中的设备特定的标识和确定标识变难。

在一个有利的实施例中,仅为基准电路的包括基准标识的子区域产生另一比特流。

因此不需要:分别分析整个电路、即整个基准比特流。因此,能够进一步降低用于确定比特流中的如下比特的运算时间,所述比特对应于基准标识的组件。

在一个有利的实施方式中,将改变了至少一个比特的电路用作为用于确定基准标识的下一比特的位置的新的基准电路。

这实现有效地确定属于基准电路的比特的比特流比特。因此避开重新加载基准电路来确定基准标识的另一组件的比特流比特。在之前的确定步骤中使用的电路能够用作为新的基准电路。现在,确定依次相随的基准电路的比特流之间的差异。

在一个有利的实施方式中,在多次改变的电路中改变基准标识的多于一个的比特。

因此,能够通过相应改变的比特流整体确定和使用设备特定的标识中的经常出现的比特组合。

在一个有利的实施方式中,通过多个由多次改变的电路产生的另外的比特流的组合,对于改变的电路中的多个改变的比特确定比特流中的比特的位置。

然而在此需要注意的是:多次改变的电路的组合展开期望的基准标识的数据比特的整个空间,以便任意的设备特定的标识可以在比特流中进行编码。

在一个有利的实施方式中,产生表格,在所述表格中给基准电路的每个改变的比特分配在由其产生的另一比特流中相对于基准比特流改变的比特的至少一个位置。

因此,表格包含如下信息:即必须相对于基准比特流改变比特流中的哪些比特,以便相对于基准电路改变基准标识的比特。借助该表格,能够以简单的方式给每个设备供应自身的个体的比特流,进而供应自身的设备特定的标识,而不必分别基于个体的电路通过综合工具建立个体的比特流。

在一个有利的实施方式中,设备特定的标识是加密密钥或序列号。

通常,由综合工具在建立比特流时建立关于比特流的校验和并且附加给比特流。借此,保护所得出的比特流以防无意的改变,诸如传输错误。在一个有利的实施方式中,在设备特定的比特流相对于基准比特流改变之后,相应地调整关于设备特定的比特流的该校验和。

用于在可编程电路模块中产生设备特定的标识的根据本发明的装置,所述电路模块的电路由各个组件构成,所述组件通过加载比特流来配置,所述装置包括:分配单元,所述分配单元被构造用于:将基准标识表示为比特序列并且将基准标识的每个比特分配给电路模块的各一个不同的组件,产生单元,所述产生单元被构造用于:产生用于电路模块的基准电路的基准比特流,在所述基准电路中至少包含有基准标识的预先确定的组件,和

插入单元,所述插入单元被构造用于:将设备特定的标识作为二进制序列通过覆写基准标识的相应的组件的比特而直接地插入在基准比特流中。

因此,该装置能够执行可编程的电路模块的比特流个性化,而不必经由综合工具从个体的电路重新建立相应的比特流。

在一个有利的实施方式中,该装置附加地包括确定单元,所述确定单元被构造用于:产生基准电路的基准比特流,产生用于改变了预先给定的基准标识的至少一个比特的另一电路的另一比特流,和确定比特的至少一个位置,所述比特在所产生的另一比特流中相对于基准比特流改变。

因此,该装置即使在电路组件的未公开的编码的情况下也能够确定所述编码。

在一个有利的实施方式中,该装置附加地包括存储单元,所述存储单元被构造用于存储表格,在所述表格中给基准电路的每个改变的比特分配在由其产生的另一比特流中相对于基准比特流改变的比特的至少一个位置。

因此,每个任意的设备特定的标识能够直接地在比特流中编码,而不必经由综合工具从包含设备特定的标识的电路建立相应的比特流。这引起需要用于产生比特流的时间的显著降低。

根据本发明的第一设备包括可编程的电路模块,其中将设备特定的标识按照根据本发明的方法引入到可编程的电路模块中。

这种第一设备能够简单地且成本适宜地借助设备特定的标识在fpga中制成。

根据本发明的第二设备包括可编程的电路模块,存储装置,所述存储装置包含设备特定的标识、电路模块的基准电路的基准比特流以及表格,其中在表格中给基准电路的每个改变的比特分配在由其产生的另一比特流中相对于基准比特流改变的比特的至少一个位置。第二设备此外包括随机数生成器和编码单元,该随机数生成器产生设备特定的标识,所述编码单元利用表格从基准比特流和设备特定的标识产生设备特定的比特流。

第二设备例如能够自身在fpga中产生序列号并且将其提供给不同的功能作为输入值。

根据本发明的第三设备包括:可编程的电路模块;存储装置,所述存储设备包含所述电路模块的基准电路的基准比特流以及表格,其中在表格中给基准电路的每个改变的比特分配在由其产生的另一比特流中相对于基准比特流改变的比特的至少一个位置;随机数生成器,所述随机数生成器产生设备特定的标识;和编码单元,所述编码单元利用表格从基准比特流和设备特定的标识产生设备特定的比特流。

在这种设备中,例如在设备之外,机密密钥是绝对未知的,进而相对于操纵和不允许的访问是尤其安全的,所述机密密钥为设备特定的标识。

在一个有利的实施方式中,存储装置被构造用于:在产生设备特定的比特流之后删除表格。

因此,也能够防止在稍后的运行中读出表格。经由表格又能够推断出所产生的设备特定的标识。

能够直接加载到数字计算机的存储器中的根据本发明的计算机程序产品包括程序代码部分,所述程序代码部分适合于:执行根据权利要求1至10中任一项所述的方法的步骤。根据本发明的数据载体存储根据本发明的计算机程序产品。

附图说明

根据本发明的方法、根据本发明的装置以及根据本发明的设备的实施例在附图中示例性地示出,并且根据下面的描述详细阐述。其中:

图1以示意图示出可编程的电路模块的组件的一个示例性的实施例,所述组件输出值0或1;

图2示出根据本发明的方法的一个实施例作为流程图;

图3以示意图示出为基准电路中的各一个比特确定比特流中的比特的位置的一个实施例;

图4以示意图示出所得出的设备特定的比特流和设备特定的电路的一个示例;

图5以示意图示出根据本发明的方法的第二实施例;

图6以框图示出根据本发明的装置的一个实施例;和

图7以框图示出根据本发明的设备的一个实施例。

彼此相应的部分在全部附图中配备有相同的附图标记。

具体实施方式

为了在包括可编程电路模块的设备中引入设备特定的标识,这能够通过可编程的电路模块的比特流个性化来实现。对此,产生设备特定的电路,并且例如借助于综合工具从中产生设备特定的比特流,所述设备特定的比特流录入到可编程的电路模块中,其中所述设备特定的电路包括可编程的电路模块的其他的组件以及设备特定的标识。因为通过综合工具产生设备特定的比特流bk是非常时间耗费的,所以现在根据流程图,参见图2阐述根据本发明的方法。

从启动状态10出发,在第一方法步骤11中,将基准标识表示为比特序列,并且将基准标识的每个比特分配给电路模块的各一个不同的组件。在此,电路被结构化成,使得基准标识的每个比特固定地关联到可编程的电路模块的确定组件上,其中所述比特下面也称作为数据比特。

在此,每个数据比特通过电路的组件来代表。组件在此配置成,使得其或者输出值零或者输出值一。参见图1,这种组件30、31例如能够配置为查询表。组件30配置成,使得与施加的输入信号32无关地不在输出端处输出信号33,进而代表值零。而组件31配置成,使得与施加的输入信号32无关地总是在输出端34处输出信号,所述信号表现为值一。因此,每个恒定的数据值能够通过电路模块的多个这种组件、诸如30、31来编码和输出。

在方法步骤12中,产生用于电路模块的基准电路的基准比特流,在所述基准电路中至少包含有基准标识的预先确定的组件。当电路模块应该实施其他功能时,基准电路除了基准标识的组件之外还能够包括其他组件。在此,尤其总是使用相同的预先确定的组件来表示基准标识的比特。

在方法步骤13中,设备特定的标识作为二进制序列通过覆写基准标识的相应的组件的比特而直接地记录在基准比特流中。通过将比特流加载到电路模块中,设备特定的标识在电路模块中激活,并且能够从那里读出到设备中,所述设备包含电路模块。

这尤其当已知比特流中的相应的组件的编码时是简单可行的。如果不知道比特流中的各个组件的编码,那么能够通过图2中虚线地作为可选的方法步骤示出的附加的方法步骤21、22、23来进行。

对此,在方法步骤21中产生基准电路f0的基准比特流b0。随后,产生用于改变了预先给定的基准标识的至少一个比特的另一电路的另一比特流,参见方法步骤22。通过将另一比特流与基准比特流b0比较23,确定在所产生的另一比特流中相对于基准比特流b0改变的比特的至少一个位置。这一直重复,直至比特流中的基准标识的全部比特的位置和值都是已知的。但是,尤其当要编码的设备特定的标识需要少量比特来表示时,也能够仅确定基准标识的比特的子集的值和位置。

将期望的设备特定的标识的比特插入到基准比特流b0中或者能够直接在确定比特流中的单个或多个数据比特的位置之后执行。但是,也能够首先针对对于设备特定的标识所需要的比特的一部分或也针对基准标识r-id的全部比特确定比特流中的编码。于是,随后将具有设备特定的标识的全部比特的设备特定的比特流编码到基准比特流b0中。

图3示出步骤21至23的执行的一个实施例。基准电路f0包括多个组件,其中组件s1、……、sn固定地分配给n比特长的基准标识r-id的各一个数据比特。实施基准电路f0的其他功能s的其他组件例如通过图3中的组件的两个子区域来示出。功能s也能够作为连续的块编码或者但是在基准电路f0的多个子区域中编码。基准标识r–id同样能够布置在一个块中,或者但是作为多个在此未示出的不连续的块布置在基准电路f0中。现在,例如通过综合工具从所述基准电路f0产生基准比特流b0。基准标识r-id在所示出的示例中仅由零构成。

随后,现在建立另一电路f1,其中为基准标识r-id的例如最低位的第一比特的组件s1相对于基准电路f0改变,在此代替零作为一来编码。另一电路f1借助于综合工具转变为相应的另一比特流b1,参见方法步骤12。通过将另一比特流b1与基准比特流b0比较,确定在比特流b1中改变的比特的位置进而确定比特流中的组件s1的比特。相应地,产生另外的第二电路f2,在所述第二电路中将基准标识r-id的第二组件s2或第二比特设定为一,并且随后从中产生所属的第二比特流b2。通过将另外的第二比特流b2与基准比特流b0比较,又确定第二比特流的改变的比特pf2进而确定基准标识的改变的第二比特s2的编码。改变的比特pf1、pf2到基准标识r-id的相应的组件s1、s2或比特的分配例如存储在表格中。这针对基准标识r-id的每个比特重复。在此同样示出在基准标识的最后的、在此第n比特中改变的数据比特流fn以及从中产生的、具有改变的比特pfn的比特流bn。

改变的比特pf1、……、pfn在比特流b1、……、bn中不必需以与电路f1至fn中的基准标识r-id中的改变的比特s1、……、sn相同的顺序出现。具有在所产生的另一比特流bi中的改变的比特pfi的区域也能够叠加,所述另一比特流用于电路f1、……、fn中的不同的改变的比特s1、……、sn。对于电路中的改变的比特si尤其能够改变比特流中的多个比特pfi。

在此,预先给定的基准标识r-id不必如所示出的那样仅由零构成,而是能够是任意的二进制序列。

同样可行的是:为了为基准标识r-id的改变的第二比特si确定比特流中的比特pfi,将比特流bi与比特流bi-1比较,代替与基准比特流b0比较。每个比特流能够用作为基准比特流,对于所述每个比特流,所属的基准标识是已知的。

不需要分别将整个另一电路fi转译成另一比特流bi。——当这受电路模块或所属的综合工具支持时——,也能够借助另一电路fi的子区域来工作,但是所述子区域必须包含基准标识。因此,进一步降低用于产生比特流bi的运算时间,进而进一步降低编码的确定,即比特流bi中的数据比特si的比特pfi。

基准标识r-id的各个改变的比特bi的如此确定的位置例如记录到表格中。随后,组件或数据比特的编码能够从表格中确定,并且直接地记录到基准比特流b0中。

同样可行的是:改变基准标识r-id的多个比特si,并且随后借助于综合工具将表示为多次改变的数据比特流转变为另一比特流。随后,通过不同的多次改变的数据比特流的组合能够确定相对于基准比特流b0改变的比特。但是在表格中也能够以电路中的改变的比特的组合的方式记录比特流中的所得出的改变的比特,并且随后用于对基准比特流b0中的设备特定的标识g-id编码。在此,需要注意的是:多次改变的数据比特流的组合展开期望的基准标识r-id的整个空间,因为否则并非所有任意的设备特定的标识能够在比特流中产生。

在图4中示出具有设备特定的标识g-id的电路f(g-id)。在此,设备特定的标识g-id分布到电路之上的两个子块sb1、sb2中的组件上。为了能够保护如此产生的设备特定的比特流b(g-id)以防无意的改变、诸如传输错误,或能够识别所述无意的改变,关于比特流b(g-id)形成校验和crc。所述校验和crc通常附加到设备特定的比特流上。

在图5中示出个性化的比特流、即包含设备特定的标识、诸加密密钥的比特流。结构相同的设备通过这种个性化的比特流获得设备特定的标识。

从形成可编程的电路模块的其他功能的电路s出发,为了准备个性化而通过如下方式产生基准比特流f0:即在预先确定的组件中插入具有长度例如为n个比特的基准标识r-id。现在,从该基准电路f0产生比特流b0、……、bn。在此,b1、……、bn例如从分别改变了基准标识的一个比特的电路f1至fn产生。

从各一个比特流bi与基准比特流b0的比较中确定电路fi的改变的比特si的编码。在表格t中,比特流中的所确定的比特分配给电路fi中的相应改变的比特si。在所得出的表格t中,例如对于基准标识r-id的每个设定成值一的比特存在具有比特流中的相应的编码的条目。因此,能够利用表格t从基准比特流b0和期望的设备特定的标识g-id直接地在比特流中建立设备特定的比特流。

为了产生具有连续的序列号的比特流,优选始于基准电路f0或所属的基准比特流b0。随后,首先改变基准数据比特流中的最低位的比特s1,并且产生相应的另一比特流b1。可以由其形成第一序列号0以及序列号1作为设备特定的比特流。随后,才形成具有改变的比特s2的另一电路f2,并且确定相应的比特流b2。现在,由其建立全部设备特定的比特流,所述设备特定的比特流能够借助基准标识的至此改变的比特形成。这是序列号0至3。为了产生用于序列号4的设备特定的比特流才产生具有设定成值1的随后的比特s3的改变的电路f3,并且形成所属的另一比特流b3。现在,可以产生能够借助基准标识的比特1至3形成的全部设备特定的比特流,即序列号4至7。因此,将基准比特的编码的所执行的确定的数量最小化。

图6中示出的用于产生具有可编程的电路模块210的设备的设备特定的编程的装置100具有产生单元110、插入单元120以及分配单元150。分配单元150被构造用于将基准标识r-id表示为比特序列,并且将基准标识r-id的每个比特分配给电路模块的各一个不同的组件。

产生单元110被构造成用于产生用于电路模块210的基准电路f0的基准比特流b0,在所述基准电路中至少包含基准标识r-id的预先确定的组件。插入单元120实现:将设备特定的标识g-id作为二进制序列通过覆写基准标识r-id的相应的组件的比特而直接地插入在基准比特流b0中,并且调整可能存在的校验和。

装置100附加地包括存储单元140,所述存储单元存储具有电路中的基准标识的各一个比特到其在比特流中的编码的分配的表格t。表格t已经能够在该装置中可用,或者通过确定单元130来确定。

确定单元130被构造用于产生基准电路f0的基准比特流b0,产生用于改变了预先给定的基准标识r-id的至少一个比特的另一电路fi的另一比特流bi,和确定在所产生的另一比特流bi中相对于基准比特流b0改变的至少一个比特pfi。在表格中,将所确定的比特pfi分配给基准标识r-id的改变的比特并且存储。

插入单元120具有接口160,经由所述接口能够将相应形成的设备特别的比特流录入到可编程的电路模块210中。

图7示出设备200,所述设备包括可编程的电路模块210。设备200能够构造为第一设备。第一设备强制性地仅包括电路模块210,在所述电路模块上根据所描述的方法或在利用装置100的情况下引入设备特定的标识。

设备200也能够构造为第二设备。于是,所述设备包括可编程的电路模块210,并且附加地包括存储装置220以及编码单元240。存储装置220包含设备特定的标识g-id、电路模块210的基准电路b0的基准比特流b0以及表格。在表格中,给基准电路f0的每个改变的比特si分配在由其产生的另一比特流bi中相对于基准比特流b0改变的比特的至少一个位置pfi。编码单元240利用表格从基准比特流b0和设备特定的标识r-id产生设备特定的比特流b(g-id)。

设备200也能够构造为第三设备。第三设备200除了第二设备的组件之外还包括随机数生成器230,所述随机数生成器例如产生随机形成的密钥的随机数。该设备还包括编码单元240,所述编码单元利用表格t从基准电路和设备特定的标识g-id产生设备特定的比特流b(g-id),并且将其传输到可编程的电路模块210中。

方法、装置和设备也能够以掩码的方式或以代码混淆的方式产生设备特定的标识g-id或存储在设备200上。于是,设备特定的标识g-id的比特例如不同地分布或者以交换的顺序包含在电路中,或者在所述比特能够用作为密钥之前,在运行期间通过函数处理。

借助所描述的方法尤其可行的是:对具有可编程的电路模块的设备在制造时供应个体的比特流。该方法借助全部可获得的可编程的电路模块、还有借助不支持再加载模块的这种电路模块来工作。借此,对设备能够简单地供应设备特定的密钥或供应个体的序列号。如果设备不包含随机数生成器230,那么能够以相同的方式将个体的熵文件引入到可编程的电路模块中。熵文件于是能够用作为用于形成加密密钥的基础。攻击方在成功入侵设备时仅获得对唯一的电路模块的个体的密钥的存取,而未获得对系统范围的密钥的存取。

如果必须根据密钥长度确定用于每个比特的编码,那么该方法尤其适合于引入系统密钥或椭圆曲线密钥。较长的密钥、诸如rsa密钥也能够借助根据本发明的方法来实现,但是需要在建立分配表格t时显著更高的耗费。如果已知编码到基准比特的分配,那么该方法适合于任意类型的加密密钥和其他数据、如序列号等。

在本发明的范围内,全部所描述的和/或所示出的特征能够有利地彼此组合。本发明不限于所描述的实施例。

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