# US 10,372,946 B1 · Systems and methods for configuring a secure computing environment on an integrated circuit

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,372,946 B1
- Document ID: US10372946B1
- Status: Granted
- Kind: B1
- Application number: 15/295,785
- Filed: 2016-10-17
- Granted: 2019-08-06
- Earliest claimed: 2016-10-17
- Assignees: Altera Corporation
- Applicants: Altera Corporation
- Inventors: Chin Liang See
- Web page: https://patentgrep.com/patent/US10372946B1

## CPC

- G06F 21/53: by executing in a restricted environment, e.g. sandbox or secure virtual machine
- G06F 21/76: in application-specific integrated circuits [ASIC] or field-programmable devices, e.g. field-programmable gate arrays [FPGA] or programmable logic devices [PLD]
- G06F 21/50: Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F 21/6281: {at program execution time, where the protection is within the operating system}
- G06F 21/85: interconnection devices, e.g. bus-connected or in-line devices
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A method of dividing a set of components of an integrated circuit is disclosed. Two or more different security labels are assigned to two or more non-overlapping subsets of the set of components. A handoff file is generated based on the non-overlapping subsets and sent to the integrated circuit. The set of components of the integrated circuit is divided according to the non-overlapping subsets based on the system handoff file.

## Claims

### Claim 1

A method of dividing a set of components of an integrated circuit comprising:
receiving, using a computer-implemented application, information regarding first and second non-overlapping subsets of the set of components, wherein the information indicates that each component in the first non-overlapping subset is assigned by a user of the computer-implemented application to a first security label, and wherein the information further indicates that each component in the second non-overlapping subset is assigned by the user to a second security label;
generating, using the computer-implemented application, a first system handoff file based on the information regarding the first and second non-overlapping subsets;
sending, using the computer-implemented application, the first system handoff file to a system monitor of the integrated circuit; and
dividing, using the system monitor, the set of components of the integrated circuit according to the first and second security labels based on the first system handoff file.

### Claim 2 (depends on 1)

The method as defined in claim 1, wherein the integrated circuit is a programmable logic device.

### Claim 3 (depends on 1)

The method as defined in claim 1, wherein the integrated circuit is an application specific integrated circuit, an application-specific standard product, a field-programmable gate array, or a complex programmable logic device.

### Claim 4 (depends on 1)

The method as defined in claim 1, wherein at least one of the first and second non-overlapping subsets is empty.

### Claim 5 (depends on 1)

The method as defined in claim 1, wherein the first and second security labels are normal and secure, respectively.

### Claim 6 (depends on 1)

The method as defined in claim 1, wherein the first system handoff file is a binary blob containing a list of each component of the set of components and a security label associated with the each component.

### Claim 7 (depends on 1)

The method as defined in claim 1, wherein the second security label designates a higher level of security than the first security label.

### Claim 8 (depends on 7)

The method as defined in claim 7, wherein each component of the second non-overlapping subset is inaccessible by the first non-overlapping subset.

### Claim 9 (depends on 7)

The method as defined in claim 7, wherein each component of the second non-overlapping subset is inaccessible by an external system.

### Claim 10 (depends on 1)

The method as defined in claim 1, wherein each component in the first non-overlapping subset is accessible by a first security label operating system.

### Claim 11 (depends on 10)

The method as defined in claim 10 further comprising:
generating, using the computer-implemented application, a second system handoff file, wherein the second system handoff file includes the each component in the first non-overlapping subset; and
sending, using the computer-implemented application, the second system handoff file to the first security label operating system.

### Claim 12 (depends on 10)

The method as defined in claim 10, wherein each component in the second non-overlapping subset is accessible by a second security label operating system.

### Claim 13 (depends on 12)

The method as defined in claim 12 further comprising:
generating, using the computer-implemented application, a third system handoff file, wherein the third system handoff file includes the each component in the second non-overlapping subset; and
sending, using the computer-implemented application, the third handoff file to the second security label operating system.

### Claim 14 (depends on 1)

The method as defined in claim 1 further comprising:
validating, using the computer-implemented application, the first and second non-overlapping subsets of the set of components.

### Claim 15 (depends on 1)

The method as defined in claim 1 further comprising:
generating, using the computer-implemented application, a security risk notification in case of improperly divided first and second non-overlapping subsets of the set of components.

### Claim 16 (depends on 1)

The method as defined in claim 1, wherein the first and second security labels are selected from a plurality of security labels.

### Claim 17 (depends on 16)

The method as defined in claim 16, wherein each subset of a plurality of non-overlapping subsets of the set of components is assigned a security label from the plurality of security labels.

### Claim 18

A method of assigning a plurality of security labels to a set of components of an integrated circuit comprising:
displaying, using a computer-implemented application, an interactive system design depicting the set of components;
assigning, using the computer-implemented application, a first security label of the plurality of security labels to a first subset of the set of components in response to user input;
assigning, using the computer-implemented application, a second security label of the plurality of security labels to a second subset of the set of components in response to user input, wherein the first and second subsets are non-overlapping; and
generating, using the computer-implemented application, a first system handoff file for a system monitor of the integrated circuit based on the first and second subsets of the set of components.

### Claim 19 (depends on 18)

The method as defined in claim 18, further comprising:
generating, using the computer-implemented application, a second system handoff file for a first security label operating system; and
generating, using the computer-implemented application, a third system handoff file for a second security label operating system.

### Claim 20

A non-transitory computer-readable storage medium storing one or more sequences of instructions, which instructions, when executed by at least one processor, causes the at least one processor to perform a method of dividing a set of components of an integrated circuit comprising:
receiving information regarding first and second non-overlapping subsets of the set of components, wherein the information indicates that each component in the first non-overlapping subset is assigned by a user of the processor to a first security label, and wherein the information further indicates that each component in the second non-overlapping subset is assigned by the user to a second security label;
generating a system handoff file based on the information regarding the first and second non-overlapping subsets;
sending the system handoff file to a system monitor of the integrated circuit; and
dividing, using the system monitor, the set of components of the integrated circuit according to the first and second security labels based on the system handoff file.
