版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2020/9/13,计算机系统安全原理与技术(第2版),1,第2章 密码学基础,2020/9/13,计算机系统安全原理与技术(第2版),2,本章主要内容,密码学基本概念 对称密码体制 公钥密码体制 散列函数 数字签名 信息隐藏与数字水印,2020/9/13,计算机系统安全原理与技术(第2版),3,2.1 概 述,经典密码:古埃及人用以保密传递的消息; 单表置换密码,凯撒密码, 多表置换密码,Vigenere密码等等 近代密码:DES数据加密标准,70年代Diffie,Hellman 的开创性工作公钥体制的提出 密码应用:电子数据,军事目的,经济目的。 应用形式:数据的保密性、真实性、完整性。
2、主要内容:数据加密,密码分析,数字签名,信息 鉴别,零泄密认证,秘密共享等等。 信息攻击:主动攻击对数据的恶意删除、篡改等 被动攻击从信道上截取、偷窃、拷贝 信息。 无意攻击错误操作、机器故障等。,2020/9/13,计算机系统安全原理与技术(第2版),4,2.2 密码学基本概念,2.2.1 现代密码系统的组成 现代密码系统(通常简称为密码体制)一般由五个部分组成: 明文空间M 密文空间C 密钥空间K 加密算法E 解密算法D 则五元组(M,C,K,E,D)称为一个密码体制。,2020/9/13,计算机系统安全原理与技术(第2版),5,2.2 密码学基本概念,2.2.2 密码体制 对称密钥体制:
3、 非对称密钥体制,2020/9/13,计算机系统安全原理与技术(第2版),6,根据密码算法对明文信息的加密方式,对称密码体制常分为两类: 分组密码(Block cipher,也叫块密码)DES、IDEA 、 BLOWFISH 序列密码(Stream cipher,也叫流密码)。A5 、FISH 、PIKE,2020/9/13,计算机系统安全原理与技术(第2版),7,2.2 密码学基本概念,2.2.3 密码算法设计的两个重要原则 1混乱性 加密算法应该从明文中提取信息并将其转换,以使截取者不能轻易识别出明文。当明文中的字符变化时,截取者不能预知密文会有何变化。我们把这种特性称为混乱性(Confu
4、sion)。 混乱性好的算法,其明文、密钥对和密文之间有着复杂的函数关系。这样,截取者就要花很长时间才能确定明文、密钥和密文之间的关系,从而要花很长的时间才能破译密码。 在传统加密算法中,大家熟知的恺撒密码的混乱性就不好,因为只要推断出几个字母的移位方式,不需要更多的信息就能预测出其他字母的转换方式。相反,一次一密乱码本(具有同报文长度一样长的有效密钥)则提供了很好的混乱性。因为在不同的输出场合,一个明文字母可以转换成任何的密文字母,转换单一明文字母时并没有明显的模式。,2020/9/13,计算机系统安全原理与技术(第2版),8,2.2 密码学基本概念,2.2.3 密码算法设计的两个重要原则
5、2扩散性 密码还应该把明文的信息扩展到整个密文中去,这样,明文的变化就可以影响到密文的很多部分,该原则称为扩散性(Difusion)。 这是一种将明文中单一字母包含的信息散布到整个输出中去的特性。好的扩散性意味着截取者需要获得很多密文,才能去推测算法。,2020/9/13,计算机系统安全原理与技术(第2版),9,2.2 密码学基本概念,2.2.4 密码分析学 穷举攻击:又称作蛮力攻击,是指密码分析者用试遍所有密钥的方法来破译密码对可能的密钥或明文的穷举 统计分析攻击 :指密码分析者通过分析密文和明文的统计规律来破译密码。 数学分析攻击:指密码分析者针对加密算法的数学依据,通过数学求解的方法来破
6、译密码。,2020/9/13,计算机系统安全原理与技术(第2版),10,2.2 密码学基本概念,2.2.4 密码分析学 根据密码分析者掌握明、密文的程度密码分析可分类为: 1、唯密文攻击:仅根据密文进行的密码攻击; 2、已知明文攻击:根据一些相应的明、密文对进行的密码攻击。 3、选择明文攻击:可以选择一些明文,并获取相应的密文,这是密码分析者最理想的情形。例如,在公钥体制中。 4、选择密文攻击:密码分析者能选择不同的被加密的密文,并可得到对应的解密的明文,密码分析者的任务是推出密钥。 5、选择密钥攻击 :这种攻击并不表示密码分析者能够选择密钥,它只表示密码分析者具有不同密钥之间关系的有关知识。
7、 6、软磨硬泡攻击 :密码分析者威胁、勒索,或者折磨某人,直到他给出密钥为止。,2020/9/13,计算机系统安全原理与技术(第2版),11,2.2 密码学基本概念,2.2.5 密码算法的安全性 密码算法的安全性: 理论上,除一文一密外,没有绝对安全的密码体制,通常,称一个密码体制是安全的是指计算上安全的,即:密码分析者为了破译密码,穷尽其时间、存储资源仍不可得,或破译所耗资材已超出因破译而获得的获益。,2020/9/13,计算机系统安全原理与技术(第2版),12,2.3 对称密码体制,经典的密码体制中,加密密钥与解密密钥是相同的,或者可以简单相互推导,也就是说:知道了加密密钥,也就知道了解密
8、密钥;知道了解密密钥,也就知道了加密密钥。所以,加、解密密钥必须同时保密。这种密码体制称为对称(也称单钥)密码体制。最典型的是DES数据加密标准,应该说数据加密标准DES是单钥体制的最成功的例子。,2020/9/13,计算机系统安全原理与技术(第2版),13,1973.5.15: 美国国家标准局(NSA)公开征求密码体制的联邦注册; 1975.3.17:DES首次在联邦记事公开,它由IBM开发,它是LUCIFER的改进; 1977.2.15:DES被采用作为非国家机关使用的数据加密标准,此后,大约每五年对DES进行依次审查,1992年是最后一次审查,美国政府已声明,1998年后对DES不再审查
9、了; 1977.2.15:联邦信息处理标准版46(FIPS PUB46)给出了DES的完整描述。,2020/9/13,计算机系统安全原理与技术(第2版),14,2.3.1 DES分组密码系统,DES密码体制:它是应用56位密钥,加密64比特明文分组的分组秘钥密码体制 DES加密算法:(一)初始置换:x0=L0R0=IP(x);(二)16次迭代:xi-1=Li-1Ri-1, Li=Ri,Ri=Li f(Ri-1,ki) i=1,2,16;(三)逆置换:x16=L16R16,y=IP-1(x16)。 密钥生成器:密钥ki是由56位系统密钥k生成的32位子密钥。 函数f及S盒:f(Ri-1,ki)=
10、P(S(E(Ri-1)ki),2020/9/13,计算机系统安全原理与技术(第2版),15,其中E,P是两个置换, 表示比特的“异或”,S是一组八个变换S1,S2,S3, ,S8 ,称为S盒,每个盒以6位输入,4位输出,S盒构成了DES 安全的核心。 DES算法流程图,2020/9/13,计算机系统安全原理与技术(第2版),16,函数f及S盒的示意图,DES解密:DES的解密过程与加密过程相同,只不过子密钥的使用相反,即,首先使用k16,再使用k15, ,最后使用k1。,2020/9/13,计算机系统安全原理与技术(第2版),17,关于DES的讨论,S盒是唯一非线性组件:有人认为其中可能含有某
11、种“陷门”,国家安全机关可以解密。 DES的密钥量太小:密钥量为256 1977年:Diffie.Hellman提出制造一个每秒测试106的VLSI芯片,则一天就可以搜索完整个密钥空间,当时造价2千万美圆。 CRYPTO93:R.Session,M.Wiener提出并行密钥搜索芯片,每秒测试5x107个密钥,5760片这种芯片,造价10万美圆,平均一天即可找到密钥。,2020/9/13,计算机系统安全原理与技术(第2版),18,Internet的超级计算能力:1997年1月28日,美国RSA数据安全公司在Internet上开展了一项“秘密密钥挑战”的竞赛,悬赏一万美圆,破解一段DES密文。计划
12、公布后,得到了许多网络用户的强力相应。科罗拉州的程序员R.Verser设计了一个可以通过互联网分段运行的密钥搜索程序,组织了一个称为DESCHALL的搜索行动,成千上万的的志愿者加入到计划中。,2020/9/13,计算机系统安全原理与技术(第2版),19,第96天,即竞赛公布后的第140天,1997年6月17日晚上10点39分,美国盐湖城Inetz公司职员M.Sanders成功地找到了密钥,解密出明文:The unknown Message is:“Stronge cryptography makes the word a safer place”(高强度密码技术使世界更安全)。 Intern
13、et仅仅利用闲散资源,毫无代价就破译了DES密码,这是对密码方法的挑战,是Internet超级计算能力的显示.,2020/9/13,计算机系统安全原理与技术(第2版),20,差分分析法:除去穷举搜索密钥外,还有其他形式的攻击方法,最著名的有Biham,Shamir的差分分析法。这是一个选择明文攻击方法。虽然对16轮DES没有攻破,但是,如果迭代的轮数降低,则它可成功地被攻破。例如,8轮DES在一个个人计算机上只需要2分钟即可被攻破。,2020/9/13,计算机系统安全原理与技术(第2版),21,DES扩展形式,多重DES S盒可选择的DES 具有独立子密钥的DES G-DES,2020/9/1
14、3,计算机系统安全原理与技术(第2版),22,2.3.2 高级加密标准AES,在攻击面前,虽然多重DES表现良好。不过,考虑到计算机能力的持续增长,人们需要一种新的、更加强有力的加密算法。1995年,美国国家标准技术研究所NIST开始寻找这种算法。最终,美国政府采纳了由密码学家Rijmen和Daemen发明的Rijindael算法,使其成为了高级加密标准AES(Advanced Encryption Standard)。 Rijindael算法之所以最后当选,是因为它集安全性、效率、可实现性及灵活性于一体。,2020/9/13,计算机系统安全原理与技术(第2版),23,2.3.2 高级加密标准
15、AES,AES算法是具有分组长度和密钥长度均可变的多轮迭代型加密算法。分组长度一般为128比特位,密钥长度可以是128/192/256位。实际上,AES算法的密钥长度可以扩展为64的任意整数倍,尽管AES标准中只有128,192和256被认可。 AES的128位块可以很方便地考虑成一个44矩阵,这个矩阵称为“状态”(state)。例如,假设输入为16字节b0,b1,b15,这些字节在状态中的位置及其用矩阵的表示如表2-8所示。注意,这些状态用输入数据逐列填充。,2020/9/13,计算机系统安全原理与技术(第2版),24,2.3.2 高级加密标准AES,AES算法步骤 AES加密算法具有Nr次
16、替换-置换迭代,其中替换提供混乱性,置换提供了扩散性。Nr依赖于密钥长度,密钥长度为128比特,Nr=10;密钥长度为192比特,Nr=12;密钥长度为256比特,Nr=14。 AES的加密与解密流程如图2-7所示。,2020/9/13,计算机系统安全原理与技术(第2版),25,2020/9/13,计算机系统安全原理与技术(第2版),26,2.4 公钥密码体制,一个安全的对称密钥密码系统,可以达到下列功能: 保护信息机密 认证发送方之身份 确保信息完整性 对称密钥密码系统具有下列缺点: 收发双方如何获得其加密密钥及解密密钥? 密钥的数目太大 无法达到不可否认服务,2.4.1 传统密码体制的缺陷
17、与公钥密码体制的产生,2020/9/13,计算机系统安全原理与技术(第2版),27,现代密码学修正了密钥的对称性,1976年,Diffie,Hellmann提出了公开密钥密码体制(简称公钥体制),它的加密、解密密钥是不同的,也是不能(在有效的时间内)相互推导。所以,它可称为双钥密码体制。它的产生,是密码学革命性的发展,它一方面,为数据的保密性、完整性、真实性提供了有效方便的技术。另一方面,科学地解决了密码技术的瓶颈密钥的分配问题。,2020/9/13,计算机系统安全原理与技术(第2版),28,第一个公钥体制是1977年由Rivest,Shamir,Adleman提出的,称为RSA公钥体制,其安
18、全性是基于整数的因子分解的困难性。RSA公钥体制已得到了广泛的应用。其后,诸如基于背包问题的Merkle-Hellman背包公钥体制,基于有限域上离散对数问题的EIGamal公钥体制,基于椭圆曲线的密码体制等等公钥体制不断出现,使密码学得到了蓬勃的发展,,2020/9/13,计算机系统安全原理与技术(第2版),29,2.4.2 公钥密码体制介绍,公钥密码体制加解密过程主要有以下几步 :,2020/9/13,计算机系统安全原理与技术(第2版),30,安全的公开密钥密码可以达到下列功能: (1)简化密钥分配及管理问题 公钥体制用于数据加密时:用户将自己的公开(加密)密钥登记在一个公开密钥库或实时公
19、开,秘密密钥则被严格保密。信源为了向信宿发送信息,去公开密钥库查找对方的公开密钥,或临时向对方索取公钥,将要发送的信息用这个公钥加密后在公开信道上发送给对方,对方收到信息(密文)后,则用自己的秘密(解密)密钥解密密文,从而,读取信息。可见,这里省去了从秘密信道传递密钥的过程。这是公钥体制的一大优点。,2020/9/13,计算机系统安全原理与技术(第2版),31,安全的公开密钥密码可以达到下列功能: (2)保护信息机密 任何人均可将明文加密成密文,此后只有拥有解密密钥的人才能解密。,2020/9/13,计算机系统安全原理与技术(第2版),32,安全的公开密钥密码可以达到下列功能: (3)实现不可
20、否认功能 公钥体制用于数字签名时: 信源为了他人能够验证自己发送的消息确实来自本人,他将自己的秘密(解密)密钥公布,而将公开(加密)密钥严格保密。与别人通信时,则用自己的加密密钥对消息加密称为签名,将原消息与签名后的消息一起发送. 对方收到消息后,为了确定信源的真实性,用对方的解密密钥解密签名消息称为(签名)验证,如果解密后的消息与原消息一致,则说明信源是真实的,可以接受,否则,拒绝接受。,2020/9/13,计算机系统安全原理与技术(第2版),33,2.4.3 加密与签名的顺序问题,假定用户A想给用户B发送一个消息M,出于机密性以及确保完整性和不可否认性的考虑,A需要在发送前对消息进行签名和
21、加密,那么A是先签名后加密好还是先加密后签名好呢?,2020/9/13,计算机系统安全原理与技术(第2版),34,考虑下面的重放攻击情况,假设Alice决定发送消息: M=“I love you” 先签名再加密,她发送EPKB(ESKA (M)给B。出于恶意,B收到后解密获得签名的消息ESKA (M),并将其加密为EPKC(ESKA (M),将该消息发送给C,于是C以为A爱上了他。,2.4.3 加密与签名的顺序问题,2020/9/13,计算机系统安全原理与技术(第2版),35,再考虑下面的中间人攻击情况,A将一份重要的研究成果发送给B。这次她的消息是先加密再签名,即发送 ESKA(EPKB (
22、M)给B。 然而C截获了A和B之间的所有通信内容并进行中间人攻击。C使用A的公钥来计算出EPKB (M),并且用自己的私钥签名后发给B,从而使得B认为该成果是C的。,2.4.3 加密与签名的顺序问题,2020/9/13,计算机系统安全原理与技术(第2版),36,从上面的两种情况我们能够意识到公钥密码的局限性。对于公钥密码,任何人都可以进行公钥操作,即任何人都可以加密消息,任何人都可以验证签名。 在现实世界里要想使用公钥密码,必须解决一系列的问题。公钥基础设施PKI(Public Key Infrastructure)是安全地使用公钥密码所需要的所有事物的统称。本书在后面的章节中将对此详细介绍。
23、,2.4.3 加密与签名的顺序问题,2020/9/13,计算机系统安全原理与技术(第2版),37,2.4.4 基本数学概念,群 模逆元 费尔马小定理 Euler函数 生成元,2020/9/13,计算机系统安全原理与技术(第2版),38,2.4.5 RSA算法,1976年:Diffie,Hellman在“New Direction in Cryptography”(密码学新方向)一文中首次提出公开密钥密码体制的思想。 1977年:Rivest,Shamir,Adleman第一次实现了公开密钥密码体制,现称为RSA公钥体制。,2020/9/13,计算机系统安全原理与技术(第2版),39,基本算法:
24、 生成两个大素数p和q(保密); 计算这两个素数的乘积n=pq(公开); 计算小于n并且与n互素的整数的个数,即欧拉函数(n)=(p1)(q1) (保密); 选取一个随机整数e满足1e (n),并且e和(n)互素,即gcd (e, (n)=1(公开); 计算d,满足de=1 mod (n)(保密);,2020/9/13,计算机系统安全原理与技术(第2版),40,E(m),Kb1,A,Ka1,B,D(E(m),Kb2,m,m,RSA的加解密过程,公开信道,2020/9/13,计算机系统安全原理与技术(第2版),41,一个利用RSA算法的加密实例,设p=101,q=113,n=pq=11413,
25、(n)=(p-1)(q-1)=100112=11200, a=6597,b=3533,x=9726。加密: y=xb=97263533 = 5761 mod 11413; 解密: x=ya=57616597=9726 mod 11413。,2020/9/13,计算机系统安全原理与技术(第2版),42,算法分析: 该体制的数学依据是Euler定理及大数分解的困难性,体制中使用的是Zn中的计算。 设是两个不同奇素数p,q的乘积,对于这样的正整数,其Euler函数值是容易计算的,它是(n) =(p-1)(q-1)。对于给定的明文xn,选定一个正整数b,称为加密密钥。,2020/9/13,计算机系统安
26、全原理与技术(第2版),43,作Zn中的指数运算,将明文以指数形式xb表示出来,即以指数形式将明文隐藏起来。即使知道一个明、密文对(x,y),y=xb mod n, 要得到密钥b,必须求解离散对数问题: b=logxy,在Zn中这也是一个困难问题。可见这种加密思想是简单、明确的。,2020/9/13,计算机系统安全原理与技术(第2版),44,RSA 安全性分析 加密密钥b是公开的,从而,要求从b不能有效地推导出a,解已知b,求解ab1 mod (n)是计算上不可能的。 (n)是n的Euler函数,如果已知(n),则可以应用展转相除法求得b的逆元a,从而(n)的保密是安全的关键,而(n)的有效计
27、算则依赖于n的素因子分解,从而,RSA的安全性与n的素因子分解等价。 体制的安全性机理是大数分解的困难性。,2020/9/13,计算机系统安全原理与技术(第2版),45,RSA 安全性分析 RSA的安全性依赖于大数分解,但是否等同于大数分解一直未能得到理论上的证明,因为没有证明破解RSA就一定需要作大数分解。假设存在一种无须分解大数的算法,那它肯定可以修改成为大数分解算法。 目前,RSA的一些变种算法已被证明等价于大数分解。 RSA算法是第一个能同时用于加密和数字签名的算法,也易于理解和操作。RSA是被研究得最广泛的公钥算法,从提出到现在已逾20年,经历了各种攻击的考验,逐渐为人们接受,普遍认
28、为它是目前最优秀的公钥方案之一。,2020/9/13,计算机系统安全原理与技术(第2版),46,大数分解是一个NP问题,目前已知的最好的算法需要进行ex次算术运算。假设我们用一台每秒运算(即:一亿)次的计算机来分解一个200位十进制的数 要分解一个200位十进制的数,需要3.8107年,类似地,可算出要分解一个300位的十进制整数,则需要年4.86 1013。可见,增加的位数,将大大地提高体制的安全性。 由以上分析可见,从直接分解大数来破译RSA是计算上不可能的,那么是否存在一种破译方法不依赖于的分解呢?虽然现在还没有发现,但是也没有严格的论证。,2020/9/13,计算机系统安全原理与技术(
29、第2版),47,直接分解一个大素数的强力攻击的一个实例是:1994年4月分解的RSA密钥RSA-129,即分解了一个129位十进制,425比特的大素数。分解时启用了1600台计算机,耗时8个月,处理了4600MIPS年的数据。1MIPS年是1MIPS的机器一年所能处理数据量。Pentium100大约是125MIPS,它分解RSA-129需要37年。100台Pentium100需要4个月。,2020/9/13,计算机系统安全原理与技术(第2版),48,硬件实现时,RSA比DES要慢大约1000倍,软件实现时,RSA比DES要慢大约100倍。可见,用RSA直接加密信息有诸多不便,所以,很多实际系统
30、中,只用RSA来交换DES的密钥,而用DES来加密主体信息。,2020/9/13,计算机系统安全原理与技术(第2版),49,2.5 散列函数,散列函数没有密钥,散列函数就是把可变输入长度串(叫做预映射,Pre-image)转换成固定长度输出串(叫做散列值)的一种函数。 散列函数又可称为压缩函数、杂凑函数、消息摘要、指纹、密码校验和、信息完整性检验(DIC)、操作认证码(Message Authentication Code,MAC)。,2.5.1 散列函数的概念,2020/9/13,计算机系统安全原理与技术(第2版),50,2.5 散列函数,散列函数有4个主要特点: (1)它能处理任意大小的信
31、息,并将其信息摘要生成固定大小的数据块(例如128位,即16字节),对同一个源数据反复执行Hash函数将总是得到同样的结果。 (2)它是不可预见的。产生的数据块的大小与原始信息的大小没有任何联系,同时源数据和产生的数据块的数据看起来没有明显关系,但源信息的一个微小变化都会对数据块产生很大的影响。 (3)它是完全不可逆的,即散列函数是单向的,从预映射的值很容易计算其散列值,没有办法通过生成的散列值恢复源数据。 (4)它是抗碰撞的,即寻找两个输入得到相同的输出值在计算上是不可行的。,2.5.1 散列函数的概念,2020/9/13,计算机系统安全原理与技术(第2版),51,2.5 散列函数,假设单向
32、散列函数H(M)作用于任意长度的消息M,它返回一个固定长度的散列值h,其中h的长度为定数m,该函数必须满足如下特性: 给定M,很容易计算h; 给定h,计算M很难; 给定M,要找到另一消息M并满足H(M)=H(M)很难。,2.5.1 散列函数的概念,2020/9/13,计算机系统安全原理与技术(第2版),52,2.5 散列函数,常用的消息摘要算法有: (1)MD2算法。 (2)MD4和MD5算法。 (3)SHA算法。 (4)RIPEMD算法。,2.5.1 散列函数的概念,2020/9/13,计算机系统安全原理与技术(第2版),53,2.5 散列函数,SHA (Secure Hash Algori
33、thm)由美国国家标准和技术局NIST设计,1993年被作为联邦信息处理标准(FIPS PUB 180)公布,1995年又公布了修订版FIPS PUB 180-1,通常称为SHA-1。 就当前的情况来看,SHA-1由于其安全强度及运算效率方面的优势已经成为使用最为广泛的散列函数。 该算法输入消息的最大长度为264-1位,产生的输出是一个160位的消息摘要。输入按512 位的分组进行处理。,2.5.2 SHA算法,2020/9/13,计算机系统安全原理与技术(第2版),54,2.5 散列函数,利用散列函数设计一个数据文件完整性检测的程序。,2.5.3 散列函数的应用,2020/9/13,计算机系
34、统安全原理与技术(第2版),55,2.6 数字签名,数字签名最早被建议用来对禁止核试验条律的验证。禁止核试验条律的缔约国为了检测对方的核试验,需要把地震测试仪放在对方的地下,而把测试的数据送回,自然这里有一个矛盾:东道主需要检查发送的数据是否仅为所需测试的数据;检测方需要送回的数据是真实的检测数据,东道主没有篡改。,2.6.1 数字签名的概念,2020/9/13,计算机系统安全原理与技术(第2版),56,2.6 数字签名,数字签名(Digital Signatures)技术是实现交易安全的核心技术之一,其实现基础就是加密技术。 一般书信或文件传送根据亲笔签名或印章来证明真实性,在计算机网络中传
35、送的报文是使用数字签名来证明其真实性的。 数字签名可以保证实现以下几点: 发送者事后不能否认对发送报文的签名。 接收者能够核实发送者发送的报文签名。 接收者或其他人不能伪造发送者的报文签名。 接收者不能对发送者的报文进行部分篡改。,2.6.1 数字签名的概念,2020/9/13,计算机系统安全原理与技术(第2版),57,基本要求: 签名不能伪造:签名是签名者对文件内容合法性的认同、证明、和标记,其他人的签名无效; 签名不可抵赖:这是对签名者的约束,签名者的认同、证明、标记是不可否认的; 签名不可改变:文件签名后是不可改变的,这保证了签名的真实性、可靠性; 签名不可重复使用:签名需要时间标记,这
36、样可以保证签名不可重复使用。 签名容易验证:对于签名的文件,一旦发生纠纷,任何第三方都可以准确、有效地进行验证。,2020/9/13,计算机系统安全原理与技术(第2版),58,2.6 数字签名,使用对称和非对称密码算法都可以实现数字签名。 目前采用较多的是公钥加密技术使用公钥加密技术的签名和验证过程是: 1)发送方(甲)先用单向散列函数对某个信息(如合同的电子文件)A进行计算,得到128位的结果B,再用私钥SK对B进行加密,得到C,该数据串C就是甲对合同A的签名。 2)他人(乙)的验证过程为:乙用单向散列函数对A进行计算,得到结果B1,对签名C用甲的公钥PK进行解密,得到数据串B2,如果B1=
37、B2,则签名是真的,反之签名则为假的。,2.6.1 数字签名的概念,2020/9/13,计算机系统安全原理与技术(第2版),59,散列函数:散列函数是数字签名的一个重要辅助工具, 应用散列函数可以生成一个文件的,具有固定长度的文件摘要,从而使数字签名可以迅速有效地签名一个任意长度的文件。一般地,对文件的任意小改动,都会改变文件的散列值,从而,秘密的散列函数可以用来检测病毒等对文件的破坏。 对签名的攻击:对数字签名有各种各样的欺骗存在,重复使用是一个典型欺骗,如电子支票,重复的使用具有可怕后果,阻止这种欺骗的有效方法是签名中包含时间日期标志。,2020/9/13,计算机系统安全原理与技术(第2版
38、),60,2.6 数字签名,1、Elgamal算法 :ElGamal签名方案基于离散对数问题 离散对数问题:设p是一个素数,bZ*p,寻找整数 d,0dp,满足:adb mod p。这样的问题称为离散对数问题。 选取p至少150位十进制数,p-1至少有一个“大”素因子,则离散对数问题称为困难问题,困难问题不存在多项式时间算法,2.6.2 常用算法介绍,2020/9/13,计算机系统安全原理与技术(第2版),61,ElGamal签名方案于1985年提出,改进后,被美国国家标准和技术研究所(NIST)采纳为数字签名标准。ElGamal签名方案是一个非确定性的方案,也就是说,验证算法可以接受的合法签
39、名不止一个。,2020/9/13,计算机系统安全原理与技术(第2版),62,ElGamal签名方案的定义: 设p是一个素数,Zp中的离散对数是困难问题, a Z*p是一个生成元,bad mod p,则定义: 签名算法:Sigk(x,t)=(,), at mod p, (x-a)t-1 mod p-1 ,t是一保密的随机数。 验证算法:对给定的消息及签名(x,(,),x, Z*p, Zp-1,验证算法为,2020/9/13,计算机系统安全原理与技术(第2版),63,2.6 数字签名,2、DSA算法:DSA是Schnorr和ElGamal签名算法的变种,被美国NIST作为DSS。 数字签名标准DS
40、S: 设p是一个512比特的素数,Zp中的离散对数是困难 问题,q是一个60比特的素数 ,q|p-1,a Z*p是p模 q的单位根。则定义: 签名算法:Sigk(x,t)=(,), (at mod p) mod q , (x+a)t-1 mod q; 验证算法: Ver(x,(,)=true(albm mod p) mod q , 其中:lx-1 mod q, m-1 mod q。,2.6.2 常用算法介绍,2020/9/13,计算机系统安全原理与技术(第2版),64,2.6 数字签名,DSS与 ElGamal签名方案的差别:ElGamal签名方案中模p至少有512比特,但这样会产生1024比
41、特的签名。这样的膨胀率对于象灵巧卡之类的应用是一个难题。而DSS使用512比特模素数,签名一个160比特的消息,产生320比特的签名,即:模素数不变,但签名消息的比特数减少了,而离散对数是基于Z*p的每个阶为2160的子群,从而,安全性是可以保证的。,2.6.2 常用算法介绍,2020/9/13,计算机系统安全原理与技术(第2版),65,2.7 信息隐藏与数字水印,信息隐藏不同于传统的密码学技术。密码技术主要是研究如何将机密信息进行特殊的编码,以形成不可识别的密码形式(密文)进行传递;而信息隐藏则主要研究如何将某一机密信息秘密隐藏于另一公开的信息中,然后通过公开信息的传输来传递机密信息。,20
42、20/9/13,计算机系统安全原理与技术(第2版),66,2.7 信息隐藏与数字水印,2.7.1 信息隐藏,信息隐藏模型,2020/9/13,计算机系统安全原理与技术(第2版),67,信息隐藏特点 鲁棒性(Robustness) 不可检测性(Undetectability) 透明性(Invisibility) 安全性(Security) 自恢复性(Self-recovery),2.7.1 信息隐藏,2020/9/13,计算机系统安全原理与技术(第2版),68,典型的数字水印系统模型,2.7.2 数字水印,2020/9/13,计算机系统安全原理与技术(第2版),69,数字水印的分类 (1)按水印的可见性划分:可将水印分为可见水印和不可见水印 (2)按水印的所附载体划分:可以把水印划分为图像水印、音频水印、视频水印、文本水印以及用于三维网络模型的网格水印等。 (3)按水印的检测过程划分:可以将水印划分非盲水印(Nonblid Waterma
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年湖南省怀化市新晃侗族自治县初三下学期第一次联物理试题含解析
- 2026年河南省安阳市安阳县达标名校5月初三月考数学试题含解析
- 2026年大学大一(基础医学)组织胚胎学基础测试题及答案
- 2025年前台防疫接待礼仪能力测试
- 护理健康教育课件及配套作业
- (一模)邯郸市2026届高三第一次模拟检测语文试卷(含答案详解)
- 护理教学中的职业素养与职业道德
- 护理中的研究方法与论文写作
- 如何在合作作文中激发学生修改作文的兴趣
- 2026二年级数学下册 用乘法口诀求商
- 2024年中国烟草总公司吉林省公司招聘考试真题试卷及答案
- 舞蹈培训学校师德师风制度
- 2026年广西机场管理集团有限责任公司招聘笔试参考题库附带答案详解
- 铝厂化验室制度规范标准
- 呼吸康复护理中的心理支持
- GB/T 2104-2025钢丝绳包装、标志及质量证明书的一般规定
- 三调保密协议书
- 2025版中华人民共和国传染病防治法培训考试题及答案
- 二极管的课件
- 光刻机科普介绍
- 2025年大学《数据警务技术-警务大数据基础》考试参考题库及答案解析
评论
0/150
提交评论