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

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

Info

Publication number
CN107836081B
CN107836081B CN201680041543.5A CN201680041543A CN107836081B CN 107836081 B CN107836081 B CN 107836081B CN 201680041543 A CN201680041543 A CN 201680041543A CN 107836081 B CN107836081 B CN 107836081B
Authority
CN
China
Prior art keywords
bit stream
circuit
bit
changed
bits
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.)
Expired - Fee Related
Application number
CN201680041543.5A
Other languages
English (en)
Other versions
CN107836081A (zh
Inventor
J-U.布泽
D.默利
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Siemens AG
Original Assignee
Siemens AG
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Siemens AG filed Critical Siemens AG
Publication of CN107836081A publication Critical patent/CN107836081A/zh
Application granted granted Critical
Publication of CN107836081B publication Critical patent/CN107836081B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17748Structural details of configuration resources
    • H03K19/17768Structural details of configuration resources for security
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/588Random number generators, i.e. based on natural stochastic processes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • H04L9/0662Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0866Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/34Encoding or coding, e.g. Huffman coding or error correction

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Bioethics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

一种用于在设备(200)中产生设备特定的标识的根据本发明的方法,所述设备包含至少一个可编程的电路模块(210)并且所述设备的电路由各个组件构成,所述组件通过加载比特流来配置,所述方法包括如下方法步骤:‑将基准标识(R‑Id)表示(11)为比特序列,并且将基准标识(R‑Id)的每个比特分配给电路模块的各一个不同的组件(Si),‑产生(12)用于电路模块(210)的基准电路(F0)的基准比特流(B0),在所述基准电路中至少包含基准标识(R‑Id)的预先确定的组件(Si),和‑将设备特定的标识(G‑Id)作为二进制序列通过覆写基准标识(R‑Id)的相应的组件的比特而直接地记录(13)在基准比特流(B0)中。根据本发明的装置具有执行方法的机构。根据本发明的设备具有可编程的电路模块(210)并且将该方法用于建立设备个体的比特流。

Description

用于产生设备特定的标识的方法和装置和包括个性化的可编 程电路模块的设备
技术领域
本发明涉及用于通过对可编程的电路模块进行比特流个性化产生设备特定的标识的方法和装置,涉及一种包括可编程的电路模块的设备,以及一种计算机程序产品以及涉及一种数据载体,所述计算机程序产品执行该方法的步骤,所述数据载体存储计算机程序产品。
背景技术
也称作为现场可编程门阵列(FPGA)的可编程的电路模块是数字技术的集成电路,在所述集成电路中能够对逻辑电路进行编程。FPGA因此通过以下方式不同于计算机处理器(CPU)和存储器可编程的控制装置(SPS):即在FPGA中功能结构在生产之后也还能编程或者也能够再次改变,在所述计算机处理器(CPU)和存储器可编程的控制装置(SPS)中必须在制成之前确定功能结构并且仅对时间进程编程。这甚至在现场在安装时和在使用期间是可能的。
在对FPGA编程时,确定功能结构和因此不同的集成组件,即FPGA的期望的电路。该电路能够以电路图的形式图形地或借助于硬件描述语言、也已知为HDL来建立。随后,借助综合工具在专门考虑目标FPGA的硬件资源的情况下产生集成组件的、例如查询表或触发器的,和所属的连接结构的比特流。随后,该比特流在运行期间、即在将运行电压接入FPGA上时从附加需要的永久存储器加载到非永久的FPGA中。借此,如在电路图中所确定的那样实现FPGA中的组件。FPGA在切断运行电压之前或在加载另一比特流之前保持该电路结构。
在电路图中也可以以固定编码的方式包含例如作为常量的数据,其中所述电路图下文中也简称为电路。所述数据能够由FPGA内部使用或者也能够被输出。因此,也能够在FPGA中安装加密密钥。电路之内的固定编码的数据能够极其简单地、例如经由硬件描述语言HDL来改变。然而,必须借助综合工具从每个电路建立新的比特流,这典型地持续数分钟。
比特流包含呈私有的、通常制造商或还有FPGA特定的未知格式形式的配置数据,即电路。如果期望对设备经由FPGA供应个体的数据比特流,那么必须借助于综合工具为每个设备重新产生自身的比特流,其中所述个体的数据比特流例如包含个体的设备序列号和/或个体的加密设备密钥。这在设备件数少的情况下已经需要很高的运算和时间耗费,以产生不同的比特流数据,并且尤其当以高频率生产设备时几乎无法执行。
从Dirk Koch, Christian Beckhoff的因特网公开文献中:HierarchicalReconfiguration of FPGAs, FPL 2014, 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时显著更高的耗费。如果已知编码到基准比特的分配,那么该方法适合于任意类型的加密密钥和其他数据、如序列号等。
在本发明的范围内,全部所描述的和/或所示出的特征能够有利地彼此组合。本发明不限于所描述的实施例。

Claims (12)

1.一种用于在设备(200)中产生设备特定的标识(G-Id)的方法,所述设备包含至少一个可编程的电路模块(210)并且所述设备的电路由各个组件构成,所述组件通过加载比特流来配置,所述方法具有如下步骤:
-将基准标识(R-Id)表示(11)为比特序列,并且将所述基准标识(R-Id)的每个比特分配给所述电路模块的各一个不同的组件,
-产生(12)用于所述电路模块(210)的基准电路(F0)的基准比特流(B0),在所述基准电路中至少包含所述基准标识(R-Id)的预先给定 的组件,和
-将所述设备特定的标识(G-Id)作为二进制序列通过覆写所述基准标识(R-Id)的相应的组件的比特而直接地记录(13)在所述基准比特流(B0)中,
其中通过如下方法步骤确定用于在比特流中对所述基准标识(R-Id)的组件进行编码的比特:
(a)产生(21)基准电路(F0)的基准比特流(B0),
(b)产生(22)用于改变了所述预先给定的基准标识(R-Id)的至少一个比特的另一电路(Fi)的另一比特流(Bi),和
(c)确定(23)以下比特(PFi)的至少一个位置,所述比特在所产生的另一比特流(Bi)中相对于所述基准比特流(B0)改变。
2.根据权利要求1所述的方法,其中所述基准标识的每个组件固定地配置成,或者输出值零或者输出值一。
3.根据权利要求1所述的方法,其中通过关于所述设备特定的比特流(B(G-Id))的重新计算的校验和来取代关于所述基准比特流(B0)的现有的校验和(CRC)。
4.根据权利要求1-3中任一项所述的方法,其中所述预先给定的基准标识(R-Id)由多个任意在所述基准电路(F0)中分布的子基准标识构成。
5.根据权利要求1-3中任一项所述的方法,其中仅为所述基准电路(F0)的包括所述基准标识(R-Id)的子区域产生所述另一比特流(Bi)。
6.根据权利要求1-3中任一项所述的方法,其中将改变了一个比特的电路(Fi)用作为用于确定所述基准标识(R-Id)的下一比特的位置的新的基准电路(R0)。
7.根据权利要求1-3中任一项所述的方法,其中在多次改变的电路中改变所述基准标识(R-Id)的多于一个的比特,和/或通过多个由多次改变的电路产生的另外的比特流的组合,对于改变的电路中的改变的比特确定比特流中的比特的位置。
8.根据权利要求1-3中任一项所述的方法,其中产生表格,在所述表格中给所述基准电路(F0)的每个改变的比特分配在由其产生的另一比特流(Fi)中相对于所述基准比特流(F0)改变的比特的至少一个位置(PFi)。
9.根据权利要求1-3中任一项所述的方法,其中所述设备特定的标识(G-Id)是加密密钥或序列号。
10.一种用于在可编程电路模块(210)中产生设备特定的标识(G-Id)的装置,所述电路模块的电路由各个组件构成,所述组件通过加载比特流来配置,所述装置包括:分配单元(150),所述分配单元被构造用于:将基准标识(R-Id)表示为比特序列并且将所述基准标识(R-Id)的每个比特分配给所述电路模块的各一个不同的组件;产生单元(110),所述产生单元被构造用于:产生用于电路模块(210)的基准电路(F0)的基准比特流(B0),在所述基准电路中包含有所述基准标识(R-Id)的预先给定 的组件,和
插入单元(120),所述插入单元被构造用于:将所述设备特定的标识(G-Id)作为二进制序列通过覆写所述基准标识(R-Id)的相应的组件的比特而直接地记录(13)在所述基准比特流(B0)中,
所述装置附加地包含确定单元(130),所述确定单元确定用于在比特流中对所述基准标识(R-Id)的组件进行编码的比特,并被构造用于:产生所述基准电路(F0)的基准比特流(B0),产生用于改变了所述预先给定的基准标识(R-Id)的至少一个比特的另一电路(Fi)的另一比特流(Bi),和确定以下比特(PFi)的至少一个位置,所述比特在所产生的另一比特流(Bi)中相对于所述基准比特流(B0)改变。
11.根据权利要求10所述的装置,所述装置附加地包括存储单元(140),所述存储单元被构造用于:存储表格,在所述表格中给所述基准电路(F0)的每个改变的比特分配在所产生的另一比特流(Bi)中相对于所述基准比特流(B0)改变的比特的至少一个位置(PFi)。
12.一种计算机可读的存储介质,其存储有计算机程序,所述计算机程序能够直接被加载到数字计算机的存储器中,以便执行根据权利要求1至9之一所述的方法的步骤。
CN201680041543.5A 2015-07-15 2016-06-27 用于产生设备特定的标识的方法和装置和包括个性化的可编程电路模块的设备 Expired - Fee Related CN107836081B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
DE102015213300.1A DE102015213300A1 (de) 2015-07-15 2015-07-15 Verfahren und Vorrichtung zur Erzeugung einer Geräte-spezifischen Kennung und Geräte umfassend einen personalisierten programmierbaren Schaltungsbaustein
DE102015213300.1 2015-07-15
PCT/EP2016/064823 WO2017009026A1 (de) 2015-07-15 2016-06-27 Verfahren und vorrichtung zur erzeugung einer geräte-spezifischen kennung und geräte umfassend einen personalisierten programmierbaren schaltungsbaustein

Publications (2)

Publication Number Publication Date
CN107836081A CN107836081A (zh) 2018-03-23
CN107836081B true CN107836081B (zh) 2021-02-09

Family

ID=56296786

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680041543.5A Expired - Fee Related CN107836081B (zh) 2015-07-15 2016-06-27 用于产生设备特定的标识的方法和装置和包括个性化的可编程电路模块的设备

Country Status (6)

Country Link
US (1) US10642628B2 (zh)
EP (1) EP3289685B1 (zh)
KR (1) KR102052004B1 (zh)
CN (1) CN107836081B (zh)
DE (1) DE102015213300A1 (zh)
WO (1) WO2017009026A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017161305A1 (en) * 2016-03-18 2017-09-21 University Of Florida Research Foundation, Incorporated Bitstream security based on node locking
US20200210869A1 (en) * 2018-12-28 2020-07-02 Siemens Aktiengesellschaft Gateway and method for transforming a description of an industrial process equipment into a data information model

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6191614B1 (en) * 1999-04-05 2001-02-20 Xilinx, Inc. FPGA configuration circuit including bus-based CRC register
CN101247203A (zh) * 2007-02-16 2008-08-20 联发科技股份有限公司 检出收缩卷积码中收缩位置的装置和方法
CN103391092A (zh) * 2013-03-01 2013-11-13 友达光电股份有限公司 用于多电平数据传输的方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2742616B1 (fr) * 1995-12-18 1998-01-09 Cit Alcatel Dispositif de chiffrement et dispositif de dechiffrement d'informations transportees par des cellules a mode de transfert asynchrone
US7126378B2 (en) * 2003-12-17 2006-10-24 Rambus, Inc. High speed signaling system with adaptive transmit pre-emphasis
US7278128B1 (en) * 2003-04-11 2007-10-02 Xilinx, Inc. Method of altering a bitstream
US7636439B2 (en) * 2004-09-10 2009-12-22 Hitachi Kokusai Electric, Inc. Encryption method, encryption apparatus, data storage distribution apparatus and data delivery system
US7581117B1 (en) * 2005-07-19 2009-08-25 Actel Corporation Method for secure delivery of configuration data for a programmable logic device
US8005223B2 (en) * 2006-05-12 2011-08-23 Research In Motion Limited System and method for exchanging encryption keys between a mobile device and a peripheral device
JP4851947B2 (ja) * 2007-01-29 2012-01-11 株式会社東芝 論理回路
DE102008023912A1 (de) * 2008-05-16 2009-11-19 Siemens Aktiengesellschaft Verfahren und Speichervorrichtung zum Bereitstellen eines kryptografischen Schlüssels
FR2941343B1 (fr) 2009-01-20 2011-04-08 Groupe Des Ecoles De Telecommunications Get Ecole Nat Superieure Des Telecommunications Enst Circuit de cryptographie, protege notamment contre les attaques par observation de fuites d'information par leur chiffrement.
US20120057704A1 (en) * 2010-09-07 2012-03-08 Futurewei Technologies, Inc. System and Method for Providing Security in a Wireless Communications System
EP3518128B1 (en) * 2011-03-30 2021-04-28 Irdeto B.V. Enabling a software application to be executed on a hardware device
US20140043059A1 (en) * 2012-08-10 2014-02-13 Microsemi Soc Corp. Secure digest for pld configuration data
CN104219045B (zh) * 2013-06-03 2018-11-09 中国科学院上海高等研究院 Rc4 流密码生成器

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6191614B1 (en) * 1999-04-05 2001-02-20 Xilinx, Inc. FPGA configuration circuit including bus-based CRC register
CN101247203A (zh) * 2007-02-16 2008-08-20 联发科技股份有限公司 检出收缩卷积码中收缩位置的装置和方法
CN103391092A (zh) * 2013-03-01 2013-11-13 友达光电股份有限公司 用于多电平数据传输的方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Generating unique identifiers for smartphones using software;G. Hammouri;《ELECTRONICS LETTERS》;20140623;938-939 *
基于超混沌序列密码的视频流加密传输技术研究;颜婧;《中国优秀硕士学位论文全文数据库信息科技辑》;20100515;第2-3章 *

Also Published As

Publication number Publication date
EP3289685A1 (de) 2018-03-07
EP3289685B1 (de) 2020-11-11
KR102052004B1 (ko) 2019-12-04
WO2017009026A1 (de) 2017-01-19
US20180203709A1 (en) 2018-07-19
KR20180030169A (ko) 2018-03-21
DE102015213300A1 (de) 2017-01-19
US10642628B2 (en) 2020-05-05
CN107836081A (zh) 2018-03-23

Similar Documents

Publication Publication Date Title
CN108063756B (zh) 一种密钥管理方法、装置及设备
CN104364756B (zh) 单个数据缓冲器的并行处理
CN107836081B (zh) 用于产生设备特定的标识的方法和装置和包括个性化的可编程电路模块的设备
CN105808169A (zh) 用于数据去重的方法、装置和系统
EP3516575A1 (en) Technologies for user-mode persistence of certificates and keys in resource-constrained devices
US8719588B2 (en) Memory address obfuscation
CN107566543B (zh) 一种节点标识设置方法和装置
WO2017195369A1 (ja) プログラム開発支援装置、列車監視制御装置およびプログラム開発支援方法
Ferozpuri et al. Hardware api for post-quantum public key cryptosystems
US11138186B2 (en) Database identifier generation in transaction processing systems
KR20190122837A (ko) 프로그램 코드의 컴퓨터-지원 난독화를 위한 방법
CN108897677B (zh) 日志构建方法和系统
EP3803606B1 (en) System on chip firewall memory architecture
US9778941B2 (en) Substrate processing system, storage medium and method of registering new device
EP3238366A1 (en) Electronic calculating device
JP2018502392A (ja) レジスタを備えている複数のスレーブデバイスにネットワークを介してマスタデバイスがアクセスするための方法
JP2019016121A (ja) 車両制御装置、及び、車両制御模擬装置
Hannachi et al. Efficient reconfigurable regions management method for adaptive and dynamic FPGA based systems
KR102251241B1 (ko) 재구성 가능 프로세서의 레지스터를 제어하는 방법 및 장치와 재구성 가능 프로세서의 레지스터를 제어하는 명령어를 생성하는 방법 및 장치
US20170357815A1 (en) Code obfuscation and unique instances
KR102409398B1 (ko) 입체도형을 이용한 삼차원 공간 위치 좌표화 방법
CN115391842A (zh) 一种可动态配置安全算法库的芯片设计方法
US20190384894A1 (en) Intrinsic authentication of program code
JP6625836B2 (ja) 通信装置、通信方法および通信プログラム
US11226814B2 (en) Compiler device and compiling method

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
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20210209