The world’s Largest Sharp Brain Virtual Experts Marketplace Just a click Away
Levels Tought:
Elementary,Middle School,High School,College,University,PHD
| Teaching Since: | Jul 2017 |
| Last Sign in: | 304 Weeks Ago, 6 Days Ago |
| Questions Answered: | 15833 |
| Tutorials Posted: | 15827 |
MBA,PHD, Juris Doctor
Strayer,Devery,Harvard University
Mar-1995 - Mar-2002
Manager Planning
WalMart
Mar-2001 - Feb-2009
work is in word file as before. thank you so much.
Module 2 - Case
Data Encryption Standards
Assignment Overview
Data Encryption Standards: DES and Triple DES (Part I)
DES Encryption
The overall scheme for DES encryption is illustrated in Figure 1. As with any encryption scheme, there are two inputs to the encryption function: the plaintext to be encrypted and the key. In this case, the plaintext must be 64 bits in length and the key is 56 bits in length.

Figure 1. General Depiction of DES Encryption Algorithm
Looking at the left-hand side of the figure, we can see that the processing of the plaintext proceeds in three phases. First, the 64-bit plaintext passes through an initial permutation (IP) that rearranges the bits to produce the permuted input. This is followed by a phase consisting of sixteen rounds of the same function, which involves both permutation and substitution functions. The output of the last (sixteenth) round consists of 64 bits that are a function of the input plaintext and the key. The left and right halves of the output are swapped to produce the preoutput. Finally, the preoutput is passed through a permutation [IP -1] that is the inverse of the initial permutation function, to produce the 64-bit ciphertext.
The right-hand portion of Figure 1 shows the way in which the 56-bit key is used. Initially, the key is passed through a permutation function. Then, for each of the sixteen rounds, a subkey (Ki) is produced by the combination of a left circular shift and a permutation. The permutation function is the same for each round, but a different subkey is produced because of the repeated shifts of the key bits.
DES works on bits, or binary numbers -- the 0s and 1s common to digital computers. Each group of four bits makes up a hexadecimal, or base 16, number. Binary "0001" is equal to the hexadecimal number "1", binary "1000" is equal to the hexadecimal number "8", "1001" is equal to the hexadecimal number "9", "1010" is equal to the hexadecimal number "A", and "1111" is equal to the hexadecimal number "F".
DES works by encrypting groups of 64 message bits, which is the same as 16 hexadecimal numbers. To do the encryption, DES uses "keys" which are also apparently 16 hexadecimal numbers long, or apparently 64 bits long. However, every 8th key bit is ignored in the DES algorithm, so that the effective key size is 56 bits. But, in any case, 64 bits (16 hexadecimal digits) is the round number upon which DES is organized.
For example, if we take the plaintext message "8787878787878787", and encrypt it with the DES key "0E329232EA6D0D73", we end up with the ciphertext "0000000000000000". If the ciphertext is decrypted with the same secret DES key "0E329232EA6D0D73", the result is the original plaintext "8787878787878787".
A DES Example
We now work through an example and consider some of its implications. Although you are not expected to duplicate the example by hand, you will find it informative to study the hex patterns that occur from one step to the next.
DES is a block cipher -- meaning it operates on plaintext blocks of a given size (64-bits) and returns ciphertext blocks of the same size. Thus DES results in a permutation among the 2^64 (read this as: "2 to the 64th power") possible arrangements of 64 bits, each of which may be either 0 or 1. Each block of 64 bits is divided into two blocks of 32 bits each, a left half block L and a right half R. (This division is only used in certain operations.)
Example: Let M be the plain text message M = 0123456789ABCDEF, where M is in hexadecimal (base 16) format. Rewriting M in binary format, we get the 64-bit block of text:
MÂ = 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
LÂ = 0000 0001 0010 0011 0100 0101 0110 0111
RÂ = 1000 1001 1010 1011 1100 1101 1110 1111
The first bit of M is "0". The last bit is "1". We read from left to right.
DES operates on the 64-bit blocks using key sizes of 56-bits. The keys are actually stored as being 64-bits long, but every 8th bit in the key is not used (i.e., bits numbered 8, 16, 24, 32, 40, 48, 56, and 64). However, we will nevertheless number the bits from 1 to 64, going left to right, in the following calculations. But, as you will see, the eight bits just mentioned get eliminated when we create subkeys.
Example: Let K be the hexadecimal key K = 133457799BBCDFF1. This gives us as the binary key (setting 1 = 0001, 3 = 0011, etc., and grouping together every eight bits, of which the last one in each group will be unused):
KÂ = 00010011 00110100 01010111 01111001 10011011 10111100 11011111 11110001
The DES algorithm uses the following steps:
Step 1: Create 16 subkeys, each of which is 48-bits long.
The 64-bit key is permuted according to the following table, PC-1. Since the first entry in the table is "57", this means that the 57th bit of the original key K becomes the first bit of the permuted key K+. The 49th bit of the original key becomes the second bit of the permuted key. The 4th bit of the original key is the last bit of the permuted key. Note only 56 bits of the original key appear in the permuted key.
                           PC-1
Â
             57  49   41  33   25   17   9
              1  58   50  42   34   26  18
             10   2   59  51   43   35  27
             19  11    3  60   52   44  36
             63  55   47  39   31   23  15
              7  62   54  46   38   30  22
             14   6   61  53   45   37  29
             21  13    5  28   20   12   4
Example:Â From the original 64-bit key
KÂ = 00010011 00110100 01010111 01111001 10011011 10111100 11011111 11110001
we get the 56-bit permutation
K+ = 1111000 0110011 0010101 0101111 0101010 1011001 1001111 0001111
Next, split this key into left and right halves, C0 and D0, where each half has 28 bits.
Example: From the permuted key K+, we get
C0Â = 1111000 0110011 0010101 0101111Â
D0Â = 0101010 1011001 1001111 0001111
With C0 and D0 defined, we now create sixteen blocks Cn and Dn, 1<=n<=16. Each pair of blocks Cn and Dn is formed from the previous pair Cn-1 and Dn-1, respectively, for n = 1, 2, ..., 16, using the following schedule of "left shifts" of the previous block. To do a left shift, move each bit one place to the left, except for the first bit, which is cycled to the end of the block.
                    Iteration    Number of
                     Number     Left Shifts
Â
                         1         1
                         2         1
                         3         2
                          4         2
                         5         2
                         6         2
                         7         2
                         8         2
                         9         1
                        10         2
                        11         2
                        12         2
                        13         2
                        14         2
                        15         2
                        16         1
This means, for example, C3 and D3 are obtained from C2 and D2, respectively, by two left shifts, and C16 and D16 are obtained from C15 and D15, respectively, by one left shift. In all cases, by a single left shift is meant a rotation of the bits one place to the left, so that after one left shift the bits in the 28 positions are the bits that were previously in positions 2, 3,..., 28, 1.
Example: From original pair C0 and D0 we obtain:
C0Â = 1111000011001100101010101111
D0Â = 0101010101100110011110001111
C1Â = 1110000110011001010101011111
D1Â = 1010101011001100111100011110
C2Â = 1100001100110010101010111111
D2Â = 0101010110011001111000111101
C3Â = 0000110011001010101011111111
D3Â = 0101011001100111100011110101
C4Â = 0011001100101010101111111100
D4Â = 0101100110011110001111010101
C5Â = 1100110010101010111111110000
D5Â = 0110011001111000111101010101
C6Â = 0011001010101011111111000011
D6Â = 1001100111100011110101010101
C7Â = 1100101010101111111100001100
D7Â = 0110011110001111010101010110
C8Â = 0010101010111111110000110011
D8Â = 1001111000111101010101011001
C9Â = 0101010101111111100001100110
D9Â = 0011110001111010101010110011
C10Â = 0101010111111110000110011001
D10Â = 1111000111101010101011001100
C11Â = 0101011111111000011001100101
D11Â = 1100011110101010101100110011
C12Â = 0101111111100001100110010101
D12Â = 0001111010101010110011001111
C13Â = 0111111110000110011001010101
D13Â = 0111101010101011001100111100
C14Â = 1111111000011001100101010101
D14Â = 1110101010101100110011110001
C15Â = 1111100001100110010101010111
D15Â = 1010101010110011001111000111
C16Â = 1111000011001100101010101111
D16Â = 0101010101100110011110001111
We now form the keys Kn, for 1<=n<=16, by applying the following permutation table to each of the concatenated pairs CnDn. Each pair has 56 bits, but PC-2 only uses 48 of these.
                             PC-2
Â
                14   17  11   24    1   5
                 3   28  15    6   21  10
                23   19  12    4   26   8
                16    7  27   20   13   2
                41   52  31   37   47  55
                30   40  51   45   33  48
                44   49  39   56   34  53
                46   42  50   36   29  32
Therefore, the first bit of Kn is the 14th bit of CnDn, the second bit the 17th, and so on, ending with the 48th bit of Kn being the 32th bit of CnDn.
Example: For the first key we have C1D1 = 1110000 1100110 0101010 1011111 1010101 0110011 0011110 0011110
which, after we apply the permutation PC-2, becomes
K1Â = 000110 110000 001011 101111 111111 000111 000001 110010
For the other keys we have
K2Â = 011110 011010 111011 011001 110110 111100 100111 100101
K3Â = 010101 011111 110010 001010 010000 101100 111110 011001
K4Â = 011100 101010 110111 010110 110110 110011 010100 011101
K5Â = 011111 001110 110000 000111 111010 110101 001110 101000
K6Â = 011000 111010 010100 111110 010100 000111 101100 101111
K7Â = 111011 001000 010010 110111 111101 100001 100010 111100
K8Â = 111101 111000 101000 111010 110000 010011 101111 111011
K9Â = 111000 001101 101111 101011 111011 011110 011110 000001
K10Â = 101100 011111 001101 000111 101110 100100 011001 001111
K11Â = 001000 010101 111111 010011 110111 101101 001110 000110
K12Â = 011101 010111 000111 110101 100101 000110 011111 101001
K13Â = 100101 111100 010111 010001 111110 101011 101001 000001
K14Â = 010111 110100 001110 110111 111100 101110 011100 111010
K15Â = 101111 111001 000110 001101 001111 010011 111100 001010
K16Â = 110010 110011 110110 001011 000011 100001 011111 110101
So much for the subkeys. We will continue look at the message itself in Module 2 SLP.
To learn more about DES, check the following sites:
Case Assignment
This problem provides a numerical example of encryption using a one-round version of DES. We start with the same bit pattern for the key K and the plaintext (the key and the plaintext are the same), namely:
The plaintext and key is:
    0000 0001 0010 0011 0100 0101 0110 0111
    1000 1001 1010 1011 1100 1101 1110 1111
Assignment Expectations
Use information from the modular background readings as well as the given resources. Also, you could use any good quality resource you can find. Please cite all sources and provide a reference list at the end of your paper.
The following items will be assessed in particular:
Â
----------- Â ----------- H-----------ell-----------o S-----------ir/-----------Mad-----------am ----------- Th-----------ank----------- yo-----------u f-----------or -----------you-----------r i-----------nte-----------res-----------t a-----------nd -----------buy-----------ing----------- my----------- po-----------ste-----------d s-----------olu-----------tio-----------n. -----------Ple-----------ase----------- pi-----------ng -----------me -----------on -----------cha-----------t I----------- am----------- on-----------lin-----------e o-----------r i-----------nbo-----------x m-----------e a----------- me-----------ssa-----------ge -----------I w-----------ill----------- be----------- qu-----------ick-----------ly