# Overview Encryption is the process of making data impossible to access or interpret by those who may be looking to 'steal' data. Complex algorithms are used to encode "[[plaintext]]" data into something that is uninterpretable by humans or other systems. Once the data is encoded in this manner it is referred to as "[[ciphertext]]". Each algorithm has an accompanying decryption process to turn the ciphertext data back into plaintext, so it can be used as intended. This often involves "keys", which are input data to pass into the algorithm that allows for reverting back to the original state. # Key Considerations Data can be intercepted when it is moving from one system component to another (known as "[[data-in-transit]]"). This requires encryption to be implemented in whichever [[Communication Protocols]] are being used to transport the data. Additionally, it attempt to be accessed while it is being storage in a [[Databases]] (known as "data-at-rest"). Thus, it is also important to apply encryption on a database itself. # Implementation Details # Useful Links # Related Topics ## Reference #### Working Notes #### Sources #### Topics to Cover - Symmetric Encryption - Asymmetric Encryption - Encryption Algorithms #### Related Topics - [[Hashing]]