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
1) = DES
a) =20
64=20
bits
b) =20
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.
c) =20
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 256 different DES keys
d) =20
DES=20
consists of 16 rounds of permutation. There is also an additional =
initial and=20
final permutation.
e) =20
Getting right half is easy: =
Ri =3D Ri+1. To get =
the left=20
half: Li =3D Ri+1 =C5=20
(Ki mangle Ri). We can compute mangle, since =
we know=20
both Ki and =
Ri.=20
Since we also have Ri+1 and since we know that A =C5 B=20
=C5 B=20
=3D A, we can perform the above =C5=20
operation to recover Li. Notice that while recovering Li we did not need =
the mangle=20
to be reversible.
f) =20
3DES (also known as=20
2) Passwords
a)=20
In the Lamport one-time =
password=20
scheme
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
hn-1(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.

h(h999(pwd)) ?=3D=20
h1000(pwd)
Replaces h1000(pwd) with=20
h999(pwd)
S/KEY
b) =20
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
c) =20
Even=20
though the password is not held in Bob=92s database, the hash chain of =
the=20
password, hn(pwd) is, and so an attacker can do an offline =
dictionary=20
attack by repeatedly making a guess and comparing hn(guess) against the stored value.=20
d) =20
In=20
the small n attack an intruder impersonates Bob and when=20
3) =
Sessions =
Keys
a)
KAB(KAB) 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.
R(KAB) is a bad choice, since R = was sent on=20 the clear. Thus the eavesdropper who obtains R(KAB) can decrypt it with R and = obtain the=20 shared secret.
R=C5KAB=20 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 KAB =3D R=C5KAB=C5R.)
= b) The=20 main reasons for using session keys are:
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
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.
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.
string
=20
c)

If during this = exchange Trudy was=20 listening on the channel, Trudy would now be able to obtain the key, = since key =3D key =C5 string =C5 string.
d) =20 In this case known plain text or offline attack can be = performed. Some=20 encryption schemes are quite robust to this = type of=20 attack, but in many cases a few <plaintext, cipher text> = suffice=20 to calculate the secret key. Thus it is advisable to keep <plaintext, cipher text> = pairs=20 secret.
4)=20 Otway-Rees (slightly modified)
Alice = =E0=20 Bob: Alice, Bob, KA(NA,Alice,Bob)
Bob = =E0=20 KDC: KB(NB, Alice, Bob), KA(NA,Alice,Bob)
KDC = =E0=20 Bob: KA(NA,KAB),=20 KB(NB,KAB)
Bob = =E0=20 Alice: KA(NA,KAB)
Alice = =E0=20 Bob: KAB(Anything = recognizable)
a) =20
The=20
KDC checks that the first part of the message is encrypted with =
KB,=20
Bob=92s key, and that the names in the message, =
=93
b) =20
c) =20
There is no need for a separate round for =
authenticating Bob to
d) =20 If=20 =93Anything recognizable=94 were a fixed message then it would be = possible to infer=20 KAB 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.