云南大学密码技术期末重点剖析
- 格式:doc
- 大小:279.00 KB
- 文档页数:11
填空:1.密码包括两部分:密码编码学和密码分析学2.根据每次处理数据的多少可以分为流密码、分组密码各自一个代表算法:RC4、DES算法3.单表替换密码的密钥有多少种:26!Playfair 密码有5×5个密钥轮转机:26^n4.IDEA算法密钥长度为128bits,RC4算法的密钥长度为8-2048bitsAES算法的密钥长度分别为128、192和2565.DES密码数据分组为64bits,和输入密钥是64bits,产生56bit的字密钥6.安全服务(X.800),服务分成五大类:认证访问控制数据保密性数据完整性不可否认性名词解释:无条件安全:无论有多少可使用的密文,都不足以唯一的确定密文所对应的明文。
计算的安全:1.破译密码的代价超出密文信息的价值2.破译密码的时间超出密文信息的有效生命对称密钥体制经典的密码体制中,加密密钥与解密密钥是相同的,或者可以简单相互推导,也就是说:知道了加密密钥,也就知道了解密密钥;知道了解密密钥,也就知道了加密密钥。
所以,加、解密密钥必须同时保密。
这种密码体制称为对称(也称单钥)密码体制。
最典型的对称加密算法是DES数据加密标准。
公钥密码体制公钥算法是基于数学函数而不是基于替换和置换的。
公钥密码学使用两个密钥:公密钥、私密钥,其中公密钥可以公开,而私密钥需要保密。
仅根据密码算法和加密密钥来确定解密密钥在计算上是不可行的。
两个密钥中的任何一个都可以用来加密,另一个用来解密。
公钥密码可以用于加密、认证、数字签名等。
ECC椭圆曲线密码学(ECC, Elliptic curve cryptography)是基于椭圆曲线数学的一种公钥密码的方法,ECC他是添加了模拟的模乘运算,叠加的是模拟的模幂运算。
需要困难的问题去当量于离散的log。
Q=KP,Q、P属于主要曲线,他是容易的计算Q的值给出K、P,但是是困难的去找到K给出Q、P,解决椭圆算法问题。
Eq(a,b)碰撞(Collision)如果两个输入串的hash函数的值一样,则称这两个串是一个碰撞(Collision)。
古典密码1.密码的基本概念○1作为数学的一个分支,是密码编码学和密码分析学的统称○2密码编码学:使消息的技术和科学研究容:1、序列密码算法的编码技术2、分组密码算法的编码技术3、公钥密码体制的编码技术○3密码分析学:破译密文的科学和技术研究容:1、密码算法的安全性分析和破译的理论、方法、技术和实践2、密码协议的安全性分析的理论与方法3、安全系统的安全性分析和攻击的理论、方法、技术和实践2.密码体制的5构成要素:○1M:明文消息空间,表示所有可能的明文组成的有限集。
○2C:密文消息空间,表示所有可能的密文组成的有限集。
○3K:密钥空间,表示所有可能的密钥组成的有限集。
○4E:加密算法集合。
○5D:解密算法集合3.密码体制的分类:○1对称密匙密码系统加密密钥=解密密钥钥匙是的依赖密钥选择○2非对称密匙密码系统加密密钥≠解密密钥加密密钥为公钥(Public Key)解密密钥为私钥(Private Key)4.古典密码体制的算法○1棋盘密码希腊作家Polybius提出密钥空间:25○2移位密码○3代换密码○4维吉尼亚密码○5仿射密码:仿射密码是移位密码的一个推广,其加密过程中不仅包含移位操作,而且使用了乘法运算例题:1-1mod26=13-1mod26=95-1mod26=21 7-1mod26=1511-1mod26=19 17-1mod26=23 25-1mod26=25○6置换密码○7 Hill密码例题:5.密码分析的Kerckhoffs原则:攻击者知道所用的加密算法的部机理,不知道的仅仅是加密算法所采用的加密密钥6.常用的密码分析攻击分为以下四类:惟密文攻击已知明文攻击选择明文攻击选择密文攻击7.衡量密码体制安全性的基本准则:计算安全的可证明安全的无条件安全的分组密码8.分组密码的设计准则○1概念:又称块密码。
是指对固定长度的一组明文进行加密的一种加密算法,这一固定长度称之为分组长度○2在分组加密中,要求填充是可逆的○3严格的雪崩准则SAC 位独立准则BIG 保证的雪崩准则GAC 非线性性和随机性9.Feistel分组密码的基本结构:Shannon 能够破坏对密码系统进行各种统计分析攻击的两个基本操作:扩散和混淆10.Feistel安全性取决于:○1明文消息和密文消息分组的大小○2子密钥的大小○3循环次数○4子密钥产生算法○5轮函数(核心——非线性)11.数据加密标准——DES(Data Encryption Standard)○1包含16个阶段的“替换--置换”的分组加密算法经过16轮加密得到64位密文序列○2密钥的长度56位12.DES共8个s盒——6位输入4位输出13.高级加密标准AES(Advanced Encryption Standard)128位分组/密钥—10轮 192位分组/密钥—12轮 256位分组/密钥—14轮14.IDEA(International Data Encryption Algorithm:国际数据加密标准)64位分组 128位密钥 8轮15.分组密码的4种常用工作模式为:“工作模式”是指以某个分组密码算法为基础,解决对任意长度的明文的加密问题的方法电码本模式(Electronic-Codebook Mode,ECB模式)密码反馈模式(Cipher- Feedback Mode,CFB模式)密码分组模式(Cipher-Block-Chaining,CBC模式)输出反馈模式(Output-Feedback Mode,OFB模式)模式(计数器Counter Mode,CTR模式)16.分组密码的分析技术主要有以下几种:穷尽搜索攻击;差分密码分析攻击;线性密码分析攻击;17.18.序列密码的主要原理:通过随机数发生器产生性能优良的伪随机序列(密钥流),使用该序列加密信息流(逐比特加密),得到密文序列。
密码基础算法知识点总结密码学是计算机科学的一个分支,主要研究数据的保护和安全性。
密码算法是密码学的一个重要组成部分,它用于数据加密和解密。
在信息安全领域中,密码算法被广泛应用于保护通信数据、网络数据、存储数据等方面。
密码算法的安全性直接影响着信息的保密性和完整性,并且也是信息安全的一个重要基础。
密码算法知识点总结如下:1. 对称加密算法对称加密算法也称为私钥加密算法,它使用一个密钥进行加密和解密过程。
常见的对称加密算法有DES、3DES、AES等。
对称加密算法的优点是加密和解密速度快,但密钥管理较为复杂,安全性较低。
2. DES算法DES算法是一种对称加密算法,采用56位密钥,有8位校验位,所以实际上是64位。
DES算法的加密过程主要包括初始置换、16轮迭代加密、逆初始置换三个步骤,解密过程与加密过程相反。
3. 3DES算法3DES算法是对DES算法的加强,它采用了三个相同或不同的密钥,对数据进行三次加密和解密。
3DES算法的安全性比DES算法更高。
4. AES算法AES算法是一种高级加密标准,采用对称加密算法,它的密钥长度支持128位、192位和256位。
AES算法的特点是安全性高、速度快。
5. 非对称加密算法非对称加密算法也称为公钥加密算法,它使用一对密钥进行加密和解密,其中一个为公钥,另一个为私钥。
常见的非对称加密算法有RSA、ElGamal、ECC等。
非对称加密算法的优点是密钥管理简单,安全性高,但加密和解密速度较慢。
6. RSA算法RSA算法是一种非对称加密算法,基于大数分解的数学难题。
RSA算法的安全性依赖于大数分解的困难性,目前还未有有效的算法可以快速有效地分解大数。
7. 数字签名数字签名是一种用于验证文件或数据完整性和来源的技术,它使用私钥对文件或数据进行签名,然后使用公钥对签名进行验证。
数字签名主要用于保护文件的完整性和防止抵赖。
8. 消息摘要算法消息摘要算法也称为哈希算法,它将任意长度的消息或文件转换为固定长度的摘要值。
密码学知识点总结密码学的发展可以追溯到古代,古希腊和罗马就有使用密码进行通信的记录。
而现代密码学的起源可以追溯到二战期间,当时的盟军和轴心国都使用密码学来保护其通信内容。
随着计算机技术的发展,密码学变得更加重要和复杂,研究和应用领域也日益广泛。
在密码学中,有许多重要的概念和技术,下面我们将简要介绍一些主要的知识点。
1. 对称加密和非对称加密对称加密是指加密和解密使用相同的密钥的加密方式。
例如,最简单的对称加密算法是凯撒密码,使用一个固定的偏移量将字母替换成其他字母来加密。
而非对称加密则使用不同的密钥进行加密和解密,公钥用于加密,私钥用于解密。
非对称加密算法有RSA、椭圆曲线加密等。
对称加密的速度通常更快,而非对称加密更安全,因为加密和解密的密钥是分离的。
2. 数字签名数字签名是一种确保信息完整性和真实性的技术,它用于验证信息的发送者是合法的。
数字签名通过使用发送者的私钥对信息进行签名,接收者通过使用发送者的公钥来验证签名的有效性。
数字签名在电子支付、电子合同和网上交易中发挥了重要作用。
3. 哈希函数哈希函数是将任意长度的输入数据转换成固定长度的输出数据的一种函数。
哈希函数具有单向性和抗碰撞的特性,即不能通过哈希值还原出原始数据,且不同的输入数据产生相同的哈希值的可能性极小。
哈希函数在密码学中用于密码存储、数字签名、消息摘要等方面。
4. 加密协议加密协议是一种用于保护通信数据安全的协议。
例如,SSL/TLS协议用于在互联网上安全地传输数据,IPsec协议用于在网络层保护通信数据。
加密协议通常包括密钥交换、加密算法和认证机制。
5. 公钥基础设施(PKI)公钥基础设施是一种用于管理公钥和数字证书的框架。
PKI包括数字证书颁发机构(CA)、注册机构(RA)和证书库。
数字证书是用于验证公钥和身份的一种凭证,它通常包括了公钥、持有者的身份信息和数字签名。
密码学是一门广泛的学科,涉及到数学、计算机科学、信息安全等多个领域。
密码学重要知识点0x01 密码学定义密码学(Cryptograghy)是研究编制密码和破译密码的技术科学,是研究如何隐密地传递信息的学科。
研究密码变化的客观规律,应用于编制密码以保守通信秘密的,称为编码学;应用于破译密码以获取通信情报的,称为破译学,总称密码学。
在现代特别指对信息以及其传输的数学性研究,常被认为是数学和计算机科学的分支,和信息论也密切相关。
著名的密码学者 Ron Rivest 解释道:“密码学是关于如何在敌人存在的环境中通讯”,自工程学的角度,这相当于密码学与纯数学的异同。
密码是通信双方按约定的法则进行信息特殊变换的一种重要保密手段。
依照这些法则,变明文为密文,称为加密变换;变密文为明文,称为脱密变换。
密码在早期仅对文字或数码进行加、脱密变换,随着通信技术的发展,对语音、图像、数据等都可实施加、脱密变换。
现代密码学所涉及的学科包括:信息论、概率论、数论、计算复杂性理论、近世代数、离散数学、代数几何学和数字逻辑等。
0x02 密码发展史根据国家密码管理局给出的全面文件指出古典密码在古代很多国都有所使用。
古代中国:从古到今,军队历来是使用密码最频繁的地方,因为保护己方秘密并洞悉敌方秘密是克敌制胜的重要条件。
中国古代有着丰富的军事实践和发达的军事理论,其中不乏巧妙、规范和系统的保密通信和身份认证方法。
中国古代兵书《六韬》中的阴符和阴书:《六韬》又称《太公六韬》或《太公兵法》,据说是由西周的开国功臣太公望(又名吕尚或姜子牙,约公元前1128—公元前1015)所著。
书中以周文王和周武王与太公问答的形式阐述军事理论,其中《龙韬•阴符》篇和《龙韬•阴书》篇,讲述了君主如何在战争中与在外的将领进行保密通信。
以下是关于“阴符”使用方法对话的译文。
武王问太公说:领兵深入敌国境内,军队突然遇到紧急情况,战事或有利,或失利。
我要与各军远近相通,内外相应,保持密切的联系,以便及时应对战场上军队的需求,应该怎么办呢?太公回答说:国君与主将之间用阴符秘密联络。
密码学(cryptology)是研究密码编制、密码破译和密钥管理的一门综合性应用科学。
一个密码体制由五部分组成:明文空间(M);密文空间(C);密钥空间(K);加密变换:E; 脱密变换D。
密码学的三个分支:密码编码学,密码分析学,密钥管理学对密码体制的基本要求:(1) 即使达不到理论上是不可破的,也应当是实际上不可破的。
(2)保密性不依赖于对加密体制或算法的保密,而依赖于密钥。
(Kerckhoff 假设)(3)加密算法和脱密算法适用于密钥空间中的所有元素。
弱密钥除外!(4)易于实现和使用。
按敌手可利用的知识的类别的多少,攻击方法可分为:(1)唯密文攻击(2)已知明文攻击(3)选择明文攻击(4)选择密文攻击分析方法有:穷举攻击、统计攻击、解析攻击、代数攻击等移位密码的特点优点:明文字符的位置发生变化。
移位密码打乱了明文字符之间的跟随关系,使得明文自身具有的结构规律得到了破坏。
缺点:明文字符的形态不变;一个密文子符的出现次数也是该子符在明文中的出现次数。
单表代替的特点:优点:隐蔽了明文字符的原形!缺点:明文字符相同,则密文字符相同。
即一个密文字符的频次就是它对应的明文字符的频次,明文字符之间的跟随关系直接反映在密文之中。
多表代替密码的特点优点:特殊的多表代替密码可以做到完全保密。
缺点:大量通信时不实用;分配密钥和存储密钥时安全隐患大;密钥序列可能重复使用。
熵表示集X中事件出现的平均不确定性,或为确定集X中出现一个事件平均所需的信息量,或集X中出现一个事件平均给出的信息量。
条件熵定义为:表示观察到事件集Y后,集X还保留的不确定度。
集X和集Y的互信息表示由于一个事件集的发生,造成的另一个事件集的信息量的减少程度,或者说从一个事件集提取的关于另一个事件集的信息量。
分析密码方案实际保密性的两个重要因素(1)计算能力--通常假定密码分析者拥有最好的设备。
(2)密码分析算法--安全的密码算法必须能够对抗所有可能的攻击方法。
密码技术(图解密码技术的学习总结)⼀、对称密码1、机密性(看不到明⽂)2、算法:DES(Data Encryption Standard):已被暴⼒破解 三重DES(3DES、EDEA):过程加密(秘钥1)-解密(秘钥2)-加密(秘钥3) (1)DES-EDE2:秘钥1和秘钥3相同和 (2)DES-EDE3:秘钥均不同 特点:安全性可以,但处理速度不⾼。
AES(Advanced Encryption Standard 美国通过组织AES公开竞选算法,免费供全世界使⽤):取代DES和三重DES的标准算法。
特点:安全、快速 选定的算法为Rijndael算法。
3.DES与AES属于分组密码,只能加密固定长度的明⽂。
更多密⽂时需要分组、迭代加密。
如AES分组长度为128⽐特、可以⼀次性加密128⽐特的明⽂,并⽣成128⽐特的密⽂4.分组密码模式 ECB模式:每个组直接⽤相同秘钥直接加密。
绝对不可⽤ CBC模式:推荐 CTR模式:推荐 CFB模式:推荐 OFB模式:推荐ps:SSL/TLS协议使⽤了CBC模式,⽤了三重DES的3DES_EDE_CBC以及AES_256_CBC缺点:秘钥配送的问题。
-->可以⽤公钥密码(⾮对称加密)解决。
尝试解决配送问题:(1)事先共享秘钥 当然能见⾯、打电话确认或者邮件确认的⽅式实现共享秘钥⾃然可以,这类场景不会存在配送的问题。
能事先共享秘钥时也有问题:⼈与⼈之间都需要不同的秘钥。
数量太多。
如果有N个⼈,那么就需要N*(N-1)/2个秘钥 但其他场景,⽐如浏览器与服务器,怎样建⽴起信任?刚认识的朋友之间的消息,如何信任呢?(2)秘钥分配中⼼:每个⼈都通过中⼼分配。
缺点:数据库保存太多的秘钥、同时秘钥分配中⼼责任重⼤(3)Diffie-Hellman秘钥交换⽅式(4)公钥密码(⾮对称加密)⼆、⾮对称密码(公钥密码)1、机密性(看不到明⽂)2、原理:消息接收者A⽣成秘钥对,包含公钥和私钥。
填空:1.密码包括两部分:密码编码学和密码分析学2.根据每次处理数据的多少可以分为流密码、分组密码各自一个代表算法:RC4、DES算法3.单表替换密码的密钥有多少种:26!Playfair 密码有5×5个密钥轮转机:26^n4.IDEA算法密钥长度为128bits,RC4算法的密钥长度为8-2048bitsAES算法的密钥长度分别为128、192和2565.DES密码数据分组为64bits,和输入密钥是64bits,产生56bit的字密钥6.安全服务(X.800),服务分成五大类:认证访问控制数据保密性数据完整性不可否认性名词解释:无条件安全:无论有多少可使用的密文,都不足以唯一的确定密文所对应的明文。
计算的安全:1.破译密码的代价超出密文信息的价值2.破译密码的时间超出密文信息的有效生命对称密钥体制经典的密码体制中,加密密钥与解密密钥是相同的,或者可以简单相互推导,也就是说:知道了加密密钥,也就知道了解密密钥;知道了解密密钥,也就知道了加密密钥。
所以,加、解密密钥必须同时保密。
这种密码体制称为对称(也称单钥)密码体制。
最典型的对称加密算法是DES数据加密标准。
公钥密码体制公钥算法是基于数学函数而不是基于替换和置换的。
公钥密码学使用两个密钥:公密钥、私密钥,其中公密钥可以公开,而私密钥需要保密。
仅根据密码算法和加密密钥来确定解密密钥在计算上是不可行的。
两个密钥中的任何一个都可以用来加密,另一个用来解密。
公钥密码可以用于加密、认证、数字签名等。
ECC椭圆曲线密码学(ECC, Elliptic curve cryptography)是基于椭圆曲线数学的一种公钥密码的方法,ECC他是添加了模拟的模乘运算,叠加的是模拟的模幂运算。
需要困难的问题去当量于离散的log。
Q=KP,Q、P属于主要曲线,他是容易的计算Q的值给出K、P,但是是困难的去找到K给出Q、P,解决椭圆算法问题。
Eq(a,b)碰撞(Collision)如果两个输入串的hash函数的值一样,则称这两个串是一个碰撞(Collision)。
既然是把任意长度的字符串变成固定长度的字符串,所以,必有一个输出串对应无穷多个输入串,碰撞是必然存在的。
置换:指古典密码的编码方式的一种,把明文中的字母重新排列,字母本身不变,但其位置改变了,从而实现加密明文的过程。
替换:代换是指古典密码的编码方式的一种,即将明文中的字符替换成其他字符,产生相互映射的关系。
离散对数选择一个素数p,设α与β为非0的模p整数,令)(modpxαβ≡,求x的问题成为离散对数问题。
如果n是满足nα)mod1p(≡的最小正整数,假设0nx<≤,我们记)(βαLx=,并称之为与α相关的β的离散对数(素数p可从符号中忽略混淆:使得密钥和明文以及密文之间的依赖关系相当复杂以至于这种依赖性对密码分析者来说是无法利用的。
目前主要采用替代运算以及非线性运算等。
在DES主要采用S盒替代。
扩散:密钥的每一位数字影响密文的许多位数字以防止对密钥进行逐段破译,而且明文的每一位数字也应影响密文的许多位数字以便隐蔽明文数字统计特性。
最简单的扩散是置换。
简答:HMAC设计思路1.在消息中使用散列函数:2.其中K+填充大小是关键3.OPAD,iPad都采用指定的填充常量4.开销仅有3哈希的消息需要单独计算比5.任何MD5,SHA-1,RIPEMD-160,可以使用五种模式Electronic Codebook Book(ECB):消息被分成独立块是加密每个块是一个值,该值被取代的,像一个码本,因此命名独立于其它块的每个块的编码Ci = DES k1 (Pi)用途:安全传输的单值优点和局限性:重复的消息可能会出现在密文如果对其的消息块特别是数据,例如图形或与信息变化非常小,这成为一个码书的分析问题弱点由于是独立的加密消息块主要用途是发送一些数据块Cipher Block Chaining (CBC)消息被破碎成块但这些在加密操作中被链接在一起每个以前的密文块是拴在当前的明文块,因此名称使用的初始向量(IV)的启动过程CI = DES k1(Pi XOR Ci-1)C-1= IV用途:批量数据加密,身份认证优点和局限性:每个密文块都依赖于所有的消息,在此之前块因此,在消息中的变化会影响所有变更后的密文块,以及原来的块后需要已知的发送器和接收器的初始值(IV)但是,如果四是明文发送的,攻击者可以更改位的第一个块,并改变IV,以弥补因此,要么IV必须是一个固定的值(如EFTPOS)或它必须被发送之前在ECB模式加密的其余消息在结束的消息,处理可能出现的最后一个短块通过与已知的数据值(例如空值填充)或垫的最后一个数据块计数焊盘尺寸,如[B1,B2,B3 0 0 0 0 5]< - 3字节数据,然后5个字节垫+计数Cipher FeedBack (CFB)消息被视为一个比特流添加到输出的块密码结果反馈为下一阶段(名)标准允许任何数量的位(1,8或64或任何)被反馈表示CFB-1 CFB-8,循环流化床-64等是最有效的使用的所有的64个位(CFB-64)Ci = Pi XOR DES K1(Ci-1)C-1 = IV用途:流数据加密,身份认证优点和局限性:相应的数据到达时,位/字节最常见的流模式限制来搪塞,而每n位块加密后Output FeedBack (OFB)消息被视为一个比特流输出的密码被添加到消息输出反馈(因此名字)反馈的消息是独立的可以预先计算Ci = Pi XOR OiOi = DESK1(Oi-1)O-1 = IV用途:流加密噪声信道优点和局限性:错误反馈问题或需要时使用加密邮件之前可表面上类似CFB但反馈是从输出的密码,并且是独立的消息发送方和接收方必须保持同步,和一些恢复方法是必要的,以确保发生这种情况最初指定的m位反馈的标准后来的研究表明,只有被使用OFB-64Counter (CTR)一个“新”模式,虽然早期提出类似OFB加密计数器的值,而不是任何反馈值必须有一个不同的密钥,每个明文块的计数器值(不会被重用。
)Ci = Pi XOR OiOi = DESK1(i)用途:高速网络加密优点和局限性:效率1可以做并行加密2在需要的提前3对突发的高速连接随机访问加密的数据块可证明安全性(其他模式)但必须确保不会重复使用的键/计数器的值,否则可能会破坏(CF OFB)hash用途对应的几个图(a)A→B:EK[M||H(M)] (c) A→B:M||EKRa[H(M)] 提供保密——仅A和B共享K 提供认证和数字签名提供认证——加密保护H(M) 加密保护H(M)(b) A→B:M||EK[H(M)] 仅A能生成EKRa[H(M)] 提供认证——加密保护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分析题:1、RSA算法设计,因式分解问题,密文膨胀。
RSA算法原理实例选择两个素数:p=17 和q=11;计算n = pq =17×11=187;计算ø (n)=(p–1)(q-1)=16×10=160选择e,使其与ø (n)互素且小于ø (n)。
在此选择e = 7确定d:d×e≡1 mod 160 并且 d < ø (n) 。
因为23×7=161= 10×160+1,符合要求。
所以选择d=23 。
公布公钥KU={7,187}保护私钥KR={23,17,11}对于明文信息m = 88 (88<187)加密:C = 887 mod 187= [(884 mod 187) ×(882 mod 187) ×(881 mod 187)]mod187= (88×77 ×132) mod187=11881 mod 187= 88882 mod 187=(88 ×88)mod187=77884 mod 187= [(882 mod 187) ×(882 mod 187)]mod187= (77 ×77) mod187=132解密:M = 1123 mod 187 = 882、DH算法设计,离散对数问题,中间人攻击DH算法设计:1.对于所有用户选择一个大素数或者多项式q(公开)α作为mod q的幂根(公开)2.对于用户A获取密钥:选择一个私钥xA < q计算它的公钥yA = α^xA mod q3.对于用户B获取密钥:选择一个私钥xB < q计算它的公钥yB = α^xB mod q4.每个用户都公开它的公钥5.可以获取的信息有{α, q, yA,yB }6.共享会话密钥对于用户A和B是K AB用中间相遇攻击搜索DES-EDE3的时间复杂度是多少?给出具体方法C=EK3(DK2(EK1(P)))⇒X = DK3(C) = DK2(EK1(P))对所有2112个密钥(k1k2), DK2(EK1(P)),对结果排序对所有256个密钥(k3),解密C,对结果排序3.逐个比较,找出K1,K2使得DK3(C) = DK2(EK1(P))4.时间复杂度为max( 2112 ,256 )= O(2112)Hash 函数和MAC 的主要解决什么信息安全问题,他们之间的区别和联系是什么? 答:用来检验信息完整性;MAC 是一种需要key 的算法,以可变长度的消息和key 作为输入,产生一个认证码,拥有key 的接收方产生一个验证码来验证消息的完整性。
Hash 函数将可变长度的消息映射为固定长度的Hash 值,对于MAC 、Hash 函数必须以某种方式和key 捆绑起来。
计算题:Caesar(恺撒)密码C = E(p) = (p + k) mod (26)p = D(C) = (C – k) mod (26)如k =3,则规定的替换如下:于是明文hello 变成密文为:khoor密钥只有25种,非常容易被破解。
Playfair 密码在单表替换中长密钥并没有提供足够的理想的安全性,增强安全性的一个途径是对多个字母组合进行加密。
Playfair 将明文中的双字母组合作为一个单元对待,并将这些单元转换为密文的双字母组合。
- 构造密钥矩阵首先填入密钥,矩阵剩余部分填入其他的字母。
例如,使用密钥MONARCHY ,构造出来的密钥矩阵如下:⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡Z X W V U T S Q P LK J I G F E D B Y H C R A N O M /接着,使用密钥矩阵进行加密:加密规则:按成对字母加密相同对中的字母加分隔符(如x)Balloon -> ba lx lo on同行取右边:on -> na同列取下边:ba -> ib其他取交叉:lx -> qt; lo -> faBalloon -> ba lx lo on -> ibqtfanaVigenere 密码另一种增强安全性的方法是使用多表替换,破坏语言的统计特性,使用相关的单表代换规则,用密钥选择决定使用那个代换表。