Channels ▼


Performance Library Basics


Cryptography is the processing of data to conceal any of the information it contains. Algorithms for encoding data are usually complicated and almost always time-consuming. While the cryptographic domain includes some primitive components, the domain has about a dozen popular algorithms implemented completely. The functions can be divided into four groups: symmetric encryption algorithms, public key encryption algorithms, hashing functions, and primitives.

The security of cryptography schemes are generally based on the expense of attempting randomly to decrypt balanced with the practicality of the time to correctly encrypt and decrypt. For this reason, large integers are the core of many cryptographic schemes. Big numbers in this case are generally more than 64 bits long and less than 4,096.

Public-key cryptography allows an entity that wishes to receive secure transmissions to create a system for encrypting data that can only be read by that entity. Such an entity creates a pair of keys based on large primes. The public key is published or provided to any other entity that wishes to send a secure transmission. The private key and primes are kept secret and are used to decode any transmissions encoded with the public key.

The result is an easy and secure transmission method that anyone with the public key can use. Further, if some authority certifies the identity of the owner of the public key, then this method doubles as part of an identity certification scheme, since only the person certified can read the encrypted messages.

Categories of cryptographic algorithms and specific algorithms are:

  • Symmetric cryptography
    • Data Encryption Standard (DES) and Triple Data Encryption Standard (TDES)
    • Rijndael, Blowfish, and Twofish block ciphers
    • Hash and data authentication algorithm (DAA) functions:
    • MD5, HMAC-MD5
    • SHA1, SHA256/384/512, HMAC-SHA1, HMAC-SHA256/384/512
    • DAARijdael, DAABlowfish, DAATwofish

  • Public key cryptography
    • Infrastructure functions such as pseudorandom number generation (PNRG) and prime number generation
    • Digital Signature Algorithm (DSA)

Related Reading

More Insights

Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.