FastFlex

A New Fast Flexible Cryptographic Function
FastStream192
FastHash256
KeyHash256
FastFlex
QuickStream192
WeakStream48
Binaries + Source + Paper

 


What is FastFlex?
FastFlex is a New Cryptographic Function, which uses a New Approach to Construct a Secure Cryptographic Function which performs considerably fast on processors of varying word length and architectures (Also ASIC/FPGA Implementations). FastFlex uses only four basic operations, Word Additions, Word XORs, Word Rotations and Word Multiplications, found in Instruction Sets of almost all processor architectures. FastFlex also has a manageable internal state size of 256 bits. A single 1KB s-box is used. The function accepts 8 Words as inputs and as output produces 8 Words.

What is KeyHash256?
KeyHash256 is a keyed hash function constructed based on FastHash256. at 12.4 cycles/byte on an AMD Athlon XP, at 11.8 cycles/byte on an AMD Athlon A64 and at 17.2 cycles/byte on an Intel P4. A detailed description can be found in the FastFlex Paper. It outperforms AES-Hash by a factor of 2.5

What is WeakFlex?
WeakFlex is a variant of FastFlex using the same design principles as FastFlex but designed to promote cryptanalysis of constructions similar to FastFlex in academic circles. The reduced state size of 64-bits facilitates easy analysis. WeakFlex can be easily implemented on 8-bit platforms (Microcontrollers, etc.) WeakFlex modifies 8-bit bytes instead of 32-bit words. It accepts 8-bytes as input and produces an 8-byte output.

What is FastStream192?
FastStream192 is a New, Efficient, High Speed Stream Cipher / Random Number Generator (RNG). FastStream192 accepts a 192-bit Key (Six 32-bit Words) and a 64-bit Nonce and produces a unique keystream of period (2^64) bits for every unique Key-Nonce Pair. No Expensive key-setup is required, no lookup tables need to be computed, no key expansion is necessary. Keystream generation can begin after four rounds of FastFlex.

Performance Claims: FastStream192 can generate keystream at 12.01 cycles/byte on an AMD Athlon XP, at 11.6 cycles/byte on an AMD Athlon A64 and at 16.9 cycles/byte on an Intel P4. Further results can be found in the FastFlex Paper. It rips apart both RC4 and AES-CTR when it terms of speed.

Security Claims: No attack requiring lesser effort than a brute force key search has been found on FastStream192. FastFlex ans thus FastStream192 are designed to be highly resistant to Linear & Differential Cryptanalysis.

What is WeakStream48?
WeakStream48 is a stream cipher constructed using WeakFlex. WeakStream48 is easy to implement on 8-bit microcontrollers / microprocessors limited to 48-bit key size. There were no intentions to make WeakStream48 a secure cipher (A happy coincidence). Its primary purpose was to facilitate cryptanalytic study of FastStream192 type stream ciphers.

Security Claims: No attack requiring lesser effort than a brute force search has been found on WeakStream48.

The FastFlex Paper Can be downloaded here:
cipher_ieee.pdf
(Complete Paper with a brief Summary of the Statistical Tests Carried out Using NIST Statistical Test Suite)

cipher_short.pdf
(Shorter Version, without summary of Statistical Tests, KeyHash256 and WeakFlex)

source.zip
(The Source Code in C for compilation using GCC)

What is FastHash256?
FastHash256 is a New Hash Function constructed using FasFlex, which accepts a finite length stream and generates a 256-bit message digest. FastHash256 has high Collission Resistance and has excellent avalanche properties.

Performance Claims: FastHash256 hashes at 12 cycles/byte on an AMD Athlon XP, at 11.5 cycles/byte on an AMD Athlon A64 and at 16.8 cycles/byte on an Intel P4. Further results can be found in the FastFlex Paper. It easily outperforms AES-Hash by a factor of 2.5

What are QuickFlex and QuickStream192?
QuickFlex is a reduced round version of FastFlex. Although the number of rounds in QuickFlex have been reduced to half, it is still secure by a comfortable margin. Our cryptanalytic efforts have been able to break not more than 2 Rounds of the HashCore used in FastFlex. Whereas FastFlex uses 8 iterations of the HashCore in every round, QuickFlex uses only 4 iterations. So as of now, both QuickFlex and FastFlex are secure. QuickStream192 uses QuickFlex instead of FastFlex. It thus encrypts at 7 cycles/byte on an AMD Athlon XP, at 6.8 cycles/byte on an AMD Athlon A64 and at 10.1 cycles/byte on an Intel P4. Further results can be found in the FastFlex Paper. It easily outperforms AES-CTR by a factor of 3

NOTE: Performance Claims made Using the Reference SourceCode compiled Using GCC 3.4.2 with -O3 and support for SSE/3DNow Extended Instruction Sets Enabled.

Filelist

Note: The construction for FastHash256 in the source code provided is flawed. A correction will be posted soon.

FastFlex : A New Fast Flexible Cryptographic Function
(Technical Paper, IEEE Format)
Download (512 KB)
Extension: .pdf
A Detailed description of the FastFlex Cryptographic function, FastStream192, FastHash256, KeyHash256, WeakFlex, WeakStream48, QuickFlex, QuickStream192, Comparisons with AES, Results of Statistical Analyses with NIST Statistical test Suite, Comparison with DRBG using SHA-512 and Full C Source Code Listing.
FastFlex (Short Paper, IEEE Format)
Download (180 KB, Suggested Reading)
Extension: .pdf
A Detailed description of the FastFlex Cryptographic function, FastStream192, FastHash256, QuickFlex, QuickStream192 and Comparisons with AES. A shorter version of the full paper.
Source Code
Download (11 KB)

Extension .zip
All C Source files required for compiling the project

Source Code with Win32 Binaries
Download (73 KB)

Extension: .zip
All C Source files required for compiling the project and optimized Win32 Binaries for Intel P4 and AMD (using GCC -O3, SSE/3DNow Enabled)

FastStream192 (Source + Win32 Binaries)
Download (34 KB)

Extension : .zip
Files in Archive: FastStream.c, Interface.h, Interface2.h, Qbox.h, FastStreamIntel.exe, FastStreamAMD.exe, FastStreamEncrypt.c, FastStreamEncrypt.c
FastStreamEncrypt is the FileEncryption Utility and FastStreamIntel/AMD.exe are keystream generation utilities.

FastHash256 (Source + Win32 Binaries)
Download (25 KB)

Extension: .zip
Files in Archive: FastHash.c, , Interface.h, Interface2.h, Qbox.h, FastHashAMD.exe, FastHash Intel.exe
FastHashIntel/AMD.exe are file hashing utilities

QuickStream192 (Source + Win32 Binaries)
Download (26 KB)
Extension: .zip
Files in Archive: FastHash.c, , Interface.h, Interface2.h, Qbox.h, QuickStreamEncrypt.exe
QuickStreamEncrypt.exe is a file encryption utility
WeakStream48 (Source + Win32 Binaries)
Download (10 KB)
Extension: .zip
Files in Archive: FastHash.c, , Interface.h, Interface2.h, Qbox.h, QuickStreamEncrypt.exe
QuickStreamEncrypt.exe is a file encryption utility
Paper + Source + Win32 Binaries
Download (692 KB)
Extension: .zip
All of the Above

FastFlex and all Constructions using it are free for use. They have not yet been patented and will never be. If you have any queries regarding
this project, get in touch with the Admin.

We are currently looking for good GUI designers who can create a front end for FastStream192, FastHash256 and KeyHash256 for
Windows/*nix platforms
(GUIs are something I have never been able to figure out )

News:

27/03/2006 Submission to SAM '06 Accepted. SAM '06 Conference Website
20/03/2006 FastStream192 Judged "Best Overall Submission" at Solutions '06, Pune, India
07/03/2006 FastFlex Paper Published at Infosec Security Writers, www.infosecwriters.com
http://www.infosecwriters.com/text_resources/pdf/Cipher_Infosec.pdf
02/03/2006 FastFlex Paper Selected for Publication in IETE Journal Newsletter, Military HQ Of War Chapter, India

Project Admin:
Ashish Sharma,
Electronics & Telecom
Army Institute of Technology
Pune, India - 411015
Phone: 919823955844
Mail: ashish.sharma.ait@gmail.com