Spn
置換置換網路視覺化器
我正在對一個玩具塊密碼進行微分分析,其中我必須提取前 n-1 輪的微分特徵。
但是,我不能很好地做到這一點,因為我看不到網路本身。基本上,我想知道是否有一個軟體可以自動生成一個 SPN 網路給定圓形排列和 S 框並直覺地呈現它。這將使分析更加簡單。
您可能對TikZ for Cryptographers感興趣:
PGF/TikZ 是用於從幾何/代數描述生成矢量圖形的一系列語言。PGF 是一種低級語言,而 TikZ 是一組使用 PGF 的高級宏。頂級 PGF 和 TikZ 命令作為 TeX 宏呼叫。與 LaTeX 語言一起,它是撰寫研究論文的最有效方式。
這是用它繪製的替換置換網路圖的範例:
這是創建它的來源:
\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}