17 KiB
'TFHE' Dialect
High Level Fully Homomorphic Encryption dialect A dialect for representation of high level operation on fully homomorphic ciphertext.
Operation definition
TFHE.batched_add_glwe_cst_int (::mlir::concretelang::TFHE::ABatchedAddGLWECstIntOp)
Batched version of AddGLWEIntOp
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Operands:
| Operand | Description |
|---|---|
ciphertext |
A GLWE ciphertext |
plaintexts |
1D tensor of integer values |
Results:
| Result | Description |
|---|---|
result |
1D tensor of A GLWE ciphertext values |
TFHE.batched_add_glwe_int_cst (::mlir::concretelang::TFHE::ABatchedAddGLWEIntCstOp)
Batched version of AddGLWEIntOp
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Operands:
| Operand | Description |
|---|---|
ciphertexts |
1D tensor of A GLWE ciphertext values |
plaintext |
integer |
Results:
| Result | Description |
|---|---|
result |
1D tensor of A GLWE ciphertext values |
TFHE.batched_add_glwe_int (::mlir::concretelang::TFHE::ABatchedAddGLWEIntOp)
Batched version of AddGLWEIntOp
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Operands:
| Operand | Description |
|---|---|
ciphertexts |
1D tensor of A GLWE ciphertext values |
plaintexts |
1D tensor of integer values |
Results:
| Result | Description |
|---|---|
result |
1D tensor of A GLWE ciphertext values |
TFHE.batched_add_glwe (::mlir::concretelang::TFHE::ABatchedAddGLWEOp)
Batched version of AddGLWEOp
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Operands:
| Operand | Description |
|---|---|
ciphertexts_a |
1D tensor of A GLWE ciphertext values |
ciphertexts_b |
1D tensor of A GLWE ciphertext values |
Results:
| Result | Description |
|---|---|
result |
1D tensor of A GLWE ciphertext values |
TFHE.add_glwe_int (::mlir::concretelang::TFHE::AddGLWEIntOp)
Returns the sum of a clear integer and an lwe ciphertext
Traits: AlwaysSpeculatableImplTrait
Interfaces: BatchableOpInterface, ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Operands:
| Operand | Description |
|---|---|
a |
A GLWE ciphertext |
b |
integer |
Results:
| Result | Description |
|---|---|
| «unnamed» | A GLWE ciphertext |
TFHE.add_glwe (::mlir::concretelang::TFHE::AddGLWEOp)
Returns the sum of two lwe ciphertexts
Traits: AlwaysSpeculatableImplTrait
Interfaces: BatchableOpInterface, ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Operands:
| Operand | Description |
|---|---|
a |
A GLWE ciphertext |
b |
A GLWE ciphertext |
Results:
| Result | Description |
|---|---|
| «unnamed» | A GLWE ciphertext |
TFHE.batched_bootstrap_glwe (::mlir::concretelang::TFHE::BatchedBootstrapGLWEOp)
Batched version of KeySwitchGLWEOp
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Attributes:
| Attribute | MLIR Type | Description |
|---|---|---|
key |
::mlir::concretelang::TFHE::GLWEBootstrapKeyAttr | An attribute representing bootstrap key. |
Operands:
| Operand | Description |
|---|---|
ciphertexts |
1D tensor of A GLWE ciphertext values |
lookup_table |
1D tensor of 64-bit signless integer values |
Results:
| Result | Description |
|---|---|
result |
1D tensor of A GLWE ciphertext values |
TFHE.batched_keyswitch_glwe (::mlir::concretelang::TFHE::BatchedKeySwitchGLWEOp)
Batched version of KeySwitchGLWEOp
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Attributes:
| Attribute | MLIR Type | Description |
|---|---|---|
key |
::mlir::concretelang::TFHE::GLWEKeyswitchKeyAttr | An attribute representing keyswitch key. |
Operands:
| Operand | Description |
|---|---|
ciphertexts |
1D tensor of A GLWE ciphertext values |
Results:
| Result | Description |
|---|---|
result |
1D tensor of A GLWE ciphertext values |
TFHE.batched_mapped_bootstrap_glwe (::mlir::concretelang::TFHE::BatchedMappedBootstrapGLWEOp)
Batched version of KeySwitchGLWEOp which also batches the lookup table
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Attributes:
| Attribute | MLIR Type | Description |
|---|---|---|
key |
::mlir::concretelang::TFHE::GLWEBootstrapKeyAttr | An attribute representing bootstrap key. |
Operands:
| Operand | Description |
|---|---|
ciphertexts |
1D tensor of A GLWE ciphertext values |
lookup_table |
2D tensor of 64-bit signless integer values |
Results:
| Result | Description |
|---|---|
result |
1D tensor of A GLWE ciphertext values |
TFHE.batched_mul_glwe_cst_int (::mlir::concretelang::TFHE::BatchedMulGLWECstIntOp)
Batched version of MulGLWECstIntOp
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Operands:
| Operand | Description |
|---|---|
ciphertext |
A GLWE ciphertext |
cleartexts |
1D tensor of integer values |
Results:
| Result | Description |
|---|---|
result |
1D tensor of A GLWE ciphertext values |
TFHE.batched_mul_glwe_int_cst (::mlir::concretelang::TFHE::BatchedMulGLWEIntCstOp)
Batched version of MulGLWEIntCstOp
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Operands:
| Operand | Description |
|---|---|
ciphertexts |
1D tensor of A GLWE ciphertext values |
cleartext |
integer |
Results:
| Result | Description |
|---|---|
result |
1D tensor of A GLWE ciphertext values |
TFHE.batched_mul_glwe_int (::mlir::concretelang::TFHE::BatchedMulGLWEIntOp)
Batched version of MulGLWEIntOp
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Operands:
| Operand | Description |
|---|---|
ciphertexts |
1D tensor of A GLWE ciphertext values |
cleartexts |
1D tensor of integer values |
Results:
| Result | Description |
|---|---|
result |
1D tensor of A GLWE ciphertext values |
TFHE.batched_neg_glwe (::mlir::concretelang::TFHE::BatchedNegGLWEOp)
Batched version of NegGLWEOp
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Operands:
| Operand | Description |
|---|---|
ciphertexts |
1D tensor of A GLWE ciphertext values |
Results:
| Result | Description |
|---|---|
result |
1D tensor of A GLWE ciphertext values |
TFHE.bootstrap_glwe (::mlir::concretelang::TFHE::BootstrapGLWEOp)
Programmable bootstraping of a GLWE ciphertext with a lookup table
Traits: AlwaysSpeculatableImplTrait
Interfaces: BatchableOpInterface, ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Attributes:
| Attribute | MLIR Type | Description |
|---|---|---|
key |
::mlir::concretelang::TFHE::GLWEBootstrapKeyAttr | An attribute representing bootstrap key. |
Operands:
| Operand | Description |
|---|---|
ciphertext |
A GLWE ciphertext |
lookup_table |
1D tensor of 64-bit signless integer values |
Results:
| Result | Description |
|---|---|
result |
A GLWE ciphertext |
TFHE.encode_expand_lut_for_bootstrap (::mlir::concretelang::TFHE::EncodeExpandLutForBootstrapOp)
Encode and expand a lookup table so that it can be used for a bootstrap.
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Attributes:
| Attribute | MLIR Type | Description |
|---|---|---|
polySize |
::mlir::IntegerAttr | 32-bit signless integer attribute |
outputBits |
::mlir::IntegerAttr | 32-bit signless integer attribute |
isSigned |
::mlir::BoolAttr | bool attribute |
Operands:
| Operand | Description |
|---|---|
input_lookup_table |
1D tensor of 64-bit signless integer values |
Results:
| Result | Description |
|---|---|
result |
1D tensor of 64-bit signless integer values |
TFHE.encode_lut_for_crt_woppbs (::mlir::concretelang::TFHE::EncodeLutForCrtWopPBSOp)
Encode and expand a lookup table so that it can be used for a wop pbs.
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Attributes:
| Attribute | MLIR Type | Description |
|---|---|---|
crtDecomposition |
::mlir::ArrayAttr | 64-bit integer array attribute |
crtBits |
::mlir::ArrayAttr | 64-bit integer array attribute |
modulusProduct |
::mlir::IntegerAttr | 32-bit signless integer attribute |
isSigned |
::mlir::BoolAttr | bool attribute |
Operands:
| Operand | Description |
|---|---|
input_lookup_table |
1D tensor of 64-bit signless integer values |
Results:
| Result | Description |
|---|---|
result |
2D tensor of 64-bit signless integer values |
TFHE.encode_plaintext_with_crt (::mlir::concretelang::TFHE::EncodePlaintextWithCrtOp)
Encodes a plaintext by decomposing it on a crt basis.
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Attributes:
| Attribute | MLIR Type | Description |
|---|---|---|
mods |
::mlir::ArrayAttr | 64-bit integer array attribute |
modsProd |
::mlir::IntegerAttr | 64-bit signless integer attribute |
Operands:
| Operand | Description |
|---|---|
input |
64-bit signless integer |
Results:
| Result | Description |
|---|---|
result |
1D tensor of 64-bit signless integer values |
TFHE.keyswitch_glwe (::mlir::concretelang::TFHE::KeySwitchGLWEOp)
Change the encryption parameters of a glwe ciphertext by applying a keyswitch
Traits: AlwaysSpeculatableImplTrait
Interfaces: BatchableOpInterface, ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Attributes:
| Attribute | MLIR Type | Description |
|---|---|---|
key |
::mlir::concretelang::TFHE::GLWEKeyswitchKeyAttr | An attribute representing keyswitch key. |
Operands:
| Operand | Description |
|---|---|
ciphertext |
A GLWE ciphertext |
Results:
| Result | Description |
|---|---|
result |
A GLWE ciphertext |
TFHE.mul_glwe_int (::mlir::concretelang::TFHE::MulGLWEIntOp)
Returns the product of a clear integer and an lwe ciphertext
Traits: AlwaysSpeculatableImplTrait
Interfaces: BatchableOpInterface, ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Operands:
| Operand | Description |
|---|---|
a |
A GLWE ciphertext |
b |
integer |
Results:
| Result | Description |
|---|---|
| «unnamed» | A GLWE ciphertext |
TFHE.neg_glwe (::mlir::concretelang::TFHE::NegGLWEOp)
Negates a glwe ciphertext
Traits: AlwaysSpeculatableImplTrait
Interfaces: BatchableOpInterface, ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Operands:
| Operand | Description |
|---|---|
a |
A GLWE ciphertext |
Results:
| Result | Description |
|---|---|
| «unnamed» | A GLWE ciphertext |
TFHE.sub_int_glwe (::mlir::concretelang::TFHE::SubGLWEIntOp)
Substracts an integer and a GLWE ciphertext
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Operands:
| Operand | Description |
|---|---|
a |
integer |
b |
A GLWE ciphertext |
Results:
| Result | Description |
|---|---|
| «unnamed» | A GLWE ciphertext |
TFHE.wop_pbs_glwe (::mlir::concretelang::TFHE::WopPBSGLWEOp)
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Attributes:
| Attribute | MLIR Type | Description |
|---|---|---|
ksk |
::mlir::concretelang::TFHE::GLWEKeyswitchKeyAttr | An attribute representing keyswitch key. |
bsk |
::mlir::concretelang::TFHE::GLWEBootstrapKeyAttr | An attribute representing bootstrap key. |
pksk |
::mlir::concretelang::TFHE::GLWEPackingKeyswitchKeyAttr | An attribute representing Wop Pbs key. |
crtDecomposition |
::mlir::ArrayAttr | 64-bit integer array attribute |
cbsLevels |
::mlir::IntegerAttr | 32-bit signless integer attribute |
cbsBaseLog |
::mlir::IntegerAttr | 32-bit signless integer attribute |
Operands:
| Operand | Description |
|---|---|
ciphertexts |
|
lookupTable |
2D tensor of 64-bit signless integer values |
Results:
| Result | Description |
|---|---|
result |
TFHE.zero (::mlir::concretelang::TFHE::ZeroGLWEOp)
Returns a trivial encryption of 0
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Results:
| Result | Description |
|---|---|
out |
A GLWE ciphertext |
TFHE.zero_tensor (::mlir::concretelang::TFHE::ZeroTensorGLWEOp)
Returns a tensor containing trivial encryptions of 0
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Results:
| Result | Description |
|---|---|
tensor |
Attribute definition
GLWEBootstrapKeyAttr
An attribute representing bootstrap key.
Syntax:
#TFHE.bsk<
mlir::concretelang::TFHE::GLWESecretKey, # inputKey
mlir::concretelang::TFHE::GLWESecretKey, # outputKey
int, # polySize
int, # glweDim
int, # levels
int, # baseLog
int # index
>
Parameters:
| Parameter | C++ type | Description |
|---|---|---|
| inputKey | mlir::concretelang::TFHE::GLWESecretKey |
|
| outputKey | mlir::concretelang::TFHE::GLWESecretKey |
|
| polySize | int |
|
| glweDim | int |
|
| levels | int |
|
| baseLog | int |
|
| index | int |
GLWEKeyswitchKeyAttr
An attribute representing keyswitch key.
Syntax:
#TFHE.ksk<
mlir::concretelang::TFHE::GLWESecretKey, # inputKey
mlir::concretelang::TFHE::GLWESecretKey, # outputKey
int, # levels
int, # baseLog
int # index
>
Parameters:
| Parameter | C++ type | Description |
|---|---|---|
| inputKey | mlir::concretelang::TFHE::GLWESecretKey |
|
| outputKey | mlir::concretelang::TFHE::GLWESecretKey |
|
| levels | int |
|
| baseLog | int |
|
| index | int |
GLWEPackingKeyswitchKeyAttr
An attribute representing Wop Pbs key.
Syntax:
#TFHE.pksk<
mlir::concretelang::TFHE::GLWESecretKey, # inputKey
mlir::concretelang::TFHE::GLWESecretKey, # outputKey
int, # outputPolySize
int, # innerLweDim
int, # glweDim
int, # levels
int, # baseLog
int # index
>
Parameters:
| Parameter | C++ type | Description |
|---|---|---|
| inputKey | mlir::concretelang::TFHE::GLWESecretKey |
|
| outputKey | mlir::concretelang::TFHE::GLWESecretKey |
|
| outputPolySize | int |
|
| innerLweDim | int |
|
| glweDim | int |
|
| levels | int |
|
| baseLog | int |
|
| index | int |
Type definition
GLWECipherTextType
A GLWE ciphertext
An GLWE cipher text
Parameters:
| Parameter | C++ type | Description |
|---|---|---|
| key | mlir::concretelang::TFHE::GLWESecretKey |