Photon4K - 32768-bit encryption symmetric cipher
* Development version command line utility *
Windows x86/x64 (32 and 64bit)
July 20, 2016
Copyright 2016
INTRODUCTION:
Photon4K is intended to be a high-security "symmetric" cipher designed primarily for archival purposes. It is an attempt to take established, proven cryptographic techniques to another level to contend with powerful quantum and conventional computing resources rapidly being developed.
A Symmetric cipher, or symmetric-key algorithm ( http://en.wikipedia.org/wiki/Symmetric-key_algorithm ), is one in which the same key (password or passphrase) is used to both encrypt and decrypt the data.
There are numerous considerations involved in securing data far beyond the scope of this introduction, including passphrase security, passphrase selection, use of sensitive data in an unencrypted state, sensitivity to various types of attacks, "backdoors", and much more. There are also various algorithm design considerations such as computing resource demands (CPU, memory, portability, etc.), and of course performance speed.
Photon4K willingly acknowledges there are inherrent security risks, which may include in using a particular passphrase, voltage and computing demands, etc, system spyware, etc. The algorithm is also more resource intensive when compared with AES256 and similar standard encryption algorithms. In fact, the demand on computing resources to generate the working state data, is intentionally resource-intensive, providing a measure of protection against "dictionary"attacks, hence the speed presets (see enum SPEED_PRESET and Globals.c).
This development applicatin is split into two "layers", the command-line interface (Photon4KCLI.c) and the algorithm implementation (Photon4K.c). This abstraction more easily facilitates, for example, incorporation into a GUI, a library, or as functionality in another application invisible to the user.
It should be noted the commmand line interface is fairly basic, as it is intended for development/testing purposes. The passphrase is entered in visible plain text via the '-p' switch, clearly not the most secure method in an enterprise environment, but fine for testing and most private single-user applications. While the key supplied to the algorithm can be any 4KB binary data, the passphrase, practically speaking, is limited to characters entered (or pasted) onto the command line.
Unlike more simple algorithms, Photon4K leverages multiple layers of randomization techniques including:
- A relatively large, initially static array of random data (currently 256kb)
- A relatively large, initially static array of random unsigned, 64bit primes (also curently 256kb, or 32,768 primes)
- Numerous iterations of randomization operations leveraging the above arrays
- Arrays of 16-bit permutations (chained, and changing throughout the encryption/decryption process)
- Leveraging the long-established Blum-Blum-Shub pseudorandom number generation algorithm http://en.wikipedia.org/wiki/Blum_Blum_Shub
- Use of the Miller-Rabin Primality Test ( http://en.wikipedia.org/wiki/Miller%E2%80%93Rabin_primality_test ), a probabilistic prime determination algorithm to generate very large primes (512bit by default, up to 2560bit, currently). These primes are used to "fuel" our implementation of the Blum Blum Shub pseudorandom number generation algorithm.
- Scratch-written BigInteger math library to eliminate dependency on another
Initial development work was done in Microsoft C# .NET, which is a powerful development enviroment, but is proprietary and slow. THe project was quickly moved to ANSI-C for reasons of portability, performance, and to ease possible future implementation in embedded systems.
LICENSE:
This algorithm and application is licensed under the GNU Public License (GPL):
http://en.wikipedia.org/wiki/GNU_General_Public_License
http://www.gnu.org/licenses/gpl.html
http://www.gnu.org/licenses/gpl.txt
WARRANTY:
This is a development version. No warranty or guarantee is expressed or implied, use at your own risk. Please report bugs encountered on the SourceForge site at http://sourceforge.net/projects/photon4k