Kernels
An operation on encrypted data, specified independently of the scheme or library that implements it.
Encrypted Byte Extraction
encrypted-byteExtracts one byte of an encrypted word at an encrypted position — random access inside a number, with neither the number nor the position visible.
No open challenges
Encrypted Modular Addition
encrypted-addmodAdds two encrypted integers modulo a third, without the intermediate sum overflowing. Modular arithmetic where every operand, including the modulus, is hidden.
No open challenges
Encrypted Modular Multiplication
encrypted-mulmodMultiplies two encrypted integers modulo a third, with the full-width product never materializing in the clear or overflowing.
No open challenges
Encrypted Shift Left
encrypted-shlShifts an encrypted integer left by an encrypted number of positions, which is multiplication by a power of two chosen by data nobody can read.
No open challenges
Encrypted Shift Right
encrypted-shrShifts an encrypted integer right by an encrypted number of positions — integer division by a power of two, with the discarded bits genuinely discarded.
No open challenges
Encrypted Sign Extension
encrypted-signextendExtends a shorter signed encrypted integer to full width, preserving its sign. The step that lets narrow encrypted values participate in wide arithmetic.
No open challenges
Encrypted Signed Division
encrypted-sdivSigned integer division of encrypted operands, truncating toward zero. Division is the operation encrypted arithmetic lacks outright, and signedness doubles the number of cases.
No open challenges
Encrypted Signed Remainder
encrypted-smodThe remainder of signed encrypted division, taking its sign from the dividend. The companion of signed division, and wrong in a different way if the sign rule is missed.
No open challenges
Encrypted XOR
encrypted-xorBitwise exclusive or over two encrypted integers. Trivial on a bit-level scheme, awkward on an arithmetic one, which is exactly why it is worth measuring.
No open challenges
Encrypted Zero Test
encrypted-iszeroReturns one when an encrypted value is zero and zero otherwise. The smallest possible predicate, and the one every encrypted branch is eventually built from.
No open challenges