Symmetric Encryption White Paper

Introduction

In cryptography, a cipher (or cypher) is an algorithm for performing encryption or decryption. When using a cipher the original information is known as plaintext, and the encrypted form as ciphertext. The ciphertext message contains all the information of the plaintext message, but is not in a format readable by a human or computer without the proper mechanism to decrypt it

Modern ciphers can be categorized into block cyphers and stream ciphers (by the units of information they operate on) and into symmetric or asymetric (by whether or not the same key is used for both encryption and decryption). If the algorithm is symmetric, the key must be known to the recipient and sender and to no one else. If the algorithm is an asymmetric one, the enciphering key is different from, but closely related to, the deciphering key. If one key cannot be deduced from the other, the asymmetric key algorithm has the public/private key property and one of the keys may be made public without loss of confidentiality.

HsCipherSDK Library includes both block and stream cipher algorithms

Symmetric key algorithms

Symmetric-key algorithms are a type of cryptophaphic algorithms using identical cryptographic keys for both decryption and encryption.

The encryption key is related to the decryption key. Both keys are either identical or there is a simple transformation to go between the two.

Symmetric key encryption is also called secret-key, single-key, shared-key, one-key, and private-key encryption.

Symmetric ciphers are often used as part of other cryptographic primitives.

Often a message authentication code is added to a ciphertext to ensure that changes to the ciphertext will be detected by the receiver. Message authentication codes can be derived from symmetric ciphers (CBC-MAC).

In another application block ciphers are used to build hash functions.

Modern block ciphers are often based on a construction proposed by Horst Feistel which makes it possible to build invertible functions from other functions that are not invertible themselves.

Examples of well-known symmetric algorithms include Twofish, Serpent, AES (Rijndael), Blowfish, CAST5, RC4, 3DES, and IDEA.

Some other symmectic enctryction algorithms include: Camellia, IDEA, RC2, RC5, SEED, Skipjack, TEA, XTEA, 3-Way, ABC, Akelarre, Anubis, ARIA, BaseKing, BassOmatic, BATON, BEAR and LION, CAST-256 , CIKS-1, CIPHERUNICORN-A, CIPHERUNICORN-E, CLEFIA, CMEA, Cobra, COCONUT98, Crab, Cryptomeria/C2, CRYPTON, CS-Cipher, DEAL, DES-X, DFC, E2, FEAL, FEA-M, FROG, G-DES, GOST, Grand Cru, Hasty Pudding cipher, Hierocrypt, ICE, IDEA NXT, Intel Cascade Cipher, Iraqi, KASUMI, KeeLoq, KHAZAD, Khufu and Khafre, KN-Cipher, Ladder-DES, Libelle, LOKI97, LOKI89/91, Lucifer, M6, M8, MacGuffin, Madryga, MAGENTA, MARS, Mercy, MESH, MISTY1, MMB, MULTI2, MultiSwap, New Data Seal, NewDES, Nimbus, NOEKEON, NUSH, Q, RC6, REDOC, Red Pike, S-1, SAFER, SAVILLE, SC2000, SHACAL, SHARK, SMS4, Spectr-H64, Square, SXAL/MBAL, Threefish, Treyfer, UES, Xenon, xmx, XXTEA, Zodiac

HsCipherSDK Library includes the following encryption algorithms: AES, DES, Triple DES, 3des, ARC4, CAST128, Cast5, Blowfish and Twofish

Cryptographic Hash Functions

A cryptographic hash function is a procedure that takes a block of data and returns a fixed-size bit string, the cryptographic hash value, so that an accidental or intentional change to the data will change the hash value. The data to be encoded is called the "message," and the hash value is called the message digest.

Cryptographic hash functions have many information security applications, namely in digital signatures, message authentication codes (MAC), and other types of authentication. They can also be used as normal hash functions, for indexing data in hash tables and also for fingerprinting, detection of duplicate data or to uniquely identify files, and as checksums to detect accidental data corruption. Indeed, in information security contexts, cryptographic hash values are sometimes called (digital) fingerprints, checksums, or just hash values, even though all these terms stand for functions with rather different properties and purposes.

Widely used well-known hash function algorithms include: MD5, SHA-1 and SHA-2

Other hash function algorithms include: FSB, SHA-3, ECOH, GOST, HAS-160, HAVAL, LM hash, MDC-2, MD2, MD4, N-Hash, RIPEMD, Snefru, SWIFFT, Tiger, VSH, WHIRLPOOL, crypt(3) (DES)

HsCipherSDK Library supports the following hash function algorithms: MD5, SHA-1, SHA-256, Whirlpool