Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Wishlist: Shamir Shared Secret and ECIES #645

Open
pakal opened this issue Apr 19, 2024 · 3 comments
Open

Wishlist: Shamir Shared Secret and ECIES #645

pakal opened this issue Apr 19, 2024 · 3 comments

Comments

@pakal
Copy link

pakal commented Apr 19, 2024

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

Some more wishlist for the projet ^^

  • Shamir shared secret, e.g. compatible with Pycryptodome's ones
  • Providing an alternative to RSA for Public key encryption, for example the powerful but little-implemented ECIES
@sjaeckel
Copy link
Member

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

libtomcrypt/doc/crypt.tex

Lines 5764 to 5766 in f7e6519

ECDH Encryption is performed by producing a random key, hashing it, and XOR'ing the digest against the plaintext. It is not strictly ANSI X9.63 compliant
but it is very similar. It has been extended by using an ASN.1 sequence and hash object identifiers to allow portable usage. The following function
encrypts a short string (no longer than the message digest) using this technique:

Does this work for you?

@pakal
Copy link
Author

pakal commented May 1, 2024

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
Copy link
Author

pakal commented May 1, 2024

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants