About Gecko

Home page

 

Gecko Architecture

 

Modes: CBC, CTR, ECB, PCBC, CFB, OFB

 

Test Harnesses and Sample programs

 

Downloads

 

Building the Software

 

About Gecko

 

 

I began work on Gecko in July of 2019 and finished in December of this same year.

Gecko, along with another project I was working on at the time, started out as ‘fun projects’. But I quickly began to see how Gecko’s performance and size compared favorably to other well-known encryption algorithms. By about September of 2019, I got serious about the design and portability of Gecko and began writing the test harnesses you see presented here today.

 

Originally, while Gecko’s size and speed compared favorably to its benchmark AES, diffusion/confusion was still an issue. To improve Gecko’s D/C, I wrote a simulated annealing harness (not provided,) that optimized the calling sequence of the cipher’s six functions: GKO_SubBytes, GKO_SboxMaskBytes, GKO_CipherMaskBytes, GKO_ShuffleBits, GKO_ShuffleBytes, and GKO_XORBytes.

 

After maybe three days of continuous execution, on multiple machines, I arrived at the optimum sequence.

Similarly, a choice had to be made for the number of bits to rotate in the GKO_ShuffleBits function. I had originally selected (somewhat randomly) three bits to rotate, and that yielded, along with the above mentioned optimization, fairly good D/C, but slightly worse than AES. I then again constructed a simulated annealing harness to capture the proper number of bits to shift which would yield the best D/C. Coupled with the above calling sequence optimization, the algorithm selected two bits as yielding the best D/C. At this point we were now meeting or beating the D/C provided by AES.

About The Author

I began programming in the late 70’s on an HP 42c calculator. Fell in love with it, and when available, rushed out to get myself a Commodore VIC 20 in about 1980.

The VIC-20 shipped with 5 KB RAM, but 1.5 KB of this was used by the system for various things. Only 3,583 bytes of BASIC program memory for code and variables was actually available to the user of an unexpanded machine. In this 3.5K of memory, I wrote a game and a word processor!

 

When the first IBM PC I shipped, I was there to grab one. Taught myself C, and landed a job at Personal Cad Systems or P-CAD as a professional programmer.

I spent the next 38 years honing my skills.

 

Currently, I hold two US issued software patents, one of which is issued internationally. I have 3+ decades experience as a software architect and 16 years as an intellectual property researcher specializing in security. I've delivered 1/2 a dozen shrink-wrap retail software packages to market and spent 3 years at Xerox's Palo Alto Research Center (PARC).

One of my inventions was FAXGrabber. It was the first PC software to combine the then new PC Fax boards with Optical Character Recognition. Bill Gates thought it was so cool he personally demoed it at COMDEX ’92 https://www.youtube.com/watch?v=95b7QrRUfBE

 

I welcome all questions on Gecko and its design.

I can be reached:

Discuss on Facebook: https://www.facebook.com/Tomasello.Software

Email: luke@tomasello.com

GetHub: https://github.com/Luke-Tomasello/Gecko-Encryption