# US 8,543,838 B1 · Cryptographic module with secure processor

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

- Number: US 8,543,838 B1
- Document ID: US8543838B1
- Status: Granted
- Kind: B1
- Application number: 12/944,025
- Filed: 2010-11-11
- Granted: 2013-09-24
- Earliest claimed: 2009-12-23
- Assignees: Marvell International Ltd.
- Applicants: Siu-Hung Fred Au; Gregory Burd; Wayne C. Datwyler; Leonard J. Galasso; Tze Lei Poo; Minda Zhang
- Inventors: Siu-Hung Fred Au; Gregory Burd; Wayne C. Datwyler; Leonard J. Galasso; Tze Lei Poo; Minda Zhang
- Web page: https://patentgrep.com/patent/US8543838B1

## CPC

- G06F 21/78: to assure secure storage of data (address-based protection against unauthorised use of memory G06F12/14; record carriers for use with machines and with at least a part designed to carry digital markings G06K19/00)
- G06F 21/602: {Providing cryptographic facilities or services}
- G06F 21/72: in cryptographic circuits
- 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

Cryptographic apparatus having corresponding methods and computer-readable media comprise: a mailbox memory module to store cryptographic commands received from a client over a client bus, wherein the client is external to the cryptographic apparatus; and a secure processor to obtain the cryptographic commands from the mailbox memory module over a first secure internal bus, execute the cryptographic commands, and store a status of execution of the cryptographic commands in the mailbox memory module over the first secure internal bus, wherein the client obtains the status of the cryptographic commands from the mailbox memory module over the client bus.

## Claims

### Claim 1

A cryptographic apparatus module comprising:
a memory module configured to (i) receive cryptographic commands received from a client device via a first bus, and (ii) store the cryptographic commands, wherein the client device is external to the cryptographic apparatus module;
a processor configured to
access the cryptographic commands from the memory module via a second bus,
execute the cryptographic commands, and
access the memory module via the second bus to store a status of execution of the cryptographic commands in the memory module,
wherein the memory module is configured to, via the first bus, transfer the status of execution of the cryptographic commands stored in the memory module to the client device, and
wherein the memory module is configured to isolate the processor from the client device to prevent the client device from accessing the processor; and
a cryptographic device configured to
receive a cryptographic key from a first memory, wherein the first memory is in the cryptographic module;
receive first text from a second memory, wherein the second memory is external to the cryptographic module, and wherein the first text comprises plaintext and ciphertext;
transfer second text to the second memory, wherein the second text comprises plaintext and ciphertext; and
in accordance with the cryptographic commands and the cryptographic key, (i) encrypt the plaintext of the first text to provide the ciphertext of the second text, and (ii) decrypt the ciphertext of the second text to provide the plaintext of the second text.

### Claim 2 (depends on 1)

The cryptographic module of claim 1, further comprising the first memory,
wherein the first memory is a one-time-programmable memory and is configured to store the cryptographic key.

### Claim 3 (depends on 2)

The cryptographic module of claim 2, further comprising a direct memory access module configured to:
receive the first text from and transfer the second text to the second memory via the first bus; and
receive the second text from and transfer the first text to the cryptographic device via a third bus.

### Claim 4 (depends on 3)

The cryptographic module of claim 3, further comprising a trust status register, wherein:
the cryptographic commands include primitive instructions; and
the cryptographic device executes the primitive instructions in accordance with contents of the trust status register.

### Claim 5 (depends on 4)

An integrated circuit comprising:
the cryptographic module of claim 4;
the client device;
the first memory; and
the second memory.

### Claim 6 (depends on 5)

A storage drive comprising:
the integrated circuit of claim 5; and
a magnetic storage medium configured to transfer the first text to and receive the second text from the second memory.

### Claim 7 (depends on 1)

The cryptographic module of claim 1, wherein:
the second bus is connected between the memory module and the processor; and
the memory module is connected between the client device and the second bus.

### Claim 8 (depends on 1)

The cryptographic module of claim 1, wherein:
the cryptographic module is implemented on a first system-on-chip; and
the client device is implemented on a second system-on-chip.

### Claim 9 (depends on 1)

A system comprising:
the cryptographic module of claim 1;
the client device, wherein the client device is a second processor and accesses the cryptographic module via the first bus; and
a memory controller in communication with the cryptographic module via a third bus.

### Claim 10 (depends on 9)

The system of claim 9, wherein the cryptographic module comprises a direct memory access module configured to:
via the third bus, receive first text from and transfer second text to the memory controller; and
via a fourth bus, receive the second text from and transfer the first text to the cryptographic device.

### Claim 11 (depends on 10)

The system of claim 10, wherein:
the third bus is an advanced extensible interface bus; and
the fourth bus is an advanced high-performance bus.

### Claim 12 (depends on 10)

The system of claim 10, wherein:
the cryptographic module comprises a fuse module connected to the fourth bus and includes a fuse bank; and
the fuse bank stores a key.

### Claim 13 (depends on 12)

The system of claim 12, wherein:
the processor comprises a second controller;
the second controller supports troubleshooting including employing a secure protocol based on a public key infrastructure; and
the controller removes the key from the fuse bank based on the secure protocol.

### Claim 14 (depends on 10)

The system of claim 10, wherein:
the cryptographic module comprise a interface device;
the interface device is connected (i) between the processor and the first bus, and (ii) between the processor and the third bus; and
the interface device comprise a first-in-first-out memory; and
the first-in-first-out memory stores data transferred (i) between the first bus and the interface device, (ii) between the fourth bus and the interface device, and (iii) between the processor and the interface device.

### Claim 15 (depends on 1)

The cryptographic module of claim 1, wherein:
the processor comprises the first memory; and
the second memory is isolated from the client device to prevent the client device from accessing the second memory.

### Claim 16 (depends on 1)

The cryptographic module of claim 1, wherein:
the cryptographic device comprises a third memory; and
the third memory is isolated from the client device to prevent the client device from accessing the third memory.

### Claim 17

A method comprising:
storing cryptographic commands transferred from a client device to a cryptographic module via a first bus in a memory module, wherein the client device is external to the cryptographic module;
accessing the cryptographic commands via a processor from a the memory module using the second bus;
executing the cryptographic commands;
accessing the memory module via the second bus to store a status of execution of the cryptographic commands in the memory module;
via the first bus, transferring the status of execution of the cryptographic commands from the memory module to the client device;
isolating the processor from the client device via the memory module to prevent the client device from accessing the processor;
receiving a cryptographic key from a first memory at a cryptographic device, wherein the first memory is in the cryptographic module;
receiving first text from a second memory at the cryptographic device, wherein the second memory is external to the cryptographic module, and wherein the first text comprises plaintext and ciphertext;
transferring second text to the second memory from the cryptographic device, wherein the second text comprises plaintext and ciphertext; and
in accordance with the cryptographic commands and the cryptographic key, (i) encrypting the plaintext of the first text via the cryptographic device to provide the ciphertext of the second text, and (ii) decrypting the ciphertext of the second text via the cryptographic device to provide the plaintext of the second text.

### Claim 18 (depends on 17)

The method of claim 17, further comprising storing the cryptographic key in the first memory,
wherein the first memory is a one-time-programmable memory.

### Claim 19 (depends on 18)

The method of claim 18, further comprising:
receiving the first text from and transferring the second text to the second memory via the first bus; and
receiving the second text from and transferring the first text to the cryptographic device via a third bus.

### Claim 20 (depends on 19)

The method of claim 19, further comprising executing primitive instructions in accordance with contents of a trust status register, wherein the cryptographic commands include the primitive instructions.
