Public Key-Crypto System
Public Key-Crypto System
CRYPTOGRAPHY
Shannon’s Theory
According to the famous information theorist Claude
Shannon, there are two primitive operations with which
strong encryption algorithms can be built: confusion and
diffusion are two properties of the operation of a secure
cipher identified in 1945 classified report A Mathematical
Theory of Cryptography.
Confusion
Confusion is an encryption operation where the relationship
between key and ciphertext is obscured. Today, a common
element for achieving confusion is substitution, which is
found in both DES and AES.
This property makes it difficult to find the key from the
ciphertext and if a single bit in a key is changed, the
calculation of the values of most or all of the bits in the
ciphertext will be affected.
Confusion increases the ambiguity of ciphertext and it is used
by both block and stream ciphers.
Diffusion
Diffusion is an encryption operation where the influence of one
plaintext symbol is spread over many ciphertext symbols with the
goal of hiding statistical properties of the plaintext. A simple
diffusion element is the bit permutation, which is used frequently
within DES.
Diffusion means that if we change a single bit of the plaintext, then
(statistically) half of the bits in the ciphertext should change, and
similarly, if we change one bit of the ciphertext, then approximately
one half of the plaintext bits should change.
The idea of diffusion is to hide the relationship between the
ciphertext and the plain text. This will make it hard for an attacker
who tries to find out the plain text and it increases the redundancy of
plain text by spreading it across the rows and columns; it is achieved
through transposition of algorithm and it is used by block ciphers
only.
Review of Secret Key (Symmetric) Cryptography
Confidentiality
stream ciphers
block ciphers with encryption modes
Integrity
Cryptographic hash functions
Message authentication code (keyed hash functions)
Limitation: sender and receiver must share the same
key
Needs secure channel for key distribution
Impossible for two parties having no prior relationship
Needs many keys for n parties to communicate
Public Key Encryption Overview
Each party has a PAIR (K, K-1) of keys:
K is the public key, and used for encryption
-1
K is the private key, and used for decryption
Satisfies DK-1[EK[M]] = M
Knowing the public-key K, it is computationally infeasible to
compute the private key K-1
The public-key K may be made publicly available, e.g., in a
publicly available directory
Many can encrypt, only one can decrypt
(VERISIGN).
PRIVATE key = known only by Alice.
Decryption
Given a ciphertext C, use private key (d)
Compute M= Cd mod n
RSA Public Key Crypto System
RSA Example
32
find d directly
Timing Attacks
every algorithm.
add random delays: