"Pest" v. 0xFE.

This is a continuation of “Pest” v. 0xFF. Edit: A note for the innocent — this series of articles concerns an algorithm! It is not, at the time of writing, fully implemented anywhere! Or even entirely complete. Edit: Various problems and discussions. Edit: billymg made a mirror of this page. The document (very much a […]

"Pest" v. 0xFF.

What follows is a long-promised detailed specification of a DDOS-proof, CPU-inexpensive, ciphered-authenticated peer-to-peer communication protocol. I would like to thank Thimbronion for implementing a large subset of this spec already despite not having seen it yet! The document (very much a work in progress!) is available as a vtree. You will need: A V-tron. If […]

The Fossil Vault.

I have recently built two new WWW mirrors containing certain publicly-available software: 1. Historic Gentoo Distfiles. I have been using Gentoo for nearly all Linux-related work since 2007. It was “the lesser of evils”: to my knowledge, no other Linux variant ever offered a comparable level of rodenticidal control, while at the same time providing […]

25 Years of Loud, Expensive Space Heaters.

A half-written draft of this piece has been living on my HDD for nearly half a year. Recent discussions re: the subject of “aging and death of PC irons” prompted me to dust it off and quickly post. Regularly-scheduled programming will resume shortly… “The tools, the means and the methods disappear under the overwhelming dead […]

The Serpent Cipher’s Key Schedule Transform is Injective.

This article is a continuation of the previous, and concludes the series. Let’s try this somewhat different variant of the program, which represents recurring bits of the expansion symbolically (and in a slightly more readable form) : ;; Register bitness. (defconstant +bitness+ 32)   (defun make-reg (reg-name bitness) "Make algebraic representation of a register (bits […]

The Serpent Cipher's Key Schedule Equation System, in Graphical Form.

This article is a continuation of the dig into the key schedule of the Serpent cipher. For clarity, we will omit the routines already given in the previous article. Let’s visualize the Serpent key schedule as a graphic: ;; 256bit(key)+1(const) x 4224(132*32) matrix, last column for constant subterms (defvar *matrix* (make-array ‘(257 4224) :element-type ‘(mod […]

Serpent Cipher’s Key Schedule in Algebraic Form: with Reduction.

This article is a continuation of the recent mega-puzzler concerning the experiment. This variant will reduce the equations. We will omit printing the input matrix, for brevity. And so: ;; Register bitness. (defconstant +bitness+ 32)   (defun flatten (l) "Flatten a tree." (cond ((null l) nil) ((atom l) (list l)) (t (mapcan #’flatten l))))   […]

Terms -8...8 of the Serpent Cipher's Key Schedule in Algebraic Form.

This article is a byproduct of the recent mega-puzzler concerning the Serpent cipher’s key expansion procedure. Behold: ;; Register bitness. (defconstant +bitness+ 32)   (defun make-reg (reg-name bitness) "Make algebraic representation of a register (bits in descending majority)" (loop for i from (1- bitness) downto 0 collect (make-symbol (format nil "~A~A" reg-name i))))   (defun […]

Serpent in ICE40, Part 2.

This article is a continuation of “Can the Serpent Cipher fit in the ICE40 FPGA?”. Below is a revision of the forward S-box of Serpent from the previous article, with all of the S-Box equations rewritten in the same form, i.e. using strictly AND, OR, and NOT operations, with none having more than six subclauses, […]

Can the Serpent Cipher fit in the ICE40 FPGA?

Current Table of Contents: The question of whether the Serpent cipher could fit in a ICE40 FPGA was posed recently, and my first thought was: why not bake what appears to be the heaviest moving part, and see how many gates it requires? Then it will be possible to estimate whether the entire thing is […]