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

Lab Questions and Answers: 1.2 Guided Exercise

1. What is the email address in the From line of the secret message?
Answer: john@localhost
Hint: Send mail from the John user, exit and open mail. 
2. What is the name of the OpenSSL utility used to encrypt and decrypt messages in this lab?
Answer: pkeyutl
Hint: Look for the command used to decrypt and encrypt message.
3. What is the difference between encoding and encrypting?
A. Encoding transforms, Encrypting decodes
B. Encoding decodes, Encrypting encodes
C. Encoding transforms, Encrypting obfuscates
D. Encoding obfuscates, Encrypting transforms
Answer: C

4. True or False: In this exercise, keyforjohn.key and keyfromcybrary.key are the same.
A. True
Answer: B. False
Hint: Cause these two are generated for two different users.

Lab Questions and Answers: 1.3 Challenge Exercise

In this challenge exercise, you will use OpenSSL to decrypt a secret message. In the open terminal window, type ./.challenge.sh and press Enter, then check your mail. You should find a key and a secret message (message 2 and 3). Decode the key and the message, then decrypt the message.

1. What was the secret message?
Answer: The Scott Farkus Affair 1983
Hint: Use mail to find cybrary key and and the message from sally, decrypt the message and key and use openssl to decrypt the message.

Conclusion:

This exercise demonstrates the practical application of symmetric cryptography in a real-world scenario. By completing these steps, you have successfully generated a secret key, securely shared it between two users, and used it to encrypt and decrypt a message. The process illustrates the importance of secure key exchange, the use of encoding for safe transmission of cryptographic data, and the separation of encoding and encryption concepts. Through hands-on use of common Unix/Linux tools like OpenSSL, base64, and mail, you've gained practical experience with the fundamental concepts of symmetric cryptography. This exercise mirrors real-world applications in secure communications and data storage, providing a foundation for understanding more advanced topics in information security.