Sei sulla pagina 1di 2

CSIS 5857: Encoding and Encryption

Assignment 2: DES and AES


Due Feb. 17
You are required to do one of the following two assignments (based on whether you
prefer programming or ritten work:
!rogramming Assignment
Implement the Simp"i#ied DES (S-DES) desribed in !ppendi" # (page $%&) of the
te"tbook' It should ha(e the ability to input an 8 bit te"t and a 1$ bit %ey) and encrypt it'
I would prefer that you do this in *) *++) ,a(a) or ,a(aSript' -owe(er) you an do this
in any language) as long as I an ompile and run it in one of our labs and you get my
appro(al first'
I will not be partiularly onerned with programming style) doumentation) et' . the
purpose of this assignment is for you to get a good understanding of the inner workings
of DES' -owe(er) following these suggestions will make your life muh easier:
-a(e your program print as many intermediate (alues as possible'
Start by implementing support funtions to:
o *ompute the &'( of two binary numbers'
o S)i#t a binary number by some amount'
o *ompute the transpose of a binary number based on some permutation array'
o Determine the result of running a binary number through a gi(en S*bo+'
,ote: /he e"ample the te"tbook uses (E"ample #'0) is wrong' In order to test your
program) you an ompare it to the results from an on-line SDES alulator at
http://www.cs.utk.edu/~cjohnson/computing/cns/sdes.html
Email me your final program at 1ohn2is'ysu'edu'
-ritten Assignment
/his problem pro(ides a numerial e"ample of enryption using a one*round (ersion of
DES' 3e will use the same bit pattern for the key and the plainte"t:
-e"adeimal notation: $ 1 2 . / 5 0 7 8 1 A 2 C D E F
4inary notation: $$$$ $$$1 $$1$ $$11 $1$$ $1$1 $11$ $111
1$$$ 1$$1 1$1$ 1$11 11$$ 11$1 111$ 1111
5' Deri(e the round 1 %ey 3
1
' /his in(ol(es the following steps:
a) 6emo(e the parity bits'
b) 7erform the speified left shift on the 89-bit left and right hal(es'
) :se the permutation to deri(e the ;9-bit round 5 key 3
1
'
8' :se this key to perform the round 1 encryption of the plainte"t' /his in(ol(es the
following steps:
a) !pply the initial permutation and break the plainte"t into left and right hal(es
4
$
and (
$
'
b) E"pand (
$
to get E5(
$
6'
) *alulate A < E5(
$
6 3
1
'
d) =roup the ;9-bit result A into sets of $ bits and e(aluate the orresponding S-
bo" substitutions'
e) *onatenate the results of d) to get a 08-bit result 2'
f) !pply the permutation to get !526'
g) *alulate (
1
< !526 4
$
'
7lease turn these in using a word proessor (suh as 3ord)) instead of hand-written form'

Potrebbero piacerti anche