Home

Awesome

CipherCompute

CipherCompute is the Cosmian enterprise software that enables collaborative confidential computations between a set of participants. It provides the cryptographic engine, computation setup and approval user interfaces, integration into enterprise IT, logging and auditing.

The millionaires

Alice, Bob and Charlie are millionaires and want to rank their wealth without revealing their actual wealth to each other. CipherCompute provides them with all the enterprise tools to

The Quickstart Guide shows you how to do this and more, quickly and for free using the EAP version of CipherCompute

Given the genericity and expressiveness of rust to write algorithms, CipherCompute is used to solve many different collaborative confidential computation problems across many industries (banking, health, industrial, defense etc...):

Secure Multi-Party Computation (sMPC)

The EAP version of CipherCompute in this repository mostly relies on an advanced cryptographic primitive known as Secure Multi-Party Computation and software developed in a joint effort with the University of KU Leuven around the SCALE engine.

In a nutshell MPC offers the ability to perform a confidential collaborative computation without moving or sharing data and by distributing an algorithm on participants servers. The servers will interact during the computation phase and exchange encrypted intermediate results. It is formally proven that these exchanges do not reveal anything of the actual data behind the servers.

That participants data does not move, is one of the most attractive aspect of sMPC: improved RGPD compliance, reduced CyberSecurity risk, etc...

For additional details on Cosmian, our relationship with the (cryptography) academia and the technologies we use, please check our website.

Free access to EAPs for developers and experimentation

Instructions below will install in a single step a developer version which is a set of 3 CipherCompute instances, each representing a participant to a confidential computation. You will be running on your computer your first confidential computation (the Millionaires) in minutes and start hacking MPC algorithms, for free.

The CipherCompute versions installed are full featured and are the EAP (Early Access Program) versions. EAPs may contain features not yet available in the production versions but which are still unstable. EAPs auto-expire after 90 days and are not meant for running computations in production, but are sufficient however to develop and test MPC production grade algorithms.

Your invaluable feedback is welcome: de not hesitate to open issues against this repository.

Install & Start

Please install docker-compose and clone this repository.

Installing and running the developer version of Cosmian CipherCompute is done in a single step with Docker Compose from the repository root directory

sudo docker-compose up

Docker will pull the required containers and start them. Once running, the 3 participants web user interfaces are available at:

<u>Note</u>: user interfaces are still reachable using plain HTTP at:

Create a new admin user on each instance:

01-signup

A successful sign-up will get you to the dashboard:

02-dashboard

Quickstart Guide

The first computation we are going to set-up is that of the "Millionaires":

Alice, Bob and Charlie are all millionaires and they would like to know their total wealth and how they compare to each other over 3 years, without disclosing their actual wealth to each other.

This guide is going to help you set the computation up between the participants and run it.

The sMPC algorithm has already been developed in rust and is heavily commented to help you start hacking your own MPC algorithms.

Handshake Alice, Bob and Charlie

A relationship must first be established between the participants: Participant 0, Alice, is going to invite the 2 other participants, Bob and Charlie, to participate in the computation.

Now login to Bob at http://localhost:3001 to accept the invitation

Once complete, all participants should show as approved on Alice screen

06-all-participant-approved

Create the computation

Alice will act as the computation leader: she will create the computation and propose it to the other participants for approval.

Fill in the computation details:

07-computation-step01

In the next screen, we will specify the meta-data of the data expected to be provided by Alice, Bob and Charlie. Start with us (Alice)

08-computation-step02-end

Then request Bob's data:

Finally, request Charlie's data:

Then click Create Computation

08-computation-step02-end

Review the Computation and click Submit Draft

09-computation-step3

Provide access to the dataset and approve the computation

Now that the computation has been specified, Alice, Bob and Charlie need to link their actual dataset to the computation and approve it.

On Alice, from the Computations menu, access the computation by clicking Review and click Provide dataset at the bottom of the screen:

10-provide-ds-btn

Then fill in the required details:

Click Submit datasource

11-provide-ds-alice

Review all the data entered and click Approve

12-approve

The computation is now submitted for approval to all other participants.

13-waiting-for-approval

Now login to both Bob (http://localhost:3001) and Charlie (http://localhost:3002) and perform the same steps to link their datasets. All data to enter is identical except for the files:

Once completed, go back to Alice and from the Computations menu, access the computation by clicking Review. All participants have now approved the computation and it is ready to run. Click on Run computation

14-run-computation

Run the Computation

The rust code is going to be pulled on all the machines, compiled and interactively executed. When the computation completes (about 30 seconds on 1st run, less on subsequent runs), Alice screen will display the results

15-results

Check Bob and Charlie results on their own instance.

Congratulations and next steps

You have now run your first MPC computation !

Please have look at other readily available computations in the Github Cosmian repository - those starting with mpc_, the mpc_join in particular which is the base of many confidential data sciences projects.

These projects provide documentation to help you get started hacking your own MPC code.

Known caveats with the EAP developer version

These are EAPs, not production versions:

Others: