What you will learn in Real-World Cryptography
Chapter by chapter
Concepts explained in this book
- TLSTLS is the Transport Layer Security protocol for securing network communications through authentication, confidentiality, and integrity.
- private keyA private key is the secret value in a public-key cryptographic key pair used for decryption or other private-key operations.
- cryptographic primitiveA fundamental cryptographic building block, such as encryption, hashing, or digital signatures, that provides a basic security function.
- certificateA digital certificate is a signed data structure that binds an identity or domain name to a public key.
- digital signatureA digital signature is a cryptographic value computed with a private signing key and verified with the corresponding public key to authenticate data or its signer.
- hash functionA hash function maps input data to a fixed-size output and may provide cryptographic properties such as one-wayness and collision resistance.
- public keyA value in a public-key cryptosystem that may be distributed openly for verification or encryption operations.
- certification authorityA certificate authority is an entity that issues and digitally signs certificates binding public keys to identities or domains.
- nonceA nonce is a value intended to distinguish cryptographic operations and, in signature generation, is typically required to be unique for each signature under a key.
- BitcoinBitcoin is a decentralized cryptocurrency system that records and validates monetary transactions through a peer-to-peer network and cryptographic mechanisms.
- cryptographic hashA hash function designed to provide security properties such as collision resistance, pre-image resistance, and second pre-image resistance.
- certificate chainAn ordered set of certificates linking a subject certificate through intermediate certificate authorities to a trusted root.
- pre-shared keyA secret key provisioned to communicating parties before a protocol session begins and shared for use in cryptographic operations.
- session resumptionA protocol mechanism that reestablishes a secure session using previously established credentials or keying material without performing a complete key exchange.
- TLS handshakeA TLS protocol phase in which peers negotiate parameters, establish keying material, authenticate participants, and derive session keys.
- tls negotiationThe TLS handshake process in which peers select mutually supported protocol versions and cryptographic algorithms.
- public key cryptographyAsymmetric encryption is an encryption technique in which a public key encrypts data and a corresponding private key decrypts it.
- zero-knowledge proofA zero-knowledge proof is a cryptographic proof in which a prover demonstrates that a statement is true without revealing the underlying secret information beyond its validity.
- quantum computerA quantum computer is a computing device that processes information using physical phenomena described by quantum mechanics.
- second pre-image resistanceSecond pre-image resistance is the property that, given an input and its hash output, it is computationally infeasible to find a different input with the same output.
- key exchangeA key exchange is a cryptographic protocol in which parties establish a common secret without directly transmitting that secret.
- blockA block is a blockchain record containing metadata and a cryptographic commitment to a set of transactions or other ledger entries.
- proof of workProof of work is a consensus technique in which participants demonstrate computational effort by finding a hash satisfying a difficulty condition.
- elliptic-curve diffie-hellmanElliptic Curve Diffie-Hellman is a public-key key exchange method based on elliptic-curve cryptography that lets parties derive a shared secret.
- message authentication codeAn authentication tag is the deterministic output of a keyed authentication function used to verify a message's integrity and authenticity.
- encryptionEncryption is the transformation of plaintext into ciphertext so that the information is concealed from unauthorized parties.
- pseudo-random number generatorA pseudorandom number generator is a deterministic algorithm that expands a secret seed into a sequence of computationally generated values designed to resemble random values.
- authenticated encryption with associated dataAuthenticated encryption with associated data is a cryptographic construction that encrypts plaintext, authenticates the ciphertext, and authenticates optional associated data that remains unencrypted.
- cryptographyThe practice and study of protecting information and communications against unauthorized access or manipulation using mathematical techniques.
- cryptographic algorithmAn algorithm designed to provide security properties such as confidentiality, integrity, authentication, or non-repudiation for information or communications.
- cryptographic protocolA protocol that uses cryptographic mechanisms to provide security properties such as confidentiality, authentication, or integrity.
- zk-SNARKA zero-knowledge succinct non-interactive argument of knowledge that lets a prover demonstrate knowledge of a computation's secret witness with a short proof that can be checked efficiently.
- public-private key pairA key pair is a linked public key and private key used together in public-key cryptography.
- post-handshake phaseThe handshake/post-handshake paradigm is a protocol structure that separates initial negotiation and authentication from subsequent communication after the handshake completes.
- subgroupA subgroup is a subset of a group that is itself a group under the same operation.
- cryptographic libraryA cryptographic library is reusable software that provides implementations of cryptographic algorithms and protocols through programming interfaces.
- cryptographic implementationA cryptographic implementation is executable software that realizes a cryptographic algorithm, construction, or protocol.
- Byzantine fault-tolerant consensus algorithmA Byzantine fault-tolerant consensus protocol is a distributed consensus protocol that can reach agreement despite some participants behaving arbitrarily or maliciously.
- homomorphic encryptionHomomorphic encryption is encryption that permits specified computations on ciphertexts whose decrypted results correspond to computations on the underlying plaintexts.
- Signal protocolThe Signal protocol is an end-to-end encrypted messaging protocol that combines authenticated key exchange, ratcheted key evolution, and encrypted message transport.
- man-in-the-middle attackA man-in-the-middle attack is an active attack in which an adversary intercepts and alters communication between two parties while impersonating each party to the other.
- symmetric key encryptionSymmetric encryption is an encryption technique in which the same secret key, or equivalent shared secret, is used for encryption and decryption.
- blockchainA block chain is an ordered sequence of linked blocks extending one another across protocol rounds.
- PGPOpenPGP is an open standard for encrypting and signing messages and other data using public-key and symmetric cryptography.
- authenticationA process for verifying the identity of a human user using credentials such as passwords or cryptographic keys.
- mutually authenticated key exchangeA mutually authenticated key exchange is an authenticated key exchange in which both participants authenticate each other while establishing a shared secret.
- symmetric password-authenticated key exchangeA symmetric password-authenticated key exchange is a password-based key exchange in which both parties use symmetric password-derived information rather than a server-held asymmetric password verifier.
- identity elementAn identity element is an element that leaves every other element unchanged when combined with it under the group's operation.
- forward secrecyMessage-level forward secrecy is the property that compromise of a current message key does not reveal previously protected messages, assuming those messages are no longer available in cleartext.
- confidentialityConfidentiality is the security property that prevents unauthorized access to or disclosure of data or identities.
- trusted platform moduleA Trusted Platform Module is a standardized hardware security component that provides protected storage and cryptographic functions for platform integrity and authentication.
- secure elementA secure element is a hardware security component that stores secrets and performs cryptographic operations as a coprocessor in a larger system.
- smart cardA smart card is a small computing device embedded in a card form factor with processing, memory, input/output, and often cryptographic hardware.
- group orderThe order of a finite group is the number of elements it contains.
- Curve25519Curve25519 is a named elliptic curve designed for efficient elliptic-curve Diffie-Hellman key exchange and approximately 128 bits of classical security.
- randomnessRandomness is the property of outcomes or data being difficult to predict and lacking a discernible deterministic pattern.
- hardware security moduleA hardware security module is a specialized device that generates, stores, and uses cryptographic keys while protecting them from unauthorized extraction.
- differential power analysisDifferential power analysis is a side-channel attack that statistically analyzes variations in a device's power consumption across cryptographic operations to recover secret-dependent information.
- post-compromise securityProtocol backward secrecy is the property that fresh entropy after a compromise can restore protection against an attacker who no longer controls the communicating device.
- scalar multiplicationScalar multiplication is the operation of adding an elliptic curve point to itself a specified number of times.
- Diffie–Hellman key exchangeDiffie-Hellman key exchange is a public-key protocol that lets parties establish a shared secret over an insecure channel.
- defense in depthA defense-in-depth technique is a security measure that adds an independent protective layer to reduce the impact of failures or compromises.
- RSARSA is a public-key cryptosystem based on the difficulty of factoring large composite integers and supporting encryption and digital signatures.
- short authenticated stringA short authenticated string is a compact human-readable value used to verify that two devices derived or exchanged the same cryptographic keying material.
- EdDSAEdDSA is a deterministic public-key digital signature algorithm based on Schnorr signatures over twisted Edwards curves.
- entropyEntropy is a measure of the uncertainty or unpredictability contained in a random source or secret.
- quantum bitA quantum bit is a quantum information unit that can occupy a superposition of the binary states 0 and 1.
- quantum entanglementQuantum entanglement is a quantum correlation in which the joint state of multiple particles cannot be described as independent particle states.
- quantum superpositionSuperposition is a quantum state in which a system combines multiple basis states before measurement.
- generatorA generator is a group element whose repeated application under the group operation produces every element of the group or a specified subgroup.
- prime numberA prime number is an integer greater than one with no positive divisors other than one and itself, used in finite-field Diffie-Hellman as the modulus.
- end-to-end encryptionEnd-to-end encryption is a communication security technique in which only the communicating endpoints can decrypt the exchanged content.
- post-quantum cryptographyA post-quantum cryptosystem is a cryptographic system designed to resist attacks from quantum computers while operating on conventional computing infrastructure.
- true random number generatorA true random number generator is a device or system that derives random values from physical nondeterministic phenomena.
- X25519X25519 is an elliptic-curve Diffie–Hellman function for deriving a shared secret from public and private keys.
- collision-resistant hash functionCollision resistance is the property that it is computationally infeasible to find two distinct inputs that produce the same hash output.
- SHA-256A member of the SHA-2 family of standardized cryptographic hash functions that produces a 256-bit digest.
- KyberKyber is a lattice-based public-key cryptographic scheme based on the learning with errors problem that supports key encapsulation and key exchange.
- modulusA modulus is the positive integer that determines the equivalence of values by their division remainders in modular arithmetic.
- consensusA consensus protocol is a protocol by which distributed participants agree on an ordered system state despite communication or participant failures.
- cryptographic constructionA cryptographic construction is a concrete algorithm or protocol that instantiates one or more cryptographic concepts or primitives.
- open competitionAn open competition is a public process in which cryptographic designs are submitted and evaluated through rounds of analysis.
- protocolA prescribed set of communication rules and computational steps followed by participants to achieve a specified outcome.
- revocationCertificate revocation is the process of declaring a previously issued certificate invalid before its scheduled expiration.
- hybrid encryptionHybrid encryption is an encryption technique that combines asymmetric encryption or key exchange with symmetric authenticated encryption to protect messages of arbitrary practical size.
- root of trustA root of trust is a trusted hardware or software foundation from which the authenticity and integrity of subsequent system components are established.
- learning with errorsLearning with errors is a computational problem of recovering a secret vector from linear equations whose results are perturbed by small random errors, typically modulo a large number.
- TPM 2.0TPM 2.0 is the specification defining the interfaces and behavior that compatible Trusted Platform Modules implement.
- textbook rsaTextbook RSA is the naive RSA encryption scheme that directly applies modular exponentiation without security-preserving padding.
- Galois/Counter ModeAn authenticated-encryption construction that combines AES in Galois/Counter Mode with authentication of ciphertext and associated data.
- ECDSAECDSA is an elliptic-curve digital signature algorithm that generates and verifies signatures using elliptic-curve arithmetic.
- trusted execution environmentA trusted execution environment is an isolated programmable execution environment implemented with processor-supported mechanisms to resist software attacks.
- bilinear pairingA bilinear pairing is a map between group elements that preserves group operations in each input and can produce multiplicative relations between group elements.
- CRYSTALS-DilithiumCRYSTALS-Dilithium is a lattice-based digital signature scheme based on the learning with errors problem.
- trust on first useTrust on first use is a trust model that accepts a key on its first observation and rejects subsequent changes unless explicitly overridden.
- paddingPadding is the addition of structured data to an input so it can be divided into required-size blocks while preserving input boundaries.
- asymmetric password-authenticated key exchangeAn asymmetric password-authenticated key exchange is a password-authenticated key exchange in which the server does not learn the user's password and typically stores a verifier derived from it.
- OPAQUEOPAQUE is an asymmetric password-authenticated key exchange protocol that uses an oblivious pseudorandom function to protect a password-derived encrypted key record.
- side-channel attackA side-channel attack infers secret-dependent information from physical or operational leakage such as timing, power consumption, or electromagnetic radiation.
- pre-image resistancePre-image resistance is the property that, given a hash output, it is computationally infeasible to find an input that hashes to that output.
- PKCS#11PKCS#11 is a standard API specification for accessing cryptographic tokens and performing protected key and cryptographic operations.
- rsaes-pkcs1-v1_5RSA PKCS#1 v1.5 is an RSA encryption and signature specification version whose encryption encoding uses legacy padding vulnerable to adaptive padding-oracle attacks.
- one-time signatureA one-time signature is a digital signature scheme whose signing key is intended to authenticate only one message.
- sphincs+SPHINCS+ is a stateless hash-based digital signature scheme built from XMSSMT and few-time signatures.
- XMSSXMSS is a stateful hash-based signature scheme that organizes one-time signatures under a Merkle tree and derives their private keys from a seed.
- data integrityIntegrity is the property that data has not been altered in an unauthorized or undetected way.
- password authenticationA password is a human-chosen secret used to authenticate a person or derive authentication and cryptographic keying material.
- random oracleThe random oracle model is an idealized security model that treats a hash-like function as a random oracle when analyzing protocols.
- oblivious pseudorandom functionAn oblivious pseudorandom function is a two-party protocol that lets one party obtain a pseudorandom-function output on a secret input without revealing the input to the key holder or the key to the input holder.
- rsa-pssRSA-PSS is a probabilistic RSA signature scheme designed to provide a security proof and easier correct implementation than older RSA signature encodings.
- SHA-3SHA-3 is a standardized family of cryptographic hash functions based on the Keccak sponge construction.
- keystreamA keystream is the sequence of pseudorandom bytes generated by a stream-encryption construction and XORed with plaintext or ciphertext.
- non-interactive key exchangeA non-interactive key exchange establishes shared keying material with a recipient without requiring an exchange of interactive messages.
- quantum mechanicsQuantum mechanics is the physical theory describing the behavior of matter and energy at atomic and subatomic scales.
- elliptic-curve cryptographyElliptic curve cryptography is public-key cryptography based on the algebraic structure of elliptic curves over finite fields.
- single point of failureA single point of failure is a component or condition whose compromise or failure can disable or undermine an entire system.
- DiemBFTDiemBFT is a Byzantine fault-tolerant consensus protocol for reaching agreement among validators despite a bounded number of malicious participants.
- authenticated key exchangeA key exchange protocol that authenticates at least one party to prevent an active man-in-the-middle attacker from impersonating that party.
- bit securityBit security is a cryptographic security level expressed as the base-two logarithm of the estimated work required for the best known attack.
- lattice-based cryptographyA lattice-based cryptosystem is a cryptosystem whose security relies on the computational difficulty of problems involving mathematical lattices.
- plaintextCleartext, or plaintext, is data represented in its original readable form rather than in encrypted or otherwise transformed form.
- hash-based signature schemeA hash-based signature scheme is a digital signature scheme whose security is based on cryptographic hash-function properties rather than algebraic number-theoretic assumptions.
- Ed25519Ed25519 is an EdDSA public-key digital signature algorithm based on the twisted Edwards curve over a finite field.
- ciphertextCiphertext is encrypted data produced from plaintext and intended to be decrypted by an authorized recipient.
- point at infinityThe point at infinity is an added formal point that serves as the identity element of an elliptic curve group.
- HKDFHKDF is a key derivation function that derives cryptographic keying material from input keying material using HMAC.
- key derivation functionA key derivation function transforms input keying material into one or more cryptographic keys or related pseudorandom values.
- X3DHX3DH is a non-interactive key-exchange protocol that combines multiple Diffie-Hellman exchanges to establish shared keying material for asynchronous messaging.
- password hashingThe use of a deliberately configured password-processing function to derive values suitable for storing and verifying passwords without retaining the passwords themselves.
- test vectorA test vector is a predefined cryptographic input together with an expected result for validating an implementation.
- formal verificationFormal verification is the use of mathematically based languages, models, and procedures to analyze whether a system satisfies specified properties.
- elliptic curveAn elliptic curve is a nonsingular algebraic curve that, with a specified point at infinity, supports a group operation.
- witnessA witness is secret information whose possession enables a prover to establish the truth of a statement in a proof system.
- minerA miner is a participant in a proof-of-work cryptocurrency network that searches for valid computational proofs and may propose blocks.
- Diffie-Hellman ratchetA Diffie-Hellman ratchet is a continuously repeated Diffie-Hellman key exchange that refreshes shared keying material as participants replace ratchet key pairs.
- entropy sourceAn entropy source is a physical or computational process that supplies unpredictable or partially unpredictable input for random-data generation.
- symmetric ratchetA symmetric ratchet is a key-evolution mechanism that derives successive chain keys and message-encryption keys from a one-way key update.
- cyclic subgroupA cyclic subgroup is a subgroup generated by repeatedly applying its operation to one generator element.
- finite fieldA finite field is a field containing a finite number of elements in which addition, subtraction, multiplication, and division by nonzero elements are defined.
- finite field Diffie-HellmanFinite-field Diffie-Hellman is Diffie-Hellman key exchange instantiated with standardized finite-field groups and modular arithmetic.
- groupA group is an algebraic structure consisting of a set and an associative operation with an identity element and inverses for all elements.
- group theoryGroup theory is the mathematical study of sets equipped with operations and the structures and properties those operations satisfy.
- modular multiplicationModular multiplication multiplies values and identifies the result with its remainder modulo a specified modulus.
- modulo arithmeticModular arithmetic is arithmetic in which values are identified according to their remainders after division by a fixed modulus.
- multiplicative groupA multiplicative group is a group conventionally written with a multiplication operation and a multiplicative identity element.
- statefulnessA stateful signature scheme requires persistent state, such as a counter, to prevent reuse of one-time signing material.
- stateless signature schemeA stateless signature scheme does not require persistent signing state to select and protect its signing material.
- threat modelA threat model is a structured description of the assets, adversaries, capabilities, and attack scenarios relevant to a system's security.
- SHA-2SHA-2 is a standardized family of cryptographic hash algorithms producing digests of 224, 256, 384, or 512 bits.
- no-cloning theoremThe no-cloning theorem states that an unknown quantum state cannot be copied perfectly by a physical operation.
- quantum key distributionQuantum key distribution is a technique for establishing shared key material using quantum states and measurements.
- quantum random number generatorA quantum random number generator is a device or system that obtains unpredictable random values from quantum measurement outcomes.
- out-of-band channelAn out-of-band channel is a communication path separate from the primary protocol channel that can convey authentication information or key material.
- secure multi-party computationSecure multi-party computation is a cryptographic protocol in which multiple participants jointly execute a computation while keeping their respective inputs private.
- key generationAn algorithm that generates cryptographic key material, such as a public-key and private-key pair.
- length-extension attackA length-extension attack is an attack that exploits iterative hash constructions to compute a hash for an extended message when given a hash of an original message and its length.
- key encapsulation mechanismA key encapsulation mechanism is a public-key cryptographic mechanism that encapsulates symmetric keying material for transport to a recipient.
- Edwards25519Edwards25519 is a twisted Edwards elliptic curve used by Ed25519 and providing approximately 128-bit security.
- blinding factorA blinding factor is a random value used to conceal an input or intermediate cryptographic value while preserving the ability to later remove the concealment.
- precomputation attackA precomputation attack computes a large collection of candidate cryptographic values in advance so that a later compromise or query can be searched efficiently.
- initialization vectorAn initialization vector is an input value that initializes a cryptographic encryption operation and is typically combined with a key to produce distinct ciphertexts.
- invalid curve attackAn invalid curve attack supplies a point from a different elliptic curve so that an implementation performs scalar multiplication in an unintended group with exploitable subgroups.
- public key validationPublic key validation is the process of checking that a received public key is a valid element of the intended cryptographic group.
- safe primeA safe prime is a prime number p such that p = 2q + 1 for another prime number q.
- small subgroup attackA small subgroup attack sends public keys from small subgroups to expose information about a victim's private key through the resulting shared secrets.
- permutationA permutation is a reversible one-to-one mapping of a set of elements onto itself.
- counter mode encryptionAES-CTR is a counter-mode construction that applies AES to successive counter values to generate a keystream or pseudorandom-looking output.
- GHASHGHASH is a keyed almost-XOR-universal hash function used by GCM to authenticate block-aligned input.
- GMACGMAC is a message authentication code built from the GHASH keyed hash and AES-CTR encryption of its output.
- 51% attackA 51% attack is a blockchain attack in which an entity controls more computational power than the rest of the mining network and uses it to rewrite recent history.
- confirmation blockA confirmation block is a block mined after a block containing a transaction, increasing that transaction's depth in the chain.
- mining difficultyMining difficulty is the threshold that determines how hard it is to produce a proof-of-work-valid block.
- double-spendA double-spend is the unauthorized use of the same cryptocurrency funds in more than one conflicting transaction.
- one-time codeA one-time password is an authentication code intended to be accepted for only one authentication attempt or a narrowly defined validity period.
- trusted setupA trusted setup is a cryptographic parameter-generation process that creates public evaluation parameters from secret randomness and requires that randomness to be destroyed or kept unknown.
- permissioned networkA network in which participation in consensus is restricted to a fixed or authorized set of participants.
- Noise protocol frameworkThe Noise protocol framework is a framework for specifying secure communication protocols as fixed message patterns and cryptographic choices without runtime negotiation.
- cryptographically secure random number generatorA cryptographically secure pseudorandom number generator is a pseudorandom number generator whose outputs are computationally indistinguishable from uniform random values and whose state resists recovery from observed outputs.
- hybrid key exchange schemeA hybrid cryptographic scheme combines post-quantum and pre-quantum cryptographic mechanisms in one operation or protocol.
- certificate pinningCertificate pinning is a client-side validation technique that accepts a server only when its certificate matches a specifically expected certificate or certificate digest.
- public key pinningPublic key pinning is a client-side validation technique that accepts a server only when its certificate contains a specifically expected public key.
- few-time signatureA few-time signature is a digital signature scheme that permits a key pair to sign a limited number of messages before security degrades.
- hypertreeA hypertree is a hierarchy of Merkle trees in which trees at one level authenticate the roots of trees at another level.
- merkle proofA Merkle proof is the collection of neighboring tree hashes that proves a leaf belongs to a committed Merkle tree.
- merkle signature schemeA Merkle signature scheme is a hash-based signature construction that authenticates many one-time signatures with a Merkle-tree root public key.
- XMSSMTXMSSMT is a multi-tree variant of XMSS that limits signing-time regeneration to the trees along an authentication path.
- password reusePassword reuse is the practice of using the same password for multiple accounts or services.
- deterministic signatureA deterministic signature is a digital signature generated without fresh random input for each signing operation, typically by deriving signing randomness from secret data and the message.
- nonce keyA nonce key is secret EdDSA-derived keying material used to deterministically derive a per-message signing nonce.
- FIDO2FIDO2 is an open standard that defines how asymmetric keys and hardware authenticators can be used to authenticate users.
- ChaCha20-Poly1305ChaCha20-Poly1305 is an authenticated-encryption-with-associated-data construction combining the ChaCha20 stream cipher with the Poly1305 message authentication code.
- constant-time programmingA constant-time algorithm executes in a pattern whose duration does not depend on secret data.
- applied cryptographyApplication-oriented cryptography concerned with deploying secure cryptographic algorithms and protocols under practical system constraints.
- theoretical cryptographyTheoretical cryptography is the academic study of cryptographic constructions, properties, and security foundations, often without immediate practical implementation.
- Euler's theoremEuler's theorem states that an integer coprime to a modulus raised to the order of the corresponding multiplicative group is congruent to one modulo that modulus.
- Euler's totient functionEuler's totient function counts the positive integers up to a given integer that are coprime to it.
- factorizationThe mathematical problem of decomposing an integer into its prime factors.
- public exponentA public exponent is the RSA exponent included in the public key and used for modular exponentiation during encryption.
- encryption noiseEncryption noise is an error component introduced or accumulated during homomorphic evaluation that can eventually prevent correct decryption.
- fault attackA fault attack intentionally induces computational or physical faults in a device to cause erroneous behavior that reveals or compromises secret information.
- polynomial functionA polynomial is a mathematical expression formed from coefficients and nonnegative integer powers of a variable.
- unspent transaction outputAn unspent transaction output is a Bitcoin transaction output that has not yet been consumed by another transaction.
- boot loaderA boot loader is software that initializes a system and loads or verifies the next stage of software, eventually starting the operating system.
- boot ROMA boot ROM is immutable memory containing the initial code executed when a device powers on.
- file-based encryptionFile-based encryption encrypts individual files, often allowing different files or file classes to receive different protection states.
- key encryption keyA key encryption key is a cryptographic key used to encrypt and protect other cryptographic keys.
- physical unclonable functionA physical unclonable function derives device-specific responses from uncontrollable physical variations in hardware.
- secure bootSecure boot is a boot process that verifies the authenticity and integrity of each program before executing it.
- permissionless networkA network in which anyone can join and participate in consensus without obtaining additional permission.
- proof of authorityProof of authority is a consensus-participant selection mechanism that relies on authorized identities or authorities.
- proof-of-stakeProof of stake is a consensus-participant selection mechanism that weights participation according to the amount of currency held or staked.
- HMACHMAC is a standardized keyed-hash message authentication code constructed from a cryptographic hash function and a secret key.
- HKDF-ExpandHKDF-Expand is the HKDF function that deterministically expands a pseudorandom key and context information into output of a requested length.
- HKDF-ExtractHKDF-Extract is the HKDF function that extracts a uniformly random pseudorandom key from input keying material and an optional salt.
- blindingBase blinding is a public-key cryptographic technique that multiplies an input by a random invertible factor before secret-dependent processing and removes that factor afterward.
- 3DES3DES is a symmetric block cipher that applies the Data Encryption Standard transformation three times with multiple keys.
- differential fault analysisDifferential fault analysis is a technique that induces computational faults and analyzes their effects to recover secret information.
- invasive attackAn invasive attack physically opens a chip and probes or modifies its internal circuitry to reveal or alter secrets.
- non-invasive attackA non-invasive attack extracts information from a device without physically altering the targeted device.
- semi-invasive attackA semi-invasive attack accesses a chip's surface without fully damaging it in order to alter or observe computation.
- certificate revocation listA certificate revocation list is a published list of digital certificates that a certificate authority has revoked.
- certificate transparencyCertificate Transparency is a system that publicly logs issued digital certificates and provides proofs that certificates appear in those logs.
- hsts headerHSTS is an HTTP security policy mechanism that instructs a browser to access a website only over HTTPS for a specified period.
- OCSP staplingOCSP stapling is a TLS technique in which a server supplies a certificate authority's signed certificate-status response during the handshake.
- Online Certificate Status ProtocolOCSP is a protocol for querying an authority about the current revocation status of a digital certificate.
- secret shareA secret share is a portion of a secret distributed to a participant in a secret-sharing scheme.
- Shamir's Secret SharingShamir’s secret sharing is a threshold secret-sharing scheme that distributes a secret as polynomial-derived shares reconstructible by a qualified subset of participants.
- Weierstrass equationA short Weierstrass equation is an elliptic-curve equation of the form y² = x³ + ax + b over a specified field.
- composabilityComposability is the property describing whether a cryptographic primitive retains its intended security when combined with other primitives or protocols.
- cryptographic agilityCryptographic agility is the ability of a protocol or standard to support changing among multiple cryptographic algorithms.
- polite standardA cryptographic standard designed to address edge cases and security issues while providing safe interfaces and practical implementation guidance.
- mini-protocolA mini-protocol is a small, custom protocol created for a specific application rather than adopted as an established standardized protocol.
- web of trustA web of trust is a decentralized model in which users establish confidence in public-key-to-identity associations through signatures and transitive trust.
- zeroizationZeroization is the deliberate destruction or overwriting of secret data so that it cannot be recovered.
- absorbingAbsorbing is the sponge-construction phase in which input blocks are combined with the rate portion of the state and permuted.
- capacityThe capacity is the portion of a sponge state reserved from direct input absorption and output extraction that contributes to its security.
- keccak-fkeccak-f is the fixed-size permutation used as the internal transformation in SHA-3.
- rateThe rate is the portion of a sponge state through which input is absorbed and output is extracted.
- sponge constructionA sponge construction repeatedly applies a permutation while absorbing input through a rate portion of its state and producing output through that portion.
- squeezingSqueezing is the sponge-construction phase in which output blocks are repeatedly read from the rate portion of the state.
- Grover's algorithmGrover's algorithm is a quantum search algorithm that finds a marked item in an unstructured search space using approximately the square root of the classical search effort.
- Shor's algorithmShor's algorithm is a quantum algorithm that efficiently solves integer factorization and discrete logarithm problems.
- threshold cryptographyThreshold encryption is an encryption technique in which participants collaboratively decrypt ciphertext when a required threshold of them participates.
- non-interactive zero-knowledge proofA non-interactive zero-knowledge proof can be generated and verified without online interaction between the prover and verifier during the proof operation.
- Fiat-Shamir transformationThe Fiat-Shamir transformation converts an interactive proof into a non-interactive proof by deriving the verifier's challenge from a hash of the protocol transcript.
- public-key infrastructureThe web public key infrastructure is the ecosystem of browser-trusted authorities, certificates, and procedures that authenticates public keys for web connections.
- authenticated channelAn authenticated channel is a communication path that provides assurance of the integrity and authenticity of communicated information without necessarily providing confidentiality.
- threat actorAn entity that attempts to exploit, interfere with, or defeat the security of a protocol or system.
- security propertyA cryptographic property is a security guarantee that a cryptographic mechanism or protocol is intended to provide.
- P-256P-256, also called secp256r1, is a standardized elliptic curve providing approximately 128 bits of security for elliptic-curve cryptography.
- cache attackA cache attack infers a victim's secret-dependent computation by observing the timing or state changes of shared processor memory caches.
- leakage-resilient cryptographyLeakage-resilient cryptography is the study and practice of designing cryptographic implementations that remain secure despite bounded information leakage.
- side channelA side channel is an unintended information pathway through which observations of a system reveal secret-dependent data.
- common reference stringA publicly available set of parameters and common values established before participants execute a cryptographic proof system.
- distributed systemA distributed system is a set of independent computing components that coordinate over a network to provide a shared service or state.
- general-purpose zero-knowledge proofA zero-knowledge proof system capable of proving the correct execution of general computations or programs, potentially while hiding selected inputs or outputs.
- proof-system setupThe parameter-generation process that establishes the common values required by a cryptographic proof system.
- transparent setupA proof-system setup that does not require a trusted third party to generate its public parameters.
- secp256k1secp256k1 is a standardized Koblitz elliptic curve used for public-key cryptography and digital signatures.
- Argon2Argon2 is a memory-hard password-hashing algorithm designed to make password-guessing attacks costly in time and memory.
- ChaChaChaCha20 is a stream cipher that generates a pseudorandom keystream from a key, nonce, and counter.
- Poly1305Poly1305 is a message authentication code that authenticates data using polynomial arithmetic modulo a fixed constant and a one-time authentication key.
- S/MIMES/MIME is a standard for securing email with encryption and digital signatures based on public-key cryptography.
- Merkle treeA Merkle tree is a hash tree whose internal nodes are hashes of child nodes and whose root commits to the data in its leaves.
- gpgGPG is a command-line implementation of the OpenPGP standard for encrypting, decrypting, signing, and verifying data.
- homomorphic commitmentA homomorphic commitment is a cryptographic commitment that supports operations on committed values while preserving corresponding algebraic relationships.
- boring cryptographyA conservative cryptographic design approach that favors simple, well-scrutinized primitives and protocols over novel or unnecessarily complex constructions.
- verifierA verifier is the participant in a proof protocol who checks whether the prover has demonstrated the claimed statement or knowledge.
- identity keyAn identity key is a long-term cryptographic key that represents a messaging user and supports authentication of that user's protocol participation.
- one-time prekeyA one-time prekey is a single-use public ephemeral key uploaded in advance for an asynchronous key exchange.
- signed prekeyA signed prekey is a medium-term public key authenticated by an identity-key signature for use in an asynchronous key exchange.
- Intel Software Guard ExtensionsSGX is Intel's hardware-assisted trusted execution technology for protecting isolated application enclaves.
- password managerA password manager is software that generates, stores, and retrieves passwords and protects them with a master password.
- single sign-onSingle sign-on is an authentication scheme that lets a user access multiple services by authenticating through one account provider.
- rsa-oaepOAEP is a randomized padding scheme for RSA encryption that encodes plaintext before RSA processing and is designed to provide resistance to adaptive decryption attacks.
- cryptanalysisCryptanalysis is the analysis of cryptographic systems to discover weaknesses or recover protected information without the intended secret.
- cipher block chaining modeCipher block chaining is a block-cipher mode that XORs each plaintext block with the preceding ciphertext block before encryption, using an initialization vector for the first block.
- electronic codebook modeElectronic codebook mode encrypts each plaintext block independently with the same block-cipher key.
- mode of operationA mode of operation is a method for applying a block cipher repeatedly to data blocks to encrypt messages of varying length.
- PKCS#7 paddingPKCS#7 padding appends bytes whose values equal the number of padding bytes required to reach a block boundary.
- extendable output functionAn extendable output function is a cryptographic function that maps an input to an output of a caller-selected length.
- distributed key generationDistributed key generation is a protocol in which participants collaboratively generate a public key and distributed private shares without any participant holding the private key in clear form.
- multi-signatureMulti-signature is a technique in which a transaction or message requires signatures from multiple distinct public keys.
- secret sharingSecret sharing is a technique that divides a secret into multiple shares that participants can use to reconstruct the secret collectively.
- signature aggregationSignature aggregation is a technique that combines several digital signatures into a single signature representation.
- authentication challengeA challenge is verifier-generated randomness sent to a prover to constrain the prover's response in an interactive proof.
- Schnorr identification protocolThe Schnorr identification protocol is an interactive proof-of-knowledge protocol in which a prover demonstrates knowledge of a discrete logarithm without revealing it.
- sigma protocolA sigma protocol is an interactive proof pattern consisting of a prover commitment, a verifier challenge, and a prover response.
- quantum algorithmA quantum algorithm is a computational procedure designed to execute on a quantum computer and exploit quantum-mechanical effects.
- CPaceCPace is a symmetric password-authenticated key-exchange algorithm in which parties derive a group generator from a shared password and use it for ephemeral Diffie-Hellman key exchange.
- signature forgery attackA signature forgery attack is an attack that produces a signature a verifier accepts without knowledge of the legitimate signer's private key.
- key managementKey management is the lifecycle practice of generating, storing, using, rotating, revoking, and protecting cryptographic keys and secrets.
- elliptic-curve discrete logarithm problemThe elliptic curve discrete logarithm problem is the problem of recovering a scalar from a known base point and its scalar multiple on an elliptic-curve group.
- quorum certificateA quorum certificate is a consensus certificate formed from sufficient validator votes to attest to an agreed protocol state or decision.
- double ratchetThe Double Ratchet is a messaging protocol that combines a symmetric ratchet with a Diffie-Hellman ratchet to provide message-level forward secrecy and post-compromise security.
- kmacKMAC is a standardized message authentication code based on the SHA-3 sponge construction and a secret key.
- compression functionA compression function maps two inputs to one output whose size is the size of one input, thereby reducing represented data size.
- Davies–Meyer methodThe Davies–Meyer method is a compression-function construction that combines a block-cipher operation with a chaining value.
- Merkle–Damgård constructionThe Merkle–Damgård construction builds an arbitrary-length hash function by iteratively applying a fixed-size compression function to padded message blocks.
- block cipherA block cipher is a keyed symmetric cipher that encrypts fixed-size blocks of data.
- Manually Authenticated Diffie-HellmanManually Authenticated Diffie-Hellman is a key-exchange technique that adds a commitment step and human comparison to hinder active man-in-the-middle attacks.
- signature verificationThe process of checking a digital signature against its message and the signer's public key to determine whether it is valid.
- cryptographic keyA cryptographic key is secret or public information supplied to a cryptographic algorithm to control its operation.
- Kerckhoffs' principleKerckhoffs' principle states that a cryptographic system should remain secure even when its algorithm is public, with secrecy relying on the key.
- security through obscuritySecurity through obscurity is the practice of relying on keeping a system's design or implementation secret as a security measure.
- cSHAKEcSHAKE is a customizable extendable output function in the SHA-3 family that accepts a function-name string and an optional customization string.
- HOTPHOTP is a one-time-password algorithm that derives authentication codes from a secret key and a counter.
- phishingPhishing is a social-engineering attack that persuades a person to disclose authentication information or perform an unsafe action.
- TOTPTOTP is a one-time-password algorithm that derives time-varying authentication codes from a shared secret and the current time.
- arithmetic circuitAn arithmetic circuit is a directed acyclic computation structure whose gates perform arithmetic operations over a specified field or ring.
- randomness extractorA randomness extractor is a procedure that combines and transforms imperfect random inputs into output with improved randomness properties.
- constant-time comparisonA constant-time comparison compares two values in an execution pattern whose duration does not depend on the location of their first difference.
- replay attackA replay attack resends a previously valid message and its authentication data so that they may be accepted again as current.
- cookieA cookie is a small piece of data stored by a web browser and sent with subsequent requests to a website.
- proverA prover is the participant in a proof protocol who generates evidence for a claimed statement or computation.
- usable securityUsable security is the field of designing security mechanisms and interfaces so that people can use them correctly with minimal opportunity for error or misuse.
- heuristic-based constructionA cryptographic construction whose design and security confidence rely on empirical observations and statistical analysis rather than a formal mathematical hardness assumption.
- math-based constructionA cryptographic construction whose security relies on the presumed difficulty of mathematical problems.
- security claimA stated guarantee about the security behavior that a cryptographic primitive or protocol provides under specified conditions.
These guides are generated from the text of Manning books by Manning's knowledge graph and link to the sections they draw on. The full books are available on liveBook and at manning.com.
