Technical Details

The algorithm

s-Note exploits a modified version of the F5 algorithm. This version increases the image capacity and maintain it even if the image is reused more than once. The latter feature is not guaranteed by F5 that in general will reduce the capacity when the image is reused many times to save a large message with attachments.

A technical implementation note is available here.

The architecture

The s-Note kernel library is written in C on top of the IJG C-library. The library provides the basic write and read steganography that allows writing and reading a byte stream into a JPG image. The kernel library, compiled for OSX and iOS, is then integrated to a SWIFT and JAVA wrapper that implements the AES encryption algorithm. The wrapper is exploited by the s-Note application that leverage on the standard APP libraries provided by the vendors. The kernel library writing speed is 8 Kb/s, and the reading one is 20 Kb/s.