Boolean-Cayley-graphs / papers-talks / 5ICC-2017-Monash / Leopardi-database-of-SRG-5ICC-2017-talk.tex
22144 views\documentclass[pdf,sprung,slideColor,nocolorBG]{beamer}1%2%\documentclass[hyperref={pdfpagelabels=false}]{beamer}3\mode<presentation>45\newenvironment{colortheme}[1]{6\def\ProvidesPackageRCS $##1${\relax}7\renewcommand{\ProcessOptions}{\relax}8\makeatletter9\input beamercolortheme#1.sty10\makeatother11}{}1213\let\Tiny=\tiny14\usetheme{Adelaide}15\usefonttheme[stillsansseriftext]{serif}16\setbeamerfont{structure}{series=\bfseries}17\setbeamertemplate{frametitle}[default][center]18\usepackage[figurename={}]{caption}19\usepackage[latin1]{inputenc}20%\usepackage{amsmath} %needed for \begin{align}... \end{align} environment21\usepackage{amsfonts}22\usepackage{amssymb}23%\usepackage{amscd}24%\usepackage[all]{xy}25\usepackage{xcolor}26\usepackage{enumerate}27%28\newcommand{\slidecite}[1]{\tiny{(#1)}\normalsize{}}29\newcommand{\smallcite}[1]{\small{(#1)}\normalsize{}}3031\newcommand{\mb}[1]{\mathbb{#1}}32\newcommand{\mf}[1]{\mathbf{#1}}33\newcommand{\Emph}[1]{\emph{\textcolor{blue}{#1}}}34\newcommand{\Red}[1]{\mathbf{\textcolor{red}{#1}}}3536\newcommand{\abs}[1]{\left| #1 \right|}37\newcommand{\norm}[1]{\left\| #1 \right\|}38\newcommand{\To}{\rightarrow}3940\newcommand{\Cay}[1]{\operatorname{Cay}\left(#1\right)}41\newcommand{\Clique}[1]{\omega\left(#1\right)}42\newcommand{\dual}[1]{\widetilde{#1}}43\newcommand{\support}[1]{\operatorname{supp}\left(#1\right)}44\newcommand{\weight}[1]{\operatorname{wt}\left(#1\right)}45\newcommand{\weightclass}[1]{\operatorname{wc}\left(#1\right)}4647\newcommand{\F}{\mb{F}}48\newcommand{\G}{\mb{G}}49\newcommand{\R}{\mb{R}}50\newcommand{\Z}{\mb{Z}}51\newtheorem{Def}{Definition}52\newtheorem{Conjecture}{Conjecture}53\newtheorem{Question}{Question}54\newtheorem{Proposition}{Proposition}5556\title{Yet another database of strongly regular graphs}57\author{Paul Leopardi}5859\date{For 5th International Combinatorics Conference (5ICC)60\\61Monash University62\\63December 2017}6465\institute{University of Melbourne66\\67Australian Government - Bureau of Meteorology}68\titlegraphic{69%\includegraphics[angle=0,width=10mm]{../../common/beamer-anu-colourlogo.png}70%\includegraphics[angle=0,width=20mm]{../../common/carma_logo.jpg}71}72\begin{document}7374\frame{\titlepage}75\begin{frame}76\frametitle{Acknowledgements}77\begin{center}78Robin Bowen,79An Braeken,80Nathan Clisby,81Robert Craigen,82Joanne Hall,83David Joyner,84Philippe Langevin,85Matthew Leingang,86William Martin,87Padraig {\'O} Cath{\'a}in,88Judy-anne Osborn,89Dima Pasechnik,90William Stein,91Natalia Tokareva, and92Sanming Zhou.9394~9596Australian National University. University of Newcastle, Australia. University of Melbourne.9798Australian Government - Bureau of Meteorology.99100~101102National Computational Infrastructure.103104~105106SageMath, CoCalc, Bliss, Nauty, MPI4py, SQLite3, DB Browser for SQLite, PostgreSQL, Psycopg2.107\end{center}108\end{frame}109110\begin{frame}111\frametitle{Serious Question}112\begin{center}113\vspace{+10mm}114\large{}115What would \Emph{you} do with a ``large'' database of strongly regular graphs?116\normalsize{}117\end{center}118\end{frame}119120\begin{frame}121\frametitle{Overview}122%\begin{center}123\begin{itemize}124\item125Preliminaries: bent functions and their Cayley graphs.126127~128129\item130Some results in 8 dimensions.131132~133134\item135Precedents: other databases.136137~138139\item140Preliminary database and interface designs.141142~143144\item145Prototype databases.146147~148149\item150Prospects.151152~153154\item155Source code and documentation.156\end{itemize}157158%\end{center}159\end{frame}160161\section{Preliminaries}162163\begin{colortheme}{jubata}164165\begin{frame}166\frametitle{Motivation}167168In a construction for Hada\-mard matrices, I encountered169two sequences of \Emph{bent} Boolean functions,170\begin{align*}171\sigma_m &: \F_2^{2m} \To \F_2, \quad \tau_m : \F_2^{2m} \To \F_2,172\end{align*}173whose Cayley graphs are \Emph{strongly regular} with parameters174\begin{align*}175(v,k,\lambda,\mu) &= (4^m, 2^{2 m - 1} - 2^{m-1}, 2^{2 m - 2} - 2^{m-1}, 2^{2 m - 2} - 2^{m-1}),176\end{align*}177but the graphs for $\sigma_m$ and $\tau_m$ are isomorphic only when178179$m=1,2$ or $3.$180181~182183Question: \Emph{Which strongly regular graphs arise as Cayley graphs of bent Boolean functions?}184185\slidecite{L 2014, 2015, 2017}186\end{frame}187\end{colortheme}188189\begin{colortheme}{seagull}190191\begin{frame}192\frametitle{Bent functions}193% Bent functions can be defined in a number of equivalent ways.194% The definition used here involves the Walsh Hadamard Transform.195\begin{Def}196\label{def-Walsh-Hadamard-transform}197The Walsh Hadamard transform of198a Boolean function $f : \F_2^{2m} \To \F_2$ is199\begin{align*}200W_f(x)201&:=202\sum_{y \in \F_2^{2m}} (-1)^{f(y) + \langle x, y \rangle}203\end{align*}204\end{Def}205206\begin{Def}207\label{def-Bent-function}208A Boolean function $f : \F_2^{2m} \To \F_2$ is \Emph{bent}209if and only if its Walsh Hada\-mard transform has constant absolute value $2^{m}$.210% \cite[p. 74]{Dil74}211% \cite[p. 300]{Rot76}.212\end{Def}213\slidecite{Dillon 1974; Rothaus 1976}214\end{frame}215\begin{frame}216\frametitle{Dual bent functions}217218\begin{Def}219\label{def-dual-Bent-function}220For a bent function $f : \F_2^{2m} \To \F_2$, the function $\dual{f}$, defined by221\begin{align*}222(-1)^{\dual{f}(x)} &:= 2^{-m} W_f(x)223\end{align*}224is called the \Emph{dual} of $f$.225\end{Def}226227~228229The function $\dual{f}$ is also a bent function on $\F_2^{2m}$.230231~232233~234235\slidecite{Dillon 1974; Rothaus 1976}236\end{frame}237238\begin{frame}239\frametitle{Example}240241The function $f : \F_2^2 \To \F_2$ defined by $f(x) := x_0 x_1$242is bent, since243\begin{align*}244W_f(x)245=&246\sum_{y \in \F_2^2} (-1)^{f(y) + \langle x, y \rangle}247\\248=&\ (-1)^{f(0,0) + \langle x, (0,0) \rangle}249+ (-1)^{f(1,0) + \langle x, (1,0) \rangle} +250\\251\phantom{=}&\ (-1)^{f(0,1) + \langle x, (0,1) \rangle}252+ (-1)^{f(1,1) + \langle x, (1,1) \rangle}253\\254=&\ (-1)^{0 + 0} + (-1)^{0 + x_0} + (-1)^{0 + x_1} + (-1)^{1 + x_0 + x_1}255\\256=&\ 1 + (-1)^{x_0} + (-1)^{x_1} - (-1)^{x_0 + x_1}257\\258=&\ 2 \times (-1)^{f(x)},259\end{align*}260so $\dual{f} = f$, and $f$ is \Emph{self-dual}.261%262\end{frame}263264\begin{frame}265\frametitle{Bent functions and affine functions}266Bent functions are at maximum Hamming distance from affine functions.267For $f : \F_2^2 \To \F_2,$ this distance is 1 \slidecite{Meier and Staffelbach 1989}.268\scriptsize{}269\begin{align*}270\begin{array}{|cccc|}271\hline272(0,0)& (1,0)& (0,1)& (1,1)273\\274\hline2750 & 0 & 0 & 0276\\277\Red{0}& \Red{0} & \Red{0} & \Red{1}278\\279\Red{0}& \Red{0} & \Red{1} & \Red{0}280\\2810 & 0 & 1 & 1282\\283\Red{0}& \Red{1} & \Red{0} & \Red{0}284\\2850 & 1 & 0 & 1286\\2870 & 1 & 1 & 0288\\289\Red{0}& \Red{1} & \Red{1} & \Red{1}290\\291\Red{1}& \Red{0} & \Red{0} & \Red{0}292\\2931 & 0 & 0 & 1294\\2951 & 0 & 1 & 0296\\297\Red{1}& \Red{0} & \Red{1} & \Red{1}298\\2991 & 1 & 0 & 0300\\301\Red{1}& \Red{1} & \Red{0} & \Red{1}302\\303\Red{1}& \Red{1} & \Red{1} & \Red{0}304\\3051 & 1 & 1 & 1306\\307\hline308\end{array}309\end{align*}310\normalsize{}311\end{frame}312313\end{colortheme}314315\begin{colortheme}{jubata}316317\begin{frame}318\frametitle{Weights and weight classes}319\begin{Def}320The \Emph{weight} of a binary function is the cardinality of its \Emph{support}.321For $f$ on $\F_2^{2m}$322\begin{align*}323\support{f} &:= \{x \in \F_2^{2m} \mid f(x)=1 \}.324\end{align*}325326A bent function $f$ on $\F_2^{2m}$ has weight327\begin{align*}328\weight{f} &= 2^{2 m - 1} - 2^{m-1} \quad (\text{weight class~} \weightclass{f}=0), \text{~or}329\\330\weight{f} &= 2^{2 m - 1} + 2^{m-1} \quad (\text{weight class~} \weightclass{f}=1).331\end{align*}332% If $f(0)=0$ then $\weightclass{\Cay{f}} := \weightclass{f}$.333\end{Def}334\end{frame}335336\end{colortheme}337338%\section{Cayley graphs and linear codes}339340\begin{colortheme}{seagull}341342\begin{frame}343\frametitle{The Cayley graph of a Boolean function}344%\begin{center}345The \Emph{Cayley graph} $\Cay{f}$ of a Boolean function346347~348349\begin{align*}350%351f : \F_2^n \To \F_2 \quad \text{where} \quad f(0) = 0352%353\end{align*}354355~356357is358an undirected graph with359360\begin{align*}361V(\Cay{f}) &:= \F_2^n, \quad (x,y) \in E(\Cay{f}) \Leftrightarrow f(x+y) = 1.362\end{align*}363364~365366\slidecite{Bernasconi and Codenotti 1999}367\end{frame}368369\begin{frame}370\frametitle{Strongly regular graphs}371%\begin{center}372A simple graph $\Gamma$ of order $v$ is \Emph{strongly regular} with parameters373$(v,k,\lambda,\mu)$ if374375~376377\begin{itemize}378\item379each vertex has degree $k,$380381~382\item383each adjacent pair of vertices has $\lambda$ common neighbours, and384385~386\item387each nonadjacent pair of vertices has $\mu$ common neighbours.388\end{itemize}389390~391392~393394\slidecite{Brouwer, Cohen and Neumaier 1989}395396%\end{center}397\end{frame}398399\begin{frame}400\frametitle{Bent functions and strongly regular graphs}401402\begin{Proposition}403\smallcite{Bernasconi and Codenotti 1999}404405The Cayley graph $\Cay{f}$ of a bent function $f$ on $\F_2^{2m}$406407with $f(0)=0$ is a strongly regular graph with $\lambda = \mu.$408\end{Proposition}409410The parameters of $\Cay{f}$ are411\begin{align*}412(v,k,\lambda) = &(4^m, 2^{2 m - 1} - 2^{m-1}, 2^{2 m - 2} - 2^{m-1})413\\414\text{or} \quad &(4^m, 2^{2 m - 1} + 2^{m-1}, 2^{2 m - 2} + 2^{m-1}).415\end{align*}416417~418419\slidecite{Menon 1962; Dillon 1974; Bernasconi and Codenotti 1999}420%\end{center}421\end{frame}422\end{colortheme}423424\begin{colortheme}{seagull}425426\begin{frame}427\frametitle{Extended affine equivalence}428429\begin{Def}430For bent functions $f,g : \F_2^{2m} \To \F_2$,431432$f$ is \Emph{extended affine equivalent} to $g$ if and only if433\begin{align*}434g(x) &= f(A x + b) + \langle c, x \rangle + \delta435\end{align*}436for some $A \in GL(2m,2)$, $b, c \in \F_2^{2m}$, $\delta \in \F_2$.437\end{Def}438439~440441~442443\slidecite{Budaghyan, Carlet and Pott 2006; Carlet and Mesnager 2011}444\end{frame}445446\end{colortheme}447448\begin{colortheme}{jubata}449450\begin{frame}451\frametitle{General linear equivalence}452453\begin{Def}454For bent functions $f,g : \F_2^{2m} \To \F_2$,455$f$ is \Emph{general linear equivalent} to $g$ if and only if456\begin{align*}457g(x) &= f(A x)458\end{align*}459for some $A \in GL(2m,2)$.460\end{Def}461\end{frame}462\begin{frame}463\frametitle{Extended translation equivalence}464465\begin{Def}466For bent functions $f,g : \F_2^{2m} \To \F_2$,467468$f$ is \Emph{extended translation equivalent} to $g$ if and only if469\begin{align*}470g(x) &= f(x + b) + \langle c, x \rangle + \delta471\end{align*}472for $b, c \in \F_2^{2m}$, $\delta \in \F_2$.473\end{Def}474\end{frame}475476\begin{frame}477\frametitle{Cayley equivalence}478\begin{Def}479%480For $f, g : \F_2^{2m} \To \F_2$, with both $f$ and $g$ bent,481482we call $f$ and $g$ \Emph{Cayley equivalent},483and write $f \equiv g$,484485if and only if $f(0)=g(0)=0$ and $\Cay{f} \equiv \Cay{g}$ as graphs.486487~488489Equivalently, $f \equiv g$ if and only if $f(0)=g(0)=0$ and490491there exists a bijection $\pi : \F_2^{2m} \To \F_2^{2m}$ such that492\begin{align*}493g(x+y) &= f \big(\pi(x)+\pi(y)\big) \quad \text{for all~} x,y \in \F_2^{2m}.494\end{align*}495\end{Def}496\end{frame}497\begin{frame}498\frametitle{Extended Cayley equivalence}499\begin{Def}500For $f, g : \F_2^{2m} \To \F_2$, with both $f$ and $g$ bent,501502if there exist $\delta, \epsilon \in \{0,1\}$ such that $f + \delta \equiv g + \epsilon$,503504we call $f$ and $g$ \Emph{extended Cayley (EC) equivalent} and write $f \cong g$.505\end{Def}506Extended Cayley equivalence is an equivalence relation on the set of all bent functions on $\F_2^{2m}$.507\end{frame}508509\begin{frame}510\frametitle{General linear equivalence \\ implies Cayley equivalence}511512\begin{Theorem}513If $f$ is bent with $f(0)=0$ and $g(x) := f(A x)$ where $A \in GL(2m,2)$,514then $g$ is bent with $g(0)=0$ and $f \equiv g$.515\end{Theorem}516\begin{proof}517\begin{align*}518g(x+y) &= f\big(A(x+y)\big) = f(A x + A y)\quad \text{for all~} x,y \in \F_2^{2m}.519\end{align*}520\end{proof}521522\end{frame}523524\begin{frame}525\frametitle{Extended affine, extended translation, and extended Cayley equivalence (1)}526527\begin{Theorem}528For $A \in GL(2m,2)$, $b, c \in \F_2^{2m}$, $\delta \in \F_2$,529$f : \F_2^{2m} \To \F_2$,530531the function532\begin{align*}533h(x) &:= f(A x + b) + \langle c, x \rangle + \delta534\intertext{can be expressed as $h(x) = g(A x)$ where}535g(x) &:= f(x+b) + \langle (A^{-1})^T c, x \rangle + \delta,536\end{align*}537and therefore if $f$ is bent then $h \cong g$.538\end{Theorem}539\end{frame}540541\begin{frame}542\frametitle{Extended affine, extended translation, and extended Cayley equivalence (2)}543544Therefore, to determine the extended Cayley equivalence classes within the extended affine equivalence class of545a bent function $f : \F_2^{2m} \To \F_2$, for which $f(0)=0$, we need only examine546the extended translation equivalent functions of the form547\begin{align*}548f(x+b) + \langle c, x \rangle + f(b),549\end{align*}550for each $b, c \in \F_2^{2m}$.551\end{frame}552553\end{colortheme}554555\section{Some results in 8 dimensions}556557558\begin{colortheme}{seagull}559560\begin{frame}561\frametitle{For 8 dimensions: \\ number of bent functions and EA classes}562563According to Langevin and Leander (2011)564there are $99\,270\,589\,265\,934\,370\,305\,785\,861\,242\,880 \approx 2^{106}$ bent functions in dimension 8.565566~567568The number of EA classes has not yet been published, let alone a list of representatives.569570~571572~573574~575576~577578\slidecite{Langevin and Leander 2011}579\end{frame}580581\begin{frame}582\frametitle{For 8 dimensions, up to degree 3: \\ extended translation classes}583584Ten extended affine classes are listed in Braeken's thesis (2006),585586containing the following extended translation classes:587588\tiny{}589\begin{align*}590\def\arraystretch{1.2}591\begin{array}{|cl|}592\hline593\text{Class} &594\text{Representative}595\\596\hline597\,[f_{ 8 , 1 }] & f_{ 8 , 1 } :=598\begin{array}{l}599x_{0} x_{1} + x_{2} x_{3} + x_{4} x_{5} + x_{6} x_{7}600\end{array}601\\602\,[f_{ 8 , 2 }] & f_{ 8 , 2 } :=603\begin{array}{l}604x_{0} x_{1} x_{2} + x_{0} x_{3} + x_{1} x_{4} + x_{2} x_{5} + x_{6} x_{7}605\end{array}606\\607\,[f_{ 8 , 3 }] & f_{ 8 , 3 } :=608\begin{array}{l}609x_{0} x_{1} x_{2} + x_{0} x_{6} + x_{1} x_{3} x_{4} + x_{1} x_{5} + x_{2} x_{3} + x_{4} x_{7}610\end{array}611\\612\,[f_{ 8 , 4 }] & f_{ 8 , 4 } :=613\begin{array}{l}614x_{0} x_{1} x_{2} + x_{0} x_{2} + x_{0} x_{4} + x_{1} x_{3} x_{4} + x_{1} x_{5} + x_{2} x_{3} + x_{6} x_{7}615\end{array}616\\617\,[f_{ 8 , 5 }] & f_{ 8 , 5 } :=618\begin{array}{l}619x_{0} x_{1} x_{2} + x_{0} x_{6} + x_{1} x_{3} x_{4} + x_{1} x_{4} + x_{1} x_{5} + x_{2} x_{3} x_{5} + x_{2} x_{4} + x_{3} x_{7}620\end{array}621\\622\,[f_{ 8 , 6 }] & f_{ 8 , 6 } :=623\begin{array}{l}624x_{0} x_{1} x_{2} + x_{0} x_{2} + x_{0} x_{3} + x_{1} x_{3} x_{4} + x_{1} x_{6} + x_{2} x_{3} x_{5} + x_{2} x_{4} + x_{5} x_{7}625\end{array}626\\627\,[f_{ 8 , 7 }] & f_{ 8 , 7 } :=628\begin{array}{l}629x_{0} x_{1} x_{2} + x_{0} x_{1} + x_{0} x_{2} + x_{0} x_{3} + x_{1} x_{3} x_{4} + x_{1} x_{4} + x_{1} x_{5} + x_{2} x_{3} x_{5}630\\631+\, x_{2} x_{4} + x_{6} x_{7}632\end{array}633\\634\,[f_{ 8 , 8 }] & f_{ 8 , 8 } :=635\begin{array}{l}636x_{0} x_{1} x_{2} + x_{0} x_{5} + x_{1} x_{3} x_{4} + x_{1} x_{6} + x_{2} x_{3} x_{5} + x_{2} x_{4} + x_{3} x_{7}637\end{array}638\\639\,[f_{ 8 , 9 }] & f_{ 8 , 9 } :=640\begin{array}{l}641x_{0} x_{1} x_{6} + x_{0} x_{3} + x_{1} x_{4} + x_{2} x_{3} x_{6} + x_{2} x_{5} + x_{3} x_{4} + x_{4} x_{5} x_{6} + x_{6} x_{7}642\end{array}643\\644\,[f_{ 8 , 10 }] & f_{ 8 , 10 } :=645\begin{array}{l}646x_{0} x_{1} x_{2} + x_{0} x_{3} x_{6} + x_{0} x_{4} + x_{0} x_{5} + x_{1} x_{3} x_{4} + x_{1} x_{6} + x_{2} x_{3} x_{5} + x_{2} x_{4}647\\648+\, x_{3} x_{7}649\end{array}650\\651\hline652\end{array}653\end{align*}654\slidecite{Braeken 2006; Tokareva 2015}655\normalsize{}656\end{frame}657658\end{colortheme}659660\begin{colortheme}{jubata}661662\begin{frame}663\frametitle{ET classes $[f_{8,5}]$ and $[f_{8,6}]$}664\begin{figure}665\centering666\begin{minipage}{.48\textwidth}667\centering668\includegraphics[width=.9\linewidth]{../matrix_plot/re8_5_bent_cayley_graph_index_matrix.png}669\captionof{figure}{$[f_{8,5}]$: 9 extended Cayley classes}670\label{fig:re8_5_bent_cayley_graph_index_matrix}671\end{minipage}%672\begin{minipage}{.48\textwidth}673\centering674\includegraphics[width=.9\linewidth]{../matrix_plot/re8_6_bent_cayley_graph_index_matrix.png}675\captionof{figure}{$[f_{8,6}]$: 9 extended Cayley classes}676\label{fig:re8_6_bent_cayley_graph_index_matrix}677\end{minipage}678\end{figure}679The same 9 EC classes, with the same frequencies!680681\slidecite{colormap: gist\_stern, colours matched to extended Cayley classes}682\end{frame}683684\begin{frame}[fragile]685\frametitle{Functions $f_{8,5}$ and $f_{8,6}$ are linearly equivalent}686687\Emph{Proof}688689~690691Apply the permutation $\pi := (x_0\ x_5\ x_4)(x_1\ x_2\ x_3)(x_6\ x_7)$ to692\footnotesize{693\begin{align*}694f_{8,5}695&=696x_{0} x_{1} x_{2} + x_{0} x_{6} + x_{1} x_{3} x_{4} + x_{1} x_{4} + x_{1} x_{5} + x_{2} x_{3} x_{5} + x_{2} x_{4} + x_{3} x_{7}697%\end{align*}698%}\normalsize{}699\intertext{\normalsize{to obtain}}700%\small{701%\begin{align*}702\pi(f_{8,5})703&=704x_{5} x_{2} x_{3} + x_{5} x_{7} + x_{2} x_{1} x_{0} + x_{2} x_{0} + x_{2} x_{4} + x_{3} x_{1} x_{4} + x_{3} x_{0} + x_{1} x_{6}705\\706&=707x_{0} x_{1} x_{2} + x_{0} x_{2} + x_{0} x_{3} + x_{1} x_{3} x_{4} + x_{1} x_{6} + x_{2} x_{3} x_{5} + x_{2} x_{4} + x_{5} x_{7}708\\709&= f_{8,6}.710\\711&\ \Box712\end{align*}713}\normalsize{}714\end{frame}715716\end{colortheme}717718\begin{colortheme}{seagull}719720\begin{frame}[fragile]721\frametitle{For 8 dimensions: Bent functions from CAST-128 S-boxes}722723The CAST-128 encryption algorithm is used in PGP and elsewhere.724725CAST-128, including the S-boxes, is specified by IETF RFC 2144:726\begin{verbatim}727https://www.ietf.org/rfc/rfc2144.txt728\end{verbatim}729730The algorithm uses 8 S-boxes,731each of which consists of 32 binary bent functions of degree 4 in 8 dimensions,732giving a total of 256 bent functions.733734~735736~737738~739740\slidecite{Adams 1997}741\end{frame}742743\end{colortheme}744745\begin{colortheme}{jubata}746747\begin{frame}748\frametitle{CAST-128 ET class $[cast128_{1,0}]$}749\begin{figure}750\centering751\begin{minipage}{.48\textwidth}752\centering753\includegraphics[width=.9\linewidth]{../matrix_plot/cast128_1_0_weight_class_matrix.png}754\captionof{figure}{$[cast128_{1,0}]$: weight classes ~~~~~~ ~~~~~~~~\\~~~~~}755\label{fig:cast128_1_0_weight_class_matrix}756\end{minipage}757\begin{minipage}{.48\textwidth}758\centering759\includegraphics[width=.9\linewidth]{../matrix_plot/cast128_1_0_bent_cayley_graph_index_matrix.png}760\captionof{figure}{$[cast128_{1,0}]$: $65\,536$ extended Cayley classes.\\Total including duals is $131\,072$.}761\label{fig:cast128_1_0_bent_cayley_graph_index_matrix}762\end{minipage}%763\end{figure}764\slidecite{LHS colormap: gist\_stern; RHS colormap: jet}765\end{frame}766767\begin{frame}768\frametitle{CAST-128 ET classes $[cast128_{2,1}]$ and $[cast128_{2,16}]$}769\begin{figure}770\centering771\begin{minipage}{.48\textwidth}772\centering773\includegraphics[width=.9\linewidth]{../matrix_plot/cast128_2_1_bent_cayley_graph_index_matrix.png}774\captionof{figure}{$[cast128_{2,1}]$: $8\,256$ extended Cayley classes.\\Total including duals is $8\,256$.}775\label{fig:cast128_2_1_bent_cayley_graph_index_matrix}776\end{minipage}%777\begin{minipage}{.48\textwidth}778\centering779\includegraphics[width=.9\linewidth]{../matrix_plot/cast128_2_16_bent_cayley_graph_index_matrix.png}780\captionof{figure}{$[cast128_{2,16}]$: $32\,768$ extended Cayley classes.\\Total including duals is $65\,536$.}781\label{fig:cast128_2_16_bent_cayley_graph_index_matrix}782\end{minipage}%783\end{figure}784\slidecite{colormap: jet}785\end{frame}786787\begin{frame}788\frametitle{CAST-128 ET classes $[cast128_{4,27}]$ and $[cast128_{5,16}]$}789\begin{figure}790\centering791\begin{minipage}{.48\textwidth}792\centering793\includegraphics[width=.9\linewidth]{../matrix_plot/cast128_4_27_bent_cayley_graph_index_matrix.png}794\captionof{figure}{$[cast128_{4,27}]$: $65\,536$ extended Cayley classes.\\Total including duals is $65\,536$.}795\label{fig:cast128_4_27_bent_cayley_graph_index_matrix}796\end{minipage}%797\begin{minipage}{.48\textwidth}798\centering799\includegraphics[width=.9\linewidth]{../matrix_plot/cast128_5_16_bent_cayley_graph_index_matrix.png}800\captionof{figure}{$[cast128_{5,16}]$: $33\,280$ extended Cayley classes.\\Total including duals is $66\,560$.}801\label{fig:cast128_5_16_bent_cayley_graph_index_matrix}802\end{minipage}%803\end{figure}804\slidecite{colormap: jet}805\end{frame}806807\begin{frame}808\frametitle{CAST-128 ET classes $[cast128_{5,27}]$ and $[cast128_{6,17}]$}809\begin{figure}810\centering811\begin{minipage}{.48\textwidth}812\centering813\includegraphics[width=.9\linewidth]{../matrix_plot/cast128_5_27_bent_cayley_graph_index_matrix.png}814\captionof{figure}{$[cast128_{5,27}]$: $6\,144$ extended Cayley classes.\\Total including duals is $6\,144$.}815\label{fig:cast128_5_27_bent_cayley_graph_index_matrix}816\end{minipage}%817\begin{minipage}{.48\textwidth}818\centering819\includegraphics[width=.9\linewidth]{../matrix_plot/cast128_6_17_bent_cayley_graph_index_matrix.png}820\captionof{figure}{$[cast128_{6,17}]$: $65\,536$ extended Cayley classes.\\Total including duals is $65\,536$.}821\label{fig:cast128_6_17_bent_cayley_graph_index_matrix}822\end{minipage}%823\end{figure}824\slidecite{colormap: jet}825\end{frame}826827\begin{frame}828\frametitle{CAST-128 ET classes $[cast128_{7,15}]$ and $[cast128_{7,21}]$}829\begin{figure}830\centering831\begin{minipage}{.48\textwidth}832\centering833\includegraphics[width=.9\linewidth]{../matrix_plot/cast128_7_15_bent_cayley_graph_index_matrix.png}834\captionof{figure}{$[cast128_{7,15}]$: $32\,768$ extended Cayley classes.\\Total including duals is $65\,536$.}835\label{fig:cast128_7_15_bent_cayley_graph_index_matrix}836\end{minipage}%837\begin{minipage}{.48\textwidth}838\centering839\includegraphics[width=.9\linewidth]{../matrix_plot/cast128_7_21_bent_cayley_graph_index_matrix.png}840\captionof{figure}{$[cast128_{7,21}]$: $32\,768$ extended Cayley classes.\\Total including duals is $65\,536$.}841\label{fig:cast128_7_21_bent_cayley_graph_index_matrix}842\end{minipage}%843\end{figure}844\slidecite{colormap: jet}845\end{frame}846\end{colortheme}847848\begin{colortheme}{seagull}849850\begin{frame}[fragile]851\frametitle{For 8 dimensions: number of partial spread \\ bent functions and EA classes}852853According to Langevin and Hou (2011)854there are $70\,576\,747\,237\,594\,114\,392\,064 \approx 2^{75.9}$ \Emph{partial spread} bent functions in dimension 8,855contained in $14\,758$ EA classes, of which $14\,756$ have degree 4.856857~858859The EA class representatives are listed at Langevin's web site860861\begin{verbatim}862http://langevin.univ-tln.fr/project/spread/psp.html863\end{verbatim}864865~866867\slidecite{Langevin and Hou 2011}868\end{frame}869870\end{colortheme}871872\begin{colortheme}{jubata}873874\begin{frame}875\frametitle{Example partial spread ET class $[psf_{9,5439}]$}876\begin{figure}877\centering878\begin{minipage}{.48\textwidth}879\centering880\includegraphics[width=.9\linewidth]{../matrix_plot/psf_9_5439_bent_cayley_graph_index_matrix.png}881\captionof{figure}{$[psf_{9,5439}]$: 16 extended Cayley classes ~~ ~~~~ ~~~~ ~~~~~~~~~}882\label{fig:psf_9_5439_bent_cayley_graph_index_matrix}883\end{minipage}884\begin{minipage}{.48\textwidth}885\centering886\includegraphics[width=.9\linewidth]{../matrix_plot/psf_9_5439_dual_cayley_graph_index_matrix.png}887\captionof{figure}{$[psf_{9,5439}]$: 16 extended Cayley classes of dual bent functions}888\label{fig:psf_9_5439_dual_cayley_graph_index_matrix}889\end{minipage}%890\end{figure}8916 of the 16 classes form 3 dual pairs of classes.892893\slidecite{colormap: gist\_stern}894\end{frame}895896\end{colortheme}897898\section{Precedents}899900\begin{colortheme}{seagull}901\begin{frame}902\frametitle{Precedents: databases of strongly regular graphs}903\begin{itemize}904\item905Spence's lists of strongly regular graphs on at most 64 vertices.906\begin{itemize}907\item908Exhaustive lists of non-isomorphic graphs for some tuples of feasible parameters.909\item910Flat text files.911\end{itemize}912913~914915\item916Brouwer's database of parameters of strongly regular graphs.917918~919920\item921Cohen and Pasechnik's Sage implementation of Brouwer's database, with constructions.922\begin{itemize}923\item924Includes an example for each tuple of feasible parameters, if known.925\item926Sage interface.927\end{itemize}928\end{itemize}929\slidecite{Spence 1995-2006; Brouwer 2008-2017; Cohen and Pasechnik 2016-2017}930\end{frame}931932\begin{frame}933\frametitle{Other recent mathematical databases}934\begin{itemize}935\item936ISGCI - Information System on Graph Classes and their Inclusions937\begin{itemize}938\item939``\ldots an encyclopaedia of graph classes with an accompanying Java application that helps you to research what's known about particular graph classes.''940\item941Web-based and Java interfaces.942\end{itemize}943944~945946\item947LMFDB - The L-functions and modular forms database948\begin{itemize}949\item950``The LMFDB is an extensive database of mathematical objects arising in Number Theory.''951\item952Based on MongoDB and Python.953\item954Web-based and Sage interfaces.955\end{itemize}956\end{itemize}957\slidecite{H.N. de Ridder et al. 2001-2016; The LMFDB Collaboration 2007-2017}958\end{frame}959960\end{colortheme}961962\section{Preliminary designs}963964\begin{colortheme}{jubata}965966\begin{frame}967\frametitle{Database tables}968\begin{figure}969\centering970\begin{minipage}{\textwidth}971\centering972\includegraphics[width=.75\linewidth]{Classification-schema-SQLite.png}973\captionof{figure}{Database schema for SQLite version of the classification database.}974\label{fig:Classification_schema_SQLite}975\end{minipage}%976\end{figure}977\end{frame}978979\begin{frame}[fragile]980\frametitle{Sage interface: insert function}981982\begin{verbatim}983insert_classification(conn, bfcgc, name=None):984\end{verbatim}985986\begin{itemize}987\item \texttt{conn}: Database connection.988989~990991\item \texttt{bfcgc}: Cayley graph classification of the ET class of \\a bent function.992993~994995\item \texttt{name}: Name of the ET class (optional).996\end{itemize}997998\end{frame}9991000\begin{frame}[fragile]1001\frametitle{Sage interface: select functions}10021003\begin{verbatim}1004select_classification_where_bent_function(1005conn, bentf):1006\end{verbatim}1007\begin{itemize}1008\item \texttt{conn}: Database connection.1009\item \texttt{bentf}: Bent function representing an ET class.1010\end{itemize}10111012~10131014\begin{verbatim}1015select_classification_where_name(conn, name):1016\end{verbatim}1017\begin{itemize}1018\item \texttt{conn}: Database connection.1019\item \texttt{name}: Name of the ET class.1020\end{itemize}10211022\end{frame}10231024\end{colortheme}10251026\section{Prototype databases}10271028\begin{colortheme}{jubata}10291030\begin{frame}1031\frametitle{Prototype databases}1032Three prototype relational databases, using SQLite:10331034\begin{itemize}1035\item\normalsize{}1036Bent functions in 6 dimensions.1037\begin{itemize}1038\item\footnotesize{}1039Database of 11 strongly regular graphs from 4 ET classes.1040\item\footnotesize{}1041About 20 CPU minutes to calculate (2.93 GHz Intel Core i7, serial).1042\item\footnotesize{}1043Database size 780 KB.1044\end{itemize}10451046\item\normalsize{}1047Bent functions in 8 dimensions, up to degree 3.1048\begin{itemize}1049\item\footnotesize{}1050Database of 55 strongly regular graphs from 9 ET classes.1051\item\footnotesize{}1052About 250 CPU hours to calculate (2.93 GHz Intel Core i7, serial).1053\item\footnotesize{}1054Database size 65 MB.1055\end{itemize}10561057\item\normalsize{}1058Bent functions from the 8 S-boxes of CAST-128.1059\begin{itemize}1060\item\footnotesize{}1061Database of more than \Emph{32 million} ($32\,914\,496$) strongly regular graphs from 256 ET classes and their duals.1062\item\footnotesize{}1063About \Emph{9000 CPU hours} to calculate1064(4500 CPU hours on\\NCI Raijin, MPI, 16 ranks, for 128 ET classes and their duals).1065\item\footnotesize{}1066Database size \Emph{195 GB}.1067\end{itemize}1068\end{itemize}10691070\normalsize{}1071\end{frame}10721073\begin{frame}1074\frametitle{Time to create SQLite CAST-128 database}1075\begin{figure}1076\centering1077\begin{minipage}{.49\textwidth}1078\centering1079\includegraphics[width=1.0\linewidth]{CAST128-database-insert-times-by-existing.png}1080\label{fig:CAST128_database_insert_times_by_existing}1081\end{minipage}1082\begin{minipage}{.49\textwidth}1083\centering1084\includegraphics[width=1.0\linewidth]{CAST128-database-insert-times-by-time-of-day.png}1085\label{fig:CAST128_database_insert_times-By_time_of_day}1086\end{minipage}%1087\end{figure}1088It took almost 3 days to insert 256 classifications \Emph{sequentially} into the SQLite version of the CAST-128 database.1089\end{frame}10901091\begin{frame}1092\frametitle{Using DB Browser with a prototype database}1093\begin{figure}1094\centering1095\begin{minipage}{\textwidth}1096\centering1097\includegraphics[width=1.00\linewidth]{Browser-session-SQLite.png}1098% \captionof{figure}{DB Browser session with a prototype classification database.}1099\label{fig:Browser_session_SQLite}1100\end{minipage}%1101\end{figure}1102\end{frame}11031104\end{colortheme}11051106\section{Prospects}11071108\begin{colortheme}{jubata}11091110\begin{frame}[fragile]1111\frametitle{Possible next steps}11121113\begin{itemize}1114\item1115Submit ``Classifying bent functions by their Cayley graphs.''11161117~11181119\item1120Submit code to Sage project for review.11211122~11231124\item1125Gauge demand for the database. Find collaborators.11261127~11281129\item1130Arrange for hosting. Research Data Services?11311132~11331134\item1135Scale up to the partial spread bent functions?11361137\begin{itemize}1138\item1139This could be a database of about \Emph{2 billion SRGs},1140\\1141from 14\,758 ET classes, taking about \Emph{500\,000 CPU hours}1142\\1143to calculate and about \Emph{10 TB} to store.1144\end{itemize}1145\end{itemize}1146\end{frame}11471148\end{colortheme}11491150\section{Source code}11511152\begin{colortheme}{jubata}11531154\begin{frame}[fragile]1155\frametitle{Source code and documentation}1156~11571158CoCalc: Public worksheets, Sage and Python source code11591160\begin{verbatim}1161http://tinyurl.com/Boolean-Cayley-graphs1162\end{verbatim}11631164~11651166GitHub: Sage and Python source code11671168\begin{verbatim}1169https://github.com/penguian/Boolean-Cayley-graphs1170\end{verbatim}11711172~11731174SourceForge: Documentation11751176\begin{verbatim}1177https://boolean-cayley-graphs.sourceforge.io/1178\end{verbatim}1179\end{frame}11801181\end{colortheme}11821183\end{document}118411851186