A computer encryption program, no matter how good, will not prevent an attacker from going through someone's garbage. The good news about cryptography is that we already have the algorithms and protocols we need to secure our systems. Companies often get the easy part wrong, and implement insecure algorithms and protocols. The best protocol ever invented can fall to an easy attack if no one pays attention to the more complex and subtle implementation issues. Netscape's security fell to a bug in the random-number generator.
Security is a chain, and a single weak link can break the entire system.
Once you find a security flaw, you can fix it. But finding the flaws in a product can be incredibly difficult. Security is different from any other design requirement, because functionality does not equal quality. If a word processor prints successfully, you know that the print function works. Security is different, just because a safe recognizes the correct combination does not mean that its contents are secure from a safecracker.