In this first post I want to dispel the myth that
all cryptography can be broken in principle.
With the Snowden Affair exposing government surveillance programs, a myth was born, stating (more or less) that government agencies are all-powerful and are able to read all encrypted messages or forge cryptographic signatures on the internet. For this reason, laypeople sometimes think that cryptography is breakable in principle. However:
https://en.wikipedia.org/wiki/Cryptography said:
Modern cryptography is heavily based on mathematical theory and computer science practice; cryptographic algorithms are designed around computational hardness assumptions, making such algorithms hard to break in practice by any adversary. It is theoretically possible to break such a system, but it is infeasible to do so by any known practical means.
Computational hardness has physical implications. Computation requires energy input, and theoretical lower limits for computation have been established: See
Landauer's principle and the
Margolus–Levitin theorem for quantum computing. So, by increasing the difficulty of the computation, one increases the minimum energy required (electricity, heat), which may put the solution to the problem out of reach for any earthly agency.
But there is one cryptographic method that has been mathematically proven to be completely secure:
https://en.wikipedia.org/wiki/Cryptography said:
There exist information-theoretically secure schemes that provably cannot be broken even with unlimited computing power—an example is the one-time pad.
The One-time pad...
https://en.wikipedia.org/wiki/One-time_pad said:
... is an encryption technique that cannot be cracked. [...] If the key is truly random, is at least as long as the plaintext, is never reused in whole or in part, and is kept completely secret, then the resulting ciphertext will be impossible to decrypt or break.
The One-time pad is not very practical because the key has to be as long as the message, and the key has to be exchanged in a secure way (e.g. from person to person in a code book, which has traditionally been done in warfare).
Different cryptographic algorithms have different properties. Some algorithms are mathematically/theoretically impossible to break (and "mathematics can't be bribed"), some are 'only' practically impossible to break, and some are of low quality that can be broken with reasonable effort by someone with enough resources.