Parameters:
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
import re
import pandas as pd # Pandas for tables
from IPython.display import Latex
from IPython.display import HTML
def read_log(file_name):
pow_ind = []
dim_all = []
d_orig_w = []
d_dual_w = []
d_dual_b = []
with open(file_name, 'r') as fp:
wd = fp.read().split("\n")[:]
len_all = 0
for i in range(len(wd)):
if wd[i].startswith("j, k ="):
pow_ind.append([int(i) for i in re.findall(r"\d+", wd[i])])
len_all = len_all + 1
elif wd[i].startswith("Dimension:"):
dim_all.append([int(i) for i in re.findall(r"\d+", wd[i])])
elif wd[i].startswith("WD orig D (word):"):
d_orig_w.append([int(i) for i in re.findall(r"\d+", wd[i])])
elif wd[i].startswith("WD dual D (word):"):
d_dual_w.append([int(i) for i in re.findall(r"\d+", wd[i])])
elif wd[i].startswith("WD dual D (bit):"):
d_dual_b.append([int(i) for i in re.findall(r"\d+", wd[i]+wd[i+1])])
else:
continue
return pow_ind, d_dual_b
pow_ind, d_dual_b = read_log("./magma_paper/gen_codes_sss_3_1_4b.log") # indices and Weight distributions
print(len(pow_ind)) # 91 entries: 91 for (3,1)-SSS
#print(len(d_dual_b))
91
alpha_all = np.array(['$\\alpha^{%d}$'%i for i in np.arange(15)])
d_all = np.zeros(len(pow_ind))
B_all = np.zeros(len(pow_ind))
alpha_2 = np.zeros(len(pow_ind), dtype=int)
alpha_3 = np.zeros(len(pow_ind), dtype=int)
for i in range(len(pow_ind)):
d_all[i] = d_dual_b[i][2]
B_all[i] = d_dual_b[i][3]
alpha_2[i] = pow_ind[i][0]
alpha_3[i] = pow_ind[i][1]
# Set properties for th, td and caption elements in dataframe
th_props = [('font-size', '14px'), ('text-align', 'left'), ('font-weight', 'bold'), ('background-color', '#E0E0E0')]
td_props = [('font-size', '13px'), ('text-align', 'left'), ('min-width', '80px')]
cp_props = [('font-size', '16px'), ('text-align', 'center')]
# Set table styles
styles = [dict(selector="th", props=th_props), dict(selector="td", props=td_props), dict(selector="caption", props=cp_props)]
cm_1 = sns.light_palette("red", as_cmap=True)
cm_2 = sns.light_palette("purple", as_cmap=True, reverse=True)
df = pd.DataFrame({'$\\alpha_2$': alpha_all[alpha_2[:]], '$\\alpha_3$': alpha_all[alpha_3[:]], '$d_{\mathcal{D}}^\perp$': d_all[:],
'$B_{d_{\mathcal{D}}^\perp}$': B_all[:], 'Weight Enumerators': d_dual_b[:]})
pd.set_option('display.max_colwidth', 1000)
pd.set_option('display.width', 800)
(df.style
.background_gradient(cmap=cm_1, subset=['$d_{\mathcal{D}}^\perp$','$B_{d_{\mathcal{D}}^\perp}$' ])
.background_gradient(cmap=cm_2, subset=['$B_{d_{\mathcal{D}}^\perp}$' ])
.set_caption('Tab. I All linear codes for (3,1)-SSS-based masking with $n=3$ shares over $\mathbb{F}_{2^4}$.')
.set_table_styles(styles))
$\alpha_2$ | $\alpha_3$ | $d_{\mathcal{D}}^\perp$ | $B_{d_{\mathcal{D}}^\perp}$ | Weight Enumerators | |
---|---|---|---|---|---|
0 | $\alpha^{1}$ | $\alpha^{2}$ | 2 | 8 | [0, 1, 2, 8, 3, 10, 4, 28, 5, 50, 6, 50, 7, 62, 8, 35, 9, 6, 10, 6, 1, 3] |
1 | $\alpha^{1}$ | $\alpha^{3}$ | 2 | 6 | [0, 1, 2, 6, 3, 14, 4, 22, 5, 52, 6, 64, 7, 48, 8, 33, 9, 12, 10, 2, 11, 2, 1, 4] |
2 | $\alpha^{1}$ | $\alpha^{4}$ | 2 | 4 | [0, 1, 2, 4, 3, 16, 4, 23, 5, 48, 6, 72, 7, 48, 8, 23, 9, 16, 10, 4, 12, 1, 1, 5] |
3 | $\alpha^{1}$ | $\alpha^{5}$ | 2 | 3 | [0, 1, 2, 3, 3, 15, 4, 28, 5, 50, 6, 64, 7, 48, 8, 27, 9, 14, 10, 5, 11, 1, 1, 6] |
4 | $\alpha^{1}$ | $\alpha^{6}$ | 2 | 3 | [0, 1, 2, 3, 3, 15, 4, 28, 5, 50, 6, 64, 7, 48, 8, 27, 9, 14, 10, 5, 11, 1, 1, 7] |
5 | $\alpha^{1}$ | $\alpha^{7}$ | 2 | 3 | [0, 1, 2, 3, 3, 15, 4, 28, 5, 50, 6, 64, 7, 48, 8, 27, 9, 14, 10, 5, 11, 1, 1, 8] |
6 | $\alpha^{1}$ | $\alpha^{8}$ | 2 | 3 | [0, 1, 2, 3, 3, 14, 4, 30, 5, 52, 6, 58, 7, 48, 8, 33, 9, 12, 10, 3, 11, 2, 1, 9] |
7 | $\alpha^{1}$ | $\alpha^{9}$ | 2 | 3 | [0, 1, 2, 3, 3, 13, 4, 30, 5, 56, 6, 58, 7, 42, 8, 33, 9, 16, 10, 3, 11, 1, 1, 10] |
8 | $\alpha^{1}$ | $\alpha^{10}$ | 2 | 3 | [0, 1, 2, 3, 3, 10, 4, 36, 5, 58, 6, 48, 7, 46, 8, 35, 9, 14, 10, 5, 1, 11] |
9 | $\alpha^{1}$ | $\alpha^{11}$ | 2 | 3 | [0, 1, 2, 3, 3, 10, 4, 36, 5, 58, 6, 48, 7, 46, 8, 35, 9, 14, 10, 5, 1, 12] |
10 | $\alpha^{1}$ | $\alpha^{12}$ | 2 | 4 | [0, 1, 2, 4, 3, 12, 4, 28, 5, 58, 6, 58, 7, 42, 8, 35, 9, 14, 10, 2, 11, 2, 1, 13] |
11 | $\alpha^{1}$ | $\alpha^{13}$ | 2 | 6 | [0, 1, 2, 6, 3, 12, 4, 26, 5, 52, 6, 60, 7, 52, 8, 29, 9, 12, 10, 6, 1, 14] |
12 | $\alpha^{1}$ | $\alpha^{14}$ | 2 | 8 | [0, 1, 2, 8, 3, 10, 4, 28, 5, 50, 6, 50, 7, 62, 8, 35, 9, 6, 10, 6, 2, 3] |
13 | $\alpha^{2}$ | $\alpha^{3}$ | 2 | 6 | [0, 1, 2, 6, 3, 12, 4, 26, 5, 52, 6, 60, 7, 52, 8, 29, 9, 12, 10, 6, 2, 4] |
14 | $\alpha^{2}$ | $\alpha^{4}$ | 2 | 4 | [0, 1, 2, 4, 3, 14, 4, 26, 5, 52, 6, 64, 7, 48, 8, 29, 9, 12, 10, 4, 11, 2, 2, 5] |
15 | $\alpha^{2}$ | $\alpha^{5}$ | 2 | 3 | [0, 1, 2, 3, 3, 15, 4, 28, 5, 50, 6, 64, 7, 48, 8, 27, 9, 14, 10, 5, 11, 1, 2, 6] |
16 | $\alpha^{2}$ | $\alpha^{6}$ | 2 | 2 | [0, 1, 2, 2, 3, 16, 4, 30, 5, 48, 6, 64, 7, 48, 8, 25, 9, 16, 10, 6, 2, 7] |
17 | $\alpha^{2}$ | $\alpha^{7}$ | 2 | 2 | [0, 1, 2, 2, 3, 15, 4, 32, 5, 50, 6, 58, 7, 48, 8, 31, 9, 14, 10, 4, 11, 1, 2, 8] |
18 | $\alpha^{2}$ | $\alpha^{8}$ | 2 | 2 | [0, 1, 2, 2, 3, 16, 4, 31, 5, 48, 6, 60, 7, 48, 8, 31, 9, 16, 10, 2, 12, 1, 2, 9] |
19 | $\alpha^{2}$ | $\alpha^{9}$ | 2 | 2 | [0, 1, 2, 2, 3, 15, 4, 32, 5, 50, 6, 58, 7, 48, 8, 31, 9, 14, 10, 4, 11, 1, 2, 10] |
20 | $\alpha^{2}$ | $\alpha^{10}$ | 2 | 2 | [0, 1, 2, 2, 3, 13, 4, 34, 5, 56, 6, 52, 7, 42, 8, 37, 9, 16, 10, 2, 11, 1, 2, 11] |
21 | $\alpha^{2}$ | $\alpha^{11}$ | 2 | 2 | [0, 1, 2, 2, 3, 13, 4, 34, 5, 56, 6, 52, 7, 42, 8, 37, 9, 16, 10, 2, 11, 1, 2, 12] |
22 | $\alpha^{2}$ | $\alpha^{12}$ | 2 | 3 | [0, 1, 2, 3, 3, 12, 4, 34, 5, 52, 6, 54, 7, 52, 8, 29, 9, 12, 10, 7, 2, 13] |
23 | $\alpha^{2}$ | $\alpha^{13}$ | 2 | 4 | [0, 1, 2, 4, 3, 14, 4, 26, 5, 52, 6, 64, 7, 48, 8, 29, 9, 12, 10, 4, 11, 2, 2, 14] |
24 | $\alpha^{2}$ | $\alpha^{14}$ | 2 | 6 | [0, 1, 2, 6, 3, 14, 4, 22, 5, 52, 6, 64, 7, 48, 8, 33, 9, 12, 10, 2, 11, 2, 3, 4] |
25 | $\alpha^{3}$ | $\alpha^{4}$ | 2 | 4 | [0, 1, 2, 4, 3, 12, 4, 28, 5, 58, 6, 58, 7, 42, 8, 35, 9, 14, 10, 2, 11, 2, 3, 5] |
26 | $\alpha^{3}$ | $\alpha^{5}$ | 2 | 3 | [0, 1, 2, 3, 3, 12, 4, 34, 5, 52, 6, 54, 7, 52, 8, 29, 9, 12, 10, 7, 3, 6] |
27 | $\alpha^{3}$ | $\alpha^{6}$ | 2 | 2 | [0, 1, 2, 2, 3, 15, 4, 32, 5, 50, 6, 58, 7, 48, 8, 31, 9, 14, 10, 4, 11, 1, 3, 7] |
28 | $\alpha^{3}$ | $\alpha^{7}$ | 2 | 1 | [0, 1, 2, 1, 3, 16, 4, 34, 5, 48, 6, 58, 7, 48, 8, 29, 9, 16, 10, 5, 3, 8] |
29 | $\alpha^{3}$ | $\alpha^{8}$ | 2 | 1 | [0, 1, 2, 1, 3, 16, 4, 36, 5, 46, 6, 52, 7, 54, 8, 35, 9, 10, 10, 3, 11, 2, 3, 9] |
30 | $\alpha^{3}$ | $\alpha^{9}$ | 2 | 1 | [0, 1, 2, 1, 3, 17, 4, 34, 5, 44, 6, 58, 7, 54, 8, 29, 9, 12, 10, 5, 11, 1, 3, 10] |
31 | $\alpha^{3}$ | $\alpha^{10}$ | 2 | 1 | [0, 1, 2, 1, 3, 16, 4, 34, 5, 48, 6, 58, 7, 48, 8, 29, 9, 16, 10, 5, 3, 11] |
32 | $\alpha^{3}$ | $\alpha^{11}$ | 2 | 1 | [0, 1, 2, 1, 3, 16, 4, 34, 5, 48, 6, 58, 7, 48, 8, 29, 9, 16, 10, 5, 3, 12] |
33 | $\alpha^{3}$ | $\alpha^{12}$ | 2 | 2 | [0, 1, 2, 2, 3, 15, 4, 32, 5, 50, 6, 58, 7, 48, 8, 31, 9, 14, 10, 4, 11, 1, 3, 13] |
34 | $\alpha^{3}$ | $\alpha^{13}$ | 2 | 3 | [0, 1, 2, 3, 3, 15, 4, 28, 5, 50, 6, 64, 7, 48, 8, 27, 9, 14, 10, 5, 11, 1, 3, 14] |
35 | $\alpha^{3}$ | $\alpha^{14}$ | 2 | 4 | [0, 1, 2, 4, 3, 16, 4, 23, 5, 48, 6, 72, 7, 48, 8, 23, 9, 16, 10, 4, 12, 1, 4, 5] |
36 | $\alpha^{4}$ | $\alpha^{5}$ | 2 | 3 | [0, 1, 2, 3, 3, 10, 4, 36, 5, 58, 6, 48, 7, 46, 8, 35, 9, 14, 10, 5, 4, 6] |
37 | $\alpha^{4}$ | $\alpha^{6}$ | 2 | 2 | [0, 1, 2, 2, 3, 13, 4, 34, 5, 56, 6, 52, 7, 42, 8, 37, 9, 16, 10, 2, 11, 1, 4, 7] |
38 | $\alpha^{4}$ | $\alpha^{7}$ | 2 | 1 | [0, 1, 2, 1, 3, 16, 4, 34, 5, 48, 6, 58, 7, 48, 8, 29, 9, 16, 10, 5, 4, 8] |
39 | $\alpha^{4}$ | $\alpha^{8}$ | 3 | 17 | [0, 1, 3, 17, 4, 38, 5, 44, 6, 52, 7, 54, 8, 33, 9, 12, 10, 4, 11, 1, 4, 9] |
40 | $\alpha^{4}$ | $\alpha^{9}$ | 3 | 17 | [0, 1, 3, 17, 4, 38, 5, 44, 6, 52, 7, 54, 8, 33, 9, 12, 10, 4, 11, 1, 4, 10] |
41 | $\alpha^{4}$ | $\alpha^{10}$ | 3 | 17 | [0, 1, 3, 17, 4, 38, 5, 44, 6, 52, 7, 54, 8, 33, 9, 12, 10, 4, 11, 1, 4, 11] |
42 | $\alpha^{4}$ | $\alpha^{11}$ | 3 | 17 | [0, 1, 3, 17, 4, 38, 5, 44, 6, 52, 7, 54, 8, 33, 9, 12, 10, 4, 11, 1, 4, 12] |
43 | $\alpha^{4}$ | $\alpha^{12}$ | 2 | 1 | [0, 1, 2, 1, 3, 16, 4, 34, 5, 48, 6, 58, 7, 48, 8, 29, 9, 16, 10, 5, 4, 13] |
44 | $\alpha^{4}$ | $\alpha^{13}$ | 2 | 2 | [0, 1, 2, 2, 3, 16, 4, 30, 5, 48, 6, 64, 7, 48, 8, 25, 9, 16, 10, 6, 4, 14] |
45 | $\alpha^{4}$ | $\alpha^{14}$ | 2 | 3 | [0, 1, 2, 3, 3, 15, 4, 28, 5, 50, 6, 64, 7, 48, 8, 27, 9, 14, 10, 5, 11, 1, 5, 6] |
46 | $\alpha^{5}$ | $\alpha^{6}$ | 2 | 3 | [0, 1, 2, 3, 3, 10, 4, 36, 5, 58, 6, 48, 7, 46, 8, 35, 9, 14, 10, 5, 5, 7] |
47 | $\alpha^{5}$ | $\alpha^{7}$ | 2 | 2 | [0, 1, 2, 2, 3, 13, 4, 34, 5, 56, 6, 52, 7, 42, 8, 37, 9, 16, 10, 2, 11, 1, 5, 8] |
48 | $\alpha^{5}$ | $\alpha^{8}$ | 2 | 1 | [0, 1, 2, 1, 3, 16, 4, 34, 5, 48, 6, 58, 7, 48, 8, 29, 9, 16, 10, 5, 5, 9] |
49 | $\alpha^{5}$ | $\alpha^{9}$ | 3 | 17 | [0, 1, 3, 17, 4, 38, 5, 44, 6, 52, 7, 54, 8, 33, 9, 12, 10, 4, 11, 1, 5, 10] |
50 | $\alpha^{5}$ | $\alpha^{10}$ | 3 | 16 | [0, 1, 3, 16, 4, 39, 5, 48, 6, 48, 7, 48, 8, 39, 9, 16, 12, 1, 5, 11] |
51 | $\alpha^{5}$ | $\alpha^{11}$ | 3 | 17 | [0, 1, 3, 17, 4, 38, 5, 44, 6, 52, 7, 54, 8, 33, 9, 12, 10, 4, 11, 1, 5, 12] |
52 | $\alpha^{5}$ | $\alpha^{12}$ | 2 | 1 | [0, 1, 2, 1, 3, 16, 4, 36, 5, 46, 6, 52, 7, 54, 8, 35, 9, 10, 10, 3, 11, 2, 5, 13] |
53 | $\alpha^{5}$ | $\alpha^{13}$ | 2 | 2 | [0, 1, 2, 2, 3, 15, 4, 32, 5, 50, 6, 58, 7, 48, 8, 31, 9, 14, 10, 4, 11, 1, 5, 14] |
54 | $\alpha^{5}$ | $\alpha^{14}$ | 2 | 3 | [0, 1, 2, 3, 3, 15, 4, 28, 5, 50, 6, 64, 7, 48, 8, 27, 9, 14, 10, 5, 11, 1, 6, 7] |
55 | $\alpha^{6}$ | $\alpha^{7}$ | 2 | 3 | [0, 1, 2, 3, 3, 13, 4, 30, 5, 56, 6, 58, 7, 42, 8, 33, 9, 16, 10, 3, 11, 1, 6, 8] |
56 | $\alpha^{6}$ | $\alpha^{8}$ | 2 | 2 | [0, 1, 2, 2, 3, 15, 4, 32, 5, 50, 6, 58, 7, 48, 8, 31, 9, 14, 10, 4, 11, 1, 6, 9] |
57 | $\alpha^{6}$ | $\alpha^{9}$ | 2 | 1 | [0, 1, 2, 1, 3, 17, 4, 34, 5, 44, 6, 58, 7, 54, 8, 29, 9, 12, 10, 5, 11, 1, 6, 10] |
58 | $\alpha^{6}$ | $\alpha^{10}$ | 3 | 17 | [0, 1, 3, 17, 4, 38, 5, 44, 6, 52, 7, 54, 8, 33, 9, 12, 10, 4, 11, 1, 6, 11] |
59 | $\alpha^{6}$ | $\alpha^{11}$ | 3 | 17 | [0, 1, 3, 17, 4, 38, 5, 44, 6, 52, 7, 54, 8, 33, 9, 12, 10, 4, 11, 1, 6, 12] |
60 | $\alpha^{6}$ | $\alpha^{12}$ | 2 | 1 | [0, 1, 2, 1, 3, 17, 4, 34, 5, 44, 6, 58, 7, 54, 8, 29, 9, 12, 10, 5, 11, 1, 6, 13] |
61 | $\alpha^{6}$ | $\alpha^{13}$ | 2 | 2 | [0, 1, 2, 2, 3, 16, 4, 31, 5, 48, 6, 60, 7, 48, 8, 31, 9, 16, 10, 2, 12, 1, 6, 14] |
62 | $\alpha^{6}$ | $\alpha^{14}$ | 2 | 3 | [0, 1, 2, 3, 3, 15, 4, 28, 5, 50, 6, 64, 7, 48, 8, 27, 9, 14, 10, 5, 11, 1, 7, 8] |
63 | $\alpha^{7}$ | $\alpha^{8}$ | 2 | 3 | [0, 1, 2, 3, 3, 14, 4, 30, 5, 52, 6, 58, 7, 48, 8, 33, 9, 12, 10, 3, 11, 2, 7, 9] |
64 | $\alpha^{7}$ | $\alpha^{9}$ | 2 | 2 | [0, 1, 2, 2, 3, 16, 4, 31, 5, 48, 6, 60, 7, 48, 8, 31, 9, 16, 10, 2, 12, 1, 7, 10] |
65 | $\alpha^{7}$ | $\alpha^{10}$ | 2 | 1 | [0, 1, 2, 1, 3, 16, 4, 36, 5, 46, 6, 52, 7, 54, 8, 35, 9, 10, 10, 3, 11, 2, 7, 11] |
66 | $\alpha^{7}$ | $\alpha^{11}$ | 3 | 17 | [0, 1, 3, 17, 4, 38, 5, 44, 6, 52, 7, 54, 8, 33, 9, 12, 10, 4, 11, 1, 7, 12] |
67 | $\alpha^{7}$ | $\alpha^{12}$ | 2 | 1 | [0, 1, 2, 1, 3, 16, 4, 34, 5, 48, 6, 58, 7, 48, 8, 29, 9, 16, 10, 5, 7, 13] |
68 | $\alpha^{7}$ | $\alpha^{13}$ | 2 | 2 | [0, 1, 2, 2, 3, 15, 4, 32, 5, 50, 6, 58, 7, 48, 8, 31, 9, 14, 10, 4, 11, 1, 7, 14] |
69 | $\alpha^{7}$ | $\alpha^{14}$ | 2 | 3 | [0, 1, 2, 3, 3, 14, 4, 30, 5, 52, 6, 58, 7, 48, 8, 33, 9, 12, 10, 3, 11, 2, 8, 9] |
70 | $\alpha^{8}$ | $\alpha^{9}$ | 2 | 3 | [0, 1, 2, 3, 3, 15, 4, 28, 5, 50, 6, 64, 7, 48, 8, 27, 9, 14, 10, 5, 11, 1, 8, 10] |
71 | $\alpha^{8}$ | $\alpha^{10}$ | 2 | 2 | [0, 1, 2, 2, 3, 15, 4, 32, 5, 50, 6, 58, 7, 48, 8, 31, 9, 14, 10, 4, 11, 1, 8, 11] |
72 | $\alpha^{8}$ | $\alpha^{11}$ | 2 | 1 | [0, 1, 2, 1, 3, 16, 4, 34, 5, 48, 6, 58, 7, 48, 8, 29, 9, 16, 10, 5, 8, 12] |
73 | $\alpha^{8}$ | $\alpha^{12}$ | 2 | 1 | [0, 1, 2, 1, 3, 16, 4, 34, 5, 48, 6, 58, 7, 48, 8, 29, 9, 16, 10, 5, 8, 13] |
74 | $\alpha^{8}$ | $\alpha^{13}$ | 2 | 2 | [0, 1, 2, 2, 3, 13, 4, 34, 5, 56, 6, 52, 7, 42, 8, 37, 9, 16, 10, 2, 11, 1, 8, 14] |
75 | $\alpha^{8}$ | $\alpha^{14}$ | 2 | 3 | [0, 1, 2, 3, 3, 13, 4, 30, 5, 56, 6, 58, 7, 42, 8, 33, 9, 16, 10, 3, 11, 1, 9, 10] |
76 | $\alpha^{9}$ | $\alpha^{10}$ | 2 | 3 | [0, 1, 2, 3, 3, 15, 4, 28, 5, 50, 6, 64, 7, 48, 8, 27, 9, 14, 10, 5, 11, 1, 9, 11] |
77 | $\alpha^{9}$ | $\alpha^{11}$ | 2 | 2 | [0, 1, 2, 2, 3, 16, 4, 30, 5, 48, 6, 64, 7, 48, 8, 25, 9, 16, 10, 6, 9, 12] |
78 | $\alpha^{9}$ | $\alpha^{12}$ | 2 | 2 | [0, 1, 2, 2, 3, 15, 4, 32, 5, 50, 6, 58, 7, 48, 8, 31, 9, 14, 10, 4, 11, 1, 9, 13] |
79 | $\alpha^{9}$ | $\alpha^{13}$ | 2 | 2 | [0, 1, 2, 2, 3, 13, 4, 34, 5, 56, 6, 52, 7, 42, 8, 37, 9, 16, 10, 2, 11, 1, 9, 14] |
80 | $\alpha^{9}$ | $\alpha^{14}$ | 2 | 3 | [0, 1, 2, 3, 3, 10, 4, 36, 5, 58, 6, 48, 7, 46, 8, 35, 9, 14, 10, 5, 10, 11] |
81 | $\alpha^{10}$ | $\alpha^{11}$ | 2 | 3 | [0, 1, 2, 3, 3, 15, 4, 28, 5, 50, 6, 64, 7, 48, 8, 27, 9, 14, 10, 5, 11, 1, 10, 12] |
82 | $\alpha^{10}$ | $\alpha^{12}$ | 2 | 3 | [0, 1, 2, 3, 3, 15, 4, 28, 5, 50, 6, 64, 7, 48, 8, 27, 9, 14, 10, 5, 11, 1, 10, 13] |
83 | $\alpha^{10}$ | $\alpha^{13}$ | 2 | 3 | [0, 1, 2, 3, 3, 12, 4, 34, 5, 52, 6, 54, 7, 52, 8, 29, 9, 12, 10, 7, 10, 14] |
84 | $\alpha^{10}$ | $\alpha^{14}$ | 2 | 3 | [0, 1, 2, 3, 3, 10, 4, 36, 5, 58, 6, 48, 7, 46, 8, 35, 9, 14, 10, 5, 11, 12] |
85 | $\alpha^{11}$ | $\alpha^{12}$ | 2 | 4 | [0, 1, 2, 4, 3, 16, 4, 23, 5, 48, 6, 72, 7, 48, 8, 23, 9, 16, 10, 4, 12, 1, 11, 13] |
86 | $\alpha^{11}$ | $\alpha^{13}$ | 2 | 4 | [0, 1, 2, 4, 3, 14, 4, 26, 5, 52, 6, 64, 7, 48, 8, 29, 9, 12, 10, 4, 11, 2, 11, 14] |
87 | $\alpha^{11}$ | $\alpha^{14}$ | 2 | 4 | [0, 1, 2, 4, 3, 12, 4, 28, 5, 58, 6, 58, 7, 42, 8, 35, 9, 14, 10, 2, 11, 2, 12, 13] |
88 | $\alpha^{12}$ | $\alpha^{13}$ | 2 | 6 | [0, 1, 2, 6, 3, 14, 4, 22, 5, 52, 6, 64, 7, 48, 8, 33, 9, 12, 10, 2, 11, 2, 12, 14] |
89 | $\alpha^{12}$ | $\alpha^{14}$ | 2 | 6 | [0, 1, 2, 6, 3, 12, 4, 26, 5, 52, 6, 60, 7, 52, 8, 29, 9, 12, 10, 6, 13, 14] |
90 | $\alpha^{13}$ | $\alpha^{14}$ | 2 | 8 | [0, 1, 2, 8, 3, 10, 4, 28, 5, 50, 6, 50, 7, 62, 8, 35, 9, 6, 10, 6] |
We focus on the the linear codes with greater $d_{\mathcal{D}}^\perp$, which are better in the sense of side-channel resistance (from our paper).
# Finding the indices of d_C=6
d_index = []
d_index_alpha_2 = []
d_index_alpha_3 = []
d_D_perp = 3
for i in range(len(d_dual_b)):
if d_dual_b[i][2] == d_D_perp:
d_index.append(i)
d_index_alpha_2.append(pow_ind[i][0])
d_index_alpha_3.append(pow_ind[i][1])
d_index = np.array(d_index)
d_index_alpha_2 = np.array(d_index_alpha_2)
d_index_alpha_3 = np.array(d_index_alpha_3)
print(len(d_index))
print(d_index)
10 [39 40 41 42 49 50 51 58 59 66]
def highlight(s, threshold, column):
is_min = pd.Series(data=False, index=s.index)
is_min[column] = (s.loc[column] <= threshold)
return ['background-color: gold' if is_min.any() else '' for v in is_min]
df_4 = pd.DataFrame({'$\\alpha_2$': np.array(alpha_all)[d_index_alpha_2], '$\\alpha_3$': np.array(alpha_all)[d_index_alpha_3], '$d_{\mathcal{D}}^\perp$':
d_all[d_index], '$B_{d_{\mathcal{D}}^\perp}$': B_all[d_index], 'Weight Enumerators': np.array(d_dual_b)[d_index]})
df_4 = df_4.sort_values(by=['$B_{d_{\mathcal{D}}^\perp}$'], ascending=True)
(df_4.style
.apply(highlight, threshold=16, column=['$B_{d_{\mathcal{D}}^\perp}$'], axis=1)
.background_gradient(cmap=cm_2, subset=['$B_{d_{\mathcal{D}}^\perp}$' ])
.set_caption('Tab. II Linear codes for (3,1)-SSS-based masking with $d_{\mathcal{D}}^\perp=3$.')
.set_table_styles(styles))
$\alpha_2$ | $\alpha_3$ | $d_{\mathcal{D}}^\perp$ | $B_{d_{\mathcal{D}}^\perp}$ | Weight Enumerators | |
---|---|---|---|---|---|
5 | $\alpha^{5}$ | $\alpha^{10}$ | 3 | 16 | [0, 1, 3, 16, 4, 39, 5, 48, 6, 48, 7, 48, 8, 39, 9, 16, 12, 1, 5, 11] |
0 | $\alpha^{4}$ | $\alpha^{8}$ | 3 | 17 | [0, 1, 3, 17, 4, 38, 5, 44, 6, 52, 7, 54, 8, 33, 9, 12, 10, 4, 11, 1, 4, 9] |
1 | $\alpha^{4}$ | $\alpha^{9}$ | 3 | 17 | [0, 1, 3, 17, 4, 38, 5, 44, 6, 52, 7, 54, 8, 33, 9, 12, 10, 4, 11, 1, 4, 10] |
2 | $\alpha^{4}$ | $\alpha^{10}$ | 3 | 17 | [0, 1, 3, 17, 4, 38, 5, 44, 6, 52, 7, 54, 8, 33, 9, 12, 10, 4, 11, 1, 4, 11] |
3 | $\alpha^{4}$ | $\alpha^{11}$ | 3 | 17 | [0, 1, 3, 17, 4, 38, 5, 44, 6, 52, 7, 54, 8, 33, 9, 12, 10, 4, 11, 1, 4, 12] |
4 | $\alpha^{5}$ | $\alpha^{9}$ | 3 | 17 | [0, 1, 3, 17, 4, 38, 5, 44, 6, 52, 7, 54, 8, 33, 9, 12, 10, 4, 11, 1, 5, 10] |
6 | $\alpha^{5}$ | $\alpha^{11}$ | 3 | 17 | [0, 1, 3, 17, 4, 38, 5, 44, 6, 52, 7, 54, 8, 33, 9, 12, 10, 4, 11, 1, 5, 12] |
7 | $\alpha^{6}$ | $\alpha^{10}$ | 3 | 17 | [0, 1, 3, 17, 4, 38, 5, 44, 6, 52, 7, 54, 8, 33, 9, 12, 10, 4, 11, 1, 6, 11] |
8 | $\alpha^{6}$ | $\alpha^{11}$ | 3 | 17 | [0, 1, 3, 17, 4, 38, 5, 44, 6, 52, 7, 54, 8, 33, 9, 12, 10, 4, 11, 1, 6, 12] |
9 | $\alpha^{7}$ | $\alpha^{11}$ | 3 | 17 | [0, 1, 3, 17, 4, 38, 5, 44, 6, 52, 7, 54, 8, 33, 9, 12, 10, 4, 11, 1, 7, 12] |
As shown in our paper, the codes satifying two conditions are optimal:
Note that we use two complementary metrics SNR (signal-to-noise ratio) and MI (mutual information) to assess the side-channel resistance of SSS-based masking with different codes.
As a result of Tab. II, we conclude that the optimal codes for (3,1)-SSS based masking are generated by $\mathbf{H}=[\alpha_1, \alpha_2,\alpha_3]$ where $(\alpha_1, \alpha_2,\alpha_3)\in\{(\alpha^0, \alpha^5, \alpha^{10})\}$. Note that permutation on three public points does not change the codes due to equivalence.
The generator matrix of the code is: $$ \mathbf{H}_{optimal}=\left( \begin{matrix} \alpha^0 & \alpha^5 & \alpha^{10} \end{matrix} \right) \in \mathbb{F}_{2^4}^{1\times 3} = \left( \begin{matrix} 1&0&0&0&0&1&1&0&1&1&1&0 \\ 0&1&0&0&0&0&1&1&0&1&1&1 \\ 0&0&1&0&1&1&0&1&1&1&1&1 \\ 0&0&0&1&1&0&1&0&1&0&1&1 \end{matrix} \right) \normalsize\in \mathbb{F}_2^{4\times 12} $$