the-eye.euthe-eye.eu/public/Books/Gentoomen Library/Cryptography/Handbook of Applied...

777
Index Symbols |S| (cardinality of a set S), 49 (set member), 49 (subset), 49 (proper subset), 49 (set intersection), 49 (set union), 49 - (set difference), 49 × (Cartesian product), 49 (empty set), 50 O-notation (big-O), 58 Ω-notation (big-omega), 59 Θ-notation (big-theta), 59 o-notation (little-o), 59 def = (by definition), 213 Lq [α, c] (subexponential notation), 60 P (polytime reduction), 61 (asymptotic equivalence), 134 π (mathematical constant pi), 49 e (base of natural logarithms), 49 (sum), 50 Q (product), 50 ! (factorial), 50 bc (floor), 49 de (ceiling), 49 φ (Euler phi function), 65, 286 μ(n) (M¨ obius function), 154 lg (base 2 logarithm), 50 ln (natural logarithm), 50 [a, b] (interval of integers), 49 | (divides relation), 63, 79 (congruence relation), 67, 79 (much less than), 529 (much greater than), 170 ( n k ) (binomial coefficient), 52 ( a p ) (Legendre symbol), 72 <> (inner product), 118 kxk (length of a vector x), 118 ab (assignment operator), 66 akb (concatenation of strings a,b), 38 {0, 1} k (bitstrings of bitlength k), 447 {0, 1} * (bitstrings of arbitrary bitlength), 447 Q (the rational numbers), 49 R (the real numbers), 49 Z (the integers), 49 Zn (integers modulo n), 68 Z * n (multiplicative group of Zn), 69 Qn (quadratic residues modulo n), 70 Q n (quadratic non-residues modulo n), 70 Fq (finite field of order q), 81 F * q (multiplicative group of Fq ), 81 R[x] (polynomial ring), 78 (inclusive-OR), 213 (exclusive-OR), 20 (AND), 213 (addition mod 2 n ), 263 (subtraction mod 2 n ), 270 (modified multiplication mod 2 n +1), 263 - (left rotation), 213 , (right rotation), 213 A B (message transfer), 396 A Abelian group, 75 Abstract Syntax Notation One (ASN.1), 660 Access control, 3 Access control matrix, 387 Access matrix model, 569 Access structure, 526 monotone, 527 Accredited Standards Committee (ASC), 648 Active adversary, 15, 37 Active attack, 41, 495 Ad hoc security, 43 Adaptive chosen-ciphertext attack, 42 Adaptive chosen-message attack, 433 Adaptive chosen-plaintext attack, 41 Addition chains, 621, 633 Adversary, 13, 495 active, 15 insider, 496 one-time, 496 permanent, 496 outsider, 496 passive, 15 Affine cipher, 239 Algebraic normal form, 205 Algorithm definition of, 57 755

Transcript of the-eye.euthe-eye.eu/public/Books/Gentoomen Library/Cryptography/Handbook of Applied...

  • Index

    Symbols|S| (cardinality of a set S), 49∈ (set member), 49⊆ (subset), 49⊂ (proper subset), 49∩ (set intersection), 49∪ (set union), 49− (set difference), 49× (Cartesian product), 49∅ (empty set), 50O-notation (big-O), 58Ω-notation (big-omega), 59Θ-notation (big-theta), 59o-notation (little-o), 59def= (by definition), 213Lq [α, c] (subexponential notation), 60≤P (polytime reduction), 61∼ (asymptotic equivalence), 134π (mathematical constant pi), 49e (base of natural logarithms), 49∑

    (sum), 50∏(product), 50

    ! (factorial), 50b c (floor), 49d e (ceiling), 49φ (Euler phi function), 65, 286µ(n) (Möbius function), 154lg (base 2 logarithm), 50ln (natural logarithm), 50[a, b] (interval of integers), 49| (divides relation), 63, 79≡ (congruence relation), 67, 79� (much less than), 529� (much greater than), 170(nk

    )(binomial coefficient), 52(

    ap

    )(Legendre symbol), 72

    < > (inner product), 118‖x‖ (length of a vector x), 118a←b (assignment operator), 66a‖b (concatenation of strings a,b), 38{0, 1}k (bitstrings of bitlength k), 447{0, 1}∗ (bitstrings of arbitrary bitlength), 447Q (the rational numbers), 49R (the real numbers), 49

    Z (the integers), 49Zn (integers modulo n), 68Z∗n (multiplicative group of Zn), 69Qn (quadratic residues modulo n), 70Qn (quadratic non-residues modulo n), 70Fq (finite field of order q), 81F∗q (multiplicative group of Fq), 81R[x] (polynomial ring), 78∨ (inclusive-OR), 213⊕ (exclusive-OR), 20∧ (AND), 213� (addition mod 2n), 263� (subtraction mod 2n), 270� (modified multiplication mod 2n + 1), 263←↩ (left rotation), 213↪→ (right rotation), 213A→ B (message transfer), 396

    AAbelian group, 75Abstract Syntax Notation One (ASN.1), 660Access control, 3Access control matrix, 387Access matrix model, 569Access structure, 526

    monotone, 527Accredited Standards Committee (ASC), 648Active adversary, 15, 37Active attack, 41, 495Ad hoc security, 43Adaptive chosen-ciphertext attack, 42Adaptive chosen-message attack, 433Adaptive chosen-plaintext attack, 41Addition chains, 621, 633Adversary, 13, 495

    active, 15insider, 496

    one-time, 496permanent, 496

    outsider, 496passive, 15

    Affine cipher, 239Algebraic normal form, 205Algorithm

    definition of, 57

    755

  • 756 Index

    deterministic, 62exponential-time, 59polynomial-time, 59randomized, 62

    expected running time, 63running time, 58

    asymptotic, 58average-case, 58worst-case, 58

    subexponential-time, 60Alphabet of definition, 11Alternating step generator, 209–211, 220Anonymity, 3ANSI standards, 648–651, 660

    ordering and acquiring, 656ANSI X9.17 pseudorandom bit generator, 173Anti-palindromic keys of DES, 257Appended authenticator, 361Arbitrated signature scheme, 472–473Arithmetic

    integer, see Multiple-precision integer arithmeticmodular, see Multiple-precision modular arith-

    meticArthur-Merlin games, 421ASN.1, see Abstract Syntax Notation One (ASN.1)Asymmetric cryptographic system, 544Asymptotic running time, 58Atkin’s primality test, 145

    implementation report, 166Attack

    active, 41, 495adaptive chosen-ciphertext, 42adaptive chosen-message, 433adaptive chosen-plaintext, 41chosen-ciphertext, 41, 226chosen-message, 433chosen-plaintext, 41, 226chosen-text, 417ciphertext-only, 41, 225dictionary, 42, 392differential cryptanalysis, 258differential-linear, 271exhaustive key search, 233–234forced delay, 417forward search, 42, 288, 420impersonation, 42, 417interleaving, 42, 417, 531, 540intruder-in-the-middle, 530, 540key-only, 432known-key, 42, 496, 534known-key triangle, 538known-message, 432known-plaintext, 41, 225linear cryptanalysis, 258

    local, 419meet-in-the-middle, 235misplaced trust in server, 531non-interactive, 419off-line, 419on-line, 419passive, 41, 495pre-play, 397reflection, 417, 530, 540related-key, 226remote, 419replay, 42, 417time-memory tradeoff, 236truncated differentials, 271universal forgery, 482

    Attacker, 13Attacker (alternate names), 495

    see also AdversaryAttribute certificate, 561Audit trail, 549, 583Audit trail information, 545Authenticated key establishment, 492, 493Authenticated key exchange protocol

    AKEP1/AKEP2, 499, 535, 541Authentication

    data origin, 4, 361see also Data origin authentication

    entity, 4see also Entity authentication

    explicit key, 492key, 492message, 361mutual, 494protocol, 493transaction, 362unilateral, 494see also Entity authentication (and Identifica-

    tion)Authentication code, 376, 382Authentication path, 557Authentication server, 491, 549Authentication tree, 466–468, 485, 556–559, 587Authority revocation list (ARL), 577Authorization, 3Authorized subset, 527Auto-key cipher, 242Autocorrelation function, 180Autocorrelation test, 182Auxiliary-input zero-knowledge, 423Avalanche effect, 277Average-case running time, 58

    BBaby-step giant-step algorithm, 104–106, 128

    c©1997 by CRC Press, Inc. — See accompanying notice at front of chapter.

  • Index 757

    BAN logic, 420, 534, 541Bandwidth efficiency, 437Barrett reduction, 603–605, 631Base b representation, 592Basis, 80Bayes’ theorem, 51BEAR block cipher, 282Beaufort cipher, 241Beller-Yacobi key transport

    2-pass, 5144-pass, 513

    Berlekamp’s Q-matrix algorithm, 124, 132Berlekamp-Massey algorithm, 200–201

    next discrepancy, 200Bernoulli trial, 52Biased, 172Big-endian, 344Big-O notation, 58Big-omega notation, 59Big-theta notation, 59Bijection, 7, 50Binary additive stream cipher, 194

    keystream generator, 194running key generator, 194

    Binary alphabet, 11Binary Euclidean algorithm, 632Binary extended gcd algorithm, 608–610, 632Binary gcd algorithm, 606–607, 632Binary operation, 75Binary representation, 592Binary tree, 557

    balanced, 558children, 557depth of, 558internal vertex, 557leaf, 557parent, 557root vertex, 557

    Binomialcoefficient, 52distribution, 52theorem, 52

    Biometrics, 387, 420Birthday attack, 352, 369Birthday problem, 53Birthday surprise, 53Bit commitment, 421Bitzer’s hash function, 374Black-box, 329, 341, 369, 378Blakley’s threshold scheme, 538Blind signature scheme, 475, 487

    based on DSA, 487based on Nyberg-Rueppel, 487Chaum, 475

    fair, 487Blinded message, 475Blinding function, 475

    based on RSA, 475Blob, 421Block cipher, 223–282

    3-WAY, 281attacks on

    differential cryptanalysis, 258differential-linear, 271exhaustive key search, 233–234, 273key clustering attack, 281linear cryptanalysis, 258meet-in-the-middle attack, 235related-key attack, 226, 281time-memory tradeoff, 236, 273truncated differentials, 271, 280

    BEAR, 282Blowfish, 281CAST, 281classical cipher, 237–250definition of, 16, 224DES, 250–259double DES, 235FEAL, 259–262GOST, 282IDEA, 263–265iterated, 251Khafre, 271Khufu, 271LION, 282LOKI’91, 270Luby-Rackoff, 282Lucifer, 276modes of operation, 228–233, 272

    ANSI X3.106 standard, 649ANSI X9.52 standard, 651CBC with checksum (CBCC), 367cipher feedback mode (CFB), 231cipher-block chaining mode (CBC), 230counter mode, 233electronic codebook mode (ECB), 228–

    230FIPS 81 standard, 654ISO 8372 standard, 645ISO/IEC 10116 standard, 647output feedback mode (OFB), 232–233plaintext-ciphertext block chaining

    (PCBC), 368Randomized DES (RDES), 278RC2, 282RC5, 269–270round function, 251SAFER, 266–269

    Handbook of Applied Cryptography by A. Menezes, P. van Oorschot and S. Vanstone.

  • 758 Index

    semi-weak keys (of DES), 257anti-palindromic keys (of DES), 257

    SHARK, 281SKIPJACK, 282, 584TEA, 282triple DES, 272WAKE, 282

    Block of a sequence, 180Blocklength, 224Blom’s KDS bound, 505Blom’s key pre-distribution system, 506, 536Blowfish block cipher, 281Blum integer, 74–75Blum-Blum-Shub pseudorandom bit generator, 186–

    187, 308Blum-Goldwasser probabilistic public-key encryp-

    tion, 308–311decryption algorithm, 309encryption algorithm, 309key generation, 308security of, 310

    Blum-Micali pseudorandom generator, 189Blundo’s conference KDS bound, 529Boolean function, 202

    algebraic normal form of, 205correlation immune, 207nonlinear order of, 205

    BPP, 63Break-backward protection, 496Brickell-McCurley identification protocol, 423Broadcast encryption, 528Bucket hashing, 382Burmester-Desmedt conference keying, 528Burst error, 363

    CCA, see Certification authority (CA)CA-certificate, 572Caesar cipher, 239CALEA, 590Capability (access control), 570Capstone chip, 589Cardinality of a set, 49Carmichael number, 137Carry-save adder, 630Cartesian product, 49Cascade cipher, 234, 237Cascade generator

    m-sequence, 221p-cycle, 220

    Cascading hash functions, 334CAST block cipher, 281

    patent, 659CBC, see Cipher-block chaining mode

    CBC-MAC, 353–354, 367ANSI X9.9 standard, 650ANSI X9.19 standard, 650FIPS 113 standard, 654ISO 8731-1 standard, 652ISO 9807 standard, 652ISO/IEC 9797 standard, 646

    Cellular automata stream cipher, 222Certificate

    ANSI X9.45 standard, 651ANSI X9.55 standard, 651ANSI X9.57 standard, 651caching, 576chain, 572directory, 549

    pull model, 576push model, 576

    forward, 575on-line, 576public-key, see Public-key certificatereverse, 575revocation, 566, 576–577RFC 1422, 655secret-key, see Secret-key certificatesymmetric-key, see Symmetric-key certificateX.509 standard, 660

    Certificate of primality, 166Certificate revocation list (CRL), 576–577Certification, 3

    path, 572policy, 576topology, 572

    Certification authority (CA), 491, 548, 556, 559Certificational attack, 236Certificational weakness, 285CFB, see Cipher feedback modeCFB-64 MAC, 650Challenge, 397, 409Challenge-response identification, 397–405, 420–

    421public-key, 403–405

    ISO/IEC 9798-3, 404–405modified Needham-Schroeder, 404X.509, 404

    symmetric-key, 400–403ISO/IEC 9798-2, 401–402SKID2, 402SKID3, 402

    Channel, 13physically secure, 13secure, 13secured, 13unsecured, 13

    Characteristic of a field, 77

    c©1997 by CRC Press, Inc. — See accompanying notice at front of chapter.

  • Index 759

    Chaum’s blind signature protocol, 475Chaum-van Antwerpen undeniable signature sch-

    eme, 476–478disavowal protocol, 477key generation, 476security of, 478signature generation, 476

    Chebyshev’s inequality, 52Checksum, 362, 367–368Chi-square (χ2) distribution, 177–179

    degrees of freedom, 177mean of, 177variance of, 177

    Chinese remainder theorem (CRT), 68Garner’s algorithm, 612–613Gauss’s algorithm, 68

    Chipcard, 387, 424Chor-Rivest public-key encryption, 302–306, 318

    attacks on, 318decryption algorithm, 303encryption algorithm, 303key generation, 303recommended parameter sizes, 305security of, 305

    Chosen-ciphertext attack, 41, 226, 285adaptive, 285indifferent, 285

    Chosen-message attack, 433directed, 482generic, 482

    Chosen-plaintext attack, 41, 226Cipher, 12

    see also EncryptionCipher-block chaining mode (CBC), 230

    integrity of IV in, 230use in public-key encryption, 285

    Cipher feedback mode (CFB), 231as a stream cipher, 233ISO variant of, 231

    Cipher machine, 242–245Jefferson cylinder, 243rotor-based machine, 243–245, 276

    Enigma, 245Hagelin M-209, 245Hebern, 244

    Wheatstone disc, 274Ciphertext, 11Ciphertext-only attack, 41, 225Ciphertext space, 11Claimant, 385, 386Classical cipher, 237–250, 273–276

    cipher machines, see Cipher machinecryptanalysis, 245–250, 275–276

    index of coincidence, 248

    Kasiski’s method, 248measure of roughness, 249

    polyalphabetic substitution cipher, see Polyal-phabetic substitution cipher

    substitution cipher, see Substitution ciphertransposition cipher, see Transposition cipher

    Classical modular multiplication, 600Classical occupancy problem, 53Claw-resistant (claw-free), 376, 468Clipper chip, 584, 589

    key escrow, 584law enforcement access field (LEAF), 584

    Clipper key escrow, 654Clock-controlled generator, 209–212co-NP, 60Codebook, 240Codomain of a function, 6, 50Collision, 321

    pseudo-collision, 371Collision resistance, 324, 325Collision resistant hash function (CRHF), 325Combining function, 205Common modulus attack on RSA, 289Commutative ring, 77Complementation property of DES, 256–257Complete function, 277Complexity classes, 59–62

    BPP, 63co-NP, 60NP, 60NP-complete, 61NP-hard, 62NPC, 61P, 60RP, 63ZPP, 63

    Complexity measure2-adic span, 218linear complexity, 198–201maximum order complexity, 217Turing-Kolmogorov-Chaitin complexity, 217Ziv-Lempel complexity, 217

    Complexity of attacks on a block cipher, 225–227active complexity, 226attack complexity, 226data complexity, 226passive complexity, 226processing complexity, 226storage complexity, 226

    Complexity theory, 57–63Complexity-theoretic security, 43Compliant, 532Composite integer, 64Composition of functions, 19

    Handbook of Applied Cryptography by A. Menezes, P. van Oorschot and S. Vanstone.

  • 760 Index

    Computation-resistance (MAC), 325Computational problems

    computationally equivalent, 88polytime reduction, 88

    Computational security, 43, 226Computational zero-knowledge protocol, 407Computationally equivalent decision problems, 61COMSET, 421, 536Conditional entropy, 56Conditional probability, 51Conditional transinformation, 57Conference keying, 528–529, 540

    Blundo’s conference KDS bound, 529Burmester-Desmedt, 528definition of, 528

    Confidentiality, 3, 4, 12Confirmation, 3Confounder, 418Confusion, 20Congruences

    integers, 67polynomials, 79

    Conjugate gradient method, 129Connection polynomial of an LFSR, 196, 204

    known versus secret, 204sparse versus dense, 205

    Constrained linear equations problem, 423Continued fraction factoring algorithm, 126Continuous random variable, 176Control vector, 569

    patent, 639, 658Conventional encryption, 15Coprime, 64Correcting-block chaining attack, 373Correlated, 172Correlation attack, 206, 218Correlation immunity, 207, 218Counter mode, 233CRC-based MAC, 359Credential, 501CRHF, see Collision resistant hash functionCross-certificate (CA-certificate), 572Cross-certificate pair, 573CRT, see Chinese remainder theoremCryptanalysis, 15Cryptanalyst, 15Cryptographic check value, 363Cryptographic primitives, 4

    taxonomy of, 5Cryptographically secure pseudorandom bit gener-

    ator (CSPRBG), 185–187Blum-Blum-Shub generator, 186–187Blum-Micali generator, 189definition of, 171

    Micali-Schnorr generator, 186modified-Rabin generator, 190RSA generator, 185–186

    Cryptographydefinition of, 4goals of, 4

    CRYPTOKI, 656Cryptology, 15Cryptoperiod of a key, 553Cryptosystem, 15Cut-and-choose protocol, 410, 421Cycle of a periodic sequence, 180Cyclic group, 69, 76

    generator of, 76Cyclic redundancy code (CRC), 363Cyclic register, 220Cycling attacks on RSA, 289, 313

    DData Authentication Algorithm (DAA), 654Data Encryption Standard, see DES block cipherData integrity, 3, 4, 33, 359–368, 383Data key, 552Data origin authentication, 3, 4, 25, 359–368, 491Davies-Meyer hash function, 341de Bruijn FSR, 203de Bruijn sequence, 203De-skewing, 172DEA, 649Decimated subsequence, 211Decision problems, 60

    computationally equivalent, 61polytime reduction, 61

    Decryption, 11Decryption exponent for RSA, 286Decryption function, 11DECT, 586Degrees of freedom, 177Delay element

    of an FSR, 202of an LFSR, 195

    Delayed-carry adder, 630Density of a knapsack set, 120Derivative of a polynomial, 123DES block cipher, 250–259, 276–278

    ANSI X3.92 standard, 649attacks on

    differential cryptanalysis, 258–259exhaustive key search, 233–234, 272linear cryptanalysis, 258–259

    complementation property, 256–257decryption algorithm, 255DESX, 273double DES, see Double DES

    c©1997 by CRC Press, Inc. — See accompanying notice at front of chapter.

  • Index 761

    encryption algorithm, 253expansion permutation, 252FIPS 46 standard, 654initial permutation (IP), 252, 277key schedule

    decryption, 256encryption, 255

    modes of operation, see Block cipher, modesof operation

    patent, 636permuted choices (PC1, PC2), 252properties and strengths, 256–259round, 252S-box, 252semi-weak key, 257

    anti-fixed point of, 257test vectors, 256triple-DES, 273weak key, 257

    fixed point of, 257Designated confirmer signature, 487Deterministic, 306Deterministic algorithm, 62Dickson polynomial, 314Dickson scheme, 314Dictionary attack, 42Difference of sets, 49Differential chaining attack, 375Differential cryptanalysis

    of block ciphers, 258, 271, 278–280Differential-linear cryptanalysis, 271Diffie-Hellman key agreement, 515–520, 522–524

    ANSI X9.42 standard, 651composite modulus, 537patent, 637

    Diffie-Hellman problem, 113–114composite moduli, 114, 131generalized, 113

    Diffie-Lamport one-time signature scheme, 485Diffusion, 20Digital envelope, 550Digital fingerprint, 321Digital signature, see SignatureDigital Signature Algorithm (DSA), 452–454, 483

    ANSI X9.30-1 standard, 651FIPS 186 standard, 655key generation, 452patent, 640, 658security of, 453signature generation, 452signature verification, 453use and throw coupons, 483

    Dimension of a vector space, 80Dirichlet theorem, 135

    Disavowal protocol, 477Discrete Fourier Transform (DFT), 631Discrete logarithms, 103–113

    baby-step giant-step algorithm, 104–106composite moduli, 114exhaustive search, 104for class groups, 130for elliptic curves, 130for hyperelliptic curves, 130function field sieve, 129generalized problem, 103heuristic running time, 129in subgroups of Z∗p, 113index-calculus algorithms, 109–112lambda method, 128number field sieve, 128Pohlig-Hellman algorithm, 107–109Pollard’s rho algorithm, 106–107problem definition, 103rigorously analyzed algorithms, 129security of individual bits, 116

    Divisible electronic coin, 487Division

    of integers, 63of polynomials, 79

    Division algorithmfor integers, 64for polynomials, 78

    Dixon’s algorithm, 95, 127DNA computer, 130Domain of a function, 6, 50Double DES, 235Double spending, 487Double-length MDC, 339DSA, see Digital Signature AlgorithmDynamic key establishment, 491Dynamic secret sharing scheme, 527

    EE-D-E triple encryption, 235, 272E-E-E triple encryption, 272Eavesdropper, 13, 495ECA, see Elliptic curve factoring algorithmECB, see Electronic codebook modeEffective key size, 224Electronic cash

    divisible, 487untraceable, 487

    Electronic codebook mode (ECB), 228–230ElGamal key agreement, 517ElGamal public-key encryption, 294–298

    generalizeddecryption algorithm, 297encryption algorithm, 297

    Handbook of Applied Cryptography by A. Menezes, P. van Oorschot and S. Vanstone.

  • 762 Index

    key generation, 297in Z∗p

    decryption algorithm, 295encryption algorithm, 295key generation, 294recommended parameter sizes, 296

    security of, 296ElGamal signature scheme, 454–459, 484

    generalizedkey generation, 458signature generation, 458signature verification, 458

    in Z∗pkey generation, 454security of, 455–456signature generation, 454signature verification, 454

    signature verification, 618variants of, 457

    Elliptic curvediscrete logarithm problem, 130ElGamal public-key encryption, 297in public-key cryptography, 316

    patents, 659RSA analogue, 315supersingular curve, 130, 316

    Elliptic curve factoring algorithm (ECA), 94, 125implementation reports, 126

    Elliptic curve primality proving algorithm, 145Encrypted key exchange (EKE), 538Encryption, 11

    see also Block ciphersee also Public-key encryptionsee also Stream cipher

    Encryption exponent for RSA, 286Encryption function, 11Encryption scheme, 12

    breakable, 14Enemy, 13, 495Enigma, 245, 276Entity, 13Entity authentication, 3, 386, 491

    ANSI X9.26 standard, 651FIPS 196 standard, 655ISO 11131 standard, 652ISO/IEC 9798 standard, 401–402, 404–405, 421,

    647see also Identification

    Entropy, 56–57, 246Ephemeral secret, 494Equivalence class, 68, 79Equivocation, 56Error-correcting code, 298, 363, 506Escrowed Encryption Standard (EES)

    FIPS 185, 654ESIGN signature scheme, 473–474, 486

    key generation, 473patent, 638, 658security of, 474signature generation, 473signature verification, 473

    Euclidean algorithmfor integers, 66for polynomials, 81–83

    Euler liar, 138Euler phi function (φ), 65Euler pseudoprime, 138Euler witness, 137Euler’s criterion, 137Euler’s theorem, 69Exclusive-or (XOR), 20Exhaustive key search, 14, 233–234, 272Existential forgery, 30, 326, 432exp (exponential function), 50Expected running time, 63Explicit authentication, 492Exponent array, 617Exponent recoding, see ExponentiationExponential-time algorithm, 59Exponentiation, 613–629, 633–634

    addition chains, 621exponent recoding, 627–629

    signed-digit representation, 627–628string-replacement representation, 628–

    629fixed-base comb method, 625–627fixed-base Euclidean method, 624–625fixed-base windowing method, 623–624left-to-right binary method, 615left-to-right k-ary method, 615modified left-to-right k-ary method, 616Montgomery method, 619–620repeated square-and-multiply algorithm, 71,

    84right-to-left binary method, 614simultaneous multiple, 617–618sliding-window method, 616vector-addition chains, 622–623

    Extendable secret sharing scheme, 526Extended Euclidean algorithm

    for integers, 67for polynomials, 82

    Extended Riemann Hypothesis (ERH), 165Extension field, 77Extractor, 406

    FFactor base, 94, 109

    c©1997 by CRC Press, Inc. — See accompanying notice at front of chapter.

  • Index 763

    Factoring integers, see Integer factorizationFactoring polynomials, see Polynomial factoriza-

    tionFail-stop signature scheme, 478–481, 488

    Heijst-Pedersen, 478–481Fair blind signature scheme, 487Fair cryptosystems, 640–641, 658

    for Diffie-Hellman key agreement, 641patent, 640

    FEAL block cipher, 259–262, 278–279attacks on, 278–279FEAL decryption algorithm, 261FEAL-8 encryption algorithm, 261FEAL-8 key schedule, 261FEAL-N, 262FEAL-NX, 262patent, 639test vectors, 262

    Feedback shift register (FSR), 195–203de Bruijn, 203definition of, 202delay element of, 202feedback bit of, 202feedback function of, 202Feedback with carry shift register (FCSR), 217–

    218, 222initial state of, 202linear feedback shift register, see Linear feed-

    back shift register (LFSR)non-singular, 203nonlinear feedback shift register, 202output sequence of, 202stage of, 202

    Feedback with carry shift register (FCSR), 217–218,222

    Feige-Fiat-Shamir identification protocol, 410–412,422

    Feige-Fiat-Shamir signature scheme, 447–449, 483identity-based modification, 449key generation, 447security of, 448signature generation, 448signature verification, 448

    Feistel cipher, 251, 276Fermat liar, 136Fermat number, 143, 166Fermat witness, 136Fermat’s primality test, 136Fermat’s theorem, 69Fiat-Shamir identification protocol

    basic version, 408patent, 638, 658

    Fiat-Shamir signature scheme, 483patent, 638, 658

    Field, 77characteristic of, 77definition of, 77extension field of, 77finite, see Finite fieldsubfield of, 77

    Filtering function, 208Finite field, 80–85

    definition of, 80order of, 80polynomial basis, 83

    FIPS, 654–655, 661ordering and acquiring, 656

    FIPS 186 pseudorandom bit generator, 174–175FISH stream cipher, 222Fixed-point chaining attack, 374Floyd’s cycle-finding algorithm, 91, 125Forced delay attack, 417Formal methods, 534, 541Forward certificate, 575Forward error correction, 363Forward search attack, 34, 42, 288, 420Fractionation, 276Frequency distribution

    of English digrams, 247of single English characters, 247

    Frequency test, 181Fresh key, 494Function, 6–10, 50

    bijection, 7composition of, 19definition of, 6injective, 46inverse, 7involution, 10one-to-one, 7one-way, 8onto, 7permutation, 10surjective, 46trapdoor one-way, 9

    Function field sieve, 129Functional diagram, 6Functional graph, 54

    component size, 55cycle length, 55predecessors size, 55rho-length, 55tail length, 55tree size, 55

    Functionally trusted third party, 39

    GGap of a sequence, 180

    Handbook of Applied Cryptography by A. Menezes, P. van Oorschot and S. Vanstone.

  • 764 Index

    Garner’s algorithm, 612–613Gauss’s algorithm, 68Gaussian integer method, 128gcd, see Greatest common divisorGeffe generator, 206General-purpose factoring algorithm, 90Generator

    of a cyclic group, 76, 160algorithm for finding, 163

    of F∗q , 81of F∗2m , 163of Z∗n, 69of Z∗p, 164

    algorithm for selecting, 164Generator matrix, 506Girault self-certified public key, 522GMR one-time signature scheme, 468–471, 486

    authentication tree, 470key generation, 469security of, 470signature generation, 469signature verification, 469

    GOAL stream cipher, 219Goldwasser-Kilian primality test, 166Goldwasser-Micali probabilistic public-key encryp-

    tion, 307–308decryption algorithm, 307encryption algorithm, 307key generation, 307security of, 308

    Golomb’s randomness postulates, 180Goppa code, 299, 317Gordon’s algorithm for strong prime generation, 150GOST block cipher, 282GQ identification protocol, 412–414, 422

    patent, 639, 658GQ signature scheme, 450–451

    key generation, 450message recovery variant, 451patent, 639, 658security of, 451signature generation, 450signature verification, 450

    Grandmaster postal-chess problem, 418Greatest common divisor

    binary extended gcd algorithm, 608–610, 632binary gcd algorithm, 606–607, 632Euclidean algorithm, 66Lehmer’s gcd algorithm, 607–608, 632of integers, 64of polynomials, 81

    Group, 75–76cyclic, 76definition of, 75

    of units, 77order of, 75subgroup of, 76

    Group signature, 488GSM, 586GSS-API, 655, 661Günther’s implicitly-certified public key, 521Günther’s key agreement, 522

    HHagelin M-209, 245, 276Hamming weight, 105Handwritten signature, 23Hard predicate, 115Hash function, 33, 321–383

    alternate terminology, 325, 371applications, 321–322, 330–331attacks, 368–375

    birthday, 369–371chaining, 373–375Pseudo-collisions, 371–373

    based on block ciphers, 338–343Abreast Davies-Meyer, 380Davies-Meyer, 341Matyas-Meyer-Oseas, 341MDC-2, 342MDC-4, 343Merkle’s DES-based hash, 338, 339, 378Miyaguchi-Preneel, 341N-Hash, 380Tandem Davies-Meyer, 380

    based on modular arithmetic, 351–352MASH-1, 352MASH-2, 352

    cascading, 334collision resistant (CRHF), 325customized, 343–351

    HAVAL, 379MD2, 380MD4, 346MD5, 347RIPEMD, 380RIPEMD-128, 339, 380RIPEMD-160, 339, 350Secure Hash Algorithm (SHA-1), 348Snefru, 380

    definition of, 322ideal security, 336initialization value (IV), 335MD-strengthening, see MD-strengtheningMerkle’s meta-method, 333one-way (OWHF), 325padding, 334–335properties of

    c©1997 by CRC Press, Inc. — See accompanying notice at front of chapter.

  • Index 765

    2nd-preimage resistance, 323collision resistance, 324compression, 322ease of computation, 322local one-wayness, 331near-collision resistance, 331non-correlation, 331partial-preimage resistance, 331preimage resistance, 323strong collision resistance, 324weak collision resistance, 324

    r-collision resistant, 424strong one-way, 325universal classes of, 376universal one-way, 377weak one-way, 325

    Hash-code, 321Hash-result, 321Hash-value, 33, 321HAVAL hash function, 379Heijst-Pedersen fail-stop signature scheme, 478–481

    key generation, 478proof-of-forgery algorithm, 481signature generation, 479signature verification, 479

    Hellman-Merkle patent, 637, 658Heuristic security, 43, 533High-order digit, 593Hill cipher, 240, 274Historical work factor, 44HMAC, 355Homomorphic property of RSA, 289Homophonic substitution cipher, 17, 240Hybrid protocol, 512Hyperelliptic curve

    discrete logarithm problem, 130ElGamal public-key encryption, 297

    Hypothesis testing, 179–180

    IIC card, 387IDEA block cipher, 263–265, 279–280

    attacks on, 279–280decryption algorithm, 264encryption algorithm, 264key schedule, 264patent, 640, 658test vectors, 265weak keys, 279

    Ideal secret sharing scheme, 526, 527Identification, 3, 24–25, 385–424

    applications of, 387attacks on, 417–420, 424

    chosen-text, 417

    forced delay, 417impersonation, 417interleaving, 417local, 419non-interactive, 419off-line, 419pre-play, 397, 398reflection, 417remote, 419replay, 417

    challenge-response, see Challenge-responseidentification

    mutual, 387passwords, see Passwords (weak

    authentication)questionnaire-based, 420relation to signatures, 388unilateral, 387zero-knowledge, see Zero-knowledge identifi-

    cationsee also Entity authentication

    Identification Friend or Foe (IFF) system, 421Identity verification, 385Identity-based key establishment, 493Identity-based system, 538, 561–562, 587IDUP, 661IEEE P1363 standard, 660IETF, 655Image of a function, 6, 50Impersonation, 27, 42, 386, 417Impersonator, 495Implicit key authentication, see Key authenticationImplicitly-certified public key, 520–522, 562–563,

    588Diffie-Hellman using, 522–524identity-based, 563of Girault, 522of Günther, 521self-certified, 563

    Imprint, 321Improved PES (IPES), 279In-line trusted third party, 547Incremental hashing, 378Independent events, 51Index of coincidence, 248, 275Index-calculus algorithm, 109–112, 128

    Gaussian integer method, 128in F2m , 111

    implementation reports, 128in Zp, 110

    implementation reports, 128linear sieve, 128residue list sieve, 128

    Information dispersal algorithm (IDA), 539

    Handbook of Applied Cryptography by A. Menezes, P. van Oorschot and S. Vanstone.

  • 766 Index

    Information rate, 527Information security, 2

    objectives of, 3Information security service, 14

    breaking of, 15Information theory, 56–57Initial state

    of an FSR, 202of an LFSR, 196

    Injective function, 46, 50Inner product, 118Input size, 58Insider, 496

    one-time, 496permanent, 496

    Integer, 49multiple-precision, 593negative

    signed-magnitude representation, 593two’s complement representation, 594

    single-precision, 593Integer arithmetic, see Multiple-precision integer

    arithmeticInteger factorization, 89–98

    continued fraction algorithm, 126Dixon’s algorithm, 95, 127elliptic curve algorithm, 94general number field sieve, 98general-purpose algorithms, 90heuristic running times, 127multiple polynomial quadratic sieve, 97Pollard’s p− 1 algorithm, 92–93Pollard’s rho algorithm, 91–92problem definition, 89quadratic sieve algorithm, 95–97random square methods, 94–98special number field sieve, 98special-purpose algorithms, 90trial division, 90–91

    Integers modulo n, 67–71Integrity check value (ICV), 363Interactive proof system, 406

    Arthur-Merlin games, 421completeness, 406soundness, 406

    Interleaving attack, 42, 417, 531, 540Interloper, 13Internal vertex, 557Internet security standards, 655–656, 661Intersection of sets, 49Intruder, 13, 495Intruder-in-the-middle attack, 530, 540Inverse function, 7Inversion attack on stream ciphers, 219

    Involution, 10Irreducible polynomial, 78, 154–160

    algorithm for generating, 156algorithm for testing, 155number of, 155primitive polynomial, see Primitive

    polynomialtrinomials, 157

    ISO standards, see ISO/IEC standardsISO/IEC 9796, 442–444, 482–483ISO/IEC standards, 645–648, 651–653, 660–661

    committee draft (CD), 645draft international standard (DIS), 645ordering and acquiring, 656working draft (WD), 645

    Isomorphic, 81, 104Iterated block cipher, 251ITU, 653

    JJacobi sum primality test, 144, 166Jacobi symbol, 73

    computing, 73Jefferson cylinder, 243, 274Joint entropy, 56JTC1, 645

    KKaratsuba-Ofman multiplication, 630Kasiski’s method, 248, 275KDC, see Key distribution center (KDC)Kerberos authentication protocol, 401, 501–502,

    535–536RFC 1510, 656

    Kerckhoffs’ assumption, 225Kerckhoffs’ desiderata, 14Key, 11

    archival, 580backup, 580cryptoperiod of, 553data, 552de-registration, 580derived, 568destruction, 580fresh, 494generator, 549installation, 579key-encrypting, 552key-transport, 552layering, 551–553long-term, 553master, 551notarization, 568offsetting, 568private, 27, 544

    c©1997 by CRC Press, Inc. — See accompanying notice at front of chapter.

  • Index 767

    public, 27, 544public-key vs. symmetric-key, 31–32, 551recovery, 580registration, 579revocation, 566, 580secret, 544separation, 567short-term, 553symmetric, 544terminal, 552update, 580variant, 568

    Key access server, 549Key agreement, 34, 35, 505–506, 515–524, 536–

    538Blom’s key pre-distribution system, 506definition of, 490Diffie-Hellman, 516ElGamal, 517encrypted key exchange (EKE), 538Günther, 522MTI/A0, 517–519relation to key transport, 491Station-to-station (STS), 519

    Key authentication, 492Key clustering attack on block ciphers, 281Key confirmation, 492Key control, 494Key derivation, 490, 498Key distribution

    confidential keys, 551–555key layering, 551–553key translation center, 553–554symmetric-key certificates, 554–555

    public keys, 555–566authentication trees, 556–559certificates, 559–561identity-based, 561–562implicitly-certified, 562–563

    Key distribution center (KDC), 491, 500, 547Key distribution pattern, 536Key distribution problem, 16, 546Key distribution system (KDS), 505

    Blom’s KDS bound, 505security against coalitions, 505

    Key escrow, 584–586agent, 550, 584Clipper, 584

    Key establishment, 489–541analysis of, 530–534, 540–541attacks on

    interleaving, 531intruder-in-the-middle, 530misplaced trust in server, 531

    reflection, 530authenticated, 492, 493compliant, 532definition of, 35, 490identity-based, 493key agreement, see Key agreementkey transport, see Key transportmessage-independent, 493operational, 532resilient, 532simplified classification, 491

    Key life cycle, 577–581key states, 580

    Key management, 36–38, 543–590ANSI X9.17 standard, 650ANSI X9.24 standard, 650ANSI X9.28 standard, 651ANSI X9.42 standard, 651centralized, 546controlling key usage, 567–570definition of, 35, 544ISO 8732 standard, 652ISO 10202-7 standard, 652ISO 11166 standard, 652ISO 11568 standard, 653ISO/IEC 11770 standard, 647key agreement, see Key agreementkey distribution, see Key distributionkey establishment, see Key establishmentkey life cycle, 577–581key transport, see Key transport

    Key management facility, 549Key notarization, 568

    patent, 642, 658Key pair, 12Key pre-distribution scheme, 540

    definition of, 490Key server, 549Key space, 11, 21, 224Key tag, 568Key translation center (KTC), 491, 500, 547, 553Key transport, 35, 497–504, 506–515, 535–536

    AKEP1, 499AKEP2, 499Beller-Yacobi (2-pass), 514Beller-Yacobi (4-pass), 513COMSET, 536definition of, 490Kerberos, 501–502Needham-Schroeder public-key, 508Needham-Schroeder shared-key, 503Otway-Rees protocol, 504relation to key agreement, 491Shamir’s no-key protocol, 500

    Handbook of Applied Cryptography by A. Menezes, P. van Oorschot and S. Vanstone.

  • 768 Index

    X.509 three-way, 512X.509 two-way, 511

    Key update, 490Keyed hash function, see Message authentication

    code (MAC)Keying material, 544Keying relationship, 544Keystream, 20, 193, 194Keystream generator, 21, 194Khafre block cipher, 271

    attacks on, 281patent, 644

    Khufu block cipher, 271attacks on, 281patent, 644

    Knapsack generator, 209, 220Knapsack problem, 131Knapsack public-key encryption, 300–306

    Chor-Rivest, 302–306Merkle Hellman, 300–302

    Knapsack set, 117density of, 120

    Known-key attack, 42, 496, 534Known-key triangle attack, 538Known-message attack, 432Known-plaintext attack, 41, 225KryptoKnight, 535, 541KTC, see Key translation center (KTC)

    LL3-lattice basis reduction algorithm, 118–120, 131Lagrange’s theorem, 76Lambda method for discrete logarithms, 128Lamport’s one-time-password scheme, 396Lanczos method, 129Lattice, 118

    dimension of, 118reduced basis, 118

    Lattice basis reduction algorithm, 118–120, 131, 317Law of large numbers, 52Law of quadratic reciprocity, 72lcm, see Least common multipleLeading coefficient, 78LEAF, 584–585Leaf of a binary tree, 557Least common multiple, 64Least significant digit, 593Legendre symbol, 72

    computing, 73Lehmer’s gcd algorithm, 607–608, 632Length of a vector, 118Liar, 135

    Euler, 138Fermat, 136

    strong, 139Life cycle, see Key life cycleLinear code, 506Linear combination, 80Linear complexity, 198–201

    algorithm for computing, see Berlekamp-Massey algorithm

    of a finite sequence, 198of a random periodic sequence, 199of a random sequence, 198of an infinite sequence, 198profile, 199

    Linear complexity profile, 199–200algorithm for computing, 201limitations of, 200of a random sequence, 199

    Linear congruential generator, 170, 187multivariate congruential generator, 187truncated, 187

    Linear consistency attack, 219–220Linear cryptanalysis

    of block ciphers, 258, 271, 278, 280of stream ciphers, 219

    Linear feedback shift register (LFSR), 195–201connection polynomial of, 196definition of, 195delay element of, 195feedback bit of, 196initial state of, 196maximum-length, 197non-singular, 196output sequence of, 195stage of, 195

    Linear sieve, 128Linear syndrome attack, 218Linear system (solving large), 129Linearly dependent, 80Linearly independent, 80LION block cipher, 282Little-endian, 344Little-o notation, 59Lock-in, 221Logarithm, 49LOKI block cipher, 281

    LOKI’89, 281LOKI’91, 270, 281

    Long-term key, 553Low-order digit, 593Luby-Rackoff block cipher, 282LUC cryptosystem, 314

    LUCDIF, 316LUCELG, 316

    Lucas-Lehmer primality test, 142Lucifer block cipher, 276

    c©1997 by CRC Press, Inc. — See accompanying notice at front of chapter.

  • Index 769

    patent, 641, 659

    Mm-sequence, 197MAC, see Message authentication code (MAC)Manipulation detection code, see Modification de-

    tection codeMapping, 6, 50Markov cipher, 280MASH-1 hash function, 352

    ISO/IEC 10118-4 standard, 647MASH-2 hash function, 352

    ISO/IEC 10118-4 standard, 647Master key, 551Matyas-Meyer-Oseas hash function, 341

    ISO/IEC 10118-2 standard, 647Maurer’s algorithm for provable prime generation,

    153, 167Maurer’s universal statistical test, 183–185, 189Maximum order complexity, 217Maximum-length LFSR, 197Maximum-rank-distance (MRD) code, 317McEliece public-key encryption, 298–299, 317

    decryption algorithm, 299encryption algorithm, 299key generation, 298recommended parameter sizes, 299security of, 299

    MD-strengthening, 334, 335, 337MD2 hash function, 380

    RFC 1319, 655MD4 hash function, 346

    RFC 1320, 655MD5 hash function, 347

    RFC 1321, 655MD5-MAC, 358MDC, see Modification detection codeMDC-2 hash function, 342

    ISO/IEC 10118-2 standard, 647patent, 639

    MDC-4 hash function, 343patent, 639

    MDS code, 281, 506Mean, 51Measure of roughness, 249Mechanism, 34Meet-in-the-middle attack

    on double DES, 235on double encryption, 235

    time-memory tradeoff, 236on multiple encryption

    time-memory tradeoff, 236Meet-in-the-middle chaining attack, 374Merkle channel, 48

    Merkle one-time signature scheme, 464–466, 485authentication tree, 466key generation, 464patent, 643security of, 465signature generation, 465signature verification, 465

    Merkle puzzle scheme, 47, 537Merkle’s DES-based hash function, 338, 339, 378Merkle’s meta-method for hashing, 333Merkle-Hellman knapsack encryption, 300–302,

    317–318basic

    decryption algorithm, 301encryption algorithm, 301key generation, 300

    multiple-iteratedkey generation, 302

    patent, 637security of, 302

    Mersenne number, 142Mersenne prime, 142, 143, 160Message authentication, see Data origin authenti-

    cationMessage authentication code (MAC), 33, 323,

    352–359, 381–383applications of, 323, 330based on block ciphers, 353–354

    CBC-MAC, see CBC-MACCFB-64 MAC, 650RIPE-MAC, see RIPE-MAC

    birthday attack on, 352customized, 356–358

    bucket hashing, 382MD5-MAC, 358Message Authenticator Algorithm

    (MAA), 356definition, 325for stream ciphers, 358–359

    CRC-based, 359Lai-Rueppel-Woollven scheme, 383Taylor’s scheme, 383

    from MDCs, 354–355envelope method with padding, 355hash-based MAC, 355HMAC, 355secret prefix method, 355secret suffix method, 355XOR MAC, 382

    ISO 8730 standard, 652ISO 9807 standard, 652properties of

    compression, 325computation-resistance, 325

    Handbook of Applied Cryptography by A. Menezes, P. van Oorschot and S. Vanstone.

  • 770 Index

    ease of computation, 325key non-recovery, 325

    retail MAC, 650types of attack

    adaptive chosen-text, 326chosen-text, 326known-text, 326

    types of forgeryexistential, 326selective, 326

    see also CBC-MACMessage authentication tag system, 376Message Authenticator Algorithm (MAA), 356

    ISO 8731-2 standard, 652Message concealing in RSA, 290, 313Message digest, 321Message integrity code (MIC), 323Message space, 11Message-independent key establishment, 493Micali-Schnorr pseudorandom bit generator, 186Miller-Rabin primality test, 139, 165MIME, 656, 661Minimum disclosure proof, 421Minimum polynomial, 156Mips year, 126MISSI, 590Mixed-radix representation, 611, 630Mixing algebraic systems, 279Miyaguchi-Preneel hash function, 341Möbius function, 154mod notation, 64Modes of operation

    multiple modes, see Multiple encryption, modesof operation

    single modes, see Block cipher, modes of op-eration

    Modification detection code (MDC), 33, 323, 324Modified-Rabin pseudorandom bit generator, 190Modified-Rabin signature scheme, 439–442, 482

    key generation, 440security of, 441signature generation, 440signature verification, 440

    Modular arithmetic, see Multiple-precision modu-lar arithmetic

    Modular exponentiation, see ExponentiationModular reduction, 599

    Barrett, 603–605, 631Montgomery, 600–602, 631special moduli, 605–606

    Modular representation, see Mixed-radix represen-tation

    Modulus, 67Monic polynomial, 78

    Mono-alphabetic substitution cipher, see Substitu-tion cipher

    Monobit test, 181Monotone access structure, 527Montgomery exponentiation, 619–620Montgomery multiplication, 602–603Montgomery reduction, 600–602, 631MOSS, 656

    RFC 1848, 656Most significant digit, 593MTI protocols, 518, 537MTI/A0 key agreement, 517–519, 537

    Goss variant, 537patent, 644, 659

    Multi-secret threshold scheme, 527Multiple encryption, 234–237

    definition of, 234double encryption, 234modes of operation, 237

    triple-inner-CBC mode, 237triple-outer-CBC mode, 237

    triple encryption, 235E-D-E, 235

    two-key triple-encryption, 235Multiple polynomial quadratic sieve, 97Multiple-precision integer, 593Multiple-precision integer arithmetic, 592–599

    addition, 594–595division, 598–599

    normalization, 599gcd, see Greatest common divisormultiplication, 595–596

    discrete Fourier transform (DFT), 631Karatsuba-Ofman, 630

    squaring, 596–597subtraction, 594–595

    Multiple-precision modular arithmetic, 599–606addition, 600exponentiation, see Exponentiationinversion, 610multiplication

    classical, 600Montgomery multiplication, 602–603

    reduction, 599Barrett, 603–605, 631Montgomery, 600–602, 631special moduli, 605–606

    subtraction, 600Multiplexer generator, 220Multiplicative group

    of Zn, 69of a finite field, 81

    Multiplicative inverse, 68computing, 71, 84, 610

    c©1997 by CRC Press, Inc. — See accompanying notice at front of chapter.

  • Index 771

    Multiplicative property in RSA, 288, 435, 482Multiplicity of a factor, 122Multispeed inner-product generator, 220Multivariate polynomial congruential generator,

    187Mutual authentication, 387, 402, 405, 494Mutual information, 57Mutually exclusive events, 51

    NN-Hash function, 380Name server, 549Needham-Schroeder public-key, 508, 536Needham-Schroeder shared-key, 401, 503, 535Next-bit test, 171Next-discrepancy, 200Nibble, 443NIST, 654Noise diode, 40Non-interactive protocol, 493Non-interactive ZK proof, 424Non-malleable encryption, 311, 319Non-repudiation, 3, 4, 582–584

    ISO/IEC 13888 standard, 648Non-singular

    FSR, 203LFSR, 196

    Nonce, 397, 497Nonlinear combination generator, 205–208

    combining function of, 205Nonlinear feedback shift register, see Feedback shift

    register (FSR)Nonlinear filter generator, 208–209

    filtering function, 208Nonlinear order, 205Normal basis, 168

    exponentiation, 642multiplication, 642patents, 642–643, 659

    Normal distribution, 176–177mean of, 176standard, 176variance of, 176

    Normal polynomial, 168Normalization, 599Notarized key, 569Notary

    agent, 550seal, 569service, 582

    NP, 60NP-complete, 61NP-hard, 62NPC, 61

    Number field sievefor discrete logarithms, 128for integer factorization, 98, 126

    implementation reports, 126, 127general number field sieve, 98special number field sieve, 98, 126

    Number theory, 63–75Nyberg-Rueppel signature scheme, 460–462, 485

    security of, 461signature generation, 461signature verification, 461

    OObject identifier (OID), 660OFB, see Output feedback modeOff-line trusted third party, 548Ohta-Okamoto identification protocol, 422On-line certificate, 576On-line trusted third party, 547On-line/off-line signature, 486

    patent, 644One-key encryption, 15One-sided statistical test, 179One-time insider, 496One-time pad, 21, 192–193, 274

    patent, 657One-time password scheme, 395–397One-time signature scheme, 462–471

    Diffie-Lamport, 485GMR, 468–471Merkle, 464–466Rabin, 462–464validation parameters, 462

    One-to-one function, 7–8, 50One-way cipher, 377One-way function, 8–9, 327

    DES-based, 190, 328exponentiation modulo a prime, 115, 329multiplication of large primes, 329Rabin function, 115RSA function, 115

    One-way hash function (OWHF), 325One-way permutation, 115, 328Onto function, 7, 50Open Systems Interconnection (OSI), 653, 660Operational, 532Opponent, 13, 495

    see also AttackerOptimal normal basis, 168, 659Oracle, 88Order

    generating element of maximum order in Z∗n,163

    of Z∗n, 69

    Handbook of Applied Cryptography by A. Menezes, P. van Oorschot and S. Vanstone.

  • 772 Index

    of a finite field, 80of a group, 75of a group element, 76, 160

    algorithm for determining, 162of an element in Z∗n, 69

    Otway-Rees protocol, 504, 536Output feedback mode (OFB), 232–233

    as a stream cipher, 233changing IV in, 232counter mode, 233feedback size, 233

    Outsider, 496OWHF, see One-way hash functionOwnership, 3

    PP, 60Palindromic keys of DES, 257Party, 13Passcode generator, 402Passive adversary, 15Passive attack, 41, 495Passkey, 395Passphrase, 390Passwords (weak authentication), 388–397, 420

    aging, 390attacks on, 391–393

    dictionary, 392exhaustive search, 391password-guessing, 392pre-play, 397replay, 391

    encrypted password file, 389entropy, 392generator, 387one-time, 395–397

    Lamport’s scheme, 396passkey, 395passphrase, 390personal identification number (PIN), 394rules, 389salting, 390stored password file, 389UNIX, 393–394

    Patents, 635–645, 657–659ordering and acquiring, 645priority date, 636validity period, 636

    PEM, see Privacy Enhanced Mail (PEM)Pepin’s primality test, 166Perceptrons problem, 423Perfect forward secrecy, 496, 534Perfect power

    testing for, 89

    Perfect secrecy, 42, 227, 307Perfect secret sharing scheme, 526, 527Perfect zero-knowledge protocol, 407Period of a periodic sequence, 180Periodic sequence, 180

    autocorrelation function of, 180cycle of, 180period of, 180

    Permanent insider, 496Permutation, 10, 50Permutation polynomial, 314Permuted kernel problem, 423Personal Identification Number (PIN)

    ANSI X9.8 standard, 649ISO 9564 standard, 652

    PGP, see Pretty Good Privacy (PGP)Phi function (φ), 65Photuris, 661Physically secure channel, 13PIKE stream cipher, 222PIN, see Passwords (weak authentication), see Per-

    sonal Identification Number (PIN)PKCS standards, 656, 661

    ordering and acquiring, 657PKCS #1, 445–447, 483

    Plaintext, 11Plaintext-aware encryption scheme, 311–312Playfair cipher, 239, 274Pless generator, 218PN-sequence, 181Pocklington’s theorem, 144Pohlig-Hellman algorithm, 107–109, 128Pohlig-Hellman cipher, 271

    patent, 642, 659Poker test, 182, 188Policy Certification Authority (PCA), 589Pollard’s p− 1 algorithm, 92–93, 125Pollard’s rho algorithm

    for discrete logarithms, 106–107, 128for factoring, 91–92, 125

    Polyalphabetic substitution cipher, 18, 241–242,273–274

    auto-key cipher, 242Beaufort cipher, 241cipher machine, see Cipher machinePURPLE cipher, 276Vigenère cipher

    auto-key, 242compound, 241full, 242running-key, 242simple, 18, 241single mixed alphabet, 242

    Polygram substitution cipher, 239

    c©1997 by CRC Press, Inc. — See accompanying notice at front of chapter.

  • Index 773

    Polynomial, 78irreducible, 78leading coefficient of, 78

    Polynomial basis, 83Polynomial factorization, 122–124, 132

    Berlekamp’s Q-matrix algorithm, 124square-free factorization, 123

    Polynomial-time algorithm, 59Polynomial-time indistinguishability, 318Polynomial-time statistical test, 171Polynomially security public-key encryption, 306Polytime reduction, 61, 88Practical security, 43Pre-play attack, 397, 398Pre-positioned secret sharing scheme, 527Precision, 593Preimage, 6, 50Preimage resistance, 323Pretty Good Privacy (PGP), 661Primality proving algorithm, see Primality test, true

    primality testPrimality test

    probabilistic primality test, 135–142comparison, 140–142Fermat’s test, 136Miller-Rabin test, 139Solovay-Strassen test, 138

    true primality test, 142–145Atkin’s test, 145Goldwasser-Kilian test, 166Jacobi sum test, 144Lucas-Lehmer test, 142Pepin’s test, 166

    Prime number, 9, 64Prime number generation, 145–154

    algorithmsGordon’s algorithm, 150Maurer’s algorithm, 153NIST method, 151random search, 146

    DSA primes, 150–152incremental search, 148provable primes, 152–154random search, 145–149strong primes, 149–150

    Prime number theorem, 64Primitive element, see GeneratorPrimitive normal polynomial, 168Primitive polynomial, 157–160

    algorithm for generating, 160algorithm for testing, 157definition of, 84

    Primitives, 4Principal, 495

    Principal square root, 74Privacy, see ConfidentialityPrivacy Enhanced Mail (PEM), 588, 655

    RFCs 1421–1424, 655Private key, 26, 27, 544Private-key certificate, see Symmetric-key certifi-

    catePrivate-key encryption, 15Probabilistic public-key encryption, 306–312,

    318–319Blum-Goldwasser, 308–311Goldwasser-Micali, 307–308security level

    polynomially secure, 306semantically secure, 306

    Probability, 50Probability density function, 176Probability distribution, 50Probability theory, 50–55Probable prime, 136Product cipher, 20, 251Proof of knowledge, 406, 421, 422Proposed Encryption Standard (PES), 279Protection lifetime, 553, 578Protocol

    authentication, 493cut-and-choose, 410, 421definition of, 33, 490failure of, 34hybrid, 512identification, see Identificationkey establishment, see Key establishmentmessage-independent, 493non-interactive, 493witness hiding, 423zero-knowledge, 405–417

    Provable prime, 134, 142Provable security, 43, 533Prover, 386Pseudo-collision, 371Pseudo-Hadamard transform, 266Pseudo-noise sequence, 181Pseudoprime, 136

    Euler, 138strong, 139

    Pseudorandom bit generator (PRBG), 173–175ANSI X9.17, 173definition of, 170FIPS 186, 174–175linear congruential generator, 170, 187

    Pseudorandom bit sequence, 170Pseudorandom function, 331Pseudorandom sequences, 39–41Pseudosquares modulo n, 74, 99, 308

    Handbook of Applied Cryptography by A. Menezes, P. van Oorschot and S. Vanstone.

  • 774 Index

    Public key, 26, 27, 544compared vs. symmetric-key, 31–32, 551implicitly-certified, 520–522

    Public-key certificate, 39, 559–561, 587data part, 559distinguished name, 559signature part, 559

    Public-key encryption, 25–27, 283–319advantages of, 31disadvantages of, 32ElGamal, 294–298knapsack, 300–306

    Chor-Rivest, 302–306Merkle-Hellman, 300–302

    LUC, see LUC cryptosystemMcEliece, 298–299non-malleable, 311plaintext-aware, 311–312probabilistic, 306–312

    Blum-Goldwasser, 308–311Goldwasser-Micali, 307–308

    Rabin, 292–294reversible, 28RSA, 285–291types of attacks, 285Williams, 315

    PURPLE cipher, 276Puzzle system, 376, 537

    QQuadratic congruential generator, 187Quadratic non-residues, 70Quadratic residues, 70Quadratic residuosity problem, 99, 127, 307Quadratic sieve factoring algorithm, 95–97, 126

    implementation reports, 126Quantum computer, 130Quantum cryptography, 48, 535Quotient, 64, 78

    RRabin one-time signature scheme, 462–464

    key generation, 463resolution of disputes, 463signature generation, 463signature verification, 463

    Rabin public-key encryption, 292–294, 315decryption algorithm, 292encryption algorithm, 292key generation, 292security of, 293use of redundancy, 293

    Rabin signature scheme, 438–442, 482ISO/IEC 9796, 442–444key generation, 438

    signature generation, 438signature verification, 439use of redundancy, 439

    Rabin’s information dispersal algorithm (IDA),539

    RACE/RIPE project, 421, 536Radix representation, 592–593

    base b, 592binary, 592high-order digit, 593least significant digit, 593low-order digit, 593mixed, 611, 630most significant digit, 593precision, 593radix b, 592

    Ramp schemes, see Secret sharingRandom bit generator, 39–41, 171–173

    cryptographically secure pseudorandom bitgenerator, see Cryptographically sec-ure pseudorandom bit generator(CSPRBG)

    definition of, 170hardware techniques, 172pseudorandom bit generator, see Pseudorand-

    om bit generator (PRBG)software techniques, 172

    Random cipher, 225Random cipher model, 246Random function, 190

    poly-random, 190Random mappings model, 54Random oracle model, 316Random square methods, 94–98Random variable, 51

    continuous, 176entropy of, 56expected value of, 51mean of, 51standard deviation of, 51variance of, 51

    Randomized algorithm, 62–63Randomized DES (RDES) block cipher, 278Randomized encryption, 225, 296, 306Randomized stream cipher, 216Range of a function, 46Rate of an iterated hash function, 340Rational numbers, 49RC2 block cipher, 282RC4 stream cipher, 222, 282RC5 block cipher, 269–270, 280–281

    attacks on, 280–281decryption algorithm, 270encryption algorithm, 270

    c©1997 by CRC Press, Inc. — See accompanying notice at front of chapter.

  • Index 775

    key schedule, 270patent, 659test vectors, 270weak keys, 281

    Real number, 49Real-time, 385Reblocking problem in RSA, 435–436, 482Receipt, 3Receiver, 13Reduced basis, 118Redundancy, 29, 431

    of English, 245Reflection attack, 417, 530, 540Registration authority, 549Related-key attack on block ciphers, 281Relatively prime, 64Remainder, 64, 78Replay attack, 42, 417Requests for Comments, see RFCsResidue list sieve, 128Resilient key establishment protocol, 532Response, 409Retail banking, 648Retail MAC, 650Reverse certificate, 575Reversible public-key encryption scheme, 28Revocation, 3RFCs, 655–656

    ordering and acquiring, 657Ring, 76–77

    commutative, 77definition of, 76group of units, 77polynomial, 78–79

    Rip van Winkle cipher, 216RIPE-MAC, 354, 381RIPEMD hash function, 380RIPEMD-128 hash function, 339, 380RIPEMD-160 hash function, 339, 350

    ISO/IEC 10118-3 standard, 647Root vertex, 557Rotor-based machine, see Cipher machineRound function, 251Round of a product cipher, 20RP, 63RSA-129 number, 126, 130RSA problem, 98–99, 127, 287

    security of individual bits, 116RSA pseudorandom bit generator, 185–186RSA public-key encryption, 285–291, 312–315

    decryption algorithm, 286, 611, 613decryption exponent, 286elliptic curve analogue, 315encryption algorithm, 286

    encryption exponent, 286key generation, 286modulus, 286patent, 638prime selection, 290recommended modulus size, 290security of, 287–290

    adaptive chosen-ciphertext attack, 289,313

    common modulus attack, 289cycling attacks, 289, 313forward search attack, 288message concealing, 290, 313multiplicative properties, 288polynomially related plaintext, 313relation to factoring, 287small decryption exponent, 288small encryption exponent, 288, 291, 313

    unbalanced, 314RSA signature scheme, 433–438, 482

    ANSI X9.31-1 standard, 651bandwidth efficiency, 437ISO/IEC 9796, 442–444key generation, 434patent, 638PKCS #1, 445–447reblocking problem, 435–436, 482redundancy function, 437security of, 434–435signature generation, 434, 613signature verification, 434

    Run of a sequence, 180Running key generator, 194Runs test, 182, 188

    SS/MIME, 661Safe prime, 537

    algorithm for generating, 164definition of, 164

    SAFER block cipher, 266–269, 280attacks on, 280SAFER K-64 decryption algorithm, 269SAFER K-64 encryption algorithm, 268SAFER K-64 key schedule, 268SAFER K-128, 280SAFER SK-64 key schedule, 268SK-128, 280test vectors, 269

    Salt, 288, 390Schnorr identification protocol, 414–416, 422

    patent, 639Schnorr signature scheme, 459–460, 484

    Brickell-McCurley variant, 484

    Handbook of Applied Cryptography by A. Menezes, P. van Oorschot and S. Vanstone.

  • 776 Index

    Okamoto variant, 484patent, 639signature generation, 459signature verification, 460

    SEAL stream cipher, 213–216implementation report, 222patent, 222test vectors, 215

    Sealed authenticator, 361Sealed key, 5682nd-preimage resistance, 323, 325Secrecy, see ConfidentialitySecret broadcasting scheme, 540Secret key, 544Secret-key certificate, 588Secret sharing, 524–528, 538–540

    access structure, 526authorized subset, 527dynamic, 527extendable, 526generalized, 526–528ideal, 527information rate, 527multi-secret threshold, 527perfect, 526, 527pre-positioned, 527ramp schemes, 539shared control schemes, 524–525threshold scheme, 525–526verifiable, 527visual cryptography, 539with disenrollment, 528

    Secure channel, 13Secure Hash Algorithm (SHA-1), 348

    ANSI X9.30-2 standard, 651FIPS 180-1 standard, 654ISO/IEC 10118-3 standard, 647

    Secured channel, 13Security domain, 570Security policy, 545Seed, 21, 170Selective forgery, 326, 432Self-shrinking generator, 221Self-synchronizing stream cipher, 194–195Semantically secure public-key encryption, 306Semi-weak keys of DES, 257Sender, 13Sequence

    block of, 180de Bruijn, 203gap of, 180m-sequence, 197periodic, 180pn-sequence, 181

    pseudo-noise, 181run of, 180

    Sequence numbers, 399Serial test, 181, 188Session key, 36, 494Session key establishment, 491SHA-1, see Secure Hash Algorithm (SHA-1)Shadow, 538Shamir’s no-key protocol, 500, 535Shamir’s threshold scheme, 526, 539Shared control schemes, 524–525Shares, 524–528, 538SHARK block cipher, 281Shift cipher, 239Short-term key, 553Shrinking generator, 211–212

    implementation report, 221Sieving, 97Signature, 3, 22–23, 28–30, 425–488

    arbitrated, 472–473blind, see Blind signature schemedesignated confirmer, 487deterministic, 427Diffie-Lamport, 485Digital Signature Algorithm (DSA), 452–454ElGamal, 454–459ESIGN, 473–474fail-stop, see Fail-stop signature schemeFeige-Fiat-Shamir, 447–449framework, 426–433generation algorithm, 426GMR, 468–471GQ, 450–451group, 488handwritten, 23Merkle one-time, 464–466modified-Rabin, 439–442Nyberg-Rueppel, 460–462on-line/off-line, 486Ong-Schnorr-Shamir (OSS), 482, 486Rabin, 438–442Rabin one-time, 462–464randomized, 427relation to identification, 388resolution of disputes, 30RSA, 433–438Schnorr, 459–460strongly equivalent, 485types of attacks, 432undeniable, see Undeniable signature schemeverification algorithm, 426with appendix, 481

    framework, 428–430ISO/IEC 14888 standard, 648

    c©1997 by CRC Press, Inc. — See accompanying notice at front of chapter.

  • Index 777

    PKCS #1, 445–447with message recovery, 29

    framework, 430–432ISO/IEC 9796 standard, 442–444, 646,

    660with redundancy, 29

    Signature notarization, 583Signature space, 427Signature stripping, 510Signed-digit representation, 627–628Signed-magnitude representation, 593Signer, 23Significance level, 179Signing transformation, 22Simple substitution cipher, see Mono-alphabetic sub-

    stitution cipherSimulator, 407Simultaneous diophantine approximation, 121–122

    algorithm for, 122unusually good, 121

    Simultaneous multiple exponentiation, 617Simultaneously secure bits, 115Single-key encryption, 15Single-length MDC, 339Single-precision integer, 593Singleton bound, 506SKEME, 661SKID2 identification protocol, 402, 421SKID3 identification protocol, 402, 421SKIP, 661SKIPJACK block cipher, 282, 654Sliding-window exponentiation, 616Small decryption exponent in RSA, 288Small encryption exponent in RSA, 288, 291, 313Smart card, 387

    ISO 10202 standard, 652Smooth

    integer, 92polynomial, 112

    Snefru hash function, 3808× 32 S-boxes, 281

    Solovay-Strassen primality test, 138, 165Span, 80Sparse linear equations, 129

    conjugate gradient method, 129Lanczos method, 129Wiedemann algorithm, 129

    Special-purpose factoring algorithm, 90SPKM, 656, 661Split-knowledge scheme, 525Splitting an integer, 89Spread spectrum, 45Square roots, 99–102

    composite modulus, 101–102, 127

    prime modulus, 100–101, 127SQROOT problem, 101

    Square-free factorization, 123algorithm for, 123, 132

    Square-free integer, 137Square-free polynomial, 123Stage

    of an FSR, 202of an LFSR, 195

    Standard deviation, 51Standard normal distribution, 176Standards, 645–657, 660–661

    ANSI, 648–651FIPS, 654–655IEEE, 660Internet, 655–656ISO/IEC, 645–648, 651–653PKCS, 656RFC, 655–656X.509, 653

    Station-to-station (STS) key agreement, 519, 538Statistical test, 175–185, 188–189

    autocorrelation test, 182frequency test, 181hypothesis, 179Maurer’s universal statistical test, 183–185,

    189one-sided test, 179poker test, 182polynomial-time, 171runs test, 182serial test, 181significance level, 179two-sided test, 180

    Statistical zero-knowledge protocol, 424Steganography, 46Step-1/step-2 generator, 220Stirling numbers, 53Stirling’s formula, 59Stop-and-go generator, 220Stream cipher, 20–21, 191–222

    A5, 222attacks on

    correlation attack, 206, 218inversion attack, 219linear consistency attack, 219–220linear cryptanalysis, 219linear syndrome attack, 218lock-in, 221

    cellular automata, 222classification, 192–195clock-controlled generator, 209–212

    alternating step generator, 209–211m-sequence cascade, 221

    Handbook of Applied Cryptography by A. Menezes, P. van Oorschot and S. Vanstone.

  • 778 Index

    p-cycle cascade, 220self-shrinking generator, 221shrinking generator, 211–212step-1/step-2 generator, 220stop-and-go generator, 220

    comparison with block ciphers, 192FISH, 222GOAL, 219initial state, 193, 194keystream, 193, 194next-state function, 193nonlinear combination generator, 205–208

    Geffe generator, 206multiplexer generator, 220multispeed inner-product generator, 220Pless generator, 218summation generator, 207

    nonlinear filter generator, 208–209knapsack generator, 209

    one-time pad, 192–193output function, 193, 194PIKE, 222randomized stream cipher, 216RC4, 222Rip van Winkle cipher, 216SEAL, 213–216self-synchronizing stream cipher, 194–195synchronous stream cipher, 193–194

    Strict avalanche criterion (SAC), 277String-replacement representation, 628–629Strong collision resistance, 324Strong equivalent signature schemes, 485Strong liar, 139Strong one-way hash function, 325Strong prime, 149–150

    algorithm for generating, 150definition of, 149, 291Hellman-Bach patent, 643usage in RSA, 291

    Strong pseudoprime, 139Strong pseudoprime test, see Miller-Rabin primal-

    ity testStrong witness, 139Subexponential-time algorithm, 60Subfield, 77Subgroup, 76Subliminal channel, 485

    broadband, 485narrowband, 485

    Subset sum problem, 61, 117–122, 190meet-in-the-middle algorithm, 118naive algorithm, 117superincreasing, 300using L3 algorithm, 120

    Subspace of a vector space, 80Substitution cipher, 17–18, 238–241

    homophonic, 17, 240mono-alphabetic, 17, 239

    affine cipher, 239Caesar cipher, 239shift cipher, 239unicity distance of, 247

    polyalphabetic, 18polygram, 239

    Hill cipher, 240Playfair cipher, 239

    Substitution-permutation (SP) network, 251Summation generator, 207, 218Superincreasing subset sum problem, 300

    algorithm for solving, 300Superuser, 389Surjective function, 46, 50SWIFT, 586Symmetric cryptographic system, 544Symmetric key, 544

    compared vs. public-key, 31–32, 551Symmetric-key certificate, 554–555, 587Symmetric-key encryption, 15–21

    advantages of, 31block cipher, 223–282definition of, 15disadvantages of, 31stream cipher, 191–222

    Synchronous stream cipher, 193–194binary additive stream cipher, 194

    Syndrome decoding problem, 190, 423

    TTapper, 13TEA block cipher, 282TEMPEST, 45Teraflop, 44Terminal key, 552Test vectors

    DES, 256FEAL, 262IDEA, 265MD4, 345MD5, 345MD5-MAC, 358RC5, 270RIPEMD-160, 345SAFER, 269SHA-1, 345

    3-WAY block cipher, 281Threshold cryptography, 534Threshold scheme, 525–526

    Blakley, 538

    c©1997 by CRC Press, Inc. — See accompanying notice at front of chapter.

  • Index 779

    Shamir, 526, 539Ticket, 501, 570, 586Time-memory tradeoff, 236, 273Time-variant parameter, 362, 397–400, 497

    nonce, 397random numbers, 398–399sequence numbers, 399timestamps, 399–400

    Timestamp, 3, 399–400, 420, 581–582agent, 550

    Toeplitz matrix, 382Transaction authentication, 362Transformation, 6Transinformation, 57Transposition cipher, 18, 238

    compound, 238simple, 18, 238unicity distance of, 246

    Trapdoor one-way function, 9, 26Trapdoor predicate, 318Tree authentication, 376

    patent, 637Trinomial, 154Triple encryption, 235–237, 272Triple-DES, 272, 651

    ANSI X9.52 standard, 651Triple-inner-CBC mode, 237Triple-outer-CBC mode, 237Truncated differential analysis, 271, 280Trust model, 572

    centralized, 573directed graph, 575distributed, 575hierarchy with reverse certificates, 575rooted chain, 573separate domains, 573strict hierarchical, 573

    Trusted server, 491Trusted third party (TTP), 30, 36, 491, 547–550,

    581–584authentication server, 549certificate directory, 549certification authority (CA), 548functionally trusted, 39in-line, 547KDC, see Key distribution center (KDC)key access server, 549key escrow agent, 550key generator, 549key management facility, 549key server, 549KTC, see Key translation center (KTC)name server, 549notary agent, 550

    off-line, 548on-line, 547registration authority, 549timestamp agent, 550unconditionally trusted, 39

    TTP, see Trusted third party (TTP)Turing-Kolmogorov-Chaitin complexity, 217Two’s complement representation, 5942-adic span, 218Two-bit test, 181Two-key triple-encryption, 235

    chosen-plaintext attack on, 236known-plaintext attack on, 237

    Two-sided statistical test, 180Type I error, 179Type II error, 179

    UUnbalanced RSA, 314Unblinding function, 475Unconcealed message, 290Unconditional security, see Perfect secrecy, 533Unconditionally trusted third party, 39Undeniable signature scheme, 476–478, 487–488

    Chaum-van Antwerpen, 476–478confirmer, 487

    Unicity distancedefinition of, 246known-plaintext, 235of a cascade cipher, 272of a mono-alphabetic substitution cipher, 247of a transposition cipher, 246

    Unilateral authentication, 387, 401–402, 405, 494Union of sets, 49Unique factorization domain, 81Unit, 68, 77, 103, 114Universal classes of hash function, 376Universal exponent, 287Universal forgery, 482Universal one-way hash function, 377Universal statistical test, see Maurer’s universal

    statistical testUNIX passwords, 393–394Unsecured channel, 13Unusually good simultaneous diophantine approx-

    imation, 121, 317Userid, 388

    VValidation, 3Validation parameters, 462Variance, 51Vector space, 79–80

    dimension of, 80standard basis, 80

    Handbook of Applied Cryptography by A. Menezes, P. van Oorschot and S. Vanstone.

  • 780 Index

    subspace of, 80Vector-addition chains, 622–623Verifiable secret sharing, 527, 539Verification algorithm, 426Verification transformation, 22Verifier, 23, 385, 386Vernam cipher, see One-time padVigenère cipher, see Polyalphabetic substitution ci-

    pherVisual cryptography, 539

    WWAKE block cipher, 282Weak collision resistance, 324Weak keys of DES, 257Weak one-way hash function, 325Wheatstone disc, 274Wholesale banking, 648Wiedemann algorithm, 129Williams’ public-key encryption, 315Witness, 135, 409

    Euler, 137Fermat, 136strong, 139

    Witness hiding protocol, 423Witness indistinguishability, 423Witnessing, 3Work factor, 44

    historical, 44Worst-case running time, 58Wyner’s wire-tap channel, 535

    XX.509 authentication protocol, 536

    three-way, 512two-way, 511

    X.509 certificate, 587X.509 standard, 653XOR, see Exclusive-or

    YYuval’s birthday attack, 369

    ZZero-knowledge identification, 405–417, 421–424

    Brickell-McCurley, 423comparison of protocols, 416–417constrained linear equations problem, 423extended Fiat-Shamir, 422Feige-Fiat-Shamir, 410–412Fiat-Shamir (basic version), 408Fischer-Micali-Rackoff, 422GQ, 412–414Ohta-Okamoto, 422permuted kernel problem, 423

    Schnorr, 414–416syndrome decoding problem, 423

    Zero-knowledge protocol, 405–417, 421–424auxiliary-input, 423black-box simulation, 423challenge, 409completeness, 406computational, 407extracting secret, 406for possession of discrete log, 422parallel version, 412perfect, 407proof of knowledge, 406, 421, 422proof of membership, 421response, 409simulator, 407soundness, 406statistical, 424witness, 409

    Ziv-Lempel complexity, 217Zp-operation, 82ZPP, 63

    c©1997 by CRC Press, Inc. — See accompanying notice at front of chapter.

  • Chapter1Overview of Cryptography

    Contents in Brief

    1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2 Information security and cryptography . . . . . . . . . . . . . . 21.3 Background on functions . . . . . . . . . . . . . . . . . . . . . . 61.4 Basic terminology and concepts . . . . . . . . . . . . . . . . . . . 111.5 Symmetric-key encryption . . . . . . . . . . . . . . . . . . . . . 151.6 Digital signatures . . . . . . . . . . . . . . . . . . . . . . . . . . 221.7 Authentication and identification . . . . . . . . . . . . . . . . . . 241.8 Public-key cryptography . . . . . . . . . . . . . . . . . . . . . . 251.9 Hash functions . . . . . . . . . . . . . . . . . . . . . . . . . . . 331.10 Protocols and mechanisms . . . . . . . . . . . . . . . . . . . . . 331.11 Key establishment, management, and certification . . . . . . . . . 351.12 Pseudorandom numbers and sequences . . . . . . . . . . . . . . 391.13 Classes of attacks and security models . . . . . . . . . . . . . . . 411.14 Notes and further references . . . . . . . . . . . . . . . . . . . . 45

    1.1 Introduction

    Cryptography has a long and fascinating history. The most complete non-technical accountof the subject is Kahn’s The Codebreakers. This book traces cryptography from its initialand limited use by the Egyptians some 4000 years ago, to the twentieth century where itplayed a crucial role in the outcome of both world wars. Completed in 1963, Kahn’s bookcovers those aspects of the history which were most significant (up to that time) to the devel-opment of the subject. The predominant practitioners of the art were those associated withthe military, the diplomatic service and government in general. Cryptography was used asa tool to protect national secrets and strategies.

    The proliferation of computers and communications systems in the 1960s brought withit a demand from the private sector for means to protect information in digital form and toprovide security services. Beginning with the work of Feistel at IBM in the early 1970s andculminating in 1977 with the adoption as a U.S. Federal Information Processing Standardfor encrypting unclassified information, DES, the Data Encryption Standard, is the mostwell-known cryptographic mechanism in history. It remains the standard means for secur-ing electronic commerce for many financial institutions around the world.

    The most striking development in the history of cryptographycame in 1976 when Diffieand Hellman published New Directions in Cryptography. This paper introduced the revolu-tionary concept of public-key cryptography and also provided a new and ingenious method

    1

  • 2 Ch. 1 Overview of Cryptography

    for key exchange, the security of which is based on the intractability of the discrete loga-rithm problem. Although the authors had no practical realization of a public-key encryp-tion scheme at the time, the idea was clear and it generated extensive interest and activityin the cryptographic community. In 1978 Rivest, Shamir, and Adleman discovered the firstpractical public-key encryption and signature scheme, now referred to as RSA. The RSAscheme is based on another hard mathematical problem, the intractability of factoring largeintegers. This application of a hard mathematical problem to cryptography revitalized ef-forts to find more efficient methods to factor. The 1980s saw major advances in this areabut none which rendered the RSA system insecure. Another class of powerful and practicalpublic-key schemes was found by ElGamal in 1985. These are also based on the discretelogarithm problem.

    One of the most significant contributions provided by public-key cryptography is thedigital signature. In 1991 the first international standard for digital signatures (ISO/IEC9796) was adopted. It is based on the RSA public-key scheme. In 1994 the U.S. Govern-ment adopted the Digital Signature Standard, a mechanism based on the ElGamal public-key scheme.

    The search for new public-key schemes, improvements to existing cryptographic mec-hanisms, and proofs of security continues at a rapid pace. Various standards and infrastruc-tures involving cryptography are being put in place. Security products are being developedto address the security needs of an information intensive society.

    The purpose of this book is to give an up-to-date treatise of the principles, techniques,and algorithms of interest in cryptographic practice. Emphasis has been placed on thoseaspects which are most practical and applied. The reader will be made aware of the basicissues and pointed to specific related research in the literature where more indepth discus-sions can be found. Due to the volume of material which is covered, most results will bestated without proofs. This also serves the purpose of not obscuring the very applied natureof the subject. This book is intended for both implementers and researchers. It describesalgorithms, systems, and their interactions.

    Chapter 1 is a tutorial on the many and various aspects of cryptography. It does notattempt to convey all of the details and subtleties inherent to the subject. Its purpose is tointroduce the basic issues and principles and to point the reader to appropriate chapters in thebook for more comprehensive treatments. Specific techniques are avoided in this chapter.

    1.2 Information security and cryptography

    The concept of information will be taken to be an understood quantity. To introduce cryp-tography, an understanding of issues related to information security in general is necessary.Information security manifests itself in many ways according to the situation and require-ment. Regardless of who is involved, to one degree or another, all parties to a transactionmust have confidence that certain objectives associated with information security have beenmet. Some of these objectives are listed in Table 1.1.

    Over the centuries, an elaborate set of protocols and mechanisms has been created todeal with information security issues when the information is conveyed by physical doc-uments. Often the objectives of information security cannot solely be achieved throughmathematical algorithms and protocols alone, but require procedural techniques and abid-ance of laws to achieve the desired result. For example, privacy of letters is provided bysealed envelopes delivered by an accepted mail service. The physical security of the en-velope is, for practical necessity, limited and so laws are enacted which make it a criminal

    c©1997 by CRC Press, Inc. — See accompanying notice at front of chapter.

  • §1.2 Information security and cryptography 3

    privacyor confidentiality

    keeping information secret from all but those who are autho-rized to see it.

    data integrity ensuring information has not been altered by unauthorized orunknown means.

    entity authenticationor identification

    corroboration of the identity of an entity (e.g., a person, acomputer terminal, a credit card, etc.).

    messageauthentication

    corroborating the source of information; also known as dataorigin authentication.

    signature a means to bind information to an entity.authorization conveyance, to another entity, of official sanction to do or be

    something.validation a means to provide timeliness of authorization to use or ma-

    nipulate information or resources.access control restricting access to resources to privileged entities.certification endorsement of information by a trusted entity.timestamping recording the time of creation or existence of information.witnessing verifying the creation or existence of information by an entity

    other than the creator.receipt acknowledgement that information has been received.confirmation acknowledgement that services have been provided.ownership a means to provide an entity with the legal right to use or

    transfer a resource to others.anonymity concealing the identity of an entity involved in some process.non-repudiation preventing the denial of previous commitments or actions.revocation retraction of certification or authorization.

    Table 1.1: Some information security objectives.

    offense to open mail for which one is not authorized. It is sometimes the case that securityis achieved not through the information itself but through the physical document recordingit. For example, paper currency requires special inks and material to prevent counterfeiting.

    Conceptually, the way information is recorded has not changed dramatically over time.Whereas information was typically stored and transmitted on paper, much of it now re-sides on magnetic media and is transmitted via telecommunications systems, some wire-less. What has changed dramatically is the ability to copy and alter information. One canmake thousands of identical copies of a piece of information stored electronically and eachis indistinguishable from the original. With information on paper, this is much more diffi-cult. What is needed then for a society where information is mostly stored and transmittedin electronic form is a means to ensure information security which is independent of thephysical medium recording or conveying it and such that the objectives of information se-curity rely solely on digital information itself.

    One of the fundamental tools used in information security is the signature. It is a build-ing block for many other services such as non-repudiation, data origin authentication, iden-tification, and witnessing, to mention a few. Having learned the basics in writing, an indi-vidual is taught how to produce a handwritten signature for the purpose of identification.At contract age the signature evolves to take on a very integral part of the person’s identity.This signature is intended to be unique to the individual and serve as a means to identify,authorize, and validate. With electronic information the concept of a signature needs to be

    Handbook of Applied Cryptography by A. Menezes, P. van Oorschot and S. Vanstone.

  • 4 Ch. 1 Overview of Cryptography

    redressed; it cannot simply be something unique to the signer and independent of the in-formation signed. Electronic replication of it is so simple that appending a signature to adocument not signed by the originator of the signature is almost a triviality.

    Analogues of the “paper protocols” currently in use are required. Hopefully these newelectronic based protocols are at least as good as those they replace. There is a unique op-portunity for society to introduce new and more efficient ways of ensuring information se-curity. Much can be learned from the evolution of the paper based system, mimicking thoseaspects which have served us well and removing the inefficiencies.

    Achieving information security in an electronic society requires a vast array of techni-cal and legal skills. There is, however, no guarantee that all of the information security ob-jectives deemed necessary can be adequately met. The technical means is provided throughcryptography.

    1.1 Definition Cryptography is the study of mathematical techniques related to aspects of in-formation security such as confidentiality, data integrity, entity authentication, and data ori-gin authentication.

    Cryptography is not the only means of providing information security, but rather one set oftechniques.

    Cryptographic goals

    Of all the information security objectives listed in Table 1.1, the following four form aframework upon which the others will be derived: (1) privacy or confidentiality (§1.5, §1.8);(2) data integrity (§1.9); (3) authentication (§1.7); and (4) non-repudiation (§1.6).

    1. Confidentiality is a service used to keep the content of information from all but thoseauthorized to have it. Secrecy is a term synonymous with confidentiality and privacy.There are numerous approaches to providing confidentiality, ranging from physicalprotection to mathematical algorithms which render data unintelligible.

    2. Data integrity is a service which addresses the unauthorized alteration of data. Toassure data integrity, one must have the ability to detect data manipulation by unau-thorized parties. Data manipulation includes such things as insertion, deletion, andsubstitution.

    3. Authentication is a service related to identification. This function applies to both enti-ties and information itself. Two parties entering into a communication should identifyeach other. Information delivered over a channel should be authenticated as to origin,date of origin, data content, time sent, etc. For these reasons this aspect of cryptog-raphy is usually subdivided into two major classes: entity authentication and dataorigin authentication. Data origin authentication implicitly provides data integrity(for if a message is modified, the source has changed).

    4. Non-repudiation is a service which prevents an entity from denying previous commit-ments or actions. When disputes arise due to an entity denying that certain actionswere taken, a means to resolve the situation is necessary. For example, one entitymay authorize the purchase of property by another entity and later deny such autho-rization was granted. A procedure involving a trusted third party is needed to resolvethe dispute.

    A fundamental goal of cryptography is to adequately address these four areas in boththeory and practice. Cryptography is about the prevention and detection of cheating andother malicious activities.

    This book describes a number of basic cryptographic tools (primitives) used to provideinformation security. Examples of primitives include encryption schemes (§1.5 and §1.8),

    c©1997 by CRC Press, Inc. — See accompanying notice at front of chapter.

  • §1.2 Information security and cryptography 5

    hash functions (§1.9), and digital signature schemes (§1.6). Figure 1.1 provides a schematiclisting of the primitives considered and how they relate. Many of these will be briefly intro-duced in this chapter, with detailed discussion left to later chapters. These primitives should

    Symmetric-keyciphers

    PrimitivesUnkeyed

    Arbitrary lengthhash functions

    hash functions (MACs)Arbitrary length

    ciphersBlock

    Streamciphers

    Pseudorandomsequences

    Random sequences

    Public-keyPrimitives

    Public-keyciphers

    Identification primitives

    Signatures

    Identification primitives

    PrimitivesSecurity Symmetric-key

    Primitives

    One-way permutations

    Signatures

    Figure 1.1: A taxonomy of cryptographic primitives.

    be evaluated with respect to various criteria such as:

    1. level of security. This is usually difficult to quantify. Often it is given in terms of thenumber of operations required (using the best methods currently known) to defeat theintended objective. Typically the level of security is defined by an upper bound onthe amount of work necessary to defeat the objective. This is sometimes called thework factor (see §1.13.4).

    2. functionality. Primitives will need to be combined to meet various information se-curity objectives. Which primitives are most effective for a given objective will bedetermined by the basic properties of the primitives.

    3. methods of operation. Primitives, when applied in various ways and with various in-puts, will typically exhibit different characteristics; thus, one primitive could provide

    Handbook of Applied Cryptography by A. Menezes, P. van Oorschot and S. Vanstone.

  • 6 Ch. 1 Overview of Cryptography

    very different functionality depending on its mode of operation or usage.4. performance. This refers to the efficiency of a primitive in a particular mode of op-

    eration. (For example, an encryption algorithm may be rated by the number of bitsper second which it can encrypt.)

    5. ease of implementation. This refers to the difficulty of realizing the primitive in apractical instantiation. This might include the complexity of implementing the prim-itive in either a software or hardware environment.

    The relative importance of various criteria is very much dependent on the applicationand resources available. For example, in an environment where computing power is limitedone may have to trade off a very high level of security for better performance of the systemas a whole.

    Cryptography, over the ages, has been an art practised by many who have devised adhoc techniques to meet some of the information security requirements. The last twentyyears have been a period of transition as the discipline moved from an art to a science. Thereare now several international scientific conferences devoted exclusively to cryptographyand also an international scientific organization, the International Association for Crypto-logic Research (IACR), aimed at fostering research in the area.

    This book is about cryptography: the theory, the practice, and the standards.

    1.3 Background on functions

    While this book is not a treatise on abstract mathematics, a familiarity with basic mathe-matical concepts will prove to be useful. One concept which is absolutely fundamental tocryptography is that of a function in the mathematical sense. A function is alternately re-ferred to as a mapping or a transformation.

    1.3.1 Functions (1-1, one-way, trapdoor one-way)

    A set consists of distinct objects which are called elements of the set. For example, a setXmight consist of the elements a, b, c, and this is denoted X = {a, b, c}.

    1.2 Definition A function is defined by two sets X and Y and a rule f which assigns to eachelement in X precisely one element in Y . The set X is called the domain of the functionand Y the codomain. If x is an element ofX (usually written x ∈ X) the image of x is theelement in Y which the rule f associates wi