Book Image

Cryptography Algorithms

By : Massimo Bertaccini
Book Image

Cryptography Algorithms

By: Massimo Bertaccini

Overview of this book

Cryptography Algorithms is designed to help you get up and running with modern cryptography algorithms. You'll not only explore old and modern security practices but also discover practical examples of implementing them effectively. The book starts with an overview of cryptography, exploring key concepts including popular classical symmetric and asymmetric algorithms, protocol standards, and more. You'll also cover everything from building crypto codes to breaking them. In addition to this, the book will help you to understand the difference between various types of digital signatures. As you advance, you will become well-versed with the new-age cryptography algorithms and protocols such as public and private key cryptography, zero-knowledge protocols, elliptic curves, quantum cryptography, and homomorphic encryption. Finally, you'll be able to apply the knowledge you've gained with the help of practical examples and use cases. By the end of this cryptography book, you will be well-versed with modern cryptography and be able to effectively apply it to security applications.
Table of Contents (15 chapters)
1
Section 1: A Brief History and Outline of Cryptography
3
Section 2: Classical Cryptography (Symmetric and Asymmetric Encryption)
7
Section 3: New Cryptography Algorithms and Protocols
12
Section 4: Homomorphic Encryption and the Crypto Search Engine

Partial homomorphism in RSA

Let's take the RSA algorithm to explain this correspondence between ciphertext operations and plaintext operations (in this case, multiplication).

We know that RSA's encryption is as follows:

[M]^e ≡ c (mod N)

Here, we have the following:

  • [M] is the message.
  • (e) is the public parameter of encryption.
  • (N) is the public key composed by [p*q].
  • (c) is the cryptogram.

Now, we are supposed to have two messages, [M1] and [M2], and we encrypt them using the same public parameters (e, N) to generate two different cryptograms (c1, c2). The result of the encryption will be as follows:

c1 ≡ M1^e (mod N)
c2 ≡ M2^e (mod N)

If we multiply the ciphers (c1*c2), we get as a result a third cryptogram (c3), such that the following applies:

c3 = c1 * c2 
c3 ≡ M1^e (mod N) * M2^e (mod N) 
c3 ≡ M1^e * M2^e (mod N)

I have simply substituted the operations on encrypted messages [M1] and...