# Cryptography - Wikipedia

URL:: https://en.wikipedia.org/wiki/Cryptography
Author:: wikipedia.org
## Highlights
> Modern cryptography is heavily based on mathematical theory and computer science practice; cryptographic [algorithms](https://en.wikipedia.org/wiki/Algorithm) are designed around [computational hardness assumptions](https://en.wikipedia.org/wiki/Computational_hardness_assumption), making such algorithms hard to break in actual practice by any adversary. While it is theoretically possible to break into a well-designed system, it is infeasible in actual practice to do so. Such schemes, if well designed, are therefore termed "computationally secure"; theoretical advances, e.g., improvements in [integer factorization](https://en.wikipedia.org/wiki/Integer_factorization) algorithms, and faster computing technology require these designs to be continually reevaluated, and if necessary, adapted. There exist [information-theoretically secure](https://en.wikipedia.org/wiki/Information_theoretic_security) schemes that provably cannot be broken even with unlimited computing power, such as the [one-time pad](https://en.wikipedia.org/wiki/One-time_pad), but these schemes are much more difficult to use in practice than the best theoretically breakable but computationally secure schemes. ([View Highlight](https://read.readwise.io/read/01fdjyg036dpjzrk6jqmbj5gt4))
> It is a common misconception that every encryption method can be broken. In connection with his WWII work at [Bell Labs](https://en.wikipedia.org/wiki/Bell_Labs), [Claude Shannon](https://en.wikipedia.org/wiki/Claude_Shannon) proved that the [one-time pad](https://en.wikipedia.org/wiki/One-time_pad) cipher is unbreakable, provided the key material is truly [random](https://en.wikipedia.org/wiki/Statistical_randomness), never reused, kept secret from all possible attackers, and of equal or greater length than the message. ([View Highlight](https://read.readwise.io/read/01fdjynbk829qhp6v674ycprdc))
> Public-key algorithms are based on the computational difficulty of various problems. The most famous of these are the difficulty of [integer factorization](https://en.wikipedia.org/wiki/Integer_factorization) of [semiprimes](https://en.wikipedia.org/wiki/Semiprime) and the difficulty of calculating [discrete logarithms](https://en.wikipedia.org/wiki/Discrete_logarithm), both of which are not yet proven to be solvable in [polynomial time](https://en.wikipedia.org/wiki/P_(complexity)) using only a classical [Turing-complete](https://en.wikipedia.org/wiki/Turing_completeness) computer. Much public-key cryptanalysis concerns designing algorithms in P that can solve these problems, or using other technologies, such as [quantum computers](https://en.wikipedia.org/wiki/Quantum_computing). For instance, the best-known algorithms for solving the [elliptic curve-based](https://en.wikipedia.org/wiki/Elliptic_curve_cryptography) version of discrete logarithm are much more time-consuming than the best-known algorithms for factoring, at least for problems of more or less equivalent size. Thus, other things being equal, to achieve an equivalent strength of attack resistance, factoring-based encryption techniques must use larger keys than elliptic curve techniques. For this reason, public-key cryptosystems based on elliptic curves have become popular since their invention in the mid-1990s. ([View Highlight](https://read.readwise.io/read/01fdjyq58h7xjw1ra7c931y52f))
> Much of the theoretical work in cryptography concerns [cryptographic *primitives*](https://en.wikipedia.org/wiki/Cryptographic_primitive)—algorithms with basic cryptographic properties—and their relationship to other cryptographic problems. ([View Highlight](https://read.readwise.io/read/01fdjymjr0jvyp90eqz7w6n935))
> Note, however, that the distinction between cryptographic *primitives* and cryptosystems, is quite arbitrary; for example, the [RSA](https://en.wikipedia.org/wiki/RSA_(algorithm)) algorithm is sometimes considered a cryptosystem, and sometimes a primitive. Typical examples of cryptographic primitives include [pseudorandom functions](https://en.wikipedia.org/wiki/Pseudorandom_function), [one-way functions](https://en.wikipedia.org/wiki/One-way_function), etc. ([View Highlight](https://read.readwise.io/read/01fdjymdq8hkzj3p5d2e8temqt))
> One or more cryptographic primitives are often used to develop a more complex algorithm, called a cryptographic system, or *cryptosystem*. ([View Highlight](https://read.readwise.io/read/01fdjyk7nw91e6f10ry9ev68ak))
> As the distinction between primitives and cryptosystems is somewhat arbitrary, a sophisticated cryptosystem can be derived from a combination of several more primitive cryptosystems. In many cases, the cryptosystem's structure involves back and forth communication among two or more parties in space (e.g., between the sender of a secure message and its receiver) or across time (e.g., cryptographically protected [backup](https://en.wikipedia.org/wiki/Backup) data). Such cryptosystems are sometimes called *[cryptographic protocols](https://en.wikipedia.org/wiki/Cryptographic_protocol)*. ([View Highlight](https://read.readwise.io/read/01fdjyknb8z4ct39zgn5dhgyc1))
> Some widely known cryptosystems include [RSA encryption](https://en.wikipedia.org/wiki/RSA_(algorithm)), [Schnorr signature](https://en.wikipedia.org/wiki/Schnorr_signature), [El-Gamal encryption](https://en.wikipedia.org/wiki/ElGamal_encryption), [PGP](https://en.wikipedia.org/wiki/Pretty_Good_Privacy), etc. More complex cryptosystems include [electronic cash](https://en.wikipedia.org/wiki/Electronic_cash)[[50]](https://en.wikipedia.org/wiki/Cryptography) systems, [signcryption](https://en.wikipedia.org/wiki/Signcryption) systems, etc. Some more 'theoretical'[*[clarification needed](https://en.wikipedia.org/wiki/Wikipedia:Please_clarify)*] cryptosystems include [interactive proof systems](https://en.wikipedia.org/wiki/Interactive_proof_system),[[51]](https://en.wikipedia.org/wiki/Cryptography) (like [zero-knowledge proofs](https://en.wikipedia.org/wiki/Zero-knowledge_proof)),[[52]](https://en.wikipedia.org/wiki/Cryptography) systems for [secret sharing](https://en.wikipedia.org/wiki/Secret_sharing),[[53]](https://en.wikipedia.org/wiki/Cryptography)[[54]](https://en.wikipedia.org/wiki/Cryptography) etc. ([View Highlight](https://read.readwise.io/read/01fdjyjp0da2y6npr5h8sy2qfy))
> An IoT environment requires strict constraints on power consumption, processing power, and security. ([View Highlight](https://read.readwise.io/read/01fdjyj69d35wkj5kraa30s7yk))
---
Title: Cryptography - Wikipedia
Author: wikipedia.org
Tags: readwise, articles
date: 2024-01-30
---
# Cryptography - Wikipedia

URL:: https://en.wikipedia.org/wiki/Cryptography
Author:: wikipedia.org
## AI-Generated Summary
Cryptography, or cryptology (from Ancient Greek: κρυπτός, romanized: kryptós "hidden, secret"; and γράφειν graphein, "to write", or -λογία -logia, "study", respectively[1]), is the practice and study of techniques for secure communication in the presence of adversarial behavior.
## Highlights
> Modern cryptography is heavily based on mathematical theory and computer science practice; cryptographic [algorithms](https://en.wikipedia.org/wiki/Algorithm) are designed around [computational hardness assumptions](https://en.wikipedia.org/wiki/Computational_hardness_assumption), making such algorithms hard to break in actual practice by any adversary. While it is theoretically possible to break into a well-designed system, it is infeasible in actual practice to do so. Such schemes, if well designed, are therefore termed "computationally secure"; theoretical advances, e.g., improvements in [integer factorization](https://en.wikipedia.org/wiki/Integer_factorization) algorithms, and faster computing technology require these designs to be continually reevaluated, and if necessary, adapted. There exist [information-theoretically secure](https://en.wikipedia.org/wiki/Information_theoretic_security) schemes that provably cannot be broken even with unlimited computing power, such as the [one-time pad](https://en.wikipedia.org/wiki/One-time_pad), but these schemes are much more difficult to use in practice than the best theoretically breakable but computationally secure schemes. ([View Highlight](https://read.readwise.io/read/01fdjyg036dpjzrk6jqmbj5gt4))
> It is a common misconception that every encryption method can be broken. In connection with his WWII work at [Bell Labs](https://en.wikipedia.org/wiki/Bell_Labs), [Claude Shannon](https://en.wikipedia.org/wiki/Claude_Shannon) proved that the [one-time pad](https://en.wikipedia.org/wiki/One-time_pad) cipher is unbreakable, provided the key material is truly [random](https://en.wikipedia.org/wiki/Statistical_randomness), never reused, kept secret from all possible attackers, and of equal or greater length than the message. ([View Highlight](https://read.readwise.io/read/01fdjynbk829qhp6v674ycprdc))
> Public-key algorithms are based on the computational difficulty of various problems. The most famous of these are the difficulty of [integer factorization](https://en.wikipedia.org/wiki/Integer_factorization) of [semiprimes](https://en.wikipedia.org/wiki/Semiprime) and the difficulty of calculating [discrete logarithms](https://en.wikipedia.org/wiki/Discrete_logarithm), both of which are not yet proven to be solvable in [polynomial time](https://en.wikipedia.org/wiki/P_(complexity)) using only a classical [Turing-complete](https://en.wikipedia.org/wiki/Turing_completeness) computer. Much public-key cryptanalysis concerns designing algorithms in P that can solve these problems, or using other technologies, such as [quantum computers](https://en.wikipedia.org/wiki/Quantum_computing). For instance, the best-known algorithms for solving the [elliptic curve-based](https://en.wikipedia.org/wiki/Elliptic_curve_cryptography) version of discrete logarithm are much more time-consuming than the best-known algorithms for factoring, at least for problems of more or less equivalent size. Thus, other things being equal, to achieve an equivalent strength of attack resistance, factoring-based encryption techniques must use larger keys than elliptic curve techniques. For this reason, public-key cryptosystems based on elliptic curves have become popular since their invention in the mid-1990s. ([View Highlight](https://read.readwise.io/read/01fdjyq58h7xjw1ra7c931y52f))
> Much of the theoretical work in cryptography concerns [cryptographic *primitives*](https://en.wikipedia.org/wiki/Cryptographic_primitive)—algorithms with basic cryptographic properties—and their relationship to other cryptographic problems. ([View Highlight](https://read.readwise.io/read/01fdjymjr0jvyp90eqz7w6n935))
> Note, however, that the distinction between cryptographic *primitives* and cryptosystems, is quite arbitrary; for example, the [RSA](https://en.wikipedia.org/wiki/RSA_(algorithm)) algorithm is sometimes considered a cryptosystem, and sometimes a primitive. Typical examples of cryptographic primitives include [pseudorandom functions](https://en.wikipedia.org/wiki/Pseudorandom_function), [one-way functions](https://en.wikipedia.org/wiki/One-way_function), etc. ([View Highlight](https://read.readwise.io/read/01fdjymdq8hkzj3p5d2e8temqt))
> One or more cryptographic primitives are often used to develop a more complex algorithm, called a cryptographic system, or *cryptosystem*. ([View Highlight](https://read.readwise.io/read/01fdjyk7nw91e6f10ry9ev68ak))
> As the distinction between primitives and cryptosystems is somewhat arbitrary, a sophisticated cryptosystem can be derived from a combination of several more primitive cryptosystems. In many cases, the cryptosystem's structure involves back and forth communication among two or more parties in space (e.g., between the sender of a secure message and its receiver) or across time (e.g., cryptographically protected [backup](https://en.wikipedia.org/wiki/Backup) data). Such cryptosystems are sometimes called *[cryptographic protocols](https://en.wikipedia.org/wiki/Cryptographic_protocol)*. ([View Highlight](https://read.readwise.io/read/01fdjyknb8z4ct39zgn5dhgyc1))
> Some widely known cryptosystems include [RSA encryption](https://en.wikipedia.org/wiki/RSA_(algorithm)), [Schnorr signature](https://en.wikipedia.org/wiki/Schnorr_signature), [El-Gamal encryption](https://en.wikipedia.org/wiki/ElGamal_encryption), [PGP](https://en.wikipedia.org/wiki/Pretty_Good_Privacy), etc. More complex cryptosystems include [electronic cash](https://en.wikipedia.org/wiki/Electronic_cash)[[50]](https://en.wikipedia.org/wiki/Cryptography) systems, [signcryption](https://en.wikipedia.org/wiki/Signcryption) systems, etc. Some more 'theoretical'[*[clarification needed](https://en.wikipedia.org/wiki/Wikipedia:Please_clarify)*] cryptosystems include [interactive proof systems](https://en.wikipedia.org/wiki/Interactive_proof_system),[[51]](https://en.wikipedia.org/wiki/Cryptography) (like [zero-knowledge proofs](https://en.wikipedia.org/wiki/Zero-knowledge_proof)),[[52]](https://en.wikipedia.org/wiki/Cryptography) systems for [secret sharing](https://en.wikipedia.org/wiki/Secret_sharing),[[53]](https://en.wikipedia.org/wiki/Cryptography)[[54]](https://en.wikipedia.org/wiki/Cryptography) etc. ([View Highlight](https://read.readwise.io/read/01fdjyjp0da2y6npr5h8sy2qfy))
> An IoT environment requires strict constraints on power consumption, processing power, and security. ([View Highlight](https://read.readwise.io/read/01fdjyj69d35wkj5kraa30s7yk))