计算机科学

首页 > 计算机科学

一次性密码本

2018-09-10 11:54:01
一次性密码本节录

一次性密码本one-time pad,缩写为OTP)是古典密码学中的一种加密算法。是以随机的密钥(key)组成明文,且只使用一次。

目录

  • 1 安全性
  • 2 加密方法
  • 3 参考文献
  • 4 外部链接
  • 5 参见

安全性

在理论上,此种密码具有完善保密性,是牢不可破的。它的安全性已由克劳德·艾尔伍德·香农所证明。

虽然它在理论上的安全性无庸置疑,但在实际操作上却有着以下的问题:

  • 用以加密的文本,也就是一次性密码本,必须确实是随机产生的。
  • 它至少必须和被加密的文件等长。
  • 用以加密的文本只能用一次,且必须对非关系人小心保密,不再使用时,用以加密的文本应当要销毁,以防重复使用。

加密方法

首先手上要有一本一次性密码本用以加密文件,接着将一次性密码本里的字母,与被加密文件的字母给依序按某个事先约定的规定一一相混,其中一个相混的作法是将字母指定数字(如在英语中,将A至Z依序指定为0至25)然后将一次性密码文本上的字母所代表的数字和被加密文件上相对应的数字给相加,再除以该语言的字母数后取得其余数,假设字母数是 n(如英语为26),若就此得出来的某个数字小于零,则将该小于零的数给加上n,如此便完成加密。

举个例子,若要加密讯息“This is an example”,而用以加密的一次性密码本如下所示:

MASKL NSFLD FKJPQ

则利用指定数字的方法,可分别将两者给做以下的转换:

  • This is an example → 19 7 8 18 8 18 0 13 4 23 0 12 15 11 4
  • MASKL NSFLD FKJPQ → 12 0 18 10 11 13 18 5 11 3 5 10 9 15 16

两者依序相加后得到的讯息如下:

  • 31 7 26 28 19 31 18 18 15 26 5 22 24 26 20

将以上得到的讯息模26(除以26后取余数)可得:

  • 5 7 0 2 19 5 18 18 15 0 5 22 24 0 20

它也就变成了

  • FHACTFSSPAFWYAU

而若要解密以上讯息,反向操作即可。

参考文献

  • Erskine, Ralph, "Enigma's Security: What the Germans Really Knew", in "Action this Day", edited by Ralph Erskine and Michael Smith, pp 370–386, 2001.

外部链接

  • Marcus Ranum's One-Time Pad FAQ
  • The FreeS/WAN glossary entry with a discussion of OTP weaknesses
  • The One-Time-pad Khan Academy

参见

  • 信息论安全性
    • 完善保密性
  • 隐写术
版权声明:本文由北城百科网创作,转载请联系管理获取授权,未经容许转载必究。https://www.beichengjiu.com/computerscience/341594.html

上一篇:XML Signature
下一篇:信任网络
相关推荐