
Greetings readers, this is Elettra first release.

I wish you should find this code usefull and improvement, comment and flame can 
be sent to julia@winstonsmith.info, using this public key:

-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.7 (GNU/Linux)

mQGiBEdqIL0RBAChcjI1XSCY6uBj8tt822t3QAIrbUgIL1f+fknclPHPQqjyv+DI
H793WaP2TlJ0mPNJqK2D8pyhO1l8MMzZIzNq+86zblogLklYUo68LbznUPJYNl0f
5Idg6DoNHO7JyXxU1aKq15sLD92izRX5g6Jx7V14DTP/gIB+vZjtcykBZwCgmqC1
YZv/KKVtoSyX/QR0YdJk5ecEAJPurJEm82wshma7RxuOL5UDBhRR4WUBquYa5L35
rTeswSZ/5MFAX4G3VWNb28RZMcDKrd2XIbPA/NI8uVNPEmtmdrF4bA7IGYYPmwuz
SsL3MN0YcDdh8slrqNBuBFNsH95xm4FQKWc+rPPYvZVSsLBosJz9OXPJJYVh61X8
KDSzA/9bovS6D8e02en5t3XScUSBdU4GCHqqgRLpbfTECSXm2KhA2TtnSQ84lqCL
eKs4i955xmF6vQ3bZIATpohSPBz/CdvVPcwNIffVxAwX4bDJDdkXkvd2prWibBJ4
VSzcNVfyvRgYGbrTjq7Aok1f3d/GCQz0oMzGLhs8ZY0xkRNJD7Q0anVsaWEgKGFu
b255bW91cyBpZGVudGl0eSkgPGp1bGlhQHdpbnN0b25zbWl0aC5pbmZvPohgBBMR
AgAgBQJHaiC9AhsDBgsJCAcDAgQVAggDBBYCAwECHgECF4AACgkQ83466PEEGF9S
BgCeIrFkSGSUlOYhXZCNcGmmMrB1h1wAnRUL6+VOQ0SxbYTnTpDIMgGwA3byuQL1
BEdqIL0QC6C3T5hpVjgCTHUjbhu/gql/hHQV0u6av5fDGAYZmQPcDRYb5FP76+Kp
6DDLsSDo95DG1STO8QjRNrrz8tOftC6+F4kMxh1KvcyWEeam8GxYMytpQwDN2Nqr
J3tV9Q24Nv4wUd7vHNqBlcJKeWyQGxBzebelBgAOyMb4YsIGEZJgR4F+o1R2jQYW
rcNPp11aJtxyl2dApaHulzEjMCIDNKnJpbi4lLuqGVaht5NMypxsRnclb1Nw87VY
jrhyJNGT4tojm7ERzJjNLUenTgda788ivWIse68t5WHh7BIGMyNiMKMGjI2R81ei
c+M+O/wL59eh6EGv7V3nZz6qB07f8i3fsNgUF1YFrB2nHtEQTWvb62oGZG+OP5Fp
tGyNhH3HN1VhBRg0eGSEZCGFHZU2chGyOPMqynfsf7o8dkNi8+Ydd0eIn3TlH6of
Xy/TqlQAWS5BUhBX7CEpiO1XPh07o2FLyRPQiElSJ3inCh4sOde/vuFp7RMAAwYL
n3i13almOtHB4qz0J4h/J8TgDaHYmAidYRpr9m6LpKysomHNrtj2U0Am2DmjI25H
LvkOECX9x9yp98WGlzOllZA++YnCSpuG4b03VsLPqmD/r/VdcXrli5cs+UB7O8L2
2P19L+RO89+SieDEKHrKbfkkM3w4OJ+5/mfxejNfoRh0/GBJgoWGj+h/dChmvE7O
alCFDJ5q8Q1QyHMNbMuZxfub+TnpINeHkwiMeaFZRcmaBtjb7T3J+EPf0dUtxXBQ
0F8RzypLEI8FLV/SU+pkynCkp2o6wnRVs8Lms6xci1WE1asr+2Xp9vLN4ppIfo6x
reYKegPcFAw21UuBx6c7OKzEwRFB0OUSGS1Mdzt0ekq2j6Axk5WVShsDcdW+SI5N
fKKqSCWSQE9dbekHUXpBkkbI85uJ2F6QOtMFEJGlw5XTAvJyuamVqXyq6SE5AyVL
bQ9bfCtizrCOn3h547m7nm6RQ+3JfnCVjJqB9eFtP6WFIsDKKIhJBBgRAgAJBQJH
aiC9AhsMAAoJEPN+OujxBBhf16YAnRJLQTTY6JiJGDJG4f2JJFUxereAAJ9hXs0P
/yO+HtkGHnfSuwoaRvSQdw==
=+vKf
-----END PGP PUBLIC KEY BLOCK-----

pub   1024D/F104185F 2007-12-20
      Key fingerprint = 93DC 23EE C779 236A 1E30  BDDB F37E 3AE8 F104 185F
uid                  julia (anonymous identity) <julia@winstonsmith.info>
sub   2976g/2481A545 2007-12-20


Julia is an anonymous collective identity used to disclose information and 
software aimed at protecting human rights on the network.

we focus our work showing the lack of technical bases on law used for regulare 
Internet.

In our view, the pratical demonstration that the real-security, for information 
and for the people, could not be achieved violating the privacy, could improve 
real-security in a way where human rights are protected and not sacrificed.

Some security expert would tell you that the tools needed to counteract 
pedophilia, terrorism and other generic-and-massmedia-savourable crimes in the 
internet era, are: mass interception, trusted computer, user profiling, 
censorship, passwords extortion.

We are trying to show you that crimes counteract on an open source technology 
world like the internet is not possible by the way above exposed. We will show 
you a different path.
 
We disclose such information and software for the use by the every day 
users, not for the underground. We have many ways for evading those 
privacy-threads, but this doesn't brings change in real-world.

WHAT'S ELETTRA ?

Elettra is a software providing plausible deniablale cryptography. support
a dynamic number of files and require a password for each file.

when you need to decrypt a file, the password is able to found in the 
encrypted archive the file related to it.

the security measure is in the protection of the number of files encrypted 
in the archive, because the algorith is think to give a plausible ammission
that the data unencrypted is simple random data, and only one file is 
encrypted in it.

for more information about elettra and julia, http://www.phrack.org the 
issue #65 had an our article about elettra.

WHERE ARE ELETTRA ?

Internet (https) https://www.winstonsmith.info/julia/elettra
Tor (http) http://5zaspldty2calvcq.onion/julia/elettra

anyway, https://www.winstonsmith.info can be not used for further projects,
the only way for verify our source is checking the public key signature.

REQUIREMENTS:

aptitude install cmake libmhash-dev libmcrypt-dev zlib1g-dev

or, get the libraries at:

	http://sourceforge.net/projects/mcrypt
	http://sourceforge.net/projects/mhash
	http://www.zlib.net/
	http://www.cmake.org/HTML/Index.html


HOW TO COMPILE:

user@linz:~/elettra/src$ mkdir build
user@linz:~/elettra/src$ cd build/
user@linz:~/elettra/src/build$ cmake ..
-- Check for working C compiler: /usr/bin/gcc
-- Check for working C compiler: /usr/bin/gcc -- works
-- Check size of void*
-- Check size of void* - done
-- Configuring done
-- Generating done
-- Build files have been written to: /home/user/elettra/src/build
user@linz:~/elettra/src/build$ make
Scanning dependencies of target elettra
[ 16%] Building C object CMakeFiles/elettra.dir/elettra.o
[ 33%] Building C object CMakeFiles/elettra.dir/elettra_hidden.o
[ 50%] Building C object CMakeFiles/elettra.dir/elettra_seek.o
[ 66%] Building C object CMakeFiles/elettra.dir/elettra_utils.o
[ 83%] Building C object CMakeFiles/elettra.dir/elettra_zlib.o
[100%] Building C object CMakeFiles/elettra.dir/elettra_check.o
Linking C executable elettra
[100%] Built target elettra
user@linz:~/elettra/src/build$ 

HOW TO USE:

Elettra has five command: encrypt, decrypt, checkpass, help and example.

is executed with: elettra command [args]

we want to encrypt file /tmp/ls-manpage and /tmp/ps-manpage. 
two file = two password we use "weirdness" and "foxnewsshower", 
the order link:
	ls-manpage (weirdness)
	ps-manpage (foxnewsshower)

$ ./elettra encrypt /dev/shm/out 15% /tmp/ls-manpage::weirdness /tmp/ps-manpage::foxnewsshower

the size of our source file are:

$ ls -l /tmp/ls-manpage /tmp/ps-manpage 
-rw-r--r-- 1 user user  7132 Jan  8 05:57 /tmp/ls-manpage
-rw-r--r-- 1 user user 36287 Jan  8 05:57 /tmp/ps-manpage

the command line specifies 15% of random paddinig. Required args for the 
"encrypt" command, are the output file, the source files and the passwords 
If passwords are not inserted via command line, they are prompted 
interactively.

before the encryption gzip compression is used, the output file is:

$ ls -l /dev/shm/out
-rw-r--r-- 1 user user 42615 Jan  8 06:13 /dev/shm/out

now we have an encrypted archive. the elettra decryption routine takes a 
password and, optionally, a destination directory:

$ ./elettra decrypt /dev/shm/out weirdness /dev/shm/
$ ls -l /dev/shm/
-rw-r--r-- 1 user user  7132 Jan  8 06:32 ls-manpage
-rw-r--r-- 1 user user 42615 Jan  8 06:13 out

if you want to check your passwords, use the command "checkpass":

./elettra checkpass actresss weirdness shoeless
password(s) combinations work ok, with password block of 2304 bytes, use it.

if checkpass or encrypt command receive a bad password sequence, notice 
to the users.

HACKING:

Elettra actually randomize the creation time (ctime) of generated file.
If you want remove this feature, you need to recompile elettra
removing the #define at line 240 in elettra.c

VERIFY:

MD5 (src/CMakeLists.txt) = d4272bbb174daa229b13330efa5d1928
MD5 (src/elettra.c) = 6ac6b4303e67f7a275ad83caa539f0f3
MD5 (src/elettra.h) = 96d0fc271b8ec8e480f507b8e9de72aa
MD5 (src/elettra_check.c) = dd90b9e2e5f47363da1d72863b365de8
MD5 (src/elettra_encrypt.c) = e4387e58aebea9c0ea63715c6403a71e
MD5 (src/elettra_seek.c) = 955756518f04f0c01fa2cc0ecedc8b50
MD5 (src/elettra_utils.c) = 0feea9500d9e9f8d9ac833e01b7c3668
MD5 (src/elettra_zlib.c) = ef5e6c1d98e1031c2d94fbf591e1d104

and this README is signed with our public key, in order to certify those
hashes.

CONTACT:

	julia@winstonsmith.info

THANKS TO:

	All people contributing in julia identity!
