GithubHelp home page GithubHelp logo

cloudsecuritygroup / arca Goto Github PK

View Code? Open in Web Editor NEW
2.0 3.0 1.0 3.24 MB

A collection of encrypted search algorithms

Home Page: https://github.com/cloudsecuritygroup/arca

License: Apache License 2.0

Python 100.00%
searchable-encryption structured-encryption encrypted-search

arca's Introduction

Arca: a collection of encrypted search algorithms

Arca is an Python package designed to allow researchers to easily and rapidly prototype systems that use encrypted search algorithms. Arca provides simple cryptographic primitives (which themselves are based on those provided by the Python cryptography package) and implementations of various structured encryption schemes.

Arca's provided encrypted search algorithms allow researchers to easily swap out different encryption subroutines and serialization algorithms for more fine-tuned experimentation; conversely, they come with reasonable pre-defined defaults if you just want to start immediately working with the structures.

Arca has complete type annotations and passes all strict static type checks provided by the MyPy type checker.

Note: Arca is provided as-is for easy-to-use, rapid prototyping and research. Several portions of this library implement cryptographic primitives that have not been reviewed by a third-party and are not recommended for use in a production environment.

Implementations

Several different classes of encrypted search algorithms have been implemented in the Arca library:

  • Encrypted multimaps. Arca provides several response-revealing and response-hiding implementations of basic encrypted multimap schemes [CJJJKRS14] in the arca.ste.emm module.

  • Encrypted dictionaries. Arca provides a simple encrypted dictionary scheme in the arca.ste.edx module.

  • Encrypted aggregate range query indexes. Arca provides several schemes for computing encrypted aggregate range query indexes via an implementation of the ARQ framework from [EMT22]. Using ARQ, structures from the plaintext data management community may be easily unified with existing structured encryption primitives to produce schemes with provable leakage profiles and security guarantees. The ARQ framework may also be used to derive equivalent schemes to those presented in [DPPDGP18].

More details about the above schemes are provided in the documentation (to be released).

Citing

If you use this library (and/or its associated documentation) in your research work, please cite the following paper:

@article{EMT22,
  author  = {Zachary Espiritu and
             Evangelia Anna Markatou and
             Roberto Tamassia},
  title   = {Time- and Space-Efficient Aggregate Range Queries over Encrypted Databases},
  journal = {Proceedings on Privacy Enhancing Technologies},
  number  = {2022.4},
  volume  = {2022},
  year    = {2022},
  note    = {To appear},
}

If you want a citation specifically to our software, you can use the following citations (but we request that you still cite the above paper):

@software{Arca,
  author  = {Zachary Espiritu},
  license = {Apache-2.0},
  title   = {Arca},
  url     = {https://github.com/cloudsecuritygroup/arca},
}

License

All code in this repository is provided as-is under the Apache License 2.0. See LICENSE for full license text.

arca's People

Contributors

zacharyespiritu avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

hpdic

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.