Secure debug architecture

US11443071B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11443071-B2
Application numberUS-202016790222-A
CountryUS
Kind codeB2
Filing dateFeb 13, 2020
Priority dateFeb 13, 2020
Publication dateSep 13, 2022
Grant dateSep 13, 2022

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Systems and methods are disclosed for secure debug architecture. For example, an integrated circuit (e.g., a processor) for executing instructions includes a processor core configured to execute instructions; a debug interface comprising two or more conductors with input/output drivers configured to, when enabled, transmit and receive signals between the processor core and an external host device via the two or more conductors; and wherein the integrated circuit is configured to: receive a request from a host device for access to the integrated circuit via the debug interface; responsive to the request, generate a random number; transmit the random number from the integrated circuit to the host device via the debug interface; receive, from the host device via the debug interface, input data that has been encrypted using the random number as a key; and decrypt the input data using the random number as a key.

First claim

Opening claim text (preview).

What is claimed is: 1. An integrated circuit for executing instructions comprising: a processor core configured to execute instructions; a debug interface comprising two or more conductors with input/output drivers configured to, when enabled, transmit and receive signals between the processor core and an external host device via the two or more conductors, wherein the debug interface includes an authorization register that is updated to enable or disable the connection between the debug interface and the processor core; an authentication circuit comprising an authenticated register; and wherein the integrated circuit is configured to: receive a request from a host device for access to the integrated circuit via the debug interface; responsive to the request, generate a random number; transmit the random number from the integrated circuit to the host device via the debug interface; receive, from the host device via the debug interface, input data that has been encrypted using the random number as a key, wherein the input data includes at least one of a debug command and a firmware image; decrypt the input data using the random number as a key: and update content of the authenticated register based on comparison of the input data to a value stored in non-volatile memory of the integrated circuit, wherein the authentication circuit is configured to update content of the authorization register based on the content of the authenticated register. 2. The integrated circuit of claim 1 , in which the authentication circuit is configured to: compare an identifier received via the debug interface to an identifier of the integrated circuit that is stored in non-volatile memory of the integrated circuit; and responsive to the received identifier matching the identifier of the integrated circuit, updating a register to indicate the match and cause the random number to be generated and transmitted. 3. The integrated circuit of claim 2 , in which the authentication circuit is configured to: compare a portion of the input data to a value stored in non-volatile memory of the integrated circuit; and responsive to a match between the portion of the input data and the value, enable the debug interface to provide access to the processor core. 4. The integrated circuit of claim 3 , in which the value is a part number or a serial number of the integrated circuit. 5. The integrated circuit of claim 1 , in which the integrated circuit is configured to: encrypt output data using the random number as a key; and transmit the encrypted output data to the host device via the debug interface. 6. The integrated circuit of claim 1 , in which the integrated circuit is configured to: encrypt the random number to obtain an encrypted random number; and transmit the encrypted random number to the host device via the debug interface. 7. The integrated circuit of claim 6 , in which the random number is encrypted for transmission using a public key stored in the integrated circuit that corresponds to a private key stored by the host device that can be used to decrypt the encrypted random number. 8. The integrated circuit of claim 1 , in which the input data includes signed data that has been signed using a signing key. 9. The integrated circuit of claim 1 , in which the input data includes debug commands for the processor core. 10. The integrated circuit of claim 1 , in which the input data includes a firmware image. 11. A method comprising: receiving a request from a host device for access to an integrated circuit via a debug interface of the integrated circuit; responsive to the request, generating a random number using the integrated circuit; transmitting the random number from the integrated circuit to the host device via the debug interface; receiving, from the host device via the debug interface, input data that has been encrypted using the random number as a key, wherein the input data includes at least one of a debug command and a firmware image; decrypting the input data, within the integrated circuit, using the random number as a key; and update content of an authenticated register in an authentication circuit based on comparison of the input data to a value stored in non-volatile memory of the integrated circuit, wherein the authentication circuit is configured to update content of an authorization register in the debug interface based on the content of the authenticated register. 12. The method of claim 11 , comprising: encrypting output data, within the integrated circuit, using the random number as a key; and transmitting the encrypted output data to the host device via the debug interface. 13. The method of claim 11 , in which the request is received from the host device via a debug probe connecting the host device to the debug interface of the integrated circuit. 14. The method of claim 11 , in which transmitting the random number from the integrated circuit to the host device via the debug interface comprises: encrypting the random number using the integrated circuit to obtain an encrypted random number; and transmitting the encrypted random number from the integrated circuit to the host device via the debug interface. 15. The method of claim 14 , in which the random number is encrypted for transmission using a public key stored in the integrated circuit that corresponds to a private key stored by the host device that can be used to decrypt the encrypted random number. 16. The method of claim 11 , in which the input data includes signed data that has been signed using a signing key. 17. The method of claim 16 , comprising: comparing an identifier in the request to an identifier of the integrated circuit that is stored in non-volatile memory of the integrated circuit; and responsive to the identifier in the request matching the identifier of the integrated circuit, updating a register to indicate the match and cause the random number to be generated and transmitted. 18. A method comprising: transmitting a request from a host device for access to an integrated circuit via a debug interface of the integrated circuit; receiving, using the host device, a random number from the integrated circuit via the debug interface; encrypting, on the host device, input data using the random number as a key, wherein the input data includes at least one of a debug command and a firmware image; signing data using a signing key to obtain signed data, in which the input data includes the signed data; and transmitting from the host device to the integrated circuit via the debug interface the encrypted input data. 19. The method of claim 18 , comprising: receiving, on the host device, output data from the integrated circuit via the debug interface; and decrypting, on the host device, the output data using the random number as a key. 20. The method of claim 18 , in which the request is transmitted via a debug probe connecting the host device to the debug interface of the integrated circuit. 21. The method of claim 18 , in which receiving the random number from the integrated circuit via the debug interface comprises: receiving an encrypted random number from the integrated circuit via the debug interface; and decrypting the encrypted random number to obtain the random number. 22. The method of claim 21 , in which the encrypted random number is decrypted using a private key stored in the host device that corresponds to a public key stored by the integrated circuit

Assignees

Inventors

Classifications

  • Test or assess software · CPC title

  • G06F21/72Primary

    in cryptographic circuits · CPC title

  • Testing of logic operation, e.g. by logic analysers · CPC title

  • with particular pseudorandom sequence generator · CPC title

  • by securing the transmission between two devices or processes · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US11443071B2 cover?
Systems and methods are disclosed for secure debug architecture. For example, an integrated circuit (e.g., a processor) for executing instructions includes a processor core configured to execute instructions; a debug interface comprising two or more conductors with input/output drivers configured to, when enabled, transmit and receive signals between the processor core and an external host devi…
Who is the assignee on this patent?
Sifive Inc
What technology area does this patent fall under?
Primary CPC classification G06F21/72. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Sep 13 2022 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 11 related publications on this page (citations in our corpus or others sharing the same primary CPC).