Abstract

The symmetric cipher is an engine that transforms plaintext into ciphertext through the use of a secret key. Plaintext is a message in its native form; one could simply look at it and read it. Ciphertext is the result of the encryption operation, and it should appear as an incomprehensible flow of bytes. The secret key is the critical piece in the system; if the secret key is compromised, then so is the message hidden in the ciphertext. The secret key used to generate the ciphertext is the same secret key used to decipher and return the originalplaintext. To protect information, it is imperative that a strong secret key be fed into the symmetric cipher. The Java Cryptography Architecture (JCA) includes a SecureRandom engine explicitly for such purposes. One of the nicest features of the SecureRandom engine is that it declares a number of helper methods that are used to generate more than just random bytes of data. This subtlety is a result of the JCA architects having the presence to define the SecureRandom engine as extending the java.util. The JCA delegates responsibility for symmetric cipher secret key generation to the javax.crypto.KeyGenerator engine class. There are two broad categories of ciphers, “block” and “stream.” A cryptographic “cipher mode” represents the combination of a strong cipher algorithm plus a simple feedback or noise operation.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call