JaxiteWord
‘jaxiteword’ Dialect
The jaxiteword dialect is an exit dialect for generating py code against the jaxiteword library API,
using the jaxiteword parameters and encoding scheme.
See https://github.com/google/jaxite/jaxite_word
JaxiteWord types
CCParamsType
The CCParams required to create CryptoContext.
Syntax: !jaxiteword.cc_params
CiphertextType
Syntax:
!jaxiteword.ciphertext<
int, # polys
int, # towers
int # degrees
>
A ciphertext - a three dimensional array.
Parameters:
| Parameter | C++ type | Description |
|---|---|---|
| polys | int | |
| towers | int | |
| degrees | int |
CryptoContextType
The CryptoContext required to perform homomorphic operations in JaxiteWord.
Syntax: !jaxiteword.crypto_context
EvalKeyType
The evaluation key required to keyswitch/relinearize/rotate/automorphism operation in JaxiteWord.
Syntax: !jaxiteword.eval_key
ModulusListType
Syntax:
!jaxiteword.modulus_list<
::llvm::ArrayRef<::mlir::IntegerAttr> # modulus_list
>
A list of modulus values.
Parameters:
| Parameter | C++ type | Description |
|---|---|---|
| modulus_list | ::llvm::ArrayRef<::mlir::IntegerAttr> |
PrivateKeyType
The private key required to decrypt a ciphertext in JaxiteWord.
Syntax: !jaxiteword.private_key
PublicKeyType
The public key required to encrypt plaintext in JaxiteWord.
Syntax: !jaxiteword.public_key
JaxiteWord ops
jaxiteword.add (heir::jaxiteword::AddOp)
Syntax:
operation ::= `jaxiteword.add` operands attr-dict `:` functional-type(operands, results)
The operation computed by this function is homomorphic addition.
Traits: AlwaysSpeculatableImplTrait, Commutative
Interfaces: ConditionallySpeculatable, InferTypeOpInterface, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Operands:
| Operand | Description |
|---|---|
value_a | |
value_b | |
modulus_list |
Results:
| Result | Description |
|---|---|
result |
jaxiteword.make_ciphertext (heir::jaxiteword::MakeCiphertextOp)
Create a JaxiteWord ciphertext.
Syntax:
operation ::= `jaxiteword.make_ciphertext` $polys `,` $towers `,` $degrees attr-dict `:` type($ciphertext)
Creates a JaxiteWord ciphertext with the given dimensions.
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Operands:
| Operand | Description |
|---|---|
polys | 32-bit signless integer |
towers | 32-bit signless integer |
degrees | 32-bit signless integer |
Results:
| Result | Description |
|---|---|
ciphertext |