What started as a small improvement on image steganography has grown into a major update of all my published apps, encompassing PassLok Privacy, PassLok for Email, SeeOnce, URSA, plus two new apps: PassLok Image Encryption, and PassLok Human Encryption. This articles summarizes the changes for those who might be curious.
Since there are so many updates, perhaps it is better to group them by categories, and then mention which apps got each update. The main categories are Cryptography, Steganography, and Compatibility.
- New encoding scheme. In previous versions, output was converted into base64 for display piece by piece, and the resulting string was connected had some special characters so the programs could detect encryption mode, embedded Locks, and so forth. In the new versions the conversion into base64 is left for the end, and the special markers are replaced by special bytes which are converted to base64 along with everything else. This allows, for instance, to output into a binary file rather than a text file, which brings a 25% saving in size. Apps that get this improvement: all flavors of PassLok, SeeOnce, and URSA.
- Human mode. The best result of my yearlong quest for the perfect paper-and-pencil cipher, FibonaRNG, has been incorporated into PassLok Privacy and URSA as “Human mode,” which is triggered when the key is made of three parts separated by vertical bar “|” characters. There is also a companion program that breaks down the process step by step. This mode may be useful in situations where one just can’t trust any computer.
- Text hiding has been overhauled to take advantage of the smaller character space afforded by the new encoding scheme (only 64 different characters are used). This results in space and speed savings. Additionally, Spaces encoding has been made harder to detect (all spaces look the same size), and there is a new Invisible mode where the entire encoded string is invisibly placed between two lines that the user can change at will. all flavors of PassLok get this, along with whatever Text hiding functions are also used in SeeOnce and URSA.
- Image hiding: I began fiddling with PassLok Privacy’s image encoding by adding matrix encoding similar to that used in the well-known F5 jpeg method, but then I also found a way to improve F5 to make the presence of hidden content virtually undetectable, plus it can add a second short message, much like Decoy mode in PassLok. A similar treatment is used for both JPG and PNG encoding. Then, I added this feature to URSA and PassLok for Email and reduced the number of steps needed in all cases. For good measure, the algorithm is also used in a standalone app, plus a library that others can use to add this powerful image steganography method to their own programs.
Compatibility and User Experience:
- Some features, such as chat, were not entirely compatible across all my apps; now they are. PassLok Privacy is the compatibility hub, and it can encrypt and decrypt anything that PassLok for Email, SeeOnce, and URSA can encrypt or decrypt.
- A big update would not really be so if there has not been a reduction in the number of buttons to be confused by or the number of clicks needed to do certain things. We’ve got you covered there as well.
- All apps have grown a little as a result, especially URSA, which has grown by nearly 38% (for a big increase in capability), but the growth in general has been slight, and all apps are still less than 750 kB before compression. After zipping, even the largest ones are below 300 kB.