CN108063664B - 基于配置的密码密钥生成系统 - Google Patents

基于配置的密码密钥生成系统 Download PDF

Info

Publication number
CN108063664B
CN108063664B CN201710550410.7A CN201710550410A CN108063664B CN 108063664 B CN108063664 B CN 108063664B CN 201710550410 A CN201710550410 A CN 201710550410A CN 108063664 B CN108063664 B CN 108063664B
Authority
CN
China
Prior art keywords
configuration
configuration data
key generation
cryptographic
logic
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.)
Active
Application number
CN201710550410.7A
Other languages
English (en)
Other versions
CN108063664A (zh
Inventor
J.D.普罗富莫
T.科德拉
J.L.塔克尔
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.)
Honeywell International Inc
Original Assignee
Honeywell International Inc
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 Honeywell International Inc filed Critical Honeywell International Inc
Publication of CN108063664A publication Critical patent/CN108063664A/zh
Application granted granted Critical
Publication of CN108063664B publication Critical patent/CN108063664B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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]
    • 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
    • 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/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • 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/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • 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
    • 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/0863Generation of secret information including derivation or calculation of cryptographic keys or passwords involving passwords or one-time passwords
    • 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/3247Cryptographic 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 involving digital signatures
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Power Engineering (AREA)
  • Storage Device Security (AREA)

Abstract

本发明涉及用于可编程逻辑器件的密码密钥生成。在一些示例中,可编程器件可以将配置数据加载到配置储存器中以配置所述可编程器件的可编程逻辑。所述可编程器件可以包括密钥生成逻辑,所述密钥生成逻辑可以从所述配置储存器读取所述配置数据的至少一部分。所述密钥生成逻辑可以至少部分地基于从所述配置储存器读取的所述配置数据的所述至少一部分生成密码密钥。

Description

基于配置的密码密钥生成系统
技术领域
本公开涉及用于可编程逻辑器件的密码密钥生成。
背景技术
可编程逻辑器件是具有硬件逻辑元件(也被称为可编程逻辑)的电气电路,所述硬件逻辑元件可以通过将应用特定配置数据加载到可编程逻辑器件中的配置储存器中来配置。配置数据可以配置逻辑元件,使得它们执行通过配置数据所定义的功能性。针对可编程逻辑器件的配置数据可以携带关键信息,所述关键信息被加密以保护关键信息免于未经授权的访问。配置数据可以将可编程逻辑器件的可编程逻辑配置成对经加密的关键信息进行解密,使得可以进一步地处理所述关键信息。
发明内容
在一些方面,本公开描述了用于在可编程逻辑器件上生成密码密钥以将密文解密成明文的示例装置、系统和技术。可编程逻辑器件的可编程逻辑可以通过配置数据被配置成包括密钥生成逻辑,所述密钥生成逻辑取相同的配置数据作为输入并且至少部分地基于所输入的配置数据生成密码密钥。以这种方式,将可编程逻辑重新配置成读取由密钥生成逻辑生成的密码密钥的企图将导致密钥生成逻辑生成不可用于对密文进行解密的密码密钥,从而改进可编程逻辑器件的安全性。
在一个示例中,本公开涉及一种系统,所述系统包括:配置储存器,被配置成存储配置数据;可编程逻辑,可操作地耦合到所述配置储存器并且通过所述配置数据来配置;以及密钥生成逻辑,被配置成从所述配置储存器读取所述配置数据的至少一部分并且至少部分地基于从所述配置储存器读取的所述配置数据的所述至少一部分生成密码密钥。
在另一示例中,本公开涉及一种方法,所述方法包括:由可编程器件将配置数据加载到配置储存器中以配置所述可编程器件的可编程逻辑;由所述密钥生成逻辑从所述配置储存器读取所述配置数据的至少一部分;以及由所述密钥生成逻辑至少部分地基于从所述配置储存器读取的所述配置数据的所述至少一部分生成密码密钥。
在另一示例中,本公开涉及一种包括指令的计算机可读存储介质,所述指令在执行时使处理器:将配置数据加载到可编程器件的配置储存器中以配置所述可编程器件的可编程逻辑;由密钥生成逻辑从所述配置储存器读取所述配置数据的至少一部分;以及由所述密钥生成逻辑至少部分地基于从所述配置储存器读取的所述配置数据的所述至少一部分生成密码密钥。
在下面在附图和说明书中阐述一个或多个示例的细节。除在下面所描述的那些特征、目标和优点之外的其他特征、目标和优点从本说明书和附图中且从权利要求书中将是显而易见的。
附图说明
图1是图示了包括被配置成包括用于生成密码密钥的密钥生成逻辑的示例可编程逻辑器件的示例系统的功能框图。
图2是图示了包括攻击者可以重新配置企图读取由密钥生成逻辑生成的密码密钥的可编程逻辑的图1的示例系统的功能框图。
图3是图示了包括被配置成包括用于生成密码密钥的密钥生成逻辑的示例可编程逻辑器件的示例系统的功能框图。
图4是图示了包括被配置成包括用于生成密码密钥的密钥生成逻辑但不包括密码引擎的示例可编程逻辑器件的示例系统的功能框图。
图5是图示了包括被配置成不包括用于生成密码密钥的密钥生成逻辑或密码引擎的示例可编程逻辑器件的示例系统的功能框图。
图6是用于在可编程器件中生成密码密钥的示例技术的流程图。
具体实施方式
在本公开中描述了用于可编程逻辑器件生成密码密钥的示例装置、系统和技术。可编程逻辑器件可以包括可编程逻辑,所述可编程逻辑可以通过配置数据被配置成包括密钥生成逻辑,所述密钥生成逻辑生成可以用于对加密的信息进行解密的密码密钥。例如,密钥生成逻辑可以基于密钥生成逻辑的一个或多个输入生成密码密钥。然而,以这种方式生成密码密钥可以使得恶意攻击者能够访问密码密钥。例如,恶意攻击者可以通过将重新配置数据加载到可编程逻辑器件中来重新配置可编程逻辑以将可读取密钥生成逻辑的输出的调试逻辑插入到可编程逻辑中,从而使得能够访问由密钥生成逻辑生成的密码密钥。
依照本公开的各方面,可编程逻辑器件的可编程逻辑可以通过配置数据被配置成包括密钥生成逻辑,所述密钥生成逻辑读取针对可编程逻辑的配置数据并且至少部分地基于该配置数据生成密码密钥。因为密码密钥的生成依赖于配置可编程逻辑的配置数据,所以然后重新配置可编程逻辑可以导致密钥生成逻辑生成不可用于对经加密的信息进行解密的不同的无效密码密钥。
具体地,如果攻击者企图通过将重新配置数据加载到可编程逻辑器件中来重新配置可编程逻辑以将可读取密钥生成逻辑的输出的调试逻辑插入到可编程逻辑中,则重新配置数据的加载实际上修改了配置可编程逻辑的配置数据。因此,当密钥生成逻辑读取针对可编程逻辑的配置数据时,密钥生成逻辑正在读取已被重新配置数据修改的配置数据。因为密钥生成逻辑至少部分地基于配置数据生成密码密钥,所以修改针对可编程逻辑的配置数据导致密钥生成逻辑生成不同的无效密码密钥。
图1是图示了包括被配置成包括用于生成密码密钥的密钥生成逻辑的示例可编程逻辑器件的示例系统的功能框图。如图1中所示,系统100可以是包括可编程逻辑器件2的计算装置或系统或其组件。可编程逻辑器件2可以是电气电路、集成电路、微芯片、半导体器件、可重配置数字电路,或包含可以被编程来执行各种逻辑功能的硬件元件的电气组件的任何其他适合的互连。
可编程逻辑器件2可以包括可编程逻辑3。可编程逻辑3可以包括可以形成逻辑的可配置块和逻辑的这些块之间的可配置互连的一组逻辑元件和块,诸如开关、互连、存储器、处理器、专用模拟功能块、锁存器、触发器、数字电路等。可编程逻辑3可以通过将配置数据12加载到可操作地耦合到逻辑元件的配置储存器24中来配置并且以这样一种方式连接逻辑的这些块,以便执行从简单的逻辑功能到复杂的数字和/或模拟计算的功能性。在一些示例中,可编程逻辑3可以诸如可通过将经更新的配置数据加载到存储器单元中重新编程,使得可以配置可编程逻辑3多次以执行不同的功能性。
配置数据12可以是计算机指令的合集,该配置数据指定待由被编译成比特流的可编程逻辑3执行的功能性。例如,配置数据12可以描述可编程逻辑3的结构和行为,诸如描述可编程逻辑3的每一逻辑元件的连接性、功能、状态等,以便让可编程逻辑3的逻辑元件执行所指定的功能性。因此,配置数据12不仅可以描述组成密钥生成逻辑4和密码引擎6的逻辑元件的结构和行为,配置数据12而且可以描述可编程逻辑3内的空闲的逻辑元件(诸如不作为密钥生成逻辑4和密码引擎6的一部分包括的可编程逻辑3的逻辑元件)的结构和行为。因此,将可编程逻辑3的当前空闲的元件(即,不组成密钥生成逻辑4和密码引擎6的元件)重新配置成执行某个功能性可能要求修改配置数据12。以这种方式,配置数据12可以包括关于可编程逻辑3内的每个逻辑元件的配置信息,其中包括将由密码引擎6解密的密文的逻辑元件可能除外。
配置数据12可以是用诸如VHSIC硬件描述语言(VHDL)、Verilog、C、C++、网络表等这样的硬件描述语言编写的代码,所述代码被编译成二进制形式并且作为比特流加载到可编程逻辑器件2上。在一些示例中,配置数据12可以被加密并且加载到可编程逻辑器件2上,所述可编程逻辑器件2可以使用嵌入在可编程逻辑器件2内的密码密钥来对经加密的配置数据12进行解密。
系统100可以将配置数据12加载到配置储存器24上以根据由配置数据12所描述的结构和行为来配置可编程逻辑3。系统100可以通过网络将配置数据12从存储器(例如,系统存储器、包括可编程逻辑器件2的集成电路中的片上存储器、在包括可编程逻辑器件2的集成电路外部的存储器等)、存储装置等加载到配置储存器24上。配置储存器24可以是可操作地耦合到可编程逻辑3的逻辑元件的存储器,所述可编程逻辑3根据配置数据12来配置可编程逻辑3的逻辑元件的行为和连接性。例如,配置储存器24可以是可操作地耦合到可编程逻辑3的每个逻辑元件的存储器单元,并且可操作地耦合到相应的逻辑元件的每个存储器单元可以包括用于配置该相应的逻辑元件(包括配置逻辑元件的行为和功能以及配置该相应的逻辑元件如何连接到可编程逻辑3内的其他逻辑元件)的指令。以这种方式,系统100将可编程逻辑3的逻辑元件配置成执行由配置数据12所指定的功能性。
在一些示例中,配置储存器24可以包括非易失性存储器,诸如闪速存储器,使得配置储存器24可以跨越可编程逻辑器件2的电力周期保持加载到配置储存器24上的配置数据12。在其他示例中,配置储存器24可以包括易失性存储器,诸如静态随机存取存储器(SRAM),使得系统100可能需要在每个电力周期之后将配置数据12加载到配置储存器24中,因为配置储存器24不可以跨越电力周期保持配置数据12。
一旦配置数据12被加载到配置储存器24中,就可以经由可编程逻辑器件2的内部配置端口8访问配置储存器,使得可以经由内部配置端口8将重新配置数据加载到配置储存器24中以重新配置可编程逻辑3。内部配置端口8可以是硬件接口,诸如在可编程逻辑器件2中使得能够访问配置储存器24的端口、总线等,使得内部配置端口8可以由系统100内的元件使用来从配置储存器24读取配置数据(例如,配置数据12)以及将重新配置数据写入到配置储存器24以重新配置可编程逻辑3。
在图1的示例中,可以根据配置数据12来配置可编程逻辑3以包括密钥生成逻辑4和密码引擎6。密钥生成逻辑4和密码引擎6可以各自是被配置成执行本文中所描述的功能的一组逻辑元件和互连。密钥生成逻辑4可以被配置成生成密码引擎6可以利用来执行密码操作的密码密钥。例如,密码引擎6可以利用由密钥生成逻辑4生成的密码密钥来将明文加密成密文,将密文解密成明文,对一条数据进行数字签名,对数字签名的一条数据进行认证等。当密码密钥用于对密文进行解密时,密码密钥也可以被称为解密密钥。相反地,当密码密钥用于对明文进行加密时,密码密钥可以被称为加密密钥。
密钥生成逻辑4可以被配置从配置储存器24读取配置数据12并且至少部分地基于从配置储存器24读取的配置数据12生成密码密钥。换句话说,密钥生成逻辑4可以接收将可编程逻辑3配置成包括密钥生成逻辑4的相同的配置数据12作为输入,并且可以基于密钥生成逻辑4接收作为输入的配置数据12生成密码密钥。
在一些示例中,密钥生成逻辑4可以至少部分地基于配置数据12的全部生成密码密钥。换句话说,密钥生成逻辑4可以至少部分地基于可编程逻辑3内的每一逻辑元件如何通过配置数据12被配置生成密码密钥。因此,可编程逻辑3的任何重新配置可以使密钥生成逻辑4生成不同的密码密钥。
在其他示例中,密钥生成逻辑4可以至少部分地基于配置数据12的至少一部分生成密码密钥。换句话说,密钥生成逻辑4可以基于配置数据12的不到全部生成密码密钥。
系统100可以确定密钥生成逻辑4使用配置数据12的哪些部分来生成密码密钥,以及密钥生成逻辑4在生成密码密钥时不使用配置数据12的哪些部分。例如,如果配置数据12包括将由密码引擎6解密的密文,则密钥生成逻辑4可以至少部分地基于除包括密文的配置数据12的部分以外的配置数据12的部分生成密码密钥。因为密钥生成逻辑4生成可用于对密文进行解密的密码密钥,所以密钥生成逻辑4可以不使用密文来生成用于对它本身进行解密的密码密钥。
在一些示例中,系统100可以选择密钥生成逻辑4可以使用来至少部分地基于配置数据12的部分的内容是可预测的还是不可预测的确定来生成密码密钥的配置数据12的部分。例如,配置数据12内的一些设计元件可以在配置数据12的那些元件被加载到配置储存器24中时改变。因此,配置数据12的那些部分内的数据当经由内部配置端口8从配置储存器24读回时,可以不同于在被加载到配置储存器24中之前的配置数据12的那些部分内的数据。另外,不一致数据的包括可以导致生成不能对特定密文进行解密的无效密码密钥。
因此,在一个示例中,密钥生成逻辑4可以通过利用包括静态元件的配置数据12的部分(即,当被加载到配置储存器24中时不改变的数据)而不利用包括当配置数据12的那些元件被加载到配置储存器24中时可能改变的设计元件的配置数据的部分来至少部分地基于配置数据12的一部分(而非全部)生成密码密钥。
在一些示例中,针对时间敏感应用,密钥生成逻辑4可以利用配置数据12的仅一部分(即,子集)而不是全部,以便减少读取并处理配置数据12时的计算周期。密钥生成逻辑4也可以在多个周期中生成密码密钥。例如,在第一周期中,密钥生成逻辑4可以基于配置数据12的第一部分(即,第一子集)生成中间密钥。随后,在第二周期中,密钥生成逻辑4可以基于配置数据12的第二部分(即,第二子集)和所述中间密钥生成密码密钥。配置数据12的第一部分可以与配置数据12的第二部分不同。例如,配置数据12的第一部分和第二部分可以不交叠,或者配置数据12的第一部分和第二部分可以部分地但不完全地交叠。
在一些示例中,由密钥生成逻辑4使用的配置数据12的部分的指示可以被存储在存储器(例如,系统100中的存储器或可编程逻辑器件2中的存储器)中的查找表中。例如,这样的查找表可以包括在配置储存器24内存储用于生成密码密钥的配置数据12的特定区域的位置的存储器地址。可以使用密码密钥来对这样的查找表进行加密,使得不可在没有密码密钥的情况下容易地识别在配置储存器24内存储用于生成密码密钥的配置数据12的特定区域的位置。在一些示例中,不是存储由密钥生成逻辑4使用的配置数据12的部分的指示,而是查找表可以替代地存储未由密钥生成逻辑4使用来生成密码密钥的配置数据12的部分的指示。在一些示例中,系统100可以对查找表进行压缩以减少它在存储器中的大小。
在一些示例中,密钥生成逻辑4可以选择它使用来至少部分地基于所选择的配置数据12的部分在配置储存器24中的位置之间的数学关系来生成密码密钥的配置数据12的部分。例如,在配置储存器24内由密钥生成逻辑4使用来生成密码密钥的配置数据12的部分的存储器位置可以具有指定的数学关系。可以使这样的数学关系参数化,使得可编程逻辑器件2可以接受变量或参数以确定配置数据12的哪些部分由密钥生成逻辑4使用来生成密码密钥。
在一些示例中,密钥生成逻辑4可以至少部分地基于可编程逻辑3上的程序的操作的特定点导出密码密钥。例如,可以将配置数据12加载到配置储存器24中以将可编程逻辑3编程为执行特定程序。当正由可编程逻辑3执行的程序达到可以为特定时钟周期时间线、特定例行程序点、特定函数等的程序中的特定点时,密钥生成逻辑4可以基于在程序的那个特定点处从配置储存器24中读取的配置数据12的一个或多个部分生成密码密钥,以产生与程序的特定执行点相关联的密码密钥。
密钥生成逻辑4可以被配置成以各种方式至少部分地基于配置数据12的至少一部分生成密码密钥。特别地,密钥生成逻辑4可以通过将一个或多个输入10与配置数据12的至少一部分一起组合到密钥生成逻辑4中(诸如通过经由一个或多个输入10接收到的数据与组成配置数据12的至少一部分的比特流的逐位异或、用配置数据12的至少一部分把经由一个或多个输入10接收到的数据散列等)来生成密码密钥。
例如,密钥生成逻辑4可以被配置成执行配置数据12的至少一部分的密码散列。执行配置数据12的至少一部分的密码散列可以安全地将配置数据12的至少一部分减少成小摘要,使得即使对配置数据12的至少一部分的小编辑或改变也可以导致结果得到的摘要的大改变。密钥生成逻辑4可以将配置数据12的至少一部分的密码散列与经由一个或多个输入10接收到的数据组合以生成密码密钥。
在另一示例中,密钥生成逻辑4可以至少部分地基于经由一个或多个输入10接收到的数据生成散列密钥并且可以利用该散列密钥执行配置数据12的至少一部分的密码散列,诸如通过利用散列密钥执行配置数据12的至少一部分的密钥散列消息认证代码(HMAC)散列以生成密码密钥。通过执行此散列来生成密码密钥可以导致在配置数据12的全部中不存在足以单独生成密码密钥的数据。因此,可以防止攻击者能够通过读取配置数据12来反向设计所生成的密码密钥。
由密钥生成逻辑4生成的密码密钥是可由密码引擎6用于执行密码操作的密钥。例如,密码引擎6可以利用密码密钥来对密文进行解密。在此示例中,如果攻击者能够访问密码密钥,则攻击者可以能够对密文进行解密。
密文可以是或者包括硬件设计者(例如,配置数据12的作者)希望通过对关键信息进行加密来保护不受黑客和其他攻击者的影响的关键信息。关键信息可能是指令代码、可编程逻辑配置或任何其他适合的数据。可以经由任何适合的加密算法对密文进行加密,使得密文能够仅经由通过密钥生成逻辑4至少部分地基于配置数据12的至少一部分生成的密码密钥被解密。不是将未加密的关键信息包括在配置数据12中,这可以使得攻击者能够拦截和访问关键信息,而是硬件设计者可以对关键信息进行加密以生成密文。在一些示例中,密文可以作为被加载到可编程逻辑器件2中的配置数据12的一部分被包括。在此示例中,包含密文的配置数据12的部分未由密钥生成逻辑4在生成密码密钥16时使用。
在一些示例中,可编程逻辑器件2可以包括内部配置端口8。内部配置端口8可以是硬件,诸如可编程逻辑器件2中的电路、存储器或电气组件的任何适合的组合,所述内部配置端口8使得命令和数据(诸如配置数据12)能够被加载到可编程逻辑器件2中以重新配置可编程逻辑3并且还使得加载到可编程逻辑器件2中的配置数据12能够被读回。
具体地,内部配置端口8可以可操作地耦合到可编程逻辑3,使得内部配置端口8可以响应于接收到配置数据12,可以将配置数据12写入到可编程逻辑3中的存储器中。此外,内部配置端口8可以响应于接收到读取配置数据13的请求,可以从可编程逻辑3的配置逻辑读取配置数据12并且输出配置数据12。
密码引擎6可以被配置成利用由密钥生成逻辑4生成的密码密钥来将一条密文解密成明文。换句话说,密码引擎6可以接收密文和密码密钥作为输入,使用密码密钥来将密文解密成明文,并且输出作为经解密的关键信息的明文。
在一些示例中,攻击者可能企图通过将可编程逻辑3重新配置成包括能够读取密钥生成逻辑4的输出的调试端口来检索由密钥生成逻辑4生成的密码密钥,使得攻击者可以使用所拦截的密码密钥来对密文进行解密。图2是图示了包括攻击者可以重新配置企图读取密码密钥16的可编程逻辑的图1的示例系统的功能框图。
与图1中的系统100类似,可编程逻辑器件2可以将配置数据12加载到配置储存器中以将可编程逻辑3配置成包括密钥生成逻辑4和密码引擎6。密钥生成逻辑4可以被配置成经由配置端口8读取存储在配置储存器24中的配置数据12,并且可以至少部分地基于从配置储存器24读取的配置数据12的至少一部分生成密码密钥。密码引擎6可以被配置成使用密码密钥来执行密码操作,诸如对数据进行加密、对数据进行解密、对数据进行数字签名和/或对数据进行认证。
恶意行动者可以将可编程逻辑3重新配置成读取由密钥生成逻辑4生成的密码密钥。例如,一旦可编程逻辑器件2将配置数据12加载到配置储存器24中以将可编程逻辑3配置成包括密钥生成逻辑4和密码引擎6,攻击者就可以通过经由内部配置端口8将重新配置数据28加载到配置储存器24中来重新配置可编程逻辑3以将可编程逻辑3重新配置成包括被配置成访问密钥生成逻辑4的输出的调试端口20。例如,重新配置数据28可以通过将可编程逻辑3的未使用区域内的逻辑元件和互连重新配置成包括被配置成读取密钥生成逻辑4的输出的调试端口20来重新配置未用于密钥生成逻辑4和密码引擎6的可编程逻辑3的区域以插入调试端口20。
为了用重新配置数据28重新配置可编程逻辑3,攻击者可以经由内部配置端口8访问配置储存器24以将重新配置数据28加载到配置储存器24中。具体地,攻击者可以经由总线将重新配置数据28从存储器加载到内部配置端口8中。响应于接收到重新配置数据28,内部配置端口8可以将重新配置数据28加载到配置储存器24中。
可编程逻辑器件2可以将重新配置数据28写入到配置储存器24的部分(例如,特定存储器单元)中,配置储存器24可操作地耦合到重新配置数据28配置成充当调试端口20的可编程逻辑3的特定逻辑元件。以这种方式,在图2的示例中,存储在配置储存器24中的配置数据12被修改成包括重新配置数据28,从而在配置储存器24中产生修改的配置数据26,使得修改的配置数据26可以将可编程逻辑3配置成包括密钥生成逻辑4、密码引擎6和调试端口20。
恶意攻击者可以通过修改的配置数据26将调试端口20配置成读取密钥生成逻辑4的输出并且使得能够经由调试端口20从可编程逻辑器件2中读取密钥生成逻辑4的输出。因为密钥生成逻辑4被配置成生成并输出由密码引擎6使用来执行密码操作的密码密钥,所以调试端口20可以被配置成从密钥生成逻辑4的输出读取密码密钥,从而使得攻击者可能能够使用所拦截的密码密钥来使用密码引擎6对密文进行解密。
依照本公开的各方面,可编程逻辑器件2可以防止攻击者成功地访问由密钥生成逻辑4通过至少部分地基于从配置储存器24读取配置数据12的至少一部分生成密码密钥所生成的密码密钥。具体地,为了生成可以由密码引擎6使用来执行密码操作的密码密钥,密钥生成逻辑4可以从配置储存器24读取配置数据12的至少一部分,其中配置数据12是被加载到可编程逻辑器件2上以将可编程逻辑3配置成包括密钥生成逻辑4和密码引擎6的原始配置数据,并且至少部分地基于配置数据12的至少一部分生成密码密钥。
如果配置储存器24中的配置数据12经由重新配置数据28被修改以产生将可编程逻辑3配置成包括调试端口20的修改的配置数据26,则密钥生成逻辑4将从配置储存器24读取修改的配置数据26并且至少部分地基于修改的配置数据26生成密码密钥。然而,因为配置数据12与修改的配置数据26不同,所以密钥生成逻辑4至少部分地基于修改的配置数据26生成的密码密钥将与密钥生成逻辑4至少部分地基于配置数据12生成的密码密钥不同。因此,如果仅可使用至少部分地基于配置数据12生成的密码密钥来对一条密文进行解密,则不可使用至少部分地基于修改的配置数据26生成的密码密钥来对该密文进行解密。
如可以看到的,通过将密钥生成逻辑4配置成至少部分地基于存储在配置储存器24中的配置数据12生成密码密钥,可编程逻辑器件2可以挫败攻击者通过将可编程逻辑3重新配置成包括调试端口20来访问密码密钥的企图。通过将可编程逻辑3配置成包括密钥生成逻辑4,所述密钥生成逻辑4至少部分地基于配置可编程逻辑3的配置数据生成密码密钥,对可编程逻辑3的配置的任何改变可以使密钥生成逻辑4生成无效密码密钥。
在一些示例中,不是生成密码密钥,而是密钥生成逻辑4可以从配置储存器24读取配置数据12并且可以至少部分地基于从配置储存器24读取的配置数据12生成校验和。与生成密码密钥类似,如果配置数据12被用重新配置数据28更新以产生存储在配置储存器24中的修改的配置数据26,如果密钥生成逻辑4至少部分地基于从配置储存器24读取的修改的配置数据26生成校验和,则这样的校验和将不同于由密钥生成逻辑4至少部分地基于配置数据12生成的校验和,这可以向可编程逻辑器件2指示它已可能被攻击者篡改。
系统100还可以以其他方式使密钥生成逻辑4安全。图3是图示了包括被配置成包括用于生成密码密钥的密钥生成逻辑的示例可编程逻辑器件的示例系统的功能框图。与图1和图2中的系统100类似,可编程逻辑器件2可以将配置数据12加载到配置储存器24中以将可编程逻辑3配置成包括密钥生成逻辑4和密码引擎6。密钥生成逻辑4可以被配置成经由配置端口8读取存储在配置储存器24中的配置数据12,并且可以至少部分地基于从配置储存器24读取的配置数据12的至少一部分生成密码密钥。密码引擎6可以被配置成使用由密钥生成逻辑4生成的密码密钥来执行密码操作,诸如将明文加密成密文、将密文解密成明文、对一个或多个文件进行数字签名、对一个或多个数字签名的文件进行认证等。
如图3中所示,系统100还可以经由物理不可克隆功能(PUF)器件30的使用使密钥生成逻辑4安全。系统100可以将密钥生成逻辑4配置成至少部分地基于由PUF器件30生成的输出生成密码密钥。在一个示例中,密钥生成逻辑4可以通过配置数据12被配置成生成密码密钥以供密码引擎6使用来至少部分地基于由PUF器件30生成的输出以及从配置储存器24读回的配置数据12的至少一部分来执行密码操作。
PUF器件30可以是集成电路、电气电路、物理系统,或附接到可编程逻辑器件2、嵌入在可编程逻辑器件2中或者以其他方式可操作地耦合到可编程逻辑器件2的硬件器件的任何其他适合的集合,使得PUF器件30可以响应于接收到挑战值而执行物理不可克隆功能以输出响应。由PUF器件30执行的物理不可克隆功能可以至少部分地基于PUF器件30和/或可编程逻辑器件2的物理器件特性,使得组成PUF器件30和/或可编程逻辑器件2的组件的物理器件特性中的波动和变化可以使得PUF器件30能够对挑战值产生唯一的、可重复的且不可预测的响应。
因为PUF器件30的输出取决于PUF器件30的物理特性,所以不可通过分析将可编程逻辑3配置成包括密钥生成逻辑4的配置数据12来确定PUF器件30的输出。因此,即使可编程逻辑3的详细配置存储器模型被用于密钥生成逻辑4的离线模拟,至少部分地基于PUF器件30的输出生成密码密钥也可以挫败用于确定密钥生成逻辑4的输入和内部工作的未经授权的企图。
可替换地,或者除使用PUF器件30之外,密钥生成逻辑4也可以被配置成至少部分地基于密钥生成逻辑4从配置储存器24读取的修改的配置数据生成密码密钥。具体地,可以最初将配置数据12加载到配置储存器24中以将可编程逻辑3配置成包括密钥生成逻辑4和密码引擎6。随后,系统100可以经由内部配置端口8将重新配置数据32加载到配置储存器24中,从而用重新配置数据32更新配置数据12以产生存储在配置储存器24中的经更新的配置数据34。
密钥生成逻辑4可以通过配置数据12被配置成至少部分地基于重新配置数据32生成密码密钥。因为配置数据12被用重新配置数据12更新以产生经更新的配置数据34,所以密钥生成逻辑4也通过配置数据12被配置成至少部分地基于经更新的配置数据34生成密码密钥。进一步地,因为经更新的配置数据34包括配置数据12和重新配置数据32两者的至少一些部分,所以由密钥生成逻辑4生成的密码密钥可能依赖于配置数据12和重新配置数据32两者。如果重新配置数据32被加密,则生成依赖于配置数据12和重新配置数据32两者的密码密钥可以向密钥生成逻辑4提供额外的保护层,因为攻击者将需要找到对重新配置数据32进行解密以便试图并且拦截或者以其他方式访问由密钥生成逻辑4生成的密码密钥的方式。
尽管配置数据12已经关于图1-3被描述为将可编程逻辑3配置成包括密钥生成逻辑4和密码引擎6,然而应该理解的是,在一些示例中,配置数据可以将可编程逻辑3配置成:包括密钥生成逻辑4但不包括密码引擎6,包括密码引擎6但不包括密钥生成逻辑4,或者不包括密钥生成逻辑4或密码引擎6。
图4是图示了包括被配置成包括用于生成密码密钥的密钥生成逻辑但不包括密码引擎的示例可编程逻辑器件的示例系统的功能框图。如图4中所示,配置数据12可以将可编程逻辑3配置成包括密钥生成逻辑4。然而,配置数据12未将可编程逻辑3配置成包括密码引擎6。替代地,密码引擎6可以是在可编程逻辑3外部的可编程逻辑器件2中的硬件单元或电路,所述密码引擎6可以被配置成接收通过配置数据12生成的密码密钥并且至少部分地基于密码密钥执行密码操作。
应该理解的是,密钥生成逻辑4可以执行关于图1-3所讨论的上述技术中的全部以至少部分地基于配置数据12的至少一部分生成密码密钥以供密码引擎6使用。因为配置数据12未将可编程逻辑3配置成包括密码引擎6,所以可能的是,密钥生成逻辑4可以生成与至少部分地基于将可编程逻辑3配置成包括密码引擎6的配置数据12生成的密码密钥不同的密码密钥。进一步地,密码引擎6可以执行关于图1-3所讨论的上述技术中的全部以使用由密钥生成逻辑4生成的密码密钥来执行密码操作。
在一些示例中,配置数据12可以将可编程逻辑3配置成不包括密钥生成逻辑4或密码引擎6。图5是图示了包括被配置成不包括用于生成密码密钥的密钥生成逻辑或密码引擎的示例可编程逻辑器件的示例系统的功能框图。如图5中所示,配置数据12未将可编程逻辑3配置成包括密钥生成逻辑4或密码引擎6。替代地,密钥生成逻辑4和密码引擎6可以是包括在可编程逻辑器件2中的硬件单元或电路,所述硬件单元或电路如遍及本公开关于图1-3所描述的那样分别执行密钥生成逻辑4和密码引擎6的功能。
在一些示例中,可编程逻辑器件2可以不包括密钥生成逻辑4和密码引擎6中的一个或两个。替代地,密钥生成逻辑4和密码引擎6中的一个或两个可以是未由可编程逻辑器件2包括的硬件单元。然而,无论密钥生成逻辑4和密码引擎6被包括在可编程逻辑器件2中还是作为另外的硬件电路未包括在可编程逻辑器件2中,密钥生成逻辑4都可以被配置成至少部分地基于配置数据12的至少一部分生成密码密钥,并且密码引擎6可以被配置成利用由密钥生成逻辑4生成的密码密钥来执行密码操作。
图6是用于在可编程器件中生成密码密钥的示例技术的流程图。图6中所示的技术可以由图1-5的系统100来实现。在图6中所示的技术中,可编程逻辑器件2可以将配置数据12加载到配置储存器24中以配置可编程逻辑器件2的可编程逻辑3(102)。密钥生成逻辑4可以从配置储存器24读取配置数据12的至少一部分(104)。密钥生成逻辑4可以至少部分地基于从配置储存器24读取的配置数据12的至少一部分生成密码密钥(106)。在一些示例中,配置可编程逻辑3还可以包括将可编程逻辑3配置成包括密钥生成逻辑4。在一些示例中,密钥生成逻辑4还可以被配置成确定从其读取配置数据12的一个或多个部分的配置储存器24的一个或多个位置,并且至少部分地基于配置数据12的一个或多个部分生成密码密钥。在一些示例中,系统100中的存储器可以被配置成存储查找表,所述查找表包括从其读取配置数据12的一个或多个部分的配置储存器24的一个或多个位置的指示。
在一些示例中,密钥生成逻辑4从配置储存器24读取配置数据12的至少一部分还可以包括密钥生成逻辑4经由可编程器件的内部配置端口8从配置储存器24读取配置数据12的至少一部分。在一些示例中,密钥生成逻辑4生成密码密钥可以包括密钥生成逻辑4至少部分地基于利用密钥生成逻辑4的一个或多个输入执行配置数据12的至少一部分的密码散列来生成密码密钥。
在一些示例中,在图4中所示的技术中,配置储存器24还可以至少部分地基于部分重新配置数据32更新配置储存器24中的配置数据12。密钥生成逻辑4可以至少部分地基于经更新的配置数据34生成密码密钥。
在一些示例中,密钥生成逻辑4可以进一步至少部分地基于PUF器件30的输出生成密码密钥。在一些示例中,可编程逻辑器件2可以包括现场可编程门阵列(FPGA)器件。在一些示例中,密码引擎6可以被配置成利用至少由密钥生成逻辑4生成的密码密钥来执行密码操作。在一些示例中,密码引擎6可以被配置成利用至少密码密钥作为解密密钥来将密文解密成明文。在一些示例中,密码引擎6可以被配置成利用至少密码密钥作为加密密钥来将明文加密成密文。在一些示例中,密码引擎6可以利用密码密钥作为加密密钥来将明文加密成密文。在一些示例中,密码引擎6可以被配置成利用至少密码密钥作为解密密钥来将密文解密成明文。在一些示例中,密码引擎可以被配置成利用密码密钥来对文件进行数字签名。在一些示例中,密码引擎可以被配置成利用密码密钥来对数字签名的文件进行认证。
可以在各式各样的计算机装置中实现本公开的技术。任何组件、模块或单元已经被描述为被提供来强调功能方面并且未必要求通过不同的硬件单元实现。本文中所描述的技术也可以用硬件、软件、固件或其任何组合加以实现。被描述为模块、单元或组件的任何特征可以被一起实现在集成逻辑器件中或者单独地作为分立但可互操作的逻辑器件。在一些情况下,可以将各种特征实现为集成电路器件,诸如集成电路芯片或芯片组。
如果用软件加以实现,则技术可以至少部分地由包括指令的计算机可读介质来实现,所述指令当在处理器中执行时,执行上面所描述的方法中的一个或多个。计算机可读介质可以包括有形计算机可读存储介质并且可以形成更大产品的一部分。计算机可读存储介质可以包括诸如同步动态随机存取存储器(SDRAM)的随机存取存储器(RAM)、只读存储器(ROM)、非易失性随机存取存储器(NVRAM)、电可擦可编程只读存储器(EEPROM)、闪速存储器、磁或光学数据存储介质等。计算机可读存储介质也可以包括非易失性存储装置,诸如硬盘、磁带、紧致盘(CD)、数字通用盘(DVD)、蓝光盘、全息数据存储介质或其他非易失性存储装置。
可以被用作所描述的PUF的一部分的本文中所描述的定义物理存储器地址的存储器也可以用各式各样的存储器中的任一个加以实现,所述存储器包括但不限于RAM、SDRAM、NVRAM、EEPROM、闪速存储器、动态RAM(DRAM)、磁RAM(MRAM)或其他类型的存储器。
如本文中所使用的术语“处理器”可以指代上述结构或适合于实现本文中所描述的技术的任何其他结构中的任一个。此外,在一些方面,可以在为了执行本公开的技术而配置的专用软件模块或硬件模块内提供本文中所描述的功能性。即使用软件加以实现,技术也可以使用诸如用于执行软件的处理器这样的硬件,以及用于存储软件的存储器。在任何此类情况下,本文中所描述的计算机可以定义能够执行本文中所描述的特定功能的特定机器。并且,能将技术完全地实现在一个或多个电路或逻辑元件中,所述电路或逻辑元件也能被认为是处理器。
已经对本发明的各种示例进行了描述。这些和其他示例在以下权利要求的范围内。

Claims (1)

1.一种系统,所述系统包括:
配置储存器,所述配置储存器被配置成存储配置数据;
可编程逻辑,所述可编程逻辑可操作地耦合到所述配置储存器并且通过所述配置储存器处的所述配置数据来配置,其中所述可编程逻辑通过所述配置数据被配置成包括密钥生成逻辑;
密钥生成逻辑,所述密钥生成逻辑被配置成从所述配置储存器读取所述配置数据的一部分并且通过将从所述配置储存器读取的所述配置数据的所述一部分与到所述密钥生成逻辑的一个或多个输入相组合来生成密码密钥;其中所述配置数据的所述一部分包括当被加载到所述配置储存器中时不改变的静态数据,内部配置端口,所述内部配置端口被配置成使得能够访问所述配置储存器,其中,所述密钥生成逻辑被配置成经由所述内部配置端口从所述配置储存器读取所述配置数据的至少一部分;以及
密码引擎,所述密码引擎被配置成利用至少所述密码密钥来执行密码操作;
其中,所述配置储存器还被配置成至少部分地基于重新配置数据来接收经更新的配置数据;并且
其中,响应于重新配置,所述密钥生成逻辑被配置成读取经更新的配置数据并且通过将经更新的配置数据的至少一部分与来自所述配置储存器的所述静态数据和到所述密钥生成逻辑的一个或多个输入相组合来生成所述密码密钥。
CN201710550410.7A 2016-11-08 2017-07-07 基于配置的密码密钥生成系统 Active CN108063664B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/346,487 US10708073B2 (en) 2016-11-08 2016-11-08 Configuration based cryptographic key generation
US15/346487 2016-11-08

Publications (2)

Publication Number Publication Date
CN108063664A CN108063664A (zh) 2018-05-22
CN108063664B true CN108063664B (zh) 2023-03-14

Family

ID=60191294

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710550410.7A Active CN108063664B (zh) 2016-11-08 2017-07-07 基于配置的密码密钥生成系统

Country Status (3)

Country Link
US (1) US10708073B2 (zh)
EP (1) EP3319265B1 (zh)
CN (1) CN108063664B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10540186B1 (en) 2017-04-18 2020-01-21 Amazon Technologies, Inc. Interception of identifier from client configurable hardware logic
US11258597B2 (en) * 2017-07-10 2022-02-22 Intrinsic Id B.V. Key derivation from PUFs
CN109359486B (zh) * 2018-10-24 2021-07-27 华中科技大学 一种加密与解密系统及其操作方法
CN113285802B (zh) * 2019-09-25 2022-08-19 支付宝(杭州)信息技术有限公司 基于fpga的密钥协商方法及装置
US11271732B2 (en) * 2019-11-12 2022-03-08 Nxp B.V. Robust repeatable entropy extraction from noisy source
US11205003B2 (en) * 2020-03-27 2021-12-21 Intel Corporation Platform security mechanism
CN113343265B (zh) * 2021-06-25 2022-11-11 海光信息技术股份有限公司 一种密钥配置方法、装置和相关设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1170868A1 (en) * 2000-07-04 2002-01-09 Sun Microsystems, Inc. Field programmable gate arrays (FPGA) and method for processing FPGA configuration data
US7747025B1 (en) * 2005-11-22 2010-06-29 Xilinx, Inc. Method and apparatus for maintaining privacy of data decryption keys in configuration bitstream decryption
US8022724B1 (en) * 2009-11-25 2011-09-20 Xilinx, Inc. Method and integrated circuit for secure reconfiguration of programmable logic
CN105027136A (zh) * 2012-12-29 2015-11-04 英特尔公司 用于集成电路的安全密钥推导和密码逻辑

Family Cites Families (78)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5058164A (en) 1990-05-03 1991-10-15 National Semiconductor Corp. Encryption of streams of addressed information to be used for program code protection
US7133845B1 (en) 1995-02-13 2006-11-07 Intertrust Technologies Corp. System and methods for secure transaction management and electronic rights protection
US6075858A (en) 1995-10-27 2000-06-13 Scm Microsystems (U.S.) Inc. Encryption key system and method
US5987572A (en) 1997-09-29 1999-11-16 Intel Corporation Method and apparatus employing a dynamic encryption interface between a processor and a memory
EP1050133B2 (en) 1998-01-02 2009-05-27 Cryptography Research Inc. Leak-resistant cryptographic method and apparatus
JP4169822B2 (ja) 1998-03-18 2008-10-22 富士通株式会社 記憶媒体のデータ保護方法、その装置及びその記憶媒体
US7631195B1 (en) 2006-03-15 2009-12-08 Super Talent Electronics, Inc. System and method for providing security to a portable storage device
JP3864675B2 (ja) 2000-03-09 2007-01-10 株式会社日立製作所 共通鍵暗号装置
JP2001326631A (ja) 2000-05-17 2001-11-22 Yazaki Corp カオス暗号通信方法、及びカオス暗号通信システム
US7120696B1 (en) 2000-05-19 2006-10-10 Stealthkey, Inc. Cryptographic communications using pseudo-randomly generated cryptography keys
GB0013398D0 (en) 2000-06-01 2000-07-26 Tao Group Ltd A method of protecting a cryptosystem from a multiple transmission attack
GB0013349D0 (en) 2000-06-01 2000-07-26 Tao Group Ltd Pseudo-random number generator
EP1320796A2 (en) 2000-09-15 2003-06-25 Koninklijke Philips Electronics N.V. Protect by data chunk address as encryption key
US7117372B1 (en) 2000-11-28 2006-10-03 Xilinx, Inc. Programmable logic device with decryption and structure for preventing design relocation
JP2002319230A (ja) 2001-01-25 2002-10-31 Sony Computer Entertainment Inc 記録媒体、情報処理装置、コンテンツ配信サーバ、方法、プログラム、その記録媒体
US20020112161A1 (en) 2001-02-13 2002-08-15 Thomas Fred C. Method and system for software authentication in a computer system
US7203841B2 (en) 2001-03-08 2007-04-10 Igt Encryption in a secure computerized gaming system
US20020131592A1 (en) 2001-03-16 2002-09-19 Harris Hinnant Entropy sources for encryption key generation
WO2002077878A1 (en) 2001-03-26 2002-10-03 Galois Connections Inc Crypto-pointers for secure data storage
RU2298824C2 (ru) 2001-09-28 2007-05-10 Хай Денсити Дивайсез Ас Способ и устройство для шифрования/дешифрования данных в запоминающем устройстве большой емкости
US7853803B2 (en) 2001-09-28 2010-12-14 Verizon Corporate Services Group Inc. System and method for thwarting buffer overflow attacks using encrypted process pointers
US7254233B2 (en) 2002-07-24 2007-08-07 Qualcomm Incorporated Fast encryption and authentication for data processing systems
US7305084B2 (en) 2002-07-24 2007-12-04 Qualcomm Incorporated Fast encryption and authentication for data processing systems
US7197647B1 (en) * 2002-09-30 2007-03-27 Carnegie Mellon University Method of securing programmable logic configuration data
US20040103269A1 (en) 2002-11-27 2004-05-27 Intel Corporation Processor context register mapping
US6907595B2 (en) 2002-12-13 2005-06-14 Xilinx, Inc. Partial reconfiguration of a programmable logic device using an on-chip processor
US20040117778A1 (en) 2002-12-16 2004-06-17 Sehr David C. Optimization of software code using N-bit pointer conversion
FR2850228B1 (fr) 2003-01-17 2006-01-27 Soft Technology Procede pour garantir l'integrite d'au moins un logiciel transmis a un module de chiffrement/dechiffrement et supports d'enregistrement pour mettre en oeuvre le procede
DE10345385B4 (de) 2003-09-30 2005-10-06 Infineon Technologies Ag Entschlüsselung bzw. Verschlüsselung bei Schreibzugriffen auf einen Speicher
DE10345454A1 (de) 2003-09-30 2005-04-28 Infineon Technologies Ag Wortindividuelle Schlüsselerzeugung
ATE435538T1 (de) 2004-02-05 2009-07-15 Research In Motion Ltd Speicherung auf einem chip,erzeugung und handhabung eines geheimschlüssels
US7697681B2 (en) 2004-02-06 2010-04-13 Nortel Networks Limited Parallelizable integrity-aware encryption technique
US7685434B2 (en) 2004-03-02 2010-03-23 Advanced Micro Devices, Inc. Two parallel engines for high speed transmit IPsec processing
US7979716B2 (en) 2004-11-18 2011-07-12 Biogy, Inc. Method of generating access keys
US20060177065A1 (en) 2005-02-09 2006-08-10 Wal-Mart Stores, Inc. System and methods for encrypting data utilizing one-time pad key
US8187294B2 (en) 2005-09-26 2012-05-29 Suros Surgical Systems, Inc. Rotating surgical cutter
US7328384B1 (en) * 2005-09-29 2008-02-05 Xilinx, Inc. Method and apparatus using device defects as an identifier
US8001374B2 (en) 2005-12-16 2011-08-16 Lsi Corporation Memory encryption for digital video
WO2007121035A2 (en) 2006-03-23 2007-10-25 Exegy Incorporated Method and system for high throughput blockwise independent encryption/decryption
KR100837270B1 (ko) 2006-06-07 2008-06-11 삼성전자주식회사 스마트 카드 및 그것의 데이터 보안 방법
US8589695B2 (en) 2006-06-07 2013-11-19 Red Hat, Inc. Methods and systems for entropy collection for server-side key generation
US7519830B2 (en) 2006-08-03 2009-04-14 Motorola, Inc. Secure storage of data
US8843768B2 (en) 2006-09-05 2014-09-23 Netapp, Inc. Security-enabled storage controller
US7912223B2 (en) 2006-09-29 2011-03-22 Hitachi, Ltd. Method and apparatus for data protection
US7613915B2 (en) 2006-11-09 2009-11-03 BroadOn Communications Corp Method for programming on-chip non-volatile memory in a secure processor, and a device so programmed
WO2008065596A1 (en) 2006-11-28 2008-06-05 Koninklijke Philips Electronics N.V. A method of generating arbitrary numbers given a seed
US7870398B2 (en) 2007-01-25 2011-01-11 International Business Machines Corporation Integrity assurance of query result from database service provider
JP2008269173A (ja) 2007-04-18 2008-11-06 Hitachi Ltd 計算機システム、ストレージシステムおよびデータ管理方法
JP4832479B2 (ja) * 2008-08-01 2011-12-07 株式会社フジクラ コネクタ及び該コネクタを備えた電子部品
FR2935078B1 (fr) * 2008-08-12 2012-11-16 Groupe Des Ecoles De Telecommunications Get Ecole Nationale Superieure Des Telecommunications Enst Procede de protection du decryptage des fichiers de configuration de circuits logiques programmables et circuit mettant en oeuvre le procede
US8494169B2 (en) 2008-08-29 2013-07-23 Red Hat, Inc. Validating encrypted archive keys
US8214654B1 (en) 2008-10-07 2012-07-03 Nvidia Corporation Method and system for loading a secure firmware update on an adapter device of a computer system
US9336160B2 (en) 2008-10-30 2016-05-10 Qualcomm Incorporated Low latency block cipher
US8151333B2 (en) 2008-11-24 2012-04-03 Microsoft Corporation Distributed single sign on technologies including privacy protection and proactive updating
CN102272768B (zh) * 2009-01-05 2015-07-08 飞思卡尔半导体公司 用于允许对存储器元件的存取的方法、系统和集成电路
US7673201B1 (en) 2009-03-12 2010-03-02 Xilinx, Inc. Recovering a prior state of a circuit design within a programmable integrated circuit
JP2010252305A (ja) * 2009-03-25 2010-11-04 Renesas Electronics Corp 半導体集積回路及びその制御方法
JP5552541B2 (ja) 2009-12-04 2014-07-16 クリプトグラフィ リサーチ, インコーポレイテッド 検証可能な耐漏洩性暗号化および復号化
US8375225B1 (en) 2009-12-11 2013-02-12 Western Digital Technologies, Inc. Memory protection
JP2011181000A (ja) 2010-03-03 2011-09-15 Toshiba Corp コントローラ、半導体記憶装置および半導体記憶装置の制御方法
JP5550439B2 (ja) 2010-05-06 2014-07-16 キヤノン株式会社 アプリケーションのインストール方法
WO2011159918A2 (en) 2010-06-16 2011-12-22 Vasco Data Security, Inc. Mass storage device memory encryption methods, systems, and apparatus
US8972746B2 (en) 2010-12-17 2015-03-03 Intel Corporation Technique for supporting multiple secure enclaves
US8839001B2 (en) 2011-07-06 2014-09-16 The Boeing Company Infinite key memory transaction unit
US8726037B2 (en) 2011-09-27 2014-05-13 Atmel Corporation Encrypted memory access
CN104040939A (zh) 2011-10-24 2014-09-10 皇家Kpn公司 内容的安全分发
US9128876B2 (en) 2011-12-06 2015-09-08 Honeywell International Inc. Memory location specific data encryption key
US9065642B2 (en) 2012-03-07 2015-06-23 Certicom Corp. Intercepting key sessions
US10102390B2 (en) 2012-06-28 2018-10-16 Honeywell International Inc. Memory authentication with redundant encryption
KR102013841B1 (ko) 2012-08-06 2019-08-23 삼성전자주식회사 데이터의 안전한 저장을 위한 키 관리 방법 및 그 장치
ES2865473T3 (es) * 2013-07-10 2021-10-15 Sutro Biopharma Inc Anticuerpos que comprenden múltiples residuos de aminoácidos no naturales sitio-específicos, métodos para su preparación y métodos de uso
US9264048B2 (en) * 2013-12-18 2016-02-16 Intel Corporation Secret operations using reconfigurable logics
JP2015130580A (ja) 2014-01-07 2015-07-16 富士通株式会社 データスクランブル装置、セキュリティ装置、セキュリティシステム及びデータスクランブル方法
CN104035890B (zh) * 2014-06-11 2017-02-15 丽水博远科技有限公司 基于静态随机存储器的可编程门阵列芯片加密方法及系统
CN104346584B (zh) 2014-10-31 2017-07-14 成都朗锐芯科技发展有限公司 一种fpga系统加密及参数配置方法
US10013363B2 (en) 2015-02-09 2018-07-03 Honeywell International Inc. Encryption using entropy-based key derivation
DE102015206643A1 (de) 2015-04-14 2016-10-20 Siemens Aktiengesellschaft Vorrichtung und Verfahren zum Erzeugen eines Schlüssels in einem programmierbaren Hardwaremodul
US9720700B1 (en) * 2016-10-05 2017-08-01 Apricorn Secure storage devices, with physical input device, for secure configuration in a configuration-ready mode

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1170868A1 (en) * 2000-07-04 2002-01-09 Sun Microsystems, Inc. Field programmable gate arrays (FPGA) and method for processing FPGA configuration data
US7747025B1 (en) * 2005-11-22 2010-06-29 Xilinx, Inc. Method and apparatus for maintaining privacy of data decryption keys in configuration bitstream decryption
US8022724B1 (en) * 2009-11-25 2011-09-20 Xilinx, Inc. Method and integrated circuit for secure reconfiguration of programmable logic
CN105027136A (zh) * 2012-12-29 2015-11-04 英特尔公司 用于集成电路的安全密钥推导和密码逻辑

Also Published As

Publication number Publication date
US20180131528A1 (en) 2018-05-10
EP3319265A1 (en) 2018-05-09
EP3319265B1 (en) 2020-12-09
CN108063664A (zh) 2018-05-22
US10708073B2 (en) 2020-07-07

Similar Documents

Publication Publication Date Title
CN108063664B (zh) 基于配置的密码密钥生成系统
US9887844B2 (en) Method for safeguarding a system-on-a-chip
US9483664B2 (en) Address dependent data encryption
US9230112B1 (en) Secured booting of a field programmable system-on-chip including authentication of a first stage boot loader to mitigate against differential power analysis
US8543838B1 (en) Cryptographic module with secure processor
US9755831B2 (en) Key extraction during secure boot
WO2015038447A1 (en) Security processing unit with configurable access control
CN103154963A (zh) 对地址的加扰和对需存储于存储设备中的写入数据的加密
US10776522B1 (en) Asymmetric protection of circuit designs
CN108369626B (zh) 用于生成密钥的系统和方法以及非暂时性计算机可读介质
US9251099B2 (en) Nonvolatile memory modules and authorization systems and operating methods thereof
Jacob et al. Securing FPGA SoC configurations independent of their manufacturers
US8983073B1 (en) Method and apparatus for restricting the use of integrated circuits
CN103347017A (zh) 数据处理方法和片上系统
KR20180059217A (ko) 메모리 데이터 보안 처리 장치 및 방법
US20130198528A1 (en) Modifying a Length of an Element to Form an Encryption Key
US11734415B2 (en) Device and method for managing an encrypted software application
Peterson Leveraging asymmetric authentication to enhance security-critical applications using Zynq-7000 all programmable SoCs
Hori et al. Bitstream protection in dynamic partial reconfiguration systems using authenticated encryption
Malipatlolla et al. A novel method for secure intellectual property deployment in embedded systems
Kepa et al. SeReCon: a secure reconfiguration controller for self-reconfigurable systems
CN112912881A (zh) 用于将密钥数据存储在电子构件中的方法
Li et al. Enhancing tpm security by integrating sram pufs technology
US20220197982A1 (en) Hardware-Based Obfuscation of Digital Data
US20220100606A1 (en) Error detection and correction in memory modules using programmable ecc engines

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