# US 11,907,392 B2 · System and method utilizing function secret sharing with conditional disclosure of secrets

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

- Number: US 11,907,392 B2
- Document ID: US11907392B2
- Status: Granted
- Kind: B2
- Application number: 17/318,045
- Filed: 2021-05-12
- Published: 2022-11-24
- Granted: 2024-02-20
- Earliest claimed: 2021-05-12
- Assignees: Seagate Technology LLC
- Applicants: Seagate Technology LLC
- Inventors: Nolan Miranda; Vipin Singh Sehrawat; Foo Yee Yeo
- Web page: https://patentgrep.com/patent/US11907392B2

## CPC

- G06F 21/6227: {where protection concerns the structure of data, e.g. records, types, queries}
- G06F 21/6245: {Protecting personal data, e.g. for financial or medical purposes}
- G06F 16/2448: {for particular applications; for extensibility, e.g. user defined types}
- G06F 16/248: Presentation of query results
- G06F 16/284: {Relational databases}
- G06F 21/556: {involving covert channels, i.e. data leakage between processes (inhibiting the analysis of circuitry or operation with measures against power attack G06F21/755)}
- G06F 21/6218: {to a system of files or objects, e.g. local or distributed file system or database}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A function is decomposed into a plurality of function shares. The function returns a Boolean result based on whether an input y satisfies a query on a data set. The function shares hide the function from non-collaborating entities that separately execute the function shares. Each of the functions shares are sent to one of a plurality of servers having a same data set. The function shares are executed on the data set at the servers to obtain a respective plurality of shares. A conditional disclosure of secrets operation is simulated on the shares and the input y. The conditional disclosure of secrets operation uses a secret known to at least one of the servers, and further uses a source of randomness shared between the servers. A Boolean value corresponding to the Boolean result is returned based on the conditional disclosure of secrets operation returning the secret.

## Claims

### Claim 1

A method, comprising:
receiving, from a requestor at a server selected from a plurality of servers having a same data set, a function share that belongs to a plurality of function shares decomposed from a function, the plurality of function shares separately distributed by the requestor to the plurality of servers, the function returning a Boolean result based on whether an input y satisfies a query on the data set, the function shares hiding the function from non-collaborating entities that separately execute the function shares;
executing the function share on the data set to obtain a share, others of the plurality of servers obtaining other shares based on executing the other function shares;
with the other servers, simulating a conditional disclosure of secrets operation on the shares and the input y, the conditional disclosure of secrets operation using a secret known to at least one of the plurality of servers, and further using a source of randomness shared between the plurality of servers; and
returning a Boolean value to the requestor corresponding to the Boolean result based on the conditional disclosure of secrets operation returning the secret.

### Claim 2 (depends on 1)

The method of claim 1, wherein the requestor comprises an intermediary server between a client and the plurality of servers, the requestor decomposing the query by the client into the plurality of function shares.

### Claim 3 (depends on 2)

The method of claim 2, wherein the intermediary server performs the conditional disclosure of secrets operation.

### Claim 4 (depends on 1)

The method of claim 1, wherein the shared source of randomness comprises a family of n-bit random values.

### Claim 5 (depends on 1)

The method of claim 1, wherein the secret is known by all of the plurality of servers.

### Claim 6 (depends on 1)

The method of claim 1, wherein the simulating of the conditional disclosure of secrets prevents leakage of other data from the data set that is not a subject of the query.

### Claim 7 (depends on 1)

The method of claim 1, wherein the function shares hide the function from the plurality of servers so long as at least one of the servers does not collaborate with the rest of the plurality of servers.

### Claim 8 (depends on 1)

The method of claim 1, wherein the data set comprises a relational database.

### Claim 9 (depends on 1)

An apparatus comprising a processor and memory, the memory comprising instructions operable by the processor to perform the method of claim 1.

### Claim 10

A method, comprising:
decomposing a function into a plurality of function shares, the function returning a Boolean result based on whether an input y satisfies a query on a data set, the function shares hiding the function from non-collaborating entities that separately execute the function shares;
sending each the function shares to a respective one of a plurality of servers having a same data set;
executing the function shares on the data set at the plurality of servers to obtain a respective plurality of shares;
simulating a conditional disclosure of secrets operation on the shares and the input y, the conditional disclosure of secrets operation using a secret known to at least one of the plurality of servers, and further using a source of randomness shared between the plurality of servers; and
returning a Boolean value corresponding to the Boolean result based on the conditional disclosure of secrets operation returning the secret.

### Claim 11 (depends on 10)

The method of claim 10, wherein the query originates from an intermediary server between a client and the plurality of servers, the intermediary server decomposing the query by the client into the plurality of function shares.

### Claim 12 (depends on 11)

The method of claim 11, wherein the intermediary server performs the conditional disclosure of secrets operation.

### Claim 13 (depends on 10)

The method of claim 10, wherein the shared source of randomness comprises a family of a-bit random values.

### Claim 14 (depends on 10)

The method of claim 10, wherein the secret is known by all of the plurality of servers.

### Claim 15 (depends on 10)

The method of claim 10, wherein the simulating of the conditional disclosure of secrets prevents leakage of other data from the data set that is not a subject of the query.

### Claim 16 (depends on 10)

The method of claim 10, wherein the function shares hide the function from the plurality of servers so long as at least one of the servers does not collaborate with the rest of the plurality of servers.

### Claim 17 (depends on 10)

The method of claim 10, wherein the data set comprises a relational database.

### Claim 18

A system comprising:
a plurality of servers each having access to a same data set; and
a computing entity coupled via a network to the plurality of servers and operable to:
decompose a function into a plurality of function shares, the function returning a Boolean result based on whether an input y satisfies a query on a data set, the function shares hiding the function from non-collaborating entities that separately execute the function shares; and
send each the function shares to a respective one of the plurality of servers;
wherein the plurality of servers are operable to:
receive and execute the function shares on the data set to obtain a respective plurality of shares;
simulate a conditional disclosure of secrets operation on the shares and the input y, the conditional disclosure of secrets operation using a secret known to at least one of the plurality of servers, and further using a source of randomness shared between the plurality of servers; and
return a Boolean value corresponding to the Boolean result based on the conditional disclosure of secrets operation returning the secret.

### Claim 19 (depends on 18)

The system of claim 18, wherein the simulating of the conditional disclosure of secrets prevents leakage of other data from the data set that is not a subject of the query.

### Claim 20 (depends on 18)

The system of claim 18, wherein the function shares hide the function from the plurality of servers so long as at least one of the servers does not collaborate with the rest of the plurality of servers.
