Introducing goUmbral

A Golang implementation of split-key threshold proxy re-encryption

Introducing goUmbral

A Golang implementation of split-key threshold proxy re-encryption

Today, we’re happy to announce the development of goUmbral and the release of our Golang cryptography arithmetic layer (repo).

After pyUmbral’s great reception, we garnered a lot of inbound interest in Go (and other) implementations of Umbral, our threshold proxy re-encryption scheme, and we’ve made significant progress on this front..

Inspector Gadget uses goUmbral (probably)

goUmbral Development

The development process will focus on taking what works from pyUmbral and translating it into Go, which has unique benefits of speed while still maintaining readability. While goUmbral is in an early stage of development, we believe in a transparent development process and we invite our partners to actively contribute to its development.

Due to the early, pre-audit state of the library we don’t recommend using it in production environments quite yet… vulnerabilities may exist and we cannot make security guarantees (if you find a security issue, please email Note that the API is not yet frozen and functions may be changed without warning.

What is the cryptography arithmetic layer?

The cryptography arithmetic layer is the lowest level of the goUmbral library. It allows us to develop and build the Umbral cryptosystem in a safe, usable, and developer friendly manner. We consider this to be the secret sauce for any implementation of Umbral.

The cryptography arithmetic layer developed in pyUmbral was the first step in building the Umbral cryptosystem. We quickly noticed how easy and simple it was to prototype other ECC-based cryptosystems using it. We think goUmbral offers similar benefits and, for that reason, we are excited to share it with the Go ecosystem.

What license is goUmbral?

NuCypher is committed to free and open source software and goUmbral is licensed under the FSF’s GPLv3.

Issues and Bugs

If you find any issues or bugs with goUmbral feel free to make an issue on Github or even a Pull Request. As stated above, if you find a security issue, please email rather than make an issue. If you would like to discuss goUmbral development or ask a question, please join our development Discord server and talk with us.