How are the public key, private key and the signature decoded to the actual ecc keys? How many bytes are these decoded keys?
Private Keys are typically encoded using WIF (Wallet Import Format). The Public Keys are likewise encoded in WIF format, but with the EOS prefix added to them.
To obtain the actual ECC keys, the keys are decoded, verified against their embedded checksums, then converted into their binary formats.
The encryption is sha256 hash with a 32 byte buffer or string with encoding defaulting to UTF-8.
Here's a link to the official repository for the elliptic curve functions which should be able to give you some more insight into how it works: https://github.com/EOSIO/eosjs-ecc
Further if your question is relating the the registration of the tokens, I highly recommend this offline guide by EOSNY.