|
Symmetric
Encryption
In a Symmetric
Encryption, a symmetric cipher uses the same key for both encryption
and decryption. There are two types of symmetric ciphers: block
ciphers, and stream ciphers.
A stream cipher
relies on a key derivation function to generate a key stream. A
block cipher encrypts the text in fixed sized blocks. Block ciphers
are widely supported in XML Encryption. Even though stream ciphers
are faster and smaller to implement, they have an important security
gap. If the same key stream is used, certain types of attacks may
cause the information to be revealed.

The most used
block ciphers are Triple DES and the AES. AES is Advanced Encryption
Standard. Triple DES is a variation of Data Encryption Standard
(DES). It uses a 64-bit key consisting of 56 effective key bits
and 8 parity bits. The size of the block for Triple-DES is 8 bytes.
Triple-DES encrypts the data in 8-byte chunks. The following figure
shows how Triple-DES works.
Major
problems of Symmetric Encryption are:
- Data
Integrity: Receiver can not verify the that a message
has not been altered.
- Repudiation:
Receiver can not make sure that the message has been sent by the
claimed sender.
- Scalable
Key Distribution: Data
integrity and repudiation problems are solved with digital signatures
while key distribution problem is solved using RSA encryption
or the DH key agreement algorithm.
Asymmetric
Encryption (Public Key Encryption)
Asymmetric key
cryptography uses non-matching keys for encryption and decryption:
One key for encryption and the other for decryption.
Various algorithms
are exist for Asymmetric Encryption such as RSA, DSA and PGP.

RSA
Algorithm
The keys used
for encryption and decryption in RSA algorithm, are generated using
random data. The key used for encryption is a public key and the
key used for decryption is a private key. Public keys are stored
anywhere publicly accessible. The sender of message encrypts the
data using public key, and the receiver decrypts it using his/her
own private key. That way, no one else can intercept the data except
receiver.
Key
Generation
Choose to large
prime numbers: p and q. The product n = pq, n is referred as modulus.
Choose two more numbers: e and d. e is referred to as the public
exponent d is the private exponent. The value e must be chosen less
than n and relatively prime to (p-1)(q-1). The term relatively prime
means that (p-1)(q-1) and e have no common factors except 1.
The value d
must be chosen such that (ed-1) is divisible by (p-1)(q-1).
The public key:
(n, e)
The private
key: (n, d)
RSA
Encryption and Decryption
Encryption is
done with a public key(or private key for signature). To encrypt
the message m which will result in ciphertext c:
c = mod
n
Decryption is
done with a private key (or public key to verify signature).
m = mod
n
However RSA
algorithm has two drawbacks:
Key generation
can be slow.
RSA operations
are slower than similar symmetric key operations.
|