In this page we provide a brief introduction and the source code of the Attribute-Based Encryption scheme that we have implemented in our papers. For any inquiry do not hesitate to contact the authors.

    1. On the Feasibility of Attribute-Based Encryption on Smartphone Devices,,

      We implemented AndrABEn, an ABE library for Android operating system. Our library is written in the C language and implements two main ABE schemes: Ciphertext-Policy Attribute-Based Encryption, and Key- Policy Attribute-Based Encryption. Since the current state-of-the-art claims the non feasibility of ABE on mobile devices, we believe that our study (together with the AndrABEn library that we made available online) is a key result that will pave the way for researchers and developers to design and implement novel protocols and applications for mobile devices.
      AndrABEn is implemented on Android 4.3, “Jelly Bean”. We carried out our experimental evaluation on a Samsung Galaxy Nexus device (1.2 GHz dual-core ARM Cortex-A9 CPU, 1 GB RAM). For completeness and comparison, we also tested our libraries on a laptop device (Ubuntu 14.4 LTS, 1.8 GHz 4x Intel CoreTM i7-4500U CPU, 8 GB RAM).

      ---> Link to the AndrABEn library
    2. On the Feasibility of Attribute-Based Encryption on Internet of Things Devices,,,,,,

      In this paper, we adopt the same core C implementation of CP-ABE used in our previous paper (mentioned above), and implemented on four IoT boards: Intel Galileo Gen 2, Intel Edison, Raspberry Pi 1 Model B, and Raspberry Pi Zero. We have chosen a set of middle class IoT devices, i.e., low cost devices with a few megabytes of memory, that are network-enabled and compatible with a wide range of peripherals, to be used in different industrial or home automation applications. We evaluated execution time, memory usage and energy consumption of CP-ABE encryption and decryption on the considered devices. For more details please refer to the paper.

      ---> Link to the IoT-ABE library

      The ZIP package contains a modified version of cp-abe, libbswabe, kp-abe, and libcelia libraries from these sources:
      The cp-abe and kp-abe are modified by adding some time measurements functions and libbswabe and libcelia are modified to set security level.
      There are also some Python and Linux shell scripts in automation folder which we used to automate the measurement process.