A computer-implemented method comprising: receiving a data element identifying a set of candidate digital components and, for each candidate digital component, a set of distribution parameters for the candidate digital component; for each candidate digital component, providing encrypted selection data for the candidate digital component as input to a cryptographic analysis application running in a trusted hardware module of a client device, wherein the encrypted selection data represents the set of distribution parameters for the candidate digital component and is encrypted using a zero-knowledge proof protocol, and wherein the cryptographic analysis application is configured to determine a measure of match between the selection data and user attributes of a user of the client device, and receiving, as an output of the cryptographic analysis application, an encrypted result that indicates the measure of match between the selection data and the user attributes of a user, wherein the encrypted result is encrypted using the zero-knowledge proof protocol; decrypting the encrypted result for each candidate digital component; selecting, from the candidate digital components, a given digital component based on the measure of match for each candidate digital component; and displaying the given digital component. receiving a data element identifying a set of candidate digital components and, for each candidate digital component, a set of distribution parameters for the candidate digital component; for each candidate digital component, providing encrypted selection data for the candidate digital component as input to a cryptographic analysis application running in a trusted hardware module of a client device, wherein the encrypted selection data represents the set of distribution parameters for the candidate digital component and is encrypted using a zero-knowledge proof protocol, and wherein the cryptographic analysis application is configured to determine a measure of match between the selection data and user attributes of a user of the client device, and receiving, as an output of the cryptographic analysis application, an encrypted result that indicates the measure of match between the selection data and the user attributes of a user, wherein the encrypted result is encrypted using the zero-knowledge proof protocol; providing encrypted selection data for the candidate digital component as input to a cryptographic analysis application running in a trusted hardware module of a client device, wherein the encrypted selection data represents the set of distribution parameters for the candidate digital component and is encrypted using a zero-knowledge proof protocol, and wherein the cryptographic analysis application is configured to determine a measure of match between the selection data and user attributes of a user of the client device, and receiving, as an output of the cryptographic analysis application, an encrypted result that indicates the measure of match between the selection data and the user attributes of a user, wherein the encrypted result is encrypted using the zero-knowledge proof protocol; decrypting the encrypted result for each candidate digital component; selecting, from the candidate digital components, a given digital component based on the measure of match for each candidate digital component; and displaying the given digital component.