Question: We want to implement an Oblivious Min Heap. To do that, we will store the heap in an array, called, A , in the most

We want to implement an Oblivious Min Heap. To do that, we will store the heap in an array, called, A, in the most
obvious form. The 0th index of the array is kept free. The first index stores the root. The (2i)th location stores the left
child of the node stored in the ith location. The right child is stored in location 2i+1.P0 and P1 hold A0 and A1(each
of size n+1, i.e., it has n elements; remember, the 0th index is kept free) respectively, such that A0+A1=A. Of course,
the heap property is that: A0[i]+A1[i]A0[2i]+A1[2i] and A0[i]+A1[i]A0[2i+1]+A1[2i+1].
In the first part we will write a protocol such that P0 and P1 can do an INSERT operation on this shared array
(You can increase the size of A0 and A1 as new elements arrive).P0 and P1 get M0 and M1 respectively, such that
M0+M1=M. In other words, the parties get additive shares of M. Their goal is to insert M in the secret shared
heap.
(a) In the first step, they both increase the size of the array by 1. What would P0 and P1 put in A0[n+2] and
A1[n+2].5 marks
(b) After the first step, why is the heap property not necessarily satisfied? 5 marks
(c) Suppose you have access to an oblivious comparisons black box, which has the following functionality: P0
holds (x0,y0) and P1 holds (x1,y1). After the end of the protocol, P0 gets c0 and P1 gets c1. They have the
property that, if c0+c1=1c0+c1=0P0P1A0[1]A1[1]A0A1A0[1]A1[1]P0P1
We want to implement an Oblivious Min Heap. To do

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Programming Questions!