# US 2022/0045858 A1 · Systems and Methods for Privacy-Reserving Data Hiding

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

- Number: US 2022/0045858 A1
- Document ID: US20220045858A1
- Status: Published application
- Kind: A1
- Application number: 17/395,974
- Filed: 2021-08-06
- Published: 2022-02-10
- Earliest claimed: 2020-08-07
- Assignees: New Jersey Institute of Technology; Università Della Svizzera Italiana
- Applicants: New Jersey Institute of Technology; Universita della Svizzera Italiana
- Inventors: Craig Gotsman; Kai Hormann
- Web page: https://patentgrep.com/patent/US20220045858A1

## CPC

- H04L 9/0872: {using geo-location information, e.g. location data, time, relative position or proximity to other entities}
- G06F 21/6254: {by anonymising data, e.g. decorrelating personal data from the owner's identification}
- H03M 13/19: Single error correction without using particular properties of the cyclic codes, e.g. Hamming codes, extended or generalised Hamming codes
- H04L 9/0894: {Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage}
- H04L 9/3239: {involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD}
- H04L 2209/34: Encoding or coding, e.g. Huffman coding or error correction
- H04L 2209/42: Anonymization, e.g. involving pseudonyms
- H04L 2209/88: Medical equipments
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H03M: CODING; DECODING; CODE CONVERSION IN GENERAL (using fluidic means F15C4/00; optical analogue/digital converters G02F7/00; coding, decoding or code conversion, specially adapted for particular applications, see the relevant subclasses, e.g. G01D, G01R, G06F, G06T, G09G, G10L, G11B, G11C, H04B, H04L, H04M, H04N; ciphering or deciphering for cryptography or other purposes involving the need for secrecy G09C)

## Abstract

Described in detail herein is a method for encrypting or encoding time-stamped location data associated with a computing device. The method converts time and location information associated with the computing device into a vector format. The method generates a code vector based on the converted time and location vector. The method sorts entries in the code vector based at least in part on a predetermined ordering scheme. The method executes a random modification to each of the sorted entries. The method compares the code vector to at least one other code vector associated with another computing device. The method identifies other code vectors within a specified distance of the given code vector. The method concludes that the computing device and the at least one other computing device were in proximity to each other during a time period corresponding to the time information.

## Claims

### Claim 1

A method for encrypting location data associated with a computing device into a code vector to hide the location data, the method comprising:
converting time and location information associated with the location data of the computing device into a vector format;
generating the code vector based on the converted time and location vector using a linear or non-linear transformation;
sorting entries in the code vector based at least in part on a predetermined ordering scheme;
executing a random modification to each of the sorted entries;
comparing the code vector to at least one other code vector associated with at least one other computing device;
determining a distance between the code vector and at least one other code vector; and
determining, based on the determined distance, whether the computing device and the at least one second computing device were in proximity to each other during a time period corresponding to the time information.

### Claim 2 (depends on 1)

The method of claim 1, wherein the computational complexity associated with decoding the code vector renders recovery of the time and location information from the code vector computationally infeasible.

### Claim 3 (depends on 1)

The method of claim 1, wherein the time information is concatenated with the location information.

### Claim 4 (depends on 1)

The method of claim 1, wherein the code vector is based at least in part on a polynomial over a finite field and a prime number.

### Claim 5 (depends on 4)

The method of claim 4, wherein the code vector is further based at least in part on a modulus of the prime number and a vector corresponding to the time and location information associated with the location data.

### Claim 6 (depends on 4)

The method of claim 4, wherein converting the time and location information associated with the location data into a vector format comprises:
determining a plurality of digits such that a sum of the product of each of the plurality of digits and a corresponding power of the prime number is equal to the concatenation of the time information and location information;
using the plurality of digits as the coefficients of a polynomial modulo the prime number; and
determining that the code vector comprises integers by evaluating the polynomial at a plurality of integer values.

### Claim 7 (depends on 4)

The method of claim 4, wherein the entries in the code vector are sorted in a non-decreasing order.

### Claim 8 (depends on 4)

The method of claim 4, wherein random noise is added to entries of the code vector.

### Claim 9 (depends on 1)

The method of claim 1, wherein the hidden location data preserves the privacy of an individual associated with the computing device.

### Claim 10 (depends on 1)

The method of claim 1, wherein the distance between the code vector and the at least one other vector is a Hamming Distance.

### Claim 11 (depends on 10)

The method of claim 10, wherein the Hamming Distance corresponds to the proximity of the computing device relative to at least one other computing device associated with the at least one other code vector during a time period corresponding to the time information.

### Claim 12 (depends on 9)

The method of claim 9, wherein the computing device is within a certain proximity of the at least one second computing device during the time period when the Hamming Distance is less than a threshold.

### Claim 13

A system for encrypting location data associated with a computing device into a code vector to hide the location data, the system comprising:
a database;
an application executing on a mobile computing device, wherein the application:
converts time and location information associated with the location data of the mobile computing device into a vector format;
generates the code vector based on the converted time and location information using a linear or non-linear transformation;
sorts entries in the code vector based at least in part on a predetermined ordering scheme;
executes a random modification to each of the sorted entries; and
transmits the code vector to one or more servers;
wherein the one or more servers are programmed to:
compare the code vector to at least one other code vector associated with at least one other computing device;
determine a distance between the code vector and at least one other code vector; and
determine, based on the distance, whether the computing device and the at least one second computing device were in proximity to each other during a time period corresponding to the time information.

### Claim 14 (depends on 13)

The system of claim 13, wherein a computational complexity associated with decoding the code vector renders recovery of the time and location information from the code vector by the server computationally infeasible.

### Claim 15 (depends on 13)

The system of claim 13, wherein the time information is concatenated with the location information.

### Claim 16 (depends on 13)

The system of claim 13, wherein the code vector is based at least in part on a polynomial over a finite field and a prime number.

### Claim 17 (depends on 13)

The system of claim 13, wherein the code vector is further based at least in part on a modulus of the prime number and a vector corresponding to the time and location information associated with the location data.

### Claim 18 (depends on 15)

The system of claim 15, wherein the conversions of the time and location information associated with the location data into the vector format causes the application to:
determine a plurality of digits such that the sum of the product of each of the plurality of digits and a corresponding power of the prime number is equal to the concatenation of the time information and location information;
set the coefficients of a polynomial modulo the prime number equal to the plurality of digits; and
determine the code vector of comprises integers by evaluating the polynomial at a plurality of integer values.

### Claim 19 (depends on 15)

The system of claim 15, wherein the entries in the code vector are sorted in a non-decreasing order.

### Claim 20 (depends on 15)

The system of claim 15, wherein random noise is added to the entries of the code vector.

### Claim 21

A device for encrypting location data associated with a computing device into a code vector to hide the location data, the device comprising at least one non-transitory computer-readable medium storing computer-executable instructions therein, which when executed by at least one processor, cause the processors to perform the operations of:
converting time and location information associated with the location data of the computing device into a vector format;
generating the code vector based on the converted time and location vector using a linear or non-linear transformation;
sorting entries in the code vector based at least in part on a predetermined ordering scheme;
executing a random modification to each of the sorted entries;
comparing the code vector to at least one other code vector associated with at least one other computing device;
determining a distance between the code vector and at least one other code vector; and
determining, based on the determined distance, whether the computing device and the at least one second computing device were in proximity to each other during a time period corresponding to the time information.
