CN108063664B - 基于配置的密码密钥生成系统 - Google Patents
基于配置的密码密钥生成系统 Download PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3271—Cryptographic 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/3278—Cryptographic 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]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0866—Generation 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0863—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving passwords or one-time passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3247—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details 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.一种系统,所述系统包括:
配置储存器,所述配置储存器被配置成存储配置数据;
可编程逻辑,所述可编程逻辑可操作地耦合到所述配置储存器并且通过所述配置储存器处的所述配置数据来配置,其中所述可编程逻辑通过所述配置数据被配置成包括密钥生成逻辑;
密钥生成逻辑,所述密钥生成逻辑被配置成从所述配置储存器读取所述配置数据的一部分并且通过将从所述配置储存器读取的所述配置数据的所述一部分与到所述密钥生成逻辑的一个或多个输入相组合来生成密码密钥;其中所述配置数据的所述一部分包括当被加载到所述配置储存器中时不改变的静态数据,内部配置端口,所述内部配置端口被配置成使得能够访问所述配置储存器,其中,所述密钥生成逻辑被配置成经由所述内部配置端口从所述配置储存器读取所述配置数据的至少一部分;以及
密码引擎,所述密码引擎被配置成利用至少所述密码密钥来执行密码操作;
其中,所述配置储存器还被配置成至少部分地基于重新配置数据来接收经更新的配置数据;并且
其中,响应于重新配置,所述密钥生成逻辑被配置成读取经更新的配置数据并且通过将经更新的配置数据的至少一部分与来自所述配置储存器的所述静态数据和到所述密钥生成逻辑的一个或多个输入相组合来生成所述密码密钥。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/346487 | 2016-11-08 | ||
US15/346,487 US10708073B2 (en) | 2016-11-08 | 2016-11-08 | Configuration based cryptographic key generation |
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 (8)
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 |
CN110869997B (zh) * | 2017-07-10 | 2023-08-11 | 本质Id有限责任公司 | 电子加密设备、电子登记和重构方法及计算机可读介质 |
CN109359486B (zh) * | 2018-10-24 | 2021-07-27 | 华中科技大学 | 一种加密与解密系统及其操作方法 |
KR20200082982A (ko) * | 2018-12-31 | 2020-07-08 | 삼성전자주식회사 | 물리적 복제방지 기능의 보안을 위한 집적 회로 및 이를 포함하는 장치 |
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)
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)
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 |
ATE429748T1 (de) | 1998-01-02 | 2009-05-15 | Cryptography Res Inc | Leckresistentes kryptographisches verfahren und vorrichtung |
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 |
WO2002025410A2 (en) | 2000-09-15 | 2002-03-28 | 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 |
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 |
CN1592877B (zh) | 2001-09-28 | 2010-05-26 | 高密度装置公司 | 用于对大容量存储设备上数据加密/解密的方法和装置 |
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 |
DE602005015178D1 (de) | 2004-02-05 | 2009-08-13 | 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 |
US8589695B2 (en) | 2006-06-07 | 2013-11-19 | Red Hat, Inc. | Methods and systems for entropy collection for server-side key generation |
KR100837270B1 (ko) | 2006-06-07 | 2008-06-11 | 삼성전자주식회사 | 스마트 카드 및 그것의 데이터 보안 방법 |
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 |
JP5291628B2 (ja) | 2006-11-28 | 2013-09-18 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | シードが与えられる任意数を生成する方法 |
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 |
US8966286B2 (en) * | 2009-01-05 | 2015-02-24 | Freescale Semiconductor, Inc. | Method, system and integrated circuit for enabling access to a memory element |
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 | 半導体集積回路及びその制御方法 |
US8386800B2 (en) | 2009-12-04 | 2013-02-26 | Cryptography Research, Inc. | Verifiable, leak-resistant encryption and decryption |
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 |
EP2772004A1 (en) | 2011-10-24 | 2014-09-03 | Koninklijke KPN N.V. | Secure distribution of content |
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 | 삼성전자주식회사 | 데이터의 안전한 저장을 위한 키 관리 방법 및 그 장치 |
EP3019522B1 (en) * | 2013-07-10 | 2017-12-13 | Sutro Biopharma, Inc. | Antibodies comprising multiple site-specific non-natural amino acid residues, methods of their preparation and methods of their use |
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 |
-
2016
- 2016-11-08 US US15/346,487 patent/US10708073B2/en active Active
-
2017
- 2017-07-07 CN CN201710550410.7A patent/CN108063664B/zh active Active
- 2017-10-30 EP EP17199285.2A patent/EP3319265B1/en active Active
Patent Citations (4)
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 |
---|---|
US10708073B2 (en) | 2020-07-07 |
EP3319265A1 (en) | 2018-05-09 |
US20180131528A1 (en) | 2018-05-10 |
EP3319265B1 (en) | 2020-12-09 |
CN108063664A (zh) | 2018-05-22 |
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 | |
US8223972B2 (en) | Method and device for speeding up key use in key management software with tree structure | |
US20150078550A1 (en) | Security processing unit with configurable access control | |
US10776522B1 (en) | Asymmetric protection of circuit designs | |
CN103154963A (zh) | 对地址的加扰和对需存储于存储设备中的写入数据的加密 | |
US20150207624A1 (en) | Key extraction during secure boot | |
CN108369626B (zh) | 用于生成密钥的系统和方法以及非暂时性计算机可读介质 | |
US8983073B1 (en) | Method and apparatus for restricting the use of integrated circuits | |
US9251099B2 (en) | Nonvolatile memory modules and authorization systems and operating methods thereof | |
Jacob et al. | Securing FPGA SoC configurations independent of their manufacturers | |
CN103347017A (zh) | 数据处理方法和片上系统 | |
CN112241523B (zh) | 一种嵌入式计算机开机身份认证方法 | |
KR20180059217A (ko) | 메모리 데이터 보안 처리 장치 및 방법 | |
Rajput et al. | Automating Hardware Trojan Detection Using Unsupervised Learning: A Case Study of FPGA | |
US20130198528A1 (en) | Modifying a Length of an Element to Form an Encryption Key | |
US11734415B2 (en) | Device and method for managing an encrypted software application | |
CN112912881B (zh) | 用于将密钥数据存储在电子构件中的方法 | |
Peterson | Leveraging asymmetric authentication to enhance security-critical applications using Zynq-7000 all programmable SoCs | |
Kepa et al. | SeReCon: a secure reconfiguration controller for self-reconfigurable systems | |
CN112470158A (zh) | 用于可编程逻辑器件的故障表征系统和方法 | |
Li et al. | Enhancing tpm security by integrating sram pufs technology | |
US12067091B2 (en) | Hardware-based obfuscation of digital data |
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 |