51 broke -E logic completely, rewise it
[tfcrypt.git] / README
1 tfcrypt -- high security Threefish encryption tool.
2
3 tfcrypt is a modern, dd(1)-like raw data manipulation tool with embedded strong encryption.
4 It has precise IO layer inside which can be used to encrypt files, disks and other media,
5 as well as to manipulate raw data directly, dd(1) style.
6
7 tfcrypt uses Skein and Threefish - public domain SHA3 candidate from famous,
8 well recognised cryptographer Bruce Schneier, author of famous, still uncracked
9 Blowfish and Twofish ciphers, which are in use still up to today.
10
11 tfcrypt is actually a frontend for Threefish with (by default) XTS mode of operation.
12 As a key it uses either password or keyfile, which is then hashed many times
13 with Skein hash function.
14
15 This program is incompatible with older, "tf1024" tfcrypt version. This version aims to
16 provide a portable encryption tool to encrypt fixed media such as disks and archive files,
17 as well as to provide decades long privacy for encrypted data.
18 Supported modes of operation: CTR, ECB, CBC, XTS and arbitrary long keystream.
19
20 Additionally, this version provides a way to virtually "extend" key size to 1280 bits,
21 by enabling "fullkey" option or changing "do_full_key" default setting in tfcrypt_defs.h.
22 In this mode, tweak is ignored, and filled with extended key material.
23
24 THREEFISH NOTES
25
26 Please note that this encryption software includes Threefish cipher, which is terribly
27 slow on 32 bit systems. This way, it cannot be efficiently used on pure 32 bit machines.
28
29 Threefish contained here is stripped off of it's tweak property, thus, it is turned into a
30 regular block cipher. To add tweakability, XTS modes of operation is used.
31 Default wide block size is 4096 bytes.
32
33 SKEIN NOTES
34
35 Unlike "tf1024" implementation, this Skein's MAC feature simply copies user rawkey into
36 Skein structure context without preprocessing as defined by official Skein implementation.
37 If you never used MAC feature, then you will get the same hashes as the official Skein.
38 If you did, then possibly you used it together with encryption. Since this implementation
39 employs longer key lengths, it's anyway time to move.
40
41 Author believes that there is no problem with just copying raw MAC key versus preprocessing.
42 A preprocessing is already done by separate Skein sequential invocations on the user long
43 key material. The code becomes simpler and easier to understand.
44
45 Apart from that, the Skein implementation here is fully conformant to the official one.
46
47 TODO
48
49 Add test vectors from older version, as well as test data for all modes of operation there.
50
51 LICENSE
52
53 This tfcrypt, unlike it's previous version, is copyrighted:
54
55         Copyright (C) Andrey Rys <rys@lynxlynx.ru>, 2012-2019.
56
57 It maybe freely used by anyone who agrees to the terms and conditions of the MIT license.
58
59 tfcipher code parts used are public domain, and maybe reused freely without license.