rspec/rules/S3329/rationale.adoc
Loris S 981e54d330
Modify S3329: Learn-As-You-Code migration (#2293)
## Review

A dedicated reviewer checked the rule description successfully for:

- [x] logical errors and incorrect information
- [x] information gaps and missing content
- [x] text style and tone
- [x] PR summary and labels follow [the
guidelines](https://github.com/SonarSource/rspec/#to-modify-an-existing-rule)

---------

Co-authored-by: hendrik-buchwald-sonarsource <64110887+hendrik-buchwald-sonarsource@users.noreply.github.com>
2023-06-28 17:25:56 +02:00

23 lines
1.0 KiB
Plaintext

Encryption algorithms are essential for protecting sensitive information and
ensuring secure communications in a variety of domains. They are used for
several important reasons:
* Confidentiality, privacy, and intellectual property protection
* Security during transmission or on storage devices
* Data integrity, general trust, and authentication
When selecting encryption algorithms, tools, or combinations, you should also
consider two things:
1. No encryption is unbreakable.
2. The strength of an encryption algorithm is usually measured by the effort required to crack it within a reasonable time frame.
In the mode Cipher Block Chaining (CBC), each block is used as
cryptographic input for the next block. For this reason, the first block
requires an initialization vector (IV), also called a "starting variable" (SV).
If the same IV is used for multiple encryption sessions or messages, each new encryption of the same
plaintext input would always produce the same ciphertext output. This may allow
an attacker to detect patterns in the ciphertext.