# US 10,482,036 B2 · Securely binding between memory chip and host

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

- Number: US 10,482,036 B2
- Document ID: US10482036B2
- Status: Granted
- Kind: B2
- Application number: 15/691,758
- Filed: 2017-08-31
- Published: 2018-03-22
- Granted: 2019-11-19
- Earliest claimed: 2016-09-18
- Assignees: Winbond Electronics Corp.
- Applicants: Winbond Electronics Corporation
- Inventors: Itay Admon; Nir Tasher
- Web page: https://patentgrep.com/patent/US10482036B2

## CPC

- G06F 12/1408: {by using cryptography (for digital transmission H04L9/00)}
- G06F 16/90335: {Query processing}
- G06F 21/606: {by securing the transmission between two devices or processes}
- G06F 2212/1052: Security improvement
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A memory system includes an interface, a non-volatile memory and a controller. The interface is configured to communicate over an unsecured communication link with an external host. The non-volatile memory is pre-programmed with a device identifier and a corresponding initialization key that are additionally stored in a database that resides externally to the memory system, and is securely accessible by the host. The controller is configured to send the device identifier to the host, to receive from the host, via the interface, binding information that was generated in the host, to generate, using at least the received binding information and the pre-programmed initialization key, a first binding key that matches a second binding key that is generated in the host based on an initialization key securely obtained by the host from the database, and to securely communicate with the host over the communication link using the first binding key.

## Claims

### Claim 1

A memory system, comprising:
an interface configured to communicate over an unsecured communication link with a host external to the memory system;
a non-volatile memory pre-programmed with at least a device identifier and an initialization key, wherein the device identifier and the initialization key are additionally stored in association with one another in a database external to the memory system, the database is securely accessible by the host; and
a controller configured to:
send the device identifier to the host over the unsecured communication link;
receive from the host, via the interface, binding information that was generated in the host;
generate, using at least the binding information received from the host and the initialization key, a first binding key that matches a second binding key, wherein the second binding key is generated in the host based on the initialization key securely obtained by the host from the database by querying the database using the device identifier received from the controller; and
securely communicate with the host over the communication link using the first binding key.

### Claim 2 (depends on 1)

The memory system according to claim 1, wherein the binding information comprises a binding key generated by the host and encrypted using the initialization key obtained from the database, and wherein the controller is configured to generate the first binding key by decrypting the encrypted binding key from the binding information using the initialization key.

### Claim 3 (depends on 1)

The memory system according to claim 1, wherein the binding information comprises a seed generated by the host, and wherein the controller is configured to generate the first binding key based on the seed and on the initialization key.

### Claim 4 (depends on 3)

The memory system according to claim 3, wherein the controller is configured to generate the first binding key by calculating a hash function over the seed and the initialization key.

### Claim 5 (depends on 3)

The memory system according to claim 3, wherein the controller is configured to receive from the host a signature that the host calculates over at least the seed and the initialization key obtained from the database, and to authenticate the binding information using the signature.

### Claim 6 (depends on 1)

The memory system according to claim 1, wherein the controller is configured to receive from the host a signature calculated over at least part of the binding information, to authenticate the received binding information using the signature, and to accept the first binding key for communicating with the host only if the received binding information was authenticated successfully.

### Claim 7 (depends on 1)

The memory system according to claim 1, wherein the controller is configured to receive a memory signature calculated over pre-programmed content of the non-volatile memory, to authenticate actual content of the non-volatile memory using the memory signature, and to accept the first binding key for communicating with the host only if the memory signature was authenticated successfully.

### Claim 8 (depends on 7)

The memory system according to claim 7, wherein the database stores the memory signature in association with the device identifier, and wherein the controller is configured to receive, from the host, the memory signature that was retrieved by the host from the database using the device identifier.

### Claim 9 (depends on 7)

The memory system according to claim 7, wherein the controller is configured to receive from the host a combined signature calculated over at least part of the binding information and over the memory signature, and to authenticate both the binding information and the pre-programmed content based on the combined signature.

### Claim 10

A method, comprising:
in a memory system coupled to an external host, sending a device identifier to the host over an unsecured communication link, wherein the memory system comprises a non-volatile memory pre-programmed with at least the device identifier and an initialization key, wherein the device identifier and the initialization key are additionally stored in association with one another in a database external to the memory system, the database is securely accessible by the host,
receiving from the host binding information that was generated in the host;
generating by the memory system, using at least the received binding information and the initialization key, a first binding key that matches a second binding key, wherein the second binding key is generated in the host based on the initialization key securely obtained by the host from the database by querying the database using the device identifier received from the controller; and
securely communicating with the host over the communication link using the first binding key.

### Claim 11 (depends on 10)

The method according to claim 10, wherein the binding information comprises a binding key generated by the host and encrypted using the initialization key obtained from the database, and wherein generating the first binding key comprises decrypting the encrypted binding key from the binding information using the initialization key.

### Claim 12 (depends on 10)

The method according to claim 10, wherein the binding information comprises a seed generated by the host, wherein generating the first binding key comprises calculating the first binding key based on the seed and on the initialization key.

### Claim 13 (depends on 12)

The method according to claim 12, wherein generating the first binding key comprises calculating a hash function over the seed and the initialization key.

### Claim 14 (depends on 12)

The method according to claim 12, and comprising receiving from the host a signature that the host calculates over at least the seed and the initialization key obtained from the database, and authenticating the binding information using the signature.

### Claim 15 (depends on 10)

The method according to claim 10, and comprising receiving from the host a signature calculated over at least part of the binding information, authenticating the received binding information using the signature, and accepting the first binding key for communicating with the host only if the received binding information was authenticated successfully.

### Claim 16 (depends on 10)

The method according to claim 10, and comprising receiving a memory signature calculated over pre-programmed content of the non-volatile memory, authenticating actual content of the non-volatile memory using the memory signature, and accepting the first binding key for communicating with the host only if the memory signature was authenticated successfully.

### Claim 17 (depends on 16)

The method according to claim 16, wherein the database stores the memory signature in association with the device identifier, and wherein receiving the memory signature comprises receiving, from the host, the memory signature that was retrieved by the host from the database using the device identifier.

### Claim 18 (depends on 16)

The method according to claim 16, and comprising receiving from the host a combined signature calculated over at least part of the binding information and over the memory signature, and authenticating both the binding information and the pre-programmed content based on the combined signature.
