Skip to main content

A Python library implementing the Homomorphic Secret Sharing, applied for Oblivious Linear Evaluation (OLE), Vector-OLE and NxOLE

Project description

ObliviousPy-HSS

PyPI version License: MIT Paper: IACR ePrint

ObliviousPy-HSS is a Python library implementing Homomorphic Secret Sharing (HSS) constructions applied to Oblivious Linear Evaluation (OLE), Vector-OLE (V-OLE), and n×OLE generation, with a particular focus on silent and pre-computation–based correlation generation.

The library accompanies and implements the constructions presented in the following research paper.


📄 Related Paper

Deal out oblivious correlations: 2-depth HSS circuit for silent V-OLE generation Davide Cerutti, Stelvio Cimato Cryptology ePrint Archive, Paper 2026/104

🔗 Paper link (IACR ePrint): https://eprint.iacr.org/2026/104


🧾 Abstract

We analyzed in depth the Homomorphic Secret Sharing construction applied for Pseudorandom Correlation Function, and we obtained interesting results for various applications.

In this paper, we discuss how the PCF can be achieved using the Damgård–Jurik HSS schema by solving the distance function over a ciphertext parametric space of (\mathbb{Z}^*_{n^{\xi+1}}), performing the distributed multiplication protocol as the base building block for our PCF.

We created a weak PCF for Vector-OLE via 1-depth HSS circuit; furthermore, via what we called pre-computation with RO-less, we achieved a strong PCF for V-OLE between two parties correct against an honest-but-curious adversary (\mathcal{A}{hbc}) and fail-safe secure against an active adversary (\mathcal{A}{poly}).

We also extended our main construction by describing a silent approach in two different ways: a semi-silent variant based on a pre-sampling assumption between the parties, and a true-silent protocol execution exploiting the generation of seeds by a PRF.

As a final step, we discuss how to build an (n \times \text{OLE}) generator via our pre-computation session to craft an arbitrary amount of OLE correlation.

Our entire paper is further verified by the implementation of a complete and exhaustive library covering all HSS operations, publicly accessible and usable via pip install obliviouspy-HSS and importing import oblivious.


📚 Citation

If you use this library in your research, please cite our paper:

@misc{cryptoeprint:2026/104,
      author = {Davide Cerutti and Stelvio Cimato},
      title = {Deal out oblivious correlations: 2-depth {HSS} circuit for silent V-{OLE} generation},
      howpublished = {Cryptology {ePrint} Archive, Paper 2026/104},
      year = {2026},
      url = {https://eprint.iacr.org/2026/104}
}

🚀 Installation

You can install the library directly from PyPI:

pip install obliviouspy-HSS

🧑‍💻 Quick Start

After installation, simply import the library in Python:

import oblivious

The package exposes the core primitives and utilities required to construct and experiment with HSS-based circuits, following the designs described in the paper.


📓 Examples & Notebooks

The repository includes Jupyter notebooks demonstrating the main use cases:

  • V-OLE generation using HSS-based PCF constructions
  • n×OLE generation via a pre-computation phase, showing how to craft an arbitrary amount of OLE correlations

These notebooks are intended both as executable examples and as a companion to the theoretical constructions presented in the paper.


📦 PyPI Package

The official PyPI page is available at:

https://pypi.org/project/obliviouspy-HSS/


📜 License

This project is released under the MIT License. See the LICENSE file for full details.


🎯 Notes

This library is primarily intended for research and experimental purposes. While care has been taken to faithfully implement the constructions, it is not designed for production deployment without further hardening and independent security review.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

obliviouspy_hss-1.1.1.tar.gz (13.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

obliviouspy_hss-1.1.1-py3-none-any.whl (10.4 kB view details)

Uploaded Python 3

File details

Details for the file obliviouspy_hss-1.1.1.tar.gz.

File metadata

  • Download URL: obliviouspy_hss-1.1.1.tar.gz
  • Upload date:
  • Size: 13.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.3

File hashes

Hashes for obliviouspy_hss-1.1.1.tar.gz
Algorithm Hash digest
SHA256 59204e8e2b2c2ba5f96c89637ea2f618b61ded4a8a2ab136090f5ab8b83c761d
MD5 307f0019078ddcc92518d754c8357d73
BLAKE2b-256 1c9eb86cda665b0a8630b786427ff03ee6da6d89ca476dde519071845da9dbef

See more details on using hashes here.

File details

Details for the file obliviouspy_hss-1.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for obliviouspy_hss-1.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 0c6ef2ab1c2731fed8396e6f477533d155d459ff8f2ff1b3957987a51e8f822f
MD5 0bf317160bb9ae43e200d1bf18320e5c
BLAKE2b-256 8426b654079ffbbe757054c8f777093108eccef25c4989d5f0c9aaf15239c169

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page