The table of contents for the full version can be found here.
| |
|
|
Page |
| Chapter |
|
Preface |
vii |
| |
0.1 |
Original Preface |
viii |
| 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 |
Coordinating Users |
53 |
| |
5.1 |
A Bulletin Board Example |
54 |
| |
5.1.1 |
Adding a Shared Password |
54 |
| |
5.2 |
Special One-Way Functions |
55 |
| |
5.2.1 |
Creating A Public Key |
55 |
| |
5.2.2 |
Using the Public Key |
57 |
| |
5.2.3 |
Recovering Messages |
59 |
| |
5.2.4 |
Using Public-Key One-Way Functions |
60 |
| |
5.3 |
Conclusion |
61 |
| |
5.3.1 |
Lessons |
61 |
| Chapter |
6 |
Synchronization |
63 |
| |
6.1 |
The Baby Sitter's Table |
63 |
| |
6.2 |
Adding More Names |
65 |
| |
6.3 |
Multiple Tables |
65 |
| |
6.4 |
Adding Extra Information |
67 |
| |
6.5 |
Security |
70 |
| |
6.6 |
Conclusions |
71 |
| |
6.6.1 |
Lessons |
72 |
| Chapter |
7 |
Evolving Data |
73 |
| |
7.1 |
An Auction Example |
74 |
| |
7.1.1 |
The First Bid |
75 |
| |
7.1.2 |
Adding New Bids |
76 |
| |
7.1.3 |
Creating Bids |
77 |
| |
7.1.4 |
The Value of the Counter Function |
78 |
| |
7.1.5 |
Better Hash Functions |
78 |
| |
7.2 |
Working With Encryption |
79 |
| |
7.3 |
Conclusions |
79 |
| |
7.3.1 |
Lessons |
80 |
| Appendix |
A |
Full Version |
81 |
| Appendix |
B |
Further Reading |
83 |