Universal Recursive Rotation Translator¶
The UniversalRecursiveRotationTranslator
implements universal blind quantum computation
using recursive decryption of arbitrary rotations.
Overview¶
This translator enables efficient delegation of parametric quantum circuits using recursive rotation decryption techniques.
The implementation follows:
Joshi et al. (2025)
Features¶
arbitrary-angle delegation
recursive decryption
universal resource-set construction
optimized parametric delegation
Supported Gates¶
Supported gates include:
HRzCZ
Universal Resource Set¶
The translator uses a universal resource set constructed from recursive rotation primitives.
This enables:
efficient parametric computation
low-depth delegation
practical variational circuit execution
Optimizations¶
The implementation contains practical optimizations for recursive decryption workflows to reduce delegation overhead.
Applications¶
Suitable for:
variational quantum algorithms
parametric blind computation
low-depth delegated circuits
universal blind delegation
Module Documentation¶
- class blind_transpiler.translators.universalRecursiveRotationTranslator.UniversalRecursiveRotationTranslator[source]¶
Bases:
BaseTranslatorLibrary class for full-blind quantum computation. Build on top of HomomorphicTranslation class. Inheritance of above class can be taken, but might be a bad idea. Logic is based on paper:
Joshi, Mohit, Manoj Kumar Mishra, and S. Karthikeyan. “Universal Blind Quantum Computation with Recursive Rotation Gates.” arXiv preprint arXiv:2512.15101 (2025).
- Assumes constant compute space of 11 ancilla qubits. Note, s,t can be removed as rz can implement them also:
added ‘rz’ gate in resource set which was not present in the literature, this will help practical universal computation the fdqc compute space is 11, now, if any update is done here also change the ‘constant_compute_space’ in BQC.fdqc()
This uses an optimized version of algorithm given in paper ‘universal blind quantum computation using recursive rotation gates’ that uses omly M gate instead of M^2
- cz(key, qargs, gate_seq)[source]¶
Encryption and decryption logic of ‘cz’ gate for ubqc. Needed size of encryption key = 4
- Parameters:
key – list[int] - contains randomly generated binary keys, each element can be 0 or 1.
qargs – list[int] - contains the argument on which the key has to be applied.
gate_seq – int - used to store the information of which gate from original circuit, this translation is coming from.
- Returns:
Tuple[BOP] - tuple of BOP class object sequence needed for encryption, compute and decryption of the ‘cz’ gate.
- Raises:
None –
- Library Dependency:
qiksit.circuit.library - SwapGate
- h(key, qargs, gate_seq)[source]¶
Encryption and decryption logic of ‘h’ gate for ubqc. Needed size of encryption key = 2
- Parameters:
key – list[int] - contains randomly generated binary keys, each element can be 0 or 1.
qargs – list[int] - contains the argument on which the key has to be applied.
gate_seq – int - used to store the information of which gate from original circuit, this translation is coming from.
- Returns:
Tuple[BOP] - tuple of BOP class object sequence needed for encryption, compute and decryption of the ‘h’ gate.
- Raises:
None –
- Library Dependency:
qiksit.circuit.library - SwapGate
- rz(theta, key, qargs, gate_seq)[source]¶
Encryption and decryption logic of ‘rz’ gate for ubqc. Needed size of encryption key = need variable length.
- Parameters:
theta – float - contain the theta parameter (in radian) to apply theta rotation on the circuit.
key – list[int] - contains randomly generated binary keys, each element can be 0 or 1. Size should be 2M
qargs – list[int] - contains the argument on which the key has to be applied.
gate_seq – int - used to store the information of which gate from original circuit, this translation is coming from.
- Returns:
Tuple[BOP] - tuple of BOP class object sequence needed for encryption, compute and decryption of the ‘rz’ gate.
- Raises:
None –
- Library Dependency:
qiksit.circuit.library - SwapGate