一次性密码本(One-time Pad;OTP)是密码学中的一种
加密算法。是以随机的密钥(key)组成
明文,且只使用一次。
介绍
一次性密码本(One-time Pad;OTP)是密码学中的一种
加密算法。是以随机的密钥(key)组成
明文,且只使用一次。这种方法在1882年被弗兰克·米勒(Frank Miller)发现,并沿用至今。
安全性
在理论上,此种密码是牢不可破的,而它的安全性已由克劳德艾尔伍德·香农(Claude Elwood Shannon)所证明。
虽然它在理论上的安全性无庸置疑,但在实际操作上却有着以下的问题:
用以加密的文本,也就是一次性密码本,必须是无特定规律的。它可以是一串随机数字,一句话,或者一本英文名著。
它必须至少比被加密的文件等长。
用以加密的文本(密码本)只能用一次,且必须对非关系人小心保密,不再使用时,用以加密的文本应当要销毁,以防重复使用。
加密方法
首先手上要有一本一次性密码本用以加密文件,接着将一次性密码本里的字母,与被加密文件的字母给依序按某个事先约定的规定一一相混,其中一个相混的作法是将字母指定数字(如在英语中,将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后可得:
5 7 0 2 7 5 8 8 11 0 5 22 24 0 20
它也就变成了
Fhac tf ss pafwyau
而若要解密以上信息,反向操作即可。