Privacy is one of society's greatest concerns. In 2018 the European Union published the General Data Protection Regulation (GDPR) [1] , being this regulation an essential step to strengthen individuals' fundamental rights in the digital age and facilitate business by clarifying rules for companies and public bodies in the digital single market. Nevertheless this concern comes from the origins of civilization. In the Roman Empire, Emperor Julius Caesar used cryptographic techniques (see Caesar ciphers [2] ) so that he could "share" his messages in a way that could not be revealed by his enemies.
In this paper the term "share" is closely related to Secure multi-party computation (SMPC), understanding SMPC as the set of techniques and protocols where several (multi) members (parties) wish to jointly compute (computation) a function f (x i ) (i = 1, 2, . . . p) using their entries, while keeping them private. SMPC has evolved a lot from its beginnings in the 80s, starting from theoretical research (see Yao and Shamir seminar papers [3, 4] ), to real applications that allow the use of this technology to end users [5] . This evolution has been possible thanks to the effort of different research groups, which have tried to develop and optimize the protocols responsible of the computation (see [6] and references therein)
On the other hand, in the last decade we have seen how the field of artificial intelligence has invaded our lives. We are surrounded by applications that use the data we generate in our day to day, sometimes in a controversial way [7] but also helping society, such as the recent case of COVID-19 crisis managment [8] . These applications have one factor in common, they use data, and in many cases this data is private, therefore an entire area or research has emerged: Privacy Preserving Machine Learning (PPML) [9, 10] . In machine learning (and in statistics in general) one of the most common and fundamental problems is the clustering problem, understanding clustering as the way of partition data points into disjoint subsets, being these clusters represented by a set of features.
Privacy Preserving k-means clustering: A secure multi-party computation approach As the reader can infer after this short introduction, this paper will focus on the union of Privacy (via SMPC) and clustering, in particular the well-known K-means clustering algorithm [11, 12] . This problem has been previously addressed depending on the distribution model (horizontal/vertical), the number of parties (n ≥ 2) and the protocol itself [13, 14, 15, 16, 17] .
Here we do address, from our best of our knowledge, a novel way using additive secret sharing and SecureNN [18] protocols over horizontal and vertical private distributed data extended to p parties.
The paper is organized as follows: Section 2 briefly explains how data is typically distributed, explaining the difference between horizontal and vertical distributions; Section 3 introduces the K-means algorithm from a centralized point of view, illustrating the limitations and the conclusions that a user/researcher would obtain when lacking access to the data in a graphical way (Section 3.1). Section 4 deals with the Secure version of the K-means algorithm, explaining the notation (Section 4.1) and the supporting protocols (Section 4.2) which will be used (Section 4.3).
The Abstract makes reference to the fact that data is usually stored in databases spread in different environments. This information can have different structures, being partitioning commonly used when large datasets/tables are involved, so it is needed to split the information into smaller ones. In this paper partitioning will be used for representing how the dataset is split into different Parties P j . Figure 1 depicts the different partitions we will work with. Figure 1 (a) shows the case where all the data is centralized. This is the situation that is typically assumed when K-means is presented, and this is the one that will be assumed in Section 3. Figure 1 shows as well the situation where several parties have either different rows (Figure 1(b) ) or columns ( Figure  1 (c) ) of the same dataset. One of the main handicaps in Machine Learning is the lack of data to train, which leads to results not being accurate enough (however, getting more data can lead to privacy-related issues). Section 4, and in particular, algorithms 5: SHK-means; and 6: SVK-means help to overcome this difficulty by using data from different parties but keeping its privacy. The advantages of having these algorithms will be illustrated in Section 3.1. 6 (a) A single party has access to the whole dataset. 
K-means algorithm is a well-known routine for finding clusters of points (represented by their centers) in an unlabeled dataset. The usual K-means algorithm assumes that the we have full access to the data, leaving aside privacy concerns. In a non-formal language (formalism and notation will be introduced in Section 4.1), the steps are summarized in Algorithm 1 [12] .
Privacy Preserving k-means clustering: A secure multi-party computation approach Algorithm 1: K-means Input :A matrix X n×d of points, a matrix C k×d of centers Output :Data points assigned to a cluster 1. Select k random centers as the initial means repeat 2. Calculate the distance between a data point and a center // Distance step 3. Assign each data point to the closest center // Labelling step 4. Re-calculate the center of each cluster perfoming the mean until mean does not change;
The goal of this section is not to explain the algorithm itself (we invite to the reader to browse the bibliography for a detailed explanation), however core steps 2 and 3 will be briefly explained. In these steps the distance between a data point and a data center is calculated (step 2), assigning a label depending on which cluster is closer (step 3). Next sections will show how to adapt these main steps to SMPC framework, enabling the user to work with data that cannot be shared.
In this section, we showcase the importance of Secure Multi Party Computation and K-means by providing two example situations in which it is essential. This section does not to demonstrate how good or bad the proposed algorithms will be, but rather to demonstrate how the conclusions obtained can change thanks to having access to private information in a secure way.
Addresed new algorithms in Section 4.3 have been developed on top of PySyft [19] . PySyft is a Python library for secure and private Deep Learning, where most of the Additive Secret Sharing and secureNN [18] routines are implemented. This library (in particular PyGrid plattform) is also in charge of managing the communication between the parties involved in the computation. Thanks to this, we just need to focus on the computation itself, speeding up its implementation.
For demonstration (and visualization) purposes we have generated a dummy dataset X consisting of 4 subsets of 100 samples, where each subset follow a 2-dimensional normal Gaussian distribution of centers µ 0 = (5, 3), µ 1 (5, −5), µ 2 (−5, 5) and µ 3 (−3, −5); and a standard deviation σ 0 = σ 1 = σ 2 = σ 3 = 1. Figure 2 (a) depicts the generated dataset that we call the Ground Truth. Privacy Preserving k-means clustering: A secure multi-party computation approach
We have imposed on the data 4 clearly differentiated clusters. Figure 2 (b) shows the results of applying the centralized K-means algorithm (Algorithm 1) with k = 4 (this parameter will be constant throughout this entire subsection, assuming that a priori we don't know how many clusters we want to declare). As expected, we can see how the data points are assigned to one cluster or another depending on the distance to the centers, demonstrating how the algorithm works if it is trained with the whole dataset, nevertheless we do remark that Secure K-means algorithms can be considered as an alternative, obtaining exactly the same results, even in the case we couldn't access all the data. These situations will be discussed in detail in the following subsections depending on data how data is distributed.
Now we address the situation where data is horizontally distributed between the fictional famous characters Alice and Bob [20] , namely,
200×2 , being the intersection between X (A) and X (B) an empty set (X (A) ∩ X (B) = ∅). Figure 3 (a) shows this distribution in a graphical way. Notice that the difference between both comes from the samples, the number of columns remains the same. Now Alice wants to train the centralized K-means algorithm with her data, so she will train the algorithm:
• Training phase. X train = X (A) . The output of this step is the centers C.
For the testing phase, Alice and Bob reach an agreement and Alice sends the model (centers in this case) to Bob, then Bob just have to analyze the results with his own data (data never seen for the algorithm):
• Testing phase. Bob has centers C, so the testing dataset will be X test = X (B) . Bob calculates the distance between C and X test . Alice's data) shows that points have been assigned to 4 clusters which obviously are not the original ones that Ground truth illustrates in Figure 2 (a). The centers C (marked as cyan balls) are placed into different position with respect Figure 2 (b) and for that reason in the testing phase ( : Bob's data) the new points are assigned to clusters to which they do not really belong. In a real use case, the conclusions reached could be totally wrong, due to the algorithm having been trained without sufficient data. Notice that Alice and Bob could have obtained exactly the same results as the centralized version (Figure 2 (b)) but without sending any private information, if they had additively shared their data and had executed Algorithm 5: SHK-means. In this way, Alice could learn nothing from Bob but centers C.
In this subsection data will be vertically distributed between Alice and Bob, i.e., X 400×2 = X
. This situation can be more striking because instead of having a 2-dimensional array (points belong Privacy Preserving k-means clustering: A secure multi-party computation approach to a plane), each party has a 1-dimensional array (points belong to a straight line), so they watch the Ground truth from a different perspective. Figure 4 (a) shows this situation, attaching the views from Alice and Bob perspective's for clarification purposes. Now the same procedure as in the previous subsection is followed: Alice trains the centralized K-means algorithm with her own data (X (A) ), sends the model to Bob, and Bob tests the model with his own data (X (B) ). Figure 4 (b) shows the training performed by Alice with their respective centers. The algorithm has tried to find 4 clusters along the straight line, clusters that obviously do not correspond to the original ones. Figure 4 (c) shows the testing performed by Bob. In this case, whereas Bob has 2 main clusters, the points have been assigned according to the centers C sent by Alice, mixing the real clusters with the ones assigned by the algorithm. Therefore, we can again say that the conclusions reached could be totally wrong, due to the algorithm having been trained without the proper features.
In order to obtain the same conclusions that they would obtain as if they had access to whole data, Alice and Bob can use Algorithm 6: SVK-Means, In this way, none of them would send any original data but they would get the same advantages as if they had it.
Previous Section has explained the centralized K-means and the issues one can find if has no access to data. To overcome these difficulties we will focus on privacy issues. This section establishes the notation that will be used in the following sections. From [18] we borrow the notation and the following protocols: secure matrix multiplication, DReLU and division. Note that DReLU stands for Derivative of ReLU ; that is,
We wish to allow an arbitrary number of parties to provide data and take part in the computation. The protocols in SecureNN are presented for the 2-party case, but they can be easily extended to work with p parties; we provide an example of such an adaptation in our ElementWiseMatMul protocol, an adaptation of SecureNN's MatMul. The protocols require the presence of an extra party that assists in the computations without providing data; we take P 0 as the assistant party, i.e., the responsible of generating triplets for Beaver multiplication [21] , and P 1 , P 2 , . . . , P p to be the parties holding the data.
We assume the aggregate of all parties' data (which we will call X) consists of n samples of d-dimensional data, and this data is shared additively across parties P 1 , P 2 , . . . , P p . X j refers to P j 's share of X, such that X = p j=1 X j (over Z L , a finite field with size L ). X[i] refers to sample i, X[i][j] refers to coordinate j of sample i (1 ≤ i ≤ n, 1 ≤ j ≤ d).
Privacy Preserving k-means clustering: A secure multi-party computation approach
The goal is to split the data into k clusters. These clusters are defined by their centers C, where C[j] refers to the center of cluster j (1 ≤ j ≤ k). The centers will also be shared across all parties, so C = p j=1 C j We wish to reveal as little data as possible; this includes the original samples, the resulting clusters, the label of any given sample, and the distance between the samples and the cluster centers. We consider acceptable revealing how many samples correspond to each cluster (but not which ones) since nothing useful can be extracted from this information while providing a significant speedup of the algorithm; however, the algorithm can easily be modified to keep this information private.
Now we present some preliminary protocols, which will be used as building blocks by the main algorithms presented in Section 4.3.
One of the core operations for the secure K-means algorithm is multiplication. Algorithm 2: ElementWiseMatMul addresses the elementwise secure matrix multiplication, i.e., Z n×d = X n×d Y n×d ( symbol representing the elementwise multiplication), where parties P j (j ≥ 1) hold shares of X, Y . This algorithm is the elementwise version of Π MatMul (see Reference [18] ), extended to p parties.
Input :Shared matrices X m×n and Y m×n ; that is,
1. P 0 computes u 1 , . . . , u p , shares of zero matrices of size m × n (that is, p l=1 u l = 0 m×n ) and sends u i to P i , 1 ≤ i ≤ p 2. P 0 picks random matrices (over Z L ) A m×n and B m×n , computes C m×n = A B 3. P 0 generates shares for A, B, C and sends them to P 1 , P 2 , . . . , P p 4. For j ∈ {1, 2, . . . , p}, P j computes E j = X j − A j and F j = Y j − B j 5. P 1 , P 2 , . . . , P p reconstruct E and F by exchanging shares 6. For j ∈ {2, . . . , p}, P j outputs Z j := u j + X j F + Y j E + C j ;
In Algorithm 1 the Distance step was described as one of the fundamental steps of K-means. Algorithm 3:
MatDist computes the secure squared euclidean distance d 2 between two shared vectores x, y: Privacy Preserving k-means clustering: A secure multi-party computation approach
Last supporting algorithm is Algorithm 4: LabelSamples. It addresses the "label" of a data point X [i], meaning that a point will belong to a cluster if and only if the distance between this point and the j th −cluster is closer than the rest. This algorithm is the secure version of Labelling step from Algorithm 1 Algorithm 4: LabelSamples Input :A shared matrix X n×d of points, a shared matrix C k×d of centers showed the case where data is horizontal partitioned into different parties. SHK-means deals with this situation, translating the core steps from Algorithm 1 into the SMPC framework. It takes all the data as an additively shared matrix, which allows the data to be arbitrarily distributed between all parties. This algorithm learns how data points are grouped while keeping privacy. Taking advantange of Machine Learning terminology, this phase is usually denoted as training phase. In the testing phase (or prediction), i.e., when Centers are already determined and new data points Y (additively shared across parties) need to be labeled, it is enough to compute H = LabelSamples(Y, C) and reconstruct it. Thanks to the fact that H is a one-hot encoded shared matrix, it could also be directly used as an input to some other secure protocol that builds on top of K-means, without losing any privacy.
Privacy Preserving k-means clustering: A secure multi-party computation approach
We are also aware of communication costs (this will be detailed in Section 4.4), for that reason, and as alternative, we suggest to reveal t j , that is, the total number of data points which belong to j th -cluster. This improves the performance of the algorithm.
The second algorithm is fine tuned for the special case in which the data is Vertically Partitioned across parties (see Figure 1 (c)); that is, each party has a different dimension of some common entities. This allows for most of the computation to be done locally, which greatly improves performance. For simplicity purpouses, we slightly modify the notation, assuming that party P j has column j of the data. Each party will end up with column j of the cluster centers. Figure 5 tries to clarify to to the reader to this point. To label new samples (predict), it is enough to perform steps 2 and 3 using the new samples Y instead of X.
The performance bottleneck in all of the presented protocols is in the communication rounds that they require. In this section, we study how these costs scale with the number of clusters k (the number of samples and their dimension only affect the size of the messages, not their amount). Each iteration of the Horizontal K-means protocol requires either 2k + 20 or 2k + 20 + 130 rounds of communication: 2k + 8 from using the LabelSamples protocol, 2 from the multiplications in step 4 (vectorized appropiately), either 130 or 0 rounds for step 5 (depending on the choice to perform the division securely or not), and 10 rounds to compute the stopping criterion.
Each iteration of the Secure Vertical K-means protocol requires 9k rounds of communication: 9(k − 1) from using the ArgMin protocol in step 3, one round for reconstructing E in step 4, and 8 rounds to compute the stopping criterion.
Note that the SVK-means protocol will require more communication rounds than the SHK-means protocol for k > 2, but the messages are considerably smaller, which makes it faster in practice. Figure 6 depicts the rounds of communication versus the number of cluster for every used algorithm.
Protocols and algorithms addressed use SecureNN as a base; nevertheless, it can be replaced by any other secure computation framework that supports the basic operations of addition, multiplication, comparison, and division. We do cite FALCON [22] or AriaNN [23] as recent examples that could be used.
K-means clustering is a basic and essential tool for data scientists. We have presented secure versions of this algorithm, allowing the use of previously inaccessible data, and showing how not using secure algorithms, and thus lacking access to the full dataset, can lead to wrong models and conclusions. These algorithms can be used by any number of parties, and they are tailored both for horizontal and vertical data distributions.
With this work, we have also shown a general approach for adapting traditional machine learning algorithms to a secure setting.