UniCrypt is a Mathematical Crypto-Library for Java.
UniCrypt(tm): Cryptographic framework allowing the implementation of cryptographic protocols, e.g. e-voting.
To speed up HybridRandomByteSequence under linux install rng-tools. Can be verified by cat /dev/random.
- Full coherence with mathematical and cryptographic concepts
- Consistent and self-explanatory nomenclature
- Clean and intuitive APIs
- Generic types
- Consistent coding style
- Immutable objects only
- Design patterns
- No cryptographic black-boxes(e.g. random generator)
- Java 7 compatibility
The System Architecture consists of three layers:
- Layer 0 (Utils):
This layer has a collection of utility functions which are:
- Helper this includes (converter, aggregator, immutable array, byte array, alphabet, permutation, point, polynomial, tree, ...)
- Random
- Layer 1 (Mathmatics) :
- It includes Algebra package with different algebraic structures (set, monoid, semigroup, group, semiring, ring, field, finite field, prime field, polynomial field, elliptic curves, product set, N, Z, Zn, Zn, Gq, ...).
- It also includes mathematical functions, There are a large set of predefined functions such as AdapterFunction, AdditionFunction, ConstantFunction, ConvertFunction, EqualityFunction, HashFunction, IdentityFunction, InvertFunction, ModuloFunction, MultiplicationFunction, PermutationFunction, PowerFunction, SelectionFunction.