Enum class security_level

Namespace: keychain

#include "keychain/defines.hpp"

Security Level

Security level constraint for a persona.

Security level is an attribute of persona that specifies which cryptographic parameters should be used during the creation and extending of the persona keychains. Based on the security level, the code selects the cryptoscheme, algorithm, and key length with which the private and public application-level keys are generated. The higher the security level, the longer the chosen key length. The lower security levels cause lighter stream ciphers to be chosen.

In an application’s context, in scenarios where the data is more sensitive, and the risks and magnitude of damage is higher, higher security level is recommended. Blockchain transaction fee costs tend to be higher for higher key lengths, in the interest of being cost effective for the end user, we recommend that you chose the lowest security level that provides the security guarantees needed by your application.

Enum Class Summary

Enum Constant Description

high

High security level

lightweight

Lightweight security level

medium

Medium security level

ultra

Ultra security level

Enum Class Detail

ultra

The security level best used with data that has 10+ year crypto period or for which a stakeholder incurs very high risk of damage if cryptoanalysis is successful. For example, the Ultra level may be appropriate for medical patient data or top secret classified data where the potential for damage remains high for over 10 years.

high

The security level best used with data that has up to a 10 year crypto period or for which a stakeholder incurs high risk of damage if cryptoanalysis is successful. For example, the High level is comparable to the current recommendation for the highest security level in multinational financial institutions and governments.

medium

The security level best used with data that has up to a 5 year crypto period or for which a stakeholder incurs moderate risk of damage if cryptoanalysis is successful. The Medium security level is most appropriate for general enterprise applications or sensitive consumer applications.

low

The security level best used with data that has up to a 2 year crypto period or for which a stakeholder incurs low risk of damage if cryptoanalysis is successful. The low security level is most appropriate for casual every-day consumer chat.

lightweight

The security level best used with data that has transient crypto period on the order of weeks or months or for which a stakeholder incurs very low risk of damage if cryptoanalysis is successful.