Homomorphic sorting is a method of arranging at least two cryptotext multivectors of a related data group in a descending order. This process is performed by an intermediary computing system, and the result is sent to the destination computing device. In some embodiments, this process can be implemented using the Diffie-Hellman key exchange technique.
A source computer or computing devices, connected to an intermediary computing system, may send a “sort request” over a network or bus connection. The “sort request” entity may command the intermediary entity to sort the related data group. After a sort is complete, the resulting encrypted data value is sent to the destination computing device, where it is decrypted and sorted for unencrypted values.
An intermediary computing system, in response to the “sort request,” initiates a homomorphic sort operation. For example, the sort request may request the sorting of at least two cryptotext multivectors within a related data group, which can include at least two positive or zero numbers, as well as negative numbers.
An intermediary computing system, in turn, begins the homomorphic sorting operation by first converting the cryptotext multivectors from the source into the corresponding cryptotext numeric values. As shown in Figure 5, this is done through the use of a mathematical relationship. However, the form of the multivector coefficients remains the same. To accomplish this, the values of the multivector coefficients are plugged into an equation that retains the subtraction of C2 and cn coefficients.
The intermediary computing system converts the sorted related data group back to cryptotext multivectors for further sorting operations. If the intermediary computing system is sending the sorted related data group over a network, the result may be converted to a non-multivector cryptotext. Regardless, the sorted group of cryptotext multivectors will be properly sorted for the unencrypted values.
The sorting of encrypted values can be performed without the use of security keys. This process is also known as homomorphic encryption sorting. It provides an efficient way to perform arbitrary operations on encrypted data. These operations can be a single instruction multiple data technique or a constant extraction technique.
Using a single instruction multiple data technique can improve computational performance and reduce ciphertext size. It can also be used in conjunction with the constant extraction technique to provide an even more effective system for executing arbitrary operations on encrypted data.
Although there are several methodologies for implementing homomorphic sorting, some examples are described below. All operations of a collective homomorphic sort process should use the same mathematical relationship. Alternatively, the actual values of the coefficients can be chosen by the user. However, the form of the coefficients will remain the same, regardless of the operation. There are many ways to select the coefficient values, but the skilled person in the art will recognize a number of different approaches.
Using a homomorphic algorithm to sort encrypted data allows the program to manage the data without knowing its contents. However, because the data is encrypted, the steps involved are rather slow.