Salim El Rouayheb – Software

Competition: IDASH Privacy and Security workshop 2018

Competition Task

For this competition, we were tasked with storing acess logs to a server using Multichain. In the competetion, 4 nodes, each represented by a different Virtual Machine, upload their access files simultaneously. Afterwards, each node must be able to search activity from all 4 nodes. More information about the task can be found on the workshop's website.

Our Solution

To reduce the search time in our solution, we decided to create multiple chains for each node, rather than storing all of our data on a single chain. This results in shorter chains and faster searches. The code is available on GitHub and here.

Guess & Check Codes for Deletions, Insertions, and Synchronization

Try Guess & Check Codes Online using Jupyter Notebook in 3 Simple Steps

  1. Download the notebook files from here.

  2. Go to and upload the downloaded notebook files.

  3. Open the Demo.ipynb file, adjust the parameters and run the code.

GitHub Repository

The C++ and Python codes are available on GitHub:


  1. S. Kas Hanna and S. El Rouayheb, Codes for Correcting Localized Deletions, IEEE Transactions on Information Theory, January 2021.

  2. S. Kas Hanna and S. El Rouayheb, Guess & Check Codes for Deletions, Insertions, and Synchronization, IEEE Transactions on Information Theory, vol. 65, no. 1, pp. 3-15, Jan. 2019.

  3. S. Kas Hanna and S. El Rouayheb, Guess & Check Codes for Deletions and Synchronization, IEEE International Symposium on Information Theory (ISIT), Aachen, June 2017.

Index Coding and Network Coding via Rank Minimization

Matlab code and tutorial

The Matlab code above implements various rank minimization methods (Alternating Projections, Directional Alternating Projections, etc.) to construct index codes and network codes as described in the paper below. The code also includes a graphical user interface for drawing a network and finding a scalar linear network code for it.

Software Library for Distributed Storage Systems

This repository consists of codes which help generate the current state of the ‘storage versus repair-bandwidth tradeoff curves’ for exact-repairable regenerating codes for distributed storage systems based on the work of the paper below.