xtrace_sdk.crypto.paillier_client
Classes
This is an implementation of paillier cryptography system optimized for caculating hamming distance between |
Module Contents
- class xtrace_sdk.crypto.paillier_client.PaillierClient(embed_len=512, key_len=1024, skip_key_gen=False)
Bases:
xtrace_sdk.crypto.hamming_client_base.HammingClientBaseThis is an implementation of paillier cryptography system optimized for caculating hamming distance between two binary vectors.
- chunk_len = 2048
- key_len = 1024
- embed_len = 512
- stringify_pk()
stringify public key for networking/storage purpose
- Returns:
stringified public key
- Return type:
- stringify_sk()
stringify secret key for networking/storage purpose
- Returns:
stringified secret key
- Return type:
- stringify_config()
stringify crypto context for networking/storage purpose
- Returns:
stringified crypto context
- Return type:
- load_stringified_keys(pk, sk)
load stringified keys
- load_config(config)
load crypto context from a json string
- id2power(id_)
helper: return chunk id & corresponding power of 2 given an id in the original padded arr
- encrypt(embd)
This function implements the encryption scheme on embedding vectors that needs to be run on client side.
- Parameters:
embd (iterable[0,1]) – the embedding vector to be encrypted
- Returns:
return a list of length chunk_num contaning PaillierEncryptedNumber
- Return type:
PaillierEncryptedNumber
- encode_hamming_client(ct1, ct2)
This function is called from client side.
- Parameters:
embd1 (PaillierEncryptedNumber) – ciphertext of embedding 1
embd2 (PaillierEncryptedNumber) – ciphertext of embedding 2
ct1 (xtrace_sdk.utils.xtrace_types.PaillierEncryptedNumber)
ct2 (xtrace_sdk.utils.xtrace_types.PaillierEncryptedNumber)
- Returns:
return a list of length chunk_num contaning large int
- Return type:
PaillierEncryptedNumber
- static encode_hamming_server(ct1, ct2, pk)
This function is called from server side.
- Parameters:
ct1 (PaillierEncryptedNumber) – ciphertext of embedding 1
ct2 (PaillierEncryptedNumber) – ciphertext of embedding 2
pk (PaillierPublicKey) – public key
- Returns:
return a list of length chunk_num contaning large int
- Return type:
PaillierEncryptedNumber
- decode_hamming_client(cipher)
Given a PaillierEncryptedNumber returned from server, calculate the hamming distance encoded
- Parameters:
cipher (PaillierEncryptedNumber) – a cipher regturned by server which encodes the hamming distance between two encrypted embeddings
- Returns:
hamming distance encoded by cipher
- Return type: