CN113228012A - 用于鉴别fpga配置的方法和设备 - Google Patents

用于鉴别fpga配置的方法和设备 Download PDF

Info

Publication number
CN113228012A
CN113228012A CN201980082925.6A CN201980082925A CN113228012A CN 113228012 A CN113228012 A CN 113228012A CN 201980082925 A CN201980082925 A CN 201980082925A CN 113228012 A CN113228012 A CN 113228012A
Authority
CN
China
Prior art keywords
fpga
configuration
check sum
authentication response
predefined
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.)
Pending
Application number
CN201980082925.6A
Other languages
English (en)
Inventor
F·德桑蒂斯
M·迪克特
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 CN113228012A publication Critical patent/CN113228012A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/76Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in application-specific integrated circuits [ASIC] or field-programmable devices, e.g. field-programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3271Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response
    • H04L9/3278Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response using physically unclonable functions [PUF]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2103Challenge-response
    • 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/16Obfuscation or hiding, e.g. involving white box
    • 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/26Testing cryptographic entity, e.g. testing integrity of encryption key or encryption algorithm

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)

Abstract

本发明涉及一种用于鉴别FPGA配置(2)的方法和设备,其具有以下步骤:借助于FPGA(1)自身至少部分地读取(S1)所述FPGA(1)的配置(2),并且使用所读取的配置(2)计算第一检查和;以及如果所述第一检查和匹配指定检查和,则提供(S2)确认所述FPGA配置(2)真实的鉴别响应(B),其中按混淆方式执行所述步骤(S1)和(S2),并且如果所述第一检查和与所述指定检查和并不匹配,则不提供或仅以非常低概率度提供确认所述FPGA配置(2)真实的鉴别响应(B)。在这方面,FPGA可以检查其自己的配置。

Description

用于鉴别FPGA配置的方法和设备
技术领域
FPGA使得可以使用其软件可重新编程的芯片近似实现数字硬件的速度。
背景技术
名称FPGA代表现场可编程门阵列。在FPGA芯片上存在具有可变可指定逻辑功能的多个逻辑门。所述逻辑功能通常实现为查找表(LUT)。通过在表中查找位来确定组合的逻辑值。对于小n(例如n=6),任何所期望的n位逻辑函数都可以通过合适地预先分配所述表来表示。除逻辑功能和触发器以外,在FPGA芯片上还存在用于引导逻辑信号的资源。需要其来使得门的输入和输出值可以到达芯片上的其它位置。
逻辑电路通常用高级语言(例如VHDL或Verilog)限定。制造商的开发工具根据高级语言生成LUT的分配以及引导设置,并且使用其来生成所谓的位流,所述位流然后配置所述FPGA。
然而,FPGA的可重新编程性也构成相当大的安全风险,因为攻击者可以为他自己使用此高度灵活性。如果攻击者可以操纵FPGA的位流或配置,则可以例如关闭安全功能,或者可以将恶意硬件木马添加到FPGA系统并降低系统的安全性。然而,SoC系统(片上系统)的部件也可能由环境中的物理变化(例如由于不期望的温度变化)导致。这些可能无意地(例如温度波动或辐射)以及有意地和故意地出现,以便例如借助于故障攻击来提取设备的关键材料。
因此,防止FPGA操纵在安全性相关和安全相关的基于FPGA的控制设备中都是高保护目标。其旨在能够防止或至少检测操纵。如果检测到所述设备的操纵,则系统可以处理对应事件。例如,可以阻挡系统,或者可以删除敏感数据。
因此,需要确保在FPGA上存在真实配置的方法。由于特别是工业应用保持长时间使用,但是安全要求常常在短时间内增加,因此用于确保真实FPGA配置的方法必需具有适应性。
已知由制造商永久安装在FPGA芯片中并且旨在用于确保真实位流的安全机制。然而,在许多情况下,其安全性已经受到侧通道攻击的危害。例如,在侧通道攻击的情况下,不直接攻击密码使用法,而是攻击其物理实现方式。
此外,所述检查仅在启动FPGA的操作期间执行,并且不在FPGA的运行时间期间执行。另外,所使用的安全机制对量子计算机的攻击并不具有任何保护。
还已知用于保护FPGA内容的混淆方法。
硬件和软件的混淆涉及按如下方式呈现用于处理数字信息的功能:处理所基于的原理无法被人类阅读者和分析软件辨别。目的是增加逆向工程的努力,以便阻碍针对性的改变,或扭曲所述功能。在此情况下,可公开辨别所有单独的操作。实际需要的操作通常嵌入并不直接实现所述目标的许多操作中。此外,可以按交错和混淆方式出于两种不同目的来实现硬件或软件,使得攻击者无法在不改变所述功能中的一者的情况下改变另一者。
还已知组合PUF与FPGA的自读取的方法。然而,这些方法仅提供有限且不连续的保护。
PUF代表物理不可克隆函数。其包括其中每一副本不同地起作用的硬件。像指纹一样,使用PUF来使得可以唯一地识别芯片或创建加密密钥。在此情况下特别有利的是,在每一硬件副本中按相同方式一次又一次地实现此不同行为。
发明内容
因此,本发明的目的是提供一种用于鉴别FPGA配置的方法和设备,结果是FPGA自身检查其配置的真实性。
根据本发明,借助于具有在专利权利要求1中指定的特征的用于鉴别FPGA配置的方法来实现此目的。
因此,本发明提供一种用于鉴别FPGA配置的方法,其具有以下步骤:
借助于FPGA自身至少部分地读取所述FPGA的配置,并且关于已经读取的所述配置计算第一检查和;并且如果所述第一检查和对应于预先限定的检查和,则提供确认所述FPGA配置真实的鉴别响应,其中按混淆形式实施所述步骤,并且其中如果所述第一检查和与所述预先限定的检查和并不对应,则不提供或仅以非常低概率度提供确认所述FPGA配置真实的所述鉴别响应。
已经有利地认识到,在不明确比较第一检查和与预先限定的检查和的方法中,攻击和对混淆的分析仅困难地成为可能或根本不可能。在任何情况下,都使用第一检查和与预先限定的检查和来计算响应。当所述第一检查和与所述预先限定的检查和对应时,此响应是正确鉴别响应。如果所述第一检查和与所述预先限定的检查和并不对应,则所述响应可以仅以非常低概率度构成正确鉴别响应。例如,小于或等于2-32的概率被视为非常低概率度。
可以不仅在启动FPGA时使用本发明的方法有利地检查FPGA配置的真实性,而且还可以在FPGA的运行时间期间检查FPGA配置的真实性、特别是可以重复地检查。
此外,按经改进方式检测FPGA配置的例如因操纵尝试或者因随机或故意导致的错误而出现的变化。不管FPGA的制造商的安全构思如何,都可以随时检测和检查所述真实性。
如果FPGA支持自行读取其配置的功能,则所述方法可以有利地用于或移植到所有FPGA。另外,与由制造商永久安装的安全机制形成对比,可以更新本发明的方法。
所使用的加密方法可以有利地互换,因此本发明的方法具有高加密灵活性。
同样有利的是,所述方法也适于后量子方法,并且可以使用后者来执行。因此,其抵御来自量子计算机的攻击。无法使用量子计算机来攻击后量子方法。
此外,可以通过适当地选择例如用于加密的参数来提高安全级别。
另外,FPGA配置的自读取、混淆和PUF部件的组合产生不可能对混淆解除攻击的优点。在解除攻击的情况下,攻击者移除经混淆的硬件或软件的一部分并将其不经改变地转移到他的应用。攻击者根本不试图理解所移除部分如何起作用,而是仅依赖于此部分还在他的应用中正确地起作用,就像在其原始环境中一样。例如,攻击者可以解除设备的混淆功能,并且可以将其按未改变形式复制到新设备,以便克隆原始设备。避免解除攻击的一种可能方法涉及例如借助于PUF部件将混淆功能链接到单独的硬件。
从属权利要求和下文描述的示例性实施例涉及本发明的其它有利配置。
在所述方法的一个实施例中,检查所述第一检查和与预先限定的检查和的对应,并且仅在存在对应时才计算所述鉴别响应。所述检查可以例如通过将所述第一检查和与预先限定的检查和进行比较来执行。对应可以优选地对应于FPGA的真实配置。
在一个有利实施例中,对FPGA配置的读取可以包括对FPGA配置的完整读取。
在另一个有利实施例中,所述预先限定的检查和可以关于所述FPGA的参考配置形成。
在根据本发明的方法的一个可能的实施例中,所述预先限定的检查和包括至少一个散列值或加密散列函数或单向函数的至少一个结果。
在根据本发明的方法的另一个可能的实施例中,所述鉴别响应的提供包括针对预先限定的鉴别任务生成非对称签名。
在根据本发明的方法的另一个可能的实施例中,所述鉴别任务包括随机数。在此情况下,随机数(仅使用一次的数字)表示仅使用一次的值。随机数可以例如借助于计数器实现。也可以使用随机值作为随机数。如果随机数取自具有合适分布的足够大的集合,则值重复出现的概率非常小以至于安全风险可以忽略不计。
在此有利实施例中,检查单元知道公开密钥和签名检查方法。所述FPGA被提供有所指派的随机数,并且所述FPGA用签名对所提供的随机数作出响应。所述检查单元使用其知道的非对称方法的公开密钥来检查签名的真实性。
在根据本发明的方法的另一个可能的实施例中,所述鉴别响应的提供包括解密非对称加密的消息。
在此有利实施例中,所述检查单元知道所述公开密钥和加密方法。
在根据本发明的方法的另一个可能的实施例中,非对称地加密的消息包括随机数。
在根据本发明的方法的另一个可能的实施例中,所述鉴别响应的提供包括解密对称地加密的消息。
如果检查单元知道秘密密钥,则此实施例是可能的。在另一个实施例中,检查单元不知道所述秘密密钥。在此实施例中,用于加密的混淆函数按硬件和/或软件形式可用于检查单元,其中隐藏秘密密钥。
在另一个可能的实施例中,所述消息包括随机数。
在根据本发明的方法的另一个可能的实施例中,所述鉴别响应的提供包括对称地加密消息。
如果检查单元知道所述秘密密钥,则此实施例是可能的。在另一个实施例中,检查单元并不知道所述密钥。在此实施例中,用于解密的混淆函数按硬件和/或软件形式可用于检查单元,其中隐藏秘密密钥。
使具有混淆函数的鉴别任务可按加密形式用于FPGA,并且如果所述FPGA可以提供对应于经加密的鉴别任务的正确鉴别响应,则可以假设所述FPGA配置的真实性。只有这样才可以解密经加密的鉴别任务并提供正确的鉴别响应。
在另一个实施例中,所述消息包括随机数。
在所述鉴别响应的提供包括对称加密或解密的本发明的实施例中,有利的是,出于加密消息的目的,选择公众不知道的加密方法。即使使用通常已知的方法,同样有利的是,合适地修改参数,例如常数。
如果未知第三方(攻击者)不知道所述加密方法,则有利地改进所述加密。
在根据本发明的方法的另一个实施例中,鉴别响应的提供包括呈一个信号或多个信号的形式的信号模式。
这具有不需要密码计算来检查鉴别响应的优点。
在根据本发明的方法的另一个可能的实施例中,根据权利要求1所述的步骤的混淆实施包括来自物理不可克隆函数PUF的数据。
这具有如下优点:在纠错之后由PUF部件提供的所有或一些数据包括在混淆计算中。PUF部件为每一芯片提供攻击者不知道的不同数据。PUF部件被提供有PUF任务,并且这提供取决于所使用芯片并且不同于其它芯片的PUF响应。这些数据对攻击者来说是未知的,并且改进混淆计算中的混淆。
PUF部件有利地提供保护以防止产生具有未改变的原始固件的副本。另外,攻击者不知道的PUF数据加强混淆的效果。
在根据本发明的方法的另一个可能的实施例中,所述预先限定的检查和存储在所述FPGA配置外部的存储单元中。
这具有如下优点:所述预先限定的检查和不存储在位流中或者作为位流和/或FPGA配置的一部分。位流可以单独存储在存储单元中。
在根据本发明的方法的另一个可能的实施例中,所述预先限定的检查和按密码保护形式存储和/或与额外密码信息项一起存储。
在此情况下,按混淆形式实施FPGA配置的用于处理所述密码保护形式的电路部分和/或验证额外信息的部分,其可以仅以很大困难与混淆部分分开。这具有无法操纵存储在存储单元中的检查和的优点。
在根据本发明的方法的另一个可能的实施例中,使用PUF数据加密所述预先限定的检查和。基于PUF任务生成PUF响应。增加对用于检查FPGA配置的预先限定的检查和的保护。
这具有如下优点:多个秘密测试值可以与PUF部件的不同响应值一起按设备特定方式存储。如果已经使用检查和,则借助于所存储的数据和设备特定的PUF响应重构此检查和。
在根据本发明的方法的另一个可能的实施例中,如果特定信息项传输到FPGA,则提供第一检查和。
在一个实施例中,所述特定信息例如在FPGA配置的多个输入处包括特定信号模式。
有利地,仅系统的开发者知道待创建的此信号模式。可以按不同方式保护此信号模式免于被攻击者访问,其中可以有利地按混淆形式实现所述保护机制。
FPGA配置的检查和的值只能由知道所述特定信息的系统的开发者读取。有利地防止检查和被攻击者出于操纵目的读取。增加抵抗操纵的安全性。
在根据本发明的方法的另一个可能的实施例中,非对称地加密或签名、对称地加密所述特定信息,或者用来自PUF的数据加密所述特定信息。
在非对称加密的情况下,在FPGA中仅存在公开密钥,而系统的开发者知道所述私人密钥。
在根据本发明的方法的另一个可能的实施例中,如果特定信息项传输到FPGA,则提供来自PUF的数据。
在一个实施例中,所述特定信息例如在FPGA配置的多个输入处包括特定信号模式。
这具有仅系统的开发者知道所述特定信号模式的优点。安全性增加,因为未知第三方的访问受阻。
在根据本发明的方法的另一个可能的实施例中,非对称地加密或签名或者对称地加密所述特定信息。
非对称加密具有未知第三方的访问受阻的优点。保护所述信号模式以使其免于被访问,因为仅公开密钥存储在FPGA上,而开发者知道相关联的私人密钥。
对称加密具有未知第三方的访问受阻的优点。保护所述信号模式以使其免于被访问,因为仅开发者知道存储在FPGA上的表示的逆表示。
在根据本发明的方法的另一个可能的实施例中,在所述FPGA的所述配置期间和/或在所述FPGA的运行时间期间执行所述鉴别。
在根据本发明的方法的另一个可能的实施例中,重复地执行所述鉴别。例如,安全机制可用,其触发警报,并且因此开始对所述FPGA配置的重复检查。此外,可以按周期性重复的方式执行所述鉴别。
这具有如下优点:可以识别FPGA配置的例如因操纵尝试或者因随机或故意导致的错误引起的变化,并且采取对应措施。
本发明还提供具有在权利要求14中规定的特征的用于鉴别FPGA配置的设备。
因此,本发明提供一种用于鉴别FPGA配置的设备,其按如下方式配置:
由FPGA自身至少部分地读取所述FPGA的配置,并且关于已经读取的所述配置计算第一检查和;
如果所述第一检查和对应于预先限定的检查和,则提供鉴别响应,所述响应确认所述FPGA配置真实,其中按混淆形式实施所述第一检查和的至少部分的读取和计算以及所述鉴别响应的提供,并且其中如果所述第一检查和与所述预先限定的检查和并不对应,则不提供或仅以非常低概率度提供确认所述FPGA配置真实的鉴别响应。
在一个实施例中,所述系统包括计算系统。
在本发明的设备的一个实施例中,确认其用于确定所述检查和的部分是真实的。
本发明还涉及一种致使用于鉴别FPGA配置的方法在物理设备上实施的计算机程序产品。
附图说明
下文参考附图基于示例性实施方案更详细地解释本发明。
在附图中:
图1显示用于示出鉴别FPGA配置的根据本发明的设备的示例性实施例的框图;
图2显示用于示出鉴别FPGA配置的根据本发明的方法的可能示例性实施例的流程图。
具体实施方式
图1显示用于示出根据本发明的设备的可能示例性实施例的框图。在图1中示出的示例性实施例中,FPGA 1包含FPGA配置2。
FPGA配置2例如在启动FPGA 1并配置所述FPGA时被加载到FPGA 1的SRAM(静态随机存取存储器)中。
在运行时间期间使用本发明检查此安装的FPGA配置2,并且确定FPGA配置2的真实性或操纵。
第一部件6和第二部件7以及检查部件3和PUF部件5经由FPGA配置2实例化E。例如,第一部件6和第二部件7可以包括密码加速器或处理器。FPGA配置2可以实例化E其它部件。检查部件3和PUF部件借助于FPGA配置2实例化E。
检查部件3检查FPGA配置2。PUF部件5接收PUF任务并根据所述PUF任务向检查部件3提供PUF响应。PUF响应保留在FPGA 1上,并且有利地不用于进一步计算。
检查部件3接收来自PUF部件5的PUF响应。检查部件3还从SRAM读取FPGA配置2,并且接收经加密的检查以用于检查FPGA配置2。根据检查结果提供鉴别响应B。
可以使用鉴别响应B来确定在FPGA 1上运行的FPGA配置2是否已经受到危害。在另一个实施例中,鉴别响应B包括在否定检查的情况下(例如在FPGA配置2已经受到危害的情况下)的警报输出。
FPGA 1还耦接到存储单元4、优选地耦接到外部存储单元4。存储单元4经由接口(未示出)耦接到FPGA 1。存储单元4优选地呈非易失性存储器(例如闪速存储器)的形式。
示例性列表并不排除现有技术中已知的用作存储单元4的其它存储元件。所述预先限定的检查和按加密形式存储在存储单元4中。所述预先限定的检查和经由所述接口可用于检查部件3。在第一步骤S1中,使用检查部件3来计算所述第一检查和。为此目的,由FPGA 1至少部分地自读取F FPGA 1的FPGA配置2。
关于已经读取的FPGA配置2计算所述检查和。所计算检查和可以例如包括散列值。将所计算的检查和与存储在存储单元4中的检查和进行比较。如果所计算的检查和与存储在存储单元4中的预先限定的检查和对应,则鉴别FPGA配置2的阶段开始,并提供鉴别响应B。
鉴别响应B混淆了自读取的FPGA配置2。按混淆形式实施所述第一检查和的所述至少部分的读取和计算以及所述第一检查和与所述预先限定的检查和的比较和鉴别响应B的提供。因此,有利地不可能清楚地区分FPGA 1的自检查和鉴别响应B。
图2显示用于示出鉴别FPGA配置的根据本发明的方法的示例性实施例的流程图。
在所示出的示例性实施例中,所述方法包括多个步骤。在第一步骤S1中,由FPGA 1自身至少部分地读取S1 FPGA 1的配置2,并且关于已经读取的配置2计算第一检查和。
在另一个步骤S2中,如果所述第一检查和对应于预先限定的检查和,则提供鉴别响应B,所述响应确认FPGA配置2真实。按混淆形式实施步骤S1和S2。如果所述第一检查和与所述预先限定的检查和并不对应,则不提供或仅以非常低概率度提供确认FPGA配置2真实的鉴别响应B。
所述预先限定的检查和对应于FPGA 1的真实配置。
作为FPGA配置2的结果,因此向外部报告所述配置真实并且执行计算,所述计算没有额外信息的额外项,例如仅可按极其复杂的方式执行存储在FPGA配置2中的秘密的额外信息项。
为了防止FPGA配置2被攻击者按即使当FPGA配置2不真实时也提供鉴别响应B的方式改变,必须将用于读取和散列FPGA配置的电路与鉴别响应B混淆在一起。因此,有利地,攻击者基于混淆网络列表不清楚哪些电路部分用于自检查并且哪些部分用于提供鉴别响应B。
概述
概括来说,本发明涉及一种用于鉴别FPGA配置2的方法和设备,其具有以下步骤:借助于FPGA 1自身至少部分地读取S1 FPGA 1的配置2,并且关于已经读取的配置2计算第一检查和;如果所述第一检查和对应于预先限定的检查和,则提供S3确认FPGA配置2真实的鉴别响应B,其中按混淆形式实施步骤S1和S2,并且其中如果所述第一检查和与所述预先限定的检查和并不对应,则不提供或仅以非常低概率度提供确认FPGA配置2真实的鉴别响应B。
在这方面,FPGA可以自己检查其配置。

Claims (15)

1.一种用于鉴别FPGA配置(2)的方法,其具有以下方法步骤:
-借助于FPGA (1)自身至少部分地读取(S1)所述FPGA (1)的配置(2),并且关于已经读取的所述配置(2)计算第一检查和;
-如果所述第一检查和对应于预先限定的检查和,则提供(S2)确认所述FPGA配置(2)真实的鉴别响应(B),
其中,按混淆形式实施所述步骤(S1、S2),并且
其中,如果所述第一检查和与所述预先限定的检查和并不对应,则不提供或仅以非常低概率度提供确认所述FPGA配置(2)真实的鉴别响应(B)。
2.根据权利要求1所述的方法,其中,所述预先限定的检查和包括至少一个散列值或加密散列函数的一个结果。
3.根据前述权利要求1和2中的任一项所述的方法,其中,提供所述鉴别响应(B)包括针对预先限定的鉴别任务(A)生成非对称签名。
4.根据前述权利要求1和2中的任一项所述的方法,其中,提供所述鉴别响应(B)包括解密非对称加密的消息。
5.根据前述权利要求1和2中的任一项所述的方法,其中,提供所述鉴别响应(B)包括解密对称加密的消息。
6.根据权利要求1或2所述的方法,其中,提供鉴别响应(B)包括对称地加密消息。
7. 根据前述权利要求1至6中的任一项所述的方法,其中,根据权利要求1所述的步骤的混淆实施包括来自物理不可克隆函数PUF (5)的数据。
8.根据前述权利要求1至7中的任一项所述的方法,其中,所述预先限定的检查和存储在所述FPGA配置(2)外部的存储单元(4)中。
9. 根据前述权利要求1至8中的任一项所述的方法,其中,如果特定信息项传输到所述FPGA (1),则提供所述第一检查和。
10. 根据权利要求9所述的方法,其中,非对称地加密或签名、对称地加密所述特定信息,或者用来自所述PUF (5)的数据加密所述特定信息。
11. 根据权利要求7所述的方法,其中,如果特定信息项传输到所述FPGA (1),则提供来自所述PUF部件(5)的数据。
12.根据权利要求11所述的方法,其中,非对称地加密或签名或者对称地加密所述特定信息。
13. 根据前述权利要求1至12中的任一项所述的方法,其中,在所述FPGA (1)的配置期间和/或在所述FPGA (1)的运行时间期间执行鉴别。
14.一种用于鉴别FPGA配置(2)的设备,其按如下方式配置:
-FPGA (1)至少部分地读取所述FPGA (1)的配置(2),并且关于已经读取的所述FPGA配置(2)计算第一检查和;
-如果所述第一检查和对应于预先限定的检查和,则提供鉴别响应(B),所述响应确认所述FPGA配置(2)真实,
其中,按混淆形式实施所述第一检查和的至少部分的读取和计算以及所述鉴别响应(B)的提供,并且
其中,如果所述第一检查和与所述预先限定的检查和并不对应,则不提供或仅以非常低概率度提供确认所述FPGA配置(2)真实的鉴别响应(B)。
15.一种计算机程序产品,其在根据权利要求14所述的设备上执行根据专利权利要求1至13中的任一项所述的方法。
CN201980082925.6A 2018-12-14 2019-11-19 用于鉴别fpga配置的方法和设备 Pending CN113228012A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
EP18212529 2018-12-14
EP18212529.4 2018-12-14
EP19154671.2A EP3667529B1 (de) 2018-12-14 2019-01-31 Verfahren und vorrichtung zum authentisieren einer fpga-konfiguration
EP19154671.2 2019-01-31
PCT/EP2019/081783 WO2020120079A1 (de) 2018-12-14 2019-11-19 Verfahren und vorrichtung zum authentisieren einer fpga-konfiguration

Publications (1)

Publication Number Publication Date
CN113228012A true CN113228012A (zh) 2021-08-06

Family

ID=64949033

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980082925.6A Pending CN113228012A (zh) 2018-12-14 2019-11-19 用于鉴别fpga配置的方法和设备

Country Status (4)

Country Link
US (1) US20220043900A1 (zh)
EP (1) EP3667529B1 (zh)
CN (1) CN113228012A (zh)
WO (1) WO2020120079A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NO346155B1 (en) * 2020-10-26 2022-03-28 Kongsberg Defence & Aerospace As Configuration authentication prior to enabling activation of a FPGA having volatile configuration-memory

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101925913A (zh) * 2008-01-31 2010-12-22 国际商业机器公司 加密文件访问的方法和系统
US20150012737A1 (en) * 2013-07-04 2015-01-08 Microsemi SoC Corporation Secure Boot for Unsecure Processors
CN108885658A (zh) * 2016-03-30 2018-11-23 西门子股份公司 借助凭证对设备真实性的证明

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6654889B1 (en) * 1999-02-19 2003-11-25 Xilinx, Inc. Method and apparatus for protecting proprietary configuration data for programmable logic devices
US7840803B2 (en) * 2002-04-16 2010-11-23 Massachusetts Institute Of Technology Authentication of integrated circuits
US7143295B1 (en) * 2002-07-18 2006-11-28 Xilinx, Inc. Methods and circuits for dedicating a programmable logic device for use with specific designs
US7278128B1 (en) * 2003-04-11 2007-10-02 Xilinx, Inc. Method of altering a bitstream
US7725738B1 (en) * 2005-01-25 2010-05-25 Altera Corporation FPGA configuration bitstream protection using multiple keys
US9165143B1 (en) * 2013-03-15 2015-10-20 Xilinx, Inc. Image file generation and loading
US10031993B1 (en) * 2017-06-12 2018-07-24 Intel Corporation Application store model for dynamic reconfiguration of a field-programmable gate array (FPGA)
US11880468B2 (en) * 2018-01-12 2024-01-23 Unm Rainforest Innovations Autonomous, self-authenticating and self-contained secure boot-up system and methods

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101925913A (zh) * 2008-01-31 2010-12-22 国际商业机器公司 加密文件访问的方法和系统
US20150012737A1 (en) * 2013-07-04 2015-01-08 Microsemi SoC Corporation Secure Boot for Unsecure Processors
CN108885658A (zh) * 2016-03-30 2018-11-23 西门子股份公司 借助凭证对设备真实性的证明

Also Published As

Publication number Publication date
EP3667529C0 (de) 2024-02-28
WO2020120079A1 (de) 2020-06-18
EP3667529B1 (de) 2024-02-28
US20220043900A1 (en) 2022-02-10
EP3667529A1 (de) 2020-06-17

Similar Documents

Publication Publication Date Title
EP3454318B1 (en) Security system with entropy bits generated by a puf
Lazar et al. Why does cryptographic software fail? A case study and open problems
Tomlinson Introduction to the TPM
EP2506488B1 (en) Secure dynamic on-chip key programming
US10833878B2 (en) Integrated circuit with parts activated based on intrinsic features
CN106548100B (zh) 集成电路以及用于保护集成电路的方法
US20160350549A1 (en) Implementing access control by system-on-chip
US10114941B2 (en) Systems and methods for authenticating firmware stored on an integrated circuit
EP3503466A1 (en) Countermeasures to frequency alteration attacks on ring oscillator based physical unclonable functions
Guin et al. SMA: A system-level mutual authentication for protecting electronic hardware and firmware
JP7256862B2 (ja) 保護されたコンテナ間のセキュア通信方法およびそのシステム
US20160055331A1 (en) Detecting exploits against software applications
US20180196965A1 (en) System and method for authenticating and IP licensing of hardware modules
Fournaris et al. Secure embedded system hardware design–A flexible security and trust enhanced approach
US9003197B2 (en) Methods, apparatus and system for authenticating a programmable hardware device and for authenticating commands received in the programmable hardware device from a secure processor
CN113795839A (zh) 用于验证由可配置硬件模块提供的用于至少一个硬件应用的执行的执行环境的方法
Zhou et al. Vulnerability and remedy of stripped function logic locking
CN113228012A (zh) 用于鉴别fpga配置的方法和设备
Mohammad et al. Required policies and properties of the security engine of an SoC
Woo et al. A secure scan architecture protecting scan test and scan dump using skew-based lock and key
Unterstein et al. SCA secure and updatable crypto engines for FPGA soc bitstream decryption
EP3907633B1 (en) System and method for obfuscating opcode commands in a semiconductor device
Ahmadi et al. Shapeshifter: Protecting fpgas from side-channel attacks with isofunctional heterogeneous modules
Mohankumar et al. Lightweight Logic Obfuscation in Combinational Circuits for Improved Security—An Analysis
Salem Authentication of Configuration Updates for Remote Field Programmable Gate Arrays with the use of Physical Unclonable Function

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