Category: 

What is a One-Time Pad?

Article Details
  • Written By: K. Schurman
  • Edited By: Bronwyn Harris
  • Last Modified Date: 28 September 2016
  • Copyright Protected:
    2003-2016
    Conjecture Corporation
  • Print this Article
Free Widgets for your Site/Blog
Built at the request of Dag Hammarskjöld, the United Nations Headquarters has a meditation room dedicated to silence.   more...

October 1 ,  1890 :  Yosemite National Park was established.  more...

A one-time pad is a type of encryption algorithm used in cryptography, where the key that encrypts and decrypts the message is used only one time. Obviously, a one-time pad, sometimes shortened to OTP, is not the most efficient use of resources. The one-time pad requires just as many resources to create it as a multiple-use key, but it must be destroyed after one use. When proper procedures are followed, however, the OTP is impossible to break because each one is different, making it worthwhile to create in certain situations.

Essentially, cryptography is the process of hiding information, and a one-time pad is a tool used to hide the data inside a code. When using cryptography, one person would encrypt a message, which involves applying an OTP or another type of key to the message. The person receiving the message would then use the key to decrypt and read the message. Many people think of cryptography only as a method by which governments and military groups create a code for disguising messages. Different types of cryptography are used to hide information in a variety of formats, however, such as with computer passwords and ATM cards.

Ad

To be considered a perfect one-time pad, the key must contain exactly as much data as the text to be encrypted, also called the plaintext. Only two copies of the key may exist, one for the sender and one for the receiver, and both parties must destroy the key upon decryption of the message. Finally, the key must be random. Some "random-number generators" on computers actually follow a pattern to generate the numbers, only giving the appearance of being random.

When used properly, the one-time pad is considered perfectly secure because someone attempting to decipher the code could not rely on other codes or messages for clues. A cryptanalyst is able to compare and contrast several messages that employ a multiple-use key, applying statistical analysis or pattern matching and eventually solving the key. With a one-time key, however, the only clues are in the single message, making it impossible for the cryptanalyst to break the key.

The term "pad" refers to the time when the code was printed on a pad of paper filled with random OTP codes. After using the code one time, the top sheet of the pad would be destroyed, revealing the next code for the next one-time pad. Computers randomly generate today's OTPs, as they have for many years.

Ad

You might also Like

Recommended

Discuss this Article

overreactor
Post 1

I wonder if there is a one time pad software needed for the encryption?

Post your comments

exception 'Exception' with message 'error writing captcha: Duplicate entry '2147483647' for key 'PRIMARY'' in /ssd/www/wisegeek/public_html/_core/classes/public/Captcha.php:44
Stack trace:
#0 /ssd/www/wisegeek/public_html/_core/controls/public/ControlDiscussionPostBox.php(324): Captcha->createCaptcha()
#1 /ssd/www/wisegeek/public_html/framework/classes/Control.php(104): ControlDiscussionPostBox->preRender(false)
#2 /ssd/www/wisegeek/public_html/framework/classes/Control.php(149): Control->render()
#3 /ssd/www/wisegeek/public_html/tpl/default-nocustom-lu/pages/public/article/article.htm(526): Control->__toString()
#4 /ssd/www/wisegeek/public_html/framework/classes/Control.php(300): require('/ssd/www/wisege...')
#5 /ssd/www/wisegeek/public_html/framework/classes/Control.php(309): Control->requireTpl('pages/public/ar...', Object(PageArticleCom), true)
#6 /ssd/www/wisegeek/public_html/framework/classes/Control.php(131): Control->renderTpl('pages/public/ar...', Object(PageArticleCom))
#7 /ssd/www/wisegeek/public_html/framework/classes/FormDataControl.php(87): Control->renderTemplate()
#8 /ssd/www/wisegeek/public_html/framework/classes/Control.php(109): FormDataControl->renderTemplate()
#9 /ssd/www/wisegeek/public_html/framework/classes/ScriptPage.php(50): Control->render(false)
#10 /ssd/www/wisegeek/public_html/framework/classes/Control.php(149): ScriptPage->render()
#11 /ssd/www/wisegeek/public_html/framework/classes/Page.php(97): Control->__toString()
#12 /ssd/www/wisegeek/public_html/_core/classes/public/PublicFrontController.php(443): Page->processRequest()
#13 /ssd/www/wisegeek/public_html/_core/classes/public/PublicFrontController.php(7): PublicFrontController->renderPage()
#14 /ssd/www/wisegeek/public_html/index.php(11): PublicFrontController::run()
#15 {main}