From: Niels Möller Date: Tue, 21 Jun 2011 11:43:26 +0000 (+0200) Subject: *** empty log message *** X-Git-Tag: nettle_2.2_release_20110711~40 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=57e05f5425f477fca1d74377c473fa5bb102b737;p=thirdparty%2Fnettle.git *** empty log message *** Rev: nettle/misc/serpent-sbox6i.dot:1.1 --- diff --git a/misc/serpent-sbox6i.dot b/misc/serpent-sbox6i.dot new file mode 100644 index 00000000..43ccb662 --- /dev/null +++ b/misc/serpent-sbox6i.dot @@ -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; +}