Spn

置換置換網路視覺化器

  • April 5, 2017

我正在對一個玩具塊密碼進行微分分析,其中我必須提取前 n-1 輪的微分特徵。

但是,我不能很好地做到這一點,因為我看不到網路本身。基本上,我想知道是否有一個軟體可以自動生成一個 SPN 網路給定圓形排列和 S 框並直覺地呈現它。這將使分析更加簡單。

您可能對TikZ for Cryptographers感興趣:

PGF/TikZ 是用於從幾何/代數描述生成矢量圖形的一系列語言。PGF 是一種低級語言,而 TikZ 是一組使用 PGF 的高級宏。頂級 PGF 和 TikZ 命令作為 TeX 宏呼叫。與 LaTeX 語言一起,它是撰寫研究論文的最有效方式。

這是用它繪製的替換置換網路圖的範例:

用 Tikz 繪製的置換置換網路

這是創建它的來源:

\documentclass{standalone}

\usepackage{tikz}
\usetikzlibrary{calc}

\usetikzlibrary{crypto.symbols}
\usetikzlibrary {positioning}
\usetikzlibrary{shapes}
\begin{document}    
   \begin{tikzpicture}
       %% Subkey XORs
       \foreach \z in {0,...,15} {
           \node[XOR, scale=0.8] (xor\z) at ($\z*(0.75em, 0)$) {};
           \node[XOR, scale=0.8] (xorr\z) at ($\z*(0.75em, 0)+(0,-9em)$) {};
       }

       %% Nodes positions
       \foreach \z in {0,...,15} {
           \node (i\z) [above = 0.75em of xor\z] {};
           \node (o\z) [below = 2.5em of xor\z] {};
           \node (ii\z) [above = 0.25em of xorr\z] {};
           \node (oo\z) [below = 3em of xorr\z] {};
           \node (t\z) [below = 4em of oo\z] {};
           \draw[thick] (i\z) -- (xor\z);
       }

       %% Permutation layer
       \foreach \z [evaluate=\z as \zz using {int(mod(11*\z,15))}] in {0,...,14} {
           \draw[thick] (xor\z)  -- (o\z.center)  -- (ii\zz.center) -- (xorr\zz) -- (oo\zz);
           \draw[thick] (oo\z.north)  -- (t\zz.south) -- +(0,-0.5em);
       }
       \draw[thick] (xor15) -- (o15.center) -- (ii15.center) -- (xorr15) -- (oo15);
       \draw[thick] (oo15.north) -- (t15.south) -- +(0,-0.5em);    

       %% SBoxes
       \foreach \z in {0,...,3} {
           \node[draw,thick,minimum width=2.75em,minimum height=2em,fill=white] (p4) at ($\z*(3em,0) + (1.1em,-2em)$) {$S$};
           \node[draw,thick,minimum width=2.75em,minimum height=2em,fill=white] (p4) at ($\z*(3em,0) + (1.1em,-11em)$) {$S$};
       }

       \node[left = 0em of xor0] {$k_{1}$};
       \node[left = 0em of xorr0] {$k_{2}$};

   \end{tikzpicture}
\end{document}

引用自:https://crypto.stackexchange.com/questions/45300