Techniques for securely executing code that operates on encrypted data on a public computer

    公开(公告)号:US11461435B2

    公开(公告)日:2022-10-04

    申请号:US16955276

    申请日:2018-12-17

    IPC分类号: H04L9/06 G06F21/14

    摘要: Techniques, for secure processing of encrypted data on public resources, include receiving first data indicating a sequence of reversible q-bit gates including a first segment for decrypting, a second segment for operating on the decrypted data, and a third segment for encrypting the resulting data. Second data indicates rules for replacing a first sequence of two gates operating on at least one shared bit of an input N-bit word with a different second sequence of one or more gates that produce the same output N-bit word. The second data is used to propagate: a gate from the first segment a distance into the second segment or beyond; and, a gate from the third segment a distance into the second segment or before. This produces an obfuscated sequence of reversible gates. Obfuscated instructions based on the obfuscated sequence of gates are sent to the public resources.

    SYSTEMS AND METHODS FOR UNIVERSAL REVERSIBLE COMPUTING

    公开(公告)号:US20190122134A1

    公开(公告)日:2019-04-25

    申请号:US16092623

    申请日:2017-04-14

    IPC分类号: G06N10/00 G06N7/00 G06F9/38

    摘要: Methods for performing computations using a lattice of interconnected devices are described. The lattice is programmed to perform the computation by choosing a specific logic function for each device. An energy penalty is attributed to each device when the associated input and output bits do not satisfy a truth table of the logic function of the device. Input data is inserted on the boundaries of the lattice by attributing energy penalties to the input and output bits at the boundaries when the states of those bits do not match the input data. The energy in the lattice is lowered for the lattice to reach a configuration where all gate and boundary constraints are satisfied. The result of the computation is read from the output data encoded in the states of the bits of the devices at the boundaries of the lattice which are not already fixed by the input data.