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, […]
Published at: 12:10 pm - Saturday October 27 2018
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 […]
Published at: 05:09 pm - Monday September 24 2018
Linux. ( 1991 — 2018. ) No disrespect is intended for Stepan Mitrofanovich Gudimov (1913 – 1941), died heroically in aerial ramming maneuver… whose beautiful tomb I stole here. But IMHO a dead project of Linux’s stature deserves a tomb, even if only an imaginary and stolen one. Especially a stolen project…
Published at: 10:09 pm - Monday September 17 2018
This is a simple library for Ada, to replace the asinine GNATSockets item. Supported: Unixlike OS back-end. Open/close datagram socket on given local IP and port. Transmit datagrams of fixed length. Receive (blocking) datagrams of fixed length, rejecting shorts, saving the originator’s IP/port. Handle all possible OS error conditions. Permanently unsupported: Microshit back-ends. TCP. IPv6. […]
Published at: 09:07 pm - Monday July 30 2018
This article is part of a series of hands-on tutorials introducing FFA, or the Finite Field Arithmetic library. FFA differs from the typical “Open Sores” abomination, in that — rather than trusting the author blindly with their lives — prospective users are expected to read and fully understand every single line. In exactly the same […]
Published at: 01:06 pm - Saturday June 09 2018
Edit (January 2023): This machine is long out of print, but NSA lackeys continue to spread “squid ink” regarding the supposed harmlessness of its Fritz chip. So, for the thick: Yes, it’s a backdoor. The CR50 bypasses any user-installed OS, and can extract arbitrary secrets from disk and memory (or silently implant “incriminating” info) via […]