Data Processing Becomes Anonymised

--

We need to move to an information world where every single data element is be encrypted at every point, no matter if it is at rest, in motion, or in process. The in-process part is our greatest challenge, and only homomorphic encryption will solve this problem. In the future our data processors may operate on encrypted values.

One of the best methods around for full homomorphic encryption is BGV. It was proposed by Zvika Brakerski, Craig Gentry and Vinod Vaikuntanathan [paper].

With BGV, we encrypt a single bit at a time, and then fit into a circuit. Overall it uses a Ring LWE (Learning With Errors) method [theory]. The following is an outline (and based on [code]:

import math
import random
import numpy as np
bit=0def setup(l, m, b):
q = random.getrandbits(m)
q = 10
d = 10
n = 10
chi = 1
N = int(math.ceil((2 * n + 1) * math.log(q, 2)))
return (q, d, n, N, chi)
def secret_key_gen(params):
(q, d, n, N, chi) = params
s = np.random.randint(0, q, n + 1)
s[0] = 1
return s
def public_key_gen(params, sk):
(q, d, n, N, chi) = params
A = np.random.randint(0, q, N * n)
A.resize(N, n)
e = np.random.randint(0, q, N)
b = np.dot(A, sk[1:]) + 2 * e
b.resize(N, 1)
A =…

--

--

Prof Bill Buchanan OBE FRSE
ASecuritySite: When Bob Met Alice

Professor of Cryptography. Serial innovator. Believer in fairness, justice & freedom. Based in Edinburgh. Old World Breaker. New World Creator. Building trust.