strict digraph sbox6i {
- x0 [shape=box, label="\N"];
- x1 [shape=box, label="\N"];
- x2 [shape=box, label="\N"];
- x3 [shape=box, label="\N"];
+ x0 [shape=box];
+ x1 [shape=box];
+ x2 [shape=box];
+ x3 [shape=box];
- y0 [shape=box, label="\N"];
- y1 [shape=box, label="\N"];
- y2 [shape=box, label="\N"];
- y3 [shape=box, label="\N"];
-
- // To get to y1, we need to save t02
- // To get to y3, we need to save y1, t02, t05, t07, t01
- // To get to y0, we need to save t02, t07, t05, t01
+ y0 [shape=box];
+ y1 [shape=box];
+ y2 [shape=box];
+ y3 [shape=box];
// Get to y1
- t02 [label="\N\ny3\n1"];
- t06 [label="\N\ny0\n2"];
- t08 [label="\N\ny1\n3"];
- y1 [label="\N\n4"];
+ t01 [label="\N\ny2\n1"];
+ t02 [label="\N\nx2\n2"];
+ t06 [label="\N\ny0\n3"];
+ t08 [label="\N\ny1\n4"];
+ y1 [label="\N\n5"];
// Get to t05
- t01 [label="\N\nx2\n4"];
- t03 [label="\N\ny2\n5"];
- t05 [label="\N\ny2\n6"];
+ t03 [label="\N\ny3\n6"];
+ t05 [label="\N\ny3\n7"];
// Get to t07
- t16 [label="\N\nx3\n7"];
- t04 [label="\N\ny3\n8"];
- t07 [label="\N\ny3\n9"];
+ t16 [label="\N\nx3\n8"];
+ t04 [label="\N\nx2\n9"];
+ t07 [label="\N\nx2\n10"];
// Get to y0
- t09 [label="\N\ny0\n10"];
- y0 [label="\N\n11"];
+ t09 [label="\N\ny0\n11"];
+ y0 [label="\N\n12"];
// Get to y3
- t13 [label="\N\ny2\n12"];
- t15 [label="\N\ny3\n13"];
- t17 [label="\N\nx0\n14"];
- y3 [label="\N\n15"];
+ t13 [label="\N\ny3\n13"];
+ t15 [label="\N\ny3\n14"];
+ t17 [label="\N\nx0\n15"];
+ y3 [label="\N\n16"];
// Get to y2
- t12 [label="\N\nx1\n16"];
- t14 [label="\N\ny2\n17"];
- y2 [label="\N\n18"];
-
- // t02 [label="\N\nx2\n1"];
- // t08 [label="\N\ny1\n2"];
- // t06 [label="\N\ny2\n3"];
- // y1 [label="\N\n4", shape=box];
- // t04 [label="\N\ny0\n6"];
- // t07 [label="\N\ny0\n7"];
- // t16 [label="\N\nx2\n9"];
- // t03 [label="\N\ny2\n10"];
- // t05 [label="\N\nx3\n11"];
-
+ t12 [label="\N\nx1\n17"];
+ t14 [label="\N\ny2\n18"];
+ y2 [label="\N\n19"];
+
x0 -> t01; x2 -> t01; // t01 = x0 ^ x2;
x2 -> t02; // t02 = ~ x2;
x1 -> t03; t01-> t03; // t03 = x1 & t01;