A computer-implemented method comprising: receiving, by a first aggregation server and from each of multiple client devices, impression data that includes, for each impression of a digital component recorded by the client device, a first key value pair that includes (i) a first join key that is based on a unique identifier for the impression and (ii) a first value comprising encrypted impression data that has been encrypted using a first public key of the first aggregation server and using a second public key of a second aggregation server different from the first aggregation server; receiving, by the second aggregation server and from each of at least a portion of the multiple client devices, conversion data that includes, for each conversion recorded by the client device, a second key value pair that includes (i) a second join key that is based on a unique identifier for the conversion and (ii) a second value comprising encrypted conversion data that has been encrypted using the first public key and the second public key; performing, by the first aggregation server and the second aggregation server, a multi-party computation process to decrypt the encrypted impression data and the encrypted conversion data, including: identifying, based on the first join keys and the second join keys, pairs of encrypted conversion data and corresponding encrypted impression data; and decrypting the impression data and the conversion data for each pair of encrypted impression data and conversion data in multiple stages using a first private key that corresponds to the first public key and a second private key that corresponds to the second public key, wherein each stage comprises: one of the first aggregation server or the second aggregation server decrypting one of the encrypted impression data or the encrypted conversion data of each pair of encrypted conversion data and corresponding encrypted impression data and sending resulting data to the other of the first aggregation server or the second aggregation server; and sending the decrypted impression data and the decrypted conversion data to one or more reporting systems. receiving, by a first aggregation server and from each of multiple client devices, impression data that includes, for each impression of a digital component recorded by the client device, a first key value pair that includes (i) a first join key that is based on a unique identifier for the impression and (ii) a first value comprising encrypted impression data that has been encrypted using a first public key of the first aggregation server and using a second public key of a second aggregation server different from the first aggregation server; receiving, by the second aggregation server and from each of at least a portion of the multiple client devices, conversion data that includes, for each conversion recorded by the client device, a second key value pair that includes (i) a second join key that is based on a unique identifier for the conversion and (ii) a second value comprising encrypted conversion data that has been encrypted using the first public key and the second public key; performing, by the first aggregation server and the second aggregation server, a multi-party computation process to decrypt the encrypted impression data and the encrypted conversion data, including: identifying, based on the first join keys and the second join keys, pairs of encrypted conversion data and corresponding encrypted impression data; and decrypting the impression data and the conversion data for each pair of encrypted impression data and conversion data in multiple stages using a first private key that corresponds to the first public key and a second private key that corresponds to the second public key, wherein each stage comprises: one of the first aggregation server or the second aggregation server decrypting one of the encrypted impression data or the encrypted conversion data of each pair of encrypted conversion data and corresponding encrypted impression data and sending resulting data to the other of the first aggregation server or the second aggregation server; and identifying, based on the first join keys and the second join keys, pairs of encrypted conversion data and corresponding encrypted impression data; and decrypting the impression data and the conversion data for each pair of encrypted impression data and conversion data in multiple stages using a first private key that corresponds to the first public key and a second private key that corresponds to the second public key, wherein each stage comprises: one of the first aggregation server or the second aggregation server decrypting one of the encrypted impression data or the encrypted conversion data of each pair of encrypted conversion data and corresponding encrypted impression data and sending resulting data to the other of the first aggregation server or the second aggregation server; and sending the decrypted impression data and the decrypted conversion data to one or more reporting systems.