Understanding Cryptography: A Textbook for Students and Practitioners
Christof Paar, Jan Pelzl
Format: PDF / Kindle (mobi) / ePub
Cryptography is now ubiquitous – moving beyond the traditional environments, such as government communications and banking systems, we see cryptographic techniques realized in Web browsers, e-mail programs, cell phones, manufacturing systems, embedded software, smart buildings, cars, and even medical implants. Today's designers need a comprehensive understanding of applied cryptography.
After an introduction to cryptography and data security, the authors explain the main techniques in modern cryptography, with chapters addressing stream ciphers, the Data Encryption Standard (DES) and 3DES, the Advanced Encryption Standard (AES), block ciphers, the RSA cryptosystem, public-key cryptosystems based on the discrete logarithm problem, elliptic-curve cryptography (ECC), digital signatures, hash functions, Message Authentication Codes (MACs), and methods for key establishment, including certificates and public-key infrastructure (PKI). Throughout the book, the authors focus on communicating the essentials and keeping the mathematics to a minimum, and they move quickly from explaining the foundations to describing practical implementations, including recent topics such as lightweight ciphers for RFIDs and mobile devices, and current key-length recommendations.
The authors have considerable experience teaching applied cryptography to engineering and computer science students and to professionals, and they make extensive use of examples, problems, and chapter reviews, while the book’s website offers slides, projects and links to further resources. This is a suitable textbook for graduate and advanced undergraduate courses and also for self-study by engineers.
increase the security. DES is a 56-bit cipher, not a 64-bit one. As shown in Fig. 3.13, the 64-bit key is first reduced to 56 bits by ignoring every eighth bit, i.e., the parity bits are stripped in the initial PC − 1 permutation. Again, the parity bits certainly do not increase the key space! The name PC − 1 stands for “permuted choice one”. The exact bit connections that are realized by PC − 1 are given in Table 3.11. LSB MSB 64 7 1 7 P ... 1 P P = parity bit Fig. 3.13 Location of the
tables which contain the precomputed inverses of all field elements are often used. Table 4.2 shows the values which are used within the S-Box of AES. The table contains all inverses in GF(28 ) modulo P(x) = x8 + x4 + x3 + x + 1 in hexadecimal notation. A special case is the entry for the field element 0, for which 4.4 Internal Structure of AES 99 an inverse does not exist. However, for the AES S-Box, a substitution table is needed that is defined for every possible input value. Hence, the
source for further references is the AES Lounge. The standard reference for the mathematics of finite fields is . A very accessible but brief introduction is also given in . The International Workshop on the Arithmetic of Finite Fields (WAIFI), a relatively new workshop series, is concerned with both the applications and the theory of Galois fields . Implementation As mentioned in Sect. 4.6, in most software implementations on modern CPUs special lookup tables are being used
Galois Counter Mode (GCM) The Galois Counter Mode (GCM) is an encryption mode which also computes a message authentication code (MAC) . A MAC provides a cryptographic checksum that is computed by the sender, Alice, and appended to the message. Bob also computes a MAC from the message and checks whether his MAC is the same as the one computed by Alice. This way, Bob can make sure that (1) the message was really created by Alice and (2) that nobody tampered with the ciphertext during
of the multiplicative inverse. Thus, we immediately have a way for inverting an integer a modulo a prime: a−1 ≡ a p−2 ( mod p) (6.7) We note that this inversion method holds only if p is a prime. Let’s look at an example: Example 6.11. Let p = 7 and a = 2. We can compute the inverse of a as: a p−2 = 25 = 32 ≡ 4 mod 7. This is easy to verify: 2 · 4 ≡ 1 mod 7. ⋄ Performing the exponentiation in Eq. (6.7) is usually slower than using the extended Euclidean algorithm. However, there are situations