密码学作业

密码学作业
密码学作业

通常可以假定攻击者知道用于加密的算法,那么就至少存在穷举攻击、基于统计的攻击和数学攻击这几种攻击方式。在现代密码学研究阶段,密码分析者对密码算法的攻击一般都遵循Kerckhoffs原则。密码分析通常有分析、推断、假设、证实等四个步骤,常见的密码分析攻击方法主要有以下几种:

(1)唯密文攻击(Ciphertext Only):密码分析者已知加密算法和待破译的密文。密码分析者的任务是恢复尽可能多的明文,或推算出加密算法的密钥,从而通过使用相同的密钥在算法中解密出其他信息。

已知:

推导出:

(2)已知明文攻击(Known Plaintext):密码分析者已知加密算法和经密

钥加密形成的一个或多个明文密文对,即知道一定数量的密文和对应的明文。密码分析者的任务是用加密信息推出加密密钥或导出一个对用同一密钥加密的任何新的信息进行解密的算法。

已知:

推导出:。

(3)选择明文攻击(Chosen Plaintext)-密码分析者已知加密算法,以及

选择的明文和对应的密文。在此种攻击中,密码分析者可以选择特定的明

文加密,从而推出用来加密的密钥或算法。这种攻击比已知明文攻击更加

有效。

(4)选择密文攻击(Chosen Ciphertext):密码分析者己知加密算法,以及

选择的密文和对应的明文。密码分析者的任务是推出已知加密算法的密钥。

这种攻击主要用于分析非对称密码体制。

已知:

推导出:密钥K。

(5)选择文本攻击(Chosen Text):这种攻击方式是选择明文攻击和选择

密文攻击的结合。密码分析者已知加密算法、由密码分析者选择的明文和

它对应的密文,以及由密码分析者选择的被加密的密文和它对应的明文。

除外,还有选择密文攻击、软磨硬泡攻击等密码分析方法。其中,唯

密文攻击是最困难的。一般来说,在唯密文攻击、已知明文攻击、选择明

文攻击下仍安全的密码体制,可以认为其可能是安全的。

多媒体快速加密算法的研究与分析

对Fridrich混沌密码的密码分析方法,分别从密钥空间、混沌参数敏感性、已知明文攻击、选择明文攻击等几个方面分析此密码系统的安全性,并给出密码安全性与计算复杂度之间的矛盾关系,最后给出提高系统安全性的方法。根据对Fridrich混沌密码的分析,给出一种基于Standard映射的块密码,其具有明文大小可变、计算复杂度相对较低等特点,适合多媒体数据的加密。

在过去的十年间出现了许多用于多媒体数据的加密算法。根据加密算法与压缩编码过程关系的不同,将现有算法分为如下几类分别讨论:第一类,将多媒体数据看作普通数据直接加密的方法,不具有相容性,称其为直接加密方法;第二类,在多媒体编码过程中,选择加密一部分数据,此类算法具有相容性,称其为选择性加密方法;第三类,将加密过程和压缩编码过程相结合的算法,即采用具有加密功能的压缩算法,它们具有相容性、可操作性,称其为具有压缩功能的加密方法。

1.直接加密方法

这类算法将多媒体数据当作普通二进制数据,使用传统的密码算法如DES、IDEA、RSA等来加密。这些方法利用了传统密码的高强度的优点,来满足高安全性要求,但同时带来了运算速度慢、难满足实时性要求的缺点。因此,这种算法更适合用于多媒体数据存储等实时性要求不高或者安全性要求很高的应用中。

2.选择性加密方法

多媒体数据通常具有数据量大的特点,通过选择加密一部分数据,可以降低加密的数据量,提高加密效率。

根据所加密的数据的不同,可以将视频加密算法分为如下几类讨论:选择加密不同帧和块,DCT系数置乱,加密DCT系数的符号和运动向量的符号,频率域数据置乱和符号加密相结合,加密数据格式信息等。

3.与编码过程相结合的加密方法

这类算法通常是将编码过程和加密过程相结合,使得二者同时进行。Sridharan等将加密过程与FFr变换过程相结合,即通过控制变换参数来实现安全的数据变换过程。

Ueharat提出将编码和加密相结合,并以小波变换编码中系数置乱为例,介绍了这种方法的可行性。

Wen等提出了使用定长编码FLC和变长编码VLC对进行加密的方法,即,直接置乱编码表,或者通过加密码字的序号来加密码流。

Tosun和Feng给出使用前向纠错编码实现加密的方法,这种方法使得纠错过程可以在不解密的情况下完成。

Wu和Kuor,提出采用多种Huff-man树(MHT)的加密方法。在使用熵编码中,可以采用多种熵编码的统计模型,通过密钥控制模型的选择来实现视频编码过程中的加密。

现有多媒体加密算法的不是

目前的多媒体加密算法存在以下不足:

(1)直接加解密方法通常加密较多的数据量,具有较高的安全性,但其高昂的计算复杂度给实时应用带来困难。

(2)选择性加密方法通过降低加密的数据量来提高效率,其种类较多,但缺少通用的安全性分析方法,因此,算法的安全性得不到保障。

(3)与编码过程相结合的加密方法将加密过程与编码过程相融合,提高了效率,但加密过程通常会给编码过程带来影响,而且,这类算法的针对已知明文攻击的安全性需要提高。

(4)针对多媒体网络传输过程,延迟、丢包和拥塞等现象时有发生,这对多媒体加密算法提出了特殊的要求,如数据可操作性、实时性、错误低敏感性等。

(5)多媒体加密算法只能实现多媒体内容的保护,而其内容完整性和版权信息超出加密算法的能力范围,因此,一个实用的系统应该将加密算法与保护完整性和版权信息的方法相结合。

针对目前的多媒体加密算法存在的问题,我们别对各类算法做了深入分析和研究。

(1)采用混沌密码来构造具有更高效率的直接加解密算法,在满足安全性要求的同时,获得更高的加解密效率。即,将混沌映射离散化到整数域,并将其与扩散过程相结合,以满足块密码的混乱性和扩散性要求,获得较高的计算安全性。

(2)针对选择性加密方法,利用Shannon的保密通信理论,给出一种安全加密模型。即,给出被加密的参数的选择方法。对于这些选定的参数,采用安全性高的加密算法(传统密码或混沌密码)可以保证较高的安全性。这在安全性和高效性之间获得较好的折衷。

(3)提出一种将加解密过程与编解码过程相结合的加密方案,即,在编解码过程中插入加解密操作,以达到保护密文内容的目的。这种方案保持数据格式不变,具有较高的效率,支持多种直接数据操作(如浏览、剪切、编码率控制、重压缩等),保持原始码流的容错性能,但具有较低的安全性。在此基础上,对已有的可感知加密方法进行改进,使得改进后的算法支持直接进行编码率控制操作。这种加密方案适合于对安全性要求较低、对容错性能要求高的应用中,如网络多媒体、视频点播、音频点播、在线广播、无线,移动多媒体等。

(4)提出一种将加密技术与数字签名和数字水印技术相结合的安全多媒体传输方案。即,对要传输的图像、视频、音频等多媒体数据,将其分为两个部分:敏感区域和非敏感区域,对其敏感区域进行数字签名,将此签名作为水印嵌入非敏感区域,采用选择性加密方法加密敏感区域,加密后的数据可以存储或传输。接收端的过程与发送过程对称。数字签名可以用来验证接收到的数据是否被恶意篡改或被传输过程损坏。这种方法及保护了多媒体内容,也保护了内容的完整性。

Fridrich混沌密码

Fridrich混沌密码由两个部分组成:混沌置乱和数据点扩散。其中,混沌置乱过程使用离散化的二维混沌映射置乱明文图像,混沌映射的参数被用作密钥;数据点扩散过程逐点改变数据点的值,扩散方程的初值和参数被用作密钥。此密

码系统如图2.2所示,其中,置乱和扩散过程被重复n次以增加系统的安全性;解密过程与加密过程对称。

Fridrich安全性分析

首先,映射参数用作暨乱密钥,参数的敏感性决定了密钥的敏感性。参数的敏感性越高,密钥的敏感性也越高,系统的安全性就越强。

其次,混沌映射的初值敏感性和各态遍历性决定了置乱强度。在混沌置乱中,初始值指的是数据点的位置,初始值的敏感性越高,被置乱后的相邻数据点之间的相关性越小,被置乱的图像越混乱。

因此,具有较高参数敏感性、初值敏感性和各态遍历性的混沌映射更适合用于此加密系统中。在数据点扩散过程中,一个数据点的变化可以扩散到其它数据点中,这使得系统保持较高的明文敏感性。

1穷举攻击

在此密码系统中,置乱过程和扩散过程的操作是独立的,因此,这个系统的密钥空间是置乱密钥和扩散密钥的密钥空间的组合。令置乱密钥的密钥空间为sl,扩散密钥的密钥空间为S2,则系统的密钥空间为

S=Sl·S2

其中,在不同的加密循环中采用的密钥是相同的。在实际应用中,不同的加密循环通常采用不同的密钥。那么,对于n次循环的加密系统,密钥空间为S=佤.S2)8。可见,系统的密钥空间随着混沌映射的参数空间s1、扩散函数的参数空间S2和加密循环次数n的增加而增加。以NxN的图像为例,数据点的灰度级为L,则基于以上三种混沌映射的密码系统的密钥空间如表2.2所示。从表中可见,对于某一混沌映射,在不同的加密循环中使用不同的密钥比使用相同的密钥具有更大的密钥空间;对于不同的混沌映射,Standard映射具有最大的密钥空间,Cat 映射的密钥空间最小,Baker映射的密钥空间居中。由此可见,Standard映射和Baker映射比Cat映射更适于此密码系统,并且可以选择较大的加密循环次数来增加系统的安全性。

2统计攻击

在此密码系统中,混沌映射的置乱特性与统计攻击的安全性有密切的关系。如果混沌映射能够将图像置乱成随机分布,那么统计攻击是非常困难的。此处,置乱强度依赖于混沌映射的初值敏感性和各态遍历性。混沌系统通常具有较高的初值敏感性和各态遍历性,但是,离散化后的混沌映射是否还能够保持这些特性,这还没有得到充分的证明。而且,混沌置乱的置乱强度通常与混沌映射和循环次数有关,这也缺乏一个衡量的标准。考虑到,置乱过程利用了混沌的初值敏感性

和各态遍历性来降低相邻数据点之间的相关性,此处给出一种测试混沌映射的置乱强度的方法,即,测试相邻点之间的平均距离变化率(Adc)。

平均距离变化率总是大于零的,除非原始图像与置乱后的图像相同。并且,Adc的值越大,说明置乱强度越高,图像越混乱。由混沌映射的特点可见,Adc 与循环次数有关。

3已知明文攻击

Fridrich分析了此密码系统针对一种己知明文攻击的安全性,即在已知明文情况下寻找相似密钥。结果表明,不同的密钥加密后的密文之间的差别很大,而使得此种攻击不可行。但是,注意到,在另一种已知明文攻击下,此密码系统是不够安全的。这主要是因为,所使用的混沌映射都有一个共性——不改变角点的位置。例如,Cat映射不改变(o固点鲍位置,即如果角点为,经过珏次混沌映射后,角点为。可见,Cat映射不改变(0,O'点的位置类似地,Baker映射和Standard映射均不改变此点的位置。

4选择明文攻击

在选择明文攻击中,差别较小的明文通常被攻击者使用,即通过分析它们的密文来寻找规律性。为此,安全的密码系统通常要求具有较高的明文敏感性,即明文中一个数据点的差别可以导致密文中很大的差别。那么,导致的差别越大,密码系统的明文敏感性越高,系统的安全性也越高。在此密码系统中,明文敏感性与扩散函数的扩散速率相关。

基于混沌理论的加密技术

基于混沌系统的多媒体信息安全研究现状

1.基于混沌动力学系统的密码序列研究现状

在保障信息安全各种功能特性的诸多技术中,密码技术是信息安全的核心和关键,通过数据加密,可以在一定程度上提高数据传输的安全性,保证传输数据的完整性。

由于混沌系统对初始条件极端敏感,利用此特性可以产生数量众多、非相关、类随机而又确定可再生的混沌序列,因此,基于混沌系统的密码研究一直是一个十分活跃的方向。

英国数学家Matthews最先研究了利用混沌映射构造随机序列进行数据加密的方法,之后,R.Brown、M.Andrecut、T.Stojanovski、L.Koearev等诸多学者又先后研究了混沌伪随机数发生器(CPRNG)以及混沌伪随机二值序列发生器(CPRBSG)的构造方法。他们通过大量实验研究表明,混沌序列的初值敏感性高,密钥量大,自相关性强,互相关性弱,具有良好的随机性。但后续研究表明,这些CPRNG或CPRBSG大都是利用离散的混沌映射在连续域上实现的,很少考虑了实际数字实现中的有限字长(精度)及连续混沌映射离散后的周期性等问题,因而这些混沌伪随机序列的产生方法从严格意义上来说都是不安全的。基于混沌系统的密码研究仍存在许多有待解决的技术问题。

2. 基于混沌分组密码的数字图像加密算法研究现状

早期的算法往往只拘泥于像素数值改变或位置置乱的某一方面,J.C.Yen等人提出了一系列混沌图像加密算法,基本都遵循如下思路:首先用一个混沌系统来生成伪随机序列,然后用该伪随机序列对图像中的像素值进行改变。

但该类算法仅对图像像素值进行了改变,从严格的密码学意义上来讲都是不够安全的,因为它们都不能从本质上抵抗已知明文攻击和选择明文攻击算法,只需要一个明密文图像对即可有效地破解出等效密钥。

3.基于混沌序列密码的流数据加密算法研究现状

网络环境中的流数据包括视频流和音频流等,目前基于混沌系统的音频流数据加密算法研究较少,而基于混沌的视频流加密算法(简称CVEA)研究则取得了一定的进展。典型CVEA的核心思想是组合一个简单的流密码和一个简单的混沌分组密码(具有时变的S盒)构成一个更为复杂的乘积密码系统。

CVEA可以独立于任何视频压缩算法,因而不会被明文视频的格式所限制,算法安全性较高,速度较快,这是其优点,但混沌多次迭代的使用是导致混沌密码运行速度较慢的首要原因,而少的迭代又可能带来安全隐患。

4.基于混沌系统的数字水印技术研究现状

现阶段混沌理论在数字水印中的应用主要集中在混沌水印生成方面,总的来说包括两个方面:一是应用混沌序列生成水印;二是利用混沌序列对水印信息进行加密。

混沌应用于信息安全领域所需解决的问题

1.离散混沌系统的动力学退化问题。

2.混沌轨迹安全性问题。

3.混沌密码算法的复杂度和实时性问题。

4.混沌应用于水印系统的功能单一化问题。

5.软硬件实现的可行性问题。

基于混沌的多媒体信息安全研究

(1)混沌系统中的相关现象及混沌密码序列研究

通过对单一离散混沌系统中的“平凡密钥"和“拟平凡密钥"现象极易被忽视,混沌轨迹的安全性也无法得到保障问题或现象进行了分析,得出了几种比较实用的混沌伪随机序列和矩阵的候选产生算法。

(2)基于混沌分组密码的数字图像加密算法研究

置乱和扩散相结合的空域图像分组加密改进算法,其置乱矩阵和扩散序列(含替换和异或序列)完全由混沌映射生成,加密轮数n由密钥控制。

对高维混沌映射用于数字图像加密的方案进行了重点探讨,提出了一种较为合理的周期性改进方案及相应算法。探讨了二维混沌映射三维化的方法和图像加密思路,提出了一种基于DCT域和三维Anorld变换的彩色图像加密方案。实验仿真表明,这些图像加密算法均具有较高的安全性和较快的速度。

(3)基于混沌序列密码的视频压缩流加密算法研究

针对视频压缩流与静态图像在实时性要求和数据结构方面具有的较大差异,提出了两种基于混沌序列密码的视频压缩流直接加密算法,仿真分析表明,这两种改进算法有效的提高了算法的实时性。

为进一步提高此类算法的安全性,论文随后提出了一种基于混沌映射的S.盒候选设计方案,并在此基础上,采用格雷码分段置乱和部分数据进行S.盒替换相结合的方法,提出了一种能够有效抵抗差分攻击和线性攻击的视频压缩流加密算法。

基于混沌的视频流选择加密算法

目前的视频流加密算法,根据研究方法的不同,可以分为(1)考虑压缩视频流的特性,采用普通加密算法的加密机制;(2)没有考虑视频流的特性,但是在加密协议和算法上进行改进的加密机制.

根据加密算法的不同又可以分为(1)块密码的视频流加密算法;(2)流密码的视频流加密算法。

现有算法及分析:

根据视频流压缩和变换方式的不同,可细分为:基于MPEG 压缩方法的加密方式和基于其它压缩方法的加密方式,根据加密运算在流媒体流化过程中的阶段,又可以分为压缩前源数据加密、变换后系数加密、基于编码的数据加密、传输流头信息、辅助信息和内容数据加密等.

Zigzag-permutation 算法是最早的视频流加密方法,属变换后系数加密,对8 X 8 的DCT 系数的排列次序进行变化,以完成加密,它的优点是加密运算和原zigzag 排列运算没有增加复杂度,但是由于DCT 参数的概率分布被破坏,使编码效率降低,压缩比减小. 同时,它容易通过分析DCT 变换后频率系数的特性进行破译.

VEA(Video Encryption AIgorithm)算法是对所有块的DCT 系数的符号位进行加密,包括I,P,B帧.该方法的优点是:算法简单,增加m 的长度可以增强加密强度;缺点是,采用线性反馈移位寄存器产生密钥流,安全性差,同时由于加密的数据流量大,密钥重复的次数多,密钥的使用量大,加密和解密端的加密协商开销大,无法防止已知明文攻击.

AIattar 和AI-Regib提出了一种对I 宏块和预测宏块选择加密的方法,它提出了三种等级的改进:(l)每隔I 个I 宏块加密一次,其它宏块保持不变,I 的值由经验决定,虽然其它宏块没有加密,但是,由于一个加密宏块中的六个块的DC 系数发生了变化,加上DC 系数的差分编码方式,使所有宏块的亮度和色度都发生了变化和偏移.(2)由于方法l 加密的流回放时,运动信息仍然很明显,所以在对每I 个I 宏块加密的基础上对每个预测宏块头信息进行DES 加密.(3)每隔第I 个I 宏块和第I个预测宏块进行加密. 该方法的优点是采用DES 加密方法,安全性有保证,可以防止已知明文攻击,但是计算量仍然较大,不利于实时处理.

Wu 和Moo 提出了一种基于嵌入式条件熵编码ECECOW(Embedded ConditionaI EntropyCoding of WaveIet Coefficient)的流加密技术,该ECECOW 方法的最大特点是将高次上下文模型和自适应算术编码结合. 加密算法的总体

思路是,利用ECECOW 编码,将小波图像压缩算法和对小波系数的高次条件熵算术编码结合起来,通过加密一小部分压缩码流就可以达到高的安全特性.

RomoIotti,MattaveIIi 和MIynek提出了一种RPK 解决办法,针对实时多媒体流的加密方案,主要方法采用有限伽罗瓦域上的离散指数运算( Discrete Exponentiation over GaIois FieId GF(2I)). 特点是低复杂性,使用于高速多媒体流的加密,GF(2I)中的计算能用线性反馈移位寄存器以硬件快速实现. 它在算法上的特点是从传统的分组密码系统和流密码系统中取出它们各自最好的特性,再将公钥密钥系统结合起来,从而得到适合于高码率传输但计算复杂度又相对较低的安全系统. RPK 系统的基本算术操作等价于有限域的指数运算. 综合各算法有点,我们提出了视频流选择性流加密算法. 首先由非对称运算初始化对称运算,然后用流密码进行实时的密码运算,使得该密码系统具有公钥密码的网络适应性、流密码系统的实时性和块密钥的安全性的综合优势.

基于视频流内容加密策略是根据视频压缩的原理和格式,针对其中起关键作用的部分进行加密,以达到用尽可能小的运算复杂度和加密位数产生尽可能好的加密安全性和加密效果.

数字水印的确定性攻击方法及其解决方案

按照所添加的噪声类型的不同,我们把简单的确定性攻击分为四类:带削弱(或加强)噪声的攻击、带随机噪声的攻击、带自适应噪声的攻击、带自适应随机噪声的攻击。

(l)带削弱(或加强)噪声的确定性攻击

它根据已知的水印添加公式选定削弱(或加强)因子b 对整个水印域D 上的数据进行消弱(或加强)的攻击方式。

带削弱(或加强)噪声的确定性攻击破坏性很高,只要选定适当的攻击因子b,理论上可以完全破坏水印信息。但由于它对整个载体信号的能量改变较大,比较容易被察觉和预防。

(2)带随机噪声的确定性攻击

为了克服带削弱(或加强)噪声的确定性攻击对整个载体信号的能量改变较大的缺点,我们提出带随机噪声的攻击,它是指根据已知的水印添加公式选定攻击因子b 对整个水印域上的数据进行随机地选择消弱或者加强的攻击方式。

这种攻击方式解决了带削弱(或加强)噪声的攻击对整个载体信号的能量改变较大的问题。但如果对水印域上的所有数据都选用同样的攻击因子b,还是可能对载体信号的质量带来较大的影响。

(3)带自适应噪声的攻击

为了克服带随机噪声的确定性攻击对载体信号的质量带来较大影响的缺点,我们提出带自适应噪声的攻击,它是指根据水印域上当前数据值选定适当的攻击系数进行的消弱(或加强)攻击。

这种攻击对载体信号的质量影响较小,在实际的应用中还可以适当地扩大b 的选择范围而不影响图像的质量,但它仍然没有克服对整个载体信号的能量改变较大的缺点。

(4)带自适应随机噪声的攻击

它是带随机噪声的攻击和带自适应噪声的攻击的组合。这种攻击对载体信号的质量和能量的影响最小,适当地减小攻击因子b,可以使攻击更具有破坏性。

总的来说,对于确定性攻击,只要适当减小攻击因子b,理论上都能破坏载体信号中的水印信息,我们更关心的是确定性攻击会对图像的质量产生多大的影响。

确定性攻击的解决方案

为了使水印算法能够抵御攻击,我们只能修改水印的添加算法和提取算法。由于确定性攻击的特殊性,要抵御确定性攻击,不能使用常用的变换域方法。

在前面对简单确定性攻击分析的基础上可以得出:带削弱(或加强)噪声的攻击和带自适应噪声的攻击,对整个载体信号的能量改变较大,可以在提取水印时通过对信号能量在攻击前后的差异来实现对水印信息的补偿。

为了抵御其余的确定性攻击,可以通过在添加水印时添加冗余来提高水印稳健性。在添加水印时,把同一水印数据添加到水印域的r 个不同的值段中。在水印检测时,将这r 个不同的值段中提取出的同一水印信息叠加起来,可以大大加强提取出的水印的正确率。本文使用相似函数来测试原水印数据W和提取出的水印数据W'之间的相关性,以完成本文提出的解决方案抵御确定性攻击的测试。

北方工业大学密码学平时作业答案公钥密码作业答案

四、公钥密码(3,4,5,6;10,12;13,18,19,20) 3. 用Fermat定理求3201 mod 11 。 解:对于模运算,有结论(a×b) mod n = [ (a mod n)×(b mod n)] mod n 由Fermat定理,可知310≡1 mod 11,因此有 (310)k ≡1 mod 11 所以3201 mod 11= [(310)20×3] mod 11 = [( (310)20 mod 11)×(3 mod 11)] mod 11 = 3。 4. 用推广的Euclid算法求67 mod 119的逆元。 解:q g u v ~ 119 1 0 ~ 67 0 1 1 5 2 1 -1 1 15 -1 2 3 7 4 -7 2 1 -9 16 ( 注:1 = 119×(-9) + 67×16 ) 所以67-1mod 119 = 16 5.求gcd(4655, 12075) 。 解:12075 = 2×4655 + 2765 4655 = 1×2765 + 1890 2765 = 1×1890 + 875 1890 = 2×875 + 140 875 = 6×140 + 35 140 = 4×35+0 所以gcd(4655, 12075)=35。 6.求解下列同余方程组 2mod3 1mod5 1mod7 x x x ≡ ? ? ≡ ? ?≡ ? 。 解:根据中国剩余定理求解该同余方程组, 记a1=2, a2=1, a3=1, m1=3, m2=5, m3=7, M=m1×m2×m3=105, M1=M/m1=35, M1-1 mod m1 = 35-1 mod 3 = 2, M2=M/m2=21, M2-1 mod m2 = 21-1 mod 5 = 1, M3=M/m3=15, M3-1 mod m3 = 15-1 mod 7 = 1 所以方程组的解为x≡(M1M1-1a1 + M2M2-1a2 + M3M3-1a3) mod M ≡(35×2×2+21×1×1+15×1×1) mod 105 ≡176 mod 105≡71 mod 105 10.设通信双方使用RSA加密体制,接收方的公开钥是(e,n)=(5,35),接收到的密文是C=10,求明文M

密码学作业参考答案

第1章绪论 1.1为什么会有信息安全问题的出现? 答题要点: (1)网络自身的安全缺陷。主要指协议不安全和业务不安全。协议不安全的主要原因 一是 Internet 从建立开始就缺乏安全的总体构想和设计;二是协议本身可能会泄漏口令等。业务不安全的主要表现为业务内部可能隐藏着一些错误的信息;有些业务本,难以区分出错原因;有些业务设置复杂,一般非专业人士很难完善地设置。 (2)网络的开放性。网络协议是公开的协议,连接基于彼此的信任,远程访问等,使 得各种攻击无需到现场就能成功。 (3)人的因素,包括人的无意失误、黑客攻击、管理不善等。 1.2简述密码学与信息安全的关系。 答题要点: 密码技术是实现网络信息安全的核心技术,是保护数据最重要的工具之一。 密码学尽管在网络信息安全中具有举足轻重的作用,但密码学绝不是确保网络信息安全的唯一工具,它也不能解决所有的安全问题。 1.3简述密码学发展的三个阶段及其主要特点。 答题要点:密码学的发展大致经历了三个阶段: (1)古代加密方法(手工阶段)。特点:基于手工的方式实现,通常原理简单,变化量小,时效性较差等。 (2)古典密码(机械阶段)。特点:加密方法一般是文字置换,使用手工或机械变换的 方式实现。它比古代加密方法更复杂,但其变化量仍然比较小。转轮机的出现是这一阶段的重要标志,利用机械转轮可以开发出极其复杂的加密系统,缺点是密码周期有限、制造费用高等。 (3)近代密码(计算机阶段)。特点:这一阶段密码技术开始形成一门科学,利用电子 计算机可以设计出更为复杂的密码系统,密码理论蓬勃发展,出现了以 DES 为代表的对称 密码体制和 RSA 为代表的非对称密码体制,制定了许多通用的加密标准,促进和加快了密 码技术的发展。 1.4近代密码学的标志是什么? 答:1949 年 Claude Shannon 发表论文 The communication theory of secrecy systems,1976 年 W.Diffie 和 M.Hellman 发表论文 New directions in cryptography,以及美国数据加密标准 DES 的实施,标志着近代密码学的开始。 1.5安全机制是什么?主要的安全机制有哪些? 答题要点: 安全机制是指用来保护网络信息传输和信息处理安全的机制。 安全机制可分为两类:特定的安全机制和通用的安全机制。 特定的安全机制包含:加密、数字签名、访问控制、数据完整性、认证交换、流量填充、路由控制和公证。 通用的安全机制包含:可信功能、安全标签、事件检测、安全审计跟踪和安全恢复。1.6什么是安全服务?主要的安全服务有哪些? 答题要点: 安全服务就是指在信息传输和处理过程中为保证信息安全的一类服务。 主要的安全服务包括:机密性、完整性、鉴别、非否认性、访问控制、可用性。 1.7简述安全性攻击的主要形式及其含义。 答题要点:

应用密码学试题

东华2011~2012学年《应用密码学》试卷 (回忆版) 一. 单选题 1. 以下关于非对称密码的说法,错误的是() A. 加密算法和解密使用不同的密钥 B.非对称密码也称为公钥密码 C. 非对称密码可以用来实现数字签名 D. 非对称密码不能用来加密数据 2. 在RSA密钥产生过程中,选择了两个素数,p=17,q=41,求欧拉函数Φ(n)的值() A. 481 B. 444 C. 432 D. 640 3. 假如Alice想使用公钥密码算法发送一个加密的消息给Bob,此信息只有Bob 才能解密,Alice使用哪个密钥来加密这个信息?() A.A的公钥 B. A的私钥 C. B的公钥 D. B的私钥 4. 以下基于大整数因子分解难题的公钥密码算法是?() A. EIGamal B. ECC C. RSA D. AES 5. 以下哪种算法为不可逆的数学运算 A.MD5 B.RC4 C.IDEA D.DES 6. MAC和对称加密类似,但是也有区别,以下哪个选项指出了MAC和对称加密算法的区别? A.MAC不使用密钥 B.MAC使用两个密钥分别用于加密和解密 C.MAC是散列函数 D.MAC算法不要求可逆性而加密算法必须是可逆的

7. HMAC使用SHA-1作为其嵌入的散列函数,使用的密钥长度是256位,数据长度1024位,则该HMAC的输出是多少位? A. 256 B. 1024 C. 512 D. 160 二.填空题 1. DES加密算法的明文分组长度是位,密文分组长度是位;AES分组长度是位;MD5输出是位;SHA-1输出是位。 2. 如C=9m+2(mod26),此时假设密文C=7,则m= . 3.已知RSA加密算法中,n=21,e=5,当密文c=7时,求出此时的明文m= 4.Hmac的算法表达式是。 5.假设hash函数h的输出为k位,则散列结果发生碰撞的概率为 6. DES加密算法是结构,AES算法是结构。 三解答题 1.解释说明什么是零知识证明 2.Hash函数h,请分析h 特性和安全要求

《密码学基础复习提要》

第一部分内容提要 1 引论 OSI:开发系统互联中的安全结构,提供了定义安全攻击、安全机制和安全服务的框架; 安全攻击:主动和被动攻击。被动攻击包括非授权阅读消息、文件以及流量分析;主动攻击包括对消息或文件的修改以及拒绝服务。 安全机制:一种处理过程,用来检测、阻止攻击或从被攻击的状态中恢复的机制。包括:加密算法、签名算法和认证协议。 安全服务:包括认证、访问控制、数据保密性、数据完整性、不可否认新以及可用性。 分析一个信息系统的安全问题: 注脚:对任何一个信息系统,系统安全方面的分析思路是:设定系统的安全需求,分析可能的攻击,配置相应的安全服务以满足需求,根据安全机制开发设计或者集成构建安全服务。 2 传统密码 对称密码是一种加密和解密使用相同密钥的体制,也称为传统密码。 对称密码利用密钥和加密算法将明文变为密文。运用相同的密钥将密文恢复成明文。 对密码的两种攻击方法:对密钥的穷举攻击(要求明文有结构和意义);对加密算法的密码分析,发现其缺陷降低i密钥攻击和难度。 传统对称密码:采用代换和置换技术。代换将明文元素映射为密文元素。置换将明文元素的位置进行系统的置换。转轮机是计算机出现前使用代换技术的复杂密码设备。 注脚:置换和代换是两种最基本的数据变换方法,保证其可逆就可以设计相应的密码算法。加密其实很简单:改掉原来的值,改掉原来值放的位置,但是记住你还要能改回来才行。 3 分组密码和DES 分组密码是一种将输入的明文以分组的方式处理的加密技术。 Feistel结构是一种常用的分组密码结构,它由许多轮构成,每轮中将分组的一半进行代换,然后和另外一半交换位置进行置换。 DES是最广泛应用的加密算法,它采用了Feistel 结构,简单高效,而且能进一步扩展到2DES和3DES。 注脚:Feistel是一种美妙的置换和代换网络,其美妙之处是他是那么简单而且遵从对称的原则,可以让加密和解密共用同一段代码。 4 数学基础——有限域 域是定义了加和乘算术运算的元素的集合。 模算术是一种整数算术,它将所有的整数约减为固定的集合,以保证计算的封闭性。 有限域在密码的若干领域有重要的应用。一个有限域就是有有限个元素构成的域。可以证明有限域的阶可以写成素数的幂形式。 阶为p的域可由模p的算术定义 阶为p n的域可由多项式算术来定义 注脚:基础代数的很多概念很颠覆我们习以为常了的小学算术,接触过这段内容,你起码留下这样的印象:原来四则运算是这样来的。 5 AES AES是一种分组密码,以取代DES,分组长度为128位,密钥长度为128,192,256 AES没有使用Feistel结构,每轮由四个单独的运算组成:字节代换,置换,有限于上的算术运算,以及密钥的异或。

密码学基础教学大纲完整版

《密码学基础》课程教学大纲 (课程代码:07310620) 课程简介 密码学基础是信息安全专业的一门技术基础课程,该课程的学习将为后续的信息安全课程打下基础,同时也为将来从事信息安全研究和安全系统的设计提供 必要的基础。该课程主要讲授流密码(古典密码学)分组密码学、公钥密码学、 密钥分配与管理、信息认证和杂凑算法、数字签名以及网络加密与认证等几个部分,在其中将学习各种加解密、散列函数、单向函数、签名模式及伪随机发生器 等多种密码学工具,以及如何应用这些工具设计一个实现基本信息安全目标的系 统(目前学时不够,没有安排)。基本密码学工具的掌握和应用这些工具构造安 全服务就是本课程的基本目标。 本课程具有如下特点: (一)依赖很强的数学基础 本课程需要数论、近世代数、概率论、信息论、计算复杂性等数学知识作为 学习的基础。这些数学基础的讲解既要体现本身的体系性,同时还要兼顾密码学背景。 (二)可扩展性强 各种具体方法的学习不是本课程的最终目标,背后的基本原理以及应用这些原理设计新工具的能力才是本课程的最终目标。 (三)课程内容复杂且涉及面广 由于密码学内容丰富,且包含许多复杂的知识点,所以本课程的讲授以线为主,即在基本主线的勾勒基础上对授课内容及复杂程度做出取舍。 本课程先修课程有:数据结构、近世代数、概率论、高等数学、高级语言程 序设计等。后续课程有信息安全扫描技术、PKI技术、病毒学等专业课程。 课程教材选用国内信息安全优秀教材杨波编著的《现代密码学》(清华大学出版社),同时参考国外优秀教材:《经典密码学与现代密码学》,Richard Spillman,清华大学出版社、Douglas R. Stinson著,冯登国译的《密码学原理和实践》,电子工业出版社,2003年2月第二版。另外还向学生推荐国内的一些具有特色的操作系统教材如胡向东编写的《应用密码学教程》(电子工业出版社)等。 实验教材选用自编的实验指导书,同时参考上海交大的“信息安全综合实验系统实验指导书”,除了这些教材之外,学校的图书馆为师生提供了相关的学术 期刊和图书。 课程教学体系:理论课程(34学时)课程实验(16学时)。达到从算法 验证、综合设计、到创新应用知识的逐步提高、全面培养的目的。相应的教学 材料由教学大纲、实验大纲、实验指导书等。实践环节的实验条件有:计算机 科学技术系的实验中心(实施课程实验)。 课程教学安排 序号内容课时数备注 一密码学概述 2 二古典密码学算法(一) 2

现代密码学试卷(含答案)

武汉大学计算机学院 信息安全专业2004级“密码学”课程考试题 (卷面八题,共100分,在总成绩中占70分) 参考答案 (卷面八题,共100分,在总成绩中占70分) 一、单表代替密码(10分) ①使加法密码算法称为对合运算的密钥k称为对合密钥,以英文为例求出其对合密钥,并以明文 M=WEWILLMEETATMORNING 为例进行加解密,说明其对合性。 ②一般而言,对于加法密码,设明文字母表和密文字母表含有n个字母,n为≥1的正整数,求出其对合密钥k。 解答: 1.加法密码的明密文字母表的映射公式: A为明文字母表,即英文字母表,B为密文字母表,其映射关系为: j=i+k mod 26 显然当k=13时,j=i+13 mod 26,于是有i = j+13 mod 26。此时加法密码是对合的。称此密钥k=13为对合密钥。举例:因为k=13,所以明文字母表A和密文字母表B为 a b c d e f g h i j k l m n o p q r s t u v w x y z n o p q r s t u v w x y z a b c d e f g h i j k l m 第一次加密:M=W E W I L L M E E T A T M O R N I N G C=J R J V Y Y Z R R G O G Z B E A V A T

第二次加密:C=W E W I L L M E E T A T M O R N I N G?? 还原出明文,这说明当k=13时,加法密码是对合的。 称此密钥为对合密钥。 ②设n为模,若n为偶数,则k=n/2为对合密钥。若n为奇数,n/2不是整数,故不存在对合密钥。 二、回答问题(10分) 1)在公钥密码的密钥管理中,公开的加密钥Ke和保密的解密钥Kd的秘密性、真实性和完整性都需要确保吗?说明为什么?解答: ①公开的加密钥Ke:秘密性不需确保,真实性和完整性都需要确保。因为公钥是公开的,所以不需要保密。 但是如果其被篡改或出现错误,则不能正确进行加密操作。如果其被坏人置换,则基于公钥的各种安全性将受到破坏, 坏人将可冒充别人而获得非法利益。 ②保密的解密钥Kd:秘密性、真实性和完整性都需要确保。因为解密钥是保密的,如果其秘密性不能确保, 则数据的秘密性和真实性将不能确保。如果其真实性和完整性受到破坏,则数据的秘密性和真实性将不能确保。 ③举例 (A)攻击者C用自己的公钥置换PKDB中A的公钥: (B)设B要向A发送保密数据,则要用A的公钥加密,但此时已被换为C的公钥,因此实际上是用C的公钥加密。 (C)C截获密文,用自己的解密钥解密获得数据。 2)简述公钥证书的作用? 公钥证书是一种包含持证主体标识,持证主体公钥等信息,并由可信任的签证机构(CA)签名的信息集合。 公钥证书主要用于确保公钥及其与用户绑定关系的安全。公钥证书的持证主体可以是人、设备、组织机构或其它主体。

《应用密码学》学习笔记

以下是我对《应用密码学》这本书的部分学习笔记,比较简单。笔记中对现代常用的加密技术进行了简单的归类和解释,有兴趣的同学可以看一下,没看过的同学就当普及知识了,看过的同学就当复习了。笔记里面可能有错别字,有的话请各位看客帮忙指正。 第1章密码学概述 1-1、1-2 1.密码技术的发展历史大致可以划分为三个时期:古典密码、近代密码和现代密码时期。 2.公元前440多年的斯巴达克人发明了一种称为“天书”的加密器械来秘密传送军事情报。这是最早的移位密码。 3.1919年德国人亚瑟·谢尔比乌斯利用机械电气技术发明了一种能够自动编码的转轮密码机。这就是历史上最著名的德国“埃尼格玛”密码机。 4.1949年香农的奠基性论文“保密系统的通信理论”在《贝尔系统技术杂志》上发表。 5.1977年,美国国家标准局正式公布实施了美国的数据加密标准(DES)。 6.1976年11月,名美国斯坦福大学的著名密码学家迪菲和赫尔曼发表了“密码学新方向”一文,首次提出了公钥密码体制的概念和设计思想。 7.1978年,美国的里韦斯特(R.L.Rivest)、沙米尔(A.Shamir)和阿德勒曼(L.Adleman)提出了第一个较为完善的公钥密码体制——RSA体制,成为公钥密码的杰出代表和事实标准。 8.2000年10月,比利时密码学家Joan Daemen和Vincent Rijmen提出的“Rijndael数据加密算法”被确定为AES算法,作为新一代数据加密标准。 1-3 1.密码学的主要任务:密码学主要为存储和传输中的数字信息提供如下几个方面的安全保护:机密性、数据完整性、鉴别、抗抵赖性。 2.密码体制中的有关基本概念: 明文(plaintext):常用m或p表示。 密文(ciphertext):常用c表示。 加密(encrypt): 解密(decrypt): 密码算法(cryptography algorithm):简称密码(cipher)。

计算机密码学上机作业08级

11/12(1)现代密码学上机作业 第一题:用kaiser密码获得秘文kddkmu,试所有可能解密它#include void main(){int i,c,k; const int size=100; char aa[size]; cout<<"请输入秘文:"; cin.getline(aa,size); for(k=0;k<26;k++) {for(i=0;aa[i];i++) { c=((int)aa[i]-97)-k; if(c<0) c=(26+c)+97; else c=c%26+97; aa[i]=(char)c; }for(i=0;aa[i];i++) cout< void main(){ int i,x;int a1=2,a2=5,a3=1; int b1=78,b2=97,b3=119;int M,m1,m2,m3; int y1,y2,y3;M=b1*b2*b3; m1=b2*b3;m2=b1*b3;m3=b1*b2; for(i=0;i

武汉大学应用密码学RSA加密解密大作业

1 对RSA算法的理解 RSA加密算法是一种非对称加密算法,它基于一个非常简单的数论思想:“将两个素数乘起来是很容易的,但是分解该乘积是非常困难的”。 1.1加解密步骤 (1)生成公钥和私钥 a)随机生成两个不相等的大素数p和q,计算N=p*q; b)根据欧拉函数,求出φ=(p-1)*(q-1); c)选择一个小于r的整数e,求e关于r的模反元素d使得e*d mod φ =1 得到公钥,私钥 (2)加密 给定明文m,公钥,计算密文c = m e(N)。 (3)解密 给定密文c,私钥,计算明文m’ = c d(N)。 1.2素性检验 RSA算法的实现难点之一是生成大素数,这就需要生成一个大数并对其进行素性检验。素性检验有很多种方法。其中包括确定性方法和随机方法。确定性方法有试除法(埃拉托斯特尼筛法),卢卡斯-莱默检验法和AKS素数测试。常见的随机方法有费马素性检验,米勒-拉宾检验和欧拉-雅科比测试。本次作业采用就是米勒-拉宾检验方法。 米勒-拉宾(Miller Rabin) 算法原理: 要测试N 是否为素数,首先将N-1 分解为2s d。在每次测试开始时,先随机选一个介于[1, N-1]的整数a,之后如果对所有的r∈[0, s-1],若a d mod N ≠ 1 且a2^rd mod N ≠1,则N 是合数。否则,N 有3/4 的概率为素数。 1.3安全问题 (1)公共模数攻击。每个人具有相同的r,但有不同的指数e和d,这是不安全的。 (2)低加密指数攻击。如果选择了较低的e值,虽然可以加快计算速度,但存在不安全性。 (3)低解密指数攻击。如果选择了较低的d值,也是不安全的。 (4)选择密文攻击。如A想让T对一个T不愿意签名的消息m’签名,A首先选择一个任意值x,计算y=x e(mod r),然后要求T对m=ym’签名,A最后计算(m d mod r)x-1 mod r =( ym’) d x-1mod r= m’d mod r。 还有一些不是直接对RSA的算法本身进行的攻击,如中间人攻击、时间攻击、边信道攻击等。 2.具体实现 2.1函数说明 void ProducePrime(JTextField prime):使用JA V A的Biginteger生成512位的

密码学作业CH11

201013210141 徐鹏志密码学作业11 1.消息认证是为了对付哪些类型的攻击? 答:伪装(假冒)篡改内容修改顺序修改时间(包括重放) 2.消息认证或数字签名方法有哪两层功能? 答:任何消息认证或数字签名机制基本分两步: 产生认证符(是一个用来认证消息的值)的函数; 将该函数作为原语使接收方可以验证消息真实性的认证协议。 3.产生消息认证有哪些方法? 答:用于消息认证的最常见的密码技术是消息认证码和安全散列函数 MAC是一种需要使用秘密钥的算法,以可变长度的消息和秘密钥作为输入,产生一个认证码。拥有秘密钥的接受方产生一个认证码来验证消息的完整性。 哈西函数将可变长度的消息映射为固定长度的哈西值,或叫消息摘要。对于消息认证来说,安全散列函数还必须以某种方式和秘密钥捆绑起来。 4.对称加密和错误控制码一起用于消息认证时,这两个函数必须以何种顺序执行? 答:先错误控制码后对称加密。

5.什么是消息认证码? 答:消息认证码,是用来保证数据完整性的一种工具,可以防止数据未经授权被篡改,用数学语言描述,是一个让双方共享的密钥k和消 (m),这个函数值就是一个息m作为输入函数,如果将函数记为mac k 认证标记。 6.消息认证码和散列函数之间的区别是什么? 答:消息认证码(MAC)依赖公开函数,密钥控制下对消息处理,生成定长认证标识,并加以认证。 散列函数:将任意长度的消息换为定长的消息摘要,并加以认证。 7.为提供消息认证,应以何种方式保证散列值的安全? 答:a.用对称密码对消息及附加在其后的散列码加密。 b.用对称密码仅对散列加密。 c.用公钥密码和发送方的密钥仅对散列加密。 d.若寄希望保证保密性有希望有数字签名,则先用发送方的密钥对散列码加密 e.该方法使用散列函数但不使用加密函数来进行消息认证。 f.如果对整个消息和散列码加密,则(e)中的方法可提供保密性。 8.为了攻击MAC算法必须要恢复密钥吗?

密码学基础1

信息安全理论与技术第四讲密码学基础(三)

?讨论议题 ? 密钥分配 ? 公钥密码算法 – Diffie-Hellman密钥交换算法 –背包算法 – RSA算法 – EIGamal算法 –椭圆曲线密码算法ECC ?密钥分配(Key Distribution) 建立密钥分本协议必须考虑两个因素: 1)传输量和存储量就尽可能的小; 2)每一对用户U和V都能独立计算一个秘密密钥。 对于通信方A和B来说密钥分配方式由以下几种方式: 1)A选择密钥并手工传递给B; 2)第三方C选择密钥分别手工传递给A,B; 3)用A、B原有共享密钥传送新密钥(采用旧密作用于+新密钥方式); 4)与A、B分别有共享密钥的第三方C的加密连接,C就可以用加密连接传送新密钥给A和/或B。 ? N个用户集需要N(N-1)/2个共享密钥。 简单的密钥分配:

1)A产生公/私钥对{ PU a,PR a}并将PU a和其标识ID a的消息发送给B; 2)B产生秘密钥K S,并用A的公钥对K S,加密后发送给A; 3)A计算D(PU a E(PU a,K S)得出秘密钥K S。因为只有A能解密该消息,只有A和B知道K S; 4)A丢掉PU a,PR a,B丢掉PU a。 A和B 可以用传统的密码和会话密钥K S安全通信。 ●Key Distribution Center密钥分发中心 ●问题的提出 1)密钥管理量的困难 传统密钥管理:两两分别用一对密钥时,则n个用户需要C(n,2)=n(n-1)/2个密钥,当用户量增大时,密钥空间急剧增大。如: n=100 时, C(100,2)=4,995 n=5000时, C(5000,2)=12,497,500 (2)数字签名的问题 传统加密算法无法实现抗抵赖的需求。 密钥分发 1)每个用户与KDC有共享主密钥(Master Key); 2)N个用户,KDC只需分发N个Master Key; 3)两个用户间通信用会话密钥(Session Key); (会话密钥:端系统之间的通信使用一个临时的密钥进行加密,这个密钥叫会话密钥) 4)用户必须信任KDC;

《现代密码学》期终考试试卷和答案

一.选择题 1、关于密码学的讨论中,下列(D )观点是不正确的。 A、密码学是研究与信息安全相关的方面如机密性、完整性、实体鉴别、抗否认等的综 合技术 B、密码学的两大分支是密码编码学和密码分析学 C、密码并不是提供安全的单一的手段,而是一组技术 D、密码学中存在一次一密的密码体制,它是绝对安全的 2、在以下古典密码体制中,属于置换密码的是(B)。 A、移位密码 B、倒序密码 C、仿射密码 D、PlayFair密码 3、一个完整的密码体制,不包括以下( C )要素。 A、明文空间 B、密文空间 C、数字签名 D、密钥空间 4、关于DES算法,除了(C )以外,下列描述DES算法子密钥产生过程是正确的。 A、首先将DES 算法所接受的输入密钥K(64 位),去除奇偶校验位,得到56位密钥(即经过PC-1置换,得到56位密钥) B、在计算第i轮迭代所需的子密钥时,首先进行循环左移,循环左移的位数取决于i的值,这些经过循环移位的值作为下一次 循环左移的输入 C、在计算第i轮迭代所需的子密钥时,首先进行循环左移,每轮循环左移的位数都相同,这些经过循环移位的值作为下一次 循环左移的输入 D、然后将每轮循环移位后的值经PC-2置换,所得到的置换结果即为第i轮所需的子密钥Ki 5、2000年10月2日,NIST正式宣布将(B )候选算法作为高级数据加密标准,该算法是由两位比利时密码学者提出的。 A、MARS B、Rijndael C、Twofish D、Bluefish *6、根据所依据的数学难题,除了(A )以外,公钥密码体制可以分为以下几类。 A、模幂运算问题 B、大整数因子分解问题 C、离散对数问题 D、椭圆曲线离散对数问题 7、密码学中的杂凑函数(Hash函数)按照是否使用密钥分为两大类:带密钥的杂凑函数和不带密钥的杂凑函数,下面(C )是带密钥的杂凑函数。 A、MD4 B、SHA-1

密码学期末作业

密码学期末作业 2018 06 11《现代密码学》期末作业零、选择题采用美国数据加密标准DES进行数据加密时,加密算法种的基本运算不包括。A)置换运算B)异或运算C)模乘运算D)移位运算关于RSA算法下列说法不正确的是。A)RSA算法是一种对称加密算法B)RSA算法的运算速度比DES 慢C)RSA算法可用于某种数字签名方案D)RSA的安全性主要基于因子分解的难度(3) 8位的密钥可以产生多少个可能的密钥A) 8 B) 8 C) 2 D)65536 (4) 3DES密钥的长度最长是多少位? A) 56位B) 168位C) 112位E)128位(5) MD5 (Hash)的输出是多少位?A)64位B)128位C)160位D)256位

(6) SHA的输出是多少位?A)64位B)128位C)160 位D)256位 1 2018 06 11 一、根据下面图解释名词,明文,密文,加密,解密,加密算法,解密算法, 加密密钥和解密密钥二、阐述密码体制分类三、阐述扩散和混淆的概念四、什么是密码分组链接模式,请画出加密与解密示意图 2 2018 06 11 五、哈希(Hash)函数应满足什么条件?六、说明迭代型哈希函数一般结构的运算过程. 七、什么是零知识证明?下图表示一个简单的迷宫,C与D之间有一道门,需要知道秘密口令才能将其打开。P向V证明自己能打开这道门,但又不愿向V泄露秘密口令。可采用什么协议? 3 2018 06 11 八、AES高级加密标准的轮函数4个不同的计算部件组成,分别是:字节代换、行移位、列混合、密钥加。根据下图写出

字节代换、行移位、列混合、密钥加。 4 2018 06 11 九、设椭圆曲线y2=x3+2x+7, p=179 满足1/210失败的概率, 求将消息M= 5 表示成曲线上的点. 十、在RSA算法中,设公钥KU={7,187},私钥KR={23,187}, 设明文M=88, 求密文C。十一、根据下图S-DES (Simplified DES) 收、发双方共享的10位密钥,计算出两个8位子密钥分别用在加密、解密的不同阶段。图中的P10、P8如下表,初始10位密钥为求图中的K1、K2 P10 P8 LS-1 3 6 5 3 2 7 7 4 4 8 10 1 5 9 8 6 10 9 循环左移一位LS-2 循环左移二位 5 2018 06 11 二十二、根据下图说明同一消息同时提供保密性与认证性的过程?二十三、图是一个3级反馈移位寄存器,其初始状态为(a1,a2,a3)=(1,0,1),写出前6个时刻的状态和输出。图一

密码学基础

密码学常识

□秋雨灰灰 目录 密码常识 字母表顺序-数字 进制转换密码 Mod算法 倒序 间隔 字母频率 凯撒密码(Caesar Shifts, Simple Shift) 凯撒移位(中文版) 栅栏密码(The Rail-Fence Cipher) 维吉尼亚密码(Vigenère Cipher) Polybius密码(Polybius Cipher) ADFGX/ADFGVX密码(ADFGX/ADFGVX Cipher) ADFGX ADFGVX 乘法密码(Multiplication Cipher) 仿射密码(Affine Shift) 希尔密码(Hill Cipher) 加密 解密 Playfair密码(Playfair Cipher) 莫尔斯电码 置换密码(Transposition Cipher) 替代密码(Monoalphabetic Substitution) 字母表数字 字母表代码 反字母表 随机乱序字母 棋盘密码 键盘密码 键盘移位 软键盘密码 数字小键盘密码 手机键盘密码 数字记忆编码

百度/Google/网页字符 百度字符(GB2312) Google字符(URI) 网页编码(Unicode) Alt+数字小键盘 MD5 【密码常识】 字母表顺序-数字 加密的时候,经常要把A至Z这26个字母转换成数字,最常见的一种方法就是取字母表中的数字序号。A代表1,B代表2,C代表3…… 字母 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 数字 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 进制转换密码 例如二进制:1110 10101 1101 10 101 10010 1111 1110 101 转为十进制:14 21 13 2 5 18 15 14 5 对应字母表:number Mod算法 我们可以对字母序号进行数学运算,然后把所得的结果作为密文。当运算结果大于26或小于1的时候,我们希望把这个数值转为1~26的范围,那么取这个数除以26的余数即可。 Mod就是求余数的运算符,有时也用“%”表示。例如 29 Mod 26 = 3,或写成 29 % 26 = 3,意思是29除以26的余数是3。 倒序 加密时为经常要对字符进行倒序处理。如果让你按abcdef...的顺序背出字母表的每个字母会很容易,但是如果是zyxwvu...的顺序那就很难背出来了。一个很熟悉的单词,如果按相反的顺序拼写,可能就会感到很陌生。 例如“love”字母倒过来拼就是“evol”。 具体加密时倒序有很多种方案,需要灵活运用。例如: 每个单词的倒序:siht si a tset - this is a test 整句的倒序:tset a si siht - this is a test 数字的倒序:02 50 91 02 - 20 05 19 20(test) 间隔 单词之间的间隔一般使用空格。在加密时常常要去掉空格,但有时某些字母或数字来替代空格也不失为一种好的加密方案。错误空格位置也会起到很强的误导作用。 例如:t hi sis at est - this is a test 字母频率

应用密码学习题答案

《应用密码学》习题和思考题答案 第4章 密码学数学引论 4-1 编写一个程序找出100~200间的素数。 略 4-2 计算下列数值:7503mod81、(-7503)mod81、81mod7503、(-81)mod7503。 解:7503mod81=51 (-7503)mod81=30 81mod7503=81 (-81)mod7503=7422 4-3 证明:(1)[]))(m od (m od )(m od )(m od m b a m m b m a ?=? (2)[][])(m od ))(m od ())(m od (m od )(m m c a m b a m c b a ?+?=+? 证明: (1)设(mod )a a m r =,(mod )b b m r =,则a a r jm =+(j 为某一整数),b b r km =+(k 为某一整数)。于是有: [](mod )(mod )mod ()(mod )a b a m b m m r r m ?= ()()() ()() ()() 2()(mod )mod mod mod a b a b a b a b a b m r jm r km m r r r km r jm kjm m r r m ?=++=+++= 于是有:[]))(m od (m od )(m od )(m od m b a m m b m a ?=? (2)设(mod )a a m r =,(mod )b b m r =,(mod )c c m r =,则a a r jm =+(j 为某一整数),b b r km =+(k 为某一整数),c c r im =+(i 为某一整数)。于是有: []()()()()[]()()22()mod (mod ) (mod ) mod mod a b c a b c a b a a a c b c a b a c a b c m r jm r km r im m r jm r km r im m r r r im r km r r r jm kjm r jm ijm m r r r r m ???+=++++????????=++++??=+++++++=+ []()()()()()[]()(mod )()(mod )(mod ) mod mod mod mod a b a c a b a c a b m a c m m r jm r km m r jm r im m m r r r r m ?+?=+++++????=+ 于是有:[][])(m od ))(m od ())(m od (m od )(m m c a m b a m c b a ?+?=+?

密码学作业

通常可以假定攻击者知道用于加密的算法,那么就至少存在穷举攻击、基于统计的攻击和数学攻击这几种攻击方式。在现代密码学研究阶段,密码分析者对密码算法的攻击一般都遵循Kerckhoffs原则。密码分析通常有分析、推断、假设、证实等四个步骤,常见的密码分析攻击方法主要有以下几种: (1)唯密文攻击(Ciphertext Only):密码分析者已知加密算法和待破译的密文。密码分析者的任务是恢复尽可能多的明文,或推算出加密算法的密钥,从而通过使用相同的密钥在算法中解密出其他信息。 已知: 推导出: (2)已知明文攻击(Known Plaintext):密码分析者已知加密算法和经密 钥加密形成的一个或多个明文密文对,即知道一定数量的密文和对应的明文。密码分析者的任务是用加密信息推出加密密钥或导出一个对用同一密钥加密的任何新的信息进行解密的算法。 已知: 推导出:。 (3)选择明文攻击(Chosen Plaintext)-密码分析者已知加密算法,以及 选择的明文和对应的密文。在此种攻击中,密码分析者可以选择特定的明 文加密,从而推出用来加密的密钥或算法。这种攻击比已知明文攻击更加 有效。 (4)选择密文攻击(Chosen Ciphertext):密码分析者己知加密算法,以及 选择的密文和对应的明文。密码分析者的任务是推出已知加密算法的密钥。 这种攻击主要用于分析非对称密码体制。 已知: 推导出:密钥K。 (5)选择文本攻击(Chosen Text):这种攻击方式是选择明文攻击和选择 密文攻击的结合。密码分析者已知加密算法、由密码分析者选择的明文和 它对应的密文,以及由密码分析者选择的被加密的密文和它对应的明文。 除外,还有选择密文攻击、软磨硬泡攻击等密码分析方法。其中,唯 密文攻击是最困难的。一般来说,在唯密文攻击、已知明文攻击、选择明 文攻击下仍安全的密码体制,可以认为其可能是安全的。

密码学基础复习资料

1、 Kerchkoffs 原则 密码系统的安全性不应取决于不易改变的事物(算法),而应取决于改变的密钥。 2、 SP 网络 SP 网络就是由多重S 变换和P 变换组合成的变换网络,即迭代密码,它是乘积密码的一种,其基本操作是S 变换(代替)和P 变换(换位),前者称为S 盒,后者被称为P 盒,S 盒的作用是起到混乱作用,P 盒的作用是起到扩散的作用。 4安全机制 指用来保护系统免受侦听、阻止安全攻击及恢复系统的机制。 5加密算法 将明文变换为密文的变换函数,相应的变换过程称为加密,即编码的过程,通常用E 表示,即c=E k (p)。 6、数字签名的基本原理什么? 答:一个数字签名方案由两部分组成:带有陷门的公开签名算法和验证算法。公开签名算法是一个由密钥控制的函数。对任意一个消息x ,一个密钥k ,签名算法产生一个签名)(x sig y k =签名很难伪造。验证算法),(y x ver 也是公开的,它通过true y x ver =),(或false 来验证签名。 7、密码学的五元组是什么?它们分别有什么含义? 答:密码学的五元组是指:{明文、密文、密钥、加密算法、解密算法}。 明文:是作为加密输入的原始信息,即消息的原始形式,通常用m 或表示。 密文:是明文经加密变换后的结果,即消息被加密处理后的形式,通常用c 表示。 密钥:是参与密码变换的参数,通常用k 表示。 加密算法:是将明文变换为密文的变换函数,相应的变换过程称为加密,即编码的过程,通常用表示,即()k c E p =。 解密算法:是将密文恢复为明文的变换函数,相应的变换过程称为解密,即解码的过程,通常用D 表示,即()k p D c =。 8、为什么在密钥管理中要引入层次式结构? 答:层次化的密钥结构意味着以少量上层密钥来保护大量下层密钥或明文数据,这样,可保证除了主密钥可以以明文的形式 基于严格的管理受到严密保护外(不排除受到某种变换的保护),其他密钥则以加密后的密文形式存储,改善了密钥的安全性。层次化的密钥结构具有安全性强、可实现密钥管理的自动化的优点。 4、对数字签名的要求是什么? (1)签名必须是依赖于被签名信息的一个位串模板,即签名必须以被签名的消息为输入,与其绑定; (2)签名必须使用某些对发送者是唯一的信息。对发送者唯一就可以防止发送方以外的人伪造签名,也防止发送方事后否认; (3)必须相对容易地生成该数字签名,即签名容易生成; (4)必须相对容易地识别和验证该数字签名; (5)伪造数字签名在计算复杂性意义上具有不可行性,既包括对一个已有的数字签名构造新的消息,也包括对一个给定消息伪造一个数字签名; (6)在存储器中保存一个数字签名副本是现实可行的。 9、为什么序列密码的密钥不能重复使用? 答:序列密码是模仿的“一次一密”加密算法,其安全强度取决于密钥流生成器生成的密钥流的周期、复杂度、随机(伪随机)特性等,密钥的重复使用将导致其安全性降低。 10、设实数域上的椭圆曲线为x x y 363 2 -=,令)5.8,5.2(),5.9,5.3(-=-Q P =。 计算Q P +。 解:将 x 1 = –3.5, y 1= 9.5, x 2= –2.5, y 2 = 8.5 代入椭圆曲 线加方程易得: X 3 = 7、 y 3 = 1。 因此:P + Q = (7, 1)。 11、设通信双方使用RSA 加密体制,接收方的公开密钥是(5,35),接收到的密文是10,求明文。 解:据题意知:e =5,n =35,C =10。 因此有:()()()()35574624n ????===?= ()1 1mod 5mod 245d e n ?--=== 所以有:5 mod 10mod 355d M C n ===。 12、画出分组密码算法的原理框图,并解释其基本工作原理。

密码学课后习题

第三章: 3-1 使用密钥字为common 的代换密码方案,列出字母代换表 解:去除后来重复的字母后,真正的密钥字为comn 3-2 解密下面的一段恺撒密码密文(明文单词间留空,以便阅读): EHVWWLPHRIWKHBHDULVVSULQJZKHQIORZHUVEORRP 解:将密文字母在英文字母表上前移3个位置,即可得到这段恺撒密码密文对应的明文如下: best time of the year is spring when flowers bloom 3-3 利用仿射密码算法加密下面的明文,假设k 1=7,k 2=3(要求首先列出明文字母-密文字母代换表,然后给出对应的密文,并以字母t 的加密为例给出计算过程): 解:因为k 1=7,k 2=3,因此仿射密码的加密公式为 )26(mod 37)(21+=+==p k p k p e c k 字母t (19)被加密为 )26(mod 61363197)(G t e k ===+?= 完整的明文字母-密文字母代换表如下表所示: 解:因为k 1=7,k 2=3,因此,根据仿射密码的解密公式,有 )26(mod 1915)3(15)3(71-=-?=-?=-c c c p 密文字母F (5)解密为:)26(mod 4561975195151915e c ===-=-?=-

求仿照表3-7(P51)给出其加密和解密过程,并说明相同明文字符的加密结果。 解:去除密钥字student 中后来重复的字母后,真正的密钥为studen 。因此,应将明文、密文按照6位长度进行分组,每组使用同样的密钥studen 加密、解密。 3-6 选择希尔密码的加密密钥矩阵k 为:?? ? ? ??=07050203k 试以明文love 为例 解:将明文字符love 变换为数字,分别为11、14、21、4。 因为加密密钥矩阵k 为2阶矩阵,所以应将明文分成)1411(1=p 和)421 (2=p 两组分别进行加密。 (1)确定解密密钥矩阵k -1 111021527307 0502 03=-=?-?==k 1926mod 1111 ==--k (见表2-2(P21) ) )26(mod 0321240703050207*? ? ? ???=??????--=k )26(mod 05091403573994561330321240719*1 1?? ????=??????=??????==--k k k (2)加密 ())26(mod )()1625()120103(07050203141111Q Z k p c ===??? ????=?=? ())26(mod )()185()7038(0705020342122S F k p c ===? ? ? ????=?=? 因此,明文字符love 的加密密文为ZQFS 。 (3)解密 ()) 26(mod )()1411()430219(0509140316251 11o l k c p ===?? ? ????=?=-

相关文档
最新文档