CONTENTS
1. INTRODUCTION
1.1 Cryptography = 1
1.2 Data Security = 3
1.3 Cryptographic Systems = 7
1.3.1 Public-Key Systems = 11
1.3.2 Digital Signatures = 14
1.4 Information Theory = 16
1.4.1 Entropy and Equivocation = 17
1.4.2 Perfect Secrecy = 22
1.4.3 Unicity Distance = 25
1.5 Complexity Theory = 30
1.5.1 Algorithm Complexity = 30
1.5.2 Problem omplexity and NP-Completeness = 31
1.5.3 Ciphers Based on Computationally Hard Problems = 34
1.6 Number Theory = 35
1.6.1 Congruences and Modular Arithmetic = 36
1.6.2 Computing Inverses = 39
1.6.3 Computing in Galois Fields = 48
Exercises = 54
References = 56
2. ENCRYPTION ALGORITHMS = 59
2.1 Transposition Ciphers = 59
2.2 Simple Substitution Ciphers = 62
2.2.1 Single-Lefter Frequency Analysis = 66
2.3 Homophonic Substitution Ciphers = 67
2.3.1 Beale Ciphers = 70
2.3.2 Higher-Order Homophonics = 72
2.4 Polyalphabetic Substitution Ciphers = 73
2.4.1 Vigenre and Beaufort Ciphers = 74
2.4.2 Index of Coincidence = 77
2.4.3 Kasiski Method = 79
2.4.4 Running-Key Ciphers = 83
2.4.5 Rotor and Hagelin Machines = 84
2.4.6 Vernam Cipher and One-Time Pads = 86
2.5 Polygram Substitution Ciphers = 87
2.5.1 Playfair Cipher = 87
2.5.2 Hill Cipher = 88
2.6 Product Ciphers = 90
2.6.1 Substitution-Permutation Ciphers = 90
2.6.2 The Data Encryption Standard-(DES) = 92
2.6.3 Time-Memory Tradeoff = 98
2.7 Exponentiation Ciphers = 101
2.7.1 Pohlig-Heliman Scheme = 103
2.7.2 Rivest-Shamir-Adleman (RSA) Scheme = 104
2.7.3 Mental Poker = 110
2.7.4 Oblivious Transfer = 115
2.8 Knapsack Ciphers = 117
2.8.1 Merkle-Heliman Knapsacks = 118
2.8.2 Graham-Shamir Knapsacks = 121
2.8.3 Shamir Signature-Only Knapsacks = 122
2.8.4 A Breakable NP-Complete Knapsack = 125
Exercises = 126
References = 129
3. CRYPTOGRAPHIC TECHNIQTJES = 135
3.1 Block and Stream Ciphers = 135
3.2 Synchronous Stream Ciphers = 138
3.2.1 inear Feedback Shift Registers = 139
3.2.2 Output-Block Feedback Mode = 142
3.2.3 Counter Method = 143
3.3 Self-Synchronous Stream Ciphers = 144
3.3 1 Autokey Ciphers = 145
3.3 2 Cipher Feedback = 145
3.4 Block Ciphers = 147
3.4.1 Block Chaining and Cipher Block Chaining = 149
3.4.2 Block Ciphers with Subkeys = 151
3.5 Endpoints of Encryption = 154
3.5.1 End-to-End versus Link Encryption = 154
3.5.2 Privacy Homomorphisms = 157
3.6 One-Way Ciphers = 161
3.6.1 Passwords and User Authentication = 161
3.7 Key Management = 164
3.7.1 Secret Keys = 164
3.7.2 Public Keys = 169
3.7.3 Generating Block Encryption Keys = 171
3.7.4 Distribution of Session Keys = 173
3.8 Threshold Schemes = 179
3.8.1 Lagrange Interpolating Polynomial Scheme = 180
3.8.2 Congruence Class Scheme = 183
Exercises = 185
References = 187
4. ACCESS CONTROLS = 191
4.1 Access-Matrix Model = 192
4.1.1 The Protection State = 192
4.1.2 State Transitions = 194
4.1.3 Protection Policies = 199
4.2 Access Control Mechanisms = 200
4.2.1 Security and Precision = 200
4.2.2 Reliability and Sharing = 201
4.2.3 Design Principles = 206
4.3 Access Hierarchies = 207
4.3.1 Privileged Modes = 207
4.3.2 Nested Program Units = 208
4.4 Authorization Lists = 209
4.4.1 Owned Objects = 210
4.4.2 Revocation = 213
4.5 Capabilities = 216
4.5.1 Domairf,Switching with Protected Entry Points = 218
4.5.2 Abstract Data Types = 219
4.5.3 Capability-Based Addressing = 224
4.5.4 Revocation = 227
4.5.5 Locks and Keys = 228
4.5.6 Query Modification = 230
4.6 Veriflably Secure Systems = 231
4.6.1 Security Kernels = 232
4.6.2 Levels of Abstraction = 235
4.6.3 Verification = 236
4.7 Theory of Safe Systems = 240
4.7.1 Mono-Operational Systems = 241
4.7.2 General Systems = 242
4.7.3 Theories for General Systems = 245
4.7.4 Take-Grant Systems = 248
Exercises = 257
References = 259
5. INFORMATION FLOW CONTROLS = 266
5.1 Lattice Model of Information Flow = 265
5.1.1 Information Flow Policy = 265
5.1.2 Information State = 266
5.1.3 State Transitions and Information Flow = 267
5.1.4 Lattice Structure = 273
5.1.5 Flow Properties of Lattices = 276
5.2 Flow Control Mechanisms = 279
5.2.1 Security and Precision = 279
5.2.2 Channels of Flow = 281
5.3 Execution-Based Mechanisms = 282
5.3.1 Dynamically Enforcing Securit for Implicit Flow = 282
5.3.2 Flow-Secure Access Controls = 285
5.3.3 Data Mark Machine = 288
5.3.4 Single Accumulator Machine = 290
5.4 Compiler-Based Mechanism = 291
5.4.1 Flow Specifications = 292
5.4.2 Security Requirements = 293
5.4.3 Certification Semantics = 297
5.4.4 General Data and Control Structures = 298
5.4.5 Concurrency and Synchronization = 302
5.4.6 Abnormal Terminations = 305
5.5 Program Verification = 307
5.5.1 Assignment = 309
5.5.2 Compound = 310
5.5.3 Alternation = 311
5.5.4 Iteration = 312
5.5.5 Procedure Call = 313
5.5.6 Security = 316
5.6 Flow Controls in Practice = 318
5.6.1 ystem Verification = 318
5.6.2 Extensions = 320
5.6.3 A Guard Application = 321
Exercises = 324
References = 327
6. INFERENCE CONTROLS = 331
6.1 Statistcal Database Model = 332
6.1.1 Information Stale = 332
6.1.2 Types of Statistics = 334
6.1.3 Disclosure of Sensitive Statistics = 336
6.1.4 Perfect Secrecy and Protection = 339
6.1.5 Complexity of Disclosure = 339
6.2 Inference Control Mechanisms = 340
6.2.1 Security and Precision = 340
6.2.2 Methods of Release = 341
6.3 Methods of Attack = 344
6.3.1 Small and Large Query Set Attacks = 344
6.3.2 Tracker Attacks = 346
6.3.3 Linear System Attacks = 352
6.3.4 Median Attacks = 356
6.3.5 Insertion and Deletion Attacks = 358
6.4 Mechanisms that Restrict Statistics = 358
6.4.1 Cell Suppression = 360
6.4.2 Implied Queries = 364
6.4.3 Partitioning = 368
6.5 Mechanisms that Add Noise = 371
6.5.1 Response Perturbation (Rounding) = 372
6.5.2 Random-Sample Queries = 374
6.5.3 Data Perturbation = 380
6.5.4 Data Swapping = 383
6.5.5 Randomized Response (Inquiry) = 386
6.6 Summary = 387
Exercises = 388
References = 390
INDEX = 393