IP Library › Granted Patent US 12,341,895
Granted Patent B2
US 12,341,895 · App. 18/096,520 · Granted Jun 24, 2025

Zero-knowledge confidential computing

Inventor: Mark Eugene Russinovich (Bellevue, WA)
Assignee: Microsoft Technology Licensing, LLC
H04L9/3218G06F21/53H04L9/3236
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,341,895
App. No.
18/096,520
Granted
Jun 24, 2025
Kind
B2
Abstract

The disclosed technology is generally directed to zero knowledge confidential computing. In one example of the technology, via a prover, in a trusted execution environment, a private input and a public input are provided to a statement. The prover and the statement each include processor-executable code. Via the prover, in the trusted execution environment, execution of the statement is caused in the trusted execution environment such that the statement generates a result from at least the private input and the public input. Via the trusted execution environment, a measurement of the prover is signed and a measurement of the statement is signed. Via the prover, in the trusted execution environment, an attestation report is output. The attestation report includes the result, a commitment of the private input, the signed measurement of the prover, and the signed measurement of the statement. The attestation report does not include secret information.

Claims (38)

1. An apparatus, comprising:

a device including at least one memory having processor-executable code stored therein, and at least one processor that is adapted to execute the processor-executable code, wherein the processor includes a trusted execution environment, and wherein the processor-executable code includes processor-executable instructions that, in response to execution, enable the device to perform actions, including:

receiving, via the trusted execution environment, a first private input and a first public input;

via a prover, in the trusted execution environment, providing statement inputs to a first statement, wherein the statement inputs include the first private input and the first public input, wherein the prover includes processor-executable code, and wherein the first statement includes other processor-executable code;

via the prover, in the trusted execution environment, causing execution of the first statement in the trusted execution environment such that the first statement generates a first result from at least the first private input and the first public input;

via the trusted execution environment, performing a prover verification hash of underlying prover code of the prover to assess whether the underlying prover code has been changed, and outputting a first result of the prover verification hash as a signed measurement of the prover;

via the trusted execution environment, performing a statement verification hash of underlying statement code of the first statement to assess whether the underlying statement code has been changed, and outputting a second result of the statement verification hash as a signed measurement of the first statement; and

via the prover, in the trusted execution environment, outputting a first attestation report, wherein the first attestation report includes the first result, a commitment of the first private input, the signed measurement of the prover, and the signed measurement of the first statement, each chained to a hardware root of trust of the trusted execution environment; and wherein the first attestation report does not include secret information.

2. The apparatus of claim 1 , wherein the commitment of the first private input is a signed hash of the first private input.

3. The apparatus of claim 1 , wherein the first result includes at least one of a Boolean value, a numeric value, or a string.

4. The apparatus of claim 1 , wherein the statement inputs further include a plurality of additional public inputs.

5. The apparatus of claim 1 , wherein the statement inputs further include a first private key.

6. The apparatus of claim 1 , the actions further including receiving the first statement.

7. The apparatus of claim 1 , wherein the first private input is encrypted, the actions further including decrypting the first private input.

8. The apparatus of claim 1 , wherein the statement inputs further include the commitment of the first private input.

9. The apparatus of claim 8 , the actions further including, via the prover, in the trusted execution environment, validating that the first private input corresponds to the commitment of the first private input.

10. The apparatus of claim 8 , wherein the statement inputs further include: a plurality of additional private inputs and, for each private input of the plurality of additional private inputs, a commitment of that private input.

11. The apparatus of claim 10 , the actions further including, via the prover, in the trusted execution environment, for each of the private inputs, validating that that private input matches the corresponding commitment of that private input.

12. A method, comprising:

via a trusted execution environment in a processor, receiving a first private input and a first public input;

communicating statement inputs to a first statement via a prover, in the trusted execution environment, wherein the statement inputs include the first private input and the first public input, wherein the prover includes processor-executable code, and wherein the first statement includes other processor-executable code;

via the prover, in the trusted execution environment, providing a first result from at least the first private input and the first public input by executing the first statement in the trusted execution environment such that the first statement generates a first result from at least the first private input and the first public input;

via the trusted execution environment, performing a prover verification hash of underlying prover code of the prover to assess whether the underlying prover code has been changed, and outputting a first result of the prover verification hash as a signed measurement of the prover;

via the trusted execution environment, performing a statement verification hash of underlying statement code of the first statement to assess whether the underlying statement code has been changed, and outputting a second result of the statement verification hash as a signed measurement of the first statement; and

via the prover, in the trusted execution environment, communicating a first attestation report to a verifier, wherein the first attestation report includes the first result, a commitment of the first private input, the signed measurement of the prover, and the signed measurement of the first statement, each chained to a hardware root of trust of the trusted execution environment; and wherein the first attestation report does not include secret information.

13. The method of claim 12 , wherein the commitment of the first private input is a signed hash of the first private input.

14. The method of claim 12 , wherein the statement inputs further include the commitment of the first private input.

15. The method of claim 14 , wherein the statement inputs further include: a plurality of additional private inputs and, for each private input of the plurality of additional private inputs, a commitment of that private input.

16. The method of claim 14 , further comprising, via the prover, in the trusted execution environment, validating that the first private input corresponds to the commitment of the first private input.

17. A processor-readable storage medium, having stored thereon processor-executable code that, upon execution by at least one processor, enables actions, comprising:

via a prover, in the trusted execution environment, providing statement inputs to a first statement, wherein the statement inputs include a first private input and a first public input, wherein the prover includes processor-executable code, and wherein the first statement includes other processor-executable code;

via the prover, in the trusted execution environment, causing execution of the first statement in the trusted execution environment such that the first statement generates a first result from at least the first private input and the first public input;

causing the trusted execution environment to perform a prover verification hash of underlying prover code of the prover to assess whether the underlying prover code has been changed, and output a first result of the prover verification hash as a signed measurement of the prover;

causing the trusted execution environment to perform a statement verification hash of underlying statement code of the first statement to assess whether the underlying statement code has been changed, and output a second result of the statement verification hash as a signed measurement of the first statement; and

outputting a first attestation report via the prover in the trusted execution environment, wherein the first attestation report does not include secret information, and wherein the first attestation report includes the first result, a commitment of the first private input, the signed measurement of the prover, and the signed measurement of the first statement, each chained to a hardware root of trust of the trusted execution environment.

18. The processor-readable storage medium of claim 17 , wherein the commitment of the first private input is a signed hash of the first private input.

19. The processor-readable storage medium of claim 17 , wherein the statement inputs further include the commitment of the first private input.

20. The processor-readable storage medium of claim 19 , the actions further comprising, via the prover, in the trusted execution environment, validating that the first private input corresponds to the commitment of the first private input.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 12, 2023
From: RUSSINOVICH, MARK EUGENE
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 062365/0559 →
Continuity (1)
Related Publication 20240243917A1 · Jul 18, 2024
References Cited (8)
US 20190109707A1 · Ajoy · 2019 [cited by examiner]
US 20220255931A1 · Avetisov · 2022 [cited by examiner]
US 20240037497A1 · Brown · 2024 [cited by examiner]
US 20240275594A1 · Germouty · 2024 [cited by examiner]
Bingsheng Zhang, Succint Scruptable NIZK via Trusted Hardware, 2021, Zhejiang University, 1-22 (Year: 2021). [cited by examiner]
Debes, et al., “ZEKRO: Zero-Knowledge Proof of Integrity Conformance.” In Proceedings of the 17th International Conference on Availability, Reliability and Security, Aug. 2022, pp. 1-10. [cited by applicant]
International Search Report and Written Opinion received for PCT Application No. PCT/US2024/010005, Apr. 25, 2024, 14 pages. [cited by applicant]
Zhang, et al., “Succinct Scriptable NIZK via Trusted Hardware”, In Computer Security—ESORICS 2021: 26th European Symposium on Research in Computer Security, Darmstadt, Germany, Oct. 8, 2021, pp. 430-451. [cited by applicant]