Here is a program were i wrote by my own with Qt for linux to encrypt and decrypt files.
It based on transposition of bits. It splits a file into blocks of a length you can
select between 64, 128, 256, 1024, 2048, 4096, 8192, 16384, 32768, 65536 and
31072 bit length of the key.
if you have 131072 bit length of the key the length of the block is 16284 Byte.
First the program generates a array of numbers from 0 to 131071, every number is only one time in this array:
Code:
values: 0,1,2,3,4,5,6,7,8,9..............................131071
unsigned int keycode[131072] = { 2,4,5,8,9,0,1,6,3,7,131071, 6532......1 } ;
To encrypt the bits:
for (a = 0; a < 131071; a++)
gecodet[a] = array[ keycode [a] ];
to decrypt:
for (a = 0; a <=131071; a++)
array[ keycode[a] ] = gecodet[a];
see more in the source files.
The second step is to permute this array.
The possible number of different results are up to 131072 factorials.
example:
If you would have a file with exactly the same numer of bits were are set(1)
and bits where are not set
Bytes... Bits .......psssible number of permutations
Nibbel........4............6
1.............8............70
2.............16...........12870
4.............32...........6.0108E+8
8.............64...........1.83262E+18
16............128..........2.39511E+37
32............256..........5.76866E+75
64............512..........4.72553E+152
128...........1024.........4.48125e+306
256...........2048.........5.69709e+614
512...........4096.........1.30195e+1231
1024..........8192.........9.61516e+2436
2048..........16384 .......7.41605e+4929
4096..........32768........??????
8192..........65536........?????? (about 45 seconds to generate key)
18384.........131072.......??????(needs several time to generate key!!)
Third step is to permute the bits of the block to encrypt himself.
They will copy to an other place of a second array what will write into a encrypted file.
But first the program will check how long your source file(to encrypt ) is and will change the size of it. The original length of the decrypted file will save at the length of the key-file.
Sorry, some parts are written in german, but i still hope that any people can use it for to make a program where is okay.
All source files are in the Attachments.
The bin file to use with 825KiB was to great for a attachment here.
but:
NEVER WORK WITH TH ORIGINAL FILES: NEVER NEVER NEVER!