Cryptographic algorithms can be broadly classified into two categories: symmetric and asymmetric. Symmetric cryptography relies on a single cryptographic key for both encrypting plaintext and decrypting ciphertext. This key, often referred to as a secret key or shared secret, must be possessed by both parties wishing to communicate securely. For instance, if User A wants to send a private message to User B, both must share the same secret key. User A would generate this key and share it with User B, enabling them to encrypt and decrypt messages between themselves.
Symmetric cryptography is renowned for its speed and efficiency compared to asymmetric cryptography. Modern symmetric algorithms, such as AES (Advanced Encryption Standard), are incredibly secure, making them ideal for bulk data encryption tasks like at-rest database encryption and payment processing applications. Additionally, symmetric encryption plays a critical role in securing communications over the Internet, as seen in HTTPS encryption.
However, symmetric key encryption does come with significant challenges. The first major issue is key management. For a private communication channel between each pair of users, a unique secret key is required, which does not scale well. For example, if User A wants to send a private message to User C without User B being able to read it, User A needs to generate a new secret key for User C. This quickly becomes impractical with more users. Using the formula (N * (N-1))/2, 10 users would need to manage 45 unique keys.
The second issue is key distribution. Before secure communication can begin, the secret key must be shared between users, exposing the key to potential theft. This problem can be mitigated by combining symmetric and asymmetric cryptographic systems. A prominent example of such a hybrid system is TLS (Transport Layer Security), which underpins HTTPS. While TLS and its workings will be covered in another lab, it is important to note how it addresses key distribution issues.
In this lab, you will explore symmetric cryptography using OpenSSL, a widely used software library that provides secure communications over computer networks. OpenSSL is integral to the Internet servers that enable HTTPS, and through this lab, you will gain hands-on experience with how symmetric cryptography functions in real-world applications.
Lab Questions and Answers: 1.1 Core Concepts
1. True or False: Symmetric cryptography is slower than asymmetric cryptography.
A. True
B. False
Answer: B
2. Which of the following is not an application of symmetric cryptography?
A. Encrypting data at rest
B. Identity management
C. Payment systems
D. HTTPS communications
Answer: B
3. How many keys are needed for symmetric cryptography between 15 people?
A. 104
B. 105
C. 107
D. 125
Answer: B