Skip to main content


Fig. 4 | BMC Genomics

Fig. 4

From: A secure SNP panel scheme using homomorphically encrypted K-mers without SNP calling on the user side

Fig. 4

A detailed example to how multiple K-mers are encoded into vectors in parallel. This figure depicts how K-mers are divided into small blocks and then encrypted to vectors. In this example, two 6-mers K(0)=CATCAT and K(1)=CATGTA are encoded into B=3 blocks each of size L=2 to reduce the size of ciphertext space. Here, the value of slots is a power of 2 bounded by (42)·2. The subscript b of \(\vec {v}_{b}\) indicates the index of blocks encoded starting from 0. The values of elements in the vectors are indicators to \(K^{n}[b]= \frac {i-n}{2}\). In this sense, \(\vec {v}_{0}[16]\), \(\vec {v}_{0}[17]\), \(\vec {v}_{1}[52]\), \(\vec {v}_{1}[57]\), \(\vec {v}_{2}[12]\), and \(\vec {v}_{2}[49]\) are 1’s. The vectors \([\vec {v}_{b}]\) are encrypted into polynomials \([\vec {c}_{b}]\) and then rotated by corresponding value of \(K_{ref}^{(m)}\). This rotation ensures that the first N blocks indicate the agreement of Nb-th block of K-mers and b-th block of \(K_{ref}^{(m)}\). Later, these values are multiplied in component-wise manner. Therefore, \(\vec {d}[n]\) indicates 1 if n-th K-mer agrees with \(K_{ref}^{(m)}\) in all B blocks and 0 if any pair of blocks from both K-mers does not match

Back to article page