第1章【思考题】1.1OSI安全体系结构是一个框架,它提供了一种系统化的方式来定义安全需求,并描述满足这些需求的方法。该文档定义了安全攻击、机制和服务,以及这些类别之间的关系。1.2被动攻击与窃听或监视传输有关。电子邮件、文件传输和客户机/服务器交换是可以监视的传输示例。主动攻击包括修改传输的数据和试图未经授权访问计算机系统。1.3被动攻击:发布消息内容和流量分析。主动攻击:伪装、重播、修改消息和拒绝服务。1.4认证:保证通信实体是其声称的实体。访问控制:防止未经授权使用资源(即,此服务控制谁可以访问资源,在什么条件下可以进行访问,以及允许访问资源的人做什么)。数据保密:保护数据不被未经授权的泄露。数据完整性:确保接收到的数据与授权实体发送的数据完全一致(即不包含修改、插入、删除或重播)。不可否认性:提供保护,以防止参与通信的实体之一拒绝参与全部或部分通信。可用性服务:系统或系统资源的属性,根据系统的性能规范,经授权的系统实体可根据需要访问和使用(即,如果系统在用户请求时根据系统设计提供服务,则系统可用)。【习题】1.1系统必须在主机系统和交易传输期间对个人识别号保密。它必须保护账户记录和个人交易的完整性。东道国制度的有效性对银行的经济福祉很重要,但对其受托责任却不重要。个人取款机的可用性不那么令人担忧。1.2系统对个人交易的完整性要求不高,因为偶尔丢失通话记录或账单记录不会造成持续损害。然而,控制程序和配置记录的完整性是至关重要的。没有这些,交换功能将被破坏,最重要的属性-可用性-将被破坏。电话交换系统还必须保护个人通话的机密性,防止一个来电者偷听另一个来电。1.3a.如果系统用于发布公司专有材料,则必须确保保密性。b.如果系统被用于法律或法规,则必须确保其完整性。c.如果该系统用于出版日报,则必须确保其可用性。1.4a.在其Web服务器上管理公共信息的组织确定不存在保密性损失(即保密性要求不适用)、完整性损失的中度潜在影响和可用性损失的中度潜在影响。B.管理极为敏感的调查信息的执法机构确定,保密损失的潜在影响高,诚信损失的潜在影响中等,可用性损失的潜在影响中等。c.管理日常行政信息(非隐私相关信息)的金融机构确定,保密性损失的潜在影响较低,完整性损失的潜在影响较低,可用性损失的潜在影响较低。d.承包组织内部的管理层确定:(i)对于敏感合同信息,保密损失的潜在影响是中等的,保密损失的潜在影响是完整性中等,可用性丧失的潜在影响较低;(ii)日常行政信息e、电厂管理层确定:(i)对于由监控与数据采集系统采集的传感器数据,不存在保密性丧失、完整性丧失和可用性丧失的潜在影响;以及(ii)对于系统正在处理的行政信息,保密性丧失的潜在影响很小,完整性丧失的潜在影响很小,可用性丧失的潜在影响很小。1.5ReleaseofmessagecontentsTrafficanalysisMasqueradeReplayModificationofmessagesDenialofservicePeerentityauthenticationYDataoriginauthenticationYAccesscontrolYConfidentialityYTrafficflowconfidentialityYDataintegrityYYNon-repudiationYAvailabilityY1.6ReleaseofmessagecontentsTrafficanalysisMasqueradeReplayModificationofmessagesDenialofserviceEnciphermentYDigitalsignatureYYYAccesscontrolYYYYYDataintegrityYYAuthenticationexchangeYYYYTrafficpaddingYRoutingcontrolYYYNotarizationYYY第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,有一个唯一的cI的非空子集,我们可以一起异或得到c。..,128}表示此子集。观察因此,我们通过计算得到c的明文,让0成为全部为零字符串。注意。由此我们得到E(0)=E(00=E(0E(0)=0。因此,c=0的明文是m=0。因此,我们可以解密每个c{0,1}128。符号部分如下2.7-aPairProbability00(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+∂+∂2b、因为01和10在初始序列中的概率相等,所以在修改后的序列中,0的概率为0.5,1的概率为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。BP1中的错误影响C1。但由于C1是C2计算的输入,C2受到影响。这种影响是无限期的,因此所有密文块都会受到影响。然而,在接收端,解密算法为除了错误块之外的块恢复正确的明文。你可以通过写出解密的方程式来说明这一点。因此,错误只影响相应的解密明文块。2.13在CBC加密中,每个前向密码操作(第一个除外)的输入块取决于前一个前向密码操作的结果,因此前向密码操作不能并行执行。然而,在CBC解密中,逆密码函数的输入块(即密文块)立即可用,以便可以并行地执行多个逆密码操作。2.14如果在密文块Ci的传输中发生错误,则该错误传播到恢复的明文块Pi和Pi+1。2.15解密后,最后一个块的最后一个字节用于确定必须去除的填充量。因此必须至少有一个字节的填充。2.16假设最后一个明文块只有L字节长,其中L2瓦/8。加密序列如下(RFC2040中的描述有错误;此处的描述正确):看英文版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)。6.在计算上不可能找到任何一对(x,y),使得H(x)=H(y)。3.5压缩函数是哈希函数的基本模块或基本构造块。哈希函数由压缩函数的迭代应用组成。3.6明文:这是输入到算法中的可读消息或数据。加密算法:加密算法对明文执行各种转换。公钥和私钥:这是一对已选定的密钥,如果其中一个用于加密,另一个用于解密