您好,欢迎访问三七文档
1第2章古典密码体制22.1替代密码替代密码又可分为单一字母替代密码和多字母替代密码。替代密码可以用字母来替代字母,也可以用图形符号来替代字母,或者用字母来替代图形符号。每个符号都用其他符号替换,并且替换始终不变的密码被称为单一字母替代密码。一般的单一字母替代密码以26个英文字母的集合上的一个代换为密钥对明文消息中的每个字母依次进行变换,如K={:Z26Z26|是代换},变换的方法是把明文中的每个字母用它在下的像去替换。解密时用的逆代换-1进行替换。2.1.1单一字母替代密码3【例2-1】设代换的对应关系如下:abcdefghijklmnopqrstuvwxyzidmefzoaphxbscqrltuyjvnwgk从代换的对应关系可知s→u,e→f,…,y→g因此以代换为密钥对security加密得到密文ufmjtpyg4棋盘密码abcdefghijklmnopqrstuvwxyz123451234551.Caesar密码Caesar密码是由JulinsCaesar发明的,它非常简单,就是对字母表中的每个字母,用它之后的第3个字母来代换成密文,这里的密钥k=3。如果密钥空间K={0,1,2,…,25},即k∈Z26,就成为移位密码,Caesar密码是移位密码的一个特例。移位密码的加密和解密算法如下:加密算法Ek(m)≡m+k(mod26)解密算法Dk(c)≡c-k(mod26)6【例2-2】设明文为:security,试用Caesar密码对其进行加密,然后再进行解密。(1)加密过程如字母s对应的数字为18,将18使用加密算法进行加密E3(18)≡18+3(mod26)≡21数字21对应的字母为v,所以security的密文为vhfxulwb(2)解密过程D3(21)≡21-3(mod26)≡187CAPwillencipher/decipherusingasimpleshiftsystemEntertheplaintextSelectSimpleShiftundertheCiphersMenuEntershiftvalueSelectEncipherThisisasampleymnxnxfxfruqj82.仿射密码仿射密码就是将加法密码和乘法密码组合而成的一种密码。它的密钥空间为K={(k1,k2)|k1,k2∈Z26}加密算法c≡k1m+k2(mod26)解密算法m≡(c-k2)k1-1(mod26)其中:k1k1-1≡1(mod26)9【例2-3】假设k1=9,k2=2,明文字母为w,用仿射密码对其加密和解密。加密时,先把明文字母w转换为数字22,由加密算法得c≡k1m+k2(mod26)≡(9×22+2)(mod26)≡18再把数字18转换为字母得到密文s。解密时,先计算k1-1。有9×3≡1(mod26)可以得出k1-1≡3(mod26)。再由解密算法得m≡(c-k2)k1-1(mod26)≡(18-2)×3(mod26)≡22数字22对应的明文字母为w。10补充例子加密:•“China”经仿射加密变换成“RAHQD”DQHAR316701726mod39459521733333013872711解密:•原始消息“China”得到恢复ANIHC01387226mod2622186192361919191919316701715123.Playfair密码Playfair密码基于一个5×5的字母矩阵。字母矩阵构造方法:选用一个英文短语或单词串作为密钥,去掉其中重复的字母得到一个无重复字母的字符串,然后再将字母表中剩下的字母依次从左到右、从上往下填入矩阵中,字母i,j占同一个位置。【例2-4】设密钥K=informationsecurity,去除重复字母后K=informatsecuy13i/jnformatsecuybdghklpqvwxz图2-1Playfair密码字母矩阵示例14对每一明文字母对m1、m2的加密方法如下:m1和m2在同一行,则密文c1和c2分别紧靠m1、m2右端的字母,其中第一列看做是最后一列的右方。若m1和m2在同一列,则密文c1和c2分别紧靠m1、m2下方的字母,其中第一行看做是最后一行的下方。若m1和m2不在同一行,也不在同一列,则密文c1和c2是由m1、m2确定的矩形的其他两角的字母,并且c1和m1,c2和m2同行。若m1=m2,则插入空字母于重复字母之间。明文字母数为奇数,将空字母加在明文的末端。15RuleOneUsingthekeywordarrayformedfrom“software”TFOSWBERACIHGDKPNMLQYXVUZQERLEBLM16RuleTwoAgainusingthekeywordarrayformedfrom“software”TFOSWBERACIHGDKPNMLQYXVUZALTUDYBT17RuleThreeUsingthekeywordarrayformedfrom“software”TFOSWBERACIHGDKPNMLQYXVUZPOTM18【例2-5】用图2-1所示的Playfair密码字母矩阵加密明文computer。先将computer中的字母两两分组为computer再按照Playfair密码的加密规则,得到的密文为biegyade19多字母替代密码在加解密时,所使用的密钥是是明文字母到密文字母的多个映射,每个映射又是一对一的简单替换。多表替代密码将明文字母划分为长度相同的消息单元,称为明文分组,对明文成组地进行替代,同一个字母有不同的密文,2.1.2多字母替代密码201.Vigenere密码该密码体制有一个参数n。在加解密时,把英文字母映射为0-25的数字再进行运算,并按n个字母一组进行变换。明文空间、密文空间及密钥空间都是长度为n的英文字母串的集合。设密钥k=(k1,k2,…,kn),明文m=(m1,m2,…,mn),则加密算法为Ek(m)=(c1,c2,…,cn)其中:ci≡(mi+ki)(mod26),i=1,2,…,n对密文c=(c1,c2,…,cn),解密算法为Dk(c)=(m1,m2,…,mn)其中:mi≡(ci-ki)(mod26),i=1,2,…,n21【例2-6】设密钥KEYS,明文消息为GOODCRYPTOSYSTEM,试用Vigenere密码对其进行加密,然后再进行解密。由密钥KEYS,得n=4,密钥对应的数字序列为(10,4,24,18)。然后将明文按每4个字母进行分组,并转换这些明文字母为相应的数字,再用模26加上对应密钥数字,其加密过程如表2-2所示。得到的密文为:qsmvmvwhdsqqcxce。22明文GOODCRYPTOSYSTEM6141432172415191418241819412密钥KEYSKEYSKEYSKEYS1042418104241810424181042418密文161812211221227318161622324qsmvmvwhdsqqcxce表2-2Vigenere密码加密示例23VigenereCipherTableThetableliststhekeycharactersontopandtheplaintextcharactersonthesideabcdefghijklmnopqrstuvwxyzaabcdefghijklmnopqrstuvwxyzbbcdefghijklmnopqrstuvwxyzaccdefghijklmnopqrstuvwxyzabddefghijklmnopqrstuvwxyzabceefghijklmnopqrstuvwxyzabcdffghijklmnopqrstuvwxyzabcdegghijklmnopqrstuvwxyzabcdefhhijklmnopqrstuvwxyzabcdefgiijklmnopqrstuvwxyzabcdefghjjklmnopqrstuvwxyzabcdefghikklmnopqrstuvwxyzabcdefghijllmnopqrstuvwxyzabcdefghijkmmnopqrstuvwxyzabcdefghijklnnopqrstuvwxyzabcdefghijklmoopqrstuvwxyzabcdefghijklmnppqrstuvwxyzabcdefghijklmnoqqrstuvwxyzabcdefghijklmnoprrstuvwxyzabcdefghijklmnopqsstuvwxyzabcdefghijklmnopqrttuvwxyzabcdefghijklmnopqrsuuvwxyzabcdefghijklmnopqrstvvwxyzabcdefghijklmnopqrstuwwxyzabcdefghijklmnopqrstuvxxyzabcdefghijklmnopqrstuvwyyzabcdefghijklmnopqrstuvwxzzabcdefghijklmnopqrstuvwxy24OperationAkeywordisselectedanditisrepeatedlywrittenabovetheplaintextEXAMPLE:usingthekeyword“hold”HOLDHOLDHOLDHOLDHOKEYplaintextISTHELPIATNXETSTHIabcdefghi...aabcdefghibbcdefghij...ncdefghijk...ddefghijkl...eefghijklm...ffghijklmn...gghijklmno...hhijklmnop...iijklmnopq...jjklmnopqr...kklmnopqrs...llmnopqrst...mmnopqrstu...nnopqrstuv...oopqrstuvw...ppqrstuvwx...qqrstuvwxy...rrstuvwxyz...sstuvwxyza...ttuvwxyzab...uuvwxyzabc...AciphertextVTVHKEGQHEBQDWDLE252.Hill密码Hill密码算法的基本思想是将明文字母通过线性变换,将它们转换为个数相同的密文字母。给定一个具有m个字母的明文,选定一个n值,nm,将密钥K构造为一个n×n的矩阵。将m个字母的明文划分为n个字母的多个组,n个字母转换为整数列向量M,通过矩阵乘法C≡K×Mmodp得到向量C,随后将向量C中的整数转换为密文。Hill密码使用的密钥是一个n×n的整数矩阵,加密算法是C≡K×Mmodp,解密时只需做一次逆变换即可。26【例2-7】设明文消息为seed,试用n=2,密钥为的Hill密码对其进行加密,然后再进行解密。加密过程如下:执行矩阵运算M≡K-1×Cmodp可以完成解密操作,本例中K的逆矩阵解密过程如下:52109K231426mod34,42026mod41852109K3426mod2314,41826mod42017210211K27Hill密码的安全性在于:可以较好地抑制自然语言的统计特性,不再有单字母替换的一一对应关系,对抗“唯密文攻击”有较高安全强度。密钥空间较大,在忽略密钥矩阵K可逆限制条件下,|K|=26n×n。Hill密码的脆弱性在于:若提供的矩阵M是可逆的,则能计算出K≡M-1×Cmodp,从而破译该密码体制。若方阵M关于模26不可逆,攻
本文标题:古典密码体制
链接地址:https://www.777doc.com/doc-4717400 .html