CSE 3358 - Lab 5

daughterinsectΤεχνίτη Νοημοσύνη και Ρομποτική

21 Νοε 2013 (πριν από 3 χρόνια και 9 μήνες)

94 εμφανίσεις

CSE 3358
-

Lab
5



Name:______________________




Section 1


Assignment 4 Questions


Discussion of assignment 4




Section 2



Mapping
“Hashing” Data

Structure

t
o
Applications




P
roperties
of Hashing

to Remember
:


1)

H
ash functions
are

deterministic
;

i.e
if

tw
o hashes (according to the same
function) are



different, th
en the two inputs ar
e
different
in some way.


2)

A hashing
function is
not
injective
, i.e. the equality of two hash values ideally strongly


suggests, but does not guarantee, t
he equality of the two inputs.




Note
:

A

function f is said to be injective if it maps distinct x in the domain to distinct y in the


codomain, such that f(x) = y.


Figure 3
:
An injective function.


3)

A good hash function is essential for g
ood hash table performance.





Some

Application
s

of
Hashing
:







1)

Windows

Vista Activation




2)
Digital signature






1
)

Windows Vista Activation:




Product activation
:

is a license validation procedure required by some computer software
programs.

Specifically, product activation refers to a method where a software application
H
ashes

hardware serial numbers and an ID number specific to the product's license (a product
key) to generate a unique Installation ID. Installation ID is sent to the manufac
turer to verify the
authenticity of the product key and determine that the product key is not being used for multiple
installations.


Question 1:

If I uninstall the OS from the computer and I install it again on the same



computer, wi
ll it allow me to reactivate?

What if I install it on another machine?


Question 2:

What guarantees that there will not be any intruder in the middle of the


authentication
process?


Answer
:

Use cryptography.



2
)

Digital S
ignature
:



Some definitions:




Cryptography:

I
s the study of message secrecy
.





Asymmetric
Cryptography(
Public key C
ryptography
)
:

is a form of cryptography in which
a user has a pair of cryptographic keys
-

a public key and a private key. The private key is
kept s
ecret, while the public key may be widely distributed. The keys are related
mathematically, but the private key cannot be practically derived from the public key. A
message encrypted with the public key can only be decrypted with the corresponding
private
key.









The two main branches of
Asymmetric
Cryptography

are:



1)
P
ublic key encryption
: a message encrypted with a user's public key cannot be decrypted by




anyone except the user possessing the c
orresponding private key. This is




used to ensure confidentiality.


2)
Digital S
ignatures
: a message signed with a user's private key can be verified by anyone who has




access to the user's public key, thereby proving that the user signed it and that



the message has not been tampered with. This is used to ensure authenticity.


An analogy for public key encryption is that of

a locked mailbox with a mail slot. The mail slot is
exposed and accessible to the public; its location (the street address) is in essence the public key.
Anyone knowing the street address can go to the door and drop a written message through the slot.
How
ever, only the person who possesses the key can open the mailbox and read the message.


An analogy for digital signatures is the sealing of an envelope with a personal wax seal. The message
can be opened by anyone, but the presence of the seal authenticate
s the sender.



Example:


Figure 1:
A big random number is used to make a public
-
key pair.


Figure 2:
Anyone can encrypt using the public key, but only the holder of the private key can decrypt.
Secrecy depends on the secrecy of the private key.





Fig
ure 3:

Using a private key to encrypt (thus signing) a message; anyone can check the signature using
the public key. Validity depends on private key security.









How is hashing involved?


The most obvious application of a public key encryption system is

confidentiality

and
non
-
repudiation;

a
message which a sender encrypts using the recipient's public key can only be decrypted by the
recipient's paired private key.


Public
-
key digital signature algorithms can be used for sender authentication. For instan
ce, a user can
encrypt a message with his own private key and send it. If another user can successfully decrypt it using
the corresponding public key, this provides assurance that the first user (and no other) sent it.


In practice, a
cryptographic hash v
alue

of the message is
calculated (
as shown in figure 4)
, encrypted
with the private key and sent along with the message (resulting in a cryptographic signature of the
message). The receiver can then verify message
integrity

and origin by calculating the h
ash value of the
received message and comparing it against the decoded signature (the original hash).
If the hash from
the sender and the hash on the receiver side do not match, then the received message is not
identical to the message which the sender "si
gned", or the sender's identity is wrong.


Figure 4:
A hash function at work

Question:

What prevents us from man in the middle attack. Another way said, what prevents a hacker



from finding a message
that has a specific hash value.



Answer:




Preimage A
ttack
:

a preimage attack on a cryptographic hash is an attempt to find a message



that has a specific hash value.
G
iven a fixed message m1, find a different



message m2 su
ch that
hash(m2) = hash(m1).


Solution:


One Way Function:

A
one
-
way function

is a function that is easy to compute but hard to invert


given
the output of the function it is difficult to find any input which yields this output.

Section 3



Problem Solv
ing


[1] Give the contents of the hash table that results when you insert items with the keys


D E M O C R A T in that order into an initially empty table of M = 5 lists, using separate chaining


with unordered lists. Use the hash function 11
k mod M to transform the kth letter of the alphabet


into a table index, e.g., hash(I) = hash(9) = 99 % 5 = 4.



















[2] Give the contents of the hash table that results when you insert items with the keys


R E P U B L I C A N in th
at order into an initially empty table of size M = 16 using linear probing.


Use the hash function 11k mod M to transform the kth letter of the alphabet into a table index.




















[3] Give the contents of the hash table that results when
you insert items with the keys


A N O T H E R X M P L in that order into an initially empty table of size M = 16 using double


hashing. Use the hash function 11k mod M for the initial probe and the second hash function (k mod


3) + 1 for
the search increment.















[4] In separate chaining we usually use one of several data structures for collision resolution.



a.
S
pecify which of the following statements is true:



i . A separate chaining with a tree as the data structure saves

space


ii. A separate chaining with a l
ink list as the data structure
runs faster




b. What is the time complexity to search for a key with separate chaining using a tree as the data


structure for collision resolution?



c. What is the time

complexity to search for a key with separate chaining using a link list as the data


structure for collision resolution?