A computer-implemented method comprising: constructing an isolated memory partition that forms a secure enclave, wherein the secure enclave is pre-provisioned with software and is available to one or more processors for running one or more application computing processes in isolation from one or more unauthorized computing processes running on the one or more processors; de-identifying input data prior to loading the input data into the secure enclave, wherein de-identifying the input data comprises removing information that identifies one or more individuals or entities from the input data; and receiving, at the secure enclave, the de-identified input data-in an encrypted form from a data provider (200, 800, 1A101); loading the de-identified input data into the secure enclave; receiving, from an instruction provider (1A103) different from the data provider, one or more programs comprising the instructions for the one or more application computing processes; loading the one or more programs into the secure enclave; decrypting the de-identified input data or instructions using at least one of one or more cryptographic keys; executing the one or more application computing processes based on the decrypted de-identified input data to generate output data using the secure enclave; generating a proof of execution that proves that the one or more instructions of the one or more application computing processes operated on the received de-identified input data; encrypting the output data using the at least one of one or more cryptographic keys; and providing external access to the encrypted output data and the proof of execution. constructing an isolated memory partition that forms a secure enclave, wherein the secure enclave is pre-provisioned with software and is available to one or more processors for running one or more application computing processes in isolation from one or more unauthorized computing processes running on the one or more processors; de-identifying input data prior to loading the input data into the secure enclave, wherein de-identifying the input data comprises removing information that identifies one or more individuals or entities from the input data; and receiving, at the secure enclave, the de-identified input data-in an encrypted form from a data provider (200, 800, 1A101); loading the de-identified input data into the secure enclave; receiving, from an instruction provider (1A103) different from the data provider, one or more programs comprising the instructions for the one or more application computing processes; loading the one or more programs into the secure enclave; decrypting the de-identified input data or instructions using at least one of one or more cryptographic keys; executing the one or more application computing processes based on the decrypted de-identified input data to generate output data using the secure enclave; generating a proof of execution that proves that the one or more instructions of the one or more application computing processes operated on the received de-identified input data; encrypting the output data using the at least one of one or more cryptographic keys; and providing external access to the encrypted output data and the proof of execution.