A Bitcoin wallet can handle multiple private keys. In ECC, you can have 2^256 private keys, and for each key, you can have 2^256 public keys. Assuming that's right (please correct me if I'm wrong), you generate a Bitcoin address basically by hashing a public key with a RIPEMD160 hash function, which can produce 2^160 different addresses.
Is the relationship between the Bitcoin address and the public key 1:1 (one address for each public key)? If not, how is it possible to connect more than one address to a single public key, since this "connection" is made through hash functions and the hash for one entry (the public key) doesn't change unless you change the entry itself?
Thanks in advance.