Your generated key pair is securely stored on IPFS. The IPFS hash is associated with your public Ethereum address on a smart contract. Other users fetch your IPFS hash, and as follows, your public key, via that smart contract.

Did this answer your question?