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, (i) a first join key that is based on a first unique identifier for the client device or an application on the client device at which the impression occurred, (ii) 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, and (iii) encrypted impression time data that indicates a time at which the impression occurred; 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, (i) a second join key that is based on a second unique identifier for the client device or an application on the client device at which the conversion occurred and (ii) a second value comprising encrypted conversion data that has been encrypted using the first public key and the second public key, and (iii) encrypted conversion time data that indicates a time at which the conversion occurred; performing, by the first aggregation server and the second aggregation server, a multi-party computation process to generate chronological sequences of encrypted impression data and encrypted conversion data and to decrypt the encrypted impression data and the encrypted conversion data, including: identifying, based on the first join keys and the second join keys, groups of encrypted conversion data and corresponding encrypted impression data; and ordering, for each chronological sequence, the encrypted conversion data and the corresponding encrypted impression data based on the encrypted impression time data and the encrypted conversion time data; and decrypting the impression data and the conversion data for each sequence 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. 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, (i) a first join key that is based on a first unique identifier for the client device or an application on the client device at which the impression occurred, (ii) 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, and (iii) encrypted impression time data that indicates a time at which the impression occurred; 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, (i) a second join key that is based on a second unique identifier for the client device or an application on the client device at which the conversion occurred and (ii) a second value comprising encrypted conversion data that has been encrypted using the first public key and the second public key, and (iii) encrypted conversion time data that indicates a time at which the conversion occurred; performing, by the first aggregation server and the second aggregation server, a multi-party computation process to generate chronological sequences of encrypted impression data and encrypted conversion data and to decrypt the encrypted impression data and the encrypted conversion data, including: identifying, based on the first join keys and the second join keys, groups of encrypted conversion data and corresponding encrypted impression data; and ordering, for each chronological sequence, the encrypted conversion data and the corresponding encrypted impression data based on the encrypted impression time data and the encrypted conversion time data; and decrypting the impression data and the conversion data for each sequence 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. identifying, based on the first join keys and the second join keys, groups of encrypted conversion data and corresponding encrypted impression data; and ordering, for each chronological sequence, the encrypted conversion data and the corresponding encrypted impression data based on the encrypted impression time data and the encrypted conversion time data; and decrypting the impression data and the conversion data for each sequence 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.