Using secure multi-party computation when pocessing distributed health data

Similar documents
A Distributed k-secure Sum Protocol for Secure Multi-Party Computations

Efficiency Optimisation Of Tor Using Diffie-Hellman Chain

Secure Multiparty Computation

MINING ASSOCIATION RULE FOR HORIZONTALLY PARTITIONED DATABASES USING CK SECURE SUM TECHNIQUE

PRIVACY PRESERVING IN DISTRIBUTED DATABASE USING DATA ENCRYPTION STANDARD (DES)

Partition Based Perturbation for Privacy Preserving Distributed Data Mining

MTAT Research Seminar in Cryptography Building a secure aggregation database

Secure Multiparty Computation Introduction to Privacy Preserving Distributed Data Mining

Analysis of Data and Traffic Management during Privacy Preservation in Secure Multiparty Computation

OneID An architectural overview

Secure Multiparty Computation: Introduction. Ran Cohen (Tel Aviv University)

Efficient and Secure Source Authentication for Multicast

Security protocols. Correctness of protocols. Correctness of protocols. II. Logical representation and analysis of protocols.i

Research Statement. Yehuda Lindell. Dept. of Computer Science Bar-Ilan University, Israel.

Rational Oblivious Transfer

CS573 Data Privacy and Security. Cryptographic Primitives and Secure Multiparty Computation. Li Xiong

Protocols for Authenticated Oblivious Transfer

Privacy-Preserving k-secure Sum Protocol Rashid Sheikh, Beerendra Kumar SSSIST, Sehore, INDIA

Implementing Secure Socket Layer

Key establishment in sensor networks

Improvement of Camenisch-Neven-Shelat Oblivious Transfer Scheme

UT HEALTH SAN ANTONIO HANDBOOK OF OPERATING PROCEDURES

A FAIR-EXCHANGE E-COMMERCE PROTOCOL WITH AUTOMATED DISPUTE RESOLUTION

Symmetric Key Services Markup Language Use Cases

Key establishment in sensor networks

Cryptography and Network Security Chapter 14

Blockchain for Enterprise: A Security & Privacy Perspective through Hyperledger/fabric

DISCLOSURE PROTECTION OF SENSITIVE ATTRIBUTES IN COLLABORATIVE DATA MINING V. Uma Rani *1, Dr. M. Sreenivasa Rao *2, V. Theresa Vinayasheela *3

Electronic Signature Policy

Canadian Access Federation: Trust Assertion Document (TAD)

Zero-Knowledge Proof and Authentication Protocols

An Overview of Secure Multiparty Computation

A Remote Biometric Authentication Protocol for Online Banking

PPKM: Preserving Privacy in Knowledge Management

PRIVACY-PRESERVING MULTI-PARTY DECISION TREE INDUCTION

Cryptography. Lecture 12. Arpita Patra

IDENTITY ASSURANCE PRINCIPLES

An Introduction to Trusted Platform Technology

Canadian Access Federation: Trust Assertion Document (TAD)

Configuring Certificate Authorities and Digital Certificates

Canadian Access Federation: Trust Assertion Document (TAD)

Send documentation comments to

1. Federation Participant Information DRAFT

INCOMMON FEDERATION: PARTICIPANT OPERATIONAL PRACTICES

Analysis of a Redactable Signature Scheme on Data with Dependencies

Security Protections for Mobile Agents

STUDY & DESIGN OF ADVANCED DATA AGGREGATION TECHNIQUE IN WIRELESS SENSOR NETWORKS

NETWORK AND CERTIFICATE SYSTEM SECURITY REQUIREMENTS

A Security Infrastructure for Trusted Devices

Canadian Access Federation: Trust Assertion Document (TAD)

Encryption Algorithms Authentication Protocols Message Integrity Protocols Key Distribution Firewalls

Trust is the Foundations for Computer Security

Canadian Access Federation: Trust Assertion Document (TAD)

INCOMMON FEDERATION: PARTICIPANT OPERATIONAL PRACTICES

Diffie-Hellman. Part 1 Cryptography 136

System Approach for Single Keyword Search for Encrypted data files Guarantees in Public Infrastructure Clouds

GDPR Processor Security Controls. GDPR Toolkit Version 1 Datagator Ltd

Remote E-Voting System

Secure Multiparty Computation

INCOMMON FEDERATION: PARTICIPANT OPERATIONAL PRACTICES

Acknowledgement of Receipt of Notice of Privacy Practices

Preserving Data Privacy in the IoT World

Formal Methods and Cryptography

arxiv: v1 [cs.cr] 17 Jun 2012

Group Key Establishment Protocols

Supersedes: S-EG-06. Specifications relating to event loggers for electricity and gas metering devices

Securing Distributed Computation via Trusted Quorums. Yan Michalevsky, Valeria Nikolaenko, Dan Boneh

Canadian Access Federation: Trust Assertion Document (TAD)

Prepared by. On behalf of The California HealthCare Foundation. Nov. 24, Sujansky & Associates, LLC 1

Authentication Part IV NOTE: Part IV includes all of Part III!

Privacy Policy. 1. Collection and Use of Your Personal Information

1.2 Participant means a third party who interacts with the Services as a result of that party s relationship with or connection to you.

Canadian Access Federation: Trust Assertion Document (TAD)

INCOMMON FEDERATION: PARTICIPANT OPERATIONAL PRACTICES

Reliable Broadcast Message Authentication in Wireless Sensor Networks

Redactable Signatures for Verification and Minimal Disclosure in Health Information Exchange. Doug Blough, Georgia Tech

Lecture 9a: Secure Sockets Layer (SSL) March, 2004

ICS 180 May 4th, Guest Lecturer: Einar Mykletun

Formal Methods for Assuring Security of Computer Networks

Accessing the Ministry Secure File Delivery Service (SFDS)

SECURED KEY MANAGEMENT ALGORITHM FOR DATA TRANSMISSION IN MOBILE ADHOC NETWORKS

SAFE-BioPharma RAS Privacy Policy

Securing BGP. Geoff Huston November 2007

An Authentication Service Based on Trust and Clustering in Mobile Ad Hoc Networks

Canadian Access Federation: Trust Assertion Document (TAD)

A Secure Routing Protocol for Wireless Adhoc Network Creation

Plaintext Awareness via Key Registration

Efficient integrity checking technique for securing client data in cloud computing

Cryptography and Network Security. Prof. D. Mukhopadhyay. Department of Computer Science and Engineering. Indian Institute of Technology, Kharagpur

Separation Shielding and Content Supporting Locus Positioned Problems

Cryptography & Key Exchange Protocols. Faculty of Computer Science & Engineering HCMC University of Technology

Using Chains for what They re Good For

Document Cloud (including Adobe Sign) Additional Terms of Use. Last updated June 5, Replaces all prior versions.

InCommon Federation: Participant Operational Practices

Lecture Notes 14 : Public-Key Infrastructure

Session key establishment protocols

Terms & Conditions. Privacy, Health & Copyright Policy

ADVANCES in NATURAL and APPLIED SCIENCES

Threat Assessment Summary. e-voting, Admin, and pvoting TOE s

Security Policies and Procedures Principles and Practices

Transcription:

Using secure multi-party computation when pocessing distributed health data Anders Andersen Department of Computer Science Faculty of Science and Technology University of Tromsø 9037 Tromsø, Norway Abstract Patient related health data are typically located at different general practices and hospitals. When processing and analyzing such data, the provided infrastructure and toolset has to take into consideration legal, security and privacy issues. The combination of secure multi-party computations (SMC) algorithms, encryption, public key infrastructure (PKI), certificates, and a certificate authority (CA) is used to implement an infrastructure and a toolset for statistical analysis of health data. The general practices and hospitals are considered nodes in a computing graph, and at each node a sub-process performs the local part of the computation. The described approach tries to support a wide range of possible SMC algorithms and computing graphs. Keywords: SMC algorithms, Privacy, PKI, Health data. 1. Introduction In this paper an infrastructure and a toolset for statistical analysis of health data is presented and discussed. It uses a combination of secure multi-party computations (SMC) algorithms [1], [2], encryption, public key infrastructure (PKI), certificates, and a certificate authority (CA) to manage the legal, security and privacy issues of such analysis. A coordinator that prepares the computation, and a set of sub-processes representing the parties in the multi-party computation. To send a message securely to a sub-process or the coordinator, the address and public encryption key of the receiver is needed. In preparing the computation the coordinator creates a computing graph, and based on this a set of messages initiating the computation. The nodes in the computing graph are the coordinator and the sub-processes. The edges of the directed graph are the communication (messages sent) between nodes. A sub-process can only access or unwrap a limited part of the message it receives. The part it can access includes its input data and the address/key of the set of nodes it is forwarding its intermediate computational results to. The part of the message it cannot unwrap is encrypted with the public key of the receiver and is forwarded unchanged to the next nodes in the graph. This approach will be evaluated in the context of the Snow SMSC (Secure Multi-party Statistical Computations) project. The Snow system [3] utilizes the mobile software agent approach. The system is deployed in health institutions and is used for data extraction for disease surveillance purposes. It extracts health data and performs data aggregation from general practices in Norway. In the Snow SMSC project the goal is to provide a toolset for statistical analysis of health data. Any medical research using health data is difficult because of the legal, security and privacy issues involved. This enforces a set of constrains upon the computations and their implementations. To address this, Snow SMSC will use the outcome of SMC research [4]. In [5], SMC for N institutions with values x 1,..., x N who wish to evaluate a known function f(x 1,..., x N ) is subject to four constrains: C1: The correct value f(x 1,..., x N ) is obtained and known to all institutions. C2: No institution j learns more about the other institutions values X j = {x n : n j than it can deduce from x j and f(x 1,..., x N ). C3: No trusted third party human or machine is part of the process. C4: Semi-honesty. Institutions perform agreed upon computations correctly using their true data. However, they are permitted to retain the results of intermediate computations. For practical purposes, the zero information disclosure implied by C3 is a difficult implement efficiently [6]. In the context of the Snow SMSC project we will use the following relaxed constrain replacing C3: C3 : No human or machine is allowed to have access to both the patient identifier i, and a data value x i not previously known. In [7] six requirements for secure disease surveillance are presented. These requirements includes what is special with health data and should be taken into consideration when performing such analysis. In [7] a secure multiparty computation protocol was developed to meet these requirements. However, in this paper we will focus on the four constrains presented above.

The implementation approach presented in this paper will consist of a combination of SMC algorithms and careful usage of encryption. The usage of public-key encryption is essential, but in many cases a combination of public-key and symmetric encryption should be used for performance reasons. 2. SMC in Snow SMSC 2.1 Computing graph and layered messages A coordinator creates the computing graph for the computing processes. Each computing process is a sub-process of the overall computation. This relates to a MapReduce approach [8] where a coordinator performs the computation in a map and a reduce step. The map step divides a task and it inputs into a set of smaller sub-problems and distributes them to worker nodes. In the reduce step the answers from the sub-problems are collected and combined to the final result. However, in Snow SMSC (and in the case of many SMC problems) it is not always feasible to collect all the intermediate results at the coordinator. For some types of computations and data sets this might compromise the privacy of the patients. This is illustrated in the example below where a calculation of the mean value of some patient data is performed by forwarding the intermediate results to the next sub-process in a chain. This means that in Snow SMSC we have to support a wide range of computing graphs, and the tools and protocols developed in the project have to support this flexible arrangement. The coordinator uses the computing graph to generate a set of layered messages. Each layer in these messages exposes the next edges in the directed graph. The computation is initiated by sending these messages to the first set of subprocesses. At each sub-process one layer of the received message is unwrapped exposing both the input data set for the calculation performed at this node, and the address/key of the next sub-processes in the computing graph. The calculation is performed using the input data set and local data available at this node. When the calculation is done the sub-process generates a set of messages forwarded to the next sub-processes in the computing graph. The data set included in these messages is based on the result of the performed calculation and a filter function. The filter function is used to ensure that a given sub-process is only forwarded data that it needs to perform its calculation. The filter function makes it possible for a sub-process to forward different data set to the next sub-processes in the computing graph. Local data at the node might also be updated when the calculation is performed. 2.2 Privacy The privacy of the patients is a main concern in systems accessing personal health data. To maintain this privacy Snow SMSC has to ensure that constraints C2 and C3 (see above) are maintained [5]. This will be achieved with SMC algorithms [4], [2], encryption of data and messages, and a public-key infrastructure (PKI). SMC algorithms ensure that each participant performing a sub-process is unable to learn about the other participants input data and intermediate results. Public-key encryption (often in combination with symmetric key encryption) is used to ensure that data and messages are only visible to the intended receiver. And finally, a PKI and its certificate authorities (CAs) are used to ensure that the participants can use certificates to distribute and trust public keys. This enables public-keys as the tool to authenticate participants and maintain the integrity and privacy of the data exchanged. 2.3 Example: computation of the mean value This is illustrated in a small example. The goal is to calculate the mean value of the values x 1,..., x N from N participants. With the help of the PKI, its certificates, and CAs, the coordinator c has access to and can trust the public keys P 1,..., P N of the N participants. The subprocess of each participant i will perform the calculation r i = r i 1 + x i. To achieve SMC, the coordinator starts the computation by sending a large random number r 0 to the first participant. Since each message is encrypted with the public-key of the receiver, only the first participant can see this message. Each participant i adds its value x i to the sum and forwards the message to the next participant in the chain. Also this message is encrypted with the public-key of the receiver. This continues to the last participant N who performs the same task and forwards the message encrypted with the public-key P c of the coordinator to the coordinator c. The coordinator subtracts the secret large random number from the sum and calculates the mean value m: m = r N r 0 N The computing path is generated at the coordinator c, and each participant only sees the next participant in the path. To achieve this the coordinator generates the following graph representation B 1 : {(A 2, P 2 ),... { (A N, P N ), {(A c, P c ), n PN... P N 1 P i is the the public key of i, where i is either one of the participants 1,..., N or coordinator c. {... Pi says that the message (inside the curly braces) is encrypted with P i. A i and P i are the address and public key of i. r i is the intermediate sum at participant i. n is a large random and unique number (nonce) generated by the coordinator. In the message forwarded to each participant the intermediate result of the computation r i also has to be included. To the first participant the coordinator includes the secret large random number r 0. The message forwarded to the first participant will then be {r 0, B 1 P1. However, since B 1 already is encrypted with the public key of participant 1, P 1

(2) r 2 = r 1 + x 2 {{r 2 P3, B 3 2 {{r 1 P2, {A 3, P 3, B 3 P2 {{r 2 P3, {A c, P c, B c P3 {{r 1 P2, B 2 (3) r 3 = r 2 + x 3 3 1 (1) r 1 = r 0 + x 1 {{r 3 Pc, B c {{r 0 P1, {A 2, P 2, B 2 P1 {{r 3 Pc, {n Pc c {{r 0 P1, B 1 (0) B 1 = {(A 2, P 2 ), B 2 P1 = {(A 2, P 2 ), {(A 3, P 3 ), B 3 P2 P1 = {(A 2, P 2 ), {(A 3, P 3 ), {(A c, P c ), B c P3 P2 P1 = {(A 2, P 2 ), {(A 3, P 3 ), {(A c, P c ), {n Pc P3 P2 P1 (4) m = (r 3 r 0 )/3 Fig. 1: Processing performed and messages sent and received when calculating the mean value with three participants 1, 2, and 3 and a coordinator c. there is no need to re-encrypt that part of the message. Instead the message forwarded to each participant i will have the following structure: { {ri 1 Pi, B i Each participant can only see the part of the message that is encrypted with its public key. The rest of the message is treated as a data blob that is forwarded unmodified to the next participant. Any participant i can see the following received message: { {ri 1 Pi, {(A i+1, P i+1 ), B i+1 Pi P i is the the public key of participant i, and {... Pi says that the message-part (inside the curly braces) is encrypted with P i. r i 1 is the intermediate result from the previous participant in the path. A i+1 and P i+1 are respectively the address and public key of participant i + 1, the next participant in the path. B i+1 is the data blob that participant i is going to forward unmodified to participant i + 1. Participant i performs the calculation r i = r i 1 + x i and forwards the following message to the next participant A i+1 in the path: { {ri, B Pi+1 i+1 The original message created by the coordinator specifies the computing graph (a path between the sub-processes in this example). Any participant i uses the address A i+1 to find the next node in the graph and the public key P i+1 to securely communicate the intermediate results to the next node in the graph. Figure 1 illustrates this example with a coordinator c and three participants 1, 2 and 3. The start of each edge in the directed graph illustrates how the senders sees the message it is forwarding. The end of the edge illustrates how the receiver sees the message. The difference between what the sender and receiver can see is due to the message part B i that is encrypted with public key P i of the receiver i. The coordinator encrypted B i and only i has the private key that can decrypt B i. The sender i has the knowledge about the intermediate value r 1 since it calculated it. After it was calculated, sender i encrypted it with the public key of receiver i + 1. To summarize, at each node the following operations are performed: (0) Coordinator c prepares and forward the message {{r 0 P1, B 1 to participant 1. Both r 0 and n are large random numbers. B 1 is important since it specifies the computing path and includes the public keys needed to securely forward the intermediate results to the next participant. (1) Participant 1 decrypts and interprets the received message and uses its content to perform the calculation and securely forward the message to the next participant. The part of the message that it cannot decrypt (B 2 ) is forwarded to the next participant unchanged. (2) Participant 2 decrypts and interprets the received message and uses its content to perform the calculation and securely forward the message to the next participant. The part of the message that it cannot decrypt (B 3 ) is forwarded to the next participant unchanged. (3) Participant 3 decrypts and interprets the received message and uses its content to perform the calculation and securely forward the message to the coordinator. Participant 3 do no necessarily know that the receiver

of its message is the coordinator. It uses the address and public key found in the message it received. The part of the message that it cannot decrypt (B c ) is forwarded to the coordinator unchanged. (4) The coordinator decrypts and interprets the received message and uses its content, the stored value r 0, and the known number of participants, to perform the final calculation of the mean value m. Before the actual calculation is performed the coordinator will validate that the received nonce n matches the value it originally included in B 1. 3. A more generic approach to SMC The example above illustrates a simple computing graph, a simple data set, and a simple algorithm. The computing graph is a simple path starting and ending at the coordinator. The data set is a single (intermediate) value updated based on local data at each sub-process. The algorithm at each subprocess is to add a local value to the received intermediate result. We will for now ignore the SMC algorithms and focus on a generic approach to represent and distribute the computation graph and the data set. 3.1 Supporting a wide range of graphs As described above the coordinator initially generates the computation graph G. It is wrapped in the recursively encrypted blob that is unwrapped one layer at the time at each processing node using the private key of the node. In the generic approach each layer does not provide a single receiver of the intermediate results from the current node. It provides a set of receivers. A node i will receive and unwrap an input data set I i and a set of data blobs B i containing the necessary information needed to forward its intermediate results to the next set of processing nodes. I i represents sufficient data to perform the calculation. It might be aggregated from a set of input messages containing a subset I i of the data. Node i forwards its intermediate results to M nodes. B i contains the addresses/keys and the information for the receiving nodes: {(A (i,1), P (i,1) ), B (i,1) ; (A (i,2), P (i,2) ), B (i,2) ;. (A (i,m), P (i,m) ), B (i,m) Pi (A (i,k), P (i,k) ), k {1,..., M is the address/key of the receiver k, and B (i,k) is the part of the received message that node i can not decrypt and it is forwarded to receiver k unchanged. Each node i will perform its calculation f using the received data set I i and its local data set X i : R i = f(i i, X i ) F is a filter function that removes data from a data set that should not be forwarded to a given node. F (R, h) produces a new data set I h where all data that should not be available for node h are removed. In node i the intermediate results forwarded to node (i, k) is filtered like this: I (i,k) = F (R i, (i, k)) From node i all receivers (i, k) is forwarded the following message: { {I (i,k) P (i,k), B (i,k) In Figure 2 an example of a computation graph with a coordinator and the six participants 1, 2, (1, 1), (1, 2), (2, 1) and (2, 2) is shown. The coordinator has the following representation of the computation graph G: G = {(A 1, P 1 ), B 1 ; (A 2, P 2 ), B 2 Pc B 1 = {(A (1,1), P (1,1) ), B (1,1) ; (A (1,2), P (1,2) ), B (1,2) P1 B (1,1) = {(A c, P c ), B (1,1,c) P(1,1) B (1,2) = {(A c, P c ), B (1,2,c) P(1,2) B 2 = {(A (2,1), P (2,1) ), B (2,1) ; (A (2,2), P (2,2) ), B (2,2) P2 B (2,1) = {(A c, P c ), B (2,1,c) P(2,1) B (2,2) = {(A c, P c ), B (2,2,c) P(2,2) B (1,1,c), B (1,2,c), B (2,1,c) and B (2,2,c) do not contribute to the representation of the computation graph. Typically they are unique nonces encrypted with the public key of the coordinator. They are used to validate that the computation has been following the specified paths in the computation graph. At each step in the computation the following operations are performed: (0) The coordinator c produces and filters the initial data set R: I 1 = F (R, 1), I 2 = F (R, 2) Based on the graph representation G, the coordinator c generates and forwards the two messages M 1 and M 2 for the first two processing nodes in the graph. Each message contains the filtered data set encrypted with the receivers public key and the information the receivers need to perform their tasks. (1) Node 1 and 2 decrypts and interpret the received message and performs the following operation to create the intermediate results I (i,j), i, j 1, 2 forwarded to the next set of nodes in the computation graph: I (i,j) = F (f(i i, X i ), (i, j)) (2) Node (1, 1), (1, 2), (2, 1) and (2, 2) decrypts and interpret the received message and performs the following operation to create the intermediate results I (i,j,c), i, j 1, 2 forwarded to the coordinator c: I (i,j,c) = F (f(i (i,j), X (i,j) ), c) (3) The coordinator collects, decrypts and interprets the intermediate results from node (1, 1), (1, 2), (2, 1)

M (1,1) (2) 1, 2 M (1,2,c) (2) M (1,1,c) 1, 1 (3) M (2,1,c) M (1,2) 1 M 1 c M 2 2 (1) (0) (1) (2) M M 1 = {{I (2,2,c) 1 P1, B 1 2, 2 2, 1 (2) M (2,1) M (2,2) M (1,1) = {{I(1,1) P (1,1), B (1,1) M (1,1,c) = {{I(1,1,c) P c, B (1,1,c) M (1,2) = {{I(1,2) P (1,2), B (1,2) M (1,2,c) = {{I(1,2,c) P c, B (1,2,c) M 2 = {{I 2 P2, B 2 M (2,1) = {{I(2,1) P (2,1), B (2,1) M (2,1,c) = {{I(2,1,c) P c, B (2,1,c) M (2,2) = {{I(2,2) P (2,2), B (2,2) M (2,2,c) = {{I(2,2,c) P c, B (2,2,c) Fig. 2: The computation graph G with six participants and a coordinator c including the processing performed and messages transmitted in the computation. and (2, 2) in the computation graph. The intermediate results are then used to calculate the final results of the computation. 3.2 Authenticity and integrity Above we have focused on the computation, communication and protection of data. Authenticity and integrity is also important in a system like this. The receiver of a message has to be assured that the message is received from an expected participant in the computation and that the message has not been altered with. Based on the above description of the system it is possible for ill-behaved nodes to generate messages that trigger a receiving node to perform the local calculation and disclose data in conflict with privacy concerns. To protect against such attacks each node signs every messages it forwards to other nodes. This signature is verified before the message is interpreted. It is verified both to check that the sender is who is claimed to be the sender and that the message is expected from the sender. The last verification is done against information found in the part of the computation graph unwrapped by the receiving node. At node i a message M i contains data blob B 1 encrypted with the public key P i. Above we have seen that this data blob is a layered representation of the computing graph with address/key pairs and sub-layers of the graph. So far we have ignored that it also contains an identificator of whom you should expect to receive this message from. This identificator is verified against the signature of the message. Since B i was generated and encrypted at the coordinator we can be ensured that the intention was that node i is expected to receive message M i from the sender. For this to be valid B i has to be signed by the coordinator. Message M (1,1) from Figure 2 with signatures can then be written like this: M (1,1) = { {I (1,1) P (1,1), B (1,1) S 1 The meaning of D Si is that D is signed by i. B (1,1) is signed by the coordinator c: B (1,1) = { {1, (A c, P c ), B (1,1,c) P(1,1) The trust we can establish from this is the following: (i) Message M (1,1) originates from node 1 since it is signed by 1. (ii) Message M (1,1) was expected to come from node 1 since the first element of B (1,1) is its identificator. (iii) B (1,1) originates from the coordinator since it is signed by c. (iv) B (1,1) is created for node (1, 1) since it is encrypted with its public key. It can also be concluded that this was the coordinator s intention since the encrypted B (1,1) is signed by the coordinator. Every message and data blob in this infrastructure are encrypted and signed as illustrated with message M (1,1) above. This ensures the authenticity and integrity of the messages and their content. 3.3 Progress and failure In the example illustrated in Figure 2 each processing nodes is receiving a single message. The coordinator is however collecting the intermediate results from 4 different nodes. Before the coordinator can perform its final computation it waits for the intermediate results from all 4 nodes. In the generic case it is also possible that one of the processing nodes should receive input from more than one node. The calculation in a given node (and at the coordinator) is performed when the node has received sufficient data to perform the calculation. Sufficient data can mean all possible inputs, a given number of inputs, a percentage of the possible inputs, and all this in a combination with timeout values (to ensure progress by sacrificing the quality of the results). At a given node i the input data I i to the calculation f should be interpreted as sufficient data to perform the calculation. This calculation is blocked until sufficient data is available. Table 1 lists some examples of sufficient data specifications where t is time since first input arrived, n is the number S c

of inputs, and N is the number of expected inputs. The meaning of the expression t v is when time t passes the timeout value v. Table 1: Examples of sufficient data specifications. Specification Description Wait at most 120 seconds for all inputs. Otherwise abort. t 120 n = N Either wait less than 180 seconds for (t < 180 n = all inputs or wait 180 seconds and N ) (t get at least 75% of inputs. Otherwise 180 n 0.75 N ) abort. Either wait less than 60 seconds for (t < 60 n 10) 10 inputs or wait 60 seconds and get (t 60 n 8) at least 8 inputs. Otherwise abort. It is possible for messages to get lost and nodes to fail, and the sufficient data specification can be used in algorithms to ensure progress even if this occurs. In some circumstances it is not possible ensure progress. A node that has not yet received any messages are not a part of the computation and have no roles in detecting such errors. A node that has received some input but not sufficient data to perform its calculation will abort the computation at a specified timeout time. It will then forward an abort message to the receivers it knows about. A node than receives an abort message will ignore it if it has sufficient data to perform the calculation. Otherwise it will aggregate the received abort messages in an abort message that is forwarded to the receivers it knows about. However, a node that receives an abort message might have to wait for a timeout before it can conclude that it should forward abort messages to its known receivers. It could be that it gets sufficient data later even if it receives an abort message at a state without sufficient data. In that case the abort message should be ignored. 3.4 From problem to computation In this paper the SMC algorithms and how they are analyzed and approved are not discussed in details, but a short overview follows. When a statistical analysis is planned the algorithm, its computation graph and the handling of data, are presented for approval to the responsible authority. If this is granted the sub process activity for each node are distributed and configured and the layered representation of the computation graph is generated. The statistical analysis can then be performed. Both one-time and periodical statistical analysis exists. Disease surveillance is an example of an ongoing periodical analysis that is continuously performed at every node in the existing system. 4. Evaluation The infrastructure and tool set described above are evaluated with an example. The purpose of this evaluation is to demonstrate its usability. 4.1 Pearson s r The Pearson product-moment correlation coefficient (Pearson s r) measure of the correlation (linear dependence) between (n samples of) two variables x and y: n i=1 r = (x i x)(y i ȳ) n i=1 (x i x) 2 n i=1 (y i ȳ) 2 In the case of m health institutions with s j samples of x ji and y ji at each institution, r can be rewritten like this: r = m j=1 m sj j=1 i=1 (x j i x)(y ji ȳ) sj i=1 (x j i x) 2 m sj j=1 i=1 (y j i ȳ) 2 At each node j the following three intermediate results have to be calculated: a j = s j i=1 (x j i x)(y ji ȳ) b j = s j i=1 (x j i x) 2 c j = s j i=1 (y j i ȳ) 2 We can then at the coordinator generate the following representation of the computation graph: {(A 1, P 1 ), { {c, (A c, P c ), B (1,c) P1 s c ; (A 2, P 2 ), { {c, (A c, P c ), B (2,c) P2 s c ;. (A m, P m ), { {c, (A c, P c ), B (m,c) Pm s c P c From this graph the coordinator generates the following message to each health institution: M j = {{( x, ȳ) Pj, { {c, (A c, P c ), B (j,c) Pj Sc The initial mean values x and ȳ can be securely calculated using an approach similar to the one discussed above in 2.3. At each health institution j the three intermediate results are calculated and the they are included in the following message to the coordinator c: M (j,c) = { {a j, b j, c j Pc, B (j,c) The coordinator validates the signatures (and nonces) of the received messages and when all input is received Pearson s r is calculated: m j=1 r = a j m j=1 b m j j=1 c j S j S c

4.2 Discussion The computation in Pearson s r is a MapReduce. We have demonstrated that MapReduce based SMC algorithms can be implemented using our infrastructure and toolset. Earlier we have also demonstrated the implementation of other types of computation graphs and algorithms. The provided infrastructure and toolset supports a wide range of computing graphs and SMC algorithms. In this paper we have ignored the details of the current Python based prototype implementation and we have not provided any code examples. This is done to keep the focus on the overall overview of the system and to avoid any implementation details. It is believed that the described system can be implemented using a wide range of programming languages, PKIs, crypto libraries and message systems. The current Python prototype demonstrates the main concepts and is one of the candidates for further development in a production system. 5. Conclusion The privacy of the patients is granted by the combination of the SMC algorithms and the infrastructure and tool set discussed above. A PKI and public key encryption ensures confidentiality. Nodes not part in a computation has no access to any data or intermediate results, and nodes part in a computation only sees data and intermediate results explicit made available for them. When designing a computation it is now possible to focus on the SMC algorithm itself and not how to ensure confidentiality of data flowing through the system. 6. Acknowledgement A special thank you to Johan Gustav Bellika who introduced me to this problem domain and the Snow SMSC project ideas. Also thank you to Yigzaw Kassaye Yitbarek for feedback and comments on this work. References [1] O. Goldreich, S. Micali, and A. Wigderson, How to play any mental game, or a completeness theorem for protocols with honest majority, in Proceedings of the nineteenth annual ACM symposium on Theory of computing. New York: ACM, 1987, pp. 218 229. [2] A. C. Yao, Protocols for secure computations, in Proceedings of the 23rd Annual Symposium on Foundations of Computer Science. New York: ACM Press, 1982, pp. 160 164. [3] J. G. Bellika, G. Aronsen, M. A. Johansen, G. Hartvigsen, and G. S. Simonsen, The snow agent system: A peer-to-peer system for disease surveillance and diagnostic assistance, Advances in Disease Surveillance,, vol. 4, p. 42, 2007. [4] S. Goldwasser, Multi party computations: past and present, in PODC 97, Proceedings of the sixteenth annual ACM symposium on Principles of distributed computing. New York: ACM, 1997, pp. 1 6. [5] A. F. Karr, Secure statistical analysis of distributed databases, emphasizing what we don t know, Journal of Privacy and Confidentiality, vol. 1, no. 2, pp. 197 211, 2009. [6] W. Du and Z. Zhan, A practical approach to solve secure multi-party computation problems, in Proceedings of the 2002 workshop on New security paradigms. New York: ACM, 2002, pp. 127 135. [7] K. E. Emam, J. Hu, J. Mercer, L. Peyton, M. Kantarcioglu, B. Malin, D. Buckeridge, S. Samet, and C. Earle, A secure protocol for protecting the identity of providers when disclosing data for disease surveillance, J Am Med Inform Assoc, vol. 18, pp. 212 217, 2011. [8] J. Dean and S. Ghemawat, MapReduce: Simplified data processing on large clusters, in OSDI 04: Sixth Symposium on Operating System Design and Implementation, San Francisco, Dec. 2004.