idash secure genome analysis
play

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


  1. 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

  2. ObliVM Programming Framework for Secure ObliVM Task 1A Computation Task 1B Set union Task 2A Task 2B

  3. ObliVM Programming Framework for Secure ObliVM Task 1A Computation Task 1B Set union Task 2A Ease-of-use: easy for non-specialist programmers to use Task 2B

  4. ObliVM Programming Framework for Secure ObliVM Task 1A Computation Task 1B Set union Task 2A Ease-of-use: easy for non-specialist programmers to use Task 2B Efficiency: compiles programs to small circuits

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

  6. ObliVM Programming Framework for Secure ObliVM Task 1A Computation Task 1B Set union Task 2A Ease-of-use: easy for non-specialist programmers to use Task 2B Efficiency: compiles programs to small circuits Formal Security: type system is being formalized http://oblivm.com

  7. Compute MAF Compute minor allele frequencies ObliVM Alice Bob Task 1A AA AC AA AA AC CC Task 1B f Alice = 5 , f Alice f Bob = 3 , f Bob = 1 = 3 Set union A C A C Task 2A Task 2B Cleartext Secure

  8. Compute MAF Compute minor allele frequencies ObliVM Alice Bob Task 1A AA AC AA AA AC CC Task 1B f Alice = 5 , f Alice f Bob = 3 , f Bob = 1 = 3 Set union A C A C Task 2A Compute min ( f Alice + f Bob , f Alice + f Bob Task 2B ) A A C C Cleartext Secure

  9. Compute MAF Compute minor allele frequencies ObliVM Alice Bob Task 1A AA AC AA AA AC CC Task 1B f Alice = 5 , f Alice f Bob = 3 , f Bob = 1 = 3 Set union A C A C Task 2A Compute min ( f Alice + f Bob , f Alice + f Bob Task 2B ) A A C C Secure Computation: MAF = min ( f Alice + f Bob , f Alice + f Bob ) A A C C Cleartext Secure

  10. Code in ObliVM-lang : Compute MAF ObliVM Task 1A Task 1B Set union Task 2A Task 2B

  11. Problem Statement: Compute χ 2 statistic Task 1b: Computing χ 2 statistic ObliVM Alice Bob Task 1A Case: AA AC AA Case: AA AC CC Task 1B Control: AA CA CA Control: CA AC CC Set union Task 2A Task 2B Cleartext Secure

  12. Problem Statement: Compute χ 2 statistic Task 1b: Computing χ 2 statistic ObliVM Alice Bob Task 1A Case: AA AC AA Case: AA AC CC Task 1B Control: AA CA CA Control: CA AC CC Set union Task 2A a , b : allele counts for case group Task 2B c , d : allele counts for control group (similar to Task 1A) Cleartext Secure

  13. Problem Statement: Compute χ 2 statistic Task 1b: Computing χ 2 statistic ObliVM Alice Bob Task 1A Case: AA AC AA Case: AA AC CC Task 1B Control: AA CA CA Control: CA AC CC Set union Task 2A a , b : allele counts for case group Task 2B 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 Cleartext Secure

  14. Results: Compute χ 2 statistic Floating point computation Absolute accuracy ObliVM 1 . 11 × 10 − 4 with 7763 gates Task 1A 5 . 6 × 10 − 8 with 14443 gates Task 1B Set union Task 2A Task 2B

  15. Code in ObliVM-lang : Compute χ 2 statistic ObliVM Task 1A Task 1B Set union Task 2A Task 2B

  16. Building Block: Secure Set Union Alice Bob S A S B ObliVM { a, b, c } { b, d, e } Task 1A Task 1B Set union Task 2A Task 2B

  17. Building Block: Secure Set Union Alice Bob S A S B ObliVM { a, b, c } { b, d, e } Task 1A Task 1B Cardinality of the union of the sets i.e. | S A ∪ S B | Set union | S A ∪ S B | = 5 Task 2A Task 2B

  18. Building Block: Secure Set Union Cleartext Secure Alice Bob S A S B ObliVM { a, b, c } { b, d, e } Task 1A Task 1B Cardinality of the union of the sets i.e. | S A ∪ S B | Set union | S A ∪ S B | = 5 Task 2A Task 2B Strawman solution: union( S A , S B ) 1: Sort the combined array S A || S B obliviously O ( N log 2 N )

  19. Building Block: Secure Set Union Cleartext Secure Alice Bob S A S B ObliVM { a, b, c } { b, d, e } Task 1A Task 1B Cardinality of the union of the sets i.e. | S A ∪ S B | Set union | S A ∪ S B | = 5 Task 2A Task 2B Strawman solution: union( S A , S B ) 1: Sort the combined array S A || S B obliviously 2: Compute cardinality in a single pass O ( N log 2 N )

  20. Set Union: Oblivious Merge union( S A , S B ) 1: Local sort of S A and S B ObliVM Task 1A Task 1B Set union Task 2A Task 2B Cleartext Secure

  21. Set Union: Oblivious Merge union( S A , S B ) 1: Local sort of S A and S B ObliVM Task 1A 2: Oblivious merge of sorted lists Task 1B Set union Task 2A Task 2B Cleartext Secure

  22. Set Union: Oblivious Merge union( S A , S B ) 1: Local sort of S A and S B ObliVM Task 1A 2: Oblivious merge of sorted lists Task 1B 3: Compute cardinality in a single pass Set union Task 2A O ( N log N ) Task 2B Cleartext Secure

  23. Code: Oblivious Merge ObliVM Task 1A Task 1B Set union Task 2A Task 2B

  24. Set Union: Bloom Filter Common case: Check for existence of elements Our case: Approximate the cardinality of a set S ObliVM Task 1A Task 1B Set union Task 2A Task 2B

  25. Set Union: Bloom Filter Common case: Check for existence of elements Our case: Approximate the cardinality of a set S ObliVM Task 1A Task 1B Set union ln(1 − X Task 2A m ) | S | MLE = Task 2B 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 |

  26. Set Union: Bloom Filter union( S A , S B ) ObliVM 1: Compute bloom filters locally Task 1A Task 1B Set union Task 2A Task 2B Cleartext Secure

  27. Set Union: Bloom Filter union( S A , S B ) ObliVM 1: Compute bloom filters locally Task 1A 2: In secure computation, compute bitwise OR and count num- Task 1B ber of 1’s Set union Task 2A Task 2B Cleartext Secure

  28. Set Union: Bloom Filter union( S A , S B ) ObliVM 1: Compute bloom filters locally Task 1A 2: In secure computation, compute bitwise OR and count num- Task 1B ber of 1’s Set union 3: Compute estimated | S | in cleartext Task 2A Task 2B Cleartext Secure

  29. Set Union: Bloom Filter union( S A , S B ) ObliVM 1: Compute bloom filters locally Task 1A 2: In secure computation, compute bitwise OR and count num- Task 1B ber of 1’s Set union 3: Compute estimated | S | in cleartext Task 2A Task 2B O ( m ) operations, m : number of bits used for bloom filter m = O ( N ), number of elements inserted in the bloom filter Cleartext Secure

  30. Code: CountOnes ObliVM Task 1A Task 1B Set union Task 2A Task 2B

  31. Problem Statement: Hamming Distance Alice and Bob maintain records of type ( ref , svtype , alt ) that differ from the reference ObliVM Task 1A Task 1B d = 0; Set union for each record of type SNP or SUB Task 2A if ((x == null) || (y == null) || (x.ref == Task 2B y.ref && x.alt != y.alt) d += 1; end for

  32. Solution: Hamming Distance Alice Bob ObliVM S A = { (1, T, SNP),(75, G, SNP) } S B = { (1, T, SNP),(18, A, SNP) } Task 1A Task 1B Set union We need all positions that have been modified, but not Task 2A modified to the same value Task 2B Hamming Distance = | S A ∪ S B | − | S A ∩ S B | = |{ (75 , G , SNP ) , (18 , A , SNP ) }|

  33. Problem Statement: Edit Distance Alice and Bob maintain records of type ( ref , svtype , alt ) that differ from the reference ObliVM Task 1A Replacement: Calculate like hamming distance Task 1B Insertion/Deletion: Set union If one party modifies a position, add Task 2A len(alt) to edit distance Task 2B If both parties modify a position, add len(max(alt1, alt2)) to edit distance

  34. Solution: Edit Distance Alice Bob { (1, T, SNP), { (1, T, SNP), ObliVM (10, TCG, INS), (10, CA, INS), Task 1A (75, G, SNP) } (18, A, SNP) } Task 1B Set union Task 2A Task 2B

  35. Solution: Edit Distance Alice Bob { (1, T, SNP), { (1, T, SNP), ObliVM (10, TCG, INS), (10, CA, INS), Task 1A (75, G, SNP) } (18, A, SNP) } Task 1B Set union S A 1 = { (1 , 1) , (10 , 1) , (10 , 2) , (10 , 3) , (75 , 1) } Task 2A S A 2 = { (1 , T , 1) , (10 , T , 1) , (10 , C , 2) , (10 , G , 3) , (75 , G , 1) } Task 2B

  36. Solution: Edit Distance Alice Bob { (1, T, SNP), { (1, T, SNP), ObliVM (10, TCG, INS), (10, CA, INS), Task 1A (75, G, SNP) } (18, A, SNP) } Task 1B Set union S A 1 = { (1 , 1) , (10 , 1) , (10 , 2) , (10 , 3) , (75 , 1) } Task 2A S A 2 = { (1 , T , 1) , (10 , T , 1) , (10 , C , 2) , (10 , G , 3) , (75 , G , 1) } Task 2B d 1 = | S A 1 ∪ S B 1 | = |{ (1 , 1) , (10 , 1) , (10 , 2) , (10 , 3) , (75 , 1) , (18 , 1) }|

  37. Solution: Edit Distance Alice Bob { (1, T, SNP), { (1, T, SNP), ObliVM (10, TCG, INS), (10, CA, INS), Task 1A (75, G, SNP) } (18, A, SNP) } Task 1B Set union S A 1 = { (1 , 1) , (10 , 1) , (10 , 2) , (10 , 3) , (75 , 1) } Task 2A S A 2 = { (1 , T , 1) , (10 , T , 1) , (10 , C , 2) , (10 , G , 3) , (75 , G , 1) } Task 2B d 1 = | S A 1 ∪ S B 1 | = |{ (1 , 1) , (10 , 1) , (10 , 2) , (10 , 3) , (75 , 1) , (18 , 1) }| d 2 = | S A 2 ∩ S B 2 | = |{ (1 , T , 1) }| Compute d 1 − d 2

  38. ObliVM Task 1A Task 1B Set union Task 2A Task 2B Thank You! http://oblivm.com/ kartik@cs.umd.edu

Recommend


More recommend