From: "Saved by Windows Internet Explorer 7" Subject: 11/13/07 Date: Sat, 16 Feb 2008 02:16:38 -0500 MIME-Version: 1.0 Content-Type: text/html; charset="Windows-1252" Content-Transfer-Encoding: quoted-printable Content-Location: http://www.ccs.neu.edu/course/csg254/Solutions-IV.htm X-MimeOLE: Produced By Microsoft MimeOLE V6.0.6000.16545 11/13/07</TITLE= > <META http-equiv=3DContent-Type content=3D"text/html; = charset=3Dwindows-1252"> <META content=3DWord.Document name=3DProgId> <META content=3D"MSHTML 6.00.6000.16609" name=3DGENERATOR> <META content=3D"Microsoft Word 10" name=3DOriginator><LINK=20 href=3D"Solutions-IV_files/filelist.xml" rel=3DFile-List><LINK=20 href=3D"Solutions-IV_files/editdata.mso" rel=3DEdit-Time-Data><!--[if = !mso]> <STYLE>v\:* { BEHAVIOR: url(#default#VML) } o\:* { BEHAVIOR: url(#default#VML) } w\:* { BEHAVIOR: url(#default#VML) } .shape { BEHAVIOR: url(#default#VML) } </STYLE> <![endif]--><o:SmartTagType name=3D"date"=20 namespaceuri=3D"urn:schemas-microsoft-com:office:smarttags"></o:SmartTagT= ype><o:SmartTagType=20 name=3D"place"=20 namespaceuri=3D"urn:schemas-microsoft-com:office:smarttags"></o:SmartTagT= ype><o:SmartTagType=20 name=3D"City"=20 namespaceuri=3D"urn:schemas-microsoft-com:office:smarttags"></o:SmartTagT= ype><!--[if gte mso 9]><xml> <o:DocumentProperties> <o:Author>neu</o:Author> <o:LastAuthor> Koods</o:LastAuthor> <o:Revision>3</o:Revision> <o:TotalTime>151</o:TotalTime> <o:LastPrinted>2005-11-10T18:13:00Z</o:LastPrinted> <o:Created>2007-11-07T15:57:00Z</o:Created> <o:LastSaved>2007-11-07T15:57:00Z</o:LastSaved> <o:Pages>2</o:Pages> <o:Words>995</o:Words> <o:Characters>5676</o:Characters> <o:Company>neu</o:Company> <o:Lines>47</o:Lines> <o:Paragraphs>13</o:Paragraphs> <o:CharactersWithSpaces>6658</o:CharactersWithSpaces> <o:Version>10.6830</o:Version> </o:DocumentProperties> </xml><![endif]--><!--[if gte mso 9]><xml> <w:WordDocument> <w:SpellingState>Clean</w:SpellingState> <w:GrammarState>Clean</w:GrammarState> <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel> </w:WordDocument> </xml><![endif]--><!--[if !mso]> <OBJECT id=3Dieooui = classid=3Dclsid:38481807-CA0E-42D2-BF39-B33AF135CC4D></OBJECT> <STYLE>st1\:* { BEHAVIOR: url(#ieooui) } </STYLE> <![endif]--> <STYLE>@font-face { font-family: Wingdings; } @font-face { font-family: Batang; } @font-face { font-family: Nimbus Roman No9 L; } @font-face { font-family: Nimbus Sans L; } @font-face { font-family: @Batang; } @page Section1 {size: 8.5in 11.0in; margin: 1.0in 1.25in 1.0in 1.25in; = mso-header-margin: 35.4pt; mso-footer-margin: 35.4pt; mso-paper-source: = 0; } P.MsoNormal { FONT-SIZE: 12pt; MARGIN: 0in 0in 0pt; FONT-FAMILY: "Nimbus Roman No9 = L"; mso-style-parent: ""; mso-pagination: none; mso-hyphenate: none; = mso-fareast-font-family: "Nimbus Sans L"; mso-bidi-font-family: "Times = New Roman" } LI.MsoNormal { FONT-SIZE: 12pt; MARGIN: 0in 0in 0pt; FONT-FAMILY: "Nimbus Roman No9 = L"; mso-style-parent: ""; mso-pagination: none; mso-hyphenate: none; = mso-fareast-font-family: "Nimbus Sans L"; mso-bidi-font-family: "Times = New Roman" } DIV.MsoNormal { FONT-SIZE: 12pt; MARGIN: 0in 0in 0pt; FONT-FAMILY: "Nimbus Roman No9 = L"; mso-style-parent: ""; mso-pagination: none; mso-hyphenate: none; = mso-fareast-font-family: "Nimbus Sans L"; mso-bidi-font-family: "Times = New Roman" } H1 { FONT-SIZE: 14pt; MARGIN: 12pt 0in 3pt 0.5in; TEXT-INDENT: -0.25in; = FONT-FAMILY: Arial; mso-list: l4 level1 lfo4; tab-stops: list .5in; = mso-pagination: widow-orphan; mso-bidi-font-family: "Times New Roman"; = mso-style-next: Normal; mso-outline-level: 1; mso-bidi-font-size: = 10.0pt; mso-font-kerning: .5pt; mso-bidi-font-weight: normal } H3 { FONT-SIZE: 13pt; MARGIN: 12pt 0in 3pt; FONT-FAMILY: Arial; = mso-pagination: none; mso-hyphenate: none; mso-fareast-font-family: = "Nimbus Sans L"; mso-style-next: Normal; mso-outline-level: 3 } P.MsoBodyTextIndent { FONT-SIZE: 12pt; MARGIN: 0in 0in 0pt 0.25in; WORD-BREAK: break-all; = FONT-FAMILY: "Times New Roman"; TEXT-ALIGN: justify; mso-pagination: = none; mso-fareast-font-family: Batang; mso-bidi-font-size: 10.0pt; = mso-font-kerning: 1.0pt; mso-fareast-language: KO } LI.MsoBodyTextIndent { FONT-SIZE: 12pt; MARGIN: 0in 0in 0pt 0.25in; WORD-BREAK: break-all; = FONT-FAMILY: "Times New Roman"; TEXT-ALIGN: justify; mso-pagination: = none; mso-fareast-font-family: Batang; mso-bidi-font-size: 10.0pt; = mso-font-kerning: 1.0pt; mso-fareast-language: KO } DIV.MsoBodyTextIndent { FONT-SIZE: 12pt; MARGIN: 0in 0in 0pt 0.25in; WORD-BREAK: break-all; = FONT-FAMILY: "Times New Roman"; TEXT-ALIGN: justify; mso-pagination: = none; mso-fareast-font-family: Batang; mso-bidi-font-size: 10.0pt; = mso-font-kerning: 1.0pt; mso-fareast-language: KO } A:link { COLOR: navy; TEXT-DECORATION: underline; mso-style-parent: ""; = text-underline: single } SPAN.MsoHyperlink { COLOR: navy; TEXT-DECORATION: underline; mso-style-parent: ""; = text-underline: single } A:visited { COLOR: purple; TEXT-DECORATION: underline; text-underline: single } SPAN.MsoHyperlinkFollowed { COLOR: purple; TEXT-DECORATION: underline; text-underline: single } SPAN.SpellE { mso-style-name: ""; mso-spl-e: yes } SPAN.GramE { mso-style-name: ""; mso-gram-e: yes } DIV.Section1 { page: Section1 } OL { MARGIN-BOTTOM: 0in } UL { MARGIN-BOTTOM: 0in } </STYLE> <!--[if gte mso 10]> <style> /* Style Definitions */ table.MsoNormalTable {mso-style-name:"Table Normal"; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-parent:""; mso-padding-alt:0in 5.4pt 0in 5.4pt; mso-para-margin:0in; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:10.0pt; font-family:"Times New Roman";} </style> <![endif]--><!--[if gte mso 9]><xml> <o:shapedefaults v:ext=3D"edit" spidmax=3D"2050"/> </xml><![endif]--><!--[if gte mso 9]><xml> <o:shapelayout v:ext=3D"edit"> <o:idmap v:ext=3D"edit" data=3D"1"/> <o:regrouptable v:ext=3D"edit"> <o:entry new=3D"1" old=3D"0"/> </o:regrouptable> </o:shapelayout></xml><![endif]--></HEAD> <BODY lang=3DEN-US style=3D"tab-interval: .5in" vLink=3Dpurple = link=3Dnavy> <DIV class=3DSection1> <H1=20 style=3D"MARGIN-LEFT: 0in; TEXT-INDENT: 0in; TEXT-ALIGN: right; = mso-list: none; tab-stops: .5in"=20 align=3Dright><st1:date Month=3D"11" Day=3D"13" Year=3D"2007"><SPAN=20 style=3D"FONT-WEIGHT: normal; FONT-SIZE: 12pt; FONT-FAMILY: 'Times New = Roman'; mso-bidi-font-size: 10.0pt; mso-bidi-font-weight: = bold">11/13/07</SPAN></st1:date><SPAN=20 style=3D"FONT-WEIGHT: normal; FONT-SIZE: 12pt; FONT-FAMILY: 'Times New = Roman'; mso-bidi-font-size: 10.0pt; mso-bidi-font-weight: = bold"><o:p></o:p></SPAN></H1> <H1=20 style=3D"MARGIN-LEFT: 0in; TEXT-INDENT: 0in; TEXT-ALIGN: center; = mso-list: l1 level1 lfo2; tab-stops: list 0in"=20 align=3Dcenter><SPAN style=3D"FONT-FAMILY: 'Times New Roman'">CS = G254/U645 Network=20 Security<o:p></o:p></SPAN></H1> <H1=20 style=3D"MARGIN-LEFT: 0in; TEXT-INDENT: 0in; TEXT-ALIGN: center; = mso-list: l1 level1 lfo2; tab-stops: list 0in"=20 align=3Dcenter><SPAN=20 style=3D"FONT-FAMILY: 'Times New Roman'; mso-bidi-font-size: = 14.0pt">Problem Set =96=20 IV Solutions<o:p></o:p></SPAN></H1> <P class=3DMsoNormal style=3D"TEXT-ALIGN: center" = align=3Dcenter><o:p> </o:p></P> <P class=3DMsoNormal><SPAN style=3D"FONT-FAMILY: 'Times New Roman'">1) = <B=20 style=3D"mso-bidi-font-weight: normal">DES</B></SPAN></P> <P class=3DMsoNormal><B style=3D"mso-bidi-font-weight: normal"><SPAN=20 style=3D"FONT-FAMILY: 'Times New = Roman'"><o:p> </o:p></SPAN></B></P> <P class=3DMsoNormal=20 style=3D"MARGIN-LEFT: 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 = lfo1; tab-stops: list .5in"><![if !supportLists]><SPAN=20 style=3D"FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 'Times = New Roman'"><SPAN=20 style=3D"mso-list: Ignore">a)<SPAN=20 style=3D"FONT: 7pt 'Times New Roman'">     =20 </SPAN></SPAN></SPAN><![endif]><SPAN style=3D"FONT-FAMILY: 'Times New = Roman'">64=20 bits<o:p></o:p></SPAN></P> <P class=3DMsoNormal=20 style=3D"MARGIN-LEFT: 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 = lfo1; tab-stops: list .5in"><![if !supportLists]><SPAN=20 style=3D"FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 'Times = New Roman'"><SPAN=20 style=3D"mso-list: Ignore">b)<SPAN=20 style=3D"FONT: 7pt 'Times New Roman'">     =20 </SPAN></SPAN></SPAN><![endif]><SPAN=20 style=3D"FONT-FAMILY: 'Times New Roman'">Suppose that there exists an = encryption=20 algorithm that produces cipher blocks smaller than the plain-text = blocks. Then=20 the number of different plain-text words is greater than the number of = possible=20 cipher-text blocks. Thus multiple plain-text blocks will encrypt to the = same=20 cipher-block. However, it would not be possible to perform decryption = for such=20 cipher-text blocks, because there would be no way of determining which=20 particular plain-text block they have to decrypt to. Thus the size of = the=20 cipher-block has to be at least as big as the size of plain-text block = to=20 prevent the loss of information.<o:p></o:p></SPAN></P> <P class=3DMsoNormal=20 style=3D"MARGIN-LEFT: 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 = lfo1; tab-stops: list .5in"><![if !supportLists]><SPAN=20 style=3D"FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 'Times = New Roman'"><SPAN=20 style=3D"mso-list: Ignore">c)<SPAN=20 style=3D"FONT: 7pt 'Times New Roman'">     =20 </SPAN></SPAN></SPAN><![endif]><SPAN style=3D"FONT-FAMILY: 'Times New = Roman'">DES=20 key is a 64-bit quantity. However, one bit in each octet is used for odd = parity=20 on each octet. Thus only 7*8=3D56 bits comprise the actual meaningful = key. Thus=20 there are 2<SUP>56</SUP> different DES keys<o:p></o:p></SPAN></P> <P class=3DMsoNormal=20 style=3D"MARGIN-LEFT: 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 = lfo1; tab-stops: list .5in"><![if !supportLists]><SPAN=20 style=3D"FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 'Times = New Roman'"><SPAN=20 style=3D"mso-list: Ignore">d)<SPAN=20 style=3D"FONT: 7pt 'Times New Roman'">     =20 </SPAN></SPAN></SPAN><![endif]><SPAN style=3D"FONT-FAMILY: 'Times New = Roman'">DES=20 consists of 16 rounds of permutation. There is also an additional = initial and=20 final permutation.<o:p></o:p></SPAN></P> <P class=3DMsoNormal=20 style=3D"MARGIN-LEFT: 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 = lfo1; tab-stops: list .5in"><![if !supportLists]><I=20 style=3D"mso-bidi-font-style: normal"><SPAN=20 style=3D"FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 'Times = New Roman'"><SPAN=20 style=3D"mso-list: Ignore">e)<SPAN=20 style=3D"FONT: 7pt 'Times New Roman'">     =20 </SPAN></SPAN></SPAN></I><![endif]><SPAN=20 style=3D"FONT-FAMILY: 'Times New Roman'">Getting right half is easy: = <SPAN=20 class=3DGramE><I style=3D"mso-bidi-font-style: = normal">R<SUB>i</SUB></I></SPAN><I=20 style=3D"mso-bidi-font-style: normal"> =3D R<SUB>i+1</SUB></I>. To get = the left=20 half: <I style=3D"mso-bidi-font-style: normal">L<SUB>i</SUB> =3D <SPAN=20 class=3DGramE>R<SUB>i+</SUB></SPAN><SUB>1</SUB> </I></SPAN><I=20 style=3D"mso-bidi-font-style: normal"><SPAN=20 style=3D"FONT-FAMILY: Symbol; mso-ascii-font-family: 'Nimbus Roman No9 = L'; mso-hansi-font-family: 'Nimbus Roman No9 L'; mso-char-type: symbol; = mso-symbol-font-family: Symbol"><SPAN=20 style=3D"mso-char-type: symbol; mso-symbol-font-family: = Symbol">=C5</SPAN></SPAN>=20 (K<SUB>i</SUB> mangle R<SUB>i</SUB>). </I>We can compute mangle, since = we know=20 both <I style=3D"mso-bidi-font-style: normal">K<SUB>i</SUB> </I>and = <SPAN=20 class=3DGramE><I style=3D"mso-bidi-font-style: = normal">R<SUB>i</SUB></I></SPAN>.=20 Since we also have <SPAN class=3DGramE><I=20 style=3D"mso-bidi-font-style: normal"><SPAN=20 style=3D"FONT-FAMILY: 'Times New = Roman'">R<SUB>i+</SUB></SPAN></I></SPAN><I=20 style=3D"mso-bidi-font-style: normal"><SUB><SPAN=20 style=3D"FONT-FAMILY: 'Times New Roman'">1 </SPAN></SUB></I><SPAN=20 style=3D"FONT-FAMILY: 'Times New Roman'">and since we know that <I=20 style=3D"mso-bidi-font-style: normal">A </I></SPAN><I=20 style=3D"mso-bidi-font-style: normal"><SPAN=20 style=3D"FONT-FAMILY: Symbol; mso-ascii-font-family: 'Nimbus Roman No9 = L'; mso-hansi-font-family: 'Nimbus Roman No9 L'; mso-char-type: symbol; = mso-symbol-font-family: Symbol"><SPAN=20 style=3D"mso-char-type: symbol; mso-symbol-font-family: = Symbol">=C5</SPAN></SPAN> B=20 </I><I style=3D"mso-bidi-font-style: normal"><SPAN=20 style=3D"FONT-FAMILY: Symbol; mso-ascii-font-family: 'Nimbus Roman No9 = L'; mso-hansi-font-family: 'Nimbus Roman No9 L'; mso-char-type: symbol; = mso-symbol-font-family: Symbol"><SPAN=20 style=3D"mso-char-type: symbol; mso-symbol-font-family: = Symbol">=C5</SPAN></SPAN> B=20 =3D A,</I> we can perform the above <I style=3D"mso-bidi-font-style: = normal"><SPAN=20 style=3D"FONT-FAMILY: Symbol; mso-ascii-font-family: 'Nimbus Roman No9 = L'; mso-hansi-font-family: 'Nimbus Roman No9 L'; mso-char-type: symbol; = mso-symbol-font-family: Symbol"><SPAN=20 style=3D"mso-char-type: symbol; mso-symbol-font-family: = Symbol">=C5</SPAN></SPAN></I>=20 operation to recover <I style=3D"mso-bidi-font-style: normal"><SPAN=20 style=3D"FONT-FAMILY: 'Times New = Roman'">L<SUB>i</SUB></SPAN></I><SUB><SPAN=20 style=3D"FONT-FAMILY: 'Times New Roman'">. </SPAN></SUB><SPAN=20 style=3D"FONT-FAMILY: 'Times New Roman'">Notice that while recovering <I = style=3D"mso-bidi-font-style: normal">L<SUB>i </SUB></I>we did not need = the mangle=20 to be reversible.<I=20 style=3D"mso-bidi-font-style: normal"><o:p></o:p></I></SPAN></P> <P class=3DMsoNormal=20 style=3D"MARGIN-LEFT: 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 = lfo1; tab-stops: list .5in"><![if !supportLists]><I=20 style=3D"mso-bidi-font-style: normal"><SPAN=20 style=3D"FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 'Times = New Roman'"><SPAN=20 style=3D"mso-list: Ignore">f)<SPAN=20 style=3D"FONT: 7pt 'Times New = Roman'">      =20 </SPAN></SPAN></SPAN></I><![endif]><SPAN=20 style=3D"FONT-FAMILY: 'Times New Roman'">3DES (also known as=20 </SPAN><st1:City><st1:place><SPAN=20 style=3D"FONT-FAMILY: 'Times New = Roman'">EDE</SPAN></st1:place></st1:City><SPAN=20 style=3D"FONT-FAMILY: 'Times New Roman'">) works by first encrypting = plain text=20 with K<SUB>1</SUB>, then decrypting it with </SPAN><st1:place><SPAN=20 style=3D"FONT-FAMILY: 'Times New = Roman'">K<SUB>2</SUB></SPAN></st1:place><SUB><SPAN=20 style=3D"FONT-FAMILY: 'Times New Roman'">, </SPAN></SUB><SPAN=20 style=3D"FONT-FAMILY: 'Times New Roman'">then encrypting it with = K<SUB>1</SUB>.=20 Thus there are 2<SUP>56</SUP>*2<SUP>56</SUP> possible keys to try, or=20 2<SUP>112</SUP> total tries to be made in the worst case before finding = the=20 correct keys. (Note that if three distinct keys were used, there is an = attack,=20 known as </SPAN><EM><SPAN style=3D"FONT-FAMILY: 'Nimbus Roman No9 = L'">meet in the=20 middle attack</SPAN></EM> that makes 3DES no more secure than performing = encryption once. This is the reason for reusing first key, instead of = three=20 unique keys.)<I style=3D"mso-bidi-font-style: normal"><SPAN=20 style=3D"FONT-FAMILY: 'Times New Roman'"><o:p></o:p></SPAN></I></P> <P class=3DMsoNormal><o:p> </o:p></P> <P class=3DMsoNormal=20 style=3D"WORD-BREAK: break-all; TEXT-ALIGN: justify; mso-hyphenate: = auto">2) <B=20 style=3D"mso-bidi-font-weight: normal">Passwords</B></P> <P class=3DMsoNormal=20 style=3D"MARGIN-LEFT: 0.25in; WORD-BREAK: break-all; TEXT-ALIGN: = justify; mso-hyphenate: auto"><o:p> </o:p></P> <P class=3DMsoNormal=20 style=3D"MARGIN-LEFT: 0.25in; WORD-BREAK: break-all; TEXT-ALIGN: = justify; mso-hyphenate: auto">a)=20 <SPAN style=3D"FONT-FAMILY: 'Times New Roman'">In the Lamport one-time = password=20 scheme </SPAN><st1:City><st1:place><SPAN=20 style=3D"FONT-FAMILY: 'Times New = Roman'">Alice</SPAN></st1:place></st1:City><SPAN=20 style=3D"FONT-FAMILY: 'Times New Roman'"> picks a password, =93pwd,=94 = and a=20 reasonably large number n (like 1000), and repeatedly applies a hash = function,=20 h, to it. She then sends <SPAN class=3DSpellE><SPAN=20 class=3DGramE>h<SUP>n</SUP></SPAN></SPAN><SPAN = class=3DGramE>(</SPAN>pwd) to Bob=20 along with n. Bob stores it in a database.<o:p></o:p></SPAN></P> <P class=3DMsoNormal style=3D"MARGIN-LEFT: 0.25in"><SPAN=20 style=3D"FONT-FAMILY: 'Times New Roman'">When she wishes to prove her = identity to=20 Bob she contacts him, at which point Bob sends her back n, Alice then = computes=20 h<SUP>n-1</SUP>(pwd) and sends the result to Bob. Bob takes the received = quantity, hashes it once, and checks against the database. If it matches = Bob=20 considers the response valid and replaces the stored quantity with the = received=20 quantity and replaces n by n-1. <o:p></o:p></SPAN></P> <P class=3DMsoNormal style=3D"MARGIN-LEFT: 0.5in"><SPAN=20 style=3D"FONT-FAMILY: 'Times New Roman'"><o:p> </o:p></SPAN></P> <P class=3DMsoNormal style=3D"MARGIN-LEFT: 0.5in"><SPAN=20 style=3D"FONT-FAMILY: 'Times New Roman'"><o:p> </o:p></SPAN></P> <P class=3DMsoNormal style=3D"MARGIN-LEFT: 0.5in"><SPAN=20 style=3D"FONT-FAMILY: 'Times New Roman'"><o:p> </o:p></SPAN></P> <P class=3DMsoNormal><!--[if gte vml 1]><v:group id=3D_x0000_s1026=20 style=3D"MARGIN-TOP: 7.15pt; Z-INDEX: 1; MARGIN-LEFT: 0px; WIDTH: 171pt; = POSITION: absolute; HEIGHT: 90pt; mso-position-horizontal: left"=20 coordsize =3D "3420,1800" coordorigin =3D "2340,11880"><v:shapetype = id=3D_x0000_t202=20 coordsize =3D "21600,21600" o:spt =3D "202" path =3D=20 " m0,0 l0,21600,21600,21600,21600,0 xe"><v:stroke joinstyle =3D=20 "miter"></v:stroke><v:path gradientshapeok =3D "t" o:connecttype =3D=20 "rect"></v:path></v:shapetype><v:shape id=3D_x0000_s1027=20 style=3D"LEFT: 3240px; WIDTH: 900px; POSITION: absolute; TOP: 11880px; = HEIGHT: 540px"=20 type =3D "#_x0000_t202" coordsize =3D "21600,21600" stroked =3D = "f"><v:textbox=20 style=3D"MARGIN-TOP: 3.968pt; LEFT: auto; MARGIN-LEFT: 7.187pt; WIDTH: = 30.625pt; TOP: auto; HEIGHT: 19.812pt; mso-next-textbox: = #_x0000_s1027"><![if !mso]> <TABLE cellSpacing=3D0 cellPadding=3D0 width=3D"100%"> <TBODY> <TR> <TD><![endif]> <DIV> <P=20 = class=3DMsoNormal><st1:City><st1:place>Alice</st1:place></st1:City></P></= DIV><![if = !mso]></TD></TR></TBODY></TABLE><![endif]></v:textbox></v:shape><v:shape = id=3D_x0000_s1028=20 style=3D"LEFT: 3060px; WIDTH: 1260px; POSITION: absolute; TOP: 12960px; = HEIGHT: 540px"=20 type =3D "#_x0000_t202" coordsize =3D "21600,21600" stroked =3D = "f"><v:textbox=20 style=3D"MARGIN-TOP: 3.968pt; LEFT: auto; MARGIN-LEFT: 7.187pt; WIDTH: = 48.625pt; TOP: auto; HEIGHT: 19.812pt; mso-next-textbox: = #_x0000_s1028"><![if !mso]> <TABLE cellSpacing=3D0 cellPadding=3D0 width=3D"100%"> <TBODY> <TR> <TD><![endif]> <DIV> <P class=3DMsoNormal><SPAN = class=3DGramE>h<SUP>999</SUP>(</SPAN>pwd)</P></DIV><![if = !mso]></TD></TR></TBODY></TABLE><![endif]></v:textbox></v:shape><v:shape = id=3D_x0000_s1029=20 style=3D"LEFT: 3240px; WIDTH: 1260px; POSITION: absolute; TOP: 12420px; = HEIGHT: 540px"=20 type =3D "#_x0000_t202" coordsize =3D "21600,21600" stroked =3D = "f"><v:textbox=20 style=3D"MARGIN-TOP: 3.968pt; LEFT: auto; MARGIN-LEFT: 7.187pt; WIDTH: = 48.625pt; TOP: auto; HEIGHT: 19.812pt; mso-next-textbox: = #_x0000_s1029"><![if !mso]> <TABLE cellSpacing=3D0 cellPadding=3D0 width=3D"100%"> <TBODY> <TR> <TD><![endif]> <DIV> <P class=3DMsoNormal>1000</P></DIV><![if = !mso]></TD></TR></TBODY></TABLE><![endif]></v:textbox></v:shape><v:rect=20 id=3D_x0000_s1030=20 style=3D"LEFT: 2340px; WIDTH: 540px; POSITION: absolute; TOP: 12060px; = HEIGHT: 1620px"=20 coordsize =3D "21600,21600"><v:textbox=20 style=3D"MARGIN-TOP: 4.343pt; LEFT: auto; MARGIN-LEFT: 8.312pt; WIDTH: = 11.875pt; TOP: auto; HEIGHT: 73.062pt; mso-next-textbox: = #_x0000_s1030"><![if !mso]> <TABLE cellSpacing=3D0 cellPadding=3D0 width=3D"100%"> <TBODY> <TR> <TD><![endif]> <DIV> <H3><SPAN style=3D"FONT-SIZE: 10pt">A</SPAN><SPAN=20 style=3D"FONT-SIZE: 10pt; FONT-FAMILY: 'Times New Roman'; = mso-bidi-font-family: Arial"><o:p></o:p></SPAN></H3> <P class=3DMsoNormal style=3D"TEXT-ALIGN: center" = align=3Dcenter><SPAN=20 class=3DGramE><SPAN style=3D"FONT-SIZE: 10pt">l</SPAN></SPAN><SPAN = style=3D"FONT-SIZE: 10pt; FONT-FAMILY: 'Times New = Roman'"><o:p></o:p></SPAN></P> <P class=3DMsoNormal style=3D"TEXT-ALIGN: center" = align=3Dcenter><SPAN=20 class=3DSpellE><SPAN class=3DGramE><SPAN=20 style=3D"FONT-SIZE: 10pt">i</SPAN></SPAN></SPAN><SPAN=20 style=3D"FONT-SIZE: 10pt; FONT-FAMILY: 'Times New = Roman'"><o:p></o:p></SPAN></P> <P class=3DMsoNormal style=3D"TEXT-ALIGN: center" = align=3Dcenter><SPAN=20 class=3DGramE><SPAN style=3D"FONT-SIZE: 10pt">c</SPAN></SPAN><SPAN = style=3D"FONT-SIZE: 10pt; FONT-FAMILY: 'Times New = Roman'"><o:p></o:p></SPAN></P> <P class=3DMsoNormal style=3D"TEXT-ALIGN: center" = align=3Dcenter><SPAN=20 class=3DGramE><SPAN style=3D"FONT-SIZE: = 10pt">e</SPAN></SPAN></P></DIV><![if = !mso]></TD></TR></TBODY></TABLE><![endif]></v:textbox></v:rect><v:rect=20 id=3D_x0000_s1031=20 style=3D"LEFT: 4500px; WIDTH: 1260px; POSITION: absolute; TOP: 12060px; = HEIGHT: 1620px"=20 coordsize =3D "21600,21600"><v:textbox=20 style=3D"MARGIN-TOP: 4.343pt; LEFT: auto; MARGIN-LEFT: 8.312pt; WIDTH: = 47.875pt; TOP: auto; HEIGHT: 73.062pt; mso-next-textbox: = #_x0000_s1031"><![if !mso]> <TABLE cellSpacing=3D0 cellPadding=3D0 width=3D"100%"> <TBODY> <TR> <TD><![endif]> <DIV> <H3 style=3D"TEXT-ALIGN: center" align=3Dcenter><SPAN=20 style=3D"FONT-SIZE: 10pt">B</SPAN><SPAN=20 style=3D"FONT-SIZE: 10pt; FONT-FAMILY: 'Times New Roman'; = mso-bidi-font-family: Arial"><o:p></o:p></SPAN></H3> <P class=3DMsoNormal style=3D"TEXT-ALIGN: center" = align=3Dcenter><SPAN=20 class=3DGramE><SPAN style=3D"FONT-SIZE: 10pt">o</SPAN></SPAN><SPAN = style=3D"FONT-SIZE: 10pt; FONT-FAMILY: 'Times New = Roman'"><o:p></o:p></SPAN></P> <P class=3DMsoNormal style=3D"TEXT-ALIGN: center" = align=3Dcenter><SPAN=20 class=3DGramE><SPAN style=3D"FONT-SIZE: 10pt">b</SPAN></SPAN><SPAN = style=3D"FONT-SIZE: 10pt; FONT-FAMILY: 'Times New = Roman'"><o:p></o:p></SPAN></P> <P class=3DMsoNormal style=3D"TEXT-ALIGN: center" = align=3Dcenter><SPAN=20 style=3D"FONT-SIZE: 10pt"><o:p> </o:p></SPAN></P> <P class=3DMsoNormal style=3D"TEXT-ALIGN: center" = align=3Dcenter><SPAN=20 class=3DGramE><SPAN=20 style=3D"FONT-SIZE: 10pt">h<SUP>1000</SUP>(</SPAN></SPAN><SPAN=20 style=3D"FONT-SIZE: 10pt">pwd</SPAN>)</P> <P class=3DMsoNormal style=3D"TEXT-ALIGN: center"=20 align=3Dcenter><o:p> </o:p></P></DIV><![if = !mso]></TD></TR></TBODY></TABLE><![endif]></v:textbox></v:rect><v:line=20 id=3D_x0000_s1032 style=3D"POSITION: absolute" from =3D "2880,12240" to = =3D=20 "4500,12240"><v:stroke endarrow =3D "block"></v:stroke></v:line><v:line=20 id=3D_x0000_s1033 style=3D"POSITION: absolute; flip: x" from =3D = "2880,12780" to =3D=20 "4500,12780"><v:stroke endarrow =3D "block"></v:stroke></v:line><v:line=20 id=3D_x0000_s1034 style=3D"POSITION: absolute" from =3D "2880,13320" to = =3D=20 "4500,13320"><v:stroke endarrow =3D "block"></v:stroke></v:line><w:wrap = type =3D=20 "square"></w:wrap></v:group><![endif]--><![if !vml]><img width=3D234 = height=3D126 src=3D"Solutions-IV_files/image001.gif" align=3Dleft = v:shapes=3D"_x0000_s1026 _x0000_s1027 _x0000_s1028 _x0000_s1029 = _x0000_s1030 _x0000_s1031 _x0000_s1032 _x0000_s1033 = _x0000_s1034"><![endif]></P> <P class=3DMsoNormal><o:p> </o:p></P> <P class=3DMsoNormal><o:p> </o:p></P> <P class=3DMsoNormal><o:p> </o:p></P> <P class=3DMsoNormal><o:p> </o:p></P> <P class=3DMsoNormal><SPAN class=3DGramE><SPAN=20 style=3D"FONT-FAMILY: 'Times New Roman'">h(</SPAN></SPAN><SPAN=20 style=3D"FONT-FAMILY: 'Times New Roman'">h<SUP>999</SUP>(pwd)) ?=3D=20 h<SUP>1000</SUP>(pwd)<o:p></o:p></SPAN></P> <P class=3DMsoNormal style=3D"MARGIN-LEFT: 200pt"><SPAN=20 style=3D"FONT-FAMILY: 'Times New Roman'"><SPAN=20 style=3D"mso-spacerun: yes"> </SPAN>Replaces <SPAN=20 class=3DGramE>h<SUP>1000</SUP>(</SPAN>pwd) with=20 h<SUP>999</SUP>(pwd)<o:p></o:p></SPAN></P> <P class=3DMsoNormal style=3D"MARGIN-LEFT: 200pt"><SPAN=20 style=3D"FONT-FAMILY: 'Times New Roman'"><o:p> </o:p></SPAN></P> <P class=3DMsoNormal><!--[if gte vml 1]><v:shape id=3D_x0000_s1035=20 style=3D"MARGIN-TOP: 9.55pt; Z-INDEX: 2; MARGIN-LEFT: -144.4pt; WIDTH: = 63pt; POSITION: absolute; HEIGHT: 18pt"=20 type =3D "#_x0000_t202" coordsize =3D "21600,21600" stroked =3D = "f"></v:shape><![endif]--><![if !vml]><span style=3D'mso-ignore:vglayout;position:relative;z-index:2;left:-193px;top:= 12px; width:88px;height:40px'> <table cellpadding=3D0 cellspacing=3D0> <tr> <td width=3D88 height=3D28 bgcolor=3Dwhite = style=3D'vertical-align:top;background: white'><![endif]><![if !mso]><SPAN=20 style=3D"Z-INDEX: 2; POSITION: absolute; mso-ignore: vglayout"> <TABLE cellSpacing=3D0 cellPadding=3D0 width=3D"100%"> <TBODY> <TR> <TD><![endif]> <DIV class=3Dshape=20 style=3D"PADDING-RIGHT: 7.2pt; PADDING-LEFT: 7.2pt; = PADDING-BOTTOM: 3.6pt; PADDING-TOP: 3.6pt"=20 v:shape =3D "_x0000_s1035"> <P class=3DMsoNormal>S/KEY</P></DIV><![if = !mso]></TD></TR></TBODY></TABLE></SPAN><![endif]><![if !mso & = !vml]> <![endif]><![if !vml]></td> </tr> </table> </span><![endif]><SPAN=20 style=3D"FONT-FAMILY: 'Times New Roman'"><o:p> </o:p></SPAN></P><BR = style=3D"mso-ignore: vglayout" clear=3Dall> <P class=3DMsoNormal=20 style=3D"MARGIN-LEFT: 0.5in; WORD-BREAK: break-all; TEXT-INDENT: = -0.25in; TEXT-ALIGN: justify; mso-list: l3 level1 lfo5; tab-stops: list = .5in; mso-hyphenate: auto"><![if !supportLists]><SPAN=20 style=3D"FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 'Times = New Roman'"><SPAN=20 style=3D"mso-list: Ignore">b)<SPAN=20 style=3D"FONT: 7pt 'Times New Roman'">     =20 </SPAN></SPAN></SPAN><![endif]><SPAN style=3D"FONT-FAMILY: 'Times New = Roman'">The=20 Lamport scheme is secure against eavesdropping since the password is = never sent=20 in the clear, only the hash (or hash chain) of the password is = communicated.=20 <o:p></o:p></SPAN></P> <P class=3DMsoNormal=20 style=3D"MARGIN-LEFT: 0.5in; WORD-BREAK: break-all; TEXT-INDENT: = -0.25in; TEXT-ALIGN: justify; mso-list: l3 level1 lfo5; tab-stops: list = .5in; mso-hyphenate: auto"><![if !supportLists]><SPAN=20 style=3D"FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 'Times = New Roman'"><SPAN=20 style=3D"mso-list: Ignore">c)<SPAN=20 style=3D"FONT: 7pt 'Times New Roman'">     =20 </SPAN></SPAN></SPAN><![endif]><SPAN style=3D"FONT-FAMILY: 'Times New = Roman'">Even=20 though the password is not held in Bob=92s database, the hash chain of = the=20 password, <SPAN class=3DSpellE><SPAN = class=3DGramE>h<SUP>n</SUP></SPAN></SPAN><SPAN=20 class=3DGramE>(</SPAN>pwd) is, and so an attacker can do an offline = dictionary=20 attack by repeatedly making a guess and comparing <SPAN=20 class=3DSpellE>h<SUP>n</SUP></SPAN>(guess) against the stored value.=20 <o:p></o:p></SPAN></P> <P class=3DMsoNormal=20 style=3D"MARGIN-LEFT: 0.5in; TEXT-INDENT: -0.25in; mso-list: l3 level1 = lfo5; tab-stops: list .5in"><![if !supportLists]><SPAN=20 style=3D"FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 'Times = New Roman'"><SPAN=20 style=3D"mso-list: Ignore">d)<SPAN=20 style=3D"FONT: 7pt 'Times New Roman'">     =20 </SPAN></SPAN></SPAN><![endif]><SPAN style=3D"FONT-FAMILY: 'Times New = Roman'">In=20 the small n attack an intruder impersonates Bob and when=20 </SPAN><st1:City><st1:place><SPAN=20 style=3D"FONT-FAMILY: 'Times New = Roman'">Alice</SPAN></st1:place></st1:City><SPAN=20 style=3D"FONT-FAMILY: 'Times New Roman'"> attempts to authenticate, = sends back a=20 small value for n, like 50. When </SPAN><st1:City><st1:place><SPAN=20 style=3D"FONT-FAMILY: 'Times New = Roman'">Alice</SPAN></st1:place></st1:City><SPAN=20 style=3D"FONT-FAMILY: 'Times New Roman'"> responds with <SPAN=20 class=3DGramE>h<SUP>50</SUP>(</SPAN>pwd) then the intruder can utilize = this to=20 impersonate </SPAN><st1:City><st1:place><SPAN=20 style=3D"FONT-FAMILY: 'Times New = Roman'">Alice</SPAN></st1:place></st1:City><SPAN=20 style=3D"FONT-FAMILY: 'Times New Roman'">, assuming the actual n at Bob = is greater=20 than 50.<o:p></o:p></SPAN></P> <P class=3DMsoNormal><SPAN=20 style=3D"FONT-FAMILY: 'Times New Roman'"><o:p> </o:p></SPAN></P> <P class=3DMsoNormal><SPAN style=3D"FONT-FAMILY: 'Times New Roman'">3) = <B=20 style=3D"mso-bidi-font-weight: normal">Sessions = Keys</B><o:p></o:p></SPAN></P> <P class=3DMsoNormal><o:p> </o:p></P> <P class=3DMsoNormal style=3D"MARGIN-LEFT: 21pt">a) </P> <P class=3DMsoNormal style=3D"MARGIN-LEFT: 21pt"><o:p> </o:p></P> <P class=3DMsoNormal style=3D"MARGIN-LEFT: 21pt"><SPAN class=3DGramE><I=20 style=3D"mso-bidi-font-style: normal">K<SUB>AB</SUB>(</I></SPAN><I=20 style=3D"mso-bidi-font-style: normal">K<SUB>AB</SUB>) </I>is not a good = choice,=20 because this choice of session key would result in the same session key = for all=20 sessions. And it is advisable to have unique session keys for different=20 sessions.</P> <P class=3DMsoNormal style=3D"MARGIN-LEFT: 21pt"><o:p> </o:p></P> <P class=3DMsoNormal style=3D"MARGIN-LEFT: 21pt"><SPAN class=3DGramE><I=20 style=3D"mso-bidi-font-style: normal">R(</I></SPAN><I=20 style=3D"mso-bidi-font-style: normal">K<SUB>AB</SUB>)<SPAN=20 style=3D"mso-spacerun: yes">  </SPAN></I>is a bad choice, since R = was sent on=20 the clear. Thus the eavesdropper who obtains <SPAN class=3DGramE><I=20 style=3D"mso-bidi-font-style: normal">R(</I></SPAN><I=20 style=3D"mso-bidi-font-style: normal">K<SUB>AB</SUB>)<SPAN=20 style=3D"mso-spacerun: yes">  </SPAN></I>can decrypt it with R and = obtain the=20 shared secret.</P> <P class=3DMsoNormal style=3D"MARGIN-LEFT: 21pt"><o:p> </o:p></P> <P class=3DMsoNormal style=3D"MARGIN-LEFT: 21pt"><I=20 style=3D"mso-bidi-font-style: normal">R</I><I=20 style=3D"mso-bidi-font-style: normal"><SPAN=20 style=3D"FONT-FAMILY: Symbol; mso-ascii-font-family: 'Nimbus Roman No9 = L'; mso-hansi-font-family: 'Nimbus Roman No9 L'; mso-char-type: symbol; = mso-symbol-font-family: Symbol"><SPAN=20 style=3D"mso-char-type: symbol; mso-symbol-font-family: = Symbol">=C5</SPAN></SPAN>K<SUB>AB=20 </SUB></I>is not secure, because once the session key is discovered the = intruder=20 will also know the shared secret (because R was sent on the clear and <I = style=3D"mso-bidi-font-style: normal">K<SUB>AB </SUB>=3D R</I><I=20 style=3D"mso-bidi-font-style: normal"><SPAN=20 style=3D"FONT-FAMILY: Symbol; mso-ascii-font-family: 'Nimbus Roman No9 = L'; mso-hansi-font-family: 'Nimbus Roman No9 L'; mso-char-type: symbol; = mso-symbol-font-family: Symbol"><SPAN=20 style=3D"mso-char-type: symbol; mso-symbol-font-family: = Symbol">=C5</SPAN></SPAN>K<SUB>AB</SUB></I><I=20 style=3D"mso-bidi-font-style: normal"><SPAN=20 style=3D"FONT-FAMILY: Symbol; mso-ascii-font-family: 'Nimbus Roman No9 = L'; mso-hansi-font-family: 'Nimbus Roman No9 L'; mso-char-type: symbol; = mso-symbol-font-family: Symbol"><SPAN=20 style=3D"mso-char-type: symbol; mso-symbol-font-family: = Symbol">=C5</SPAN></SPAN>R</I>.)</P> <P class=3DMsoNormal><o:p> </o:p></P> <P class=3DMsoNormal><SPAN=20 style=3D"mso-spacerun: yes">       = </SPAN>b) The=20 main reasons for using session keys are: </P> <P class=3DMsoNormal><o:p> </o:p></P> <P class=3DMsoNormal style=3D"MARGIN-LEFT: 0.5in">If somebody is = performing attack,=20 the more information he gets encrypted with the same key, the more = likely he is=20 to succeed. Thus it is wise to use the secret shared key (or = authentication key)=20 only when establishing connection to generate a per-session key for = every new=20 session</P> <P class=3DMsoNormal><o:p> </o:p></P> <P class=3DMsoNormal style=3D"MARGIN-LEFT: 0.5in">If the shared secret = is=20 compromised, but separate session keys were used for encrypting past = sessions it=20 would not be possible for the intruder who discovers the shared secret = to=20 decrypt recorded past sessions. </P> <P class=3DMsoNormal><o:p> </o:p></P> <P class=3DMsoNormal style=3D"MARGIN-LEFT: 0.5in">When dealing with = untrusted=20 software, it is better to hand it a session key that is only valid for = one=20 session, than revealing the long-term secret key to the application.</P> <P class=3DMsoNormal><o:p> </o:p></P> <P class=3DMsoNormal><!--[if gte vml 1]><v:shape id=3D_x0000_s1037=20 style=3D"MARGIN-TOP: 6.65pt; Z-INDEX: 3; MARGIN-LEFT: 99pt; WIDTH: 45pt; = POSITION: absolute; HEIGHT: 27pt"=20 type =3D "#_x0000_t202" coordsize =3D "21600,21600" o:regroupid =3D "1" = stroked =3D=20 "f"><v:textbox=20 style=3D"MARGIN-TOP: 4.218pt; LEFT: auto; MARGIN-LEFT: 7.187pt; WIDTH: = 30.625pt; TOP: auto; HEIGHT: 19.812pt; mso-next-textbox: = #_x0000_s1037"></v:textbox></v:shape><![endif]--><![if !vml]><span = style=3D'mso-ignore:vglayout;position: absolute;z-index:3;margin-left:132px;margin-top:8px;width:64px;height:40p= x'> <table cellpadding=3D0 cellspacing=3D0> <tr> <td width=3D64 height=3D40 bgcolor=3Dwhite = style=3D'vertical-align:top;background: white'><![endif]><![if !mso]><SPAN=20 style=3D"Z-INDEX: 3; POSITION: absolute; mso-ignore: vglayout"> <TABLE cellSpacing=3D0 cellPadding=3D0 width=3D"100%"> <TBODY> <TR> <TD><![endif]> <DIV class=3Dshape=20 style=3D"PADDING-RIGHT: 7.2pt; PADDING-LEFT: 7.2pt; = PADDING-BOTTOM: 3.6pt; PADDING-TOP: 3.6pt"=20 v:shape =3D "_x0000_s1037"> <P class=3DMsoNormal><SPAN class=3DGramE><I=20 style=3D"mso-bidi-font-style: normal">string</I></SPAN><I=20 style=3D"mso-bidi-font-style: = normal"><o:p></o:p></I></P></DIV><![if = !mso]></TD></TR></TBODY></TABLE></SPAN><![endif]><![if !mso & = !vml]> <![endif]><![if !vml]></td> </tr> </table> </span><![endif]><SPAN style=3D"mso-spacerun: = yes">     =20 </SPAN>c) </P> <P class=3DMsoNormal><!--[if gte vml 1]><v:shape id=3D_x0000_s1039=20 style=3D"MARGIN-TOP: 34.55pt; Z-INDEX: 4; MARGIN-LEFT: 81pt; WIDTH: = 108pt; POSITION: absolute; HEIGHT: 27pt"=20 type =3D "#_x0000_t202" coordsize =3D "21600,21600" o:regroupid =3D "1" = stroked =3D=20 "f"><v:textbox=20 style=3D"MARGIN-TOP: 3.625pt; LEFT: auto; MARGIN-LEFT: 7.187pt; WIDTH: = 93.625pt; TOP: auto; HEIGHT: 19.812pt; mso-next-textbox: = #_x0000_s1039"><![if !mso]> <TABLE cellSpacing=3D0 cellPadding=3D0 width=3D"100%"> <TBODY> <TR> <TD><![endif]> <DIV> <P class=3DMsoNormal><SPAN class=3DGramE><I=20 style=3D"mso-bidi-font-style: normal">key</I></SPAN><I=20 style=3D"mso-bidi-font-style: normal"> </I><I=20 style=3D"mso-bidi-font-style: normal"><SPAN=20 style=3D"FONT-FAMILY: Symbol; mso-ascii-font-family: 'Nimbus Roman = No9 L'; mso-hansi-font-family: 'Nimbus Roman No9 L'; mso-char-type: = symbol; mso-symbol-font-family: Symbol"><SPAN=20 style=3D"mso-char-type: symbol; mso-symbol-font-family: = Symbol">=C5</SPAN></SPAN><SPAN=20 style=3D"mso-spacerun: yes">  = </SPAN>string<o:p></o:p></I></P></DIV><![if = !mso]></TD></TR></TBODY></TABLE><![endif]></v:textbox></v:shape><v:rect=20 id=3D_x0000_s1040=20 style=3D"MARGIN-TOP: 1.85pt; Z-INDEX: 5; MARGIN-LEFT: 45pt; WIDTH: 36pt; = POSITION: absolute; HEIGHT: 81pt"=20 coordsize =3D "21600,21600" o:regroupid =3D "1"><v:textbox=20 style=3D"MARGIN-TOP: 5.062pt; LEFT: auto; MARGIN-LEFT: 8.312pt; WIDTH: = 20.875pt; TOP: auto; HEIGHT: 73.062pt; mso-next-textbox: = #_x0000_s1040"><![if !mso]> <TABLE cellSpacing=3D0 cellPadding=3D0 width=3D"100%"> <TBODY> <TR> <TD><![endif]> <DIV> <H3 style=3D"TEXT-ALIGN: center" align=3Dcenter><SPAN=20 style=3D"FONT-SIZE: 9pt">A</SPAN><SPAN=20 style=3D"FONT-SIZE: 9pt; FONT-FAMILY: 'Times New Roman'; = mso-bidi-font-family: Arial"><o:p></o:p></SPAN></H3> <P class=3DMsoNormal style=3D"TEXT-ALIGN: center" = align=3Dcenter><SPAN=20 class=3DGramE><SPAN style=3D"FONT-SIZE: 9pt">l</SPAN></SPAN><SPAN=20 style=3D"FONT-SIZE: 9pt; FONT-FAMILY: 'Times New = Roman'"><o:p></o:p></SPAN></P> <P class=3DMsoNormal style=3D"TEXT-ALIGN: center" = align=3Dcenter><SPAN=20 class=3DSpellE><SPAN class=3DGramE><SPAN=20 style=3D"FONT-SIZE: 9pt">i</SPAN></SPAN></SPAN><SPAN=20 style=3D"FONT-SIZE: 9pt; FONT-FAMILY: 'Times New = Roman'"><o:p></o:p></SPAN></P> <P class=3DMsoNormal style=3D"TEXT-ALIGN: center" = align=3Dcenter><SPAN=20 class=3DGramE><SPAN style=3D"FONT-SIZE: 9pt">c</SPAN></SPAN><SPAN=20 style=3D"FONT-SIZE: 9pt; FONT-FAMILY: 'Times New = Roman'"><o:p></o:p></SPAN></P> <P class=3DMsoNormal style=3D"TEXT-ALIGN: center" = align=3Dcenter><SPAN=20 class=3DGramE><SPAN style=3D"FONT-SIZE: 9pt">e</SPAN></SPAN><SPAN=20 style=3D"FONT-SIZE: 9pt"><o:p></o:p></SPAN></P> <P class=3DMsoNormal style=3D"TEXT-ALIGN: center" = align=3Dcenter><SPAN=20 class=3DGramE><SPAN style=3D"FONT-SIZE: = 9pt">key</SPAN></SPAN></P></DIV><![if = !mso]></TD></TR></TBODY></TABLE><![endif]></v:textbox></v:rect><v:rect=20 id=3D_x0000_s1041=20 style=3D"MARGIN-TOP: 1.85pt; Z-INDEX: 6; MARGIN-LEFT: 162pt; WIDTH: = 63pt; POSITION: absolute; HEIGHT: 81pt"=20 coordsize =3D "21600,21600" o:regroupid =3D "1"><v:textbox=20 style=3D"MARGIN-TOP: 5.062pt; LEFT: auto; MARGIN-LEFT: 8.312pt; WIDTH: = 47.875pt; TOP: auto; HEIGHT: 73.062pt; mso-next-textbox: = #_x0000_s1041"><![if !mso]> <TABLE cellSpacing=3D0 cellPadding=3D0 width=3D"100%"> <TBODY> <TR> <TD><![endif]> <DIV> <H3 style=3D"TEXT-ALIGN: center" align=3Dcenter><SPAN=20 style=3D"FONT-SIZE: 10pt">B</SPAN><SPAN=20 style=3D"FONT-SIZE: 10pt; FONT-FAMILY: 'Times New Roman'; = mso-bidi-font-family: Arial"><o:p></o:p></SPAN></H3> <P class=3DMsoNormal style=3D"TEXT-ALIGN: center" = align=3Dcenter><SPAN=20 class=3DGramE><SPAN style=3D"FONT-SIZE: 10pt">o</SPAN></SPAN><SPAN = style=3D"FONT-SIZE: 10pt; FONT-FAMILY: 'Times New = Roman'"><o:p></o:p></SPAN></P> <P class=3DMsoNormal style=3D"TEXT-ALIGN: center" = align=3Dcenter><SPAN=20 class=3DGramE><SPAN style=3D"FONT-SIZE: 10pt">b</SPAN></SPAN><SPAN = style=3D"FONT-SIZE: 10pt; FONT-FAMILY: 'Times New = Roman'"><o:p></o:p></SPAN></P> <P class=3DMsoNormal style=3D"TEXT-ALIGN: center" = align=3Dcenter><SPAN=20 style=3D"FONT-SIZE: 10pt"><o:p> </o:p></SPAN></P> <P class=3DMsoNormal style=3D"TEXT-ALIGN: center" = align=3Dcenter><SPAN=20 class=3DGramE><SPAN style=3D"FONT-SIZE: = 10pt">key</SPAN></SPAN></P> <P class=3DMsoNormal style=3D"TEXT-ALIGN: center"=20 align=3Dcenter><o:p> </o:p></P></DIV><![if = !mso]></TD></TR></TBODY></TABLE><![endif]></v:textbox></v:rect><v:line=20 id=3D_x0000_s1042 style=3D"Z-INDEX: 7; POSITION: absolute" from =3D = "81pt,10.875pt" to=20 =3D "162pt,10.875pt" o:regroupid =3D "1"><v:stroke endarrow =3D=20 "block"></v:stroke></v:line><v:line id=3D_x0000_s1043=20 style=3D"Z-INDEX: 8; POSITION: absolute; flip: x" from =3D "81pt,52.5pt" = to =3D=20 "162pt,52.5pt" o:regroupid =3D "1"><v:stroke endarrow =3D=20 "block"></v:stroke></v:line><![endif]--><![if !vml]><span = style=3D'mso-ignore:vglayout'> <table cellpadding=3D0 cellspacing=3D0 align=3Dleft> <tr> <td width=3D59 height=3D1></td> </tr> <tr> <td></td> <td><img width=3D246 height=3D114 = src=3D"Solutions-IV_files/image002.gif" v:shapes=3D"_x0000_s1039 = _x0000_s1040 _x0000_s1041 _x0000_s1042 _x0000_s1043"></td> </tr> </table> </span><![endif]><o:p> </o:p></P> <P class=3DMsoNormal><o:p> </o:p></P> <P class=3DMsoNormal><o:p> </o:p></P> <P class=3DMsoNormal><o:p> </o:p></P> <P class=3DMsoNormal><o:p> </o:p></P> <P class=3DMsoNormal><o:p> </o:p></P> <P class=3DMsoNormal><o:p> </o:p></P><BR style=3D"mso-ignore: = vglayout"=20 clear=3Dall> <P class=3DMsoNormal style=3D"MARGIN-LEFT: 0.5in">If during this = exchange Trudy was=20 listening on the channel, Trudy would now be able to obtain the key, = since <I=20 style=3D"mso-bidi-font-style: normal">key =3D key </I><I=20 style=3D"mso-bidi-font-style: normal"><SPAN=20 style=3D"FONT-FAMILY: Symbol; mso-ascii-font-family: 'Nimbus Roman No9 = L'; mso-hansi-font-family: 'Nimbus Roman No9 L'; mso-char-type: symbol; = mso-symbol-font-family: Symbol"><SPAN=20 style=3D"mso-char-type: symbol; mso-symbol-font-family: = Symbol">=C5</SPAN></SPAN><SPAN=20 style=3D"mso-spacerun: yes">  </SPAN>string </I><I=20 style=3D"mso-bidi-font-style: normal"><SPAN=20 style=3D"FONT-FAMILY: Symbol; mso-ascii-font-family: 'Nimbus Roman No9 = L'; mso-hansi-font-family: 'Nimbus Roman No9 L'; mso-char-type: symbol; = mso-symbol-font-family: Symbol"><SPAN=20 style=3D"mso-char-type: symbol; mso-symbol-font-family: = Symbol">=C5</SPAN></SPAN><SPAN=20 style=3D"mso-spacerun: yes">  </SPAN>string.</I></P> <P class=3DMsoNormal><o:p> </o:p></P> <P class=3DMsoNormal=20 style=3D"MARGIN-LEFT: 0.5in; TEXT-INDENT: -0.25in; mso-list: l5 level1 = lfo8; tab-stops: list .5in"><![if !supportLists]><SPAN=20 style=3D"mso-fareast-font-family: 'Nimbus Roman No9 L'; = mso-bidi-font-family: 'Nimbus Roman No9 L'"><SPAN=20 style=3D"mso-list: Ignore">d)<SPAN=20 style=3D"FONT: 7pt 'Times New Roman'">     =20 </SPAN></SPAN></SPAN><![endif]>In this case <I=20 style=3D"mso-bidi-font-style: normal">known plain text</I> or <I=20 style=3D"mso-bidi-font-style: normal">offline </I>attack can be = performed. Some=20 <SPAN class=3DGramE>encryption</SPAN> schemes are quite robust to this = type of=20 attack, but in many cases a few <I=20 style=3D"mso-bidi-font-style: normal"><plaintext, cipher text></I> = suffice=20 to calculate the secret key. Thus it is advisable to keep <I=20 style=3D"mso-bidi-font-style: normal"><plaintext, cipher text></I> = pairs=20 secret.</P> <P class=3DMsoNormal><o:p> </o:p></P> <P class=3DMsoNormal=20 style=3D"MARGIN-LEFT: 3pt; mso-pagination: widow-orphan; mso-hyphenate: = auto">4)=20 <SPAN class=3DSpellE>Otway</SPAN>-Rees (slightly modified)</P> <P class=3DMsoNormal><SPAN=20 style=3D"mso-spacerun: yes">      </SPAN>Alice = <SPAN=20 style=3D"FONT-FAMILY: Wingdings; mso-ascii-font-family: 'Nimbus Roman = No9 L'; mso-hansi-font-family: 'Nimbus Roman No9 L'; mso-char-type: = symbol; mso-symbol-font-family: Wingdings; mso-no-proof: yes"><SPAN=20 style=3D"mso-char-type: symbol; mso-symbol-font-family: = Wingdings">=E0</SPAN></SPAN>=20 Bob: Alice, Bob, <SPAN class=3DGramE><I=20 style=3D"mso-bidi-font-style: normal">K<SUB>A</SUB>(</I></SPAN><SPAN=20 class=3DSpellE><I=20 style=3D"mso-bidi-font-style: = normal">N<SUB>A</SUB></I>,Alice,Bob</SPAN><I=20 style=3D"mso-bidi-font-style: normal">)</I></P> <P class=3DMsoNormal><SPAN=20 style=3D"mso-spacerun: yes">      </SPAN>Bob = <SPAN=20 style=3D"FONT-FAMILY: Wingdings; mso-ascii-font-family: 'Nimbus Roman = No9 L'; mso-hansi-font-family: 'Nimbus Roman No9 L'; mso-char-type: = symbol; mso-symbol-font-family: Wingdings; mso-no-proof: yes"><SPAN=20 style=3D"mso-char-type: symbol; mso-symbol-font-family: = Wingdings">=E0</SPAN></SPAN>=20 KDC: <SPAN class=3DGramE><I=20 style=3D"mso-bidi-font-style: normal">K<SUB>B</SUB>(</I></SPAN><I=20 style=3D"mso-bidi-font-style: normal">N<SUB>B</SUB>,</I> Alice, Bob<I=20 style=3D"mso-bidi-font-style: normal">)</I>, <I=20 style=3D"mso-bidi-font-style: normal">K<SUB>A</SUB>(<SPAN=20 class=3DSpellE>N<SUB>A</SUB>,<SPAN=20 style=3D"FONT-STYLE: normal">Alice,Bob</SPAN></SPAN>)</I></P> <P class=3DMsoNormal><SPAN=20 style=3D"mso-spacerun: yes">      </SPAN>KDC = <SPAN=20 style=3D"FONT-FAMILY: Wingdings; mso-ascii-font-family: 'Nimbus Roman = No9 L'; mso-hansi-font-family: 'Nimbus Roman No9 L'; mso-char-type: = symbol; mso-symbol-font-family: Wingdings; mso-no-proof: yes"><SPAN=20 style=3D"mso-char-type: symbol; mso-symbol-font-family: = Wingdings">=E0</SPAN></SPAN>=20 Bob: <SPAN class=3DGramE><I=20 style=3D"mso-bidi-font-style: normal">K<SUB>A</SUB>(</I></SPAN><I=20 style=3D"mso-bidi-font-style: normal">N<SUB>A</SUB>,K<SUB>AB</SUB>),=20 K<SUB>B</SUB>(N<SUB>B</SUB>,K<SUB>AB</SUB>)</I></P> <P class=3DMsoNormal><SPAN=20 style=3D"mso-spacerun: yes">      </SPAN>Bob = <SPAN=20 style=3D"FONT-FAMILY: Wingdings; mso-ascii-font-family: 'Nimbus Roman = No9 L'; mso-hansi-font-family: 'Nimbus Roman No9 L'; mso-char-type: = symbol; mso-symbol-font-family: Wingdings; mso-no-proof: yes"><SPAN=20 style=3D"mso-char-type: symbol; mso-symbol-font-family: = Wingdings">=E0</SPAN></SPAN>=20 Alice: <SPAN class=3DGramE><I=20 style=3D"mso-bidi-font-style: normal">K<SUB>A</SUB>(</I></SPAN><I=20 style=3D"mso-bidi-font-style: = normal">N<SUB>A</SUB>,K<SUB>AB</SUB>)</I></P> <P class=3DMsoNormal><SPAN=20 style=3D"mso-spacerun: yes">      </SPAN>Alice = <SPAN=20 style=3D"FONT-FAMILY: Wingdings; mso-ascii-font-family: 'Nimbus Roman = No9 L'; mso-hansi-font-family: 'Nimbus Roman No9 L'; mso-char-type: = symbol; mso-symbol-font-family: Wingdings; mso-no-proof: yes"><SPAN=20 style=3D"mso-char-type: symbol; mso-symbol-font-family: = Wingdings">=E0</SPAN></SPAN>=20 Bob: <SPAN class=3DGramE><I=20 style=3D"mso-bidi-font-style: normal">K<SUB>AB</SUB>(</I></SPAN>Anything = recognizable<I style=3D"mso-bidi-font-style: normal">)</I></P> <P class=3DMsoNormal><o:p> </o:p></P> <P class=3DMsoNormal><o:p> </o:p></P> <P class=3DMsoNormal=20 style=3D"MARGIN-LEFT: 0.5in; TEXT-INDENT: -0.25in; mso-list: l2 level1 = lfo7; tab-stops: list .5in"><![if !supportLists]><SPAN=20 style=3D"FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 'Times = New Roman'"><SPAN=20 style=3D"mso-list: Ignore">a)<SPAN=20 style=3D"FONT: 7pt 'Times New Roman'">     =20 </SPAN></SPAN></SPAN><![endif]><SPAN style=3D"FONT-FAMILY: 'Times New = Roman'">The=20 KDC checks that the first part of the message is encrypted with = K<SUB>B</SUB>,=20 Bob=92s key, and that the names in the message, = =93</SPAN><st1:City><st1:place><SPAN=20 style=3D"FONT-FAMILY: 'Times New = Roman'">Alice</SPAN></st1:place></st1:City><SPAN=20 style=3D"FONT-FAMILY: 'Times New Roman'">=94, =93Bob=94 match with those = in the second=20 part which is encrypted with </SPAN><st1:City><st1:place><SPAN=20 style=3D"FONT-FAMILY: 'Times New = Roman'">Alice</SPAN></st1:place></st1:City><SPAN=20 style=3D"FONT-FAMILY: 'Times New Roman'">=92s key, K<SUB>A</SUB>. This = ensures that=20 only bob could have generated this message. (Note that the possibility = of a=20 replay attack is prevented down the line when = </SPAN><st1:City><st1:place><SPAN=20 style=3D"FONT-FAMILY: 'Times New = Roman'">Alice</SPAN></st1:place></st1:City><SPAN=20 style=3D"FONT-FAMILY: 'Times New Roman'"> checks the nonce N<SUB>A</SUB> = in Bob=92s=20 reply). <o:p></o:p></SPAN></P> <P class=3DMsoNormal=20 style=3D"MARGIN-LEFT: 0.5in; TEXT-INDENT: -0.25in; mso-list: l2 level1 = lfo7; tab-stops: list .5in"><![if !supportLists]><SPAN=20 style=3D"FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 'Times = New Roman'"><SPAN=20 style=3D"mso-list: Ignore">b)<SPAN=20 style=3D"FONT: 7pt 'Times New Roman'">     =20 </SPAN></SPAN></SPAN><![endif]><st1:City><st1:place><SPAN=20 style=3D"FONT-FAMILY: 'Times New = Roman'">Alice</SPAN></st1:place></st1:City><SPAN=20 style=3D"FONT-FAMILY: 'Times New Roman'"> checks that the message is = encrypted=20 with the key <SPAN class=3DGramE>K<SUB>A</SUB>,</SPAN> this ensures that = it was=20 generated by the KDC, she then checks that the message contains = N<SUB>A</SUB>,=20 this proves the freshness of the message and thus she knows Bob has = actually=20 talked to the KDC and not just used an old message from the KDC.=20 <o:p></o:p></SPAN></P> <P class=3DMsoBodyTextIndent=20 style=3D"MARGIN-LEFT: 0.5in; TEXT-INDENT: -0.25in; mso-list: l2 level1 = lfo7; tab-stops: list .5in"><![if !supportLists]><SPAN=20 style=3D"mso-fareast-font-family: 'Times New Roman'"><SPAN=20 style=3D"mso-list: Ignore">c)<SPAN=20 style=3D"FONT: 7pt 'Times New Roman'">     =20 </SPAN></SPAN></SPAN><![endif]>There is no need for a separate round for = authenticating Bob to <st1:City><st1:place>Alice</st1:place></st1:City> = because=20 <st1:City><st1:place>Alice</st1:place></st1:City> ensures that she is = talking to=20 Bob from his reply. Bob=92s reply must be encrypted with=20 <st1:City><st1:place>Alice</st1:place></st1:City>=92s key, = K<SUB>A</SUB>, and=20 containing her nonce, N<SUB>A,</SUB> so she knows he must have been=20 authenticated by the KDC. (Note that a man in the middle attack by Trudy = is=20 possible but so long as Alice and Bob use the session key K<SUB>AB</SUB> = to=20 encrypt the rest of their conversation Trudy cannot impersonate Bob). = </P> <P class=3DMsoNormal=20 style=3D"MARGIN-LEFT: 0.5in; TEXT-INDENT: -0.25in; mso-list: l2 level1 = lfo7; tab-stops: list .5in"><![if !supportLists]><SPAN=20 style=3D"mso-fareast-font-family: 'Nimbus Roman No9 L'; = mso-bidi-font-family: 'Nimbus Roman No9 L'"><SPAN=20 style=3D"mso-list: Ignore">d)<SPAN=20 style=3D"FONT: 7pt 'Times New Roman'">     =20 </SPAN></SPAN></SPAN><![endif]><SPAN style=3D"FONT-FAMILY: 'Times New = Roman'">If=20 =93Anything recognizable=94 were a fixed message then it would be = possible to infer=20 K<SUB>AB</SUB> by an offline attack that encrypted =93Anything = recognizable=94 with=20 all possible keys and compared against the cipher text. If a random salt = were=20 concatenated to =93Anything recognizable=94 then such an offline attack = would be=20 defeated since there are too many different possibilities to=20 check.</SPAN></P></DIV></BODY></HTML>