The BUGS cryptographic algorithm

The BUGS cipher started as a personal project in 1995 and was created by Sylvain Martinez. A first version was published in 1996 whilst Sylvain was studying at a French computer school. Pressure from the French Domestic Secret service, the DST, forced him to remove his algorithm from the public domain. Crossing the channel allowed Sylvain to resume his work on the BUGS cipher. Sylvain finished its first major redesign in 1997.

By 1999, the cipher started to attract quite a lot of attention by being featured in some magazines and an IEEE newsletter. One person especially, spent a lot of times trying to break the algorithm. That person, “Simon”, introduced himself as a bored teenager and over a few months showed a very high level of understanding of the algorithm itself, highlighting a number of weaknesses and translating most of the algorithm in pure assembler for efficiency and test purposes. Sylvain was responding to each weakness highlighted by the unusually technically talented and politically opinionated teenager, by spending days and night working for an improved algorithm design. This resulted in 10 intense months of work and the latest version of the algorithm (v4.x); as well as the end of the communication with Sylvain's “motivator” who suddenly had personal problems and could no longer spend time on this algorithm.

As much as we would like this “Simon” to be more than just a talented teenager, this is more than unlikely and just an interesting anecdote.

No known cryptanalysis, apart from the one available on this website, has been done on this version of the cipher. Its creation was based on logic, not mathematics and by an amateur who had just finished reading Bruce Schneider’s Applied Cryptography book.


  • BUGS (Big and Useful Great Security) Algorithm V 4.0.0
  • Symmetric Key Algorithm
  • Dynamic Cryptography Algorithm
  • Open Source, GPL
  • Multiplateform application(Unix, Windows)

  • Infinite key length (as big as your integer type you are using), default : 128 bits
  • Bilateral bits swapping with variable windows.
  • Bilateral Pseudo randomly binary operations.
  • Dynamic Variables related to the pwd, such as: Round, Block Shuffle, etc
  • Key buffering against key dependancy attacks
  • Addition of a random number to the key
  • Random Number Generator (RNG) using the ISAAC Algorithm
  • Possibility to specify your own RNG seed
  • 5 differents crypt’s level (allowing you to choose between efficiency and speed)
  • Seed and shuffle functions
  • A clear text can be crypted using its own data
  • 2 methods of execution: direct disk access or memory cache
  • Strong Key generator
  • Login application (only with the Unix application)
  • Secure Chat (Beta version)


BUGS License

This project is “OPEN SOURCE” and under the GNU/GPL License. This means you can use it for free. However you must respect the following conditions: (Based on the cryptlib license example)

  • You must give the authors credit in your software and/or documentation.
  • If you make any changes to the code, you should send a copy of the changes to the author or authors to allow them to integrate them into the code. This is to allow a central consistent version to be maintained.
  • Any software you create with this code may not be merely a set or subset of BUGS, with or without minor added functionality or a different interface. In particular you can’t distribute BUGS (or any modified form of it) as your own encryption product. This is to stop people adding their own wrappers and selling it as “their” encryption product.
These applications do not come with any warranty, Sylvain Martinez cannot be held responsible for any dammages or illegal activities from using any software related to BUGS.

BUGS PROJECT - Latest News

23rd March 2022

  • Updated the Linux Makefile and added the -fcommon flag, this was used by default to allow common global variable in GCC but recent version of GCC changed the default behaviour.
  • In future I might have to look at not using common global variables, this is related to BCRYPTLOG variable it seems.
  • The same change may be needed for other flavor or Unix build.
  • 17th January 2020

  • We have updated the Unix source package for the first time in almost 17 years!
  • We have fixed a number of compilation issues on MacOS as well as added a few installation checks for both MacOS X and Linux
  • The source code compilation has now been tested without any issues on the latest version of MacOS X (Catalina) and Kali Linux
  • The GNU GPL has also been updated from version 2 to version 3
  • 25th February 2015

  • The main site for this project has move to a new location: https://www.elysiumsecurity.com
  • In the process there is now a completely new web site design
  • As a result we had to update the different packages available for download and remove references from old (and soon to be unavailable) website and email addresses.