Conventional Encryption Algorithms

From Computing and Software Wiki

(Difference between revisions)
Jump to: navigation, search
(Classification of Ciphers)
 
(50 intermediate revisions not shown)
Line 1: Line 1:
-
'''Conventional Encryption''' is ...
+
'''Conventional Encryption''' involves transforming plaintext messages into ciphertext messages that are to be decrypted only by the intended receiver. Both sender and receiver agree upon a secrete key to be used in encrypting and decrypting. Usually the secrete key is transmitted via public key encryption methods.
-
[[Image:FlowDiagram.jpg|thumb|350px|right|Figure 1: Flow Diagram]]
+
 
 +
[[Image:FlowDiagram.jpg|thumb|350px|centre|Figure 1: Flow Diagram]]
 +
 
 +
In conventional encryption, it is assumed that it is mathematically impossible to derive the plaintext from the ciphertext without the key.<sup>[R1]</sup> Therefore, it is essential that the key remains secret.
 +
 
 +
These encryption algorithms are used in practice due to their efficiency in encrypting/decrypting but these algorithms have vulnerabilities. One aspect of these vulnerabilities is the total number of keys available to choose from. Larger key domains reduce possibility of brute force attacks. The key length is another aspect of these vulnerabilities since they will produce periodic patterns in the ciphertext. Longer keys often reduce periodicity. The goal of conventional encryption algorithms is to produce truly randomized ciphertexts, such that the use of frequency analysis on individual ciphertext symbols or ciphertext blocks is useless.
__TOC__
__TOC__
== Classification of Ciphers ==
== Classification of Ciphers ==
 +
[[Image:CipherClassification.jpg|thumb|right|200px|Figure 2: Types of Ciphers]]
There are several techniques in which encryption algorithms can produce ciphertext. The simplest forms of encryption are via substitution, where plaintext symbols are replaced and via transposition, where plaintext symbols are rearranged.  Other approaches such as stream and block translation involve converting plaintext to ciphertext either one symbol at a time or several symbols at a time respectively. In addition, steganographic techniques can be used, where symbols are introduced in the ciphertext to hide the plaintext meaning. A particular encryption/decryption implementation could incorporate multiple techniques to increase security.  
There are several techniques in which encryption algorithms can produce ciphertext. The simplest forms of encryption are via substitution, where plaintext symbols are replaced and via transposition, where plaintext symbols are rearranged.  Other approaches such as stream and block translation involve converting plaintext to ciphertext either one symbol at a time or several symbols at a time respectively. In addition, steganographic techniques can be used, where symbols are introduced in the ciphertext to hide the plaintext meaning. A particular encryption/decryption implementation could incorporate multiple techniques to increase security.  
-
[[Image:CipherClassification.jpg|thumb|right|Figure 2: Types of Ciphers]]
 
=== Monoalphabetic ===
=== Monoalphabetic ===
-
This is a substitution technique that uses a single alphabet to replace symbols of plaintext for symbols of ciphertext as dictated by the key. The key often represents the number of symbols to shift the plaintext from a circular alphabet. These techniques are relatively easy to break due to the fact that symbol frequencies remain invariant.
+
This is a substitution technique that uses a single alphabet to replace symbols of plaintext for symbols of ciphertext as dictated by the key. The key often represents the number of symbols to shift the plaintext from a circular alphabet. These techniques are relatively easy to break due to the fact that symbol frequencies remain invariant.<sup>[R5]</sup>
=== Polyalphabetic ===
=== Polyalphabetic ===
Line 15: Line 20:
=== Polygraphic ===
=== Polygraphic ===
-
This is a substitution technique that replaces a group of n plaintext symbols by a group of ''n'' ciphertext symbols. In doing so, the individual frequency of symbols is hidden. In generality, this technique is similar to that of monoalphabetic ciphers with only using larger alphabets.  
+
This is a substitution technique that replaces a group of n plaintext symbols by a group of ''n'' ciphertext symbols.<sup>[R2]</sup> In doing so, the individual frequency of symbols is hidden. In generality, this technique is similar to that of monoalphabetic ciphers with only using larger alphabets.
=== Route Transposition ===
=== Route Transposition ===
-
This is a transposition technique where the plaintext is first written out in an ''mxn'' grid region. The key often represents a path on how to read from the grid, such as clockwise outward spiral, vertical zigzag, triangulation, etc. The ciphertext then becomes the sequence of symbols as read by the path. These techniques provide enormous amounts of available keys in which to use. However, some choices of keys are poor ones since they may leave sections of the ciphertext in their original or reversed plaintext order giving hints as to which key where used.
+
This is a transposition technique where the plaintext is first written out in an ''mxn'' grid region. The key often represents a path on how to read from the grid, such as clockwise outward spiral, vertical zigzag, triangulation, etc.<sup>[R3]</sup> The ciphertext then becomes the sequence of symbols as read by the path. These techniques provide enormous amounts of available keys in which to use. However, some choices of keys are poor ones since they may leave sections of the ciphertext in their original or reversed plaintext order giving hints as to which key where used.
=== Columnar Transposition ===
=== Columnar Transposition ===
Line 24: Line 29:
=== Synchronous Stream ===
=== Synchronous Stream ===
-
This is a stream translation technique that combines plaintext with a key stream usually in the form of an XOR operation to form ciphertext one symbol at a time. These techniques require that the encoder and decoder be synchronized in the information they are processing. If information get introduced or lost during transition, decryption will be erroneous. If information gets corrupted only the particular symbol remains corrupted.  
+
This is a stream translation technique that combines plaintext with a key stream usually in the form of an XOR operation to form ciphertext one symbol at a time.<sup>[R4]</sup> These techniques require that the encoder and decoder be synchronized in the information they are processing. If information get introduced or lost during transition, decryption will be erroneous. If information gets corrupted only the particular symbol remains corrupted.
=== Asynchronous Stream ===
=== Asynchronous Stream ===
Line 30: Line 35:
=== Iterated Block ===
=== Iterated Block ===
-
This is a block translation technique that iteratively converts an n-sized block of plaintext into ciphertext at the same time.
+
This is a block translation technique that iteratively converts an ''n''-sized block of plaintext into ciphertext at the same time.
=== Fractioned Block ===
=== Fractioned Block ===
Line 40: Line 45:
== Popular Algorithms ==
== Popular Algorithms ==
-
{| align="center" border="1" cellpadding="4" cellspacing="0" style="background:white; text-align:center; width:80%"
+
{| align="center" border="1" cellpadding="4" cellspacing="0" style="background:white; text-align:center; width:40%"
|+ ''Conventional Encryption''
|+ ''Conventional Encryption''
|- style="background:lightgray"
|- style="background:lightgray"
! style="width:20%" | Algorithm
! style="width:20%" | Algorithm
! style="width:20%" | Type
! style="width:20%" | Type
-
! style="width:40%" | Description
 
|-
|-
-
| [http://en.wikipedia.org/wiki/Rail_Fence_Cipher Rail Fence] || Route Transposition ||
+
| [http://en.wikipedia.org/wiki/Caesar_cipher Caesar] || Monoalphabetic
|-
|-
-
| [http://en.wikipedia.org/wiki/ADFGVX_cipher ADFGVX] || Fractionated Block ||
+
| [http://en.wikipedia.org/wiki/ROT13 ROT13] || Monoalphabetic
|-
|-
-
| [http://en.wikipedia.org/wiki/ROT13 ROT13] || Monoalphabetic ||
+
| [http://en.wikipedia.org/wiki/Four-square_cipher Four Square] || Monoalphabetic
|-
|-
-
| [http://en.wikipedia.org/wiki/Bacon%27s_cipher Bacon] || Steganographic ||
+
| [http://en.wikipedia.org/wiki/Running_key_cipher Running Key] || Polyalphabetic
|-
|-
-
| [http://en.wikipedia.org/wiki/Playfair_cipher Playfair] || Polygraphic ||
+
| [http://en.wikipedia.org/wiki/Vigen%C3%A8re_cipher Vigenère] || Polyalphabetic
|-
|-
-
| [http://en.wikipedia.org/wiki/Running_key_cipher Running Key] || Polyalphabetic ||
+
| [http://en.wikipedia.org/wiki/One_time_pad One Time Pad] || Polyalphabetic
|-
|-
-
| [] || ||
+
| [http://en.wikipedia.org/wiki/Playfair_cipher Playfair] || Polygraphic
|-
|-
-
| [] || ||
+
| [http://en.wikipedia.org/wiki/Trifid_cipher Trifid] || Polygraphic
|-
|-
-
| [] || ||
+
| [http://en.wikipedia.org/wiki/Rail_Fence_Cipher Rail Fence] || Route Transposition
-
 
+
|-
 +
| [http://en.wikipedia.org/wiki/A5/1 A5/1] || Synchronous Stream
 +
|-
 +
| [http://en.wikipedia.org/wiki/Rabbit_%28cipher%29 Rabbit] || Asynchronous Stream
 +
|-
 +
| [http://en.wikipedia.org/wiki/Autokey_cipher Autokey] || Asynchronous Stream
 +
|-
 +
| [http://en.wikipedia.org/wiki/Advanced_Encryption_Standard AES] || Iterated Block
 +
|-
 +
| [http://en.wikipedia.org/wiki/Blowfish_%28cipher%29 Blowfish] || Iterated Block
 +
|-
 +
| [http://en.wikipedia.org/wiki/Data_Encryption_Standard DES] || Iterated Block
 +
|-
 +
| [http://en.wikipedia.org/wiki/IDEA_cipher IDEA] || Iterated Block
 +
|-
 +
| [http://en.wikipedia.org/wiki/SMS4 SMS4] || Iterated Block
 +
|-
 +
| [http://en.wikipedia.org/wiki/ADFGVX_cipher ADFGVX] || Fractionated Block
 +
|-
 +
| [http://en.wikipedia.org/wiki/Straddling_checkerboard Straddling Checkboard] || Fractionated Block
 +
|-
 +
| [http://en.wikipedia.org/wiki/Bacon%27s_cipher Bacon] || Steganographic
|}
|}
== References ==
== References ==
-
[1]
+
[R1] McMaster University - CAS. "Overview of Cryptography". Software Engineering 4C03, Lecture 07. 2008
-
[2]
+
 
 +
[R2]  Irwin, Paul L. "Elementary Cryptanalysis - A Mathematical Approach". Copyright Yale University. 1966
 +
 
 +
[R3]  Foster, Caxton C. "Cryptanalysis For Microcomputers". University of Massachusetts. 1982
 +
 
 +
[R4] Wikipedia. "Stream Cipher", Wikipedia, 2008-02-02. Retrieved on April 9/2008. http://en.wikipedia.org/wiki/Stream_cipher
 +
 
 +
[R5] Beker H., Piper F. "Cypher Systems". Northwood Publications. 1982
== See Also ==
== See Also ==
[[Public Key Encryption Algorithms]]
[[Public Key Encryption Algorithms]]
-
 
-
[[Blowfish]]
 
[[Digital Signatures]]
[[Digital Signatures]]
Line 80: Line 110:
== External Links ==
== External Links ==
[http://www.ling.ohio-state.edu/~cbrew/2008/winter/484/monoalphabetic.pdf Monoalphabetic Ciphers]
[http://www.ling.ohio-state.edu/~cbrew/2008/winter/484/monoalphabetic.pdf Monoalphabetic Ciphers]
 +
 +
[http://www.quadibloc.com/crypto/pp010303.htm Polyalphabetic Substitution]
 +
 +
[http://www.quadibloc.com/crypto/pp010302.htm Polygraphic Ciphers & Fractionation]
 +
 +
[http://www.mathsyear2000.org/explorer/codebreaking/transposition-ciphers.php Codebreaking]
-
[[User:Angiusei|Elian]] April 8/2008
+
--[[User:Angiusei|Angiusei]] 17:03, 10 July 2008 (EDT)

Current revision as of 21:03, 10 July 2008

Conventional Encryption involves transforming plaintext messages into ciphertext messages that are to be decrypted only by the intended receiver. Both sender and receiver agree upon a secrete key to be used in encrypting and decrypting. Usually the secrete key is transmitted via public key encryption methods.

Figure 1: Flow Diagram

In conventional encryption, it is assumed that it is mathematically impossible to derive the plaintext from the ciphertext without the key.[R1] Therefore, it is essential that the key remains secret.

These encryption algorithms are used in practice due to their efficiency in encrypting/decrypting but these algorithms have vulnerabilities. One aspect of these vulnerabilities is the total number of keys available to choose from. Larger key domains reduce possibility of brute force attacks. The key length is another aspect of these vulnerabilities since they will produce periodic patterns in the ciphertext. Longer keys often reduce periodicity. The goal of conventional encryption algorithms is to produce truly randomized ciphertexts, such that the use of frequency analysis on individual ciphertext symbols or ciphertext blocks is useless.

Contents


Classification of Ciphers

Figure 2: Types of Ciphers

There are several techniques in which encryption algorithms can produce ciphertext. The simplest forms of encryption are via substitution, where plaintext symbols are replaced and via transposition, where plaintext symbols are rearranged. Other approaches such as stream and block translation involve converting plaintext to ciphertext either one symbol at a time or several symbols at a time respectively. In addition, steganographic techniques can be used, where symbols are introduced in the ciphertext to hide the plaintext meaning. A particular encryption/decryption implementation could incorporate multiple techniques to increase security.

Monoalphabetic

This is a substitution technique that uses a single alphabet to replace symbols of plaintext for symbols of ciphertext as dictated by the key. The key often represents the number of symbols to shift the plaintext from a circular alphabet. These techniques are relatively easy to break due to the fact that symbol frequencies remain invariant.[R5]

Polyalphabetic

This is a substitution technique that uses multiple alphabets to replace symbols of plaintext for symbols of ciphertext as dictated by the key. The key often represents a keyword where each letter defines the alphabet being used to encrypt each symbol of the plaintext. The keyword is repeated throughout the length of the message. These techniques suppress individual symbol frequency making these ciphers harder to break. However, the keyword length determines the periodicity in which alphabets are used. This periodicity is a major vulnerability of these types of ciphers.

Polygraphic

This is a substitution technique that replaces a group of n plaintext symbols by a group of n ciphertext symbols.[R2] In doing so, the individual frequency of symbols is hidden. In generality, this technique is similar to that of monoalphabetic ciphers with only using larger alphabets.

Route Transposition

This is a transposition technique where the plaintext is first written out in an mxn grid region. The key often represents a path on how to read from the grid, such as clockwise outward spiral, vertical zigzag, triangulation, etc.[R3] The ciphertext then becomes the sequence of symbols as read by the path. These techniques provide enormous amounts of available keys in which to use. However, some choices of keys are poor ones since they may leave sections of the ciphertext in their original or reversed plaintext order giving hints as to which key where used.

Columnar Transposition

This is a transposition technique where the plaintext is first written out in n-length rows. The key often represents a keyword of length n that defines the plaintext ordering of columns. The ordering could be done by sorting the keyword letters in alphabetical order or in any predefined order.

Synchronous Stream

This is a stream translation technique that combines plaintext with a key stream usually in the form of an XOR operation to form ciphertext one symbol at a time.[R4] These techniques require that the encoder and decoder be synchronized in the information they are processing. If information get introduced or lost during transition, decryption will be erroneous. If information gets corrupted only the particular symbol remains corrupted.

Asynchronous Stream

This is a stream translation technique that combines plaintext with a key stream that is generated from some fixed number of ciphertext symbols to produce the next ciphertext symbol.

Iterated Block

This is a block translation technique that iteratively converts an n-sized block of plaintext into ciphertext at the same time.

Fractioned Block

This is a block translation technique that breaks up single symbols into parts and then combines the pieces of multiple plaintext letters in order to get the ciphertext.

Steganographic

This is a technique that involves inserting random symbols at random locations of a plaintext message with the goal of hiding the message.

Popular Algorithms

Conventional Encryption
Algorithm Type
Caesar Monoalphabetic
ROT13 Monoalphabetic
Four Square Monoalphabetic
Running Key Polyalphabetic
Vigenère Polyalphabetic
One Time Pad Polyalphabetic
Playfair Polygraphic
Trifid Polygraphic
Rail Fence Route Transposition
A5/1 Synchronous Stream
Rabbit Asynchronous Stream
Autokey Asynchronous Stream
AES Iterated Block
Blowfish Iterated Block
DES Iterated Block
IDEA Iterated Block
SMS4 Iterated Block
ADFGVX Fractionated Block
Straddling Checkboard Fractionated Block
Bacon Steganographic

References

[R1] McMaster University - CAS. "Overview of Cryptography". Software Engineering 4C03, Lecture 07. 2008

[R2] Irwin, Paul L. "Elementary Cryptanalysis - A Mathematical Approach". Copyright Yale University. 1966

[R3] Foster, Caxton C. "Cryptanalysis For Microcomputers". University of Massachusetts. 1982

[R4] Wikipedia. "Stream Cipher", Wikipedia, 2008-02-02. Retrieved on April 9/2008. http://en.wikipedia.org/wiki/Stream_cipher

[R5] Beker H., Piper F. "Cypher Systems". Northwood Publications. 1982

See Also

Public Key Encryption Algorithms

Digital Signatures

External Links

Monoalphabetic Ciphers

Polyalphabetic Substitution

Polygraphic Ciphers & Fractionation

Codebreaking


--Angiusei 17:03, 10 July 2008 (EDT)

Personal tools