libtom / libtomcrypt

LibTomCrypt is a fairly comprehensive, modular and portable cryptographic toolkit that provides developers with a vast array of well known published block ciphers, one-way hash functions, chaining modes, pseudo-random number generators, public key cryptography and a plethora of other routines.
https://www.libtom.net
Other
1.51k stars 449 forks source link

Wishlist: Shamir Shared Secret and ECIES #645

Open pakal opened 2 months ago

pakal commented 2 months ago

Thanks for the awesome (and low footprint) lib :)

Some more wishlist for the projet ^^

sjaeckel commented 2 months ago

Thanks for the awesome (and low footprint) lib :)

:)

  • Shamir shared secret, e.g. compatible with Pycryptodome's ones

Yeah, that would be nice.

  • Providing an alternative to RSA for Public key encryption, for example the powerful but little-implemented ECIES

There exists ecc_encrypt_key() resp. ecc_decrypt_key() which claims

https://github.com/libtom/libtomcrypt/blob/f7e6519fae1e11ff5ff9d36c84101a673002133b/doc/crypt.tex#L5764-L5766

Does this work for you?

pakal commented 2 months ago

Here are some references for low-dependency Shamir that I found, just in case it helps

Tested by me on MSP430

https://github.com/fletcher/c-sss ((MIT LICENSE, works)

https://github.com/rbaron/secret (MIT LICENSE, works but uses big matrix to reverse polynomial)

Untested by me

https://github.com/MrJoy/ssss (GNU GENERAL PUBLIC LICENSE, needs GMP)

https://github.com/bertrand-maujean/lib_sss (GNU AFFERO GENERAL PUBLIC LICENSE)

pakal commented 2 months ago

Thanks a lot for the pointer to ecc_encrypt_key(), I had completely missed this one :)

We'd need a quite portable/standard algorithm (compatible with Python implementations too) so I was thinking more of ECIES or the likes, but this one could be a valuable fallback solution, if linked to all languages.