IP Library Granted Patent US 12,463,827
Granted Patent B2
US 12,463,827 · App. 18/705,174 · Granted Nov 4, 2025

Program execution system, data processing apparatus, program execution method, and program

Inventors: Tetsuya Okuda (Tokyo, JP); Misato Nakabayashi (Tokyo, JP)
Assignee: NTT, Inc.
H04L9/3247H04L9/0822H04L9/0825
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,463,827
App. No.
18/705,174
Granted
Nov 4, 2025
Kind
B2
Abstract

A program execution system including a data holding apparatus; a program providing apparatus; and a data processing apparatus that includes a mechanism for performing secret computing in a secure area is provided. The data holding apparatus transmits encrypted data of data D to the data processing apparatus, the program providing apparatus transmits an encrypted program of a program P to the data processing apparatus, the program providing apparatus transmits a secret key SKp to the data processing apparatus, the data processing apparatus generates a first signature by the secret key SKp on behalf of the program providing apparatus and transmits the first signature to the data holding apparatus, the data holding apparatus verifies the first signature and transmits a secret key SKd to the data processing apparatus, and the data processing apparatus computes, in the secure area, a result P(D) by executing the program P based on the data D.

Claims (35)

1 . A program execution system comprising:

a data holding apparatus including a processor and a memory;

a program providing apparatus including a processor and a memory; and

a data processing apparatus that includes a mechanism for performing secret computing in a secure area, the data processing apparatus including a processor and a memory, wherein

the processor of the data holding apparatus is configured to execute instructions stored in the memory of the data holding apparatus to transmit encrypted data obtained by encrypting data D with a public key PKd of the data holding apparatus to the data processing apparatus,

the processor of the program providing apparatus is configured to execute instructions stored in the memory of the program providing apparatus to transmit an encrypted program obtained by encrypting a program P with a public key PKp of the program providing apparatus to the data processing apparatus,

the processor of the program providing apparatus is configured to execute instructions stored in the memory of the program providing apparatus to transmit a secret key SKp encrypted by a first shared key that is shared with the data processing apparatus to the data processing apparatus,

the processor of the data processing apparatus is configured to execute instructions stored in the memory of the data processing apparatus to generate a first signature by the secret key SKp on behalf of the program providing apparatus and transmits the generated first signature to the data holding apparatus,

the processor of the data holding apparatus is configured to execute instructions stored in the memory of the data holding apparatus to verify the first signature by using the public key PKp and transmits a secret key SKd encrypted by a second shared key that is shared with the data processing apparatus to the data processing apparatus, and

the processor of the data processing apparatus is configured to execute instructions stored in the memory of the data processing apparatus to compute, in the secure area, a result P (D) by executing the program P, obtained by decrypting the encrypted program with the secret key SKp, based on the data D obtained by decrypting the encrypted data with the secret key SKd.

2 . The program execution system according to claim 1 , wherein

the data holding apparatus transmits a second signature for a nonce value by the secret key SKd to the data processing apparatus, and

the data processing apparatus performs verification of the second signature by using the public key PKd, and, in a case where the verification of the second signature is successful, the data processing apparatus generates the first signature on behalf of the program providing apparatus and transmits the generated first signature to the data holding apparatus.

3 . A program execution system comprising:

a data holding apparatus including a processor and a memory;

a program providing apparatus including a processor and a memory; and

a data processing apparatus that includes a mechanism for performing secret computing in a first secure area associated with the program providing apparatus and a second secure area associated with the data holding apparatus, the data processing apparatus including a processor and a memory, wherein

the processor of the data holding apparatus is configured to execute instructions stored in the memory of the data holding apparatus to transmit encrypted data obtained by encrypting data D with a public key PKd of the data holding apparatus to the data processing apparatus,

the processor of the program providing apparatus is configured to execute instructions stored in the memory of the program providing apparatus to transmit an encrypted program obtained by encrypting a program P with a public key PKp of the program providing apparatus to the data processing apparatus,

the processor of the program providing apparatus is configured to execute instructions stored in the memory of the program providing apparatus to transmit a secret key SKp encrypted by a first shared key that is shared with the first secure area to the first secure area,

the processor of the data holding apparatus is configured to execute instructions stored in the memory of the data holding apparatus to transmit-a secret key SKd encrypted by a second shared key that is shared with the second secure area to the second secure area,

the processor of the data processing apparatus is configured to execute instructions stored in the memory of the data processing apparatus to perform mutual verification of a first signature by the secret key SKp and a second signature by the secret key SKd between the first secure area and the second secure area, and

the processor of the data processing apparatus is configured to execute instructions stored in the memory of the data processing apparatus to compute, in the first secure area, a result P (D) by executing the program P, obtained by decrypting the encrypted program with the secret key SKp, based on the data D obtained by decrypting the encrypted data with the secret key SKd.

4 . The program execution system according to claim 3 , wherein

the data processing apparatus computes, in the first secure area, PROOF (P) by a proof-carrying code (PCC) for the program P obtained by decrypting the encrypted program with the secret key SKp in a case where the verification is successful,

the data processing apparatus performs verification of the PROOF (P) in the second secure area, and

the data processing apparatus computes the P (D) in the first secure area in a case where the verification of the PROOF (P) is successful.

5 . A data processing apparatus in a program execution system, the program execution system including a data holding apparatus, a program providing apparatus, and the data processing apparatus that includes a mechanism for performing secret computing in a secure area, the data processing apparatus comprising a processor and a memory, wherein the processor is configured to execute instructions stored in the memory to:

receive, from the data holding apparatus, encrypted data obtained by encrypting data D with a public key PKd of the data holding apparatus;

receive, from the program providing apparatus, an encrypted program obtained by encrypting a program P with a public key PKp of the program providing apparatus;

receive, from the program providing apparatus, a secret key SKp encrypted by a first shared key that is shared with the program providing apparatus;

generate a first signature by the secret key SKp on behalf of the program providing apparatus, and transmit the generated first signature to the data holding apparatus;

receive, from the data holding apparatus in which the first signature is verified by using the public key PKp, a secret key SKd encrypted by a second shared key that is shared with the data processing apparatus; and

compute, in the secure area, a result P (D) by executing the program P, obtained by decrypting the encrypted program with the secret key SKp, based on the data D obtained by decrypting the encrypted data with the secret key SKd.

6 . A non-transitory computer-readable recording medium having computer-readable instructions stored thereon, which, when executed, cause a computer including a memory and processor to function as a data processing apparatus of claim 5 .

Assignments (2)
CHANGE OF NAME Recorded Aug 15, 2025
From: NIPPON TELEGRAPH AND TELEPHONE CORPORATION
To: NTT, INC.
Reel/Frame 072490/0664 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 26, 2024
From: OKUDA, TETSUYA; NAKABAYASHI, MISATO
To: NIPPON TELEGRAPH AND TELEPHONE CORPORATION
Reel/Frame 067241/0700 →
Continuity (1)
Related Publication 20250016003A1 · Jan 9, 2025
References Cited (8)
US 20140075199A1 · Hiwatari · 2014 [cited by examiner]
US 20150350197A1 · Ike · 2015 [cited by examiner]
US 20220417002A1 · Esiner · 2022 [cited by examiner]
Microsoft Azure Confidential Computing Official Web Page https://docs.microsoft.com/ja-jp/azure/confidential-computing/overview, Retrieved Nov. 8, 2021. [cited by applicant]
Google Confidential VM Official Web Page https://cloud.google.com/compute/confidential-vm/docs?hl=ja, Retrieved Nov. 8, 2021. [cited by applicant]
George C. Necula, School of Computer Science Carnegie Mellon University, “Proof-Carrying Code”, 1997, pp. 1-14. [cited by applicant]
George C. Necula and Peter Lee., Carnegie Mellon University, “Safe, Untrusted Agents using Proof-Carrying Code”, 1998. [cited by applicant]
Yasuyuki Tsukada, Journal of Information Processing, “Proof Hiding in Interactive Proof-carrying Code and Its Applications”, vol. 46 No. 1, Jan. 2005, pp. 236-246. [cited by applicant]