iDASH - Secure Genome Analysis Task 1A Competition Using ObliVM - - PowerPoint PPT Presentation

idash secure genome analysis
SMART_READER_LITE
LIVE PREVIEW

iDASH - Secure Genome Analysis Task 1A Competition Using ObliVM - - PowerPoint PPT Presentation

ObliVM iDASH - Secure Genome Analysis Task 1A Competition Using ObliVM Task 1B Set union Task 2A Xiao Shaun Wang, Chang Liu, Kartik Nayak , Yan Huang Task 2B and Elaine Shi University of Maryland, College Park Indiana University, Bloomington


slide-1
SLIDE 1

ObliVM Task 1A Task 1B Set union Task 2A Task 2B

iDASH - Secure Genome Analysis Competition Using ObliVM

Xiao Shaun Wang, Chang Liu, Kartik Nayak, Yan Huang and Elaine Shi University of Maryland, College Park Indiana University, Bloomington

slide-2
SLIDE 2

ObliVM Task 1A Task 1B Set union Task 2A Task 2B

ObliVM

Programming Framework for Secure Computation

slide-3
SLIDE 3

ObliVM Task 1A Task 1B Set union Task 2A Task 2B

ObliVM

Programming Framework for Secure Computation

Ease-of-use:

easy for non-specialist programmers to use

slide-4
SLIDE 4

ObliVM Task 1A Task 1B Set union Task 2A Task 2B

ObliVM

Programming Framework for Secure Computation

Ease-of-use:

easy for non-specialist programmers to use

Efficiency:

compiles programs to small circuits

slide-5
SLIDE 5

ObliVM Task 1A Task 1B Set union Task 2A Task 2B

slide-6
SLIDE 6

ObliVM Task 1A Task 1B Set union Task 2A Task 2B

ObliVM

Programming Framework for Secure Computation

Ease-of-use:

easy for non-specialist programmers to use

Efficiency:

compiles programs to small circuits

Formal Security:

type system is being formalized

http://oblivm.com

slide-7
SLIDE 7

ObliVM Task 1A Task 1B Set union Task 2A Task 2B

Compute MAF

Compute minor allele frequencies Alice Bob

Cleartext Secure

AA AC AA f Alice

A

= 5, f Alice

C

= 1 AA AC CC f Bob

A

= 3, f Bob

C

= 3

slide-8
SLIDE 8

ObliVM Task 1A Task 1B Set union Task 2A Task 2B

Compute MAF

Compute minor allele frequencies Alice Bob

Cleartext Secure

AA AC AA f Alice

A

= 5, f Alice

C

= 1 AA AC CC f Bob

A

= 3, f Bob

C

= 3 Compute min(f Alice

A

+ f Bob

A

, f Alice

C

+ f Bob

C

)

slide-9
SLIDE 9

ObliVM Task 1A Task 1B Set union Task 2A Task 2B

Compute MAF

Compute minor allele frequencies Alice Bob

Cleartext Secure

AA AC AA f Alice

A

= 5, f Alice

C

= 1 AA AC CC f Bob

A

= 3, f Bob

C

= 3 Compute min(f Alice

A

+ f Bob

A

, f Alice

C

+ f Bob

C

) Secure Computation: MAF = min(f Alice

A

+ f Bob

A

, f Alice

C

+ f Bob

C

)

slide-10
SLIDE 10

ObliVM Task 1A Task 1B Set union Task 2A Task 2B

Code in ObliVM-lang: Compute MAF

slide-11
SLIDE 11

ObliVM Task 1A Task 1B Set union Task 2A Task 2B

Problem Statement: Compute χ2 statistic

Task 1b: Computing χ2 statistic Alice Case: AA AC AA Control: AA CA CA Bob Case: AA AC CC Control: CA AC CC

Cleartext Secure

slide-12
SLIDE 12

ObliVM Task 1A Task 1B Set union Task 2A Task 2B

Problem Statement: Compute χ2 statistic

Task 1b: Computing χ2 statistic Alice Case: AA AC AA Control: AA CA CA Bob Case: AA AC CC Control: CA AC CC

Cleartext Secure

a, b: allele counts for case group c, d: allele counts for control group (similar to Task 1A)

slide-13
SLIDE 13

ObliVM Task 1A Task 1B Set union Task 2A Task 2B

Problem Statement: Compute χ2 statistic

Task 1b: Computing χ2 statistic Alice Case: AA AC AA Control: AA CA CA Bob Case: AA AC CC Control: CA AC CC

Cleartext Secure

a, b: allele counts for case group c, d: allele counts for control group (similar to Task 1A) χ2 = n × (ad−bc)2

rsgk

where r = a + b, s = c + d, g = a + c, k = b + d, n = r + s

slide-14
SLIDE 14

ObliVM Task 1A Task 1B Set union Task 2A Task 2B

Results: Compute χ2 statistic

Floating point computation Absolute accuracy 1.11 × 10−4 with 7763 gates 5.6 × 10−8 with 14443 gates

slide-15
SLIDE 15

ObliVM Task 1A Task 1B Set union Task 2A Task 2B

Code in ObliVM-lang: Compute χ2 statistic

slide-16
SLIDE 16

ObliVM Task 1A Task 1B Set union Task 2A Task 2B

Building Block: Secure Set Union

Alice SA {a, b, c} Bob SB {b, d, e}

slide-17
SLIDE 17

ObliVM Task 1A Task 1B Set union Task 2A Task 2B

Building Block: Secure Set Union

Alice SA {a, b, c} Bob SB {b, d, e} Cardinality of the union of the sets i.e. |SA ∪ SB| |SA ∪ SB| = 5

slide-18
SLIDE 18

ObliVM Task 1A Task 1B Set union Task 2A Task 2B

Building Block: Secure Set Union

Alice SA {a, b, c} Bob SB {b, d, e} Cardinality of the union of the sets i.e. |SA ∪ SB| |SA ∪ SB| = 5

Cleartext Secure

Strawman solution: O(N log2 N) union(SA, SB)

1: Sort the combined array SA||SB obliviously

slide-19
SLIDE 19

ObliVM Task 1A Task 1B Set union Task 2A Task 2B

Building Block: Secure Set Union

Alice SA {a, b, c} Bob SB {b, d, e} Cardinality of the union of the sets i.e. |SA ∪ SB| |SA ∪ SB| = 5

Cleartext Secure

Strawman solution: O(N log2 N) union(SA, SB)

1: Sort the combined array SA||SB obliviously 2: Compute cardinality in a single pass

slide-20
SLIDE 20

ObliVM Task 1A Task 1B Set union Task 2A Task 2B

Set Union: Oblivious Merge

Cleartext Secure

union(SA, SB)

1: Local sort of SA and SB

slide-21
SLIDE 21

ObliVM Task 1A Task 1B Set union Task 2A Task 2B

Set Union: Oblivious Merge

Cleartext Secure

union(SA, SB)

1: Local sort of SA and SB 2: Oblivious merge of sorted lists

slide-22
SLIDE 22

ObliVM Task 1A Task 1B Set union Task 2A Task 2B

Set Union: Oblivious Merge

Cleartext Secure

union(SA, SB)

1: Local sort of SA and SB 2: Oblivious merge of sorted lists 3: Compute cardinality in a single pass

O(N log N)

slide-23
SLIDE 23

ObliVM Task 1A Task 1B Set union Task 2A Task 2B

Code: Oblivious Merge

slide-24
SLIDE 24

ObliVM Task 1A Task 1B Set union Task 2A Task 2B

Set Union: Bloom Filter

Common case: Check for existence of elements Our case: Approximate the cardinality of a set S

slide-25
SLIDE 25

ObliVM Task 1A Task 1B Set union Task 2A Task 2B

Set Union: Bloom Filter

Common case: Check for existence of elements Our case: Approximate the cardinality of a set S

|S|MLE =

ln(1−X

m)

k ln(1−1/m)

where X: number of bits set, m: number of bits in the bloom filter, k: number of hash functions, |S|MLE: maximum likelihood estimate of |S|

slide-26
SLIDE 26

ObliVM Task 1A Task 1B Set union Task 2A Task 2B

Set Union: Bloom Filter

Cleartext Secure

union(SA, SB)

1: Compute bloom filters locally

slide-27
SLIDE 27

ObliVM Task 1A Task 1B Set union Task 2A Task 2B

Set Union: Bloom Filter

Cleartext Secure

union(SA, SB)

1: Compute bloom filters locally 2: In secure computation, compute bitwise OR and count num-

ber of 1’s

slide-28
SLIDE 28

ObliVM Task 1A Task 1B Set union Task 2A Task 2B

Set Union: Bloom Filter

Cleartext Secure

union(SA, SB)

1: Compute bloom filters locally 2: In secure computation, compute bitwise OR and count num-

ber of 1’s

3: Compute estimated |S| in cleartext

slide-29
SLIDE 29

ObliVM Task 1A Task 1B Set union Task 2A Task 2B

Set Union: Bloom Filter

Cleartext Secure

union(SA, SB)

1: Compute bloom filters locally 2: In secure computation, compute bitwise OR and count num-

ber of 1’s

3: Compute estimated |S| in cleartext

O(m) operations, m: number of bits used for bloom filter m = O(N), number of elements inserted in the bloom filter

slide-30
SLIDE 30

ObliVM Task 1A Task 1B Set union Task 2A Task 2B

Code: CountOnes

slide-31
SLIDE 31

ObliVM Task 1A Task 1B Set union Task 2A Task 2B

Problem Statement: Hamming Distance

Alice and Bob maintain records of type (ref , svtype, alt) that differ from the reference d = 0; for each record of type SNP or SUB if ((x == null) || (y == null) || (x.ref == y.ref && x.alt != y.alt) d += 1; end for

slide-32
SLIDE 32

ObliVM Task 1A Task 1B Set union Task 2A Task 2B

Solution: Hamming Distance

Alice Bob

SA ={(1, T, SNP),(75, G, SNP)} SB ={(1, T, SNP),(18, A, SNP)}

We need all positions that have been modified, but not modified to the same value Hamming Distance = |SA ∪ SB| − |SA ∩ SB| = |{(75, G, SNP), (18, A, SNP)}|

slide-33
SLIDE 33

ObliVM Task 1A Task 1B Set union Task 2A Task 2B

Problem Statement: Edit Distance

Alice and Bob maintain records of type (ref , svtype, alt) that differ from the reference Replacement: Calculate like hamming distance Insertion/Deletion: If one party modifies a position, add len(alt) to edit distance If both parties modify a position, add len(max(alt1, alt2)) to edit distance

slide-34
SLIDE 34

ObliVM Task 1A Task 1B Set union Task 2A Task 2B

Solution: Edit Distance

Alice

{(1, T, SNP), (10, TCG, INS), (75, G, SNP)}

Bob

{(1, T, SNP), (10, CA, INS), (18, A, SNP)}

slide-35
SLIDE 35

ObliVM Task 1A Task 1B Set union Task 2A Task 2B

Solution: Edit Distance

Alice

{(1, T, SNP), (10, TCG, INS), (75, G, SNP)}

Bob

{(1, T, SNP), (10, CA, INS), (18, A, SNP)}

SA

1 = {(1, 1), (10, 1), (10, 2), (10, 3), (75, 1)}

SA

2 = {(1, T, 1), (10, T, 1), (10, C, 2), (10, G, 3), (75, G, 1)}

slide-36
SLIDE 36

ObliVM Task 1A Task 1B Set union Task 2A Task 2B

Solution: Edit Distance

Alice

{(1, T, SNP), (10, TCG, INS), (75, G, SNP)}

Bob

{(1, T, SNP), (10, CA, INS), (18, A, SNP)}

SA

1 = {(1, 1), (10, 1), (10, 2), (10, 3), (75, 1)}

SA

2 = {(1, T, 1), (10, T, 1), (10, C, 2), (10, G, 3), (75, G, 1)}

d1 = |SA

1 ∪ SB 1 | = |{(1, 1), (10, 1), (10, 2), (10, 3), (75, 1), (18, 1)}|

slide-37
SLIDE 37

ObliVM Task 1A Task 1B Set union Task 2A Task 2B

Solution: Edit Distance

Alice

{(1, T, SNP), (10, TCG, INS), (75, G, SNP)}

Bob

{(1, T, SNP), (10, CA, INS), (18, A, SNP)}

SA

1 = {(1, 1), (10, 1), (10, 2), (10, 3), (75, 1)}

SA

2 = {(1, T, 1), (10, T, 1), (10, C, 2), (10, G, 3), (75, G, 1)}

d1 = |SA

1 ∪ SB 1 | = |{(1, 1), (10, 1), (10, 2), (10, 3), (75, 1), (18, 1)}|

d2 = |SA

2 ∩ SB 2 | = |{(1, T, 1)}|

Compute d1 − d2

slide-38
SLIDE 38

ObliVM Task 1A Task 1B Set union Task 2A Task 2B

Thank You! http://oblivm.com/

kartik@cs.umd.edu