分组密码与流密码
第一节什么是分组密码
分组密码是将明文消息编码表示后的数字(简称明文数字)序列,划分成长度为n的组(可看成长度为n的矢量),每组分别在密钥的控制下变换成等长的输出数字(简称密文数字)序列。现代分组密码的研究始于20世纪70年代中期,至今已有20余年历史,这期间人们在这一研究领域已经取得了丰硕的研究成果。大体上,分组密码的研究包括三方面:分组密码的设计原理,分组密码的安全性分析和分组密码的统计性能测试。
第二节分组密码的设计原则
Claude Shannon在1949年提出了代替—置换(S-P)网络的想法,成为当代分组加密法的基础,而代替和置换就是两种基本的密码学运算。
Shannon又提出扩散(diffusion)和扰乱(confusion)是影响密码安全的主要因素。扩散的目的是让明文中的单个数字影响密文中的多个数字,从而使明文的统计特征在密文中消失,相当于明文的统计结构被扩散。例如,最简单的方法让明文中的一个数字影响密文中的k个数字,可以用:
扰乱是指让密钥与密文的统计信息之间的关系变得复杂,从而增加通过统计方法进行攻击的难度。扰乱可以通过各种代换算法实现。
设计安全的分组加密算法,需要考虑对现有密码分析方法的抵抗,如差分分析、线性分析等,还需要考虑密码安全强度的稳定性。此外,用软件实现的分组加密要保证每个组的长度适合软件编程(如8、16、32……),尽量避免位置换操作,以及使用加法、乘法、移位
等处理器提供的标准指令;从硬件实现的角度,加密和解密要在同一个器件上都可以实现,即加密解密硬件实现的相似性。
第三节Feistel加密结构
如今许多对称式分组密码都是以Horst Feistel提出的“Feistel加密法”的结构为基础。Feistel加密法以不可逆的混合式加密为基础,将输入的区段分为两半,分多个回合来处理,每回合左半部资料会执行一次替换运算,替换运算会将右半部回合函式F的结果,以XOR运算方式与左半部资料结合起来,然后交换左右两半资料。这一思路充分展现了Shannon的SP网络概念。
图3-1 标准Feistel网络
Feistel 加密法的设计通过增大区段提升安全性;增加长度可以提升安全性,使得暴力搜寻密钥变得更困难;增加回合数可以提升安全性;复杂的产生方法可以使分析变困难;复杂的函数可以使分析变困难。但是这些设计都使得加解密都变得缓慢。
图3-2 Feistel加密法的加解密程序
第四节分组密码算法的要求
分组密码算法实际上就是密钥控制下,通过某个置换来实现对明文分组的加密变换。为了保证密码算法的安全强度,对密码算法的要求如下。
(1)分组长度足够大
当分组长度较小时,分组密码类似于古典的代替密码,它仍然保留了明文的统计信息,这种统计信息将给攻击者留下可乘之机,攻击者可以有效地穷举明文空间,得到密码变换本身。
(2)密钥量足够大
分组密码的密钥所确定密码变换只是所有置换中极小一部分。如果这一部分足够小,攻击者可以有效地穷举明文空间所确定所有的置换。这时,攻击者就可以对密文进行解密,以得到有意义的明文。
(3)密码变换足够复杂
使攻击者除了穷举法以外,找不到其他快捷的破译方法。
第五节分组密码技术总结
分组密码将定长的明文块转换成等长的密文,这一过程在秘钥的控制之下。使用逆向变换和同一密钥来实现解密。对于当前的许多分组密码,分组大小是64 位,但这很可能会增加。
明文消息通常要比特定的分组大小长得多,而且使用不同的技术或操作方式。这样的方式示例有:电子编码本(ECB)、密码分组链接(CBC)或密码反馈(CFB)。ECB 使用同一个密钥简单地将每个明文块一个接一个地进行加密;在CBC 方式中,每个明文块在加密前先与前一密文块进行“异或”运算,从而增加了复杂程度,可以使某些攻击更难以实施。
“输出反馈”方式(OFB)类似CBC 方式,但是进行“异或”的量是独立生成的。CBC 受到广泛使用,例如在DES(qv)实现中,而且在有关密码术的技术性方面的相应书籍中深入讨论了各种方式。请注意:您自己建立的密码系统的普遍弱点就是以简单的形式来使用某些公开的算法,而不是以提供了额外保护的特定方式使用。
迭代的分组密码是那些其加密过程有多次循环的密码,因此提高了安全性。在每个循环中,可以通过使用特殊的函数从初始秘钥派生出的子密钥来应用适当的变换。该附加的计算需求必然会影响可以管理加密的速度,因此在安全性需要和执行速度之间存在着一种平衡。天下没有免费的午餐,密码术也是如此;与其它地方一样,应用适当方法的技巧中有一部分是源于对需要进行的权衡以及它们与需求平衡的关系如何的理解。
分组密码包括DES、IDEA、SAFER、Blowfish 和Skipjack ——最后一个是“美国国家安全局(US National Security Agency,NSA)”限制器芯片中使用的算法。
第六节什么是序列密码
序列密码也称为流密码,它是对称密码算法的一种。序列密码具有实现简单、便于硬件实施、加解密处理速度快、没有或只有有限的错误传播等特点,因此在实际应用中,特别是专用或机密机构中保持着优势,典型的应用领域包括无线通信、外交通信。1949年Shannon 证明了只有一次一密的密码体制是绝对安全的,这给序列密码技术的研究以强大的支持,序列密码方案的发展是模仿一次一密系统的尝试,或者说“一次一密”的密码方案是序列密码的雏形。如果序列密码所使用的是真正随机方式的、与消息流长度相同的密钥流,则此时的序列密码就是一次一密的密码体制。若能以一种方式产生一随机序列(密钥流),这一序列由密钥所确定,则利用这样的序列就可以进行加密,即将密钥、明文表示成连续的符号或二进制,对应地进行加密。
第七节序列密码与分组密码的对比
分组密码已一定大小作为每次处理的基本单元,而序列密码则是以一个元素(一个字母或一个比特)作为基本的处理单元。
序列密码是一个随时间变化的加密变换,具有转换速度快、低错误传播的优点,硬件实现电路更简单;其缺点是:低扩散(意味着混乱不够)、插入及修改的不敏感性。
分组密码使用的是一个不随时间变化的固定变换,具有扩散性好、插入敏感等优点;其缺点是:加解密处理速度慢、存在错误传播。
序列密码涉及到大量的理论知识,提出了众多的设计原理,也得到了广泛的分析,但许多研究成果并没有完全公开,这也许是因为序列密码目前主要应用于军事和外交等机密部门的缘故。目前,公开的序列密码算法主要有RC4、SEAL等。
分组密码体制简介 分组密码体制也具有简捷、快速的特点,并且容易标准化,使其成为软硬件加密的主流算法。目前主流的分组密码有:DES、IDEA…… . 1.分组密码的特点 与序列密码不同,分组密码是将明文序列划分成等长的分组(Block),对每一组用同一加密算法和同一密钥进行加密。 分组密码有其自身的优点,首先分组密码容易被标准化,因为在今天的数据网络通信中,信息通常是被成块的处理和传输的。其次,使用分组赌东道密码容易实现同步,因为一个密码组的传输错误不会影响到其它的分组,丢失一个密文组不会对随后组的解密产生影响。这就是说,传输错误不会扩散。而这些方面恰恰是序列密码的最大缺点。 分组密码与序列密码相比的一个缺点就是算法庞大一些,需要更多的计算资源。分组密码的另一大缺点是其安全性很难被证明。尽管“可证明安全性”的研究发展很快,但目前的分组密码大多是“看来安全的”,还没有一个分组密码被证明是真正安全的,至多证明了局部安全性。这其中的原因是:因商业化而要求分组密码算法的细节全部暴露,因此对分组密码的攻击类型很多,安全性概念也就很多,有人为了统一这些安全性概念,甚至引入了伪随机性和超伪随机性,它们是用概率图灵机来描述的,在实际设计和分析中很难应用。 2.分组密码的设计准则 一、安全性准则 对以下的安全性的描述总是基于以下的假设:加密体制(包括算法的细节)是公开的;安全性完全依赖于密钥;信道是不安全的,即攻击者可以任意的截取密文;攻击者有时也可以截取一些“废弃”的明文。 (1)分组长度和密钥长度:当明文分组长度为n比特时,至多需要2n个明文-密文对就可以彻底破解密钥。同理当密钥长度为n比特时,对一个截获的密文,至多需要试验2n个密钥就可以破解了密文。因此从安全性角度来考虑,明文分组长度的密钥长度因尽可能的大。 (2)混淆性:所设计的密码应使得明文、密文、密钥之间的依赖关系相当复杂,以至于这种依赖关系对密码分析者来说是无法利用的。密码分析者利用这种依赖关系的方法非常多,比如差分密码分析、线性密码分析等,因此混淆性也是一个非常重要的原则。 (3)扩散性:所设计的密码应使得密钥的每一位数字影响密文的许多位数字,以防止对密钥的逐段破解;明文的每一位数字也影响密文的许多位数字,以便最充分的隐藏明文的统计特征。对扩散性可以有许多种理解,比如“粘连性”指的是明文、密文、密钥每一位都互相依赖;“不连续性”或“雪崩性”指的是当改变明文的任何一个比特时,对应密文改变的比特的个数应是一个随机变量,其平均值是分组长度的一半。 (4)非线性度(抗线性密码分析强度):这一项属于混淆性。有一个基本数学原理:如果明文和密文的关系是n维线性关系,且系数是密钥,则n个明文-密文对(而不是2n个)就可以破解密钥;如果明文与密文的关系是n维r次函数关系,且系数是密钥,则n r个明文-密文对就可以破解密钥;如果虽然次数r较大,但明文与密文的关系“非常逼近”一个n
国内外分组密码理论与技术的研究现状及发展趋势 1 引言 密码(学)技术是信息安全技术的核心,主要由密码编码技术 和密码分析技术两个分支组成。密码编码技术的主要任务是寻求产 生安全性高的有效密码算法和协议,以满足对数据和信息进行加密 或认证的要求。密码分析技术的主要任务是破译密码或伪造认证信 息,实现窃取机密信息或进行诈骗破坏活动。这两个分支既相互对 立又相互依存,正是由于这种对立统一的关系,才推动了密码学自 身的发展[6]。目前人们将密码(学)理论与技术分成了两大类, 一类是基于数学的密码理论与技术,包括分组密码、序列密码、公 钥密码、认证码、数字签名、Hash函数、身份识别、密钥管理、 PKI技术、VPN技术等等,另一类是非数学的密码理论与技术,包括 信息隐藏、量子密码、基于生物特征的识别理论与技术等。 在密码(学)技术中,数据加密技术是核心。根据数据加密所 使用的密钥特点可将数据加密技术分成两种体制,一种是基于单密 钥的对称加密体制(传统加密体制),包括分组密码与序列密码, 另一类是基于双密钥的公钥加密体制。本文主要探讨和分析分组密 码研究的现状及其发展趋势。 2 国内外分组密码研究的现状 2.1 国内外主要的分组密码 美国早在1977年就制定了本国的数据加密标准,即DES。随着 DES的出现,人们对分组密码展开了深入的研究和讨论,已有大量 的分组密码[1,6],如DES的各种变形、IDEA算法、SAFER系列算 法、RC系列算法、Skipjack算法、FEAL系列算法、REDOC系列算 法、CAST系列算法以及Khufu,Khafre,MMB,3- WAY,TEA,MacGuffin,SHARK,BEAR,LION,CA.1.1,CRAB,Blowfish,GOST,SQUA 算法和AES15种候选算法(第一轮),另有NESSIE17种候选算法 (第一轮)等。 2.2 分组密码的分析 在分组密码设计技术不断发展的同时,分组密码分析技术也得 到了空前的发展。有很多分组密码分析技术被开发出来,如强力攻 击(穷尽密钥搜索攻击、字典攻击、查表攻击、时间存储权衡攻 击)、差分密码分析、差分密码分析的推广(截段差分密码分析、 高阶差分密码分析、不可能差分密码分析)、线性密码分析、线性 密码分析的推广(多重线性密码分析、非线性密码分析、划分密码 分析)、差分线性密码分析、插值攻击、密钥相关攻击、能量分 析、错误攻击、定时攻击等等。 其中,穷尽密钥搜索攻击是一种与计算技术密不可分的补素密码分 析技术,也是最常用的一种密码分析技术。通过这种技术,可以破 译DES的算法。在DES最初公布的时候,人们就认为这种算法的密钥 太短(仅为56bit),抵抗不住穷尽密钥搜索的攻击。因此,1997 年1月28日,美国colorado的程序员Verser从1997年3月13日起, 在Internet上数万名志愿者的协同下,用96天的时间,于1997年6
.AAA密码体制分类及典型算法描述 换位与代替密码体制 序列与分组密码体制 对称与非对称密钥密码体制 BBB试对代替密码和换位密码进行安全性分析。 1.单表代替的优缺点 优点:明文字符的形态一般将面目全非 缺点: (A)明文的位置不变; (B)明文字符相同,则密文字符也相同; 从而导致: (I)若明文字符e被加密成密文字符a,则明文中e的出现次数就是密文中字符a的出现次数; (II)明文的跟随关系反映在密文之中. 因此,明文字符的统计规律就完全暴露在密文字符的统计规律之中.形态变但位置不变 2.多表代替的优缺点 优点:只要 (1)多表设计合理,即每行中元互不相同,每列中元互不相同.(这样的表称为拉丁方表) (2)密钥序列是随机序列,即具有等概性和独立性。 这个多表代替就是完全保密的。 等概性:各位置的字符取可能字符的概率相同; 独立性:在其它所有字符都知道时,也判断不出未知的字符取哪个的概率更大。 2.多表代替的优缺点 密钥序列是随机序列意味着: (1)密钥序列不能周期重复; (2)密钥序列必须与明文序列等长; (3)这些序列必须在通信前分配完毕; (4)大量通信时不实用; (5)分配密钥和存储密钥时安全隐患大。 缺点:周期较短时可以实现唯密文攻击。 换位密码的优缺点 优点:明文字符的位置发生变化; 缺点:(A)明文字符的形态不变; 从而导致: (I)密文字符e的出现频次也是明文字符e的出现次数; 有时直接可破!(如密文字母全相同) 换位密码优缺点总结:位置变但形态不变. 代替密码优缺点总结:形态变但位置不变. CCC…..ADFGX密码解密过程分析。 1918年,第一次世界大战已经接近尾声。为了挽回日趋不利的局面,德军集中了500万人的兵力,向协约国发动了猛烈的连续进攻。 采用一种新密码:ADFGX密码体制。 该密码用手工加解密费时不多,符合战地密码的基本要求。 进行了两次加密,有两个密钥:一个是代替密钥(棋盘密钥)一个是换位密钥
第3章 分组密码 习题及参考答案 1. 设DES 算法中,明文M 和密钥K 分别为: M =0011 1000 1100 0100 1011 1000 0100 0011 1101 0101 0010 0011 1001 1110 0101 1110 K =1010 1001 0011 0101 1010 1100 1001 1011 1001 1101 0011 1110 1101 0101 1100 0011 求L 1和R 2。 解: 初始变换IP : 1001 1010 1101 0101 1101 0010 0011 1000 0101 0110 0010 0101 1100 0101 1110 1000 则,0L =1001 1010 1101 0101 1101 0010 0011 1000 0R =0101 0110 0010 0101 1100 0101 1110 1000 K 去校验位得: 0C =1101 0111 1100 0000 0010 0111 0111 0D =1010 1000 0111 0110 0011 0101 0010 循环左移一位:1C =1010 1111 1000 0000 0100 1110 1111 1D =0101 0000 1110 1100 0110 1010 0101 经过置换选择得到:1K =0000 1111 0110 1000 1101 1000 1001 1010 1000 0111 0011 0001 同样可以得到:2K =0101 0101 0110 0001 1101 1101 1011 0101 0101 0000 0110 1110 1L =0R =0101 0110 0010 0101 1100 0101 1110 1000
摩斯密码以及十种常用加密方法 ——阿尔萨斯大官人整理,来源互联网摩斯密码的历史我就不再讲了,各位可以自行百度,下面从最简单的开始:时间控制和表示方法 有两种“符号”用来表示字元:划(—)和点(·),或分别叫嗒(Dah)和滴(Dit)或长和短。 用摩斯密码表示字母,这个也算作是一层密码的: 用摩斯密码表示数字:
用摩斯密码表示标点符号: 目前最常用的就是这些摩斯密码表示,其余的可以暂时忽略 最容易讲的栅栏密码: 手机键盘加密方式,是每个数字键上有3-4个字母,用两位数字来表示字母,例如:ru用手机键盘表示就是:7382, 那么这里就可以知道了,手机键盘加密方式不可能用1开头,第二位数字不可能超过4,解密的时候参考此
关于手机键盘加密还有另一种方式,就是拼音的方式,具体参照手机键盘来打,例如:“数字”表示出来就是:748 94。在手机键盘上面按下这几个数,就会出现:“数字”的拼音 手机键盘加密补充说明:利用重复的数字代表字母也是可以的,例如a可以用21代表,也可以用2代表,如果是数字9键上面的第四个字母Z也可以用9999来代表,就是94,这里也说明,重复的数字最小为1位,最大为4位。 电脑键盘棋盘加密,利用了电脑的棋盘方阵,但是个人不喜这种加密方式,因需要一个一个对照加密
当铺密码比较简单,用来表示只是数字的密码,利用汉字来表示数字: 电脑键盘坐标加密,如图,只是利用键盘上面的字母行和数字行来加密,下面有注释: 例:bye用电脑键盘XY表示就是: 351613
电脑键盘中也可参照手机键盘的补充加密法:Q用1代替,X可以用222来代替,详情见6楼手机键盘补充加密法。 ADFGX加密法,这种加密法事实上也是坐标加密法,只是是用字母来表示的坐标: 例如:bye用此加密法表示就是:aa xx xf 值得注意的是:其中I与J是同一坐标都是gd,类似于下面一层楼的方法:
第九章、实验报告 实验一、设置Windows启动密码 一、实验目的:利用Windows启动密码保存重要文件。 二、实验步骤: 1、在Windows XP系统中选择开始——运行,在打开输入框中“syskey.exe”,点击确定,打开“保证Windows XP账户数据库的安全”对话框。 2、单击【更新】,打开【启动密码】对话框,然后输入密码,在【确认】文本框中再次输入密码,单击【确定】
实验二、为word文档加密解密 一、实验目的:保护数据的安全 二、实验步骤: 1、打开一个需要加密的文档,选择【工具】——【选项】——【安全性】然后输入想要设置打开文件时所需的密码 2、单击【高级(A)】打开加密类型对话框,选中【加密文档属性】复选框,单击【确定】。
3、打开文件的【确认密码】对话框,输入打开文件时需要的密码,单击【确定】,随即打开【确认密码】对话框,输入密码。 4、保存文件后,重新打开Word文档,打开【密码】,输入打开文件所需的密码,单击【确定】输入修改的密码,单击【确定】 破解word密码 (1)安装Advanced Office Password Recovery软件,安装完成后打开需要破解的word 文档,进行暴力破解,结果如图所示: 实验三、使用WinRAR加密解密文件
一.实验目的:加密文件,保证文件的安全性。 二.实验步骤: 1、在需要加密的文件夹上右击,选中【添加到压缩文件】打开【压缩文件名和参数】 2、选中【压缩文件格式】组合框中的【RAR】并在【压缩选项】中选中【压缩后删除源文件】然后切换到【高级】,输入密码,确认密码。 3、关闭对话框,单击确定,压缩完成后,双击压缩文件,系统打开【输入密码对话框】 破解WinRAR加密的文件 (1)安装Advanced RAR Password Recovery软件,打开WinRAR加密文件,进行暴力破解,获得密码。结果如图:
密码学技术与应用 1、 B 是指网络中的用户不能否认自己曾经的行为。 A.保密性 B.不可抵赖性 C.完整性 D.可控性 2. 如果消息接收方要确认发送方身份,将遵循以下哪条原则 B 。 A.保密性 B.鉴别性 C.完整性 D.访问控制 3. A 将不会对消息产生任何修改。 A.被动攻击 B.主动攻击 C.冒充 D.篡改 4. A 要求信息不致受到各种因素的破坏。 A.完整性 B.可控性 C.保密性 D.可靠性 5.凯撒密码把信息中的每个字母用字母表中该字母后的第三个字母代替,这种密码属于 A 。 A.替换加密 B.变换加密 C. 替换与变换加密 D.都不是 6. C 要求信息不被泄露给未经授权的人。 A.完整性 B.可控性 C.保密性 D.可靠性 7.公钥密码体制又称为 D 。 A.单钥密码体制 B.传统密码体制 C.对称密码体制 D.非对称密码体制 8.私钥密码体制又称为 C 。 A.单钥密码体制 B.传统密码体制 C.对称密码体制 D.非对称密码体制 9. 研究密码编制的科学称为 C 。 A.密码学 B.信息安全 C.密码编码学 D.密码分析学 10. 密码分析员负责 B 。 A.设计密码方案 B.破译密码方案 C.都不是 D.都是 11.3-DES加密 C 位明文块。 A.32 B.56 C.64 D.128 12.同等安全强度下,对称加密方案的加密速度比非对称加密方案加密速度 A 。 A.快 B.慢 C.一样 D.不确定 13.一般认为,同等安全强度下,DES的加密速度比RSA的加密速度 B 。 A.慢 B.快 C.一样 D.不确定 14.DES即数据加密标准是一个分组加密算法,其(明文)分组长度是 C bit,使用两个密钥的三重DES的密钥长度是 bit A.56,128 B.56,112 C.64,112 D.64,168 15. B 算法的安全性基于大整数分解困难问题。 A. DES B. RSA C.AES D. ElGamal 16.如果发送方用私钥加密消息,则可以实现 D 。
第八节 分组密码的工作模式和一般设计原理 1
分组密码的工作模式 为什么要设计工作模式? 分组密码的工作模式是:根据不同的数据格式和安全性要求, 以一个具体的分组密码算法为基础构造一个分组密码系统的方法。分组密码的工作模式应当力求简单, 有效和易于实现。 2
1980年12月, FIPS 81标准化了为DES开发 的五种工作模式。这些工作模式适合任何分组密码。现在, AES的工作模式正在研发, 这些AES 的工作模式可能会包含以前DES的工作模式, 还 有可能包括新的工作模式。我们仅以DES为例介 绍分组密码主要的五种工作模式。 3
4直接使用DES 算法对64bit 的数据进行加密的工作模式就是ECB 模式。在这种工作模式下, 加密变换和解密变换分别为: DES ()i i k c m = i =1,2,… (4.12) 1DES ()i i k m c ?= i =1,2,… (4.13) 这里k 是DES 的种子密钥, i m 和i c 分别是第i 组明文和密文。 电码本(ECB)模式
在给定密钥下, i m有64 2种可能的取值, i c也有64 2种可能的取值, 各(i m, i c)彼此独立, 构成一个巨大的单表代替密码, 因而称其为电码本模式。 5
+=,则相应的密文ECB模式的缺点是:如果n i i m m +=,即在给定密钥k下,同一明文组总是产生同n i i c c 一密文组,这会暴露明文组的数据格式。某些明文的数据格式会使得明文组有大量的重复或较长的零串,一些重要的数据常常会在同一位置出现,特别是格式化的报头、作业号、发报时间、地点等特征都将被泄露到密文之中,使攻击者可以利用这些特征。 6
填空题 1、密码学的主要任务是实现机密性、鉴别、数据完整性、抗抵赖性。 1、机密性是一种允许特定用户访问和阅读信息,而非授权用户对信息内容不可理解的安全属性。在密码学中,信息的机密性通过加密技术实现。 2、完整性数据完整性即用以确保数据在存储和传输过程中不被非授权修改的的安全属性。密码学可通过采用数据加密、报文鉴别或数字签名等技术来实现数据的完整性保护。 3、鉴别是一种与数据来源和身份鉴别有关的安全服务。鉴别服务包括对身份的鉴别和对数据源的鉴别。对于一次通信,必须确信通信的对端是预期的实体,这就涉及到身份的鉴别。 4、抗抵赖性 是一种用于阻止通信实体抵赖先前的通信行为及相关内容的安全特性。密码学通过对称加密或非对称加密,以及数字签名等技术,并借助可信机构或证书机构的辅助来提供这种服务。 5、密码编码学的主要任务是寻求有效密码算法和协议,以保证信息的机密性或认证性的方法。它主要研究密码算法的构造与设计,也就是密码体制的构造。它是密码理论的基础,也是保密系统设计的基础。 6、密码分析学的主要任务是研究加密信息的破译或认证信息的伪造。它主要是对密码信息的解析方法进行研究。 7、明文(Plaintext)是待伪装或加密的消息(Message)。在通信系统中它可能是比特流,如文本、位图、数字化的语音流或数字化的视频图像等。 8、密文(Ciphertext)是对明文施加某种伪装或变换后的输出,也可认为是不可直接理的字符或比特集,密文常用c表示。 9、加密(Encrypt )是把原始的信息(明文)转换为密文的信息变换过程。 10、解密(Decrypt)是把己加密的信息(密文)恢复成原始信息明文的过程。 11、密码算法(Cryptography Algorithm)也简称密码(Cipher),通常是指加、解密过程所使用的信息变换规则,是用于信息加密和解密的数学函数。对明文进行加密时所采用的规则称作加密算法,而对密文进行解密时所采用的规则称作解密算法。加密算法和解密算法的操作通常都是在一组密钥的控制下进行的。 11、密钥(Secret Key )密码算法中的一个可变参数,通常是一组满足一定条件的随机序列 12、替代密码是指先建立一个替换表,加密时将需要加密的明文依次通过查表,替换为相应的字符,明文字符被逐个替换后,生成无任何意义的字符串,即密文,替代密码的密钥就是其替换表。 13、根据密码算法加解密时使用替换表多少的不同,替代密码又可分为单表替代密码和多
选择题 1、如果发送方用私钥加密消息,则可以实现() A、保密性 B、保密与鉴别 C、保密而非鉴别 D、鉴别 2、在混合加密方式下,真正用来加解密通信过程中所传输数据(明文)的密钥是() A、非对称算法的公钥 B、对称算法的密钥 C、非对称算法的私钥 D、CA中心的公钥 3、以下关于加密说法,不正确的是() A、加密包括对称加密和非对称加密两种 B、信息隐蔽是加密的一种方法 C、如果没有信息加密的密钥,只要知道加密程序的细节就可以对信息进行解密 D、密钥的位数越多,信息的安全性就越高 4、以下关于混合加密方式说法不正确的是:() A、采用公开密钥体制进行通信过程中的加解密处理 B、采用公开密钥体制对对称密钥体制的密钥进行加密后的通信 C、采用对称密钥体制对对称密钥体制的密钥进行加密后的通信 D、采用混合加密方式,利用了对称密钥体制的密钥容易管理和非对称密钥体制的加解密处理速度快的双重优点 5、两个不同的消息摘要具有相同的值时,称为() A、攻击 B、冲突 C、散列 D、都不是
6、()用于验证消息完整性。 A、消息摘要 B、加密算法 C、数字信封 D、都不是 7、HASH函数可应用于()。 A、数字签名 B、生成程序或文档的“数字指纹” C、安全存储口令 D、数据的抗抵赖性 8、数字证书采用公钥体制,每个用户设定一把公钥,由本人公开,用它进行: A、加密和验证签名 B、解密和签名 C、加密 D、解密 9、数字签名为保证其不可更改性,双方约定使用() A、HASH算法 B、RSA算法 C、CAP算法 D、ACR算法 10、1是网络通信中标志通信各方身份信息的一系列数据,提供一种在Internet上验证身份的方式 A、数字认证 B、数字证书 C、电子证书 D、电子认证 11、以下关于CA认证中心说法正确的是
一、选择 1.若一个单向函数存在一个附加信息,当不知道该附加信息时从函数值求原像是困难的,但是知道 该附加信息时从函数求原像是容易的,则该单向函数是 A.陷门单向函数 B.门陷单向函数 C.完全单向函数D容量单向函数 2.标志着公钥密码学诞生的事件是 A. C.Shannon发表的保密系统的通信理论 B.W.Diffle和M.Hellman发表“密码学的新方向”一文 C. C.RSA加密公钥的提出 D.维吉利亚密码体制的提出。 3.下列密码体制中,被认为无条件安全的是 A.一次一密乱码本(one-time pad) B.ElGamal C.RSA D.Cramer-Shop 4.下列密码体制中,不属该分组密码的是 A.IDEA B.AES C.ElGamal D.DES 5.目前通称的AES算法指的是 A.Terpent算法 B.RCG算法 C.Rijndael算法 D.Tuofish算法 二、填空 1.按照一个明文字母是否总是被一个固定的字母代换进行划分,代换密码可分为单表代换密码和 多表代换密码。 2.经典密码学的2个分支:密码编码学和密码分析学。 3.根据攻击者所拥有的信息不同,对数字签名方案的攻击主要有惟密钥攻击,已知消息攻击,选 择消息攻击,适应性选择消息攻击四种常见的类型。 4.分组密码主要有电子密码本模式(ECB) ,密码分组链接模式(CBC) ,密码反馈模式(CFB) , 输出反馈模式(OFB) 。 5.根据密码分析者破译时已具备的条件,把对密码系统的常见攻击分为惟密文攻击,已知明文攻 击,选择明文攻击,选择密文攻击。 三、问答 1.Feistel 密码结构主要部件是哪些?它在迭代运算中起到什么作用? ANS:Feistel密码是通过代替和置换(S-P网络)交替的方式来构造分组密码,其实就是基于混乱和扩散原理实现加解密运算。 S盒变换:它把输入的一个n长的比特串转化为另一个m长的比特串输出。 P盒变换:通过把一个比特串中各比特的位置次序重新排列而得到新的比特串的变换。 2.数字签名的四个特征? ANS:数字签名具有以下特征: (1) 收方能够确认或证实发方的签名,但不能伪造。 (2) 发方发出签名的消息给收方后,就不能再否认他所签发的消息。 (3) 收方对已收到的签名消息不能否认。 (4) 第三者可以确认收发双方之间的消息传送,但不能伪造这一过程。 3.分组密码主要优点是什么?其设计原则应考虑哪些问题? ANS:分组密码的优点是:明文信息良好的扩展性,对插入的敏感性,不需要密钥同步,较强的适用性,适合作为加密标准。在分组密码具体设计中,还需重点考虑的有:S盒的设计、P盒的设计、轮函数F的设计、迭代轮数以及密钥扩展算法等。
流密码和分组密码 按照密钥的特征不同,密码体制分为对称密码体制和非对称密码体制。按照对明文消息加密方式的不同,密码体制分为流密码(Stream Cipher )和分组密码(Block Cipher )[1]。非对称密码体制均为分组密码[2]。 1 流密码 流密码也称为序列密码。在流密码中,明文以序列的方式表示,称为明文流。在对明文流进行加密时,先由种子密钥生成一个密钥流。然后,利用加密算法把明文流和密钥流加密,产生密文流。流密码每次只对明文中的单个bit 位进行加密变换,加密过程所需的密钥流由种子密钥通过密钥流生成器产生。流密码的主要原理是通过随机数发生器产生性能优良的伪随机序列(密钥流),使用该序列加密明文流(逐bit 位加密),得到密文流。由于每一个明文都对应一个随机的加密密钥,因此流密码在理论上属于无条件安全的密码体制(一次一密密码) [3]。流密码的基本加密过程,如图1所示。 图1 流密码的加密过程 设明文流为:12i m m m m = ,密钥流由密钥流发生器f 产生:(,)i i z f k σ=,这里i σ是加密器中的存储器在时刻i 的状态,f 是由种子密钥k 和i σ产生的函数。设最终得到的密钥流为: 12i k k k k = ,加密结果为:121212()()()i i k k k i c c c c E m E m E m == ,解密结果为: 121212()()()i k k k i i m D c D c D c m m m == 。用流密码进行保密通信的模型,如图2所示: 图2 流密码保密通信图 2 分组密码 分组密码也称为块密码。当加密一条长消息(明文)时,首先,将明文编码表示为二进制序列;然后,将其分成若干个固定长度的组(最后一组长度不够时还得进行填充,如补0);
实习二分组密码加密 一、实习目的 1.理解对称加密算法的原理,熟悉常用的对称加密算法:DES、TripleDES、Blowfish; 2.以DES加密算法为例,掌握分组加密算法加、解密过程的实现。 二、实习要求 1.实习前认真预习第5章有关内容; 2.熟悉java中的java.security.*和java.crypto.*中的相关类; 3.按要求认真撰写实习报告。 三、实习内容 1.[基本要求] 以DES/DESede为例,利用java中的相关类实现对指定字符串的加、解密。 2.[实现提示] (1) 可以利用java中的KeyGenerator类创建对称秘钥,利用工厂类KeyGenerator 的静态方法getInstance()获得KeyGenerator()类对象; (2) 方法getInstance()的参数为字符串类型,指定加密算法的名称如:Blowfish、DES、DESede、HmacMD5或HmacSHA1等; (3) 利用工厂类Cipher的对象可以创建密码器。同样的,getInstance()的参数为字符串类型,指定加密算法的名称。 实验截图: 以DES加密为例,客户端:
客户端解密: 实习代码: 服务器MyServer类: package Caesar_Modification; import java.awt.EventQueue; import java.awt.TextArea; import javax.crypto.BadPaddingException; import javax.crypto.Cipher; import javax.crypto.IllegalBlockSizeException; import javax.crypto.NoSuchPaddingException; import javax.swing.JFrame;
DES分组密码实验报告 一、DES算法的实现 1.DES简介 DES算法工作:如Mode为加密,则用Key 去把数据Data进行加密,生成Data的密码形式(64位)作为DES的输出结果;如Mode为解密,则用Key去把密码形式的数据Data解密,还原为Data的明码形式(64位)作为DES的输出结果。在通信网络的两端,双方约定一致的Key,在通信的源点用Key对核心数据进行DES加密,然后以密码形式在公共通信网(如电话网)中传输到通信网络的终点,数据到达目的地后,用同样的Key对密码数据进行解密,便再现了明码形式的核心数据。这样,便保证了核心数据(如PIN、MAC等)在公共通信网中传输的安全性和可靠性。 2. DES算法详述 (1)DES加密标准 DES是对二元数字分组加密的分组密码算法,分组长度为64比特。每64位明文加密成64位密文,没有数据压缩和扩展,密钥长度为56比特,若输入64比特,则第8,16,24,32,40,48,56,64为奇偶校验位,所以,实际密钥只有56位。DES算法完全公开,其保密性完全依赖密钥。 DES的加密过程可表示为: DES(m)= IP-1T16·T15…T2·T1·IP(m). 右图面是完全16轮DES算法框图: 图1 完全16轮DES算法
1 初始置换IP 初始置换是将输入的64位明文分为8个数组,每一组包括8位,按1至64编号。 IP的置换规则如下表: 表1 IP置换规则 58 50 42 34 26 18 10 2 60 52 44 36 28 20 12 4 62 54 46 38 30 22 14 6 64 56 48 40 32 24 16 8 57 49 41 33 25 17 9 1 59 51 43 35 27 19 11 3 61 53 45 37 29 21 13 5 63 55 47 39 31 23 15 7 2 IP-1是IP的逆置换 由于第1位经过初始置换后,已处于第40位。逆置换就是再将第40位换回到第1位。 逆置换规则如下表所示: 表2 IP-1置换 40 8 48 16 56 24 64 32 39 7 47 15 55 23 63 31 38 6 46 14 54 22 62 30 37 5 45 13 53 21 61 29 36 4 44 12 52 20 60 28 35 3 43 11 51 19 59 27 34 2 42 10 50 18 58 26 33 1 41 9 49 17 57 25 初始置换IP及其逆置换IP-1并没有密码学意义,因为置换前后的一一对应关系是已知的。它们的作用在于打乱原来输入明文的ASCⅡ码字划分的关系,并将原来明文的第m8,m16,m24,m32,m40,m48,m56,m64位(校验位)变成IP的输出的一个字节。 3. DES算法的迭代过程 图中Li-1和Ri-1分别是第i-1次迭代结果的左右两部分,各32比特。即Li=Ri-1, Ri=Li-1 f(Ri-1,ki)。其中轮密钥Ki为48比特,函数F(R,K)的计算过程如图所示。轮输入的右半部分R为32比特,R首先被扩展成48比特,扩展过程由表3定义,其中将R的16个比特各重复一次。扩展后的48比特再与子密钥Ki异或,然后再通过一个S盒,产生32比特的输出。该输出再经过一个由表4定义的置换,产生的结果即为函数F(R,K)的输出。 32 1 2 3 4 5
1、密码体制分类及典型算法描述 密码体制分为三类:1、换位与代替密码体质2、序列与分组密码体制3、对称与非对称密钥密码体制。 典型算法描述: 2、试对代替密码和换位密码进行安全性分析。 1.单表代替的优缺点 优点: 明文字符的形态一般将面目全非 缺点: (A) 明文的位置不变; (B) 明文字符相同,则密文字符也相同; 从而导致: (I) 若明文字符e被加密成密文字符a,则明文中e的出现次数就是密文中字符a的出现次数; (II) 明 文的跟随关系反映在密文之中. 因此,明文字符的统计规律就完全暴露在密文字符的统计规律之中.形态变但位置不变 2. 多表代替的优缺点优点: 只要(1) 多表设计合理,即每行中元互不相同,每列中元互不相同.(这样的表称为拉丁方表) (2) 密钥序列是随机序列即具有等概性和独立性。这个多表代替就是完全保密的。等概性:各位置的字符取可能字符的概率相同独立性在其它所有字符都知道时也判断不出未知的字符取哪个的概率更大。 2. 多表代替的优缺点密钥序列是随机序列意味着 1密钥序列不能周期重复 2密钥序列必须与明文序列等长 3这些序列必须在通信前分配完毕 4大量通信时不实用 5分配密钥和存储密钥时安全隐患大。 缺点周期较短时可以实现唯密文攻击。换位密码的优缺点 优点: 明文字符的位置发生变化; 缺点: (A) 明文字符的形态不变; 从而导致: (I) 密文字符e的出现频次也是明文字符e的出现次 数; 有时直接可破! (如密文字母全相同) 换位密码优缺点总结: 位置变但形态不变. 代替密码优缺点总结: 形态变但位置不变 3、ADFGX密码解密过程分析 1918年第一次世界大战已经接近尾声。为了挽回日趋不利的局面德军集中了500万人的兵力向协约国发动了猛烈的连续进攻。采用一种新密码ADFGX密码体制。该密码用手工加解密费时不多符合战地密码的基本要求。进行了两次加密有两个密钥一个是代替密钥棋盘密钥一个是换位密钥。其结果是把前面代替加密形成的代表同一明文字符的两个字母分散开破坏密文的统计规律性。代替密钥和换位密钥可以按约定随时更换增加破译难度。得到密文后取得换位密钥将密钥数字依次列出并画出M*(N+1)格子其中M为密文中的字符串数,N为最长字符串中字符个数并将字符串依次竖直写在对应的换位密钥数字下面此时按照以首开始横行依次写下来即得到正确顺序密文再根据代替密钥棋盘密钥找出对应的字母即可解密。 4、试计算(1~25)模26的逆元 2,4,6,8,10,12,13,14,16,18,20,22,24.均无逆元。1.1; 3.9; 5.21;7.15;9.3; 11.19;15.7;17.23;19.11;21.5;23.17;25.25 5、RC4流密码原理及应用 广泛应用于商业密码产品中一种可变密钥长度的序列密码 6、密码学涉及的数学理论主要有哪些 数论研究整数性质的一个数学分支。用于密码算法设计。
一填空题 1.密码学发展的四个阶段:、、 、。 2.DES的分组长度是比特,密钥长度是比特,密文长度是64比特。 3.数字签名方案是指由、、 、、组成的五元组。 4.信息安全的核心是;密码学研究的主要问题是 5.加密算法模式有四种,分别是:,, 5.DES的分组长度是比特,密钥长度是比特,密文长度是比特。 6.AES的密钥长度可以是、、;AES圈变换的由四个 不同的变换组成,它们分别是、、 、。 7.柯可霍夫原则指出密码系统的安全性不能取决于,而应取决于。 8.柯可霍夫原则指出密码系统的安全性不能取决于,而应取决 于。 9.根据加密内容的不同,密钥可以分 为、、 10.对称密码体制可以分为和两类。 11.哈希函数MD5和SHA-1的输出长度分别是和比特。 12.密码学由和组成。 13.分组密码的加解密算法中最关键部分是非线性运算部分,那么,DES加密算法的非 线性预算部分是指非线性代换,AES加密算法的非线性运算部分是指。 14. DES与AES有许多相同之处,也有一些不同之处,请指出两处不同: AES密钥长 度可变DES不可变, DES面向比特运算AES面向字节运算。
15. MD5的主循环有(4 )轮。 16. SHA1接收任何长度的输入消息,并产生长度为(160)bit的Hash值。 17.分组加密算法(如AES)与散列函数算法(如SHA)的实现过称最大不同是(可逆)。 18.Hash函数就是把任意长度的输入,通过散列算法,变换成固定长度的输出,该输 出称为。 19.Hash函数的单向性是指对任意给它的散列值h找到满足H(x)=h的x 在计算上 是不可行的。 20.公钥密码体制的思想是基于陷门单向函数,公钥用于该函数的正向(加密)计 算,私钥用于该函数的反向(解密)计算。 21.1976 年,和在密码学新方向一文中提出了公钥密码的思想,从而开创了线代密 码学的新领域。 22.公钥密码体制的出现,解决了对称密码体制很难解决的一些问题,主要体现一下三 个方面:密钥分发问题、密钥管理问题和数字签名问题。 23.RSA的数论基础是数论的欧拉定理,在现有的计算能力条件下,RSA 被 认为是安全的最小密钥长度是1024位。 24.公钥密码算法一般是建立在对一个特定的数学难题求解上,那么RSA算法是基于 大整数因子分解困难性、ElGamal算法是基于有限域乘法群上离散对数的困 难性。 25.为保证安全性,在设计分组密码时,密码变换必须足够复杂,尽量使用混淆与扩 散原则。这样使攻击者除了用穷举攻击以外,找不到其他简洁的数学破译方法二计算题
分组密码加密 一、实习目的 1.理解对称加密算法的原理,熟悉常用的对称加密算法:DES、TripleDES、Blowfish; 2.以DES加密算法为例,掌握分组加密算法加、解密过程的实现。 二、实习内容 1.[基本要求] 以DES/DESede为例,利用java中的相关类实现对指定字符串的加、解密。 2.[实现提示] (1) 可以利用java中的KeyGenerator类创建对称秘钥,利用工厂类KeyGenerator的静态方法getInstance()获得KeyGenerator()类对象; (2) 方法getInstance()的参数为字符串类型,指定加密算法的名称如:Blowfish、DES、DESede、HmacMD5或HmacSHA1等; (3) 利用工厂类Cipher的对象可以创建密码器。同样的,getInstance()的参数为字符串类型,指定加密算法的名称。 三、算法分析和流程图 DES算法为密码体制中的对称密码体制,又被成为美国数据加密标准,是1972年美国IBM公司研制的对称密码体制加密算法。其密钥长度为56位,明文按64位进行分组,将分组后的明文组和56位的密钥按位替代或交换的方法形成密文组的加密方法。DES加密算法特点:分组比较短、密钥太短、密码生命周期短、运算速度较慢。DES工作的基本原理是,其入口参数有三个:key、data、mode。 key为加密解密使用的密钥,data为加密解密的数据,mode为其工作模式。当模式为加密模式时,明文按照64位进行分组,形成明文组,key用于对数据加密,当模式为解密模式时,key用于对数据解密。
四、测试数据和预期结果 1按照规定,密钥输入移位的数字,明文输入字母,如下图所示,加密成功 2加密yanglingmalasong+123 3测试*能否加密 加密
第3章信息加密技术 练习题 1. 单项选择题 (1)就目前计算机设备的计算能力而言,数据加密标准DES不能抵抗对密钥的穷举搜索攻击,其原因是( B ) A.DES算法是公开的 B.DES的密钥较短 C.DES除了其中S盒是非线性变换外,其余变换均为线性变换 D.DES算法简单 (2)数字签名可以做到( C )。 A.防止窃听 B.防止接收方的抵赖和发送方伪造 C.防止发送方的抵赖和接收方伪造 D.防止窃听者攻击 (3)下列关于PGP(Pretty Good Privacy)的说法中不正确的是( D )。 A.PGP可用于电子邮件,也可以用于文件存储 B.PGP可选用MD5和SHA两种Hash算法 C.PGP采用了ZIP数据压缩算法 D.PGP不可使用IDEA加密算法 (4)为了保障数据的存储和传输安全,需要对一些重要数据进行加密。由于对称密码算法(① C ),所以特别适合对大量的数据进行加密。DES实际的密钥长度是(② A )位。 ① A.比非对称密码算法更安全 B.比非对称密码算法密钥长度更长 C.比非对称密码算法效率更高 D.还能同时用于身份认证 ② A.56B.64C.128D.256 (5)使用TELNET协议进行远程管理时,( A )。 A.包括用户名和口令在内,所有传输的数据都不会被自动加密 B.包括用户名和口令在内,所有传输的数据都会被自动加密 C.用户名和口令是加密传输的,而其它数据则以文明方式传输
D.用户名和口令是不加密传输的,其它数据则以加密传输的 (6)以下不属于对称密码算法的是( D )。 A.IDEA B.RC C.DES D.RSA (7)以下算法中属于非对称算法的是(??B?? )。 A.Hash算法B.RSA算法 C.IDEA D.三重DES (8)以下不属于公钥管理的方法有(??D?? )。 A.公开发布B.公用目录表 C.公钥管理机构D.数据加密 (9)以下不属于非对称密码算法特点的是(??D?? )。 A.计算量大B.处理速度慢 C.使用两个密码D.适合加密长数据 2. 填空题 (1)______摘要算法_____________的重要性在于赋予给消息M唯一的“指纹”,其主要作用于验证消息M的完整性。 (2)非对称加密算法有两把密钥,一把称为私钥、另一把称为公钥。 (3)IDEA是目前公开的最好和最安全的分组密码算法之一,它采用____128_______位密钥对数据进行加密。 (4)RSA算法的安全是基于两个大素数分解的难度。 (5)防火墙技术是指一种将内部网络与外部网络隔离的技术,以防止外部用户对内部用户进行攻击。 (6)MD5把可变长度的消息哈希成_______ 128 ____位固定长度的值。 (7)DES算法加密过程中输入的明文长度是_______64 ____位,整个加密过程需经过 16 轮的子变换。 (8)在密码学中通常将源消息称为____明文___ ____,将加密后的消息称为 ______密文_ ____。这个变换处理过程称为_______加密 ____过程,它的逆过程称为______解密_ ____过程。 3. 简答题 (1)对称加密算法与非对称加密算法有哪些优缺点? (2)如何验证数据完整性?
#include