Table of Contents for
Practical Cryptography
Close
Version ebook
/
Retour
Practical Cryptography
by Al-Sakib Khan Pathan
Published by Auerbach Publications, 2014
Cover Page
Practical Cryptography
Title Page
Copyright Page
Practical Cryptography
Practical Cryptography
Preface
Acknowledgments
About the Editors
Contributors
Chapter 1: Basics of Security and Cryptography
Chapter 2: Classical Cryptographic Algorithms
Chapter 3: Rotor Machine
Chapter 4: Block Cipher
Chapter 5: Data Encryption Standard
Chapter 6: Advanced Encryption Standard
Chapter 7: Asymmetric Key Algorithms
Chapter 8: The RSA Algorithm
Chapter 9: Elliptic Curve Cryptography
Chapter 10: Message Digest Algorithm 5
Chapter 11: Secure Hash Algorithm
Chapter 12: Fundamentals of Identity Based Cryptography
Chapter 13: Symmetric Key Encryption Acceleration on Heterogeneous Many Core Architectures
Chapter 14: Methods and Algorithms for Fast Hashing in Data Streaming
Footnotes
Cryptography / Information Security
Contents
Cover Page
Title Page
Copyright Page
Preface
Acknowledgments
About the Editors
Contributors
Chapter 1: Basics of Security and Cryptography
1.1 The Perimeter of Cryptography in Practice
1.2 Things That Cryptographic Technologies Cannot Do
Chapter 2: Classical Cryptographic Algorithms
2.1 Caesar Cipher
2.1.1 Algorithm
2.1.2 Implementation
2.1.3 Limitations
2.2 Monoalphabetic Cipher
2.2.1 Algorithm
2.2.2 Implementation
2.2.3 Limitations
2.3 Playfair Cipher
2.3.1 Algorithm
2.3.2 Implementation
2.3.3 Limitations
2.4 Polyalphabetic Cipher
2.4.1 Algorithm
2.4.2 Implementation
2.4.3 Limitations
Chapter 3: Rotor Machine
3.1 Background
3.2 Basic Concept
3.3 Systematization
3.4 Algorithm
3.5 Implementation
3.6 Limitations
Reference
Chapter 4: Block Cipher
4.1 Block Cipher Principles
4.2 The Feistel Block Structure
4.3 Block Cipher Modes
4.3.1 Electronic Codebook (ECB) Mode
4.3.2 Cipher Block Chaining (CBC)
4.3.3 Cipher Feedback (CFB) Mode
4.3.4 Output Feedback (OFB) Mode
4.3.5 Counter (CTR) Mode
References
Chapter 5: Data Encryption Standard
5.1 Primitive Operations
5.1.1 Operations for Encryption/Decryption
5.1.2 Operations for Subkey Generation
5.2 Basic Structure
5.3 DES Encryption Algorithm
5.4 DES Decryption Algorithm
5.5 Implementation
5.5.1 C++ Library Headers
5.5.2 The DES Class
5.5.3 Introducing the Member Variables of DES Class
5.5.4 Introducing the Member Functions of DES Class
5.5.5 The Keygen() Function
5.5.6 The PermChoice1() Function
5.5.7 The Split_Key() Function
5.5.8 The PermChoice2() Function
5.5.9 The Encrypt(char *) Function
5.5.10 The IP() Function
5.5.11 The Expansion() Function
5.5.12 The xor_oneE(int round) Function
5.5.13 The Substitution() Function
5.5.14 The Permutation() Function
5.5.15 The xor_two() Function
5.5.16 The Decrypt(char *) Function
5.5.17 The Main() Function
Chapter 6: Advanced Encryption Standard
6.1 Overview
6.2 History
6.3 Design Consideration
6.4 Primitive Operations of AES
6.5 Structure of AES
6.6 Overview of Key Expansion
6.7 Key Expansion Example
6.8 Encryption
6.9 An Encryption Example
6.10 Decryption
6.11 Limitations
6.12 Pros and Cons of AES
6.13 Implementation
6.14 Conclusion
Chapter 7: Asymmetric Key Algorithms
7.1 Basic Concept
7.2 Applications of Asymmetric Key Algorithms
7.2.1 Encryption/Decryption
7.2.2 Digital Signature
7.2.3 Encryption and Digital Signature
Chapter 8: The RSA Algorithm
8.1 The Concept
8.2 Operations
8.2.1 Key Generation
8.2.2 Encryption
8.2.3 Decryption
8.3 Applications of the RSA Algorithm
8.4 Implementation Code
Chapter 9: Elliptic Curve Cryptography
9.1 Introduction
9.2 Elliptic Curves over R
9.3 Elliptic Curves over ZP
9.3.1 Adding Points in Elliptic Curves over ZP
9.3.2 Scalar Multiplication
9.4 Discrete Logarithm Problem
9.5 Elliptic Curve Cryptography
9.5.1 Elliptic Curve Diffie–Hellman Key Exchange
9.5.2 Key Exchange Example
9.5.3 Elliptic Curve Encryption/Decryption
9.5.4 Encryption/Decryption Example
9.6 Implementation 1
9.7 Implementation 2
References
Chapter 10: Message Digest Algorithm 5
10.1 General Properties and Vulnerabilities
10.2 Design Principle
10.3 Algorithm Description
10.3.1 Add Padding Bits behind the Input Message
10.3.2 Add a 64-Bit Binary String That Is the Representation of the Message’s Length
10.3.3 Initialize Four 32-Bit Values
10.3.4 Compress Every 512-Bit Block
10.3.5 Generate the 128-Bit Output
10.4 An Example
10.5 Implementation 1
10.6 Implementation 2
10.7 Conclusion
References
Chapter 11: Secure Hash Algorithm
11.1 Basic Hash Function Concept
11.2 Applications
11.3 Steps of SHA-1
11.3.1 Appending Original Message Lengths and Padding
11.3.2 Initialization
11.3.3 Message Processing
11.3.4 Output
11.4 An Example
11.5 Implementation
11.6 Conclusion
Chapter 12: Fundamentals of Identity Based Cryptography
12.1 Introduction to Cryptography
12.1.1 Symmetric Cryptography
12.1.2 Asymmetric Cryptography
12.1.3 Diffie–Hellman (DH) Algorithms
12.1.4 Rivest, Shamir, and Adleman (RSA) Algorithms
12.1.5 Elliptic Curve Cryptography (ECC)
12.1.5.1 ECC Key Generation
12.1.5.2 Elliptic Curve Digital Signature Algorithm
12.2 ID-Based Cryptography
12.2.1 ID-Based Key Construction
12.2.2 Pairing Functions
12.2.3 Examples of ID-Based Encryption Schemes
12.2.3.1 Boneh and Franklin Encryption Scheme
12.2.3.2 Boneh and Boyen Encryption Schemes
12.2.3.3 Chen et al. Encryption Scheme
12.2.4 Examples of ID-Based Signature Algorithms
12.2.4.1 Paterson Signature Scheme
12.2.4.2 Hess Signature Scheme
12.2.4.3 Barreto et al. Signature Scheme
12.2.5 Arguments in Favor of IBC
12.2.6 Use of IBC in Network Security
12.3 Conclusion
References
Chapter 13: Symmetric Key Encryption Acceleration on Heterogeneous Many Core Architectures
13.1 Introduction
13.2 Modern Heterogeneous Many-Core Architectures
13.3 The OpenCL Programming Model
13.3.1 OpenCL Parallel Execution Model
13.3.2 OpenCL Memory Model
13.3.3 First OpenCL Example
13.4 Implementing AES in OpenCL
13.4.1 The AES Block Cipher
13.4.2 Modes of Operation
13.4.3 AES Kernels
13.4.4 AES Host Library
13.4.5 Putting It All Together
13.5 Implementation
13.6 Concluding Remarks
References
Chapter 14: Methods and Algorithms for Fast Hashing in Data Streaming
14.1 Introduction and Practical Situations
14.2 Terminology
14.3 The Data Streaming Problem
14.3.1 Related Information Theory and Formulations
14.3.2 Practical Applications and Designs
14.3.3 Current Research Topics
14.4 Simple 32-Bit Fast Hashing
14.4.1 Hashing and Blooming Basics
14.4.2 Traditional Hashing Methods
14.4.3 Hashing by Bit Manipulation
14.4.4 Quality Evaluation of Hash Functions
14.4.5 Example Designs for Fast Hashing
14.5 Practical Data Streaming
14.5.1 Distributions in Practice
14.5.2 Bloom Filters: Store, Lookup, and Efficiency
14.5.3 Unconventional Bloom Filter Designs for Data Streams
14.5.4 Practical Data Streaming Targets
14.5.5 Higher-Complexity Data Streaming Targets
14.6 Practical Fast Hashing and Blooming
14.6.1 Arbitrary Bit Length Hashing
14.6.2 Arbitrary Length Bloom Filters
14.6.3 Hardware Implementation
14.7 Practical Example: High-Speed Packet Traffic Processor
14.7.1 Example Data Streaming Target
14.7.2 Design for Hashing and Data Structures
14.8 Summary
References
Footnotes
Chapter 8: The RSA Algorithm
Chapter 13: Symmetric Key Encryption Acceleration on Heterogeneous Many-Core Architectures
Cryptography / Information Security
i
ii
iii
iv
v
vi
vii
viii
ix
x
xi
xii
xiii
xiv
xv
xvi
xvii
xviii
xix
xx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334