This article explains the background knowledge necessary to use the product, including information on the Roseman Labs components, and how they interact. Directions are given to guides on how to use each of them.
Roseman Labs software components
Roseman Labs consists of three different components: the engine which is responsible for the encryption and processing of data, and two client modules interacting with it, being the platform and the crandas python package. Below, you can see these components explained in detail.
Figure 1: Roseman Labs software overview
Multi-Party Computation nodes
A computation under Multi-Party Computation (MPC) relies on a set of MPC nodes. To be able to perform an analysis on combined data, you first need to encrypt/secret-share each dataset and distribute them over these different nodes. The nodes also verify the approvals for scripts that are requested, and execute the scripts on the data they hold. You can find an detailed explanation on the theory behind MPC and secret sharing here.
The MPC nodes are hosted by Roseman Labs. If you have strict requirements for hosting on premise, please contact us. When hosting, Roseman Labs adheres to a strict segregation of duties and each server is hosted at a different cloud provider to ensure the security of the encrypted data.
Platform
The platform is an online interface that runs in the browser. It can be used to assign roles and associated rights to individuals involved in the execution of an analysis. It also allows you to upload and delete data sources, request approvals for analysis scripts and reject/approve those scripts.
You can find an explanation of all the roles that exist in the platform here. For more information about the platform and how to use it, please check the platform documentation in the knowledge base.
Crandas
To write an analysis script and interact with the MPC nodes, Roseman Labs has developed a python package called crandas. Crandas is a python package that uses roughly the same syntax as the popular python package pandas, but it delegates the computations to the MPC nodes so that those computations are performed in the blind. More information about the similarities and differences between crandas and pandas can be found here.
Before you run an analysis on your data, you will first need to design it. To do this, Roseman Labs provides two types of environments: one for the design and one for the actual execution of an analysis. For more information, please check this page in the knowledge base.
For information about crandas, as well as how to install and use it, please inspect the crandas documentation.
Figure 2: Data flow
If you are interested in the data flow among the different components and how they are encrypted, see also this article
If you found this article helpful, please let us know below!