# US 2021/0344494 A1 · Systems, Methods and Apparatuses for Device Attestation Based on Speed of Computation

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

- Number: US 2021/0344494 A1
- Document ID: US20210344494A1
- Status: Published application
- Kind: A1
- Application number: 17/322,505
- Filed: 2021-05-17
- Published: 2021-11-04
- Earliest claimed: 2013-03-15
- Assignees: OLogN Technologies AG
- Applicants: OLogN Technologies AG
- Inventors: Sergey IGNATCHENKO
- Web page: https://patentgrep.com/patent/US20210344494A1

## CPC

- H04L 9/3234: {involving additional secure or trusted devices, e.g. TPM, smartcard, USB or software token (network architectures or network communication protocols for supporting authentication of entities using an additional device in a packet data network H04L63/0853)}
- H04L 63/126: {the source of the received data}
- H04L 63/108: {when the policy decisions are valid for a limited amount of time}
- H04L 63/1466: {Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks}
- H04W 12/61: Time-dependent
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- H04W: WIRELESS COMMUNICATION NETWORKS (broadcast communication H04H; communication systems using wireless links for non-selective communication, e.g. wireless extensions H04M1/72)

## Abstract

The systems, methods and apparatuses described herein provide a computing device that is configured to attest itself to a communication partner. In one aspect, the computing device may comprise a communication port configured to receive an attestation request from the communication partner, and an application-specific integrated circuit (ASIC). The ASIC may be configured to receive the attestation request, which may include a nonce. The ASIC may be further configured to generate a verification value, capture data representing a state of computation of the ASIC when the verification value is being generated, and send the verification value and captured data to the communication port to be transmitted back to the communication partner. The verification value may be a computation result of a predefined function taking the nonce as an initial value. In another aspect, the communication partner may be configured to attest the computing device using speed of computation attestation.

## Claims

### Claim at position 1

1-22. (canceled)

### Claim 23

A computing device for attesting a communication partner comprising:
a communication port; and
a processor configured to:
obtain a nonce;
generate an attestation request including the nonce;
send the attestation request to a communication partner via the communication port;
receive a verification value from the communication partner, wherein the verification value is a computation result of a predefined function performed on the communication partner taking the nonce as an input value;
apply an inverse function to the verification value received from the communication partner, wherein the inverse function is an inverse operation of the predefined function;
determine whether an output of the inverse function is equal to the nonce sent in the attestation request; and
determine that the communication partner is a trusted device if the output of the inverse function is equal to the nonce sent in the attestation request.

### Claim 24 (depends on 23)

The computing device of claim 23, wherein the processor is further configured to:
determine whether the verification value is received within a predetermined time threshold; and
determine that the communication partner is a trusted device if the verification value is received within the predetermined time threshold.

### Claim 25 (depends on 24)

The computing device of claim 24, wherein to determine whether the verification value is received within the predetermined time threshold, the processor is further configured to:
determine a first time upon transmitting the nonce to the communication partner; and
determine a second time upon receiving the verification value from the communication partner, wherein the processor determines whether the verification value is received within the time threshold based on a difference between the first time and the second time.

### Claim 26 (depends on 25)

The computing device of claim 25, wherein the time threshold is based on one or more expected times, and wherein at least one expected time is selected from the group comprising: an expected time for transmitting the nonce from the computer to the communication partner, an expected time for the communication partner to calculate the verification value, and an expected time for the communication partner to transmit the verification value to the computer.

### Claim 27 (depends on 23)

The computing device of claim 23, wherein the predefined function includes a sequence of operations performed in series, and wherein an output of a previous step in the sequence is an input value of a next step in the sequence.

### Claim 28 (depends on 27)

The computing device of claim 27, wherein the sequence of operations includes at least one of a cryptographic hash function and an encryption function.

### Claim 29 (depends on 27)

The computing device of claim 27, wherein the attestation request includes a number of iterations for the predefined function to be repetitively performed at the communication partner to generate the verification value.

### Claim 30 (depends on 23)

The computing device of claim 23, wherein the predefined function is a symmetric encryption function, and wherein the verification value is obtained from computation of the predefined function using an encryption key and the nonce as the input value.

### Claim 31 (depends on 30)

The computing device of claim 30, wherein the processor is further configured to transmit the encryption key to the communication partner via the communication port.

### Claim 32 (depends on 23)

The computing device of claim 23, wherein the processor is further configured to:
receive at least a first and a second intermediate results of computation of the predefined function performed on the communication partner;
determine whether the first intermediate result is equal to a first expected value by performing the predefined function taking the nonce as a first input value;
determine whether the second intermediate result is equal to a second expected value by performing the predefined function taking the first intermediate result as a second input value; and
determine that the communication partner is a trusted device if the first intermediate result is equal to the first expected value and the second intermediate result is equal to the second expected value.

### Claim 33 (depends on 32)

The computing device of claim 32, wherein the processor is configured to determine in parallel whether each of the first intermediate result and the second intermediate result is equal to each of the first expected value and the second expected value respectively.

### Claim 34

A computer-implemented method of attesting a communication partner, the method comprising:
generating, by a computer, an attestation request including a nonce;
transmitting, by the computer, the attestation request to a communication partner via a communication port of the computer;
receiving, by the computer, a verification value from the communication partner, wherein the verification value is a computation result of a predefined function performed on the communication partner taking the nonce as an input value;
applying, by the computer, an inverse function to the verification value received from the communication partner, wherein the inverse function is an inverse operation of the predefined function;
determining, by the computer, whether an output of the inverse function is equal to the nonce sent in the attestation request; and
determining, by the computer, that the communication partner is a trusted device if the output of the inverse function is equal to the nonce sent in the attestation request.

### Claim 35 (depends on 34)

The computer-implemented method of claim 34, the method further comprising:
determining, by the computer, whether the verification value is received within a predetermined time threshold; and
determining, by the computer, that the communication partner is a trusted device if the verification value is received within the predetermined time threshold.

### Claim 36 (depends on 35)

The computer-implemented method of claim 35, wherein determining whether the verification value is received within the predetermined time threshold comprises:
determining, by the computer, a first time upon transmitting the nonce to the communication partner; and
determining, by the computer, a second time upon receiving the verification value from the communication partner, wherein the processor determines whether the verification value is received within the time threshold based on a difference between the first time and the second time.

### Claim 37 (depends on 36)

The computer-implemented method of claim 36, wherein the time threshold is based on one or more expected times, and wherein at least one expected time is selected from the group comprising: an expected time for transmitting the nonce from the computer to the communication partner, an expected time for the communication partner to calculate the verification value, and an expected time for the communication partner to transmit the verification value to the computer.

### Claim 38 (depends on 34)

The computer-implemented method of claim 34, wherein the predefined function includes a sequence of operations performed in series, and wherein an output of a previous step in the sequence is an input value of a next step in the sequence.

### Claim 39 (depends on 38)

The computer-implemented method of claim 38, wherein the sequence of operations includes at least one of a cryptographic hash function and an encryption function.

### Claim 40 (depends on 38)

The computer-implemented method of claim 38, wherein the attestation request includes a number of iterations for the predefined function to be repetitively performed at the communication partner to generate the verification value.

### Claim 41 (depends on 34)

The computer-implemented method of claim 34, wherein the predefined function is a symmetric encryption function, and wherein the verification value is obtained from computation of the predefined function using an encryption key and the nonce as the input value.

### Claim 42 (depends on 41)

The computer-implemented method of claim 41, the method further comprising transmitting, by the computer, the encryption key to the communication partner via the communication port.

### Claim 43 (depends on 34)

The computer-implemented method of claim 34, the method further comprising:
receiving, by the computer, at least a first and a second intermediate results of computation of the predefined function performed on the communication partner;
determining, by the computer, whether the first intermediate result is equal to a first expected value by performing the predefined function taking the nonce as a first input value;
determining, by the computer, whether the second intermediate result is equal to a second expected value by performing the predefined function taking the first intermediate result as a second input value; and
determining, by the computer, that the communication partner is a trusted device if the first intermediate result is equal to the first expected value and the second intermediate result is equal to the second expected value.

### Claim 44 (depends on 43)

The computer-implemented method of claim 43, the method further comprising determining in parallel, by the computer, whether each of the first intermediate result and the second intermediate result is equal to each of the first expected value and the second expected value respectively.
