CRYPTOGRAPHY
Symmetric encryption, also referred to as conventional encryption or
single-key encryption
A symmetric encryption scheme has five ingredients
1.
Plaintext: This is the original message or data that is fed into the
algorithm as input.
2.
Encryption algorithm: The encryption algorithm performs
various substitutions and transformations on the plaintext.
3.
Secret key: The secret key is also input to the encryption
algorithm.
4.
Ciphertext: This is the scrambled message produced as output.
It depends on the plaintext and the secret key.
5.
Decryption algorithm: encryption algorithm run in reverse. It
takes the ciphertext and the secret key and produces the original
plaintext.
Requirements for symmetric encryption
We need a strong encryption algorithm
Sender and receiver must have obtained copies of the secret key in a
secure fashion and must keep the key secure.
Attacking a symmetric encryption scheme.
There are two general approaches:
Cryptanalysis.
- Cryptanalytic attacks rely on the nature of the
algorithm plus some knowledge of the general characteristics of the
plaintext or even some sample plaintext-cipher text pairs.
Brute-force attack, is to try every possible key on a piece of cipher
text until an intelligible translation into plaintext is obtained. On
average, half of all possible keys must be tried to achieve success.
Techniques for Encryption
Conventional same key is used for encrypt & decrypt
Public Key Different key is used to encrypt & decrypt
Hash Function
Encryption Algorithms
The most commonly used symmetric encryption algorithms are block
ciphers.
A block cipher processes the plaintext input in fixed-size blocks and
produces a block of cipher text of equal size for each plaintext block.
The two most important symmetric algorithms, both of which are block
ciphers, are :
Data Encryption Standard (DES) and the Advanced Encryption
Standard (AES).
RSA Public-Key Encryption Algorithm
One of the first public-key schemes was developed in 1977 by
Rivest,Shamir, and Adleman at MIT.
RSA is a block cipher in which the plaintext and cipher text are integers
between 0 and
n - 1 for some n.
Asymmetric since parties are not equal
uses two keys a public & a private key
a public-key, which may be known by anybody, and can be used to
encrypt messages, and verify signatures
a private-key, known only to the recipient, used to decrypt messages,
and sign (create) signatures
Example:
Choose p = 3 and q = 11
Compute n = p * q = 3 * 11 = 33
Compute (n) = (p - 1) * (q - 1) = 2 * 10 = 20
Choose e such that 1 < e < (n) and e and n are prime. Let e = 7
Compute a value for d such that
o (d * e) mod (n) = 1.
One solution is d = 3
[(3 * 7) mod 20 = 1]
Public key is (e, n) => (7, 33)
used in encryption
Private key is (d, n) => (3, 33)
used in decryption
The encryption of m = 2 is c = 2
mod 33 = 29
The decryption of c = 29 is m = 29
mod 33 = 2