xtrace_sdk.x_vec.crypto.hamming_client_base

Classes

HammingClientBase

Abstract base class for homomorphic encryption clients used in encrypted Hamming distance search.

Module Contents

class xtrace_sdk.x_vec.crypto.hamming_client_base.HammingClientBase

Bases: abc.ABC

Abstract base class for homomorphic encryption clients used in encrypted Hamming distance search.

Concrete implementations (PaillierClient, PaillierLookupClient) encrypt binary embedding vectors on the client side, send the ciphertexts to XTrace, and later decrypt the encoded Hamming distances returned by the server — without the server ever seeing plaintext vectors or distances.

abstractmethod encrypt_vec_one(embd)

Encrypt a single binary embedding vector.

Parameters:

embd (list[int]) – Binary vector of length embed_len with values in {0, 1}.

Returns:

Encrypted representation of the vector.

Return type:

list[int]

abstractmethod encrypt_vec_batch(embds)

Encrypt a batch of binary embedding vectors.

Parameters:

embds (list[list[int]]) – List of binary vectors, each of length embed_len with values in {0, 1}.

Returns:

List of encrypted representations, one per input vector.

Return type:

list[list[int]]

abstractmethod decode_hamming_client_one(cipher)

Decrypt a single encrypted Hamming distance returned by the XTrace server.

Parameters:

cipher (list[int]) – Encrypted Hamming encoding as returned by the server.

Returns:

Plain-text Hamming distance.

Return type:

int

abstractmethod decode_hamming_client_batch(ciphers)

Decrypt a batch of encrypted Hamming distances returned by the XTrace server.

Parameters:

ciphers (list[list[int]]) – List of encrypted Hamming encodings as returned by the server.

Returns:

List of plain-text Hamming distances, one per input cipher.

Return type:

list[int]