{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# II. Linear codes for Inner Product Masking\n", "\n", "### $n=2$ shares, $\\ell=8$ bits" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Parameters:\n", "\n", "- $Z=(X + L_2Y_2, Y_2)=X\\mathbf{G} + Y\\mathbf{H}$ where $X, Y=(Y_2)$ and $Z$ are the sensitive variable, a mask and the protected variable, respectively. $\\mathbf{G} = [1, 0]$ and $\\mathbf{H} = [L_2, 1]$ are two generator matrices of codes $\\mathcal{C}$ and $\\mathcal{D}$, resp.\n", "- $L_2\\in \\mathbb{F}_{2^\\ell}\\backslash\\{0\\}$, thus there are 255 linear codes for IPM\n", "- Each element over $\\mathbb{F}_{2^\\ell}$ can be denoted as $\\alpha^i$ where $i\\in\\{0, 1, \\ldots, 254\\}$, the corresponding irreducible polynomial is $g(\\alpha) = \\alpha^8 +\\alpha^4 + \\alpha^3 + \\alpha^2 +1$ (NOT the one in AES)\n", "- $\\mathbf{H}^\\perp = [1, L_2]$ is the generator matirx of dual code $\\mathcal{D}^\\perp$" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "ExecuteTime": { "end_time": "2020-02-15T10:36:49.562504Z", "start_time": "2020-02-15T10:36:47.627482Z" } }, "outputs": [], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "import seaborn as sns\n", "import re\n", "import pandas as pd # Pandas for tables\n", "from IPython.display import Latex\n", "from IPython.display import HTML" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "ExecuteTime": { "end_time": "2020-02-15T10:36:49.569512Z", "start_time": "2020-02-15T10:36:49.564502Z" } }, "outputs": [], "source": [ "def read_f(file_name):\n", " \"\"\"Reading weight enumerators.\"\"\"\n", " with open(file_name, 'r') as fp:\n", " wd = fp.read().split(\"]\\n\")[:-1] # \"\\n\"\n", " wd = np.array([list(map(int, re.findall(r\"\\d+\", elem))) for elem in wd])\n", " \n", " return wd" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 1. Loading all weight enumerators" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "ExecuteTime": { "end_time": "2020-02-15T10:36:52.852011Z", "start_time": "2020-02-15T10:36:52.795154Z" } }, "outputs": [], "source": [ "wd = read_f(\"weight_distrib_n2k8.txt\") # Weight distribution\n", "\n", "# print(wd.shape) # 256 entries: 255 for IPM codes and one for BKLC codes" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 1.1 Generating values" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "ExecuteTime": { "end_time": "2020-02-15T10:37:04.620390Z", "start_time": "2020-02-15T10:37:04.615406Z" } }, "outputs": [], "source": [ "alpha_all = ['$\\\\alpha^{%d}$'%i for i in np.arange(len(wd))]\n", "d_all = np.zeros(len(wd))\n", "B_all = np.zeros(len(wd))\n", "for i in range(len(wd)):\n", " d_all[i] = wd[i][2]\n", " B_all[i] = wd[i][3]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 1.2 Defining styles of dataframe\n", "\n", "See more setting of dataframe from https://mode.com/example-gallery/python_dataframe_styling/" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "ExecuteTime": { "end_time": "2020-02-15T10:37:20.384343Z", "start_time": "2020-02-15T10:37:20.369387Z" } }, "outputs": [], "source": [ "# Set properties for th, td and caption elements in dataframe\n", "th_props = [('font-size', '14px'), ('text-align', 'left'), ('font-weight', 'bold'), ('background-color', '#E0E0E0')]\n", "td_props = [('font-size', '13px'), ('text-align', 'left'), ('min-width', '80px')]\n", "cp_props = [('font-size', '16px'), ('text-align', 'center')]\n", "# Set table styles\n", "styles = [dict(selector=\"th\", props=th_props), dict(selector=\"td\", props=td_props), dict(selector=\"caption\", props=cp_props)]\n", "cm_1 = sns.light_palette(\"red\", as_cmap=True)\n", "cm_2 = sns.light_palette(\"purple\", as_cmap=True, reverse=True)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "ExecuteTime": { "end_time": "2020-02-15T10:37:23.671335Z", "start_time": "2020-02-15T10:37:22.816049Z" }, "scrolled": false }, "outputs": [ { "data": { "text/html": [ "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Tab. I All linear codes for IPM with $n=2$ shares over $\\mathbb{F}_{2^8}$.
$L_2$ $d_{\\mathcal{D}}^\\perp$ $B_{d_{\\mathcal{D}}^\\perp}$ Weight Enumerators
0$\\alpha^{0}$28[0, 1, 2, 8, 4, 28, 6, 56, 8, 70, 10, 56, 12, 28, 14, 8, 16, 1]
1$\\alpha^{1}$27[0, 1, 2, 7, 4, 21, 5, 8, 6, 35, 7, 32, 8, 35, 9, 48, 10, 21, 11, 32, 12, 7, 13, 8, 14, 1]
2$\\alpha^{2}$26[0, 1, 2, 6, 4, 15, 5, 16, 6, 24, 7, 48, 8, 31, 9, 48, 10, 30, 11, 16, 12, 17, 14, 4]
3$\\alpha^{3}$25[0, 1, 2, 5, 4, 10, 5, 20, 6, 24, 7, 48, 8, 41, 9, 40, 10, 33, 11, 16, 12, 12, 13, 4, 14, 2]
4$\\alpha^{4}$24[0, 1, 2, 4, 4, 6, 5, 24, 6, 24, 7, 44, 8, 53, 9, 36, 10, 28, 11, 20, 12, 12, 13, 4]
5$\\alpha^{5}$23[0, 1, 2, 3, 4, 3, 5, 24, 6, 29, 7, 38, 8, 57, 9, 46, 10, 23, 11, 18, 12, 11, 13, 2, 14, 1]
6$\\alpha^{6}$22[0, 1, 2, 2, 4, 1, 5, 23, 6, 32, 7, 40, 8, 55, 9, 46, 10, 30, 11, 16, 12, 7, 13, 3]
7$\\alpha^{7}$21[0, 1, 2, 1, 4, 1, 5, 23, 6, 36, 7, 40, 8, 51, 9, 46, 10, 33, 11, 16, 12, 3, 13, 3, 14, 2]
8$\\alpha^{8}$43[0, 1, 4, 3, 5, 25, 6, 34, 7, 36, 8, 55, 9, 46, 10, 28, 11, 20, 12, 5, 13, 1, 14, 2]
9$\\alpha^{9}$45[0, 1, 4, 5, 5, 23, 6, 29, 7, 40, 8, 59, 9, 46, 10, 26, 11, 16, 12, 7, 13, 3, 14, 1]
10$\\alpha^{10}$46[0, 1, 4, 6, 5, 22, 6, 27, 7, 42, 8, 59, 9, 46, 10, 28, 11, 14, 12, 6, 13, 4, 14, 1]
11$\\alpha^{11}$46[0, 1, 4, 6, 5, 22, 6, 30, 7, 42, 8, 51, 9, 46, 10, 34, 11, 14, 12, 6, 13, 4]
12$\\alpha^{12}$46[0, 1, 4, 6, 5, 21, 6, 30, 7, 46, 8, 51, 9, 40, 10, 34, 11, 18, 12, 6, 13, 3]
13$\\alpha^{13}$46[0, 1, 4, 6, 5, 22, 6, 30, 7, 43, 8, 51, 9, 42, 10, 34, 11, 20, 12, 6, 15, 1]
14$\\alpha^{14}$47[0, 1, 4, 7, 5, 22, 6, 28, 7, 44, 8, 51, 9, 40, 10, 36, 11, 20, 12, 5, 13, 2]
15$\\alpha^{15}$47[0, 1, 4, 7, 5, 20, 6, 28, 7, 48, 8, 51, 9, 40, 10, 36, 11, 16, 12, 5, 13, 4]
16$\\alpha^{16}$46[0, 1, 4, 6, 5, 21, 6, 30, 7, 46, 8, 51, 9, 40, 10, 34, 11, 18, 12, 6, 13, 3]
17$\\alpha^{17}$46[0, 1, 4, 6, 5, 19, 6, 32, 7, 46, 8, 51, 9, 44, 10, 30, 11, 18, 12, 6, 13, 1, 14, 2]
18$\\alpha^{18}$31[0, 1, 3, 1, 4, 5, 5, 16, 6, 32, 7, 54, 8, 51, 9, 36, 10, 32, 11, 17, 12, 7, 13, 4]
19$\\alpha^{19}$32[0, 1, 3, 2, 4, 6, 5, 12, 6, 31, 7, 54, 8, 55, 9, 42, 10, 24, 11, 16, 12, 10, 13, 2, 14, 1]
20$\\alpha^{20}$33[0, 1, 3, 3, 4, 7, 5, 10, 6, 32, 7, 54, 8, 47, 9, 44, 10, 32, 11, 15, 12, 9, 13, 2]
21$\\alpha^{21}$34[0, 1, 3, 4, 4, 7, 5, 9, 6, 32, 7, 52, 8, 47, 9, 46, 10, 32, 11, 16, 12, 9, 13, 1]
22$\\alpha^{22}$35[0, 1, 3, 5, 4, 7, 5, 10, 6, 28, 7, 50, 8, 51, 9, 44, 10, 36, 11, 17, 12, 5, 13, 2]
23$\\alpha^{23}$36[0, 1, 3, 6, 4, 7, 5, 10, 6, 28, 7, 44, 8, 51, 9, 52, 10, 36, 11, 14, 12, 5, 13, 2]
24$\\alpha^{24}$37[0, 1, 3, 7, 4, 7, 5, 9, 6, 28, 7, 42, 8, 51, 9, 54, 10, 36, 11, 15, 12, 5, 13, 1]
25$\\alpha^{25}$37[0, 1, 3, 7, 4, 6, 5, 8, 6, 30, 7, 44, 8, 51, 9, 54, 10, 34, 11, 13, 12, 6, 13, 2]
26$\\alpha^{26}$36[0, 1, 3, 6, 4, 6, 5, 9, 6, 30, 7, 46, 8, 51, 9, 52, 10, 34, 11, 12, 12, 6, 13, 3]
27$\\alpha^{27}$35[0, 1, 3, 5, 4, 5, 5, 10, 6, 32, 7, 50, 8, 51, 9, 44, 10, 32, 11, 17, 12, 7, 13, 2]
28$\\alpha^{28}$35[0, 1, 3, 5, 4, 4, 5, 9, 6, 34, 7, 52, 8, 51, 9, 44, 10, 30, 11, 15, 12, 8, 13, 3]
29$\\alpha^{29}$35[0, 1, 3, 5, 4, 3, 5, 10, 6, 35, 7, 48, 8, 53, 9, 50, 10, 28, 11, 11, 12, 7, 13, 4, 14, 1]
30$\\alpha^{30}$35[0, 1, 3, 5, 4, 3, 5, 11, 6, 36, 7, 46, 8, 51, 9, 50, 10, 28, 11, 13, 12, 9, 13, 3]
31$\\alpha^{31}$35[0, 1, 3, 5, 4, 4, 5, 11, 6, 34, 7, 48, 8, 51, 9, 44, 10, 30, 11, 19, 12, 8, 13, 1]
32$\\alpha^{32}$35[0, 1, 3, 5, 4, 5, 5, 12, 6, 32, 7, 46, 8, 51, 9, 44, 10, 32, 11, 21, 12, 7]
33$\\alpha^{33}$35[0, 1, 3, 5, 4, 6, 5, 14, 6, 30, 7, 40, 8, 51, 9, 50, 10, 34, 11, 19, 12, 6]
34$\\alpha^{34}$35[0, 1, 3, 5, 4, 7, 5, 15, 6, 26, 7, 36, 8, 57, 9, 56, 10, 30, 11, 15, 12, 7, 13, 1]
35$\\alpha^{35}$35[0, 1, 3, 5, 4, 8, 5, 16, 6, 24, 7, 34, 8, 57, 9, 56, 10, 32, 11, 17, 12, 6]
36$\\alpha^{36}$34[0, 1, 3, 4, 4, 8, 5, 17, 6, 24, 7, 36, 8, 57, 9, 54, 10, 32, 11, 16, 12, 6, 13, 1]
37$\\alpha^{37}$33[0, 1, 3, 3, 4, 7, 5, 17, 6, 26, 7, 40, 8, 57, 9, 52, 10, 30, 11, 13, 12, 7, 13, 3]
38$\\alpha^{38}$32[0, 1, 3, 2, 4, 7, 5, 19, 6, 28, 7, 40, 8, 51, 9, 50, 10, 36, 11, 14, 12, 5, 13, 3]
39$\\alpha^{39}$31[0, 1, 3, 1, 4, 5, 5, 21, 6, 33, 7, 42, 8, 47, 9, 42, 10, 38, 11, 21, 12, 3, 13, 1, 14, 1]
40$\\alpha^{40}$45[0, 1, 4, 5, 5, 22, 6, 34, 7, 43, 8, 45, 9, 42, 10, 38, 11, 20, 12, 5, 15, 1]
41$\\alpha^{41}$44[0, 1, 4, 4, 5, 22, 6, 36, 7, 44, 8, 45, 9, 40, 10, 36, 11, 20, 12, 6, 13, 2]
42$\\alpha^{42}$44[0, 1, 4, 4, 5, 21, 6, 36, 7, 44, 8, 45, 9, 46, 10, 36, 11, 12, 12, 6, 13, 5]
43$\\alpha^{43}$31[0, 1, 3, 1, 4, 4, 5, 22, 6, 36, 7, 38, 8, 45, 9, 48, 10, 36, 11, 17, 12, 6, 13, 2]
44$\\alpha^{44}$32[0, 1, 3, 2, 4, 4, 5, 23, 6, 40, 7, 36, 8, 41, 9, 46, 10, 32, 11, 18, 12, 10, 13, 3]
45$\\alpha^{45}$33[0, 1, 3, 3, 4, 5, 5, 21, 6, 38, 7, 36, 8, 41, 9, 48, 10, 34, 11, 17, 12, 9, 13, 3]
46$\\alpha^{46}$34[0, 1, 3, 4, 4, 6, 5, 19, 6, 34, 7, 38, 8, 47, 9, 44, 10, 30, 11, 22, 12, 10, 13, 1]
47$\\alpha^{47}$35[0, 1, 3, 5, 4, 8, 5, 16, 6, 30, 7, 40, 8, 47, 9, 46, 10, 34, 11, 19, 12, 8, 13, 2]
48$\\alpha^{48}$36[0, 1, 3, 6, 4, 8, 5, 15, 6, 30, 7, 38, 8, 47, 9, 48, 10, 34, 11, 20, 12, 8, 13, 1]
49$\\alpha^{49}$36[0, 1, 3, 6, 4, 7, 5, 15, 6, 34, 7, 38, 8, 41, 9, 48, 10, 38, 11, 20, 12, 7, 13, 1]
50$\\alpha^{50}$36[0, 1, 3, 6, 4, 6, 5, 12, 6, 32, 7, 40, 8, 45, 9, 52, 10, 40, 11, 18, 12, 4]
51$\\alpha^{51}$35[0, 1, 3, 5, 4, 6, 5, 13, 6, 32, 7, 42, 8, 45, 9, 50, 10, 40, 11, 17, 12, 4, 13, 1]
52$\\alpha^{52}$34[0, 1, 3, 4, 4, 7, 5, 13, 6, 28, 7, 48, 8, 51, 9, 42, 10, 36, 11, 20, 12, 5, 13, 1]
53$\\alpha^{53}$33[0, 1, 3, 3, 4, 8, 5, 15, 6, 29, 7, 54, 8, 49, 9, 30, 10, 34, 11, 23, 12, 6, 13, 3, 14, 1]
54$\\alpha^{54}$32[0, 1, 3, 2, 4, 7, 5, 14, 6, 28, 7, 56, 8, 51, 9, 32, 10, 36, 11, 22, 12, 5, 13, 2]
55$\\alpha^{55}$31[0, 1, 3, 1, 4, 7, 5, 15, 6, 24, 7, 58, 8, 63, 9, 30, 10, 24, 11, 21, 12, 9, 13, 3]
56$\\alpha^{56}$410[0, 1, 4, 10, 5, 12, 6, 25, 7, 60, 8, 57, 9, 36, 10, 22, 11, 20, 12, 12, 14, 1]
57$\\alpha^{57}$413[0, 1, 4, 13, 5, 7, 6, 28, 7, 53, 8, 63, 9, 38, 10, 20, 11, 26, 12, 3, 13, 3, 15, 1]
58$\\alpha^{58}$413[0, 1, 4, 13, 5, 10, 6, 24, 7, 58, 8, 49, 9, 46, 10, 30, 11, 14, 12, 9, 14, 2]
59$\\alpha^{59}$415[0, 1, 4, 15, 5, 8, 6, 30, 7, 43, 8, 53, 9, 54, 10, 26, 11, 20, 12, 3, 13, 2, 15, 1]
60$\\alpha^{60}$415[0, 1, 4, 15, 5, 8, 6, 35, 7, 38, 8, 45, 9, 62, 10, 28, 11, 18, 12, 3, 13, 2, 14, 1]
61$\\alpha^{61}$414[0, 1, 4, 14, 5, 9, 6, 38, 7, 34, 8, 43, 9, 68, 10, 26, 11, 14, 12, 6, 13, 3]
62$\\alpha^{62}$413[0, 1, 4, 13, 5, 11, 6, 36, 7, 36, 8, 47, 9, 58, 10, 28, 11, 20, 12, 3, 13, 3]
63$\\alpha^{63}$31[0, 1, 3, 1, 4, 10, 5, 14, 6, 30, 7, 48, 8, 43, 9, 50, 10, 34, 11, 15, 12, 10]
64$\\alpha^{64}$32[0, 1, 3, 2, 4, 7, 5, 16, 6, 28, 7, 48, 8, 51, 9, 44, 10, 36, 11, 14, 12, 5, 13, 4]
65$\\alpha^{65}$32[0, 1, 3, 2, 4, 6, 5, 16, 6, 28, 7, 48, 8, 57, 9, 44, 10, 28, 11, 14, 12, 8, 13, 4]
66$\\alpha^{66}$32[0, 1, 3, 2, 4, 6, 5, 13, 6, 31, 7, 50, 8, 55, 9, 48, 10, 24, 11, 12, 12, 10, 13, 3, 14, 1]
67$\\alpha^{67}$32[0, 1, 3, 2, 4, 5, 5, 15, 6, 32, 7, 52, 8, 51, 9, 38, 10, 32, 11, 18, 12, 7, 13, 3]
68$\\alpha^{68}$32[0, 1, 3, 2, 4, 3, 5, 16, 6, 35, 7, 50, 8, 53, 9, 38, 10, 28, 11, 20, 12, 7, 13, 2, 14, 1]
69$\\alpha^{69}$32[0, 1, 3, 2, 4, 3, 5, 16, 6, 35, 7, 50, 8, 53, 9, 38, 10, 28, 11, 20, 12, 7, 13, 2, 14, 1]
70$\\alpha^{70}$32[0, 1, 3, 2, 4, 3, 5, 16, 6, 35, 7, 50, 8, 53, 9, 38, 10, 28, 11, 20, 12, 7, 13, 2, 14, 1]
71$\\alpha^{71}$31[0, 1, 3, 1, 4, 4, 5, 18, 6, 33, 7, 50, 8, 53, 9, 36, 10, 30, 11, 21, 12, 6, 13, 2, 14, 1]
72$\\alpha^{72}$46[0, 1, 4, 6, 5, 18, 6, 32, 7, 50, 8, 51, 9, 38, 10, 30, 11, 22, 12, 6, 14, 2]
73$\\alpha^{73}$47[0, 1, 4, 7, 5, 19, 6, 30, 7, 46, 8, 53, 9, 44, 10, 26, 11, 18, 12, 11, 13, 1]
74$\\alpha^{74}$48[0, 1, 4, 8, 5, 19, 6, 27, 7, 46, 8, 55, 9, 44, 10, 28, 11, 18, 12, 8, 13, 1, 14, 1]
75$\\alpha^{75}$47[0, 1, 4, 7, 5, 20, 6, 29, 7, 44, 8, 55, 9, 44, 10, 26, 11, 20, 12, 9, 14, 1]
76$\\alpha^{76}$46[0, 1, 4, 6, 5, 22, 6, 28, 7, 44, 8, 57, 9, 40, 10, 28, 11, 20, 12, 8, 13, 2]
77$\\alpha^{77}$45[0, 1, 4, 5, 5, 24, 6, 30, 7, 38, 8, 57, 9, 46, 10, 26, 11, 18, 12, 9, 13, 2]
78$\\alpha^{78}$45[0, 1, 4, 5, 5, 23, 6, 29, 7, 40, 8, 59, 9, 46, 10, 26, 11, 16, 12, 7, 13, 3, 14, 1]
79$\\alpha^{79}$46[0, 1, 4, 6, 5, 22, 6, 30, 7, 42, 8, 51, 9, 46, 10, 34, 11, 14, 12, 6, 13, 4]
80$\\alpha^{80}$46[0, 1, 4, 6, 5, 21, 6, 30, 7, 46, 8, 51, 9, 40, 10, 34, 11, 18, 12, 6, 13, 3]
81$\\alpha^{81}$46[0, 1, 4, 6, 5, 21, 6, 30, 7, 46, 8, 51, 9, 40, 10, 34, 11, 18, 12, 6, 13, 3]
82$\\alpha^{82}$46[0, 1, 4, 6, 5, 21, 6, 29, 7, 44, 8, 53, 9, 46, 10, 34, 11, 12, 12, 4, 13, 5, 14, 1]
83$\\alpha^{83}$48[0, 1, 4, 8, 5, 21, 6, 24, 7, 44, 8, 57, 9, 46, 10, 32, 11, 12, 12, 6, 13, 5]
84$\\alpha^{84}$49[0, 1, 4, 9, 5, 20, 6, 20, 7, 48, 8, 63, 9, 40, 10, 28, 11, 16, 12, 7, 13, 4]
85$\\alpha^{85}$410[0, 1, 4, 10, 5, 18, 6, 18, 7, 51, 8, 63, 9, 42, 10, 30, 11, 12, 12, 6, 13, 4, 15, 1]
86$\\alpha^{86}$49[0, 1, 4, 9, 5, 20, 6, 20, 7, 48, 8, 63, 9, 40, 10, 28, 11, 16, 12, 7, 13, 4]
87$\\alpha^{87}$48[0, 1, 4, 8, 5, 19, 6, 24, 7, 49, 8, 57, 9, 42, 10, 32, 11, 14, 12, 6, 13, 3, 15, 1]
88$\\alpha^{88}$47[0, 1, 4, 7, 5, 18, 6, 28, 7, 53, 8, 51, 9, 36, 10, 36, 11, 18, 12, 5, 13, 2, 15, 1]
89$\\alpha^{89}$47[0, 1, 4, 7, 5, 16, 6, 34, 7, 54, 8, 41, 9, 38, 10, 38, 11, 18, 12, 7, 13, 2]
90$\\alpha^{90}$46[0, 1, 4, 6, 5, 15, 6, 36, 7, 56, 8, 41, 9, 38, 10, 36, 11, 16, 12, 8, 13, 3]
91$\\alpha^{91}$46[0, 1, 4, 6, 5, 18, 6, 36, 7, 48, 8, 41, 9, 44, 10, 36, 11, 16, 12, 8, 13, 2]
92$\\alpha^{92}$46[0, 1, 4, 6, 5, 17, 6, 35, 7, 50, 8, 43, 9, 44, 10, 36, 11, 14, 12, 6, 13, 3, 14, 1]
93$\\alpha^{93}$31[0, 1, 3, 1, 4, 5, 5, 18, 6, 32, 7, 50, 8, 51, 9, 36, 10, 32, 11, 21, 12, 7, 13, 2]
94$\\alpha^{94}$32[0, 1, 3, 2, 4, 5, 5, 16, 6, 37, 7, 44, 8, 43, 9, 48, 10, 34, 11, 18, 12, 7, 14, 1]
95$\\alpha^{95}$33[0, 1, 3, 3, 4, 4, 5, 16, 6, 36, 7, 43, 8, 45, 9, 48, 10, 36, 11, 17, 12, 6, 15, 1]
96$\\alpha^{96}$34[0, 1, 3, 4, 4, 3, 5, 15, 6, 38, 7, 42, 8, 45, 9, 48, 10, 34, 11, 18, 12, 7, 13, 1]
97$\\alpha^{97}$34[0, 1, 3, 4, 4, 4, 5, 19, 6, 40, 7, 36, 8, 41, 9, 50, 10, 32, 11, 16, 12, 10, 13, 3]
98$\\alpha^{98}$34[0, 1, 3, 4, 4, 4, 5, 21, 6, 42, 7, 30, 8, 35, 9, 56, 10, 38, 11, 14, 12, 8, 13, 3]
99$\\alpha^{99}$34[0, 1, 3, 4, 4, 4, 5, 21, 6, 42, 7, 30, 8, 35, 9, 56, 10, 38, 11, 14, 12, 8, 13, 3]
100$\\alpha^{100}$34[0, 1, 3, 4, 4, 4, 5, 21, 6, 42, 7, 30, 8, 35, 9, 56, 10, 38, 11, 14, 12, 8, 13, 3]
101$\\alpha^{101}$33[0, 1, 3, 3, 4, 5, 5, 22, 6, 39, 7, 32, 8, 37, 9, 54, 10, 40, 11, 13, 12, 5, 13, 4, 14, 1]
102$\\alpha^{102}$32[0, 1, 3, 2, 4, 6, 5, 21, 6, 36, 7, 40, 8, 41, 9, 46, 10, 36, 11, 14, 12, 8, 13, 5]
103$\\alpha^{103}$31[0, 1, 3, 1, 4, 7, 5, 16, 6, 37, 7, 42, 8, 39, 9, 56, 10, 34, 11, 13, 12, 9, 14, 1]
104$\\alpha^{104}$47[0, 1, 4, 7, 5, 12, 6, 46, 7, 38, 8, 45, 9, 54, 10, 26, 11, 18, 12, 3, 13, 6]
105$\\alpha^{105}$31[0, 1, 3, 1, 4, 6, 5, 12, 6, 38, 7, 52, 8, 43, 9, 50, 10, 26, 11, 11, 12, 14, 13, 2]
106$\\alpha^{106}$31[0, 1, 3, 1, 4, 6, 5, 13, 6, 34, 7, 56, 8, 47, 9, 40, 10, 30, 11, 15, 12, 10, 13, 3]
107$\\alpha^{107}$31[0, 1, 3, 1, 4, 7, 5, 13, 6, 32, 7, 58, 8, 47, 9, 34, 10, 32, 11, 21, 12, 9, 13, 1]
108$\\alpha^{108}$31[0, 1, 3, 1, 4, 8, 5, 13, 6, 29, 7, 58, 8, 49, 9, 34, 10, 34, 11, 21, 12, 6, 13, 1, 14, 1]
109$\\alpha^{109}$31[0, 1, 3, 1, 4, 8, 5, 13, 6, 29, 7, 58, 8, 49, 9, 34, 10, 34, 11, 21, 12, 6, 13, 1, 14, 1]
110$\\alpha^{110}$31[0, 1, 3, 1, 4, 7, 5, 14, 6, 30, 7, 54, 8, 51, 9, 40, 10, 32, 11, 17, 12, 5, 13, 2, 14, 2]
111$\\alpha^{111}$31[0, 1, 3, 1, 4, 8, 5, 15, 6, 25, 7, 52, 8, 59, 9, 40, 10, 28, 11, 19, 12, 4, 13, 1, 14, 3]
112$\\alpha^{112}$31[0, 1, 3, 1, 4, 9, 5, 15, 6, 20, 7, 58, 8, 63, 9, 30, 10, 28, 11, 21, 12, 7, 13, 3]
113$\\alpha^{113}$411[0, 1, 4, 11, 5, 14, 6, 24, 7, 54, 8, 53, 9, 42, 10, 30, 11, 18, 12, 7, 14, 2]
114$\\alpha^{114}$411[0, 1, 4, 11, 5, 14, 6, 25, 7, 52, 8, 51, 9, 48, 10, 30, 11, 12, 12, 9, 13, 2, 14, 1]
115$\\alpha^{115}$31[0, 1, 3, 1, 4, 9, 5, 16, 6, 26, 7, 48, 8, 53, 9, 46, 10, 30, 11, 15, 12, 9, 13, 2]
116$\\alpha^{116}$32[0, 1, 3, 2, 4, 6, 5, 18, 6, 28, 7, 44, 8, 57, 9, 44, 10, 28, 11, 18, 12, 8, 13, 2]
117$\\alpha^{117}$33[0, 1, 3, 3, 4, 6, 5, 18, 6, 28, 7, 38, 8, 57, 9, 52, 10, 28, 11, 15, 12, 8, 13, 2]
118$\\alpha^{118}$33[0, 1, 3, 3, 4, 6, 5, 18, 6, 30, 7, 36, 8, 51, 9, 58, 10, 34, 11, 9, 12, 6, 13, 4]
119$\\alpha^{119}$33[0, 1, 3, 3, 4, 4, 5, 18, 6, 36, 7, 38, 8, 45, 9, 52, 10, 36, 11, 15, 12, 6, 13, 2]
120$\\alpha^{120}$33[0, 1, 3, 3, 4, 3, 5, 17, 6, 37, 7, 42, 8, 47, 9, 46, 10, 34, 11, 19, 12, 5, 13, 1, 14, 1]
121$\\alpha^{121}$33[0, 1, 3, 3, 4, 4, 5, 16, 6, 34, 7, 44, 8, 51, 9, 46, 10, 30, 11, 17, 12, 8, 13, 2]
122$\\alpha^{122}$33[0, 1, 3, 3, 4, 4, 5, 17, 6, 32, 7, 42, 8, 57, 9, 46, 10, 24, 11, 19, 12, 10, 13, 1]
123$\\alpha^{123}$32[0, 1, 3, 2, 4, 5, 5, 18, 6, 29, 7, 44, 8, 59, 9, 44, 10, 26, 11, 18, 12, 7, 13, 2, 14, 1]
124$\\alpha^{124}$31[0, 1, 3, 1, 4, 5, 5, 20, 6, 27, 7, 44, 8, 65, 9, 42, 10, 20, 11, 19, 12, 9, 13, 2, 14, 1]
125$\\alpha^{125}$44[0, 1, 4, 4, 5, 23, 6, 31, 7, 42, 8, 59, 9, 40, 10, 24, 11, 22, 12, 8, 13, 1, 14, 1]
126$\\alpha^{126}$43[0, 1, 4, 3, 5, 25, 6, 33, 7, 36, 8, 59, 9, 46, 10, 22, 11, 20, 12, 9, 13, 1, 14, 1]
127$\\alpha^{127}$43[0, 1, 4, 3, 5, 25, 6, 34, 7, 36, 8, 55, 9, 46, 10, 28, 11, 20, 12, 5, 13, 1, 14, 2]
128$\\alpha^{128}$43[0, 1, 4, 3, 5, 25, 6, 34, 7, 36, 8, 55, 9, 46, 10, 28, 11, 20, 12, 5, 13, 1, 14, 2]
129$\\alpha^{129}$43[0, 1, 4, 3, 5, 25, 6, 33, 7, 36, 8, 59, 9, 46, 10, 22, 11, 20, 12, 9, 13, 1, 14, 1]
130$\\alpha^{130}$44[0, 1, 4, 4, 5, 23, 6, 31, 7, 42, 8, 59, 9, 40, 10, 24, 11, 22, 12, 8, 13, 1, 14, 1]
131$\\alpha^{131}$31[0, 1, 3, 1, 4, 5, 5, 20, 6, 27, 7, 44, 8, 65, 9, 42, 10, 20, 11, 19, 12, 9, 13, 2, 14, 1]
132$\\alpha^{132}$32[0, 1, 3, 2, 4, 5, 5, 18, 6, 29, 7, 44, 8, 59, 9, 44, 10, 26, 11, 18, 12, 7, 13, 2, 14, 1]
133$\\alpha^{133}$33[0, 1, 3, 3, 4, 4, 5, 17, 6, 32, 7, 42, 8, 57, 9, 46, 10, 24, 11, 19, 12, 10, 13, 1]
134$\\alpha^{134}$33[0, 1, 3, 3, 4, 4, 5, 16, 6, 34, 7, 44, 8, 51, 9, 46, 10, 30, 11, 17, 12, 8, 13, 2]
135$\\alpha^{135}$33[0, 1, 3, 3, 4, 3, 5, 17, 6, 37, 7, 42, 8, 47, 9, 46, 10, 34, 11, 19, 12, 5, 13, 1, 14, 1]
136$\\alpha^{136}$33[0, 1, 3, 3, 4, 4, 5, 18, 6, 36, 7, 38, 8, 45, 9, 52, 10, 36, 11, 15, 12, 6, 13, 2]
137$\\alpha^{137}$33[0, 1, 3, 3, 4, 6, 5, 18, 6, 30, 7, 36, 8, 51, 9, 58, 10, 34, 11, 9, 12, 6, 13, 4]
138$\\alpha^{138}$33[0, 1, 3, 3, 4, 6, 5, 18, 6, 28, 7, 38, 8, 57, 9, 52, 10, 28, 11, 15, 12, 8, 13, 2]
139$\\alpha^{139}$32[0, 1, 3, 2, 4, 6, 5, 18, 6, 28, 7, 44, 8, 57, 9, 44, 10, 28, 11, 18, 12, 8, 13, 2]
140$\\alpha^{140}$31[0, 1, 3, 1, 4, 9, 5, 16, 6, 26, 7, 48, 8, 53, 9, 46, 10, 30, 11, 15, 12, 9, 13, 2]
141$\\alpha^{141}$411[0, 1, 4, 11, 5, 14, 6, 25, 7, 52, 8, 51, 9, 48, 10, 30, 11, 12, 12, 9, 13, 2, 14, 1]
142$\\alpha^{142}$411[0, 1, 4, 11, 5, 14, 6, 24, 7, 54, 8, 53, 9, 42, 10, 30, 11, 18, 12, 7, 14, 2]
143$\\alpha^{143}$31[0, 1, 3, 1, 4, 9, 5, 15, 6, 20, 7, 58, 8, 63, 9, 30, 10, 28, 11, 21, 12, 7, 13, 3]
144$\\alpha^{144}$31[0, 1, 3, 1, 4, 8, 5, 15, 6, 25, 7, 52, 8, 59, 9, 40, 10, 28, 11, 19, 12, 4, 13, 1, 14, 3]
145$\\alpha^{145}$31[0, 1, 3, 1, 4, 7, 5, 14, 6, 30, 7, 54, 8, 51, 9, 40, 10, 32, 11, 17, 12, 5, 13, 2, 14, 2]
146$\\alpha^{146}$31[0, 1, 3, 1, 4, 8, 5, 13, 6, 29, 7, 58, 8, 49, 9, 34, 10, 34, 11, 21, 12, 6, 13, 1, 14, 1]
147$\\alpha^{147}$31[0, 1, 3, 1, 4, 8, 5, 13, 6, 29, 7, 58, 8, 49, 9, 34, 10, 34, 11, 21, 12, 6, 13, 1, 14, 1]
148$\\alpha^{148}$31[0, 1, 3, 1, 4, 7, 5, 13, 6, 32, 7, 58, 8, 47, 9, 34, 10, 32, 11, 21, 12, 9, 13, 1]
149$\\alpha^{149}$31[0, 1, 3, 1, 4, 6, 5, 13, 6, 34, 7, 56, 8, 47, 9, 40, 10, 30, 11, 15, 12, 10, 13, 3]
150$\\alpha^{150}$31[0, 1, 3, 1, 4, 6, 5, 12, 6, 38, 7, 52, 8, 43, 9, 50, 10, 26, 11, 11, 12, 14, 13, 2]
151$\\alpha^{151}$47[0, 1, 4, 7, 5, 12, 6, 46, 7, 38, 8, 45, 9, 54, 10, 26, 11, 18, 12, 3, 13, 6]
152$\\alpha^{152}$31[0, 1, 3, 1, 4, 7, 5, 16, 6, 37, 7, 42, 8, 39, 9, 56, 10, 34, 11, 13, 12, 9, 14, 1]
153$\\alpha^{153}$32[0, 1, 3, 2, 4, 6, 5, 21, 6, 36, 7, 40, 8, 41, 9, 46, 10, 36, 11, 14, 12, 8, 13, 5]
154$\\alpha^{154}$33[0, 1, 3, 3, 4, 5, 5, 22, 6, 39, 7, 32, 8, 37, 9, 54, 10, 40, 11, 13, 12, 5, 13, 4, 14, 1]
155$\\alpha^{155}$34[0, 1, 3, 4, 4, 4, 5, 21, 6, 42, 7, 30, 8, 35, 9, 56, 10, 38, 11, 14, 12, 8, 13, 3]
156$\\alpha^{156}$34[0, 1, 3, 4, 4, 4, 5, 21, 6, 42, 7, 30, 8, 35, 9, 56, 10, 38, 11, 14, 12, 8, 13, 3]
157$\\alpha^{157}$34[0, 1, 3, 4, 4, 4, 5, 21, 6, 42, 7, 30, 8, 35, 9, 56, 10, 38, 11, 14, 12, 8, 13, 3]
158$\\alpha^{158}$34[0, 1, 3, 4, 4, 4, 5, 19, 6, 40, 7, 36, 8, 41, 9, 50, 10, 32, 11, 16, 12, 10, 13, 3]
159$\\alpha^{159}$34[0, 1, 3, 4, 4, 3, 5, 15, 6, 38, 7, 42, 8, 45, 9, 48, 10, 34, 11, 18, 12, 7, 13, 1]
160$\\alpha^{160}$33[0, 1, 3, 3, 4, 4, 5, 16, 6, 36, 7, 43, 8, 45, 9, 48, 10, 36, 11, 17, 12, 6, 15, 1]
161$\\alpha^{161}$32[0, 1, 3, 2, 4, 5, 5, 16, 6, 37, 7, 44, 8, 43, 9, 48, 10, 34, 11, 18, 12, 7, 14, 1]
162$\\alpha^{162}$31[0, 1, 3, 1, 4, 5, 5, 18, 6, 32, 7, 50, 8, 51, 9, 36, 10, 32, 11, 21, 12, 7, 13, 2]
163$\\alpha^{163}$46[0, 1, 4, 6, 5, 17, 6, 35, 7, 50, 8, 43, 9, 44, 10, 36, 11, 14, 12, 6, 13, 3, 14, 1]
164$\\alpha^{164}$46[0, 1, 4, 6, 5, 18, 6, 36, 7, 48, 8, 41, 9, 44, 10, 36, 11, 16, 12, 8, 13, 2]
165$\\alpha^{165}$46[0, 1, 4, 6, 5, 15, 6, 36, 7, 56, 8, 41, 9, 38, 10, 36, 11, 16, 12, 8, 13, 3]
166$\\alpha^{166}$47[0, 1, 4, 7, 5, 16, 6, 34, 7, 54, 8, 41, 9, 38, 10, 38, 11, 18, 12, 7, 13, 2]
167$\\alpha^{167}$47[0, 1, 4, 7, 5, 18, 6, 28, 7, 53, 8, 51, 9, 36, 10, 36, 11, 18, 12, 5, 13, 2, 15, 1]
168$\\alpha^{168}$48[0, 1, 4, 8, 5, 19, 6, 24, 7, 49, 8, 57, 9, 42, 10, 32, 11, 14, 12, 6, 13, 3, 15, 1]
169$\\alpha^{169}$49[0, 1, 4, 9, 5, 20, 6, 20, 7, 48, 8, 63, 9, 40, 10, 28, 11, 16, 12, 7, 13, 4]
170$\\alpha^{170}$410[0, 1, 4, 10, 5, 18, 6, 18, 7, 51, 8, 63, 9, 42, 10, 30, 11, 12, 12, 6, 13, 4, 15, 1]
171$\\alpha^{171}$49[0, 1, 4, 9, 5, 20, 6, 20, 7, 48, 8, 63, 9, 40, 10, 28, 11, 16, 12, 7, 13, 4]
172$\\alpha^{172}$48[0, 1, 4, 8, 5, 21, 6, 24, 7, 44, 8, 57, 9, 46, 10, 32, 11, 12, 12, 6, 13, 5]
173$\\alpha^{173}$46[0, 1, 4, 6, 5, 21, 6, 29, 7, 44, 8, 53, 9, 46, 10, 34, 11, 12, 12, 4, 13, 5, 14, 1]
174$\\alpha^{174}$46[0, 1, 4, 6, 5, 21, 6, 30, 7, 46, 8, 51, 9, 40, 10, 34, 11, 18, 12, 6, 13, 3]
175$\\alpha^{175}$46[0, 1, 4, 6, 5, 21, 6, 30, 7, 46, 8, 51, 9, 40, 10, 34, 11, 18, 12, 6, 13, 3]
176$\\alpha^{176}$46[0, 1, 4, 6, 5, 22, 6, 30, 7, 42, 8, 51, 9, 46, 10, 34, 11, 14, 12, 6, 13, 4]
177$\\alpha^{177}$45[0, 1, 4, 5, 5, 23, 6, 29, 7, 40, 8, 59, 9, 46, 10, 26, 11, 16, 12, 7, 13, 3, 14, 1]
178$\\alpha^{178}$45[0, 1, 4, 5, 5, 24, 6, 30, 7, 38, 8, 57, 9, 46, 10, 26, 11, 18, 12, 9, 13, 2]
179$\\alpha^{179}$46[0, 1, 4, 6, 5, 22, 6, 28, 7, 44, 8, 57, 9, 40, 10, 28, 11, 20, 12, 8, 13, 2]
180$\\alpha^{180}$47[0, 1, 4, 7, 5, 20, 6, 29, 7, 44, 8, 55, 9, 44, 10, 26, 11, 20, 12, 9, 14, 1]
181$\\alpha^{181}$48[0, 1, 4, 8, 5, 19, 6, 27, 7, 46, 8, 55, 9, 44, 10, 28, 11, 18, 12, 8, 13, 1, 14, 1]
182$\\alpha^{182}$47[0, 1, 4, 7, 5, 19, 6, 30, 7, 46, 8, 53, 9, 44, 10, 26, 11, 18, 12, 11, 13, 1]
183$\\alpha^{183}$46[0, 1, 4, 6, 5, 18, 6, 32, 7, 50, 8, 51, 9, 38, 10, 30, 11, 22, 12, 6, 14, 2]
184$\\alpha^{184}$31[0, 1, 3, 1, 4, 4, 5, 18, 6, 33, 7, 50, 8, 53, 9, 36, 10, 30, 11, 21, 12, 6, 13, 2, 14, 1]
185$\\alpha^{185}$32[0, 1, 3, 2, 4, 3, 5, 16, 6, 35, 7, 50, 8, 53, 9, 38, 10, 28, 11, 20, 12, 7, 13, 2, 14, 1]
186$\\alpha^{186}$32[0, 1, 3, 2, 4, 3, 5, 16, 6, 35, 7, 50, 8, 53, 9, 38, 10, 28, 11, 20, 12, 7, 13, 2, 14, 1]
187$\\alpha^{187}$32[0, 1, 3, 2, 4, 3, 5, 16, 6, 35, 7, 50, 8, 53, 9, 38, 10, 28, 11, 20, 12, 7, 13, 2, 14, 1]
188$\\alpha^{188}$32[0, 1, 3, 2, 4, 5, 5, 15, 6, 32, 7, 52, 8, 51, 9, 38, 10, 32, 11, 18, 12, 7, 13, 3]
189$\\alpha^{189}$32[0, 1, 3, 2, 4, 6, 5, 13, 6, 31, 7, 50, 8, 55, 9, 48, 10, 24, 11, 12, 12, 10, 13, 3, 14, 1]
190$\\alpha^{190}$32[0, 1, 3, 2, 4, 6, 5, 16, 6, 28, 7, 48, 8, 57, 9, 44, 10, 28, 11, 14, 12, 8, 13, 4]
191$\\alpha^{191}$32[0, 1, 3, 2, 4, 7, 5, 16, 6, 28, 7, 48, 8, 51, 9, 44, 10, 36, 11, 14, 12, 5, 13, 4]
192$\\alpha^{192}$31[0, 1, 3, 1, 4, 10, 5, 14, 6, 30, 7, 48, 8, 43, 9, 50, 10, 34, 11, 15, 12, 10]
193$\\alpha^{193}$413[0, 1, 4, 13, 5, 11, 6, 36, 7, 36, 8, 47, 9, 58, 10, 28, 11, 20, 12, 3, 13, 3]
194$\\alpha^{194}$414[0, 1, 4, 14, 5, 9, 6, 38, 7, 34, 8, 43, 9, 68, 10, 26, 11, 14, 12, 6, 13, 3]
195$\\alpha^{195}$415[0, 1, 4, 15, 5, 8, 6, 35, 7, 38, 8, 45, 9, 62, 10, 28, 11, 18, 12, 3, 13, 2, 14, 1]
196$\\alpha^{196}$415[0, 1, 4, 15, 5, 8, 6, 30, 7, 43, 8, 53, 9, 54, 10, 26, 11, 20, 12, 3, 13, 2, 15, 1]
197$\\alpha^{197}$413[0, 1, 4, 13, 5, 10, 6, 24, 7, 58, 8, 49, 9, 46, 10, 30, 11, 14, 12, 9, 14, 2]
198$\\alpha^{198}$413[0, 1, 4, 13, 5, 7, 6, 28, 7, 53, 8, 63, 9, 38, 10, 20, 11, 26, 12, 3, 13, 3, 15, 1]
199$\\alpha^{199}$410[0, 1, 4, 10, 5, 12, 6, 25, 7, 60, 8, 57, 9, 36, 10, 22, 11, 20, 12, 12, 14, 1]
200$\\alpha^{200}$31[0, 1, 3, 1, 4, 7, 5, 15, 6, 24, 7, 58, 8, 63, 9, 30, 10, 24, 11, 21, 12, 9, 13, 3]
201$\\alpha^{201}$32[0, 1, 3, 2, 4, 7, 5, 14, 6, 28, 7, 56, 8, 51, 9, 32, 10, 36, 11, 22, 12, 5, 13, 2]
202$\\alpha^{202}$33[0, 1, 3, 3, 4, 8, 5, 15, 6, 29, 7, 54, 8, 49, 9, 30, 10, 34, 11, 23, 12, 6, 13, 3, 14, 1]
203$\\alpha^{203}$34[0, 1, 3, 4, 4, 7, 5, 13, 6, 28, 7, 48, 8, 51, 9, 42, 10, 36, 11, 20, 12, 5, 13, 1]
204$\\alpha^{204}$35[0, 1, 3, 5, 4, 6, 5, 13, 6, 32, 7, 42, 8, 45, 9, 50, 10, 40, 11, 17, 12, 4, 13, 1]
205$\\alpha^{205}$36[0, 1, 3, 6, 4, 6, 5, 12, 6, 32, 7, 40, 8, 45, 9, 52, 10, 40, 11, 18, 12, 4]
206$\\alpha^{206}$36[0, 1, 3, 6, 4, 7, 5, 15, 6, 34, 7, 38, 8, 41, 9, 48, 10, 38, 11, 20, 12, 7, 13, 1]
207$\\alpha^{207}$36[0, 1, 3, 6, 4, 8, 5, 15, 6, 30, 7, 38, 8, 47, 9, 48, 10, 34, 11, 20, 12, 8, 13, 1]
208$\\alpha^{208}$35[0, 1, 3, 5, 4, 8, 5, 16, 6, 30, 7, 40, 8, 47, 9, 46, 10, 34, 11, 19, 12, 8, 13, 2]
209$\\alpha^{209}$34[0, 1, 3, 4, 4, 6, 5, 19, 6, 34, 7, 38, 8, 47, 9, 44, 10, 30, 11, 22, 12, 10, 13, 1]
210$\\alpha^{210}$33[0, 1, 3, 3, 4, 5, 5, 21, 6, 38, 7, 36, 8, 41, 9, 48, 10, 34, 11, 17, 12, 9, 13, 3]
211$\\alpha^{211}$32[0, 1, 3, 2, 4, 4, 5, 23, 6, 40, 7, 36, 8, 41, 9, 46, 10, 32, 11, 18, 12, 10, 13, 3]
212$\\alpha^{212}$31[0, 1, 3, 1, 4, 4, 5, 22, 6, 36, 7, 38, 8, 45, 9, 48, 10, 36, 11, 17, 12, 6, 13, 2]
213$\\alpha^{213}$44[0, 1, 4, 4, 5, 21, 6, 36, 7, 44, 8, 45, 9, 46, 10, 36, 11, 12, 12, 6, 13, 5]
214$\\alpha^{214}$44[0, 1, 4, 4, 5, 22, 6, 36, 7, 44, 8, 45, 9, 40, 10, 36, 11, 20, 12, 6, 13, 2]
215$\\alpha^{215}$45[0, 1, 4, 5, 5, 22, 6, 34, 7, 43, 8, 45, 9, 42, 10, 38, 11, 20, 12, 5, 15, 1]
216$\\alpha^{216}$31[0, 1, 3, 1, 4, 5, 5, 21, 6, 33, 7, 42, 8, 47, 9, 42, 10, 38, 11, 21, 12, 3, 13, 1, 14, 1]
217$\\alpha^{217}$32[0, 1, 3, 2, 4, 7, 5, 19, 6, 28, 7, 40, 8, 51, 9, 50, 10, 36, 11, 14, 12, 5, 13, 3]
218$\\alpha^{218}$33[0, 1, 3, 3, 4, 7, 5, 17, 6, 26, 7, 40, 8, 57, 9, 52, 10, 30, 11, 13, 12, 7, 13, 3]
219$\\alpha^{219}$34[0, 1, 3, 4, 4, 8, 5, 17, 6, 24, 7, 36, 8, 57, 9, 54, 10, 32, 11, 16, 12, 6, 13, 1]
220$\\alpha^{220}$35[0, 1, 3, 5, 4, 8, 5, 16, 6, 24, 7, 34, 8, 57, 9, 56, 10, 32, 11, 17, 12, 6]
221$\\alpha^{221}$35[0, 1, 3, 5, 4, 7, 5, 15, 6, 26, 7, 36, 8, 57, 9, 56, 10, 30, 11, 15, 12, 7, 13, 1]
222$\\alpha^{222}$35[0, 1, 3, 5, 4, 6, 5, 14, 6, 30, 7, 40, 8, 51, 9, 50, 10, 34, 11, 19, 12, 6]
223$\\alpha^{223}$35[0, 1, 3, 5, 4, 5, 5, 12, 6, 32, 7, 46, 8, 51, 9, 44, 10, 32, 11, 21, 12, 7]
224$\\alpha^{224}$35[0, 1, 3, 5, 4, 4, 5, 11, 6, 34, 7, 48, 8, 51, 9, 44, 10, 30, 11, 19, 12, 8, 13, 1]
225$\\alpha^{225}$35[0, 1, 3, 5, 4, 3, 5, 11, 6, 36, 7, 46, 8, 51, 9, 50, 10, 28, 11, 13, 12, 9, 13, 3]
226$\\alpha^{226}$35[0, 1, 3, 5, 4, 3, 5, 10, 6, 35, 7, 48, 8, 53, 9, 50, 10, 28, 11, 11, 12, 7, 13, 4, 14, 1]
227$\\alpha^{227}$35[0, 1, 3, 5, 4, 4, 5, 9, 6, 34, 7, 52, 8, 51, 9, 44, 10, 30, 11, 15, 12, 8, 13, 3]
228$\\alpha^{228}$35[0, 1, 3, 5, 4, 5, 5, 10, 6, 32, 7, 50, 8, 51, 9, 44, 10, 32, 11, 17, 12, 7, 13, 2]
229$\\alpha^{229}$36[0, 1, 3, 6, 4, 6, 5, 9, 6, 30, 7, 46, 8, 51, 9, 52, 10, 34, 11, 12, 12, 6, 13, 3]
230$\\alpha^{230}$37[0, 1, 3, 7, 4, 6, 5, 8, 6, 30, 7, 44, 8, 51, 9, 54, 10, 34, 11, 13, 12, 6, 13, 2]
231$\\alpha^{231}$37[0, 1, 3, 7, 4, 7, 5, 9, 6, 28, 7, 42, 8, 51, 9, 54, 10, 36, 11, 15, 12, 5, 13, 1]
232$\\alpha^{232}$36[0, 1, 3, 6, 4, 7, 5, 10, 6, 28, 7, 44, 8, 51, 9, 52, 10, 36, 11, 14, 12, 5, 13, 2]
233$\\alpha^{233}$35[0, 1, 3, 5, 4, 7, 5, 10, 6, 28, 7, 50, 8, 51, 9, 44, 10, 36, 11, 17, 12, 5, 13, 2]
234$\\alpha^{234}$34[0, 1, 3, 4, 4, 7, 5, 9, 6, 32, 7, 52, 8, 47, 9, 46, 10, 32, 11, 16, 12, 9, 13, 1]
235$\\alpha^{235}$33[0, 1, 3, 3, 4, 7, 5, 10, 6, 32, 7, 54, 8, 47, 9, 44, 10, 32, 11, 15, 12, 9, 13, 2]
236$\\alpha^{236}$32[0, 1, 3, 2, 4, 6, 5, 12, 6, 31, 7, 54, 8, 55, 9, 42, 10, 24, 11, 16, 12, 10, 13, 2, 14, 1]
237$\\alpha^{237}$31[0, 1, 3, 1, 4, 5, 5, 16, 6, 32, 7, 54, 8, 51, 9, 36, 10, 32, 11, 17, 12, 7, 13, 4]
238$\\alpha^{238}$46[0, 1, 4, 6, 5, 19, 6, 32, 7, 46, 8, 51, 9, 44, 10, 30, 11, 18, 12, 6, 13, 1, 14, 2]
239$\\alpha^{239}$46[0, 1, 4, 6, 5, 21, 6, 30, 7, 46, 8, 51, 9, 40, 10, 34, 11, 18, 12, 6, 13, 3]
240$\\alpha^{240}$47[0, 1, 4, 7, 5, 20, 6, 28, 7, 48, 8, 51, 9, 40, 10, 36, 11, 16, 12, 5, 13, 4]
241$\\alpha^{241}$47[0, 1, 4, 7, 5, 22, 6, 28, 7, 44, 8, 51, 9, 40, 10, 36, 11, 20, 12, 5, 13, 2]
242$\\alpha^{242}$46[0, 1, 4, 6, 5, 22, 6, 30, 7, 43, 8, 51, 9, 42, 10, 34, 11, 20, 12, 6, 15, 1]
243$\\alpha^{243}$46[0, 1, 4, 6, 5, 21, 6, 30, 7, 46, 8, 51, 9, 40, 10, 34, 11, 18, 12, 6, 13, 3]
244$\\alpha^{244}$46[0, 1, 4, 6, 5, 22, 6, 30, 7, 42, 8, 51, 9, 46, 10, 34, 11, 14, 12, 6, 13, 4]
245$\\alpha^{245}$46[0, 1, 4, 6, 5, 22, 6, 27, 7, 42, 8, 59, 9, 46, 10, 28, 11, 14, 12, 6, 13, 4, 14, 1]
246$\\alpha^{246}$45[0, 1, 4, 5, 5, 23, 6, 29, 7, 40, 8, 59, 9, 46, 10, 26, 11, 16, 12, 7, 13, 3, 14, 1]
247$\\alpha^{247}$43[0, 1, 4, 3, 5, 25, 6, 34, 7, 36, 8, 55, 9, 46, 10, 28, 11, 20, 12, 5, 13, 1, 14, 2]
248$\\alpha^{248}$21[0, 1, 2, 1, 4, 1, 5, 23, 6, 36, 7, 40, 8, 51, 9, 46, 10, 33, 11, 16, 12, 3, 13, 3, 14, 2]
249$\\alpha^{249}$22[0, 1, 2, 2, 4, 1, 5, 23, 6, 32, 7, 40, 8, 55, 9, 46, 10, 30, 11, 16, 12, 7, 13, 3]
250$\\alpha^{250}$23[0, 1, 2, 3, 4, 3, 5, 24, 6, 29, 7, 38, 8, 57, 9, 46, 10, 23, 11, 18, 12, 11, 13, 2, 14, 1]
251$\\alpha^{251}$24[0, 1, 2, 4, 4, 6, 5, 24, 6, 24, 7, 44, 8, 53, 9, 36, 10, 28, 11, 20, 12, 12, 13, 4]
252$\\alpha^{252}$25[0, 1, 2, 5, 4, 10, 5, 20, 6, 24, 7, 48, 8, 41, 9, 40, 10, 33, 11, 16, 12, 12, 13, 4, 14, 2]
253$\\alpha^{253}$26[0, 1, 2, 6, 4, 15, 5, 16, 6, 24, 7, 48, 8, 31, 9, 48, 10, 30, 11, 16, 12, 17, 14, 4]
254$\\alpha^{254}$27[0, 1, 2, 7, 4, 21, 5, 8, 6, 35, 7, 32, 8, 35, 9, 48, 10, 21, 11, 32, 12, 7, 13, 8, 14, 1]
" ], "text/plain": [ "" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df = pd.DataFrame({'$L_2$': alpha_all[:-1], '$d_{\\mathcal{D}}^\\perp$': d_all[:-1], '$B_{d_{\\mathcal{D}}^\\perp}$': B_all[:-1], \n", " 'Weight Enumerators': wd[:-1]})\n", "\n", "pd.set_option('display.max_colwidth', 1000)\n", "pd.set_option('display.width', 800)\n", "(df.style\n", " .background_gradient(cmap=cm_1, subset=['$d_{\\mathcal{D}}^\\perp$','$B_{d_{\\mathcal{D}}^\\perp}$' ])\n", " .background_gradient(cmap=cm_2, subset=['$B_{d_{\\mathcal{D}}^\\perp}$' ])\n", " .set_caption('Tab. I All linear codes for IPM with $n=2$ shares over $\\mathbb{F}_{2^8}$.')\n", " .set_table_styles(styles))\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 2. Optimal linear codes for IPM" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 2.1 Linear codes with $d_{\\mathcal{D}}^\\perp=4$\n", "\n", "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)." ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "ExecuteTime": { "end_time": "2020-02-15T10:38:38.717843Z", "start_time": "2020-02-15T10:38:38.704887Z" } }, "outputs": [], "source": [ "# Finding the indices of d_C=4 \n", "d_index = []\n", "d_C = 4\n", "for i in range(len(wd)):\n", " if wd[i][2] == d_C:\n", " d_index.append(i)\n", "\n", "#d_index = np.array(d_index)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "ExecuteTime": { "end_time": "2020-02-15T10:38:59.349851Z", "start_time": "2020-02-15T10:38:59.324927Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "94\n" ] } ], "source": [ "print(len(d_index))" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "ExecuteTime": { "end_time": "2020-02-03T13:20:36.090370Z", "start_time": "2020-02-03T13:20:36.082388Z" } }, "outputs": [], "source": [ "def highlight(s, threshold, column):\n", " is_min = pd.Series(data=False, index=s.index)\n", " is_min[column] = (s.loc[column] <= threshold)\n", " return ['background-color: gold' if is_min.any() else '' for v in is_min]" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "ExecuteTime": { "end_time": "2020-02-03T13:20:37.974146Z", "start_time": "2020-02-03T13:20:36.895018Z" }, "scrolled": false }, "outputs": [ { "data": { "text/html": [ "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Tab. II Linear codes for IPM with $d_{\\mathcal{D}}^\\perp=4$.
$L_2$ $d_{\\mathcal{D}}^\\perp$ $B_{d_{\\mathcal{D}}^\\perp}$ Weight Enumerators
0$\\alpha^{8}$43[0, 1, 4, 3, 5, 25, 6, 34, 7, 36, 8, 55, 9, 46, 10, 28, 11, 20, 12, 5, 13, 1, 14, 2]
48$\\alpha^{129}$43[0, 1, 4, 3, 5, 25, 6, 33, 7, 36, 8, 59, 9, 46, 10, 22, 11, 20, 12, 9, 13, 1, 14, 1]
47$\\alpha^{128}$43[0, 1, 4, 3, 5, 25, 6, 34, 7, 36, 8, 55, 9, 46, 10, 28, 11, 20, 12, 5, 13, 1, 14, 2]
45$\\alpha^{126}$43[0, 1, 4, 3, 5, 25, 6, 33, 7, 36, 8, 59, 9, 46, 10, 22, 11, 20, 12, 9, 13, 1, 14, 1]
46$\\alpha^{127}$43[0, 1, 4, 3, 5, 25, 6, 34, 7, 36, 8, 55, 9, 46, 10, 28, 11, 20, 12, 5, 13, 1, 14, 2]
93$\\alpha^{247}$43[0, 1, 4, 3, 5, 25, 6, 34, 7, 36, 8, 55, 9, 46, 10, 28, 11, 20, 12, 5, 13, 1, 14, 2]
82$\\alpha^{214}$44[0, 1, 4, 4, 5, 22, 6, 36, 7, 44, 8, 45, 9, 40, 10, 36, 11, 20, 12, 6, 13, 2]
81$\\alpha^{213}$44[0, 1, 4, 4, 5, 21, 6, 36, 7, 44, 8, 45, 9, 46, 10, 36, 11, 12, 12, 6, 13, 5]
44$\\alpha^{125}$44[0, 1, 4, 4, 5, 23, 6, 31, 7, 42, 8, 59, 9, 40, 10, 24, 11, 22, 12, 8, 13, 1, 14, 1]
12$\\alpha^{42}$44[0, 1, 4, 4, 5, 21, 6, 36, 7, 44, 8, 45, 9, 46, 10, 36, 11, 12, 12, 6, 13, 5]
11$\\alpha^{41}$44[0, 1, 4, 4, 5, 22, 6, 36, 7, 44, 8, 45, 9, 40, 10, 36, 11, 20, 12, 6, 13, 2]
49$\\alpha^{130}$44[0, 1, 4, 4, 5, 23, 6, 31, 7, 42, 8, 59, 9, 40, 10, 24, 11, 22, 12, 8, 13, 1, 14, 1]
25$\\alpha^{77}$45[0, 1, 4, 5, 5, 24, 6, 30, 7, 38, 8, 57, 9, 46, 10, 26, 11, 18, 12, 9, 13, 2]
92$\\alpha^{246}$45[0, 1, 4, 5, 5, 23, 6, 29, 7, 40, 8, 59, 9, 46, 10, 26, 11, 16, 12, 7, 13, 3, 14, 1]
1$\\alpha^{9}$45[0, 1, 4, 5, 5, 23, 6, 29, 7, 40, 8, 59, 9, 46, 10, 26, 11, 16, 12, 7, 13, 3, 14, 1]
10$\\alpha^{40}$45[0, 1, 4, 5, 5, 22, 6, 34, 7, 43, 8, 45, 9, 42, 10, 38, 11, 20, 12, 5, 15, 1]
83$\\alpha^{215}$45[0, 1, 4, 5, 5, 22, 6, 34, 7, 43, 8, 45, 9, 42, 10, 38, 11, 20, 12, 5, 15, 1]
68$\\alpha^{178}$45[0, 1, 4, 5, 5, 24, 6, 30, 7, 38, 8, 57, 9, 46, 10, 26, 11, 18, 12, 9, 13, 2]
67$\\alpha^{177}$45[0, 1, 4, 5, 5, 23, 6, 29, 7, 40, 8, 59, 9, 46, 10, 26, 11, 16, 12, 7, 13, 3, 14, 1]
26$\\alpha^{78}$45[0, 1, 4, 5, 5, 23, 6, 29, 7, 40, 8, 59, 9, 46, 10, 26, 11, 16, 12, 7, 13, 3, 14, 1]
2$\\alpha^{10}$46[0, 1, 4, 6, 5, 22, 6, 27, 7, 42, 8, 59, 9, 46, 10, 28, 11, 14, 12, 6, 13, 4, 14, 1]
4$\\alpha^{12}$46[0, 1, 4, 6, 5, 21, 6, 30, 7, 46, 8, 51, 9, 40, 10, 34, 11, 18, 12, 6, 13, 3]
53$\\alpha^{163}$46[0, 1, 4, 6, 5, 17, 6, 35, 7, 50, 8, 43, 9, 44, 10, 36, 11, 14, 12, 6, 13, 3, 14, 1]
54$\\alpha^{164}$46[0, 1, 4, 6, 5, 18, 6, 36, 7, 48, 8, 41, 9, 44, 10, 36, 11, 16, 12, 8, 13, 2]
55$\\alpha^{165}$46[0, 1, 4, 6, 5, 15, 6, 36, 7, 56, 8, 41, 9, 38, 10, 36, 11, 16, 12, 8, 13, 3]
63$\\alpha^{173}$46[0, 1, 4, 6, 5, 21, 6, 29, 7, 44, 8, 53, 9, 46, 10, 34, 11, 12, 12, 4, 13, 5, 14, 1]
64$\\alpha^{174}$46[0, 1, 4, 6, 5, 21, 6, 30, 7, 46, 8, 51, 9, 40, 10, 34, 11, 18, 12, 6, 13, 3]
9$\\alpha^{17}$46[0, 1, 4, 6, 5, 19, 6, 32, 7, 46, 8, 51, 9, 44, 10, 30, 11, 18, 12, 6, 13, 1, 14, 2]
3$\\alpha^{11}$46[0, 1, 4, 6, 5, 22, 6, 30, 7, 42, 8, 51, 9, 46, 10, 34, 11, 14, 12, 6, 13, 4]
66$\\alpha^{176}$46[0, 1, 4, 6, 5, 22, 6, 30, 7, 42, 8, 51, 9, 46, 10, 34, 11, 14, 12, 6, 13, 4]
69$\\alpha^{179}$46[0, 1, 4, 6, 5, 22, 6, 28, 7, 44, 8, 57, 9, 40, 10, 28, 11, 20, 12, 8, 13, 2]
73$\\alpha^{183}$46[0, 1, 4, 6, 5, 18, 6, 32, 7, 50, 8, 51, 9, 38, 10, 30, 11, 22, 12, 6, 14, 2]
84$\\alpha^{238}$46[0, 1, 4, 6, 5, 19, 6, 32, 7, 46, 8, 51, 9, 44, 10, 30, 11, 18, 12, 6, 13, 1, 14, 2]
85$\\alpha^{239}$46[0, 1, 4, 6, 5, 21, 6, 30, 7, 46, 8, 51, 9, 40, 10, 34, 11, 18, 12, 6, 13, 3]
88$\\alpha^{242}$46[0, 1, 4, 6, 5, 22, 6, 30, 7, 43, 8, 51, 9, 42, 10, 34, 11, 20, 12, 6, 15, 1]
89$\\alpha^{243}$46[0, 1, 4, 6, 5, 21, 6, 30, 7, 46, 8, 51, 9, 40, 10, 34, 11, 18, 12, 6, 13, 3]
90$\\alpha^{244}$46[0, 1, 4, 6, 5, 22, 6, 30, 7, 42, 8, 51, 9, 46, 10, 34, 11, 14, 12, 6, 13, 4]
91$\\alpha^{245}$46[0, 1, 4, 6, 5, 22, 6, 27, 7, 42, 8, 59, 9, 46, 10, 28, 11, 14, 12, 6, 13, 4, 14, 1]
65$\\alpha^{175}$46[0, 1, 4, 6, 5, 21, 6, 30, 7, 46, 8, 51, 9, 40, 10, 34, 11, 18, 12, 6, 13, 3]
8$\\alpha^{16}$46[0, 1, 4, 6, 5, 21, 6, 30, 7, 46, 8, 51, 9, 40, 10, 34, 11, 18, 12, 6, 13, 3]
5$\\alpha^{13}$46[0, 1, 4, 6, 5, 22, 6, 30, 7, 43, 8, 51, 9, 42, 10, 34, 11, 20, 12, 6, 15, 1]
29$\\alpha^{81}$46[0, 1, 4, 6, 5, 21, 6, 30, 7, 46, 8, 51, 9, 40, 10, 34, 11, 18, 12, 6, 13, 3]
30$\\alpha^{82}$46[0, 1, 4, 6, 5, 21, 6, 29, 7, 44, 8, 53, 9, 46, 10, 34, 11, 12, 12, 4, 13, 5, 14, 1]
27$\\alpha^{79}$46[0, 1, 4, 6, 5, 22, 6, 30, 7, 42, 8, 51, 9, 46, 10, 34, 11, 14, 12, 6, 13, 4]
39$\\alpha^{91}$46[0, 1, 4, 6, 5, 18, 6, 36, 7, 48, 8, 41, 9, 44, 10, 36, 11, 16, 12, 8, 13, 2]
38$\\alpha^{90}$46[0, 1, 4, 6, 5, 15, 6, 36, 7, 56, 8, 41, 9, 38, 10, 36, 11, 16, 12, 8, 13, 3]
24$\\alpha^{76}$46[0, 1, 4, 6, 5, 22, 6, 28, 7, 44, 8, 57, 9, 40, 10, 28, 11, 20, 12, 8, 13, 2]
40$\\alpha^{92}$46[0, 1, 4, 6, 5, 17, 6, 35, 7, 50, 8, 43, 9, 44, 10, 36, 11, 14, 12, 6, 13, 3, 14, 1]
20$\\alpha^{72}$46[0, 1, 4, 6, 5, 18, 6, 32, 7, 50, 8, 51, 9, 38, 10, 30, 11, 22, 12, 6, 14, 2]
28$\\alpha^{80}$46[0, 1, 4, 6, 5, 21, 6, 30, 7, 46, 8, 51, 9, 40, 10, 34, 11, 18, 12, 6, 13, 3]
21$\\alpha^{73}$47[0, 1, 4, 7, 5, 19, 6, 30, 7, 46, 8, 53, 9, 44, 10, 26, 11, 18, 12, 11, 13, 1]
41$\\alpha^{104}$47[0, 1, 4, 7, 5, 12, 6, 46, 7, 38, 8, 45, 9, 54, 10, 26, 11, 18, 12, 3, 13, 6]
7$\\alpha^{15}$47[0, 1, 4, 7, 5, 20, 6, 28, 7, 48, 8, 51, 9, 40, 10, 36, 11, 16, 12, 5, 13, 4]
6$\\alpha^{14}$47[0, 1, 4, 7, 5, 22, 6, 28, 7, 44, 8, 51, 9, 40, 10, 36, 11, 20, 12, 5, 13, 2]
86$\\alpha^{240}$47[0, 1, 4, 7, 5, 20, 6, 28, 7, 48, 8, 51, 9, 40, 10, 36, 11, 16, 12, 5, 13, 4]
87$\\alpha^{241}$47[0, 1, 4, 7, 5, 22, 6, 28, 7, 44, 8, 51, 9, 40, 10, 36, 11, 20, 12, 5, 13, 2]
70$\\alpha^{180}$47[0, 1, 4, 7, 5, 20, 6, 29, 7, 44, 8, 55, 9, 44, 10, 26, 11, 20, 12, 9, 14, 1]
72$\\alpha^{182}$47[0, 1, 4, 7, 5, 19, 6, 30, 7, 46, 8, 53, 9, 44, 10, 26, 11, 18, 12, 11, 13, 1]
23$\\alpha^{75}$47[0, 1, 4, 7, 5, 20, 6, 29, 7, 44, 8, 55, 9, 44, 10, 26, 11, 20, 12, 9, 14, 1]
52$\\alpha^{151}$47[0, 1, 4, 7, 5, 12, 6, 46, 7, 38, 8, 45, 9, 54, 10, 26, 11, 18, 12, 3, 13, 6]
37$\\alpha^{89}$47[0, 1, 4, 7, 5, 16, 6, 34, 7, 54, 8, 41, 9, 38, 10, 38, 11, 18, 12, 7, 13, 2]
36$\\alpha^{88}$47[0, 1, 4, 7, 5, 18, 6, 28, 7, 53, 8, 51, 9, 36, 10, 36, 11, 18, 12, 5, 13, 2, 15, 1]
57$\\alpha^{167}$47[0, 1, 4, 7, 5, 18, 6, 28, 7, 53, 8, 51, 9, 36, 10, 36, 11, 18, 12, 5, 13, 2, 15, 1]
56$\\alpha^{166}$47[0, 1, 4, 7, 5, 16, 6, 34, 7, 54, 8, 41, 9, 38, 10, 38, 11, 18, 12, 7, 13, 2]
62$\\alpha^{172}$48[0, 1, 4, 8, 5, 21, 6, 24, 7, 44, 8, 57, 9, 46, 10, 32, 11, 12, 12, 6, 13, 5]
31$\\alpha^{83}$48[0, 1, 4, 8, 5, 21, 6, 24, 7, 44, 8, 57, 9, 46, 10, 32, 11, 12, 12, 6, 13, 5]
58$\\alpha^{168}$48[0, 1, 4, 8, 5, 19, 6, 24, 7, 49, 8, 57, 9, 42, 10, 32, 11, 14, 12, 6, 13, 3, 15, 1]
35$\\alpha^{87}$48[0, 1, 4, 8, 5, 19, 6, 24, 7, 49, 8, 57, 9, 42, 10, 32, 11, 14, 12, 6, 13, 3, 15, 1]
22$\\alpha^{74}$48[0, 1, 4, 8, 5, 19, 6, 27, 7, 46, 8, 55, 9, 44, 10, 28, 11, 18, 12, 8, 13, 1, 14, 1]
71$\\alpha^{181}$48[0, 1, 4, 8, 5, 19, 6, 27, 7, 46, 8, 55, 9, 44, 10, 28, 11, 18, 12, 8, 13, 1, 14, 1]
34$\\alpha^{86}$49[0, 1, 4, 9, 5, 20, 6, 20, 7, 48, 8, 63, 9, 40, 10, 28, 11, 16, 12, 7, 13, 4]
59$\\alpha^{169}$49[0, 1, 4, 9, 5, 20, 6, 20, 7, 48, 8, 63, 9, 40, 10, 28, 11, 16, 12, 7, 13, 4]
32$\\alpha^{84}$49[0, 1, 4, 9, 5, 20, 6, 20, 7, 48, 8, 63, 9, 40, 10, 28, 11, 16, 12, 7, 13, 4]
61$\\alpha^{171}$49[0, 1, 4, 9, 5, 20, 6, 20, 7, 48, 8, 63, 9, 40, 10, 28, 11, 16, 12, 7, 13, 4]
60$\\alpha^{170}$410[0, 1, 4, 10, 5, 18, 6, 18, 7, 51, 8, 63, 9, 42, 10, 30, 11, 12, 12, 6, 13, 4, 15, 1]
33$\\alpha^{85}$410[0, 1, 4, 10, 5, 18, 6, 18, 7, 51, 8, 63, 9, 42, 10, 30, 11, 12, 12, 6, 13, 4, 15, 1]
13$\\alpha^{56}$410[0, 1, 4, 10, 5, 12, 6, 25, 7, 60, 8, 57, 9, 36, 10, 22, 11, 20, 12, 12, 14, 1]
80$\\alpha^{199}$410[0, 1, 4, 10, 5, 12, 6, 25, 7, 60, 8, 57, 9, 36, 10, 22, 11, 20, 12, 12, 14, 1]
42$\\alpha^{113}$411[0, 1, 4, 11, 5, 14, 6, 24, 7, 54, 8, 53, 9, 42, 10, 30, 11, 18, 12, 7, 14, 2]
43$\\alpha^{114}$411[0, 1, 4, 11, 5, 14, 6, 25, 7, 52, 8, 51, 9, 48, 10, 30, 11, 12, 12, 9, 13, 2, 14, 1]
50$\\alpha^{141}$411[0, 1, 4, 11, 5, 14, 6, 25, 7, 52, 8, 51, 9, 48, 10, 30, 11, 12, 12, 9, 13, 2, 14, 1]
51$\\alpha^{142}$411[0, 1, 4, 11, 5, 14, 6, 24, 7, 54, 8, 53, 9, 42, 10, 30, 11, 18, 12, 7, 14, 2]
78$\\alpha^{197}$413[0, 1, 4, 13, 5, 10, 6, 24, 7, 58, 8, 49, 9, 46, 10, 30, 11, 14, 12, 9, 14, 2]
19$\\alpha^{62}$413[0, 1, 4, 13, 5, 11, 6, 36, 7, 36, 8, 47, 9, 58, 10, 28, 11, 20, 12, 3, 13, 3]
15$\\alpha^{58}$413[0, 1, 4, 13, 5, 10, 6, 24, 7, 58, 8, 49, 9, 46, 10, 30, 11, 14, 12, 9, 14, 2]
14$\\alpha^{57}$413[0, 1, 4, 13, 5, 7, 6, 28, 7, 53, 8, 63, 9, 38, 10, 20, 11, 26, 12, 3, 13, 3, 15, 1]
74$\\alpha^{193}$413[0, 1, 4, 13, 5, 11, 6, 36, 7, 36, 8, 47, 9, 58, 10, 28, 11, 20, 12, 3, 13, 3]
79$\\alpha^{198}$413[0, 1, 4, 13, 5, 7, 6, 28, 7, 53, 8, 63, 9, 38, 10, 20, 11, 26, 12, 3, 13, 3, 15, 1]
18$\\alpha^{61}$414[0, 1, 4, 14, 5, 9, 6, 38, 7, 34, 8, 43, 9, 68, 10, 26, 11, 14, 12, 6, 13, 3]
75$\\alpha^{194}$414[0, 1, 4, 14, 5, 9, 6, 38, 7, 34, 8, 43, 9, 68, 10, 26, 11, 14, 12, 6, 13, 3]
17$\\alpha^{60}$415[0, 1, 4, 15, 5, 8, 6, 35, 7, 38, 8, 45, 9, 62, 10, 28, 11, 18, 12, 3, 13, 2, 14, 1]
77$\\alpha^{196}$415[0, 1, 4, 15, 5, 8, 6, 30, 7, 43, 8, 53, 9, 54, 10, 26, 11, 20, 12, 3, 13, 2, 15, 1]
16$\\alpha^{59}$415[0, 1, 4, 15, 5, 8, 6, 30, 7, 43, 8, 53, 9, 54, 10, 26, 11, 20, 12, 3, 13, 2, 15, 1]
76$\\alpha^{195}$415[0, 1, 4, 15, 5, 8, 6, 35, 7, 38, 8, 45, 9, 62, 10, 28, 11, 18, 12, 3, 13, 2, 14, 1]
" ], "text/plain": [ "" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_4 = pd.DataFrame({'$L_2$': np.array(alpha_all)[d_index], '$d_{\\mathcal{D}}^\\perp$': d_all[d_index], \n", " '$B_{d_{\\mathcal{D}}^\\perp}$': B_all[d_index], 'Weight Enumerators': wd[d_index]})\n", "df_4 = df_4.sort_values(by=['$B_{d_{\\mathcal{D}}^\\perp}$'], ascending=True)\n", "\n", "(df_4.style\n", " .apply(highlight, threshold=3, column=['$B_{d_{\\mathcal{D}}^\\perp}$'], axis=1)\n", " .background_gradient(cmap=cm_2, subset=['$B_{d_{\\mathcal{D}}^\\perp}$' ])\n", " .set_caption('Tab. II Linear codes for IPM with $d_{\\mathcal{D}}^\\perp=4$.')\n", " .set_table_styles(styles))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 2.2 Optimal codes for IPM\n", "\n", "As shown in our paper, the codes satifying two conditions are optimal:\n", "\n", "- Maximizing $d_{\\mathcal{D}}^\\perp$, here $\\max\\{d_{\\mathcal{D}}^\\perp\\} = 4$\n", "- Minimizing $B_{d_{\\mathcal{D}}^\\perp}$, here $\\min\\{B_{d_{\\mathcal{D}}^\\perp}\\} = 3$\n", "\n", "Note that we use two leakage detection metrics **SNR** (signal-to-noise ratio) and **MI** (mutual information), and one leakage exploitation metric **SR** (success rate) to assess the side-channel resistance of IPM with different codes." ] }, { "cell_type": "markdown", "metadata": { "scrolled": false }, "source": [ "As a result of Tab. II, we conclude that the optimal codes for IPM are genetated by $\\mathbf{H}=[L_2, 1]$ where $L_2\\in\\{\\alpha^8, \\alpha^{126}, \\alpha^{127}, \\alpha^{128}, \\alpha^{129}, \\alpha^{247}\\}$.\n", "\n", "The six optimal codes are categoried into three classes by equivalence, namely there are three nonequivalent optimal codes. \n", "\n", "Specifically:\n", "- If $L_2\\in\\{\\alpha^8, \\alpha^{247}\\}$, the two codes are equivalent and the generator matrix of the former one is:\n", "$$\n", "\\mathbf{H}_{optimal}=[\\alpha^8, 1] \\in \\mathbb{F}_{2^8}^2\n", "= \\left(\n", " \\begin{matrix}\n", " 1& 0& 1& 1& 1& 0& 0& 0& 1& 0& 0& 0& 0& 0& 0& 0 \\\\\n", " 0& 1& 0& 1& 1& 1& 0& 0& 0& 1& 0& 0& 0& 0& 0& 0 \\\\\n", " 0& 0& 1& 0& 1& 1& 1& 0& 0& 0& 1& 0& 0& 0& 0& 0 \\\\\n", " 0& 0& 0& 1& 0& 1& 1& 1& 0& 0& 0& 1& 0& 0& 0& 0 \\\\\n", " 1& 0& 1& 1& 0& 0& 1& 1& 0& 0& 0& 0& 1& 0& 0& 0 \\\\\n", " 1& 1& 1& 0& 0& 0& 0& 1& 0& 0& 0& 0& 0& 1& 0& 0 \\\\\n", " 1& 1& 0& 0& 1& 0& 0& 0& 0& 0& 0& 0& 0& 0& 1& 0 \\\\\n", " 0& 1& 1& 0& 0& 1& 0& 0& 0& 0& 0& 0& 0& 0& 0& 1 \n", " \\end{matrix} \n", "\\right) \\in \\mathbb{F}_2^{8\\times 16}\n", "$$ \n", "\n", "- If $L_2\\in\\{\\alpha^{126}, \\alpha^{129}\\}$, the two codes are equivalent and the generator matrix of the former one is:\n", "$$\n", "\\mathbf{H}_{optimal}=[\\alpha^{126}, 1] \\in \\mathbb{F}_{2^8}^2\n", "= \\left(\n", " \\begin{matrix}\n", " 0& 1& 1& 0& 0& 1& 1& 0& 1& 0& 0& 0& 0& 0& 0& 0 \\\\\n", " 0& 0& 1& 1& 0& 0& 1& 1& 0& 1& 0& 0& 0& 0& 0& 0 \\\\\n", " 1& 0& 1& 0& 0& 0& 0& 1& 0& 0& 1& 0& 0& 0& 0& 0 \\\\\n", " 1& 1& 1& 0& 1& 0& 0& 0& 0& 0& 0& 1& 0& 0& 0& 0 \\\\\n", " 0& 1& 1& 1& 0& 1& 0& 0& 0& 0& 0& 0& 1& 0& 0& 0 \\\\\n", " 0& 0& 1& 1& 1& 0& 1& 0& 0& 0& 0& 0& 0& 1& 0& 0 \\\\\n", " 0& 0& 0& 1& 1& 1& 0& 1& 0& 0& 0& 0& 0& 0& 1& 0 \\\\\n", " 1& 0& 1& 1& 0& 1& 1& 0& 0& 0& 0& 0& 0& 0& 0& 1 \n", " \\end{matrix} \n", "\\right) \\in \\mathbb{F}_2^{8\\times 16}\n", "$$ \n", "\n", "- If $L_2\\in\\{\\alpha^{127}, \\alpha^{128}\\}$, the two codes are equivalent and the generator matrix of the former one is:\n", "$$\n", "\\mathbf{H}_{optimal}=[\\alpha^{127}, 1] \\in \\mathbb{F}_{2^8}^2\n", "= \\left(\n", " \\begin{matrix}\n", " 0& 0& 1& 1& 0& 0& 1& 1& 1& 0& 0& 0& 0& 0& 0& 0 \\\\\n", " 1& 0& 1& 0& 0& 0& 0& 1& 0& 1& 0& 0& 0& 0& 0& 0 \\\\\n", " 1& 1& 1& 0& 1& 0& 0& 0& 0& 0& 1& 0& 0& 0& 0& 0 \\\\\n", " 0& 1& 1& 1& 0& 1& 0& 0& 0& 0& 0& 1& 0& 0& 0& 0 \\\\\n", " 0& 0& 1& 1& 1& 0& 1& 0& 0& 0& 0& 0& 1& 0& 0& 0 \\\\\n", " 0& 0& 0& 1& 1& 1& 0& 1& 0& 0& 0& 0& 0& 1& 0& 0 \\\\\n", " 1& 0& 1& 1& 0& 1& 1& 0& 0& 0& 0& 0& 0& 0& 1& 0 \\\\\n", " 0& 1& 0& 1& 1& 0& 1& 1& 0& 0& 0& 0& 0& 0& 0& 1 \\\\\n", " \\end{matrix} \n", "\\right) \\in \\mathbb{F}_2^{8\\times 16}\n", "$$ " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 2.3 BKLC code with parameter $[16, 8, 5]$\n", "\n", "BKLC is the short of Best Known Linear Code. \n", "\n", "**Note that the code $[16, 8, 5]$ is unique.**\n", "\n", "*The BKLC is defined as An [n, k] linear code $\\mathcal{C}$ is said to be a best known linear [n, k] code (BKLC) if $\\mathcal{C}$ has the highest minimum weight among all known [n, k] linear codes.[See definition from Magma.](http://www.enseignement.polytechnique.fr/profs/informatique/Eric.Schost/X2002/Maj1/htmlhelp/text1263.htm)*" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "ExecuteTime": { "end_time": "2020-02-03T13:20:41.823863Z", "start_time": "2020-02-03T13:20:41.801669Z" } }, "outputs": [ { "data": { "text/html": [ "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Tab. III One BKLC code for IPM with $d_{\\mathcal{D}}^\\perp=5$.
$L_2$ $d_{\\mathcal{D}}^\\perp$ $B_{d_{\\mathcal{D}}^\\perp}$ Weight Enumerators
0 --524[0, 1, 5, 24, 6, 44, 7, 40, 8, 45, 9, 40, 10, 28, 11, 24, 12, 10]
" ], "text/plain": [ "" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "bklc_index = [255]\n", "cm_3 = sns.light_palette(\"red\", as_cmap=True, reverse=True)\n", "df_bklc = pd.DataFrame({'$L_2$': [' --'], '$d_{\\mathcal{D}}^\\perp$': d_all[-1], '$B_{d_{\\mathcal{D}}^\\perp}$': B_all[-1], \n", " 'Weight Enumerators': wd[bklc_index]})\n", "\n", "(df_bklc.style\n", " .background_gradient(cmap=cm_3, subset=['$d_{\\mathcal{D}}^\\perp$', '$B_{d_{\\mathcal{D}}^\\perp}$'])\n", " .set_caption('Tab. III One BKLC code for IPM with $d_{\\mathcal{D}}^\\perp=5$.')\n", " .set_table_styles(styles))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can see that this BKLC code is better than all linear codes in IPM. It is interesting to notice that the BKLC code $[16, 8, 5]$ cannot be used in IPM, since it cannot be generated by $\\mathbf{H}^\\perp=[1, L_2]$ with any $L_2\\in\\mathbb{F}_{2^8}$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The generator matrix of the dual code of this BKLC code is: \n", "$$\n", "\\mathbf{H}_{BKLC}^\\perp= \\left(\n", " \\begin{matrix}\n", " 1& 1& 0& 1& 0& 0& 1& 0& 1& 0& 0& 0& 0& 0& 0& 0 \\\\\n", " 1& 0& 1& 1& 1& 0& 1& 1& 0& 1& 0& 0& 0& 0& 0& 0 \\\\\n", " 1& 0& 0& 0& 1& 1& 1& 1& 0& 0& 1& 0& 0& 0& 0& 0 \\\\\n", " 0& 1& 0& 0& 0& 1& 1& 1& 0& 0& 0& 1& 0& 0& 0& 0 \\\\\n", " 1& 1& 1& 1& 0& 0& 0& 1& 0& 0& 0& 0& 1& 0& 0& 0 \\\\\n", " 0& 1& 1& 1& 1& 0& 0& 0& 0& 0& 0& 0& 0& 1& 0& 0 \\\\\n", " 1& 1& 1& 0& 1& 1& 1& 0& 0& 0& 0& 0& 0& 0& 1& 0 \\\\\n", " 1& 0& 1& 0& 0& 1& 0& 1& 0& 0& 0& 0& 0& 0& 0& 1 \n", " \\end{matrix} \n", "\\right) \\normalsize\\in \\mathbb{F}_2^{8\\times 12}\n", "$$ " ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.3" }, "toc": { "base_numbering": 1, "nav_menu": {}, "number_sections": false, "sideBar": true, "skip_h1_title": false, "title_cell": "Table of Contents", "title_sidebar": "Contents", "toc_cell": false, "toc_position": {}, "toc_section_display": true, "toc_window_display": false } }, "nbformat": 4, "nbformat_minor": 2 }