github.com/dsprenkels/sss-go (go): Package sss implements Shamir secret sharing over GF(256). The API exposes two kinds of functions: functions for "shares" and functions for "keyshares".  Both will split and recombine secret strings of data with a certain threshold, but when using normal shares, the secret is first encapsulated in an AEAD crypto_secretbox (Salsa20/Poly1305 from tweetnacl). This provides cryptographic integrity and prevents tampering with the shares. So for splitting a regular secret string, you should just use CreateShares and CombineShares.  However, CreateShares takes 64 bytes and produces shares that are 113 bytes long. If this is not suitable for you, you can choose to use CreateKeyshares. This function takes 32 bytes, and produces shares of just 33 bytes long. The catch is that you can *only* use this for sharing cryptographic keys. In other words: Any data that is shared by CreateKeyshares has to be uniformly random, otherwise it may be possible for share-holders to tamper with their shares in order to craft a different secret.
Keywords: cryptography|shamir-secret-sharing