diff --git a/misc/serpent-sbox6.dot b/misc/serpent-sbox6.dot
new file mode 100644
index 0000000000000000000000000000000000000000..1ec3fc848f40bebc97998571a438e9bd65490fad
--- /dev/null
+++ b/misc/serpent-sbox6.dot
@@ -0,0 +1,46 @@
+strict digraph sbox6 {
+  x0 [shape=box];
+  x1 [shape=box];
+  x2 [shape=box];
+  x3 [shape=box];
+
+  t03 [label="\N\ny0\n1"];
+  t01 [label="\N\ny1\n2"];
+  t09 [label="\N\ny2\n3"];
+  t11 [label="\N\nx3\n4"];
+  t12 [label="\N\nx3\n5"];
+  t17 [label="\N\nx0\n6"];
+  t05 [label="\N\ny3\n7"];
+  t02 [label="\N\nx2\n8"];
+  t07 [label="\N\ny3\n9"];
+  t04 [label="\N\ny1\n10"];
+  y1  [label="\N\n11", shape=box];
+  t15 [label="\N\ny0\n12"];
+  t08 [label="\N\nx1\n13"];
+  t10 [label="\N\nx1\n14"];
+  y3  [label="\N\n15", shape=box];
+  t13 [label="\N\ny2\n16"];
+  y2  [label="\N\n17", shape=box];
+  t18 [label="\N\ny0\n18"];
+  y0  [label="\N\n19", shape=box];
+
+  x0  -> t01; x3  -> t01;  // t01 = x0  & x3;
+  x1  -> t02; x2  -> t02;  // t02 = x1  ^ x2;
+  x0  -> t03; x3  -> t03;  // t03 = x0  ^ x3;
+  t01 -> t04; t02 -> t04;  // t04 = t01 ^ t02;
+  x1  -> t05; x2  -> t05;  // t05 = x1  | x2;
+  t04 -> y1;               // y1  =     ~ t04;
+  t03 -> t07; t05 -> t07;  // t07 = t03 & t05;
+  x1  -> t08; y1  -> t08;  // t08 = x1  & y1;
+  x0  -> t09; x2  -> t09;  // t09 = x0  | x2;
+  t07 -> t10; t08 -> t10;  // t10 = t07 ^ t08;
+  x1  -> t11; x3  -> t11;  // t11 = x1  | x3;
+  x2  -> t12; t11 -> t12;  // t12 = x2  ^ t11;
+  t09 -> t13; t10 -> t13;  // t13 = t09 ^ t10;
+  t13 -> y2;               // y2  =     ~ t13;
+  y1  -> t15; t03 -> t15;  // t15 = y1  & t03;
+  t12 -> y3;  t07 -> y3;   // y3  = t12 ^ t07;
+  x0  -> t17; x1  -> t17;  // t17 = x0  ^ x1;
+  y2  -> t18; t15 -> t18;  // t18 = y2  ^ t15;
+  t17 -> y0;  t18 -> y0;   // y0  = t17 ^ t18;
+}
diff --git a/misc/serpent-sbox7.dot b/misc/serpent-sbox7.dot
new file mode 100644
index 0000000000000000000000000000000000000000..4fd4d1f212fcd93d087628acd02bef4a45191c0e
--- /dev/null
+++ b/misc/serpent-sbox7.dot
@@ -0,0 +1,60 @@
+/* Can we get down to 8 registers? Possible strategy:
+ *
+ * Do what's needed to compute y3. At this point, we need to keep
+ * inputs, t01, t04, y3, so we only have one temporary left (and we
+ * discard t02, recomputing it frpm x3 when needed later.
+ *
+ * Compute y1: Discard t04. Use one register to compute t08 and t10.
+ * Use the other to compute t05 (then but t15 in x2), and t09. We can
+ * then get to y1, and have one spare register.
+ *
+ * Put t13 in x1. Use the spare register to compute t04 (again), t11,
+ * t16 and y2. The rest should be easy, y0 can be done in parallel
+ * with y2.
+ */
+strict digraph sbox6 {
+  x0 [shape=box];
+  x1 [shape=box];
+  x2 [shape=box];
+  x3 [shape=box];
+
+  t01 [label="\N\ny0\n1"];
+  t04 [label="\N\ny2\n2"];
+  t06 [label="\N\ny3\n3"];
+  t02 [label="\N\ny1,x3\n4,18"];
+  t03 [label="\N\ny1\n5"];
+  y3  [label="\N\n6", shape=box];
+  t11 [label="\N\ny2\n7"];
+  t08 [label="\N\ny1\n8"];
+  t10 [label="\N\ny1\n9"];
+  t05 [label="\N\nt\n10"];
+  t15 [label="\N\nx2\n11"];
+  t09 [label="\N\nt\n12"];
+  y1  [label="\N\n13", shape=box];
+  t13 [label="\N\nx1\n14"];
+  t16 [label="\N\ny2\n15"];
+  y2  [label="\N\n16", shape=box];
+  t14 [label="\N\ny0\n17"];
+  t17 [label="\N\ny0\n18"];
+  y0  [label="\N\n19", shape=box];
+
+  x0  -> t01; x2  -> t01;  // t01 = x0  & x2;
+  x3  -> t02;              // t02 =     ~ x3;
+  x0  -> t03; t02 -> t03;  // t03 = x0  & t02;
+  x1  -> t04; t01 -> t04;  // t04 = x1  | t01;
+  x0  -> t05; x1  -> t05;  // t05 = x0  & x1;
+  x2  -> t06; t04 -> t06;  // t06 = x2  ^ t04;
+  t03 -> y3;  t06 -> y3;   // y3  = t03 ^ t06;
+  x2  -> t08; y3  -> t08;  // t08 = x2  | y3;
+  x3  -> t09; t05 -> t09;  // t09 = x3  | t05;
+  x0  -> t10; t08 -> t10;  // t10 = x0  ^ t08;
+  t04 -> t11; y3  -> t11;  // t11 = t04 & y3;
+  t09 -> y1;  t10 -> y1;   // y1  = t09 ^ t10;
+  x1  -> t13; y1  -> t13;  // t13 = x1  ^ y1;
+  t01 -> t14; y1  -> t14;  // t14 = t01 ^ y1;
+  x2  -> t15; t05 -> t15;  // t15 = x2  ^ t05;
+  t11 -> t16; t13 -> t16;  // t16 = t11 | t13;
+  t02 -> t17; t14 -> t17;  // t17 = t02 | t14;
+  t15 -> y0;  t17 -> y0;   // y0  = t15 ^ t17;
+  x0  -> y2;  t16 -> y2;   // y2  = x0  ^ t16;
+}