**************************************** * Original algorithm by Bruce Schneier * **************************************** Note: Check is book named "Applied Cryptography" Its 2th Edition is THE BEST reference available! --- Feedback --- I'm happy to receive your Comments, Questions or Suggestions... Please do not hesitate to contact me: Mail to : Dutra de Lacerda and : Dutra de Lacerda I MAY be late sometimes but always answer to this subject. If this MAY be the case please accept my apologies for the delay. --- Names --- Even versions are development versions (usually not distributed). Odd versions are the ones available. Minor versions have a 'abc' tag. Normal versions have a diferent decimal number. --- History --- (BLOWPAS.zip) *** NOT MINE *** - First assembly implementation by John Lots and Walter van Holst. - Assembly rewrite by Jeroen Pluimers (BLWCBC10) - CBC Mode Implementations by Dutra Lacerda using the BlowPas Unit. (BLWCBC11) + Unit Rewrite improving 15X the Pascal Code (1500%) (BLWCBC12) + Unit Assembly Use improving 5X the previous Pascal Code (500%) and therefore being twice as fast than the BLOWPAS 386 code. (BLCBC13.zip) *** First Public Release *** ! Discovered the Initialization Bug in the Lots-Holst BLOWPAS Unit used in previou versions while making a complete code rewrite. Meaning: PREVIOUS VERSIONS ARE NOT SECURE. + Correction made and Source code released, before its time, to protect users and developers. * Improvements in progress in the assembly and general code to be made public domain when I get TASM 4.0 to make the 386 code (twice faster) and the general routines are converted to Objects. (BLWCBC14) ! Discovered a small Bug still herited from the the BlowPas Unit in the init routine of the algorithm... (again!) This one is smaller than the one corrected in version 1.3 but still affects security though in a much lesser degree ( one of the 4 P-Boxes was not initialized... meaning that the program was still safe, but not as much as desired and/or expected) + Added a random CBC Init Vector. Forgotten in demo version 1.3. This small change makes the cipher text less vulnerable to known text attack. And also means that: THIS VERSION IS NOT COMPATIBLE WITH PREVIOUS ONES. * This also means this version is no longer a demo but a strong cipher program. * Also changed my idea of making the ASM code public. Still waiting to get my hands on TASM 4.0 (This is a hard life!) Now only the TP7 will be public. (BLWCBC15.zip) + Added a New Field in the EOF Header to restore the original encrypted file extension (used only if NO output argument has been declared). + Full COMPATIBILITY with FUTURE versions. + Added I/O check routines and a RunTime Error Trap routine. // This demo is becoming a little bit more than that... Humm! (BLWCB15-a-b-c) = This versions correct small glitches in the interface with the user. = Full COMPATIBILITY with 1.4 and FUTURE versions. ! A 'Writeln' in a wrong place produced a incorrect layout. + Better I/O errors control + Disk Full check added + ErrorLevel file added to benefit Power-Users + Read-me file with important TIPS was also added //Humm... Really this as grown to be more than just a demo (BLWCBC16.zip) *** THIS is NOT an OFICIAL version *** *** Just to experiment before v1.7 *** ... after a 4 years gap... today is 2001/08/24 --- ! Changed Status from Public Domain to OPEN SOURCE. = Cipher Unit was OOPed. = All versions of FPC should compile this... + Processing was further optimized, specially to Optimized CPUs ... 3% when used in 8086 up to 786 (new Athlon family). ... 50% when used 32bit code under W9x (Linux should do better). ! Version 1.6d was truncating some files... (problem in _BlwFile) ... Version 1.6d is correct BUGS ~~~~ ! Pre-1.6g all had a problem with FreeBSD FPC compiler. Solved! - All versions 1.6 are still not compatible with 1.5. Blame seems to be the perfected _BlwFile.pas unit... Why?!? When Solved it will be official BLW-CBC v1.7 ... today is 2001/10/22 ... (BLWCBC17.zip) *** FUTURE OFICIAL VERSION *** //Ok! It is not a demo anymore... lets enhance and move it to Linux. Adding: Parser for Command Line Switches and option control. Adding: TEA and RIJNDAEL routines. <--- End of File --->