1 |
6 |
root |
<html xmlns:v="urn:schemas-microsoft-com:vml"
|
2 |
|
|
xmlns:o="urn:schemas-microsoft-com:office:office"
|
3 |
|
|
xmlns:w="urn:schemas-microsoft-com:office:word"
|
4 |
|
|
xmlns="http://www.w3.org/TR/REC-html40">
|
5 |
|
|
|
6 |
|
|
<head>
|
7 |
|
|
<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
|
8 |
|
|
<meta name=ProgId content=Word.Document>
|
9 |
|
|
<meta name=Generator content="Microsoft Word 9">
|
10 |
|
|
<meta name=Originator content="Microsoft Word 9">
|
11 |
|
|
<link rel=File-List href="./enkrip_files/filelist.xml">
|
12 |
|
|
<link rel=Edit-Time-Data href="./enkrip_files/editdata.mso">
|
13 |
|
|
<link rel=OLE-Object-Data href="./enkrip_files/oledata.mso">
|
14 |
|
|
<!--[if !mso]>
|
15 |
|
|
<style>
|
16 |
|
|
v\:* {behavior:url(#default#VML);}
|
17 |
|
|
o\:* {behavior:url(#default#VML);}
|
18 |
|
|
w\:* {behavior:url(#default#VML);}
|
19 |
|
|
.shape {behavior:url(#default#VML);}
|
20 |
|
|
</style>
|
21 |
|
|
<![endif]-->
|
22 |
|
|
<title>Encryption Block</title>
|
23 |
|
|
<!--[if gte mso 9]><xml>
|
24 |
|
|
<o:DocumentProperties>
|
25 |
|
|
<o:Author>john</o:Author>
|
26 |
|
|
<o:Template>Normal</o:Template>
|
27 |
|
|
<o:LastAuthor>john</o:LastAuthor>
|
28 |
|
|
<o:Revision>67</o:Revision>
|
29 |
|
|
<o:TotalTime>297</o:TotalTime>
|
30 |
|
|
<o:Created>2002-06-21T05:35:00Z</o:Created>
|
31 |
|
|
<o:LastSaved>2002-06-21T10:33:00Z</o:LastSaved>
|
32 |
|
|
<o:Pages>4</o:Pages>
|
33 |
|
|
<o:Words>559</o:Words>
|
34 |
|
|
<o:Characters>3187</o:Characters>
|
35 |
|
|
<o:Company>cryptography</o:Company>
|
36 |
|
|
<o:Lines>26</o:Lines>
|
37 |
|
|
<o:Paragraphs>6</o:Paragraphs>
|
38 |
|
|
<o:CharactersWithSpaces>3913</o:CharactersWithSpaces>
|
39 |
|
|
<o:Version>9.2720</o:Version>
|
40 |
|
|
</o:DocumentProperties>
|
41 |
|
|
</xml><![endif]-->
|
42 |
|
|
<style>
|
43 |
|
|
<!--
|
44 |
|
|
/* Font Definitions */
|
45 |
|
|
@font-face
|
46 |
|
|
{font-family:Wingdings;
|
47 |
|
|
panose-1:5 0 0 0 0 0 0 0 0 0;
|
48 |
|
|
mso-font-charset:2;
|
49 |
|
|
mso-generic-font-family:auto;
|
50 |
|
|
mso-font-pitch:variable;
|
51 |
|
|
mso-font-signature:0 268435456 0 0 -2147483648 0;}
|
52 |
|
|
/* Style Definitions */
|
53 |
|
|
p.MsoNormal, li.MsoNormal, div.MsoNormal
|
54 |
|
|
{mso-style-parent:"";
|
55 |
|
|
margin:0in;
|
56 |
|
|
margin-bottom:.0001pt;
|
57 |
|
|
mso-pagination:widow-orphan;
|
58 |
|
|
font-size:12.0pt;
|
59 |
|
|
font-family:"Times New Roman";
|
60 |
|
|
mso-fareast-font-family:"Times New Roman";}
|
61 |
|
|
h1
|
62 |
|
|
{mso-style-next:Normal;
|
63 |
|
|
margin:0in;
|
64 |
|
|
margin-bottom:.0001pt;
|
65 |
|
|
mso-pagination:widow-orphan;
|
66 |
|
|
page-break-after:avoid;
|
67 |
|
|
mso-outline-level:1;
|
68 |
|
|
font-size:22.0pt;
|
69 |
|
|
mso-bidi-font-size:12.0pt;
|
70 |
|
|
font-family:Arial;
|
71 |
|
|
mso-font-kerning:0pt;}
|
72 |
|
|
h2
|
73 |
|
|
{mso-style-next:Normal;
|
74 |
|
|
margin:0in;
|
75 |
|
|
margin-bottom:.0001pt;
|
76 |
|
|
mso-pagination:widow-orphan;
|
77 |
|
|
page-break-after:avoid;
|
78 |
|
|
mso-outline-level:2;
|
79 |
|
|
font-size:12.0pt;
|
80 |
|
|
font-family:"Times New Roman";}
|
81 |
|
|
h3
|
82 |
|
|
{mso-style-next:Normal;
|
83 |
|
|
margin:0in;
|
84 |
|
|
margin-bottom:.0001pt;
|
85 |
|
|
text-align:center;
|
86 |
|
|
mso-pagination:widow-orphan;
|
87 |
|
|
page-break-after:avoid;
|
88 |
|
|
mso-outline-level:3;
|
89 |
|
|
font-size:12.0pt;
|
90 |
|
|
font-family:Arial;}
|
91 |
|
|
h4
|
92 |
|
|
{mso-style-next:Normal;
|
93 |
|
|
margin:0in;
|
94 |
|
|
margin-bottom:.0001pt;
|
95 |
|
|
mso-pagination:widow-orphan;
|
96 |
|
|
page-break-after:avoid;
|
97 |
|
|
mso-outline-level:4;
|
98 |
|
|
font-size:16.0pt;
|
99 |
|
|
mso-bidi-font-size:12.0pt;
|
100 |
|
|
font-family:Arial;
|
101 |
|
|
font-weight:normal;}
|
102 |
|
|
p.MsoBodyText, li.MsoBodyText, div.MsoBodyText
|
103 |
|
|
{margin:0in;
|
104 |
|
|
margin-bottom:.0001pt;
|
105 |
|
|
mso-pagination:widow-orphan;
|
106 |
|
|
font-size:10.0pt;
|
107 |
|
|
mso-bidi-font-size:12.0pt;
|
108 |
|
|
font-family:Arial;
|
109 |
|
|
mso-fareast-font-family:"Times New Roman";}
|
110 |
|
|
a:link, span.MsoHyperlink
|
111 |
|
|
{color:blue;
|
112 |
|
|
text-decoration:underline;
|
113 |
|
|
text-underline:single;}
|
114 |
|
|
a:visited, span.MsoHyperlinkFollowed
|
115 |
|
|
{color:purple;
|
116 |
|
|
text-decoration:underline;
|
117 |
|
|
text-underline:single;}
|
118 |
|
|
@page Section1
|
119 |
|
|
{size:8.5in 11.0in;
|
120 |
|
|
margin:1.0in 1.25in 1.0in 1.25in;
|
121 |
|
|
mso-header-margin:.5in;
|
122 |
|
|
mso-footer-margin:.5in;
|
123 |
|
|
mso-paper-source:0;}
|
124 |
|
|
div.Section1
|
125 |
|
|
{page:Section1;}
|
126 |
|
|
/* List Definitions */
|
127 |
|
|
@list l0
|
128 |
|
|
{mso-list-id:1297683648;
|
129 |
|
|
mso-list-type:hybrid;
|
130 |
|
|
mso-list-template-ids:2117341178 -1605866978 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
|
131 |
|
|
@list l0:level1
|
132 |
|
|
{mso-level-start-at:0;
|
133 |
|
|
mso-level-number-format:bullet;
|
134 |
|
|
mso-level-text:-;
|
135 |
|
|
mso-level-tab-stop:.5in;
|
136 |
|
|
mso-level-number-position:left;
|
137 |
|
|
text-indent:-.25in;
|
138 |
|
|
font-family:"Times New Roman";
|
139 |
|
|
mso-fareast-font-family:"Times New Roman";}
|
140 |
|
|
ol
|
141 |
|
|
{margin-bottom:0in;}
|
142 |
|
|
ul
|
143 |
|
|
{margin-bottom:0in;}
|
144 |
|
|
-->
|
145 |
|
|
</style>
|
146 |
|
|
<!--[if gte mso 9]><xml>
|
147 |
|
|
<o:shapedefaults v:ext="edit" spidmax="1032"/>
|
148 |
|
|
</xml><![endif]--><!--[if gte mso 9]><xml>
|
149 |
|
|
<o:shapelayout v:ext="edit">
|
150 |
|
|
<o:idmap v:ext="edit" data="1"/>
|
151 |
|
|
</o:shapelayout></xml><![endif]-->
|
152 |
|
|
</head>
|
153 |
|
|
|
154 |
|
|
<body lang=EN-US link=blue vlink=purple style='tab-interval:.5in'>
|
155 |
|
|
|
156 |
|
|
<div class=Section1>
|
157 |
|
|
|
158 |
|
|
<h1>Encryption Block</h1>
|
159 |
|
|
|
160 |
|
|
<h2><span style='font-size:10.0pt;mso-bidi-font-size:12.0pt;font-family:Arial'>John
|
161 |
|
|
Purba (</span><a href="mailto:john@students.ee.itb.ac.id">john@students.ee.itb.ac.id</a><span
|
162 |
|
|
style='font-size:10.0pt;mso-bidi-font-size:12.0pt;font-family:Arial'>)<o:p></o:p></span></h2>
|
163 |
|
|
|
164 |
|
|
<p class=MsoNormal><![if !supportEmptyParas]> <![endif]><o:p></o:p></p>
|
165 |
|
|
|
166 |
|
|
<p class=MsoNormal><span style='font-size:10.0pt;mso-bidi-font-size:12.0pt;
|
167 |
|
|
font-family:Arial'>The encryption block comprises 6 blocks:<o:p></o:p></span></p>
|
168 |
|
|
|
169 |
|
|
<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l0 level1 lfo1;
|
170 |
|
|
tab-stops:list .5in'><![if !supportLists]><span style='font-size:10.0pt;
|
171 |
|
|
mso-bidi-font-size:12.0pt'>-<span style='font:7.0pt "Times New Roman"'>
|
172 |
|
|
</span></span><![endif]><span style='font-size:10.0pt;mso-bidi-font-size:12.0pt;
|
173 |
|
|
font-family:Arial'>Data & Key Input Register, interface of input data and
|
174 |
|
|
key<o:p></o:p></span></p>
|
175 |
|
|
|
176 |
|
|
<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l0 level1 lfo1;
|
177 |
|
|
tab-stops:list .5in'><![if !supportLists]><span style='font-size:10.0pt;
|
178 |
|
|
mso-bidi-font-size:12.0pt'>-<span style='font:7.0pt "Times New Roman"'>
|
179 |
|
|
</span></span><![endif]><span style='font-size:10.0pt;mso-bidi-font-size:12.0pt;
|
180 |
|
|
font-family:Arial'>Key Expander, generator the round key<o:p></o:p></span></p>
|
181 |
|
|
|
182 |
|
|
<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l0 level1 lfo1;
|
183 |
|
|
tab-stops:list .5in'><![if !supportLists]><span style='font-size:10.0pt;
|
184 |
|
|
mso-bidi-font-size:12.0pt'>-<span style='font:7.0pt "Times New Roman"'>
|
185 |
|
|
</span></span><![endif]><span style='font-size:10.0pt;mso-bidi-font-size:12.0pt;
|
186 |
|
|
font-family:Arial'>Control, controls each block <o:p></o:p></span></p>
|
187 |
|
|
|
188 |
|
|
<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l0 level1 lfo1;
|
189 |
|
|
tab-stops:list .5in'><![if !supportLists]><span style='font-size:10.0pt;
|
190 |
|
|
mso-bidi-font-size:12.0pt'>-<span style='font:7.0pt "Times New Roman"'>
|
191 |
|
|
</span></span><![endif]><span style='font-size:10.0pt;mso-bidi-font-size:12.0pt;
|
192 |
|
|
font-family:Arial'>Rijndael Alg, implements Rijndael algorithm (round
|
193 |
|
|
calculations)<o:p></o:p></span></p>
|
194 |
|
|
|
195 |
|
|
<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l0 level1 lfo1;
|
196 |
|
|
tab-stops:list .5in'><![if !supportLists]><span style='font-size:10.0pt;
|
197 |
|
|
mso-bidi-font-size:12.0pt'>-<span style='font:7.0pt "Times New Roman"'>
|
198 |
|
|
</span></span><![endif]><span style='font-size:10.0pt;mso-bidi-font-size:12.0pt;
|
199 |
|
|
font-family:Arial'>Data Output Register, interface of output data<o:p></o:p></span></p>
|
200 |
|
|
|
201 |
|
|
<p class=MsoNormal><span style='font-size:10.0pt;mso-bidi-font-size:12.0pt;
|
202 |
|
|
font-family:Arial'><![if !supportEmptyParas]> <![endif]><o:p></o:p></span></p>
|
203 |
|
|
|
204 |
|
|
<p class=MsoNormal><span style='font-size:10.0pt;mso-bidi-font-size:12.0pt;
|
205 |
|
|
font-family:Arial'>The RTL VHDL code can be downloaded here <a
|
206 |
|
|
href="enkrip_files\enkrip.zip"><span style='font-size:12.0pt;font-family:"Times New Roman"'>enkrip.zip</span></a><o:p></o:p></span></p>
|
207 |
|
|
|
208 |
|
|
<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
|
209 |
|
|
style='font-size:10.0pt;mso-bidi-font-size:12.0pt;font-family:Arial'>The
|
210 |
|
|
encryption algorithm has been designed this way that the generation of round
|
211 |
|
|
key and the round calculations can be parallely executed. </span><span
|
212 |
|
|
style='font-size:10.0pt;font-family:Arial'>The advantage of this design is the
|
213 |
|
|
fact that we do not need to store the round key since they are currently
|
214 |
|
|
calculated. Interconnection of each block is depicted in figure 1.<o:p></o:p></span></p>
|
215 |
|
|
|
216 |
|
|
<p class=MsoNormal><!--[if gte vml 1]><v:rect id="_x0000_s1026"
|
217 |
|
|
href="#Data_Kunci_Reg" style='position:absolute;margin-left:172.5pt;
|
218 |
|
|
margin-top:9pt;width:90pt;height:1in;z-index:1' o:button="t" filled="f"
|
219 |
|
|
stroked="f">
|
220 |
|
|
<v:fill o:detectmouseclick="t"/>
|
221 |
|
|
</v:rect><v:rect id="_x0000_s1029" href="#Control" style='position:absolute;
|
222 |
|
|
margin-left:334.5pt;margin-top:9pt;width:90pt;height:1in;z-index:4;
|
223 |
|
|
mso-position-horizontal:absolute;mso-position-vertical:absolute' o:button="t"
|
224 |
|
|
filled="f" stroked="f">
|
225 |
|
|
<v:fill o:detectmouseclick="t"/>
|
226 |
|
|
</v:rect><![endif]--><![if !vml]><span style='mso-ignore:vglayout'>
|
227 |
|
|
|
228 |
|
|
<table cellpadding=0 cellspacing=0 align=left>
|
229 |
|
|
<tr>
|
230 |
|
|
<td width=230 height=12></td>
|
231 |
|
|
<td width=120></td>
|
232 |
|
|
<td width=96></td>
|
233 |
|
|
<td width=120></td>
|
234 |
|
|
</tr>
|
235 |
|
|
<tr>
|
236 |
|
|
<td height=96></td>
|
237 |
|
|
<td align=left valign=top><a href="#Data_Kunci_Reg"><img border=0 width=120
|
238 |
|
|
height=96 src="./enkrip_files/image001.gif" v:shapes="_x0000_s1026"></a></td>
|
239 |
|
|
<td></td>
|
240 |
|
|
<td align=left valign=top><a href="#Control"><img border=0 width=120
|
241 |
|
|
height=96 src="./enkrip_files/image002.gif" v:shapes="_x0000_s1029"></a></td>
|
242 |
|
|
</tr>
|
243 |
|
|
</table>
|
244 |
|
|
|
245 |
|
|
</span><![endif]><span style='font-size:10.0pt;mso-bidi-font-size:12.0pt;
|
246 |
|
|
font-family:Arial'><![if !supportEmptyParas]> <![endif]><o:p></o:p></span></p>
|
247 |
|
|
|
248 |
|
|
<br style='mso-ignore:vglayout' clear=ALL>
|
249 |
|
|
|
250 |
|
|
<p class=MsoNormal align=center style='text-align:center'><!--[if gte vml 1]><v:rect
|
251 |
|
|
id="_x0000_s1030" href="#Data_Reg" style='position:absolute;left:0;
|
252 |
|
|
text-align:left;margin-left:460.5pt;margin-top:114.05pt;width:90pt;height:1in;
|
253 |
|
|
z-index:5;mso-position-horizontal:absolute;mso-position-vertical:absolute'
|
254 |
|
|
o:button="t" filled="f" stroked="f">
|
255 |
|
|
<v:fill o:detectmouseclick="t"/>
|
256 |
|
|
</v:rect><![endif]--><![if !vml]><span style='mso-ignore:vglayout;position:
|
257 |
|
|
absolute;z-index:4;left:0px;margin-left:614px;margin-top:152px;width:120px;
|
258 |
|
|
height:96px'><a href="#Data_Reg"><img border=0 width=120 height=96
|
259 |
|
|
src="./enkrip_files/image003.gif" v:shapes="_x0000_s1030"></a></span><![endif]><!--[if gte vml 1]><v:rect
|
260 |
|
|
id="_x0000_s1028" href="#Rijndael_alg" style='position:absolute;left:0;
|
261 |
|
|
text-align:left;margin-left:334.5pt;margin-top:114pt;width:90pt;height:1in;
|
262 |
|
|
z-index:3;mso-position-horizontal:absolute;mso-position-vertical:absolute'
|
263 |
|
|
o:button="t" filled="f" stroked="f">
|
264 |
|
|
<v:fill o:detectmouseclick="t"/>
|
265 |
|
|
</v:rect><![endif]--><![if !vml]><span style='mso-ignore:vglayout;position:
|
266 |
|
|
absolute;z-index:2;left:0px;margin-left:446px;margin-top:152px;width:120px;
|
267 |
|
|
height:96px'><a href="#Rijndael_alg"><img border=0 width=120 height=96
|
268 |
|
|
src="./enkrip_files/image004.gif" v:shapes="_x0000_s1028"></a></span><![endif]><!--[if gte vml 1]><v:rect
|
269 |
|
|
id="_x0000_s1027" href="#Key_Expander" style='position:absolute;left:0;
|
270 |
|
|
text-align:left;margin-left:163.5pt;margin-top:123.05pt;width:90pt;height:1in;
|
271 |
|
|
z-index:2;mso-position-horizontal:absolute;mso-position-vertical:absolute'
|
272 |
|
|
o:button="t" filled="f" stroked="f">
|
273 |
|
|
<v:fill o:detectmouseclick="t"/>
|
274 |
|
|
</v:rect><![endif]--><![if !vml]><span style='mso-ignore:vglayout;position:
|
275 |
|
|
absolute;z-index:1;left:0px;margin-left:218px;margin-top:164px;width:120px;
|
276 |
|
|
height:96px'><a href="#Key_Expander"><img border=0 width=120 height=96
|
277 |
|
|
src="./enkrip_files/image005.gif" v:shapes="_x0000_s1027"></a></span><![endif]><!--[if gte vml 1]><v:shapetype
|
278 |
|
|
id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t"
|
279 |
|
|
path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f">
|
280 |
|
|
<v:stroke joinstyle="miter"/>
|
281 |
|
|
<v:formulas>
|
282 |
|
|
<v:f eqn="if lineDrawn pixelLineWidth 0"/>
|
283 |
|
|
<v:f eqn="sum @0 1 0"/>
|
284 |
|
|
<v:f eqn="sum 0 0 @1"/>
|
285 |
|
|
<v:f eqn="prod @2 1 2"/>
|
286 |
|
|
<v:f eqn="prod @3 21600 pixelWidth"/>
|
287 |
|
|
<v:f eqn="prod @3 21600 pixelHeight"/>
|
288 |
|
|
<v:f eqn="sum @0 0 1"/>
|
289 |
|
|
<v:f eqn="prod @6 1 2"/>
|
290 |
|
|
<v:f eqn="prod @7 21600 pixelWidth"/>
|
291 |
|
|
<v:f eqn="sum @8 21600 0"/>
|
292 |
|
|
<v:f eqn="prod @7 21600 pixelHeight"/>
|
293 |
|
|
<v:f eqn="sum @10 21600 0"/>
|
294 |
|
|
</v:formulas>
|
295 |
|
|
<v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"/>
|
296 |
|
|
<o:lock v:ext="edit" aspectratio="t"/>
|
297 |
|
|
</v:shapetype><v:shape id="_x0000_i1039" type="#_x0000_t75" style='width:539.25pt;
|
298 |
|
|
height:204.75pt' o:ole="">
|
299 |
|
|
<v:imagedata src="./enkrip_files/image006.wmz" o:title=""/>
|
300 |
|
|
</v:shape><![endif]--><![if !vml]><img border=0 width=719 height=273
|
301 |
|
|
src="./enkrip_files/image007.gif" v:shapes="_x0000_i1039"><![endif]><!--[if gte mso 9]><xml>
|
302 |
|
|
<o:OLEObject Type="Embed" ProgID="Visio.Drawing.5" ShapeID="_x0000_i1039"
|
303 |
|
|
DrawAspect="Content" ObjectID="_1086186387">
|
304 |
|
|
</o:OLEObject>
|
305 |
|
|
</xml><![endif]--></p>
|
306 |
|
|
|
307 |
|
|
<p class=MsoNormal align=center style='text-align:center'><span
|
308 |
|
|
style='font-family:Arial'>Figure 1<o:p></o:p></span></p>
|
309 |
|
|
|
310 |
|
|
<p class=MsoNormal align=center style='text-align:center'><a
|
311 |
|
|
name="Data_Kunci_Reg"><![if !supportEmptyParas]> <![endif]><o:p></o:p></a></p>
|
312 |
|
|
|
313 |
|
|
<p class=MsoNormal><span style='mso-bookmark:Data_Kunci_Reg'><span
|
314 |
|
|
style='font-size:16.0pt;mso-bidi-font-size:12.0pt;font-family:Arial'>1. Data
|
315 |
|
|
& Key Input Register</span></span><span style='font-size:16.0pt;mso-bidi-font-size:
|
316 |
|
|
12.0pt;font-family:Arial'><o:p></o:p></span></p>
|
317 |
|
|
|
318 |
|
|
<p class=MsoNormal><span style='font-size:10.0pt;mso-bidi-font-size:12.0pt;
|
319 |
|
|
font-family:Arial'><span style='mso-tab-count:1'> </span>This block is
|
320 |
|
|
data or key input interface. The length of data or key supported is 128 bits,
|
321 |
|
|
so we can use the same design for data input and key input. This block will
|
322 |
|
|
take 32 bits data and shifts them to next register. Four clock cycle will be
|
323 |
|
|
needed to take a complete 128 bit data. A simple controller is used here to
|
324 |
|
|
identify that a complete of 128 bits data has been accepted. The State Diagram
|
325 |
|
|
of FSMInput and Data or Key Input Register is depicted in figure 2.<o:p></o:p></span></p>
|
326 |
|
|
|
327 |
|
|
<p class=MsoNormal align=center style='text-align:center'><!--[if gte vml 1]><v:shape
|
328 |
|
|
id="_x0000_i1095" type="#_x0000_t75" style='width:495pt;height:336.75pt'
|
329 |
|
|
o:ole="">
|
330 |
|
|
<v:imagedata src="./enkrip_files/image008.wmz" o:title=""/>
|
331 |
|
|
</v:shape><![endif]--><![if !vml]><img border=0 width=660 height=449
|
332 |
|
|
src="./enkrip_files/image009.gif" v:shapes="_x0000_i1095"><![endif]><!--[if gte mso 9]><xml>
|
333 |
|
|
<o:OLEObject Type="Embed" ProgID="Visio.Drawing.5" ShapeID="_x0000_i1095"
|
334 |
|
|
DrawAspect="Content" ObjectID="_1086186388">
|
335 |
|
|
</o:OLEObject>
|
336 |
|
|
</xml><![endif]--></p>
|
337 |
|
|
|
338 |
|
|
<p class=MsoNormal align=center style='text-align:center'><span
|
339 |
|
|
style='font-family:Arial'>Figure 2</span><span style='font-size:10.0pt;
|
340 |
|
|
mso-bidi-font-size:12.0pt;font-family:Arial'><o:p></o:p></span></p>
|
341 |
|
|
|
342 |
|
|
<p class=MsoNormal><a name="Data_Reg"><span style='font-size:16.0pt;mso-bidi-font-size:
|
343 |
|
|
12.0pt;font-family:Arial'>2. Data Output Register</span></a><span
|
344 |
|
|
style='font-size:16.0pt;mso-bidi-font-size:12.0pt;font-family:Arial'><o:p></o:p></span></p>
|
345 |
|
|
|
346 |
|
|
<p class=MsoNormal><span style='font-size:10.0pt;mso-bidi-font-size:12.0pt;
|
347 |
|
|
font-family:Arial'><span style='mso-tab-count:1'> </span>This block
|
348 |
|
|
takes 128 bit block data to output. First one block of 128 bits is divided to 4
|
349 |
|
|
blocks of 32 bits. One block of 32 bits data is take to output every one clock cycle.
|
350 |
|
|
Data output register is depicted in figure 3.<o:p></o:p></span></p>
|
351 |
|
|
|
352 |
|
|
<p class=MsoNormal align=center style='text-align:center'><!--[if gte vml 1]><v:shape
|
353 |
|
|
id="_x0000_i1065" type="#_x0000_t75" style='width:463.5pt;height:189pt' o:ole="">
|
354 |
|
|
<v:imagedata src="./enkrip_files/image010.wmz" o:title=""/>
|
355 |
|
|
</v:shape><![endif]--><![if !vml]><img border=0 width=618 height=252
|
356 |
|
|
src="./enkrip_files/image011.gif" v:shapes="_x0000_i1065"><![endif]><!--[if gte mso 9]><xml>
|
357 |
|
|
<o:OLEObject Type="Embed" ProgID="Visio.Drawing.5" ShapeID="_x0000_i1065"
|
358 |
|
|
DrawAspect="Content" ObjectID="_1086186389">
|
359 |
|
|
</o:OLEObject>
|
360 |
|
|
</xml><![endif]--></p>
|
361 |
|
|
|
362 |
|
|
<p class=MsoNormal align=center style='text-align:center'><span
|
363 |
|
|
style='font-family:Arial'>Figure 3</span><span style='font-size:10.0pt;
|
364 |
|
|
mso-bidi-font-size:12.0pt;font-family:Arial'><o:p></o:p></span></p>
|
365 |
|
|
|
366 |
|
|
<p class=MsoNormal><a name=Control><span style='font-size:16.0pt;mso-bidi-font-size:
|
367 |
|
|
12.0pt;font-family:Arial'>3. Control</span></a><span style='font-size:16.0pt;
|
368 |
|
|
mso-bidi-font-size:12.0pt;font-family:Arial'><o:p></o:p></span></p>
|
369 |
|
|
|
370 |
|
|
<p class=MsoBodyText><span style='mso-tab-count:1'> </span>The
|
371 |
|
|
Control block controls the Key Expander and Rijndael Alg block. The state
|
372 |
|
|
diagram of Control block is depicted in figure 4.</p>
|
373 |
|
|
|
374 |
|
|
<p class=MsoNormal align=center style='text-align:center'><!--[if gte vml 1]><v:shape
|
375 |
|
|
id="_x0000_i1136" type="#_x0000_t75" style='width:192pt;height:324pt' o:ole="">
|
376 |
|
|
<v:imagedata src="./enkrip_files/image012.wmz" o:title=""/>
|
377 |
|
|
</v:shape><![endif]--><![if !vml]><img border=0 width=256 height=432
|
378 |
|
|
src="./enkrip_files/image013.gif" v:shapes="_x0000_i1136"><![endif]><!--[if gte mso 9]><xml>
|
379 |
|
|
<o:OLEObject Type="Embed" ProgID="Visio.Drawing.5" ShapeID="_x0000_i1136"
|
380 |
|
|
DrawAspect="Content" ObjectID="_1086186390">
|
381 |
|
|
</o:OLEObject>
|
382 |
|
|
</xml><![endif]--><span style='font-size:10.0pt;mso-bidi-font-size:12.0pt;
|
383 |
|
|
font-family:Arial'><o:p></o:p></span></p>
|
384 |
|
|
|
385 |
|
|
<p class=MsoNormal align=center style='text-align:center'><span
|
386 |
|
|
style='font-family:Arial'>Figure 4<o:p></o:p></span></p>
|
387 |
|
|
|
388 |
|
|
<p class=MsoNormal><a name="Key_Expander"><span style='font-size:16.0pt;
|
389 |
|
|
mso-bidi-font-size:12.0pt;font-family:Arial'>4. Key Expander<o:p></o:p></span></a></p>
|
390 |
|
|
|
391 |
|
|
<p class=MsoBodyText><span style='mso-bookmark:Key_Expander'><span
|
392 |
|
|
style='mso-tab-count:1'> </span>Key Expander responsible to generate
|
393 |
|
|
round key for every round from the initial key. Based on the algorithm
|
394 |
|
|
specification, if we use 128-bit key, 10 rounds will be needed. Hence the Key
|
395 |
|
|
Expander will generate 10 round keys. The Key Expander is depicted in figure 5.
|
396 |
|
|
</span></p>
|
397 |
|
|
|
398 |
|
|
<span style='mso-bookmark:Key_Expander'></span>
|
399 |
|
|
|
400 |
|
|
<p class=MsoNormal><span style='font-size:10.0pt;mso-bidi-font-size:12.0pt;
|
401 |
|
|
font-family:Arial'><![if !supportEmptyParas]> <![endif]><o:p></o:p></span></p>
|
402 |
|
|
|
403 |
|
|
<p class=MsoNormal align=center style='text-align:center'><![if !supportEmptyParas]> <![endif]><o:p></o:p></p>
|
404 |
|
|
|
405 |
|
|
<p class=MsoNormal align=center style='text-align:center'><!--[if gte vml 1]><v:shape
|
406 |
|
|
id="_x0000_i1124" type="#_x0000_t75" style='width:307.5pt;height:252pt' o:ole="">
|
407 |
|
|
<v:imagedata src="./enkrip_files/image014.wmz" o:title=""/>
|
408 |
|
|
</v:shape><![endif]--><![if !vml]><img border=0 width=410 height=336
|
409 |
|
|
src="./enkrip_files/image015.gif" v:shapes="_x0000_i1124"><![endif]><!--[if gte mso 9]><xml>
|
410 |
|
|
<o:OLEObject Type="Embed" ProgID="Visio.Drawing.5" ShapeID="_x0000_i1124"
|
411 |
|
|
DrawAspect="Content" ObjectID="_1086186391">
|
412 |
|
|
</o:OLEObject>
|
413 |
|
|
</xml><![endif]--></p>
|
414 |
|
|
|
415 |
|
|
<p class=MsoNormal align=center style='text-align:center'><span
|
416 |
|
|
style='font-family:Arial'>Figure 5<o:p></o:p></span></p>
|
417 |
|
|
|
418 |
|
|
<p class=MsoNormal align=center style='text-align:center'><span
|
419 |
|
|
style='font-family:Arial'><![if !supportEmptyParas]> <![endif]><o:p></o:p></span></p>
|
420 |
|
|
|
421 |
|
|
<p class=MsoNormal><span style='font-size:10.0pt;mso-bidi-font-size:12.0pt;
|
422 |
|
|
font-family:Arial'>The Blok Alg implements the XOR operations and RotByte function.
|
423 |
|
|
Kontroler Internal controls the Key Expander and its state diagram illustrated
|
424 |
|
|
in figure 6. The ByteSub block is the same as ByteSub for Rijndael Alg Block.<o:p></o:p></span></p>
|
425 |
|
|
|
426 |
|
|
<p class=MsoNormal><span style='font-size:10.0pt;mso-bidi-font-size:12.0pt;
|
427 |
|
|
font-family:Arial'><![if !supportEmptyParas]> <![endif]><o:p></o:p></span></p>
|
428 |
|
|
|
429 |
|
|
<h3>State Diagram of Kontroler Internal</h3>
|
430 |
|
|
|
431 |
|
|
<p class=MsoNormal align=center style='text-align:center'><!--[if gte vml 1]><v:shape
|
432 |
|
|
id="_x0000_i1113" type="#_x0000_t75" style='width:399pt;height:228pt' o:ole="">
|
433 |
|
|
<v:imagedata src="./enkrip_files/image016.wmz" o:title=""/>
|
434 |
|
|
</v:shape><![endif]--><![if !vml]><img border=0 width=532 height=304
|
435 |
|
|
src="./enkrip_files/image017.gif" v:shapes="_x0000_i1113"><![endif]><!--[if gte mso 9]><xml>
|
436 |
|
|
<o:OLEObject Type="Embed" ProgID="Visio.Drawing.5" ShapeID="_x0000_i1113"
|
437 |
|
|
DrawAspect="Content" ObjectID="_1086186392">
|
438 |
|
|
</o:OLEObject>
|
439 |
|
|
</xml><![endif]--></p>
|
440 |
|
|
|
441 |
|
|
<p class=MsoNormal align=center style='text-align:center'><![if !supportEmptyParas]> <![endif]><o:p></o:p></p>
|
442 |
|
|
|
443 |
|
|
<p class=MsoNormal align=center style='text-align:center'><span
|
444 |
|
|
style='font-family:Arial'>Figure 6</span><span style='font-size:10.0pt;
|
445 |
|
|
mso-bidi-font-size:12.0pt;font-family:Arial'><o:p></o:p></span></p>
|
446 |
|
|
|
447 |
|
|
<p class=MsoNormal><a name="Rijndael_alg"><span style='font-size:16.0pt;
|
448 |
|
|
mso-bidi-font-size:12.0pt;font-family:Arial'>5. Rijndael Alg</span></a><span
|
449 |
|
|
style='font-size:16.0pt;mso-bidi-font-size:12.0pt;font-family:Arial'><o:p></o:p></span></p>
|
450 |
|
|
|
451 |
|
|
<p class=MsoNormal><span style='font-size:10.0pt;mso-bidi-font-size:12.0pt;
|
452 |
|
|
font-family:Arial'><span style='mso-tab-count:1'> </span>The
|
453 |
|
|
implementation of Rijndael Alg has been designed this way that it can work as
|
454 |
|
|
the initial round, standard round, and final round. The Rijndael Alg module is
|
455 |
|
|
depicted in figure 7. <o:p></o:p></span></p>
|
456 |
|
|
|
457 |
|
|
<p class=MsoNormal align=center style='text-align:center'><!--[if gte vml 1]><v:shape
|
458 |
|
|
id="_x0000_i1046" type="#_x0000_t75" style='width:508.5pt;height:176.25pt'
|
459 |
|
|
o:ole="">
|
460 |
|
|
<v:imagedata src="./enkrip_files/image018.wmz" o:title=""/>
|
461 |
|
|
</v:shape><![endif]--><![if !vml]><img border=0 width=678 height=235
|
462 |
|
|
src="./enkrip_files/image019.gif" v:shapes="_x0000_i1046"><![endif]><!--[if gte mso 9]><xml>
|
463 |
|
|
<o:OLEObject Type="Embed" ProgID="Visio.Drawing.5" ShapeID="_x0000_i1046"
|
464 |
|
|
DrawAspect="Content" ObjectID="_1086186393">
|
465 |
|
|
</o:OLEObject>
|
466 |
|
|
</xml><![endif]--></p>
|
467 |
|
|
|
468 |
|
|
<p class=MsoNormal align=center style='text-align:center'><span
|
469 |
|
|
style='font-family:Arial'>Figure 7<o:p></o:p></span></p>
|
470 |
|
|
|
471 |
|
|
<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l0 level1 lfo1;
|
472 |
|
|
tab-stops:list .5in'><![if !supportLists]><span style='font-size:10.0pt;
|
473 |
|
|
mso-bidi-font-size:12.0pt;mso-bidi-font-weight:bold'>-<span style='font:7.0pt "Times New Roman"'>
|
474 |
|
|
</span></span><![endif]><b><span style='font-size:10.0pt;mso-bidi-font-size:
|
475 |
|
|
12.0pt;font-family:Arial'>Mux21<o:p></o:p></span></b></p>
|
476 |
|
|
|
477 |
|
|
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt;
|
478 |
|
|
mso-bidi-font-size:12.0pt;font-family:Arial'>Mux21 is a simple multiplexer 2 to
|
479 |
|
|
1. The format of data (din_i) is changed in this block, a block 128 bits sequence
|
480 |
|
|
to matrix 4x4 called State, as it is easier to design another blocks
|
481 |
|
|
(AddRoundKey, ByteSub, ShiftRow. MixColumn) <o:p></o:p></span></p>
|
482 |
|
|
|
483 |
|
|
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt;
|
484 |
|
|
mso-bidi-font-size:12.0pt;font-family:Arial'><![if !supportEmptyParas]> <![endif]><o:p></o:p></span></p>
|
485 |
|
|
|
486 |
|
|
<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l0 level1 lfo1;
|
487 |
|
|
tab-stops:list .5in'><![if !supportLists]><span style='font-size:10.0pt;
|
488 |
|
|
mso-bidi-font-size:12.0pt;mso-bidi-font-weight:bold'>-<span style='font:7.0pt "Times New Roman"'>
|
489 |
|
|
</span></span><![endif]><b><span style='font-size:10.0pt;mso-bidi-font-size:
|
490 |
|
|
12.0pt;font-family:Arial'>AddRoundKey<o:p></o:p></span></b></p>
|
491 |
|
|
|
492 |
|
|
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt;
|
493 |
|
|
mso-bidi-font-size:12.0pt;font-family:Arial'>Implements AddRoundKey transformation,
|
494 |
|
|
a simple XOR between State and round key. <o:p></o:p></span></p>
|
495 |
|
|
|
496 |
|
|
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt;
|
497 |
|
|
mso-bidi-font-size:12.0pt;font-family:Arial'><![if !supportEmptyParas]> <![endif]><o:p></o:p></span></p>
|
498 |
|
|
|
499 |
|
|
<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l0 level1 lfo1;
|
500 |
|
|
tab-stops:list .5in'><![if !supportLists]><span style='font-size:10.0pt;
|
501 |
|
|
mso-bidi-font-size:12.0pt;mso-bidi-font-weight:bold'>-<span style='font:7.0pt "Times New Roman"'>
|
502 |
|
|
</span></span><![endif]><b><span style='font-size:10.0pt;mso-bidi-font-size:
|
503 |
|
|
12.0pt;font-family:Arial'>ByteSub<o:p></o:p></span></b></p>
|
504 |
|
|
|
505 |
|
|
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt;
|
506 |
|
|
mso-bidi-font-size:12.0pt;font-family:Arial'>Implements ByteSub transformation,
|
507 |
|
|
contains 16 S-Box working in parallel. Dual Port Block RAM will be used to implements
|
508 |
|
|
2 S-Box, which emulate the ROM memory with configuration of 256x8 bits.<o:p></o:p></span></p>
|
509 |
|
|
|
510 |
|
|
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt;
|
511 |
|
|
mso-bidi-font-size:12.0pt;font-family:Arial'><![if !supportEmptyParas]> <![endif]><o:p></o:p></span></p>
|
512 |
|
|
|
513 |
|
|
<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l0 level1 lfo1;
|
514 |
|
|
tab-stops:list .5in'><![if !supportLists]><span style='font-size:10.0pt;
|
515 |
|
|
mso-bidi-font-size:12.0pt;mso-bidi-font-weight:bold'>-<span style='font:7.0pt "Times New Roman"'>
|
516 |
|
|
</span></span><![endif]><b><span style='font-size:10.0pt;mso-bidi-font-size:
|
517 |
|
|
12.0pt;font-family:Arial'>ShiftRow<o:p></o:p></span></b></p>
|
518 |
|
|
|
519 |
|
|
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt;
|
520 |
|
|
mso-bidi-font-size:12.0pt;font-family:Arial'>Implements ShiftRow transformation.
|
521 |
|
|
The position of bytes in State will shifted cyclical by offsets. The first row
|
522 |
|
|
is shifted by zero, the second row is shifter by one, the third row is shifted
|
523 |
|
|
by two, and the fourth row is shifted by three. The implementation is realized
|
524 |
|
|
by hardwiring and do not need gate resource.<o:p></o:p></span></p>
|
525 |
|
|
|
526 |
|
|
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt;
|
527 |
|
|
mso-bidi-font-size:12.0pt;font-family:Arial'><![if !supportEmptyParas]> <![endif]><o:p></o:p></span></p>
|
528 |
|
|
|
529 |
|
|
<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l0 level1 lfo1;
|
530 |
|
|
tab-stops:list .5in'><![if !supportLists]><span style='font-size:10.0pt;
|
531 |
|
|
mso-bidi-font-size:12.0pt;mso-bidi-font-weight:bold'>-<span style='font:7.0pt "Times New Roman"'>
|
532 |
|
|
</span></span><![endif]><b><span style='font-size:10.0pt;mso-bidi-font-size:
|
533 |
|
|
12.0pt;font-family:Arial'>MixColumn<o:p></o:p></span></b></p>
|
534 |
|
|
|
535 |
|
|
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt;
|
536 |
|
|
mso-bidi-font-size:12.0pt;font-family:Arial'>Implements MixColumn transformation.
|
537 |
|
|
The columns of State are viewed as the coefficients of polynomial over GF (2<sup>8</sup>)
|
538 |
|
|
of degree smaller than three. This polynomial is multiplied by four terms fixed
|
539 |
|
|
polynomial a(x), {03)x<sup>3</sup> + {01}x<sup>2</sup> + {01}x + {02}, modulo
|
540 |
|
|
the polynomial x<sup>4</sup> + 1.The multiplication with four terms fixed
|
541 |
|
|
polynomial can be simplified by using the matrix form. The implementation of
|
542 |
|
|
this transformation can be realized as shift and XOR operations.<o:p></o:p></span></p>
|
543 |
|
|
|
544 |
|
|
<p class=MsoNormal><span style='font-size:10.0pt;mso-bidi-font-size:12.0pt;
|
545 |
|
|
font-family:Arial'><![if !supportEmptyParas]> <![endif]><o:p></o:p></span></p>
|
546 |
|
|
|
547 |
|
|
<p class=MsoNormal><span style='font-size:10.0pt;mso-bidi-font-size:12.0pt;
|
548 |
|
|
font-family:Arial'><![if !supportEmptyParas]> <![endif]><o:p></o:p></span></p>
|
549 |
|
|
|
550 |
|
|
<h4><b>Implementation Result<o:p></o:p></b></h4>
|
551 |
|
|
|
552 |
|
|
<p class=MsoNormal><span style='font-size:10.0pt;mso-bidi-font-size:12.0pt;
|
553 |
|
|
font-family:Arial'><span style='mso-tab-count:1'> </span>The
|
554 |
|
|
encryption algorithm has been implemented to FPGA Xilinx Virtex V300PQ240. It
|
555 |
|
|
has 20 Dual Port Block RAM to implement to ByteSub transformation. The
|
556 |
|
|
implementation parameters are:<o:p></o:p></span></p>
|
557 |
|
|
|
558 |
|
|
<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l0 level1 lfo1;
|
559 |
|
|
tab-stops:list .5in'><![if !supportLists]><span style='font-size:10.0pt;
|
560 |
|
|
mso-bidi-font-size:12.0pt'>-<span style='font:7.0pt "Times New Roman"'>
|
561 |
|
|
</span></span><![endif]><span style='font-size:10.0pt;mso-bidi-font-size:12.0pt;
|
562 |
|
|
font-family:Arial'>Speed<o:p></o:p></span></p>
|
563 |
|
|
|
564 |
|
|
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt;
|
565 |
|
|
mso-bidi-font-size:12.0pt;font-family:Arial'>The maximum frequency is 51 MHz
|
566 |
|
|
corresponds to throughput 298,899 Mbps.<o:p></o:p></span></p>
|
567 |
|
|
|
568 |
|
|
<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l0 level1 lfo1;
|
569 |
|
|
tab-stops:list .5in'><![if !supportLists]><span style='font-size:10.0pt;
|
570 |
|
|
mso-bidi-font-size:12.0pt'>-<span style='font:7.0pt "Times New Roman"'>
|
571 |
|
|
</span></span><![endif]><span style='font-size:10.0pt;mso-bidi-font-size:12.0pt;
|
572 |
|
|
font-family:Arial'>Area<o:p></o:p></span></p>
|
573 |
|
|
|
574 |
|
|
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt;
|
575 |
|
|
mso-bidi-font-size:12.0pt;font-family:Arial'>The design required 666 slices<o:p></o:p></span></p>
|
576 |
|
|
|
577 |
|
|
</div>
|
578 |
|
|
|
579 |
|
|
</body>
|
580 |
|
|
|
581 |
|
|
</html>
|