Skip to content

Why start with a JavaScript package?

My decision to start with a JavaScript package came from thorough online research, leading me to the Shamir Secret Sharing Scheme website. This site offered a straightforward and practical online tool for splitting and combining secrets, with the added benefit of offline usability.

The website not only provided the source code but also offered various links, including the JavaScript library it used to implement Shamir's secret sharing. Additionally, there was a documented security audit conducted on the open-source JavaScript library, instilling confidence in its reliability.

One significant challenge I encountered with Shamir's secret sharing implementations are the differing outputs (and inputs) across various programming languages and code bases. Despite the plethora of implementations and approaches, they simply fail to interoperate.

I'm certain that someone somewhere, a college programmer studying security, is currently crafting their own implementation of Shamir's secret sharing.

While I dug into different implementations of Shamir's shared secrets, gaining valuable insights along the way, I found myself drawn back to the secrets.js-grempe JavaScript package. Its advantages, including the security audit and its use in a user-friendly offline website, were compelling factors in my decision.

And so...

I began exploring how to create a Python version that could seamlessly interoperate with the JavaScript package.