程序代写 COMP30023: Computer Systems

School of Computing and Information Systems

COMP30023: Computer Systems

Copyright By PowCoder代写 加微信 powcoder

Tutorial Week 6
No tutorial quiz during week 6

Cryptography, PKI

1. Alice and Bob use Diffie-Hellman (DH) key exchange protocol to establish
a common secret for further secure communication. Devise a (hu)man-in-
the-middle attack where Eve can intercept and eavesdrop on the commu-
nication between Alice and Bob without Eve and Bob knowing it.

2. What is a digital certificate?

3. Suppose that a system uses PKI based on a tree-structured hierarchy of
CAs. Alice wants to communicate with Bob, and receives a certificate
from Bob signed by a CA X after establishing a communication channel
with Bob. Suppose Alice has never heard of X but trusts A as a CA. What
steps does Alice take to verify that she is talking to Bob?

4. What are the different validation levels at which certificates are issued?
What criteria must a purchaser of a certificate at each validation level

Bonus/challenge questions

A Consider designing a server for a Website where requests for pages come in
and the requested page is sent back to the client. At most Websites, some
pages are more commonly accessed than other pages. For example, a home
page is accessed far more than a page deeper in the tree structure of the
Website. Web servers use this fact to improve performance by maintaining
a collection of heavily requested pages in main memory to eliminate the
need to go to disk to get them. Such a collection is called a cache and

provides much faster access to data than disk (we will learn more about
caches in the upcoming lectures).

One possibility is to have the server operate as a single thread: The main
loop of the Web server gets a request, examines it, and carries it out to
completion before getting the next one. While waiting for the disk, the
server is idle and does not process any other incoming requests. What
problems does this solution have?

Design a multi-threaded server to improve over a single-threaded design.

B Let f be a collision resistant hash function defined as f : {0, 1}2k →
{0, 1}k. Here, f : {0, 1}2k → {0, 1}k means that a function f takes as an
input a bit string of length 2k and returns a bit string of length k.

Let m be a message of lk bits, split into l blocks of k bits each written as
m = m0 ‖m1 ‖ . . . ‖ml−1. Hence, each block mi, 0 ≤ i < l, contains bits of m in positions ik, ik + 1, . . . , ik + k− 1 where ‖ is an append operator. Let H(m) := f(m1 ‖ f(z0 ‖m0)) where z0 = 0k, i.e., z0 is a string of k 0’s. Why is H not a collision-resistant hash function for inputs l > 2?

程序代写 CS代考 加微信: powcoder QQ: 1823890830 Email: powcoder@163.com