-
Notifications
You must be signed in to change notification settings - Fork 0
stegasnographic encryption system
License
cabalamat/stes
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
README file for stes ==================== This is the README file for version 0.1 of stes. by Philip Hunt, <phil@comuno.com> Last altered 26-Jul-2000. Stes is Copyright (c) 2000 Philip Hunt Stes is a steganographic encryption system. It is released under the GNU General Public License, details of which can be found in the file COPYING. What stes does -------------- For details of what I intend stes to be useful for, read the file SPECIFICATION. At the moment (version 0.1) stes only encrypts and decrypts small files. At the moment it's more of a tehnology demonstration program than anything particularly useful. How to compile stes ------------------- This is easy. Just go into the stes directory (the one this file is in) and type ``make'' at the command prompt. This will build the executable ``stesc'' and ``stesd''. The ``stesc'' executable allows you to create a ciphertext file. Eg if you type: $ ./stesc ctf k1 pt1 key2 pt2 key3 pt3 And <pt1>, <pt2> and <pt3> are already-existing files, then stesc will create a ciphertext file <ctf> containing the data in those files, encrypted using keys key1, key2 and key3 respectively. In the file <stesc.cpp> there's a line: #define DEBUG_OUTPUT_CA 1 if this flag is set to 1, then a file <CA.plain> is created which contains debugging information about the Check Area. To switch this off, set the flag to 0. To decrypt from a ciphertext file: $ ./stesd ctf key2 new_pt2 And the newly-created <new_pt2> will be the same as the original <pt2>. How it works ------------ The ciphertext file has two parts -- a Check Area (CA) and a Data Area (DA). The DA actually holds the data and the CA tells stes which bits of the DA are associated with each key. The DA is split up into 50 Data Items (DIs). The CA is split up into 30 Check Items (CIs). Each CI contains: - three 32-bit check numbers - the length in bytes of the data associated with this key - a bitmap which defines which DIs hold the data for this key The 3 check numbers (check1..check3) are multiples of 3 numbers (mult1..mult3). When decrypting according to a key (k), the system will attempt to decrypt each CI with that key. If the decrypted check values are found to be multiples of mult1..mult3 respectively, then the system knows that the key matches that CI (there's a 10^-12 probability of a false positive). Once a matching CI is found, the decryption program can read the rest of the CI: it knows the size of the data, and which DIs hold it. (It is stored from the lowest numbered DI upwards), so it can decrypt them with the key and reproduce the data file, Future additions ---------------- 1. include error-handling code. At the moment stes does very little checking for errors in input, e.g. wrong number of parameters 2. Make the number and size of check items and data items variable. This would mean that a ciphertext file would contain at its start three integers: the number of CIs, and the size of a CI and DI, in bytes. (The number of DIs could be inferred). Thus each ctf could be given sizes of these parameters appropriate to it when it is created. 3. Write code to implement the --alter and --altermk options in the specification. 4. (Possibly) Have some system where the number of CIs isn't known, as they will seemlessly merge into the DA. In this model, DIs start at the end of the file and go sequentially downwards towards the beginning; CIs, as before, start at the begining of the file and go towards the end. 5. Allow a key to be associated with a whole directory structure rather than just a file; perhaps encoding the directories in a format such as tar file format. Write the stes software as a daemon which understands the NFS protocol, so it acts as a steganographic filesystem. ;end
About
stegasnographic encryption system
Resources
License
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published