Skip to content

crypto-edu-pl/on-off-oram

oram Build Status

This library implements an Oblivious RAM (ORAM) for secure enclave applications.

Oblivious RAM (ORAM) is a technique that allows a client to fully hide its pattern of accesses to memory stored by an untrusted third party, such as a cloud server. ORAM is costly, with a proven asymptotically logarithmic overhead that is at least (10 \times) to (100 \times) in practice. However, in some applications only some of the accesses to the untrusted memory may be sensitive. In this work, we introduce ON-OFF ORAM: an extension to ORAM schemes that allows the client to avoid the unnecessary overhead of protecting non-sensitive accesses by switching between two modes: ON, in which the client's memory accesses are oblivious just like in regular ORAM, and OFF, in which they are not. We implement ON-OFF Path ORAM---an application of the ON-OFF extension to Path ORAM, suitable for protecting the memory accesses of enclaves---and show performance improvements both in online and total overhead.

This crate assumes that ORAM clients are running inside a secure enclave architecture that provides memory encryption. It does not perform encryption-on-write and thus is not secure without memory encryption.

⚠️ Warning: This implementation has not been audited. Use at your own risk!

Documentation


Minimum Supported Rust Version

Rust 1.81 or higher.

Resources

Contributors

The authors of this code are Woiciech Wisniewski ([@wciszewski] and Emanuele Ragnoli[@u2135]

Code Organization

License

This project is dual-licensed under either the MIT license or the Apache License, Version 2.0. You may select, at your option, one of the above-listed licenses.

About

No description, website, or topics provided.

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •