Different forms of secrets are used in the field of computer systems. Some secrets
are created by humans (passwords or PINs), others are generated or derived by algorithms
(cryptographic keys). Although we encounter them daily, their meaning and correct use
are often confused. This article provides a brief glossary of the most important terms?
The secrets mentioned are usually stored in a way that is supposed to protect them adequately.
Some keys remain only temporarily stored in memory, others are stored either as files without protection
or with some layer of protection (for example, using a password). Others are stored on specialized
devices, such as HSM (Hardware Security Module). In the case of storage using software, forms
of password databases or specialized software called KMS (Key Management Software) are usually used.
There is a big difference between these levels of protection, which will be described in one of
the next articles.
A secret is any information that must remain private. It can be a password, a cryptographic key, a private key, an API key, or a recovery code, for example. The secret itself does not have to be random - a typical example is a password created by a person. However, cryptographic secrets should be generated in a way that ensures high randomness, unpredictability, and sufficient entropy. KDF or CSPRNG are usually used for this. Terms such as randomness, unpredictability, and entropy can be explained as:
A password is a secret created by a person. It usually contains words, patterns, or personal information, and therefore has lower entropy than a randomly generated value of the same length. A password should never be used directly as a cryptographic key. On the contrary, the password should serve as an input that is converted by a KDF (e.g. Argon2 or PBKDF2) into a key suitable for cryptographic algorithms.
A passphrase is a longer password consisting of several words. Due to its greater length and number of possible combinations, it can provide higher entropy while maintaining good memorability. At the same time, it is possible to deliberately introduce grammatical errors or replace, add or delete certain characters or groups of characters into these words. These changes can increase unpredictability, but they must be used with caution.
A PIN (Personal Identification Number) is a short authentication data, usually 4 to 6 digits long. It is used, for example, to unlock a phone, a payment card, or a hardware token.
Key material is a set of sensitive cryptographic data used to create, derive, store, or use keys. This includes, for example, master keys, private keys, shared secrets, or seeds. It may also include some auxiliary values used when working with keys.
A cryptographic key is a binary value used by a cryptographic algorithm. Unlike a password, it is not intended for a person, but for an algorithm. Keys are usually generated by a cryptographically secure random number generator (CSPRNG) or derived using a KDF. In the case of asymmetric keys, there is also a requirement for additional mathematical properties, so the generator is significantly more complex in this case.
A shared key is known to two or more parties. It is used primarily in symmetric cryptography to ensure confidentiality and data integrity.
Asymmetric cryptography uses a pair of keys. The public key can be safely published and is used, for example, for encryption or verification of digital signatures. The private key must remain secret and is used for decryption or creation of digital signatures. There is a simple relationship between the private and public keys, the public key is generated from the private one. This creates a mathematical link between the keys.
A key pair consists of a corresponding public and private key. The public key is derived from the private key, there is a mathematical relationship between these members of the pair.
The master key from which other cryptographic keys are derived. Other secrets, such as a Seed, can be used as input for the derivation.
A key designed to encrypt other cryptographic keys. It is used in places where a local key database is created for easier management, this database is encrypted using KEK. The key database is relatively small, changing its keys is easy. In contrast, changing the key material for all blocks of data could mean disproportionately high computational requirements.
A key used to encrypt and subsequently decrypt user data.
An initial value from which other keys can be deterministically created. The seed itself is usually not used directly for encryption.
An initialization vector that adjusts the course of the encryption algorithm. It is usually not secret and must meet the requirements of the specific algorithm.
A one-time value (number used once). Usually not secret, but may not be reused where the algorithm does not require it. In the case of a nonce, a good example of the possible impacts of nonce reuse in the AES-GCM algorithm is that in 2016 it allowed decryption of part of cryptographically protected information. The same threat is nonce reuse for ECDSA algorithms, where if the same nonce is used for two texts or two different nonces for one text, it is possible to calculate the private key.
A salt is a public random value added to a password before it is processed. It prevents identical passwords from producing identical results. Pepper is an additional secret kept separately from the password database and provides an additional layer of protection.
An algorithm for deriving cryptographic keys from passwords or other keys. Modern KDFs (e.g., Argon2) intentionally slow down the calculation, thereby increasing resistance to brute force attacks.
A hash function converts input data into a fixed-length fingerprint. It is used to check data integrity and, together with KDFs, also for securely storing passwords.
A Cryptographically Secure Pseudo-Random Number Generator is used for generating keys, nonces, and other cryptographic values. It is an algorithm designed to generate a sequence of bits that behaves in a truly random and unpredictable manner for practical purposes, while its behavior is based on an initial setting. Such a generator must have additional security-enhancing properties. These include resistance to compromise (this applies mainly to hardware generators) and resistance to deriving initialization from the generator output.
It is advisable to keep secrets to yourself. But the description of how secrets are handled is not one of these secrets. If we are not able to understand and use these terms, we risk misunderstandings that can ultimately jeopardize the secure operation of cryptography.
1. Introductory Provisions
1.1. These General Terms and Conditions are, unless otherwise agreed in writing in the contract, an integral part of all contracts relating to training organised or provided by the trainer, Jan Dušátko, IČ 434 797 66, DIČ 7208253041, with location Pod Harfou 938/58, Praha 9 (next as a „lector“).2. Creation of a contract by signing up for a course
2.1. Application means unilateral action of the client addressed to the trainer through a data box with identification euxesuf, e-mailu with address register@cryptosession.cz or register@cryptosession.info, internet pages cryptosession.cz, cryptosession.info or contact phone +420 602 427 840.3. Termination of the contract by cancellation of the application
3.1. The application may be cancelled by the ordering party via e-mail or via a data mailbox.4. Price and payment terms
4.1. By sending the application, the ordering party accepts the contract price (hereinafter referred to as the participation fee) indicated for the course.5. Training conditions
5.1. The trainer is obliged to inform the client 14 days in advance of the location and time of the training, including the start and end dates of the daily programme.6. Complaints
6.1. If the participant is grossly dissatisfied with the course, the trainer is informed of this information.7. Copyright of the provided materials
7.1. The training materials provided by the trainer in the course of the training meet the characteristics of a copyrighted work in accordance with Czech Act No 121/2000 Coll.8. Liability
8.1. The trainer does not assume responsibility for any shortcomings in the services of any third party that he uses in the training.9. Validity of the Terms
9.1 These General Terms and Conditions shall be valid and effective from 1 October 2024.Consent to the collection and processing of personal data
According to Regulation (EU) No 2016/679 of the European Parliament and of the Council on the protection of individuals with regard to the processing of personal data and on the free movement of such data and repealing Directive 95/46/EC (General Data Protection Regulation, hereinafter referred to as "the Regulation"), the processor xxx (hereinafter referred to as "the Controller") processes personal data. Individual personal data that are part of the processing during specific activities at this web presentation and in the course of trade are also broken down.Information about the records of access to the web presentation
This website does not collect any cookies. The site does not use any analytical scripts of third parties (social networks, cloud providers). For these reasons, an option is also offered for displaying the map in the form of a link, where the primary source is OpenStreet and alternatives then the frequently used Maps of Seznam, a.s., or Google Maps of Google LLC Inc. The use of any of these sources is entirely at the discretion of the users of this site. The administrator is not responsible for the collection of data carried out by these companies, does not provide them with data about users and does not cooperate on the collection of data.Information about contacting the operator of the site
The form for contacting the operator of the site (administrator) contains the following personal data: name, surname, e-mail. These data are intended only for this communication, corresponding to the address of the user and are kept for the time necessary to fulfil the purpose, up to a maximum of one year, unless the user determines otherwise.Information about the order form
In case of an interest in the order form, the form contains more data, i.e. name, surname, e-mail and contact details for the organisation. These data are intended only for this communication, corresponding to the address of the user and are kept for one year, unless the user determines otherwise. In the event that a business relationship is concluded on the basis of this order, only the information required by Czech law on the basis of business relations (company name and address, bank account number, type of course and its price) will continue to be kept by the administrator.Information about the course completion document
Within the course, a course completion document is issued by the processor. This document contains the following data: student's name and surname, the name and date of the course completion and the employer's name. The information is subsequently used for the creation of a linear hash tree (non-modifiable record). This database contains only information about the provided names and company names, which may or may not correspond to reality and is maintained by the processor for possible re-issuance or verification of the document's issuance.Rights of the personal data subject
The customer or visitor of this website has the possibility to request information about the processing of personal data, the right to request access to personal data, or the right to request the correction or deletion of any data held about him. In the case of deletion, this requirement cannot be fulfilled only if it is not data strictly necessary in the course of business. The customer or visitor of this website also has the right to obtain explanations regarding the processing of his personal data if he finds out or believes that the processing is carried out in violation of the protection of his private and personal life or in violation of applicable legislation, and the right to request removal of the resulting situation and to ensure the correction.