A Comprehensive Framework for Protecting Intellectual Property in the Semiconductor Industry
AssigneesUniversity of Florida Research Foundation, Inc., University of Connecticut
InventorsMark M. Tehranipoor, Domenic J. Forte, Ujjwal Guin
Life of this patent
Estimating the term…
Abstract
Methods and integrated circuit architectures for assuring the protection of intellectual property between third party IP providers, system designers (e.g., SoC designers), fabrication entities, and assembly entities are provided. Novel design flows for the prevention of IP overuse, IP piracy, and IC overproduction are also provided. A comprehensive framework for forward trust between 3PIP vendors, SoC design houses, fabrication entities, and assembly entities can be achieved, and the unwanted modification of IP can be prevented.
Claims20
A method for preventing unauthorized overproduction of integrated circuits, the method comprising:
- locking a design by using a set of key gates and that can only be unlocked upon receiving a chip unlock key (CUK);
- sending the design to a foundry and producing integrated circuits;
- testing the integrated circuits;
- and
- activating the integrated circuits after the integrated circuits have been tested using the chip unlock key.
A method for preventing modification of IPs, the method comprising providing an IP;
- encrypting the IP with a random symmetric session key;
- encrypting the random symmetric session key with a public key and attaching the encrypted random symmetric session key to the IP;
- adding an IP digest resulting from a cryptographic hash function to an IP header of the IP.
A method for preventing cloning of IPs, the method comprising:
- computing an IP digest, which is a hash of an entire locked netlist;
- creating an IP header that contains a CUK for simulation of an SoC and the IP digest,
- encrypting the IP;
- and
- encrypting the symmetric keys with public keys of different electronic design automation (EDA) vendors such that the EDA vendors can later decrypt to get the IP.
A method for preventing unauthorized overproduction of integrated circuits, the method comprising:
- locking a design by using a set of key gates and that can only be unlocked upon receiving a valid chip unlock key (CUK);
- activating the integrated circuits after the integrating circuits have been tested.
A method for preventing unauthorized overproduction of integrated circuits comprising ensuring message integrity, end-point authentication, and confidentiality by using a combination of asymmetric key encryption and symmetric key encryption.
A method for preventing IC overproduction, the method comprising:
- generating a message (m) that is unique for each chip by using an on-chip true random number generator (TRNG);
- encrypting the message m with a private key KCpri that is stored in the chip to form a signature, sig(m)=KCpri(m), which can be used to validate message integrity and verify end-point authentication;
- concatenating the message (m) and its signature sig(m);
- generating a random session key (KS), which is unique for every communication, using the TRNG and storing KS in volatile or non-volatile memory;
- encrypting the concatenated message (m) and its signature (sig(m)) with KS using a one-time-pad (OTP) IK=KS({m, sig(m)})=KS⊕{m, sig(m)};
- encrypting the session key, KS, with a public key, KDpub;
- forming a transmission key by concatenating the encrypted KS and IK, wherein TK={KDpub(KS),IK};
- having the foundry receive TK from the chips and forward it to an SoC designer;
- separating the encrypted KS and IK upon receiving the TK from the foundry;
- retrieving the session key KS by decrypting KDpub(KS) with KDpri, wherein KS=KDpri(KDpub(KS));
- decrypting IK using a one-time-pad to retrieve the concatenated m, and its signature sig(m), wherein IK⊕KS=KS⊕{m, sig(m)}⊕KS={m, sig(m)};
- retrieving the message (m) from the signature by using the chip's public key, KCpub, wherein KCpub(sig(m))=KCpub(KCpri(m))=m;
- performing a comparison to match m and decrypted signature sig(m) to verify the integrity of m and end-point authenticity;
- after verifying the authenticity of the sender, encrypting CUK using an OTP with the session key, KS, and sending another transmission key (TK′) to the foundry, wherein TK′=KS(CUK)=KS⊕CUK;
- having the foundry apply the TK′ to the chip and having the chip reconstruct the correct CUK after decrypting TK′ using the OTP with its stored session key, KS, wherein KS(TK′)=KS⊕CUK⊕KS=CUK;
- and
- storing the CUK in a volatile or non-volatile memory to provide inputs to the key gates.
Dependencies are inferred from the claim text.