Bitcoin uses (I think) three 'cryptographic hash functions' called ECDSA, RIPEMD-160 and SHA256.
Slight correction - ECDSA is not a hash function, but an elliptic curve encryption algorithm. The main difference is hash functions aren't meant to be reversible (taking the hash and finding the original input), where encryption functions are (using a password, we can derive the original input).
To address the original post, the best mathematicians in the world have been looking at ECDSA for over 15 years, and beyond implementation errors (which are easy with any encryption algorithm), it has proven to be secure. Here's the wikipedia section on the implementation errors that have compromised security in the past:
https://en.wikipedia.org/wiki/Elliptic_Curve_DSA#SecurityBitcoin uses OpenSSL's implementation of ECDSA:
https://github.com/bitcoin/bitcoin/blob/master/doc/build-unix.mdhttps://www.openssl.org/docs/crypto/ecdsa.htmlThe OpenSSL codebase has had much more scrutiny than the bitcoin source code because it is literally used EVERYWHERE on the internet. Sure, there could be a flaw in it (another implementation error), but even if that happens, as we saw with the android wallets, exploiting such a flaw does NOT destroy bitcoin, as these implementation errors are generally easily fixed and remedied before attackers can successfully exploit many users.
Many warn that quantum computing will destroy bitcoin, and that the quantum computers that are being released today will assist with this. Last year, they were able to factor the number 21 (yes, that's 7 * 3)!
https://en.wikipedia.org/wiki/Shor%27s_algorithmSo, needless to say, they have a long way to go with that technology before new schemes will need to be developed to combat it. We're talking tens of years.
ALSO, the public key is not known for addresses that have no spent coins. This would be a massive problem if there were any way to use the public key as an input to crack the private key (or use it to verify). If you're paranoid, send your coins to cold storage and only spend them from that address once - most clients do this anyway by generating a "change" address for every transaction instead of reusing the sending address.
TL;DR
The algorithms used in bitcoin are state of the art, have withstood much scrutiny in the last 2 decades from the best mathematicians in the world, and there are no known security issues with them.