1.安全攻击的种类及相应的安全服务 种类:
被动攻击:消息内容泄露、流量分析 主动攻击:伪装、重放、消息修改、
拒绝服务
安全服务:认证(伪装、重放)、访问控制(消息修改)、数据保密性(泄露、流量分析)、数据完整性(消息修改、拒绝服务)、不可否认性(抵赖)、可用性服务(拒绝服务)
*2.密码系统的构成要素有哪些?
密码系统(cryptosystem)由算法以及所有可能的明文、密文和密钥组成。包含三个特征: 用于将明文转换为密文操作的类型。所有加密算法基于两个基本原则:①替代(substitution)即明文中的每个元素(比特、字母、比特组合或字母组合)被映射为另一个元素;②置换(permutation)即在明文中的元素被重排列。
所使用密钥的数量。如果发送者和接收者双方使用相同的密钥,该系统称为对称加密、单密钥加密、秘密密钥加密或常规加密。如果发送者和接收者各自使用一个不同的密钥,则该系统称为非对称加密、双密钥加密或公开密钥加密。 明文处理的方式。分组加密一次处理一块元素的输入,对每个输入块产生一个输出块。流(序列)加密连续地处理输入元素,并随着该过程的进行,一次产生一个元素的输出。
*3.密码的分类(按密钥特点或消息明文消息处理方式)
按密钥特点:对称算法和公开密钥算法 按明文处理方式:序列算法和分组算法 4.加密信息的攻击类型? 惟密文攻击、已知明文攻击、选择明文攻击、选择密文攻击、选择文本攻击、选择密钥攻击
仅知(唯)密文攻击(Ciphertext-only attack) 在这种攻击中,密码破译员有几个信息的密文,所有的信息使用相同加密算法加密。为将相同密钥加密的信息解密,密码破译员会
尽可能多地恢复信息的明文,或者更好地是
导出用于加密信息的密钥。
已知:C1=Ek(P1), C2=Ek(P2),…Ci=Ek(Pi) 导出:P1, P2,…Pi, K
或导出从Ci+1=EK(Pi+1)得知Pi+1的算法. 5.无条件安全和计算上安全的概念和区别 如果无论破译员有多少密文,仍无足够信息能恢复明文,这样的算法是无条件安全(unconditionally secure)的
如果一个算法用(现在或将来)可得到的资源都不能破译,这个算法则被认为在计算上是安全(computationally secure)的 加密算法的安全准则:
破译该密码的成本超过被加密信息的价值。 破译该密码的时间超过该信息有用的生命周期。
6.穷举攻击的概念 穷举攻击:试遍所有密钥直到有一个合法的密钥能够把密文还原成明文 //7.传统密码使用的两种技术
8.仿射密码的特点(习题 2.1、2.2) 特点:1.已知加密和解密算法;
2.需要测试的密钥只有25个;
3.明文所用的语言是已知的,且其意义易于识别。 习题:2.1
a)对b的取值没有,b只有移位作用; b)a可取1、3、5、7、9、11、15、17、19、21、23、25;不可取2、4、6、8、10、12、13、14、16、18、20、22、24、26。当a取与26不互素的数时,就可能出现p不同,但是密文相同的情况,导致不能解密。 2.2有12*26=312种。
//9.密码学研究的主要问题?
?10.密码学发展史上的标志性成果? 11.分组密码的工作模式? 电码本模式(ECB):用相同的密钥分别对明文组加密;
密文分组链接模式(CBC):加密算法的输入是上一个密文组和下一个明文组的异或; 密文反馈模式(CFB):一次处理j位,上一块密文作为加密算法的输入,用产生的一个伪随机数输出与明文异或作为下一块的输入;
输出反馈模式(OFB):与CFB基本相同,只是加密算法的输入是上一次DES的输出; 计数器模式(CTR):每个明文分组都与一个加密计数器相异或,对每个后续分组计数器递增。
12.混淆和扩散的基本概念和区别,雪崩效应的概念
扩散:将明文的统计特征消散到密文中,让明文的每个数字影响许多密文数字的取值,亦即每个密文数字被许多明文数字影响。 混淆(扰乱):明文分组到密文分组的变换依赖于密钥,使得密文的统计特性与加密密钥的取值之间的关系尽量复杂 ,使得即使攻击者掌握了密文的某些统计特性,由于密钥产生密文的方式是如此复杂以至于攻击者难于从中推测出密钥 。
区别:扩散是通过多次重复的置换实现的;混淆是通过复杂的非线性代换函数实现的。 雪崩效应:明文或密钥的微小改变将对密文产生很大的影响。
?*13.DES中 S盒的性质 ?*14.DES、2DES、3DES的安全强度?(明文分组长度、实际密钥长度) //15.分组密码的设计原理? 16.中间相遇攻击法?(针对 2DES的举例) 若给出一个已知的明密文对(P,C)做:对256个所有密钥K1做对明文P的加密,得到一张密钥K1对应于密文X的一张表;类似地对256个所有可能的密钥K2做对密文C的解密,得到相应的―明文‖X。做成一张X与K2的对应表。比较两个表就会得到至少一对密钥K1,K2(X相同)。
再用一个新的已知的明密文对(P,C)检测所得到的K1、K2,如再次匹配X,就可确定该K1、K2为正确的密钥。
给定一个明文P,经二重DES加密有2个可能的密文。而二重DES所用密钥的长度应是112 bits,所以选择密钥有2112个可能性。于是对给定明文P加密成密文C平均有2112/2=248种可能。大约有248种虚警
如再给一个已知明文-密文对,虚警的比例约为248/2 =2-16。这样,对已知明文-密文对的中间相遇攻击成功的概率为1-2-16。 攻击用的代价{加密或解密所用运算次数}
≦256+256=257
因此: Double-DES 的强度仅达到257 17.中间人攻击?
这种攻击模式是通过各种技术手段将受入侵者控制的一台计算机虚拟放置在网络连接中的两台通信计算机之间,这台计算机就称为“中间人”。然后入侵者把这台计算机模拟一台或两台原始计算机,使“中间人”能够与原始计算机建立活动连接并允许其读取或篡改传递的信息,然而两个原始计算机用户却认为他们是在互相通信。P215 //18.生日攻击?
19.密码功能的设置位置?
链路加密:在通信链路两端加上加密设备。 端到端加密:在端系统中进行,由源主机或终端加密数据。
//20.如何对抗通信量分析? 21.密钥分配的模式?
1)密钥由A选择,并亲自交给B 2)第三方选择,并亲自交给A和B
3)用最近使用的密钥加密新密钥并发给对方
4)使用秘密信道
22.对抗重放攻击的方法? 对付重放攻击的常用方法: 为消息分配一个序号; 时间戳:仅当消息包含时间戳并且在A看来这个时间戳与其所认为的当前时间足够接近时,A才认为收到的消息是新消息,这种方法要求通信各方的时钟应保持同步,不适合于面向连接的应用;
挑战/响应:现时消息(nonce)若A要接收B发来的消息,则A首先给B发送一个临时交互号(挑战),并要求B发来的消息(应答)包含该临时交互号,不适合于无连接的应用。
//23.随机数的评价标准?
*24.RSA算法、ECC算法等公钥算法的安全基础?
1)产生一对密钥,在计算上是容易的; 2)已知公钥和加密的消息,产生相应的密文在计算上是容易的;
3)使用私钥解密以恢复明文在计算上是容
易的;
4)已知公钥,攻击者推导出私钥在计算上是不可行的;
5)已知公钥和密文,攻击者恢复明文在计算上是不可行的;
6)加密和解密函数的顺序可以交换。 单向函数(one-way function):
1)它将一个定义域映射到一个值域,使得每个函数值有一个惟一的原像;
2)函数值计算很容易,而逆计算是不可行的。
陷阱门单向函数:除非知道某种附加的信息,否则这样的函数在一个方向上容易计算,而在另外的方向上要计算是不可行的。有了附加信息,函数的逆就可以在多项式时间内计算出来。
25.ECC中点群的运算法则?
1)是加法的单位元(additive identity)。因而=- ;对于椭圆曲线上的任何一点P有P + = P。
2)一条垂直的线和曲线相交与两个有相同的x坐标的点,即P1 = (x, y)和P2 = (x, -y)。它也和曲线相交于无穷点。因此有 P1 + P2 + = 和P1 = -P2。因而一个点的负值是一个有着相同的x坐标和负的y坐标的点。 3)要对具有不同的x坐标的两个点P和Q进行相加,先在它们之间画一条直线并求出第三个交点R。容易看出这种交点是惟一的(除非这条直线在P或Q处是曲线的切线,这时分别取R= P或者R= Q)。那么注意到P + Q + R = O,因此有P + Q = -R。
4)要对一个点Q加倍,画一条切线并求出另一个交点S。那么Q + Q = 2Q = -S。 有限域上的椭圆曲线加法规则 1)P + = P。
2)如果P = (x, y),那么P + (x, y) = 。点(x, y)是P的负值,记为P 。 如果P = (x1, y1)和Q = (x2, y2),而P ≠ Q,3)那么P + Q = (x3, y3)由下列规则确定: x3=z2-x1-x2(mod p);y3=z(x1-x3)-y1(mod p) 其中:z=(y2-y1)/(x2-x1)(p!=q); z=(3x12+a)/2y1(p=q)。
?26.公钥密码与对称密码的比较? 27.RSA算法的原理和计算? 密钥生成算法:
第1步,选取两个大素数p和q,计算n=p×q和欧拉函数(n)=(p1)(q1);
第2步,随机选取整数e,1 约定RSA密码系统的明文和密文空间均为:Zn=(0, 1,…, n1). 为了给用户A发送明文m,B进行如下操作: 第1步,首先获得A的公钥(n, e); 第2步,计算密文 c=me mod n. 第3步,将密文c发送给A。 解密算法: 为了恢复明文m,接收者A利用其私钥d计算:m=cd mod n 算法的一致性证明,即解密算法的正确性: m=cd mod n 基本原理:Fermat定理 mp1 =1 mod p 28.针对 RSA的攻击类型? 强行攻击(穷举):这包含对所有的私有密钥都进行尝试。 数学攻击:有几种方法,实际上都等效于对两个素数乘积的因子分解。 定时攻击:这依赖于解密算法的运行时间。目前常用的数学方式攻击RSA的目标: 1)将n分解为两个素数因子。这就可以使我们计算φ(n) = (p – 1) (q – 1),然后可以确定d = e-1 mod φ(n)。 2)在不先确定p和q的情况下直接确定φ(n)。同样这样可以确定d = e-1 mod φ(n)。 3)不先确定φ(n)而直接确定d。 具体的攻击方法有: 因子分解攻击、共模攻击、选择密文攻击、低加密指数攻击、低解密指数攻击 29.欧拉函数、扩展欧几里德算法? 对正整数n,欧拉函数是少于或等于n的数中与n互质的数的数目。 //30.单向陷门函数? 31.D-H密钥交换协议?(原理、计算及安全性分析) 原理: 1)有两个公开的数字:一个素数q和一个q 的一个原根a; 2)用户A选择一个随机数XAq,并计算YA = aXA mod q; 3)用户B选择一个随机数 XBq ,并计算YB = aXB mod q ; 4)每一方都对X的值保密存放而使得Y的值对于另一方可以公开得到; 5)用户A计算密钥的方式是K = (YB)XA mod q,而用户B计算密钥的方式是K = (YA)XB mod q 。 K = (YB)XA mod q = (aXB mod q)XA mod q = (aXB)XA mod q = (aXA)XB mod q = (aXA mod q)XB mod q = (YA)XB mod q 因而,两方已经交换了一个秘密密钥。另外,因为XA和XB是保密的,一个敌对方只有下列可以利用的材料:q,a,YA和YB,因而敌对方被迫取离散对数来确定密钥。 安全性: 基于离散对数困难问题 不能抵抗中间人攻击(主动攻击) //32.ECC和 RSA的安全强度? //33.网络通信环境下面临的安全威胁? *34.消息认证码(MAC)的基本概念及应用(设计*) 消息认证码(MAC):以一个消息的公共函数和用于产生一个定长值的密钥作为认证码。 MAC,也称为密码检验和,由如下形式的函数C生成 MAC=CK(M) 其中M是变长的消息,K是仅由收发双方共享的密钥,CK(M)是定长的认证码。 该方案使用一个密钥产生一个短小的定长数据分组,即所谓的密码检验(MAC),并将它附加在消息中。 MAC为消息和密钥K的函数值:MAC = CK(M). 接收者对收到的消息计算并得出新的MAC。将收到的MAC与计算得出的MAC进行比较,就可以实现认证。 HMAC算法逻辑描述: HMACK = H[(K+ ⊕ opad) || H[(K+ ⊕ ipad) || M]] 其中: H= 嵌入的散列函数(如MD5,SHA-l,RIPEMD-160) M= HMAC的输入消息(包括嵌入散列函数所需的填充比特) Yi = M中的第i个分组,0≤i≤L-1 L = M中的分组数 b = 一个分组的比特数 n = 嵌入散列函数产生的散列码长度 K= 密钥;如果密钥的长度大于b,该密钥输入散列函数产生一个n比特的密钥;推荐密钥长度大于等于n K+= 在K的左边填充0,使总长度等于b ipad= 将00110110重复b/8次 opad= 将01011010重复b/8次 35.散列函数的概念、性质(单向性、抗强碰撞、抗弱碰撞之间的关系和区别) 散列函数(Hash):一个将任意长度的消息映射为定长的散列值的公共函数,以散列值作为认证码。 散列值以如下形式的函数H产生的: h=H(M) 其中M是变长的消息,H(M)是定长的散列值。 散列函数的目的是为文件、消息或其他的分组数据产生―指纹‖。 性质: 1)H能用于任何大小的数据分组; 2)H产生定长输出; 3)对任何给定的x,H(x)要相对易于计算,4)使得硬件和软件实现成为实际可行; 5)对任何给定的散列码h,寻找x使得H(x) = h在计算上是不可行的。即单向性质; 6)对任何给定的分组x,寻找不等于x的y,使得H(x) = H(y)在计算上是不可行的。有时将此称为抗弱碰撞(week collision resistance); 7)寻找对任何的(x, y)偶对使得H(x) = H(y)在计算上是不可行的。有时将此称为抗强碰撞(strong collision resistance); 8)所有散列函数的操作使用下列一般性原则。输入(消息、文件等)被视作长度为n-bit 的分组序列。输入的处理方式是,以迭代的方式每次处理一个分组,以产生一个n-bit的散列函数。 (总结)安全散列函数的性质 对任意的消息x,计算H(x)是容易的; H是单向的; H是抗弱碰撞的或是抗强碰撞的。 //36.消息认证? 37.散列函数的基本用途 a)A→B:EK[M||H(M)] 提供保密——仅A和B共享K 提供认证——加密保护H(M) b)A→B:M||EK[H(M)] 提供认证——加密保护H(M) c)A→B:M||EKRa[H(M)] 提供认证和数字签名 加密保护H(M) 仅A能生成EKRa[H(M)] d)A→B:EK[M||EKRa[H(M)]] 提供认证和数字认证 提供保密——仅A和B共享K e)A→B:M||H(M||S) 提供认证——仅A和B共享S f)A→B:EK[M||H(M)||S] 提供认证和数字签名——仅A和B共享S 提供保密——仅A和B共享K *38.认证协议的作用,及其面临的安全问题? 可用来保护通信双方免受任何第三方的攻击。 无法用来防止通信双方的互相攻击,无法解决通信双方可能存在多种形式的争执。 原因: 接收方可能伪造并声称它来自发送方。接收方只要简单地生成一个消息,并附加使用由发送方和接收方所共享的密钥生成的认证码即可。 发送方可以否认发送过该消息。因为接收方伪造一个消息是可能的,无法证明发送方发送过该消息这一事实。(习题*) 39.数字签名的基本概念 数字签名是一种认证机制,它使得消息的产生者可以添加一个起签名作用的码字。通过计算消息的散列值并用产生者的私钥加密 散列值来生产签名,签名保证了消息的来源和完整性。(算法P285) //40.DSS的功能? //41.数字签名方案的原型? //42.Kerberos协议流程极其安全性? 43.Kerberos中 Ticket与 Authenticator的作用? Kerberos票据的形式 TicketS = EKS[KC,S || IDC || ADC || IDS || TS || Lifetime] 票据对单个服务器和单个客户机是有益的,它含有客户机名、服务器名、客户机的网络地址、邮戳和会话密钥,这些信息用服务器的私钥加密。客户机一旦得到这个票据,她就可以多次使用票据访问服务器,直到票据期满。客户机不能把票据解密(由于不知道服务器的私钥),但是可以以加密的形式呈交给服务器,当票据经过网络时,没有一位监听网络的人能够阅读或修改票据。 Kerberos鉴别符格式 AuthenticatorC = EKC,S[IDC || ADC || TS] 客户机每次要在服务器上使用服务时生成鉴别符,它含有客户机、时戳、可选的附加会话密钥,所有都用客户机与服务器共享的会话密钥加密。与票据不同,它只能使用一次,然而,由于客户机在需要时可以生成鉴别符(它知道共享的私钥),这也不成问题。鉴别符有二个作用,第一是它含有以会话密钥加密的一些明文,这说明鉴别符的发送者也知道这个密钥,并且密封的明文内含有日期时间,因此记录了票据和鉴别符的窃听者也不能在此后重发。 44.构成 X.509证书的关键要素? X.509证书要素 版本:不同版本间证书格式的差异;默认是第1版。如果提供了颁发者惟一标识符或主体惟一标识符,那么值必须是第2版。如果出现一个或多个扩展,那么版本必须是第3版。 序列号:在发布证书中的一个有惟一性的整数值,是与这张证书明确联系的。 签名算法标识符:用来签名证书的算法以及一些相关的参数。由于这个信息与在证书尾 部签名字段的内容重复,因此这个字段几乎没有作用。 颁发者名字:创建和签名这个证书的CA的X.500名字。 有效期:由两个日期组成:证书的有效起始时间和结束时间。 主体名:这张证书提及的用户名。也就是这张证书证实了持有相应私人密钥主体的公开密钥。 主体的公开密钥信息:主体的公开密钥加上这个密钥使用算法的表示符,以及算法的相关参数。 颁发者的惟一标识符:一个可选的比特串字段用来惟一证实CA,如果该X.500名字已经被不同的实体重新使用。 主体的惟一标识符:一个可选的比特串字段用来惟一证实主体,如果该X.500名字已经被不同的实体重新使用。 扩展:包含一个或多个扩展字段的集合。扩展仅在第3版中加入。 签名:包括证书的其他所有字段;它包含用CA私有密钥加密的其他字段的散列码。这个字段还包括签名算法标识符。 45.公钥证书的概念、用途,及其密钥对的备份存档考虑? 公钥证书是一种数字签名的声明,它将公钥的值绑定到持有对应私钥的个人、设备或服务的身份。 证书的用途: 在证书扩展选项中,“用途”是一项重要的内容,它规定了该证书所公证的公钥的用途。公钥必须按规定的用途来使用。一般地,公钥有两大类用途: 用于验证数字签名。 消息接收者使用发送者的公钥对消息的数字签名进行验证。 用于加密信息。 消息发送者使用接收者的公钥加密用于加密消息的密钥,进行数据加密密钥的传递。 相应地,系统中需要配置用于数字签名/验证的密钥对和用于数据加密/解密的密钥对,这里分别称为签名密钥对和加密密钥对。 两对密钥对于密钥管理有不同的要求: 签名密钥对 签名密钥对由签名私钥和验证公钥组成。签名私钥具有日常生活中公章、私章的效力,为保证其唯一性,签名私钥绝对不能够作备份和存档,丢失后只需重新生成新的密钥对,原来的签名可以使用旧公钥的备份来验证。验证公钥需要存档,用于验证旧的数字签名。用作数字签名的这一对密钥一般可以有较长的生命期。 加密密钥对 加密密钥对由加密公钥和解密私钥组成。为防止密钥丢失时丢失数据,解密私钥应该进行备份,同时还可能需要进行存档,以便能在任何时候解密历史密文数据。加密公钥无须备份和存档,加密公钥丢失时,只须重新产生密钥对。加密密钥对通常用于分发会话密钥,这种密钥应该频繁更换,故加密密钥对的生命周期较短。 证书的特点: 任何能够访问CA的用户,可以得到CA上的任何证书。 只有 CA 能够修改证书。 因为证书不能伪造,证书可以放在目录中。 46.公钥证书链的获取 证书的认证过程——证书链 根据X.509建议,CA组织成层次结构,以便直接向前导航,因此用户的证书可以使用任意长度的CA来产生一个链。一个有N个元素的链可以表示为 :
Copyright © 2019- igat.cn 版权所有 赣ICP备2024042791号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务