@blue_devil
It would be nice if Cyph1024V2.zip was commented in English.... I always use Google Translate to translate comments in source codes but, It is never ...or almost never what the Author intended to say especially with technical jargon ..... Google Translate is not very God at that!
In chance of an English version in the future?
I didn't comment any of it, with Cyph256 , Cyph512 , Cyph1024. The two latter are just expansions of Cyph256.
All three above and Silly-Cypher are on the FNXBasic forum.
http://www.fnxbasic.com/cgi-bin/yabb2/YaBB.pl?num=1246910618(Silly-Cypher just takes the message and breaks it into 2 bit chunks and puts a random bit in front of each to make 3 bits and then replaces the 3
bits with one of 8 somethings you type in the 8 edit boxes.)
For the Cyph, 256 , 512 , 1024
The code starts with creating all the controls.
The interpreter doesn't have a Win_Proc or Win_Main , it just loops until a control is clicked and then jumps to the sub you set it to goto.
The subroutines are are pretty self explanatory
Generator() creates the key
Cypher() cyphers the message
DeCypher() decyphers the message
Saver() saves the key to file
Basically you don't actually need the TabCtrl with 16 pagres and 1024 edits,
I put that in there in case you don't like using randomized numbers.
As random numbers are generated by an algorithim and reproducable. you could write you own key.
Basically it goes like this:
1)Get user message
2)Turn message into binary
3)Break user message into message_bit_block lengths
4)Generate a garbage_bit_block, greater than the length of the message_bit_block
5)Take the users scramble order , ( any combination of 1 to length of garbage_bit_block. (but of course each must be unique.))
6)Scramble the message_bit_block into the garbage_bit_block.
7)Go back to step 4 until the last message_bit_block is processed.

output the scrambled message.
With the above steps it should be easy to put into *.ASM
WRANING!! The program reuses the same key for each garbage_bit_block.
The key is saved as a *.key file and is just plain ascii text.
(you got to put your own key cypher in it. If i put it in the code then anyone could hack it.)