If the bitcoin adress can be generated from the private key, why can'nt the bitcoin adress, not be reverse engineered, to display the private key?
There are three layers of cryptographic functions between the private key and the bitcoin address. Each layer is currently recognized as being a one-way function. In other words, given an input, it is very fast for a computer to calculate the output, but given an output, mathematicians have not yet found an efficient way to determine what the input could have been.
The first layer is ECDSA (Elliptic Curve Digital Signature Algorithm):
This algorithm depends on the fact that point multiplication is something that computers can do very quickly, but mathematicians have not yet found a way to efficiently accomplish the reverse. It is known as the "discrete logarithm problem", and if an efficient method is discovered, then it will become possible to determine a private key if you have the public key. Fortunately, the public key isn't revealed until the bitcoins that are received at an address are spent. Therefore even if weaknesses are discovered in ECDSA, depending on just how efficient a solution is discovered, bitcoins received at a new address will still be secure.
The next layer is SHA-256 (Secure Hash Algorithm 256 bit):
This algorithm creates a 256 bit digest of the input. The public key (generated from ECDSA) is used as input, and the output is fed to another hashing algorithm (RIPEMD-160). The output is unpredictable beyond the fact that it will fall between 0 and 2
256. Given the input, computers can very quickly calculate the digest, but mathematicians have not yet found a way to efficiently accomplish the reverse. If SHA-256 is broken, it will affect much more than just Bitcoin. This algorithm is widely used for security throughout the internet for passwords, and information verification. Fortunately, the public key isn't revealed until the bitcoins that are received at an address are spent, and the output of SHA-256 is obscured by the RIPEMD-160 function. Therefore, having a bitcoin address isn't enough information to calculate the public key, and breaking SHA-256 will only get you the public key which would then need ECDSA to also be broken before you could get to the private key.
As mentioned, the next layer is RIPEMD-160 (RACE Integrity Primitives Evaluation Message Digest 160 bit):
This algorithm creates a 160 bit digest of the input. The output of the previous SHA-256 is used as input, and the output is essentially your bitcoin address. The output is unpredictable beyond the fact that it will fall between 0 and 2
160. Given the input, computers can very quickly calculate the digest, but mathematicians have not yet found a way to efficiently accomplish the reverse. Fortunately, the public key isn't revealed until the bitcoins that are received at an address are spent. Therefore, if RIPEMD-160 were broken, having a bitcoin address is only enough information to calculate the output of the SHA-256 function. You'd also have to break SHA-256 just to get the public key which would then need ECDSA to also be broken before you could get to the private key.
As you can hopefully see, weakening any one (or two) of these cryptographic functions isn't enough to steal bitcoins. Meanwhile, if weaknesses ever are discovered in any of these algorithms, there would be plenty of time for Bitcoin to replace the weakened function with a newer more secure algorithm. To get from a bitcoin address to a private key, someone would need to very suddenly discover extremely efficient solutions to reverse all three algorithms. Since they don't have much in common, this would require some significant efforts in very different fields of study with some extremely lucky timing.
It isn't realistically going to happen.