Skip to:Content
|
Bottom
Cover image for Cryptographic algorithms on reconfigurable hardware
Title:
Cryptographic algorithms on reconfigurable hardware
Series:
Signals and communication technology
Publication Information:
New York, NY : Springer, 2006
ISBN:
9780387338835

Available:*

Library
Item Barcode
Call Number
Material Type
Item Category 1
Status
Searching...
30000010133233 QA76.9.A3 C79 2006 Open Access Book Book
Searching...

On Order

Summary

Summary

Cryptographic solutions using software methods can be used for those security applications where data traffic is not too large and low encryption rate is tolerable. On the other hand, hardware methods offer high-speed solutions making them highly suitable for applications where data traffic is fast and large data is required to be encrypted in real time. VLSI (also known as ASIC), and FPGAs (Field Programmable Gate Arrays) are two alternatives for implementing cryptographic algorithms in hardware. FPGAs offer several benefits for cryptographic algorithm implementations over VLSI as they offer high flexibility. Due to its reconfigurable property, keys can be changed rapidly. Moreover, basic primitives in most cryptographic algorithms can efficiently be implemented in FPGAs.

Since the invention of the Data Encryption Standard (DES), some 40 years ago, a considerable amount of cryptographic algorithm implementation literature has been produced both, for software and hardware platforms. Unfortunately, virtually there exists no book explaining how the main cryptographic algorithms can be implemented on reconfigurable hardware devices.

This book will cover the study of computational methods, computer arithmetic algorithms, and design improvement techniques needed to implement efficient cryptographic algorithms in FPGA reconfigurable hardware platforms. The concepts and techniques to be reviewed in this book will make special emphasis on the practical aspects of reconfigurable hardware design, explaining the basic mathematics related and giving a comprehensive description of state-of-the-art implementation techniques. Thus, the main goal of this monograph is to show how high-speed cryptographic algorithms implementations can be achieved on reconfigurable hardware devices without posing prohibited high requirements for hardware resources.


Table of Contents

List of Figuresp. XIII
List of Tablesp. XIX
List of Algorithmsp. XX
Acronymsp. XXIII
Prefacep. XXV
1 Introductionp. 1
1.1 Main goalsp. 1
1.2 Monograph Organizationp. 3
1.3 Acknowledgmentsp. 4
2 A Brief Introduction to Modern Cryptographyp. 7
2.1 Introductionp. 8
2.2 Secret Key Cryptographyp. 9
2.3 Hash Functionsp. 11
2.4 Public Key Cryptographyp. 12
2.5 Digital Signature Schemesp. 15
2.5.1 RSA Digital Signaturep. 16
2.5.2 RSA Standardsp. 17
2.5.3 DSA Digital Signaturep. 18
2.5.4 Digital Signature with Elliptic Curvesp. 19
2.5.5 Key Exchangep. 23
2.6 A Comparison of Public Key Cryptosystemsp. 24
2.7 Cryptographic Security Strengthp. 26
2.8 Potential Cryptographic Applicationsp. 27
2.9 Fundamental Operations for Cryptographic Algorithmsp. 29
2.10 Design Alternatives for Implementing Cryptographic Algorithmsp. 31
2.11 Conclusionsp. 32
3 Reconfigurable Hardware Technologyp. 35
3.1 Antecedentsp. 36
3.2 Field Programmable Gate Arraysp. 38
3.2.1 Case of Study I: Xilinx FPGAsp. 39
3.2.2 Case of Study II: Altera FPGAsp. 44
3.3 FPGA Platforms versus ASIC and General-Purpose Processor Platformsp. 48
3.3.1 FPGAs versus ASICsp. 48
3.3.2 FPGAs versus General-Purpose Processorsp. 49
3.4 Reconfigurable Computing Paradigmp. 50
3.4.1 FPGA Programmingp. 52
3.4.2 VHSIC Hardware Description Language (VHDL)p. 52
3.4.3 Other Programming Models for FPGAsp. 53
3.5 Implementation Aspects for Reconfigurable Hardware Designsp. 53
3.5.1 Design Flowp. 53
3.5.2 Design Techniquesp. 55
3.5.3 Strategies for Exploiting FPGA Parallelismp. 58
3.6 FPGA Architecture Statisticsp. 59
3.7 Security in Reconfigurable Hardware Devicesp. 61
3.8 Conclusionsp. 62
4 Mathematical Backgroundp. 63
4.1 Basic Concepts of the Elementary Theory of Numbersp. 63
4.1.1 Basic Notionsp. 64
4.1.2 Modular Arithmeticp. 67
4.2 Finite Fieldsp. 70
4.2.1 Ringsp. 70
4.2.2 Fieldsp. 70
4.2.3 Finite Fieldsp. 70
4.2.4 Binary Finite Fieldsp. 71
4.3 Elliptic curvesp. 73
4.3.1 Definitionp. 73
4.3.2 Elliptic Curve Operationsp. 74
4.3.3 Elliptic Curve Scalar Multiplicationp. 76
4.4 Elliptic Curves over GF(2m)p. 77
4.4.1 Point Additionp. 78
4.4.2 Point Doublingp. 78
4.4.3 Order of an Elliptic Curvep. 79
4.4.4 Elliptic Curve Groups and the Discrete Logarithm Problemp. 79
4.4.5 An Examplep. 79
4.5 Point Representationp. 82
4.5.1 Projective Coordinatesp. 83
4.5.2 Lopez-Dahab Coordinatesp. 84
4.6 Scalar Representationp. 85
4.6.1 Binary Representationp. 85
4.6.2 Recoding Methodsp. 85
4.6.3 [omega]-NAF Representationp. 87
4.7 Conclusionsp. 88
5 Prime Finite Field Arithmeticp. 89
5.1 Addition Operationp. 90
5.1.1 Full-Adder and Half-Adder Cellsp. 90
5.1.2 Carry Propagate Adderp. 91
5.1.3 Carry Completion Sensing Adderp. 92
5.1.4 Carry Look-Ahead Adderp. 94
5.1.5 Carry Save Adderp. 96
5.1.6 Carry Delayed Adderp. 97
5.2 Modular Addition Operationp. 98
5.2.1 Omura's Methodp. 99
5.3 Modular Multiplication Operationp. 100
5.3.1 Standard Multiplication Algorithmp. 101
5.3.2 Squaring is Easierp. 104
5.3.3 Modular Reductionp. 105
5.3.4 Interleaving Multiplication and Reductionp. 108
5.3.5 Utilization of Carry Save Addersp. 110
5.3.6 Brickell's Methodp. 114
5.3.7 Montgomery's Methodp. 116
5.3.8 High-Radix Interleaving Methodp. 123
5.3.9 High-Radix Montgomery's Methodp. 124
5.4 Modular Exponentiation Operationp. 124
5.4.1 Binary Strategiesp. 125
5.4.2 Window Strategiesp. 126
5.4.3 Adaptive Window Strategyp. 129
5.4.4 RSA Exponentiation and the Chinese Remainder Theoremp. 132
5.4.5 Recent Prime Finite Field Arithmetic Designs on FPGAsp. 136
5.5 Conclusionsp. 138
6 Binary Finite Field Arithmeticp. 139
6.1 Field Multiplicationp. 139
6.1.1 Classical Multipliers and their Analysisp. 141
6.1.2 Binary Karatsuba-Ofman Multipliersp. 142
6.1.3 Squaringp. 151
6.1.4 Reductionp. 152
6.1.5 Modular Reduction with General Polynomialsp. 156
6.1.6 Interleaving Multiplicationp. 159
6.1.7 Matrix-Vector Multipliersp. 161
6.1.8 Montgomery Multiplierp. 164
6.1.9 A Comparison of Field Multiplier Designsp. 165
6.2 Field Squaring and Field Square Root for Irreducible Trinomialsp. 166
6.2.1 Field Squaring Computationp. 167
6.2.2 Field Square Root Computationp. 168
6.2.3 Illustrative Examplesp. 171
6.3 Multiplicative Inversep. 173
6.3.1 Inversion Based on the Extended Euclidean Algorithmp. 175
6.3.2 The IToh-Tsujii Algorithmp. 176
6.3.3 Addition Chainsp. 178
6.3.4 ITMIA Algorithmp. 178
6.3.5 Square Root ITMIAp. 179
6.3.6 Extended Euclidean Algorithm versus Itoh-Tsujii Algorithmp. 181
6.3.7 Multiplicative Inverse FPGA Designsp. 183
6.4 Other Arithmetic Operationsp. 183
6.4.1 Trace functionp. 183
6.4.2 Solving a Quadratic Equation over GF(2m)p. 184
6.4.3 Exponentiation over Binary Finite Fieldsp. 185
6.5 Conclusionsp. 186
7 Reconfigurable Hardware Implementation of Hash Functionsp. 189
7.1 Introductionp. 189
7.2 Some Famous Hash Functionsp. 191
7.3 MD5p. 193
7.3.1 Message Preprocessingp. 194
7.3.2 MD Buffer Initializationp. 196
7.3.3 Main Loopp. 197
7.3.4 Final Transformationp. 198
7.4 SHA-1, SHA-256, SHA-384 and SHA-512p. 201
7.4.1 Message Preprocessingp. 202
7.4.2 Functionsp. 204
7.4.3 SHA-1p. 205
7.4.4 Constantsp. 206
7.4.5 Hash Computationp. 207
7.5 Hardware Architecturesp. 210
7.5.1 Iterative Designp. 211
7.5.2 Pipelined Designp. 212
7.5.3 Unrolled Designp. 212
7.5.4 A Mixed Approachp. 213
7.6 Recent Hardware Implementations of Hash Functionsp. 213
7.7 Conclusionsp. 220
8 General Guidelines for Implementing Block Ciphers in FPGAsp. 221
8.1 Introductionp. 221
8.2 Block Ciphersp. 222
8.2.1 General Structure of a Block Cipherp. 223
8.2.2 Design Principles for a Block Cipherp. 224
8.2.3 Useful Properties for Implementing Block Ciphers in FPGAsp. 227
8.3 The Data Encryption Standardp. 232
8.3.1 The Initial Permutation (IP[superscript -1])p. 233
8.3.2 Structure of the Function f[subscript k]p. 234
8.3.3 Key Schedulep. 237
8.4 FPGA Implementation of DES Algorithmp. 238
8.4.1 DES Implementation on FPGAsp. 238
8.4.2 Design Testing and Verificationp. 240
8.4.3 Performance Resultsp. 240
8.5 Other DES Designsp. 240
8.6 Conclusionsp. 244
9 Architectural Designs For the Advanced Encryption Standardp. 245
9.1 Introductionp. 245
9.2 The Rijndael Algorithmp. 247
9.2.1 Difference Between AES and Rijndaelp. 247
9.2.2 Structure of the AES Algorithmp. 248
9.2.3 The Round Transformationp. 249
9.2.4 ByteSubstitution (BS)p. 249
9.2.5 ShiftRows (SR)p. 251
9.2.6 MixColumns (MC)p. 252
9.2.7 AddRoundKey (ARK)p. 253
9.2.8 Key Schedulep. 254
9.3 AES in Different Modesp. 254
9.3.1 CTR Modep. 255
9.3.2 CCM Modep. 256
9.4 Implementing AES Round Basic Transformations on FPGAsp. 259
9.4.1 S-Box/Inverse S-Box Implementations on FPGAsp. 260
9.4.2 MC/IMC Implementations on FPGAp. 264
9.4.3 Key Schedule Optimizationp. 267
9.5 AES Implementations on FPGAsp. 268
9.5.1 Architectural Alternatives for Implementing AESp. 269
9.5.2 Key Schedule Algorithm Implementationsp. 273
9.5.3 AES Encryptor Cores - Iterative and Pipeline Approachesp. 276
9.5.4 AES Encryptor/Decryptor Cores- Using Look-Up Table and Composite Field Approaches for S-Boxp. 278
9.5.5 AES Encryptor/Decryptor, Encryptor, and Decryptor Cores Based on Modified MC/IMCp. 281
9.5.6 Review of This Chapter Designsp. 284
9.6 Performancep. 285
9.6.1 Other Designsp. 285
9.7 Conclusionsp. 288
10 Elliptic Curve Cryptographyp. 291
10.1 Introductionp. 291
10.2 Hessian Formp. 294
10.3 Weierstrass Non-Singular Formp. 296
10.3.1 Projective Coordinatesp. 296
10.3.2 The Montgomery Methodp. 297
10.4 Parallel Strategies for Scalar Point Multiplicationp. 300
10.5 Implementing scalar multiplication on Reconfigurable Hardwarep. 302
10.5.1 Arithmetic-Logic Unit for Scalar Multiplicationp. 303
10.5.2 Scalar multiplication in Hessian Formp. 304
10.5.3 Montgomery Point Multiplicationp. 306
10.5.4 Implementation Summaryp. 306
10.6 Koblitz Curvesp. 308
10.6.1 The [tau] and [tau superscript -1] Frobenius Operatorsp. 309
10.6.2 [omega tau]NAF Scalar Multiplication in Two Phasesp. 312
10.6.3 Hardware Implementation Considerationsp. 313
10.7 Half-and-Add Algorithm for Scalar Multiplicationp. 317
10.7.1 Efficient Elliptic Curve Arithmeticp. 318
10.7.2 Implementationp. 321
10.7.3 Performance Estimationp. 324
10.8 Performance Comparisonp. 326
10.9 Conclusionsp. 328
Referencesp. 329
Indexp. 359
Go to:Top of Page