| List of Figures | p. XIII |
| List of Tables | p. XIX |
| List of Algorithms | p. XX |
| Acronyms | p. XXIII |
| Preface | p. XXV |
| Introduction | p. 1 |
| Main goals | p. 1 |
| Monograph Organization | p. 3 |
| Acknowledgments | p. 4 |
| A Brief Introduction to Modern Cryptography | p. 7 |
| Introduction | p. 8 |
| Secret Key Cryptography | p. 9 |
| Hash Functions | p. 11 |
| Public Key Cryptography | p. 12 |
| Digital Signature Schemes | p. 15 |
| RSA Digital Signature | p. 16 |
| RSA Standards | p. 17 |
| DSA Digital Signature | p. 18 |
| Digital Signature with Elliptic Curves | p. 19 |
| Key Exchange | p. 23 |
| A Comparison of Public Key Cryptosystems | p. 24 |
| Cryptographic Security Strength | p. 26 |
| Potential Cryptographic Applications | p. 27 |
| Fundamental Operations for Cryptographic Algorithms | p. 29 |
| Design Alternatives for Implementing Cryptographic Algorithms | p. 31 |
| Conclusions | p. 32 |
| Reconfigurable Hardware Technology | p. 35 |
| Antecedents | p. 36 |
| Field Programmable Gate Arrays | p. 38 |
| Case of Study I: Xilinx FPGAs | p. 39 |
| Case of Study II: Altera FPGAs | p. 44 |
| FPGA Platforms versus ASIC and General-Purpose Processor Platforms | p. 48 |
| FPGAs versus ASICs | p. 48 |
| FPGAs versus General-Purpose Processors | p. 49 |
| Reconfigurable Computing Paradigm | p. 50 |
| FPGA Programming | p. 52 |
| VHSIC Hardware Description Language (VHDL) | p. 52 |
| Other Programming Models for FPGAs | p. 53 |
| Implementation Aspects for Reconfigurable Hardware Designs | p. 53 |
| Design Flow | p. 53 |
| Design Techniques | p. 55 |
| Strategies for Exploiting FPGA Parallelism | p. 58 |
| FPGA Architecture Statistics | p. 59 |
| Security in Reconfigurable Hardware Devices | p. 61 |
| Conclusions | p. 62 |
| Mathematical Background | p. 63 |
| Basic Concepts of the Elementary Theory of Numbers | p. 63 |
| Basic Notions | p. 64 |
| Modular Arithmetic | p. 67 |
| Finite Fields | p. 70 |
| Rings | p. 70 |
| Fields | p. 70 |
| Finite Fields | p. 70 |
| Binary Finite Fields | p. 71 |
| Elliptic curves | p. 73 |
| Definition | p. 73 |
| Elliptic Curve Operations | p. 74 |
| Elliptic Curve Scalar Multiplication | p. 76 |
| Elliptic Curves over GF(2m) | p. 77 |
| Point Addition | p. 78 |
| Point Doubling | p. 78 |
| Order of an Elliptic Curve | p. 79 |
| Elliptic Curve Groups and the Discrete Logarithm Problem | p. 79 |
| An Example | p. 79 |
| Point Representation | p. 82 |
| Projective Coordinates | p. 83 |
| Lopez-Dahab Coordinates | p. 84 |
| Scalar Representation | p. 85 |
| Binary Representation | p. 85 |
| Recoding Methods | p. 85 |
| [omega]-NAF Representation | p. 87 |
| Conclusions | p. 88 |
| Prime Finite Field Arithmetic | p. 89 |
| Addition Operation | p. 90 |
| Full-Adder and Half-Adder Cells | p. 90 |
| Carry Propagate Adder | p. 91 |
| Carry Completion Sensing Adder | p. 92 |
| Carry Look-Ahead Adder | p. 94 |
| Carry Save Adder | p. 96 |
| Carry Delayed Adder | p. 97 |
| Modular Addition Operation | p. 98 |
| Omura's Method | p. 99 |
| Modular Multiplication Operation | p. 100 |
| Standard Multiplication Algorithm | p. 101 |
| Squaring is Easier | p. 104 |
| Modular Reduction | p. 105 |
| Interleaving Multiplication and Reduction | p. 108 |
| Utilization of Carry Save Adders | p. 110 |
| Brickell's Method | p. 114 |
| Montgomery's Method | p. 116 |
| High-Radix Interleaving Method | p. 123 |
| High-Radix Montgomery's Method | p. 124 |
| Modular Exponentiation Operation | p. 124 |
| Binary Strategies | p. 125 |
| Window Strategies | p. 126 |
| Adaptive Window Strategy | p. 129 |
| RSA Exponentiation and the Chinese Remainder Theorem | p. 132 |
| Recent Prime Finite Field Arithmetic Designs on FPGAs | p. 136 |
| Conclusions | p. 138 |
| Binary Finite Field Arithmetic | p. 139 |
| Field Multiplication | p. 139 |
| Classical Multipliers and their Analysis | p. 141 |
| Binary Karatsuba-Ofman Multipliers | p. 142 |
| Squaring | p. 151 |
| Reduction | p. 152 |
| Modular Reduction with General Polynomials | p. 156 |
| Interleaving Multiplication | p. 159 |
| Matrix-Vector Multipliers | p. 161 |
| Montgomery Multiplier | p. 164 |
| A Comparison of Field Multiplier Designs | p. 165 |
| Field Squaring and Field Square Root for Irreducible Trinomials | p. 166 |
| Field Squaring Computation | p. 167 |
| Field Square Root Computation | p. 168 |
| Illustrative Examples | p. 171 |
| Multiplicative Inverse | p. 173 |
| Inversion Based on the Extended Euclidean Algorithm | p. 175 |
| The IToh-Tsujii Algorithm | p. 176 |
| Addition Chains | p. 178 |
| ITMIA Algorithm | p. 178 |
| Square Root ITMIA | p. 179 |
| Extended Euclidean Algorithm versus Itoh-Tsujii Algorithm | p. 181 |
| Multiplicative Inverse FPGA Designs | p. 183 |
| Other Arithmetic Operations | p. 183 |
| Trace function | p. 183 |
| Solving a Quadratic Equation over GF(2m) | p. 184 |
| Exponentiation over Binary Finite Fields | p. 185 |
| Conclusions | p. 186 |
| Reconfigurable Hardware Implementation of Hash Functions | p. 189 |
| Introduction | p. 189 |
| Some Famous Hash Functions | p. 191 |
| MD5 | p. 193 |
| Message Preprocessing | p. 194 |
| MD Buffer Initialization | p. 196 |
| Main Loop | p. 197 |
| Final Transformation | p. 198 |
| SHA-1, SHA-256, SHA-384 and SHA-512 | p. 201 |
| Message Preprocessing | p. 202 |
| Functions | p. 204 |
| SHA-1 | p. 205 |
| Constants | p. 206 |
| Hash Computation | p. 207 |
| Hardware Architectures | p. 210 |
| Iterative Design | p. 211 |
| Pipelined Design | p. 212 |
| Unrolled Design | p. 212 |
| A Mixed Approach | p. 213 |
| Recent Hardware Implementations of Hash Functions | p. 213 |
| Conclusions | p. 220 |
| General Guidelines for Implementing Block Ciphers in FPGAs | p. 221 |
| Introduction | p. 221 |
| Block Ciphers | p. 222 |
| General Structure of a Block Cipher | p. 223 |
| Design Principles for a Block Cipher | p. 224 |
| Useful Properties for Implementing Block Ciphers in FPGAs | p. 227 |
| The Data Encryption Standard | p. 232 |
| The Initial Permutation (IP[superscript -1]) | p. 233 |
| Structure of the Function f[subscript k] | p. 234 |
| Key Schedule | p. 237 |
| FPGA Implementation of DES Algorithm | p. 238 |
| DES Implementation on FPGAs | p. 238 |
| Design Testing and Verification | p. 240 |
| Performance Results | p. 240 |
| Other DES Designs | p. 240 |
| Conclusions | p. 244 |
| Architectural Designs For the Advanced Encryption Standard | p. 245 |
| Introduction | p. 245 |
| The Rijndael Algorithm | p. 247 |
| Difference Between AES and Rijndael | p. 247 |
| Structure of the AES Algorithm | p. 248 |
| The Round Transformation | p. 249 |
| ByteSubstitution (BS) | p. 249 |
| ShiftRows (SR) | p. 251 |
| MixColumns (MC) | p. 252 |
| AddRoundKey (ARK) | p. 253 |
| Key Schedule | p. 254 |
| AES in Different Modes | p. 254 |
| CTR Mode | p. 255 |
| CCM Mode | p. 256 |
| Implementing AES Round Basic Transformations on FPGAs | p. 259 |
| S-Box/Inverse S-Box Implementations on FPGAs | p. 260 |
| MC/IMC Implementations on FPGA | p. 264 |
| Key Schedule Optimization | p. 267 |
| AES Implementations on FPGAs | p. 268 |
| Architectural Alternatives for Implementing AES | p. 269 |
| Key Schedule Algorithm Implementations | p. 273 |
| AES Encryptor Cores - Iterative and Pipeline Approaches | p. 276 |
| AES Encryptor/Decryptor Cores- Using Look-Up Table and Composite Field Approaches for S-Box | p. 278 |
| AES Encryptor/Decryptor, Encryptor, and Decryptor Cores Based on Modified MC/IMC | p. 281 |
| Review of This Chapter Designs | p. 284 |
| Performance | p. 285 |
| Other Designs | p. 285 |
| Conclusions | p. 288 |
| Elliptic Curve Cryptography | p. 291 |
| Introduction | p. 291 |
| Hessian Form | p. 294 |
| Weierstrass Non-Singular Form | p. 296 |
| Projective Coordinates | p. 296 |
| The Montgomery Method | p. 297 |
| Parallel Strategies for Scalar Point Multiplication | p. 300 |
| Implementing scalar multiplication on Reconfigurable Hardware | p. 302 |
| Arithmetic-Logic Unit for Scalar Multiplication | p. 303 |
| Scalar multiplication in Hessian Form | p. 304 |
| Montgomery Point Multiplication | p. 306 |
| Implementation Summary | p. 306 |
| Koblitz Curves | p. 308 |
| The [tau] and [tau superscript -1] Frobenius Operators | p. 309 |
| [omega tau]NAF Scalar Multiplication in Two Phases | p. 312 |
| Hardware Implementation Considerations | p. 313 |
| Half-and-Add Algorithm for Scalar Multiplication | p. 317 |
| Efficient Elliptic Curve Arithmetic | p. 318 |
| Implementation | p. 321 |
| Performance Estimation | p. 324 |
| Performance Comparison | p. 326 |
| Conclusions | p. 328 |
| References | p. 329 |
| Index | p. 359 |
| Table of Contents provided by Ingram. All Rights Reserved. |