第1章【思考题】1.1 OSI安全体系结构是一个框架,它提供了一种系统化的方式来定义安全需求,并描述满足这些需求的方法。
该文档定义了安全攻击、机制和服务,以及这些类别之间的关系。
1.2被动攻击与窃听或监视传输有关。
电子邮件、文件传输和客户机/服务器交换是可以监视的传输示例。
主动攻击包括修改传输的数据和试图未经授权访问计算机系统。
1.3被动攻击:发布消息内容和流量分析。
主动攻击:伪装、重播、修改消息和拒绝服务。
1.4认证:保证通信实体是其声称的实体。
访问控制:防止未经授权使用资源(即,此服务控制谁可以访问资源,在什么条件下可以进行访问,以及允许访问资源的人做什么)。
数据保密:保护数据不被未经授权的泄露。
数据完整性:确保接收到的数据与授权实体发送的数据完全一致(即不包含修改、插入、删除或重播)。
不可否认性:提供保护,以防止参与通信的实体之一拒绝参与全部或部分通信。
可用性服务:系统或系统资源的属性,根据系统的性能规范,经授权的系统实体可根据需要访问和使用(即,如果系统在用户请求时根据系统设计提供服务,则系统可用)。
【习题】1.1系统必须在主机系统和交易传输期间对个人识别号保密。
它必须保护账户记录和个人交易的完整性。
东道国制度的有效性对银行的经济福祉很重要,但对其受托责任却不重要。
个人取款机的可用性不那么令人担忧。
1.2系统对个人交易的完整性要求不高,因为偶尔丢失通话记录或账单记录不会造成持续损害。
然而,控制程序和配置记录的完整性是至关重要的。
没有这些,交换功能将被破坏,最重要的属性-可用性-将被破坏。
电话交换系统还必须保护个人通话的机密性,防止一个来电者偷听另一个来电。
1.3 a.如果系统用于发布公司专有材料,则必须确保保密性。
b.如果系统被用于法律或法规,则必须确保其完整性。
c.如果该系统用于出版日报,则必须确保其可用性。
1.4 a.在其Web服务器上管理公共信息的组织确定不存在保密性损失(即保密性要求不适用)、完整性损失的中度潜在影响和可用性损失的中度潜在影响。
B.管理极为敏感的调查信息的执法机构确定,保密损失的潜在影响高,诚信损失的潜在影响中等,可用性损失的潜在影响中等。
c.管理日常行政信息(非隐私相关信息)的金融机构确定,保密性损失的潜在影响较低,完整性损失的潜在影响较低,可用性损失的潜在影响较低。
d.承包组织内部的管理层确定:(i)对于敏感合同信息,保密损失的潜在影响是中等的,保密损失的潜在影响是完整性中等,可用性丧失的潜在影响较低;(ii)日常行政信息e、电厂管理层确定:(i)对于由监控与数据采集系统采集的传感器数据,不存在保密性丧失、完整性丧失和可用性丧失的潜在影响;以及(ii)对于系统正在处理的行政信息,保密性丧失的潜在影响很小,完整性丧失的潜在影响很小,可用性丧失的潜在影响很小。
第2章【思考题】2.1明文、加密算法、密钥、密文、解密算法。
2.2排列和替换。
2.3一把密匙。
2.4流密码是一次对数字数据流加密一位或一个字节的密码。
分组密码是将一个明文块作为一个整体来处理,并用来产生等长的密文块的密码。
2.5密码分析和暴力。
2.6在某些模式下,明文不通过加密函数,而是与加密函数的输出异或。
数学计算出,在这些情况下,对于解密,还必须使用加密函数。
2.7对于三重加密,明文块通过加密算法进行加密;然后结果再次通过同一加密算法;第二次加密的结果第三次通过同一加密算法。
通常,第二阶段使用解密算法而不是加密算法。
2.8第二阶段的解密使用没有任何加密意义。
它的唯一优点是允许3DES用户通过重复密钥来解密由旧的单个DES用户加密的数据。
【习题】2.1ab、这两个矩阵的使用顺序是相反的。
首先,密文在第二个矩阵中以列的形式排列,考虑到第二个存储字指示的顺序。
然后,考虑到第一存储字指示的顺序,从左到右、从上到下读取第二矩阵的内容并在第一矩阵的列中布局。
然后从左到右、从上到下读取明文。
c、尽管这是一种弱方法,但它可能与时间敏感信息一起使用,并且对手没有立即获得良好的密码分析(例如,战术使用)。
而且它不需要纸和铅笔,而且很容易记住。
2.2(带公式的不好翻译,我相信研究生也已经有这个英文水平可以看懂少部分)2.3a 常量确保每轮的加密/解密不同b 前两轮是这样的C 首先,让我们定义加密过程现在是解密过程。
输入是密文(L2,R2),输出是明文(L0,R0)。
解密本质上与加密相同,子密钥和增量值的应用顺序相反。
还要注意,不必使用减法,因为每个方程中都有偶数个加法。
d.2.4为了确保具有相反密钥顺序的同一算法产生正确的结果,请考虑图2.2,图2.2显示了16轮算法的加密过程从左侧向下,解密过程从右侧向上(任何轮数的结果都相同)。
为了清楚起见,对于通过加密算法传输的数据,我们使用符号LEi和REi;对于通过解密算法传输的数据,使用LDi和RDi。
该图表明,在每一轮中,解密过程的中间值等于加密过程的相应值,并且值的两半被交换。
换句话说,让第i个加密轮的输出为LEi | | REi(Li与Ri连接)。
然后,第(16–i)轮解密的对应输入是RDi | | LDi。
让我们通过这个图来演示前面断言的有效性。
为了简化图表,它被展开,而不是显示每次迭代结束时发生的交换。
但请注意,加密过程第i阶段结束时的中间结果是通过连接LEi和REi形成的2w比特量,解密过程第i阶段结束时的中间结果是通过连接LDi和RDi形成的2w比特量。
在加密过程的最后一次迭代之后,输出的两半被交换,因此密文是RE16 | | LE16。
那一轮的输出是密文。
现在把这个密文作为同一算法的输入。
第一轮的输入是RE16 | LE16,等于加密过程第十六轮输出的32位交换。
现在我们要证明,第一轮解密过程的输出等于第十六轮加密过程的输入的32位交换。
首先,考虑加密过程。
我们看到:因此,我们得到LD1=RE15和RD1=LE15。
因此,第一轮解密过程的输出是LE15 | | RE15,即32-的位交换输入到第十六轮加密。
如图所示,这种对应关系贯穿16次迭代。
我们可以把这个过程概括起来。
对于加密算法的第i次迭代:因此,我们将第i次迭代的输入描述为输出的函数,这些方程证实了下图右侧所示的赋值。
最后,我们看到最后一轮解密过程的输出是RE0 | | LE0。
32位交换恢复原始明文,证明了Feistel解密过程的有效性。
2.5由于关键时刻表,第9轮至第16轮中使用的圆函数是第1轮至第8轮中使用的圆函数的镜像。
从这个事实我们可以看出加密和解密是相同的。
我们得到一个密文c。
设m'=c。
要求oracle加密m'。
oracle加密返回的密文将是c的解密。
2.6对于1≤i≤128,取ci属于{0,1}的128次方作为在位置i中包含1的字符串,然后在其他位置零。
获取这128个密文的解密。
设m1,m2。
. . ,m128是相应的明文。
现在,给定任何不包含所有零的密文c,有一个唯一的c I的非空子集,我们可以一起异或得到c。
. . ,128}表示此子集。
观察因此,我们通过计算得到c的明文,让0成为全部为零字符串。
注意。
由此我们得到E(0)=E(00=E(0)E(0)=0。
因此,c=0的明文是m=0。
因此,我们可以解密每个c{0,1}128。
符号部分如下2.7-aPair Probability00 (0.5 –∂)2 = 0.25 –∂ +∂201 (0.5 –∂) ⨯ (0.5 + ∂)= 0.25 –∂210 (0.5 + ∂) ⨯ (0.5 –∂)= 0.25 –∂211 (0.5 + ∂)2 = 0.25 + ∂ +∂2的概率为0.5。
c、任何特定对被丢弃的概率等于该对为00或11的概率,即0.5+2∂2,因此产生x输出位的输入位的预期数量为x/(0.25–∂的平方)。
d、该算法产生一个完全可预测的序列,精确地交替1和0。
2.82.9使用长度为255字节的密钥。
前两个字节是零,即K[0]=K[1]=0。
此后,我们得到:K[2]=255;K[3]=254;…K[255]=2。
2.102.11a 取v | | c的前80位,得到初始化向量,v、由于v,c,k是已知的,所以可以通过计算RC4(v | | k)⨁c来恢复(即解密)消息。
b、如果对手发现vi=vj代表不同的i,j,那么他/她知道相同的密钥流被用来加密mi和mj。
在这种情况下,消息mi和mj可能容易受到在(a)部分中执行的密码分析类型的攻击。
c、由于密钥是固定的,密钥流随随机选择的80位v的选择而变化。
因此,大约之后发送条消息,我们期望相同的v,因此同一个密钥流,要多次使用。
d、密钥k应该在发送240条消息之前更改。
2.12a否。
例如,假设C1已损坏。
输出块P3仅依赖于输入块C2和C3。
B P1中的错误影响C1。
但由于C1是C2计算的输入,C2受到影响。
这种影响是无限期的,因此所有密文块都会受到影响。
然而,在接收端,解密算法为除了错误块之外的块恢复正确的明文。
你可以通过写出解密的方程式来说明这一点。
因此,错误只影响相应的解密明文块。
2.13在CBC加密中,每个前向密码操作(第一个除外)的输入块取决于前一个前向密码操作的结果,因此前向密码操作不能并行执行。
然而,在CBC解密中,逆密码函数的输入块(即密文块)立即可用,以便可以并行地执行多个逆密码操作。
2.14如果在密文块Ci的传输中发生错误,则该错误传播到恢复的明文块Pi和Pi+1。
2.15解密后,最后一个块的最后一个字节用于确定必须去除的填充量。
因此必须至少有一个字节的填充。
2.16假设最后一个明文块只有L字节长,其中L<2瓦/8。
加密序列如下(RFC 2040中的描述有错误;此处的描述正确):看英文版2.17a假设最后一个块(PN)有j位。
在加密最后一个完整块(PN–1)之后,再次加密密文(CN–1),选择加密密文的最左边j位,并与短块异或以生成输出密文。
b虽然攻击者无法恢复最后一个明文块,但他可以通过更改密文中的各个位来系统地更改它。
如果明文的最后几位包含基本信息,这是一个弱点。
2.18九个明文字符受到影响。
与密文字符相对应的明文字符明显改变。
此外,修改后的密文字符进入移位寄存器,直到处理完接下来的八个字符后才被删除。
第3章【思考题】3.1消息加密,消息验证码,哈希函数。
3.2身份验证器,是待验证数据和密钥的密码功能。
3.41.H可以可应用于任何大小的数据块。
2.H可以产生固定长度的输出。
3.H(x)对于任何给定的x都相对容易计算,使得硬件和软件实现都很实用。
4.对于任何给定值h,在计算上不可能找到x,使得h(x)=h。
这在文献中有时被称为单向性质。
5.对于任何给定的块x,在计算上不可能找到y≠x 当(y)=H(x)。