Chapter | Preface | ix | |
0.1 | Original Preface | x | |
Chapter | 1 | Translucency | 1 |
1.1 | Some Examples | 5 | |
1.2 | Limits | 8 | |
1.3 | How to Use the Book | 9 | |
1.4 | Some Motivation | 9 | |
Chapter | 2 | One-Way Functions | 13 |
2.1 | Pure One-Way Functions | 15 | |
2.1.1 | Discrete Log | 15 | |
2.1.2 | The Secure Hash Algorithm (SHA) | 17 | |
2.1.3 | SHA256, SHA384 and SHA512 | 18 | |
2.1.4 | MD5 | 18 | |
2.2 | Tiger | 19 | |
2.3 | Other Cryptographically Secure Hash Functions | 19 | |
2.4 | Public Key Functions | 19 | |
2.5 | Secret-Key Functions | 20 | |
2.5.1 | Turning a Secret-Key Function Into a Pure One-Way Function. | 21 | |
2.5.2 | Turning One-Way Functions Into Secret-Key Encryption Functions | 21 | |
2.5.3 | Using Two or More Functions | 22 | |
2.5.4 | Keying the Hash Functions | 22 | |
2.6 | Implementations | 23 | |
2.6.1 | MySQL | 23 | |
2.6.2 | PostgreSQL | 24 | |
2.6.3 | Oracle | 24 | |
2.6.4 | Client-side Applications | 25 | |
2.7 | Conclusions | 27 | |
2.7.1 | Lessons | 27 | |
Chapter | 3 | One-Way Tables | 29 |
3.1 | An Example from a Department Store | 30 | |
3.1.1 | Adding Security | 31 | |
3.2 | Cleaning Up One-Way Input | 32 | |
3.2.1 | Some Java Code | 33 | |
3.3 | Security Trade-Offs | 34 | |
3.3.1 | Slowing the One-Way Functions | 35 | |
3.3.2 | Salt | 35 | |
3.4 | Adding Redundancy | 36 | |
3.5 | An Example with Encryption for Security | 38 | |
3.5.1 | Some Java Code | 39 | |
3.6 | Hashing Instead of Encryption | 40 | |
3.7 | Serial Queries | 41 | |
3.8 | Keeping Some Information in the Clear | 43 | |
3.8.1 | Inserting a Credit Card Number | 43 | |
3.8.2 | Using the Information | 44 | |
3.9 | Conclusions | 45 | |
3.9.1 | Lessons | 46 | |
Chapter | 4 | Fuzzy One-Way Functions | 47 |
4.1 | Fuzziness through Linearity | 47 | |
4.2 | Statistical Hashes | 48 | |
4.3 | Combining Linear and Cryptographically Secure Hashes | 48 | |
4.4 | Block Hash Functions | 49 | |
4.5 | Triggered Hash Functions | 49 | |
4.5.1 | Normalizing and Comparing | 50 | |
4.6 | Conclusions | 50 | |
4.6.1 | Lessons | 50 | |
Chapter | 5 | Translucent XML | 53 |
5.1 | XML Canonicalization | 54 | |
5.1.1 | Exclusive Canonicalization | 55 | |
5.2 | XML Signatures | 56 | |
5.2.1 | An Example | 56 | |
5.3 | Encryption | 58 | |
5.4 | Conclusions | 59 | |
5.4.1 | Lessons | 59 | |
Chapter | 6 | Quantization | 61 |
6.1 | Algorithms | 62 | |
6.1.1 | Adaptive Quantization | 63 | |
6.1.2 | Projection | 66 | |
6.2 | Using Quantization In Databases | 67 | |
6.2.1 | Adding Random Noise | 68 | |
6.2.2 | Adding Encryption | 69 | |
6.3 | Quantized One-Way Functions | 71 | |
6.3.1 | One-Way Functions and Noise | 73 | |
6.4 | Conclusions | 74 | |
6.4.1 | Lessons | 74 | |
Chapter | 7 | Coordinating Users | 77 |
7.1 | A Bulletin Board Example | 78 | |
7.1.1 | Adding a Shared Password | 78 | |
7.2 | Special One-Way Functions | 79 | |
7.2.1 | Creating A Public Key | 79 | |
7.2.2 | Using the Public Key | 81 | |
7.2.3 | Recovering Messages | 83 | |
7.2.4 | Using Public-Key One-Way Functions | 84 | |
7.3 | Conclusion | 85 | |
7.3.1 | Lessons | 85 | |
Chapter | 8 | Synchronization | 87 |
8.1 | The Baby Sitter's Table | 87 | |
8.2 | Adding More Names | 89 | |
8.3 | Multiple Tables | 89 | |
8.4 | Adding Extra Information | 91 | |
8.5 | Security | 94 | |
8.6 | Conclusions | 95 | |
8.6.1 | Lessons | 96 | |
Chapter | 9 | Evolving Data | 97 |
9.1 | An Auction Example | 98 | |
9.1.1 | The First Bid | 99 | |
9.1.2 | Adding New Bids | 100 | |
9.1.3 | Creating Bids | 101 | |
9.1.4 | The Value of the Counter Function | 102 | |
9.1.5 | Better Hash Functions | 102 | |
9.2 | Working With Encryption | 103 | |
9.3 | Conclusions | 103 | |
9.3.1 | Lessons | 104 | |
Chapter | 10 | Sharing | 105 |
10.1 | The Algorithms | 105 | |
10.1.1 | More Precise Algorithms | 106 | |
10.1.2 | More Efficient Algorithms | 107 | |
10.1.3 | Adding Sophistication | 107 | |
10.2 | Nuclear Launch Codes | 108 | |
10.2.1 | Adding Launch Codes | 109 | |
10.2.2 | Recovering the Code | 110 | |
10.2.3 | Adding More Security | 110 | |
10.3 | A Public-Key Example | 112 | |
10.3.1 | Adding a Message | 112 | |
10.3.2 | Retrieving the Message | 113 | |
10.4 | Conclusions | 115 | |
10.4.1 | Lessons | 115 | |
Chapter | 11 | Revelation | 117 |
11.1 | A Masquerade | 118 | |
11.2 | Lottery | 120 | |
11.2.1 | Paying for the Ticket | 120 | |
11.2.2 | Placing Bets | 121 | |
11.2.3 | Testing Winners | 123 | |
11.3 | Sports Poker and Multiple Columns | 124 | |
11.3.1 | Inserting Predictions | 125 | |
11.3.2 | Testing and Verifying | 128 | |
11.4 | Identity Cards and Selective Revelations | 129 | |
11.4.1 | The Basic Mathematics | 130 | |
11.4.2 | A Rental Car Example | 131 | |
11.4.3 | The License | 132 | |
11.4.4 | Proving Information | 133 | |
11.4.5 | The Rental Car Company | 136 | |
11.5 | Conclusions | 137 | |
11.5.1 | Lessons | 138 | |
Chapter | 12 | Voting | 139 |
12.1 | Basic Translucent Voting Results | 139 | |
12.2 | Multiple Ballots | 140 | |
12.2.1 | Limits | 141 | |
12.3 | Conclusions | 142 | |
12.3.1 | Lessons | 143 | |
Chapter | 13 | Authentication | 145 |
13.1 | Digital Signature Taxonomy | 146 | |
13.1.1 | One-Way Functions and Signatures | 146 | |
13.1.2 | Modular Exponentiation and Signatures | 147 | |
13.2 | Adding Digital Signatures to SQL Databases | 148 | |
13.2.1 | A Hash-based Signature | 148 | |
13.2.2 | Signatures Using Exponentiation | 151 | |
13.3 | Fake Information | 155 | |
13.3.1 | An Appointment System | 156 | |
13.3.2 | Adding Entries With Signatures | 156 | |
13.3.3 | Adding Fake Entries | 158 | |
13.3.4 | Finding the Results | 160 | |
13.3.5 | Modifications | 161 | |
13.4 | Conclusions | 162 | |
13.4.1 | Lessons | 162 | |
Chapter | 14 | Accounting | 163 |
14.1 | Sales Force Accounting | 164 | |
14.1.1 | Adding Values | 165 | |
14.1.2 | Checking Things Out | 168 | |
14.2 | Conclusions | 169 | |
14.2.1 | Lessons | 169 | |
Chapter | 15 | Tokens | 171 |
15.1 | Prescription Records | 172 | |
15.1.1 | Inserting Records | 173 | |
15.1.2 | A Relatively Fast Mechanism for Retrieval | 174 | |
15.1.3 | A More Secure Mechanism | 175 | |
15.1.4 | At the client | 175 | |
15.1.5 | At the database | 176 | |
15.1.6 | Using transparency | 177 | |
15.1.7 | Dealing with the Challenge | 178 | |
15.2 | Conclusions | 178 | |
15.2.1 | Lessons | 179 | |
Chapter | 16 | Zero Knowledge | 181 |
16.1 | Friendship Graphs | 182 | |
16.2 | Tracking Cars | 183 | |
16.2.1 | Tracking Cars with Zero Knowledge | 184 | |
16.3 | Conclusions | 186 | |
16.3.1 | Lessons | 187 | |
Chapter | 17 | Private Retrieval | 189 |
17.1 | Stock Prices From Multiple Sources | 190 | |
17.2 | A Single-Server Example | 191 | |
17.2.1 | Using More Decoys | 192 | |
17.3 | A Patent Example | 194 | |
17.4 | Conclusions | 195 | |
17.4.1 | Lessons | 196 | |
Appendix | A | Further Reading | 197 |
- Log in to post comments