Crate cosmian_findex
source ·Expand description
Findex is a cryptographic algorithm allowing to securely maintain an encrypted index.
It uses a generic Dictionary Encryption Scheme (Dx-Enc) as building block to implement a
Multi-Map Encryption Scheme (MM-Enc). A Graph Encryption Scheme (Gx-Enc) is then built on top
of the MM-Enc scheme and finally an Index
trait built on top of this Gx-Enc scheme allows
indexing both Data
and Keyword
s.
The Index
traits is not a cryptographic one. It is used to simplify the interface and to hide
the details of the cryptographic implementation when it is possible.
Modules
Macros
- Hashes the given bytes to the desired length using the KMAC algorithm and the given key.
Structs
- Chain Table representation.
- A
Data
is an arbitrary byte-string that is indexed under some keyword. - Value stored inside the EDX. It is composed of:
- Implementation of the Entry Table EDX.
- Findex type implements the Findex algorithm.
- A
Keyword
is a byte vector used to index other values. - The label is used to provide additional public information to the hash algorithm when generating Entry Table UIDs.
Enums
Constants
- Length of the blocks stored in the Chain Table.
- Value stored in the Entry Table by Findex.
- Size of the Findex tag hash used. Only collision resistance is needed: 128 bits should be enough.
- Number of blocks stored per line of the Chain Table.
- Length of the MAC tags used.
- Length of the nonces used.
- Seed used to derive the keys. Only collision resistance is needed: 128 bits should be enough.
- Length of the symmetric encryption keys used.
- Length of the user key.
Traits
- User-friendly interface to the Findex algorithm.
Type Aliases
- Alias used to represent a Findex error that does not originate from a callback.