Skip to content

samadeusfp/shareprom

 
 

Repository files navigation

ShareProm

This repository contains the source code of ShareProm, a Secure Multi-party computation system for Inter-organizational Process Mining. The system is still under development. A research publication is pending for the system by Gamal Elkoumy, Stephan A. Fahrenkrog-Peterson, Marlon Dumas , Peeter Laud, Alisa Pankova and Matthias Weldich.

This repository contains scripts for the implementation of Shareprom and for performing the experimental evaluation of the system. The system is implemented on top of Sharemind [1], a secure multi-party computation engine. The system architecture and evaluation experiments are presented in the paper

To cite the project, you can use the following form:

@misc{elkoumy2019secure,
    title={Secure Multi-Party Computation for Inter-Organizational Process Mining},
    author={Gamal Elkoumy and Stephan A. Fahrenkrog-Petersen and Marlon Dumas and Peeter Laud and Alisa Pankova and Matthias Weildich},
    year={2019},
    eprint={1912.01855},
    archivePrefix={arXiv},
    primaryClass={cs.CR}
}

System Requirement

The implementation of the system is in SecreC [2], a C++ like language that runs on top of Sharemind. The following are the required environmental setup for running the system:

  • The installation of sharemind servers on 3 servers and the key authentication between the servers so they can communicate securely.
  • Installation of sharemind client, that could be either on one of the 3 servers or a separate machine. Also, we need to share the key of the client on the 3 servers so they can trust the client applications.
  • All the importing process of the CSV files should be performed using sharemind csv-importer. The CSV importer is only available for Academic and industrial licenses and we use our Academic license.
  • The installation of linux package apt-transport-https

You can download a pre-installed sharemind virtual machine for free from sharemind's website.

Or, you can install sharemind on your own environment using sharemind server installation guide and client installation guide. After the instraction on the guides run the following command on the three servers to download the package libsharemind-mod-shared3pdev-ctrl:

sudo apt-get install libsharemind-mod-shared3pdev-ctrl

And on the client's machine to enabling running the script using clients:

sudo apt-get install sharemind-runscript

Data Format

The proposed approach assume the following:

  • The data of partyA and partyB are loaded to the servers separately, each event log is in a separate file.
  • To use the Outer product approach, the data should label the events in binary representation (0100), with each bit in a separate column.
  • To use the parallel chunks, the data should include padding. The padding makes all the traces have the same length as the maximum length of traces of each party.

Also, you can find preprocessing and data examples in python in the following directory:

shareprom/data_and_preprocessing/

Running The System

The system runs as a client application on top of sharemind. You can submit your job using the following command:

sudo sharemind-runscript job_name.sb

Experiment Setup

To be able to run the experiment, you need to make sure that profiling is enabled "Profiler=on", and install the package nethogs

To run the experiment, use the shell script file:

shareprom/SecreC_implementation/experiment/experiment.sh

Running Demo on Open VM

As mentioned above, to run the full system, you need to have Academic license. To make it easier for the reader, we prepared a demo that presents our work and could run on the Sharemind's open VM.

Instructions to open the demo on the Open sharemind VM:

  • Get and install the virtual machine from sharemind's website
  • Run the Virtual Machine, download our GitHub repository to your VM, and Open the QT Creator
  • You need to run the 3 computing servers on the machine. You can do that from QT Creator > Tools > External > Sharemind SDK > start Sharemind
  • Now, you need to open the demo file in your editor. You can do that from QT Creator > File > Open File or Project > Redirect to the demo folder > select demo.sc
  • To run the script, from QT Creator > Tools > External > Sharemind SDK > Run SecreC.

References

[1] Archer, David W., et al. "From Keys to Databases—Real-World Applications of Secure Multi-Party Computation." The Computer Journal 61.12 (2018): 1749-1771.

[2] Bogdanov, Dan, Peeter Laud, and Jaak Randmets. "Domain-polymorphic language for privacy-preserving applications." Proceedings of the First ACM workshop on Language support for privacy-enhancing technologies. ACM, 2013.

About

Secure Multi-party computation system for Inter-organizational Process Mining

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • SuperCollider 48.0%
  • Python 29.0%
  • Shell 21.3%
  • R 1.4%
  • Scala 0.3%