- Java Cryptography Tutorial
- Java Cryptography - Home
- Java Cryptography - Introduction

- Message Digest and MAC
- Java Cryptography - Message Digest
- Java Cryptography - Creating a MAC

- Keys and Key Store
- Java Cryptography - Keys
- Java Cryptography - Storing keys
- Java Cryptography - Retrieving keys

- Generating Keys
- KeyGenerator
- KeyPairGenerator

- Digital Signature
- Creating Signature
- Verifying Signature

- Java Cryptography Resources
- Java Cryptography - Quick Guide
- Java Cryptography - Resources
- Java Cryptography - Discussion

# Java Cryptography - Keys

A cryptosystem is an implementation of cryptographic techniques and their accompanying infrastructure to provide information security services. A cryptosystem is also referred to as a **cipher system**.

The various components of a basic cryptosystem are **Plaintext, Encryption Algorithm, Ciphertext, Decryption Algorithm,** Encryption Key and, Decryption Key.

Where,

**Encryption Key**is a value that is known to the sender. The sender inputs the encryption key into the encryption algorithm along with the plaintext in order to compute the cipher text.**Decryption Key**is a value that is known to the receiver. The decryption key is related to the encryption key, but is not always identical to it. The receiver inputs the decryption key into the decryption algorithm along with the cipher text in order to compute the plaintext.

Fundamentally there are two types of keys/cryptosystems based on the type of encryption-decryption algorithms.

## Symmetric Key Encryption

The encryption process where **same keys are used for encrypting and decrypting** the information is known as Symmetric Key Encryption.

The study of symmetric cryptosystems is referred to as **symmetric cryptography**. Symmetric cryptosystems are also sometimes referred to as **secret key cryptosystems**.

Following are a few common examples of symmetric key encryption −

- Digital Encryption Standard (DES)
- Triple-DES (3DES)
- IDEA
- BLOWFISH

## Asymmetric Key Encryption

The encryption process where **different keys are used for encrypting and decrypting the information** is known as Asymmetric Key Encryption. Though the keys are different, they are mathematically related and hence, retrieving the plaintext by decrypting cipher text is feasible.