Skip to content

tfcrypt -- high security Threefish encryption tool.

Notifications You must be signed in to change notification settings

strlcat/tfcrypt

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

71 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

tfcrypt -- high security Threefish encryption tool.

tfcrypt is a modern, dd(1)-like raw data manipulation tool with embedded strong encryption.
It has precise IO layer inside which can be used to encrypt files, disks and other media,
as well as to manipulate raw data directly, dd(1) style.

tfcrypt uses Skein and Threefish - public domain SHA3 candidate from famous,
well recognised cryptographer Bruce Schneier, author of famous, still uncracked
Blowfish and Twofish ciphers, which are in use still up to today.

tfcrypt is actually a frontend for Threefish with (by default) XTS mode of operation.
As a key it uses either password or keyfile, which is then hashed many times
with Skein hash function.

This program is incompatible with older, "tf1024" tfcrypt version. This version aims to
provide a portable encryption tool to encrypt fixed media such as disks and archive files,
as well as to provide decades long privacy for encrypted data.
Supported modes of operation: CTR, ECB, CBC, XTS and arbitrary long keystream.

Additionally, this version provides a way to virtually "extend" key size to 1280 bits,
by enabling "fullkey" option or changing "do_full_key" default setting in tfcrypt_defs.h.
In this mode, tweak is ignored, and filled with extended key material.

THREEFISH NOTES

Please note that this encryption software includes Threefish cipher, which is terribly
slow on 32 bit systems. This way, it cannot be efficiently used on pure 32 bit machines.

Threefish contained here is stripped off of it's tweak property, thus, it is turned into a
regular block cipher. To add tweakability, XTS modes of operation is used.
Default wide block size is 4096 bytes.

SKEIN NOTES

Unlike "tf1024" implementation, this Skein's MAC feature simply copies user rawkey into
Skein structure context without preprocessing as defined by official Skein implementation.
If you never used MAC feature, then you will get the same hashes as the official Skein.
If you did, then possibly you used it together with encryption. Since this implementation
employs longer key lengths, it's anyway time to move.

Author believes that there is no problem with just copying raw MAC key versus preprocessing.
A preprocessing is already done by separate Skein sequential invocations on the user long
key material. The code becomes simpler and easier to understand.

Apart from that, the Skein implementation here is fully conformant to the official one.

TODO

Add test vectors from older version, as well as test data for all modes of operation there.

LICENSE

This tfcrypt, unlike it's previous version, is copyrighted:

	Copyright (C) Andrey Rys <[email protected]>, 2012-2019.

It maybe freely used by anyone who agrees to the terms and conditions of the MIT license.

tfcipher code parts used are public domain, and maybe reused freely without license.

Releases

No releases published

Packages

No packages published