]> git.ipfire.org Git - thirdparty/nettle.git/commitdiff
*** empty log message ***
authorNiels Möller <nisse@lysator.liu.se>
Tue, 21 Jun 2011 11:43:26 +0000 (13:43 +0200)
committerNiels Möller <nisse@lysator.liu.se>
Tue, 21 Jun 2011 11:43:26 +0000 (13:43 +0200)
Rev: nettle/misc/serpent-sbox6i.dot:1.1

misc/serpent-sbox6i.dot [new file with mode: 0644]

diff --git a/misc/serpent-sbox6i.dot b/misc/serpent-sbox6i.dot
new file mode 100644 (file)
index 0000000..43ccb66
--- /dev/null
@@ -0,0 +1,71 @@
+strict digraph sbox6i {
+  x0 [shape=box, label="\N"];
+  x1 [shape=box, label="\N"];
+  x2 [shape=box, label="\N"];
+  x3 [shape=box, label="\N"];
+
+  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
+
+  // Get to y1
+  t02 [label="\N\ny3\n1"];
+  t06 [label="\N\ny0\n2"];
+  t08 [label="\N\ny1\n3"];
+  y1  [label="\N\n4"];
+  // Get to t05
+  t01 [label="\N\nx2\n4"];
+  t03 [label="\N\ny2\n5"];
+  t05 [label="\N\ny2\n6"];
+  // Get to t07
+  t16 [label="\N\nx3\n7"];
+  t04 [label="\N\ny3\n8"];
+  t07 [label="\N\ny3\n9"];  
+  // Get to y0
+  t09 [label="\N\ny0\n10"];
+  y0  [label="\N\n11"];
+  // Get to y3
+  t13 [label="\N\ny2\n12"];
+  t15 [label="\N\ny3\n13"];
+  t17 [label="\N\nx0\n14"];
+  y3  [label="\N\n15"];
+  // 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"];
+  
+  x0  -> t01; x2 -> t01;  // t01 = x0  ^ x2;
+  x2  -> t02;             // t02 =     ~ x2;
+  x1  -> t03; t01-> t03;  // t03 = x1  & t01;
+  x1  -> t04; t02-> t04;  // t04 = x1  | t02;
+  x3  -> t05; t03-> t05;  // t05 = x3  | t03;
+  x1  -> t06; x3 -> t06;  // t06 = x1  ^ x3;
+  x0  -> t07; t04-> t07;  // t07 = x0  & t04;
+  x0  -> t08; t02-> t08;  // t08 = x0  | t02;
+  t07 -> t09; t05-> t09;  // t09 = t07 ^ t05;
+  t06 -> y1;  t08-> y1;   // y1  = t06 ^ t08;
+  t09 -> y0;              // y0  =     ~ t09;
+  x1  -> t12; y0 -> t12;  // t12 = x1  & y0;
+  t01 -> t13; t05-> t13;  // t13 = t01 & t05;
+  t01 -> t14; t12-> t14;  // t14 = t01 ^ t12;
+  t07 -> t15; t13-> t15;  // t15 = t07 ^ t13;
+  x3  -> t16; t02-> t16;  // t16 = x3  | t02;
+  x0  -> t17; y1 -> t17;  // t17 = x0  ^ y1;
+  t17 -> y3;  t15-> y3;   // y3  = t17 ^ t15;
+  t16 -> y2;  t14-> y2;   // y2  = t16 ^ t14;
+}