Cryptography is the science of encoding information in such a way as to allow easy access for the creator and intended recipient, but make it difficult for third parties to intercept. Modern cryptographic algorithms draw from mathematics and computer science. A common misconception about cryptology is that cryptographic algorithms are designed not to be broken. In fact, it is very difficult to design an algorithm that is impossible to solve, given unlimited computing power and time. Modern algorithms instead use the principal of [[Computational hardness]] to determine its "computational security"; that is, [[Security by difficulty]]. Most algorithms are possible, but not feasible, to crack. [^wiki] ## Primitives, algorithms, systems. Cryptographical primitives are the basic unit of cryptography with basic cryptographic properties [^wiki]. Algorithms are more complex and can be made up of one or more primitives as well as one or more algorithms. However, in practice, the distinction is arbitrary. Cryptosystems are full implementations of cryptographic primitives and algorithms. ## Examples of cryptosystems ### [[RSA encryption]] ### Schnorr signature ### El-Gamal encryption ### [[PGP encryption method]] ### Electronic cash ### Signcryption ## Computational difficulty algorithms ### Integer factorization of semiprimes This algorithm is based on the fact that it is easy to multiple two numbers together, but it's difficult to start with the product and find the prime or semiprime factors. ### Discrete logarithms ### Elliptic curve-based Elliptic curve-based algorithms are more difficult to break than factoring-based ones, and so factoring-based techniques must use longer keys to approach the same level of computational hardness. ## Truly unbreakable ciphers - The one-time pad, by Claude Shannon at Bell Labs during WWII. [^wiki]: _Cryptography - Wikipedia_. Retrieved from [https://en.wikipedia.org/wiki/Cryptography](https://en.wikipedia.org/wiki/Cryptography) . [[Cryptography - Wikipedia]]