Published at: 08:01 pm - Monday January 17 2022

This is a continuation of “Pest” v. 0xFC. This is the heaviest revision of the spec to date, approaching a total rewrite. Pedantic details concerning data types and their encodings were added; several algorithms have been reworked and substantially simplified; and a number of ugly gaffes — corrected. There is a pretty-printed mirror of this […]

Published at: 05:01 pm - Friday January 14 2022

This is a continuation of “Pest” v. 0xFD. There are currently two published prototype implementations of Pest: “Blatta” (by thimbronion); and “smalpest” (by jonsykkel). Thank you, prototype implementers! A quite lively Pestnet is now active, and a public log thereof, operated by billymg (WOT) may be seen here. There is a working draft of v. […]

Published at: 10:11 am - Friday November 19 2021

This is a continuation of “Pest” v. 0xFE. There is a pretty-printed mirror of this page. There is now a prototype! (Thank you, thimbronion!) 14 Dec 2021: And there is now a second prototype! (Thank you, jonsykkel!) There is a working draft of v. 0xFC. (Note: it may change without warning!) The document (very much […]

Published at: 09:09 pm - Monday September 06 2021

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! There is now a prototype! (Thank you, thimbronion!) Or even entirely complete. Edit: There is a working draft of v. 0xFD. (Note: […]

Published at: 11:09 pm - Sunday September 05 2021

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 […]

Published at: 10:11 am - Friday November 02 2018

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 […]

Published at: 10:11 am - Thursday November 01 2018

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 […]

Published at: 10:10 pm - Tuesday October 30 2018

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)))) […]

Published at: 04:10 pm - Tuesday October 30 2018

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 […]

Published at: 09:10 pm - Saturday October 27 2018

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, […]