ThreefishEngine Class

Implementation of the Threefish tweakable large block cipher in 256, 512 and 1024 bit block sizes.

Definition

Namespace: Org.BouncyCastle.Crypto.Engines
Assembly: BouncyCastle.Cryptography (in BouncyCastle.Cryptography.dll) Version: 2.3.0-beta.187+d6da5648ae
public class ThreefishEngine : IBlockCipher
Inheritance
Object    ThreefishEngine
Implements
IBlockCipher

Remarks

This is the 1.3 version of Threefish defined in the Skein hash function submission to the NIST SHA-3 competition in October 2010.

Threefish was designed by Niels Ferguson - Stefan Lucks - Bruce Schneier - Doug Whiting - Mihir Bellare - Tadayoshi Kohno - Jon Callas - Jesse Walker.

This implementation inlines all round functions, unrolls 8 rounds, and uses 1.2k of static tables to speed up key schedule injection.
2 x block size state is retained by each cipher instance.

Constructors

ThreefishEngine Constructs a new Threefish cipher, with a specified block size.

Properties

Methods

EqualsDetermines whether the specified object is equal to the current object.
(Inherited from Object)
FinalizeAllows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.
(Inherited from Object)
GetBlockSize 
GetHashCodeServes as the default hash function.
(Inherited from Object)
GetTypeGets the Type of the current instance.
(Inherited from Object)
Init Initialise the engine.
MemberwiseCloneCreates a shallow copy of the current Object.
(Inherited from Object)
ProcessBlock(ReadOnlySpanByte, SpanByte) 
ProcessBlock(Byte, Int32, Byte, Int32) 
ToStringReturns a string that represents the current object.
(Inherited from Object)

Fields

BLOCKSIZE_1024 1024 bit block size - Threefish-1024
BLOCKSIZE_256 256 bit block size - Threefish-256
BLOCKSIZE_512 512 bit block size - Threefish-512

See Also