In IOTA a private/public key is derived deterministically from the seed, security level, and an index. As far as I understand the mechanism, an address is in fact the public key.

In typical asymmetric cryptography, the public key can be used to encrypt data for the receiver. Does the same apply for the IOTA address? Can I use it to encrypt data for the receiver? He then uses his private key to decrypt the message.


Short answer: No.

Long answer: Whether a public key can be used for encryption, verifying signatures, or both, heavily depends on the used cryptographic algorithm.

RSA is an algorithm where the same public keys can be used both for encryption and for verifying signatures. (To be honest, it is the only one I can think of right now).

Other cryptographic algorithms only support either signatures or encryption. DSA, ECDSA, & co. only support signing, while ElGamal only supports encryption.

In scenarios where both encryption and signing is required, sometimes two keys of different algorithms get combined and then called a "single" public key (e.g. when you use PGP or GnuPG with DSA/ElGamal keys).

Lamport keys or Winternitz keys (which are a special use case of Lamport signatures) do not support encryption. Therefore, if you want to encrypt something to your address, the recipient would somehow need to sign an encryption key (of a different algorithm) with his address first. Which is a bad idea if you also want to use it to spend your funds, as you can only safely sign once with the same key.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.