密码与密码学
我想任何一个人对于“密码”一词都不会陌生,日常生活中,无论是你我使用银行卡或是登录某个系统,都需要输入一段由我们自己设定的密码,它被自己所牢记而又防范着他人的知晓。这也是自密码出现以来,永恒地初衷:保密。
虽然自电子计算机发明以来,随着数字信息发展的日新月异,密码变得日益复杂,保密性也逐渐增高,但是密码界却有着亘古不变的真理——密码有人设,就一定有人破。而密码学正是一门研究密码编码和密码破译的科学。
学习密码学,就要从最古老最原始的密码学起,就如同要知晓人类生命的诸多秘密,就不得不去了解最为基础的细胞构成一样。因为再复杂多变的密码,也都是由简单的密码通过整合或者套用而编写的,掌握了最为基础的,就能够在遇到复杂问题时,抽丝剥茧、逐层深入。
公元前五世纪初,斯巴达人最早将易位密码用于军事情报的传递,将奴隶的一条布带螺旋缠绕在木棒上作为密码的载体,沿着纵轴写下内容,再解开带子后展开,看到的就是杂乱无章的字母,从而传递出敌人阴谋占领斯巴达的情报,于是将军莱桑德紧急班师回国,摧毁了敌人的阴谋。这种密信被称为“skytale(天书)”,斯巴达人也由此创造了世界最早的密码器和换位密码术(见下图)。当然,中国在密码学史上的贡献也不可小觑,姜子牙发明的阴符,长短不一,各代表不同含义,有的代指破阵擒将、有的则是请粮益兵,一时成为西周克敌制胜的法宝。
几个基本概念
从两个密码历史事件中,我们看到了密码加密的原始方法,而在详细讲述之前有必要明确三个最为基本的名词:“明文”、“密文”、“密钥”。“明文”,显而易见,就是明明白白的文字,也即我们所要保密的信息,而对应的“密文”,便是经过加密后的信息,也就是经常令人头昏眼花的密码,明文和密文可以是数字、汉语、字母、图形等等一切用来表达和掩盖信息的字符。有人将给明文加密的过程比喻为给物品上锁,那么不难理解,打开锁取出东西的那一把钥匙就是“密钥”,在密码学里,这种编制密码时明文转化为密文的对应关系中的关键信息就是密钥,密钥可以是一本书、一句话、一个单词、甚至一张图,但一般简单密码的加密规则我们通常不称之为密钥,只有稍微复杂或者复杂的加密过程中,不可或缺的那把钥匙才是密钥。
再来回味斯巴达人的“木棒”和姜子牙的“阴符”,我们可以看到一个是利用木棒变更了内容信息的原有位置,另一个则是用阴符替代了内容的原本含义,其实这两者也体现了密码加密的两种基本思想:易位和替换。现在希望大家能够准备好笔和纸,下面我们将通过一些实际的例子来做些阐述。
易位与替换
首先,来看一组非常简短的密文:HCEAR T,其实这就是一个易位密码,其对应的明文是her cat(她的猫),加密过程是把明文的每个单词竖着写出,然后自上而下每行横着去读,得出的就是hceart这个字母串(见下图示),当然,我们也可以先横写后竖读等等其他方式进行易位。
h → c
e → a 〕 → hceart → HCEAR T
r → t
有必要说明的是,有些朋友在看到这个密文时会感到其形式有些特别,其实,按照密码学编写的惯例,一般情况下,密文均写成大写字母形式,每五个一组,不足五个的末尾组有时还可以用“X”等字母补齐,我们的密文正是采用了这样的形式写出的。通过这个例子,我们可以看出按照一定方式打乱明文构成元素的排列位置,可以起到加密作用。
那么另一种加密的基本方式,也就是替换,其应用的方法有哪些呢?说起来,阴符作为替换密码用于通讯,是时代的一种特例,而通常情况下的替换密码则更为简洁,来看另一段密文:NJTTZ PV,先来把它写成我们习惯的形式:njttzpv,乍看有些奇怪,但是熟悉26英文字母表的话,可能会看出,其实每个字母向前移动一位就变成了明文(见下图示):Miss you.(想你。)假如是移动两位或者数位,则变成的密文则又有不同,但同样是替换。
m←n i←j s←t s←t y←z o←p u←v 》 m i s s y o u 》Miss you.
那么易位和替换的方法区别在哪呢?通过以上例子,可以看出,易位是仅改变明文元素的位置而不改变元素本身,而替换则是改变了元素本身却不改变其相对的位置。
以上的易位和替换两种方式,便是密码术进行加密的基础,在应用时,一定要区别二者的不同以及应用的时机,而在解密时,更不要走错了推进或者变换的方向。 密钥的作用
通过对于上述易位与替换方式的讲解,想必大家对于明文、密文以及基本加密方式都有了初步的了解,接下来我们通过对一组数字的加密,来领略一下密钥的神奇。 3467 2937 1639 1729 1472 4691 3761 7462 4729 2373 1281 上面这组数字就是需要加密的明文,易位或者替换,当然都可以用来加密以防他人知晓,但是还有一种也很简单的方式可以达到目的。我们先来取一个四位数字“1032”,然后用这个数字去针对明文数字串的每一组做加法,也就是:3467+1032=4499,2937+1032=3969,1639+1032=2671……最后得到的一组数字就成为: 4499 3969 2671 2761 2504 5723 4793 8494 5761 3405 2313 如此以来,新的数字组便使原来的明文变得“面目全非”从而达到了加密的目的。破译这组密文时,就得先获取或者推算出在这里起关键作用的这个四位数字“1032”,才能根据关系,得出明文。四位数字“1032”在这里起到了钥匙的关键作用,也就是密钥。我国“汉字电码”(即以一个固定的四位数字代表一个汉字),在某些加密中就可以用到上述的方法。可见密钥的应用,让密文变得更加复杂,对于一些密钥很难掌握的密码,甚至造成极难破译的局面。 以上知识便是今后所述密码加密的根源,而且是最为基础的内容,大家可以结合下面的练习题多加掌握,在具体的题目中体会密码的原理,建立良好的“密码感”。
练习题:
1,明文、密文、密钥的基本概念,易位和替换方式的主要区别;
2,IOEOL VYU(提示:易位密码);HKNUD XNT(提示:替换密码);
3,156039312(密钥:3,提示:加密方法为个位数间的乘法,明文为七位数字)
原文发表于《推理世界.5B》 [此贴被夜云于2012-7-24 22:54:57修改过]
|