信息理论之父:克劳德 香农
论文《通信的数学理论》
如果没有信息加密,信息直接被中间人拦截查看、修改。
明文Plain text
密文Cipher text
加密Encryption/Encrypherment:将明文转化为密文
解密Decrytion/Decipherment:讲密文还原为明文
加密钥匙EK Encryption Key:加密时配合加密算法的数据
解密钥匙EK Encryption Key:解密时配合解密算法的数据
各个字符按照顺序进行n个字符错位的加密方法。
(凯撒是古罗马军事家政治家)
多次使用恺撒密码来加密并不能获得更大的安全性,因为使用偏移量A加密得到的结果再用偏移量B加密,等同于使用A+B的偏移量进行加密的结果。
凯撒密码最多只有25个密匙 +1到+25 安全强度几乎为0
(密钥为0或26时,明文在加密前后内容不变)
暴力枚举
根据密文,暴力列出25个密匙解密后的结果。
凯撒密码的例子是所有 单字母替代式密码 的典范,它只使用一个密码字母集。
我们也可以使用多字母替代式密码,使用的是多个密码字母集。
加密由两组或多组 密码字母集 组成,加密者可自由的选择然后用交替的密码字母集加密讯息。
(增加了解码的困难度,因为密码破解者必须找出这两组密码字母集)
另一个多字母替代式密码的例子“维吉尼亚密码”,将更难解密
(法语:Vigenère cypher),
它有26组不同用来加密的密码字母集。
每个密码字母集就是多移了一位的凯撒密码。
维吉尼亚方格(替换对照表):
维吉尼亚密码引入了密匙概念。
同一明文在密文中的每个对应,可能都不一样。
移位式密码,明文中出现的字母依然出现在密文中,只有字母顺序是依照一个定义明确的计划改变。
许多移位式密码是基于几何而设计的。一个简单的加密(也易被破解),可以将字母向右移1位。
例如,明文"Hello my name is Alice."
将变成"olleH ym eman si ecilA."
密码棒(英语:scytale)也是一种运用移位方法工具。
如
明文分组,按字符长度来分,每5个字母分一组。
并将各组内的字符的顺序进行替换。
具体例子
纵栏式移项密码
先选择一个关键字,把原来的讯息由左而右、由上而下依照关键字长度转写成长方形。接着把关键字的字母依照字母集顺序编号,例如A就是1、B就是2、C就是3等。例如,关键字是CAT,明文是THE SKY IS BLUE,则讯息应该转换成这样:
C A T
3 1 20
T H E
S K Y
I S B
L U E
最后把讯息以行为单位,依照编号大小调换位置。呈现的应该是A行为第一行、C行为第二行、T行为第三行。然后就可以把讯息"The sky is blue"转写成HKSUTSILEYBE。
另一种移位式密码是中国式密码(英语:Chinese cipher),移位的方法是将讯息的字母加密成由右而左、上下交替便成不规则的字母。范例,如果明文是:THE DOG RAN FAR,则中国式密码看起来像这样:
R R G T
A A O H
F N D E
密码文将写成:RRGT AAOH FNDE
绝大多数的移位式密码与这两个范例相类似,通常会重新排列字母的行或列,然后有系统的移动字母。其它一些例子包括Vertical Parallel和双移位式(英语:Double Transposition)密码。
更复杂的算法可以混合替代和移位成为积密码(product cipher);现代资料区段密码像是DES反复位移和替代的几个步骤。
行数=栏数
明文,分为N栏(N行) 按照明文本来的顺序,竖着从上往下填。
【实例1】
明文123456
栏数2(行数2)
密文135246
135
246
拆成2行(2栏),竖着看密文——得到明文
【实例2】明文123456789abcdefghi 栏数9 (行数)---密文1a2b3c4d5e6f7g8h9i
拆成9行竖着看密文.
1a
2b
3c
4d
5e
6f
7g
8h
9i
古典密码【栅栏密码安全度极低】组成栅栏的字母一般一两句话,30个字母。不会太多! 加解密都麻烦
是指研究字母或者字母组合在文本中出现的频率。应用频率分析可以破解古典密码。
工具
在线词频分析
古典密码是密码学的源头。这一时期的密码是一种艺术,还算不上是一门学科。密码学家常常是凭借直觉和信念来进行密码设计和分析,而不是推理证明。
古典密码的两个主要体制是代换密码和置换密码。代换密码采用一个代换表,将一段明文变换成一段密文,这个代换表就是密钥。如果代换表只有一个,则代换过程被称为单表代换。如果代换表多于一个,则代换过程被称为多表代换。置换密码是一种特殊的代换密码,置换密码变换过程不改变明文字母,只改变它们的位置。
单表代换密码的一个典型代表是仿射密码。仿射密码的加密变换可以表示为 Ek(i)=(ik1+k) mod N,其中密钥k = (k1,k),N为明文字表大小,i为明文,k与N互素。当k=0时的变换称为乘法密码;当k1=1时的变换称为加法密码。
“恺撒密码”是一种典型的加法密码,这种密码曾经被罗马帝国的恺撒大帝频繁用于战争通信,因此称为“恺撒密码”。下面举例描述一下恺撒密码。假定密钥 k =(1,11),明文消息为“i am nine”,N = 26。密钥k =(1,11)确定了密码代换表中明文字母“a”将被替换成“l”,字母“b”将被替换成“m”,依此类推。整个代换过程描述如表1所示。对于英文字母表,恺撒密码的密钥取值范围只有25(不包括k为0的情形),即只能构造出25种不同的明密文代换表。因此,恺撒密码很容易被穷举破译。
为了进一步提高密码强度,在单表代换的基础上,又进一步提出了多表代换。多表代换密码是以多个代换表依次对明文消息的字母进行代换的加密方法。多表代换密码的典型代表是维吉尼亚密码,它是以16世纪法国外交官 Blaise deVigen è re的名字命名的。
维吉尼亚密码是一种以位移代换为基础的周期代换密码,其中代换表的数目为d,d代换表由d个字母序列确定的密钥决定。我们在前面例子的基础上,再以格的形式解释维吉尼亚密码的代换过程,具体加密代换过程如表2所示。明文信息为“i am nine i feel very good”,代换表数目d = 6,密钥k = cipher,密钥对应的数数序列为k =(2,8,15,7,4,17)。将密钥整数序列与明文序列周期性的模26“相加”,即可得到密文整数序列,进而可以变换成密文。
恺撒密码和维吉尼亚密码都是以单个字母为代换对象的。如果每次对多于1个字母进行代换就是多字母代换,多字母代换更加有利于隐藏字母的自然频度,从而更有利于抵抗统计分析。
置换密码的典型代表是栅栏密码。栅栏密码出现于1861年至1865年的美国南北战争时期。其加密原理是:明文按列写入,密文按行输出。加密过程可以使用个置换也可以使用多个置换。与代换密码相比,置换密码可以打破消息中的某些固定结构模式,这个优点被融入到现代密码算法的设计中。
古典密码在对抗密码分析方面有较大不足。密码分析学的主要目标是研究加密消息的破译或消息的伪造。密码系统安全的一个必要条件是密钥空间足够大,能够有效地应对穷举密钥搜索攻击,但密钥空间足够大不是密码系统安全的充分条件。古典密码在统计特性方面存在安全缺陷。在单表代换下,字母的频度、重复字母模式字母结合方式等统计特性,除了字母符号发生了改变外,都没有发生改变,这些统计特性可以用于密码破译。多表代换下,明文的统计特性通过多个表的平均作用被隐蔽起来,但是用重合指数法等分析方法可以很容易地确定维吉尼亚密码密钥长度,再用攻击单表代换的方法确定密钥字。已有事实证明,用唯密文攻击法(攻击者只拥有一个或者多个用同一个密钥加密的密文)分析单表和多表代换密码是可行的,因此,以上古典密码都是不安全的。
数观天下作为“最懂甲方的密码行业咨询媒体”,会提供更多甲方思路、理念及项目情况,为产业提供桥梁,促进密码与应用完美结合
1.古典密码编码方法归根结底主要有两种,即替换密码和置换密码。
(1)一种是将明文字符替换成一些其他的字符,形成密文,称“替换密码”。其本质:不变的是字符的位置,变化的是字符。
(2)一种是将原有的明文字符的顺序打乱,形成密文,称“(位)置(变)换密码”。其本质:不变的是字符本身,变化的是位置。
2.替换密码:
(1)凯撒密码
基本思路:将明文中的字符移动一定的位数(k)来实现加密和解密,也就是明文中的所有字符都在字符表上进行k偏移,形成密文。
(2) 乘法密码:
基本思路:使用采样的方式进行加密,将明文字符串的每个字符,每隔k位算出字符并排列起来形成密文。
(3)仿射密码:
基本思路:明文中所有字符按照(ax + b)mod 26进行计算,得到密文。
(4)维吉尼亚密码:
基本思路:使用字符串作为密钥,并把密钥与明文进行对应,依次重复密钥,直至与明文的长度相同。
3.置换密码:
(1)栅栏密码
基本思路:先将明文中的字符分成N个一组,再将每组的第1个字符组合,每组的第2个字符组合,依次类推,直到第N个字符组合,最后再将所有字符全部连接起来,形成密文。这里N称为栏。
古典密码阶段。
这一阶段主要是从古代到19世纪末。古代的时候,对信息进行隐藏的常用方式就是字谜,谜语就是明文而谜底就是密文,破解的方法也很简单,全靠猜。古典密码学中,有许多经典的密码体制,例如Caesar凯撒密码、Polybius密码、多表替代密码、维吉尼亚密码等。凯撒密码为例,就是将将英文字母向前移动k位。从而生成字母替代的密表。例如移动两位在明文中的字母A其实代表的是C,以此类推。到了20世纪20年代,随着机械技术的发展,转轮密码机诞生了,给密码学的应用带来了巨大进步。
近代密码阶段。
1945年至1975年这段时期被称作近代密码学阶段。密码学在这一阶段的发展是以计算机通信技术的发展和普及为基础的,由于信息在计算机通信中的存储和传输要求,出于对信息安全的考虑,密码学得到了极快的发展。1949年Shannon发表了一篇论文《保密系统的通信理论》,奠定了密码学的理论基础,从而使具有数千年历史的密码学正式成为一门独立学科。
现代密码阶段。
1976年至今为现代密码学阶段。在近代密码学时期,我们会发现注入密码机等设备一开始研制就是运用于军事和政治领域,到了20世纪70年代中期以前,密码学的研究也是秘密进行。W.Diffie和M.EHellman在1976年公布了一种密钥一致性算法,简称DH算法,标志着密码学进入公钥密码学阶段。
不属于经典密码体制的是分组密码。
经典密码体制,又称古典密码体制,包括以下内容:
简单代替密码(simple substitution cipher),又称单表密码(monoalphabetic cipher):
明文的相同字符用相应的一个密文字符代替
多表密码(ployalphabetic cipher):
明文中的相同字符映射到密文空间的字符不唯一,有多个。
单表代替是密码学中最基础的一种加密方式。
在加密时用一张自制字母表上的字母来代
替明文上的字母(比如说A——Z,B——D)来达到加密。移位密码也属于单表代替,只不
过比较有规律,相当于集体向前或向后。这种加密方法最容易被破解。破解方法为统计法。
在英语中,最常用的字母为E,所以在密文中代替E 的字母出现的频率也最高,由此便可破解。
一般单表替代密码算法特点:
▲密钥空间
K很大,|K|=26!=4×1026 ,破译者穷举搜索计算不可行,
1微秒试一个密钥,遍历全部密钥需要1013年。
▲移位密码体制是替换密码体制的一个特例,它仅含26个置换做为密钥空间。
密钥π不便记忆。
▲针对一般替换密码密钥π不便记忆的问题,又衍生出了各种形式单表替代密码。
多表代替密码:由多个简单的代替密码构成,例如,可能有5个被使用的不同的简单代
替密码,单独的一个字符用来改变明文的每个字符的位置。
多表替代密码的特点是使用了两个或两个以上的替代表。著名的维吉尼亚密码和Hill密码等均是多表替代密码。