书签 分享 收藏 举报 版权申诉 / 61
上传文档赚钱

类型第五章-信息安全原理与技术ch05-Hash函数和数字签名课件.ppt

  • 上传人(卖家):ziliao2023
  • 文档编号:6924241
  • 上传时间:2023-08-21
  • 格式:PPT
  • 页数:61
  • 大小:988.50KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《第五章-信息安全原理与技术ch05-Hash函数和数字签名课件.ppt》由用户(ziliao2023)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    第五 信息 安全 原理 技术 ch05 Hash 函数 数字签名 课件
    资源描述:

    1、2023-8-211Ch5-消息认证与数字签名 第5章 消息认证与数字签名 主要知识点主要知识点:-认证 -认证码 -散列函数 -MD5 -SHA-512 -数字签名2023-8-212Ch5-消息认证与数字签名 认证 认证则是防止主动攻击的重要技术,可以防止如下一些攻击:伪装:伪装:攻击者生成一个消息并声称这条消息是来自某合法实体,或者攻击者冒充消息接收方向消息发送方发送的关于收到或未收到消息的欺诈应答。内容修改内容修改:对消息内容的修改,包括插入、删除、转换和修改。顺序修改:顺序修改:对通信双方消息顺序的修改,包括插入、删除和重新排序。计时修改:计时修改:对消息的延迟和重放。在面向连接的应

    2、用中,攻击者可能延迟或重放以前某合法会话中的消息序列,也可能会延迟或重放是消息序列中的某一条消息。2023-8-213Ch5-消息认证与数字签名 认证的目的第一,验证消息的发送者是合法的,不是冒充的,这称为实体认证,包括对信源、信宿等的认证和识别;第二,验证信息本身的完整性,这称为消息认证,验证数据在传送或存储过程中没有被篡改、重放或延迟等。2023-8-214Ch5-消息认证与数字签名 认证的目的可提供认证功能的认证码的函数可分为三类:加密函数加密函数:使用消息发送方和消息接收方共享的密钥对整个消息进行加密,则整个消息的密文作为认证符。消息认证码消息认证码:它是消息和密钥的函数,产生定长度值

    3、,该值作为消息的认证符。散列函数散列函数:它是将任意长的消息映射为定长的hash值的函数,以该hash值作为认证符。2023-8-215Ch5-消息认证与数字签名 基本的认证系统模型2023-8-216Ch5-消息认证与数字签名 消息认证码消息认证码,简称MAC(Message Authentication Code),是一种使用密钥的认证技术,它利用密钥来生成一个固定长度的短数据块,并将该数据块附加在消息之后。在这种方法中假定通信双方A和B共享密钥K。若A向B发送消息M时,则A使用消息M和密钥K,计算MACC(K,M)2023-8-217Ch5-消息认证与数字签名 消息认证码的使用2023-

    4、8-218Ch5-消息认证与数字签名 消息认证码的使用(续)2023-8-219Ch5-消息认证与数字签名 MAC的安全要求MAC中使用了密钥,这点和对称密钥加密一样,如果密钥泄漏了或者被攻击了,则MAC的安全性则无法保证。在基于算法的加密函数中,攻击者可以尝试所有可能的密钥以进行穷举攻击,一般对k位的密钥,穷举攻击需要2(k-1)步。2023-8-2110Ch5-消息认证与数字签名 对MAC的攻击第一轮 给定M1,MAC1CK(M1)对所有2k个密钥判断MACiCKi(M1)匹配数2(k-n)。第二轮 给定M2,MAC2CK(M2)对循环1中找到的2(k-n)个密钥判断MACiCKi(M2)

    5、匹配数2(k-2n)。攻击者可以按此方法不断对密钥进行测试,直到将匹配数缩写到足够小的范围。平均来讲,若k=an,则需a次循环2023-8-2111Ch5-消息认证与数字签名 针对MAC算法的攻击攻击者针对下面的MAC算法,则不需要使用穷举攻击即可获得密钥信息。设消息M(X1|X2|Xm),即由64位分组Xi联结而成。定义(M)X1X2 XmCk(M)=EK(M)攻击者可以用任何期望的Y1至Ym-1替代X1至Xm-1,用Ym替代Xm来进行攻击,其中Ym如下计算的:YmY1Y2Ym-1(M)攻击者可以将Y1至Ym-1与原来的MAC连结成一个新的消息M,接收方收到(M,Ck(M)时,由于(M)=Y

    6、1 Y2 Ym=(M),因此Ck(M)=EK(M),接受者会认为该消息是真实。用这种办法,攻击者可以随意插入任意的长为64(m-1)位的消息。2023-8-2112Ch5-消息认证与数字签名 MAC的性质一个安全的MAC函数应具有下列性质:若攻击者知道M和Ck(M),则他构造满足Ck(M)=Ck(M)的消息M在计算上是不可行的。Ck(M)应是均匀分布的,即对任何随机选择的消息M和M,Ck(M)=Ck(M)的概率是2-n,其中n是MAC的位数。设M是M 的某个已知的变换,即M=f(M),则Ck(M)=Ck(M)的概率为2-n。2023-8-2113Ch5-消息认证与数字签名 基于DES的消息认证

    7、码 2023-8-2114Ch5-消息认证与数字签名 Hash函数Hash函数(也称散列函数或杂凑函数)是将任意长的输入消息作为输入生成一个固定长的输出串的函数,即h=H(M)。这个输出串h称为该消息的散列值(或消息摘要,或杂凑值)。2023-8-2115Ch5-消息认证与数字签名 安全的Hash函数的要求H可以应用于任意长度的数据块,产生固定长度的散列值;对每一个给定的输入m,计算H(m)是很容易的;给定Hash函数的描述,对于给定的散列值h,找到满足H(m)=h的m在计算上是不可行的;给定Hash函数的描述,对于给定的消息m1,找到满足m2m1且H(m2)=H(m1)的m2在计算上是不可行

    8、的;找到任何满足H(m1)=H(m2)且m1 m2的消息对(m1,m2)在计算上是不可行的。2023-8-2116Ch5-消息认证与数字签名 安全的Hash函数的要求H可以应用于任意长度的数据块,产生固定长度的散列值;对每一个给定的输入m,计算H(m)是很容易的;给定Hash函数的描述,对于给定的散列值h,找到满足H(m)=h的m在计算上是不可行的;给定Hash函数的描述,对于给定的消息m1,找到满足m2m1且H(m2)=H(m1)的m2在计算上是不可行的;找到任何满足H(m1)=H(m2)且m1 m2的消息对(m1,m2)在计算上是不可行的。2023-8-2117Ch5-消息认证与数字签名

    9、Hash的一般结构2023-8-2118Ch5-消息认证与数字签名 2023-8-2119Ch5-消息认证与数字签名 Hash函数的安全要求1单向性单向性:对任何给定的散列码h,找到满足H(x)h的x在计算上是不可行的。2抗弱碰撞性抗弱碰撞性:对任何给定的消息x,找到满足yx且H(x)=H(y)的y在计算上是不可行的。3抗强碰撞性:抗强碰撞性:找到任何满足H(x)=H(y)的偶对(x,y)在计算上是不可行的。2023-8-2120Ch5-消息认证与数字签名 生日攻击(Birthday Attack)如果攻击者希望伪造消息M的签名来欺骗接收者,则他需要找到满足H(M)=H(M)的M来替代M。对于

    10、生成64位散列值的散列函数,平均需要尝试263次以找到M。但是建立在生日悖论上的生日攻击法,则会更有效。对于上述问题换种说法:假设一个函数有n个函数值,且已知一个函数值H(x)。任选k个任意数作为函数的输入值,则k必须为多大才能保证至少找到一个输入值y且H(x)=H(y)的概率大于0.5?2023-8-2121Ch5-消息认证与数字签名 生日悖论我们可以如下描述这类问题:k为多大时,在k个人中至少找到两个人的生日相同的概率大于0.5?不考虑二月二十九日并且假定每个生日出现的概率相同。2023-8-2122Ch5-消息认证与数字签名 首先k个人的生日排列的总数目是365k。这样,k个人有不同生日

    11、的排列数为:因此,k个人有不同生日的概率为不重复的排列数除以总数目,得到:则,k个人中,至少找到两个人同日出生的概率是:2023-8-2123Ch5-消息认证与数字签名 Yuval的生日攻击(1)合法的签名方对于其认为合法的消息愿意使用自己的私钥对该消息生成的m位的散列值进行数字签名。(2)攻击者为了伪造一份有(1)中的签名者签名的消息,首先产生一份签名方将会同意签名的消息,再产生出该消息的2m/2种不同的变化,且每一种变化表达相同的意义(如:在文字中加入空格、换行字符)。然后,攻击者再伪造一条具有不同意义的新的消息,并产生出该伪造消息的2m/2种变化。2023-8-2124Ch5-消息认证与

    12、数字签名 Yuval的生日攻击(续)(3)攻击者在上述两个消息集合中找出可以产生相同散列值的一对消息。根据“生日悖论”理论,能找到这样一对消息的概率是非常大的。如果找不到这样的消息,攻击者再产生一条有效的消息和伪造的消息,并增加每组中的明文数目,直至成功为止。(4)攻击者用第一组中找到的明文提供给签名方要求签名,这样,这个签名就可以被用来伪造第二组中找到的明文的数字签名。这样,即使攻击者不知道签名私钥也能伪造签名。2023-8-2125Ch5-消息认证与数字签名 中间相遇攻击法(Meet in the Middle Attack)(1)根据已知数字签名的明文,先产生散列函数值h。(2)再根据意

    13、图伪造签名的明文,将其分成每个64位长的明文分组:Q1,Q2,QN-2。Hash函数的压缩算法为:hi=EQihi-1,1iN-2。(3)任意产生232个不同的X,对每个X计算EXhN-2。同样的,任意产生232个不同的Y,对每个Y计算DYG,D是相对应E的解密函数。2023-8-2126Ch5-消息认证与数字签名 中间相遇攻击法(Meet in the Middle Attack)-续(4)根据“生日悖论”,有很大的概率可以找到一堆X及Y满足EXhN-2=DYG。(5)如果找到了这样的X和Y,攻击者重新构造一个明文:Q1,Q2,QN-2,X,Y。这个新的明文的散列值也为h,因此攻击者可以使用

    14、已知的数字签名为这个构造的明文伪造新的明文的签名。2023-8-2127Ch5-消息认证与数字签名 MD5 MD5(Message-Digest Algorithm 5)是由Ronald L.Rivest(RSA算法中的“R”)这90年代初开发出来的,经MD2、MD3和MD4发展而来。它比MD4复杂,但设计思想类似,同样生成一个128位的信息散列值。其中,MD2是为8位机器做过设计优化的,而MD4和MD5却是面向32位的计算机。2019年8月,在美国召开的国际密码学会议(Crypto2019)上,王小云教授给出破解MD5、HAVAL-128、MD4和RIPEMD算法的报告。给出了一个非常高效的

    15、寻找碰撞的方法,可以在数个小时内找到MD5的碰撞。2023-8-2128Ch5-消息认证与数字签名 MD5算法步骤 1)填充消息填充消息:任意长度的消息首先需要进行填充处理,使得填充后的消息总长度与448模512同余(即填充后的消息长度448 mod 512)。填充的方法是在消息后面添加一位“1”,后续都是“0”。2)添加原始消息长度添加原始消息长度:在填充后的消息后面再添加一个64位的二进制整数表示填充前原始消息的长度。这时经过处理后的消息长度正好是512位的倍数。3)初始值(初始值(IV)的初始化)的初始化:MD5中有四个32位缓冲区,用(A,B,C,D)表示,用来存储散列计算的中间结果和

    16、最终结果,缓冲区中的值被称为链接变量。首先将其分别初始化为为:A=0 x01234567,B=0 x89abcdef,C=0 xfedcba98,D=0 x76543210。2023-8-2129Ch5-消息认证与数字签名 MD5算法步骤-续 4)以以512位的分组为单位对消息进行循环位的分组为单位对消息进行循环散列计算散列计算:经过处理的消息,以512位为单位,分成N个分组,用Y0,Y1,YN-1。MD5对每个分组进行散列处理。每一轮的处理会对(A,B,C,D)进行更新。5)输出散列值输出散列值:所有的N个分组消息都处理完后,最后一轮得到的四个缓冲区的值即为整个消息的散列值。2023-8-2

    17、130Ch5-消息认证与数字签名 MD5算法步骤-续2023-8-2131Ch5-消息认证与数字签名 MD5应用举例利用给出的利用给出的MD5程序对程序对“hello world!”进进行处理,计算它的行处理,计算它的HASH值。值。微软的系统软件都有微软的系统软件都有MD5验证,尝试查找验证,尝试查找软件的软件的MD5值。在值。在WINDOWS操作系统中,操作系统中,可以通过开始可以通过开始运行运行sigverif命令,命令,利用数字签名查找验证非利用数字签名查找验证非WINDOWS的系的系统软件。统软件。2023-8-2132Ch5-消息认证与数字签名 SHA-512算法步骤对消息进行填充

    18、对消息进行填充:对原始消息进行填充使其长度与896模1024同余(即填充后的消息长度896 mod 1024)。即使原始消息已经满足上述长度要求,仍然需要进行填充,因此填充位数在1到1024之间。填充部分由一个1和后续的0组成。添加消息长度信息:添加消息长度信息:在填充后的消息后添加一个128位的块,用来说明填充前消息的长度,表示为一个无符号整数(最高有效字节在前)。至此,产生了一个长度为1024整数倍的扩展消息。2023-8-2133Ch5-消息认证与数字签名 SHA-512算法步骤初始化初始化Hash缓冲区缓冲区:Hash函数计算的中间结果和最终结果保存在512位的缓冲区中,分别用64比特

    19、的寄存器(A,B,C,D,E,F,G,H)表示,并将这些寄存器初始化为下列64位的整数(十六进制值):A 0 x6A09E667F3BCC908B 0 x BB67AE8584CAA73B C 0 x 3C6EF372FE94F82BD 0 x A54FF53A5F1D36F1E=0 x 510E527FADE682D1F=0 x 9B05688C2B3E6C1FG=0 x 1F83D9ABFB41BD6BH=0 x 5BE0CD19137E21792023-8-2134Ch5-消息认证与数字签名 SHA-512算法步骤-续以以1024位分组(位分组(16个字)为单位处理消个字)为单位处理消息

    20、息:处理算法的核心是需要进行80轮运算的模块。输出:输出:所有的N个1024位分组都处理完以后,最后输出的即是512位的消息散列值。2023-8-2135Ch5-消息认证与数字签名 SHA-512算法步骤-续2023-8-2136Ch5-消息认证与数字签名 SHA-512每一步的核心处理2023-8-2137Ch5-消息认证与数字签名 HMACHMAC的设计目标包括:可以直接使用现有的Hash函数;不针对于某一个Hash函数,可以根据需要更换Hash函数模块;可保持Hash函数的原有性能,不能过分降低其性能;对密钥的使用和处理应较简单;如果已知嵌入的Hash函数的强度,则可以知道认证机制抵抗密

    21、码分析的强度。2023-8-2138Ch5-消息认证与数字签名 HMAC的结构 2023-8-2139Ch5-消息认证与数字签名 HMAC的实现方案的实现方案2023-8-2140Ch5-消息认证与数字签名 数字签名 数字签名也是一种认证机制,它是公钥密码学发展过程中的一个重要组成部分,是公钥密码算法的典型应用。数字签名的应用过程是,数据源发送方使用自己的私钥对数据校验和或其他与数据内容有关的信息进行处理,完成对数据的合法“签名”,数据接收方则利用发送方的公钥来验证收到的消息上的“数字签名”,以确认签名的合法性。2023-8-2141Ch5-消息认证与数字签名 数字签名 数字签名需要满足以下条

    22、件:签名的结果必须是与被签名的消息相关的二进制位串;签名必须使用发送方某些独有的信息(发送者的私钥),以防伪造和否认;产生数字签名比较容易;识别和验证签名比较容易;给定数字签名和被签名的消息,伪造数字签名在计算上是不可行的。保存数字签名的拷贝,并由第三方进行仲裁是可行的。2023-8-2142Ch5-消息认证与数字签名 数字签名的典型使用(1)消息发送方式与散列函数对消息进行计算,得到消息的散列值。(2)发送方使用自己的私钥对消息散列值进行计算,得到一个较短的数字签名串。(3)这个数字签名将和消息一起发送给接收方。(4)接收方首先从接收到的消息中用同样的散列函数计算出一个消息摘要,然后使用这个

    23、消息摘要、发送者的公钥以及收到的数字签名,进行数字签名合法性的验证。2023-8-2143Ch5-消息认证与数字签名 Schnorr数字签名 系统参数的选择系统参数的选择 p,q:满足q|p-1,q2160,q 2512 g:gZp,满足gq=1 mod p,g 1 H:散列函数 x:用户的私钥,1xq y:用户的公钥,y=gx mod p2023-8-2144Ch5-消息认证与数字签名 Schnorr数字签名 签名签名 设要签名的消息为M,0Mp。签名者随机选择一整数k,1kq,并计算:e=H(r,M)s=k xe mod q(e,s)即为M的签名。签名者将M 连同(r,s)一起存放,或发送

    24、给验证者。2023-8-2145Ch5-消息认证与数字签名 Schnorr数字签名 验证验证 验证者获得M和(e,s),需要验证(e,s)是否是M的签名。计算:r=gsre mod p 检查H(r,M)=e是否正确,若是,则(e,s)为M的合法签名。2023-8-2146Ch5-消息认证与数字签名 DSS DSA的系统参数选择如下:的系统参数选择如下:p:512的素数,其中2L-1p2L,512L1024,且L是64的倍数,即L的位长在512至1024之间并且其增量为64位。q:160位的素数且q|p-1。g:满足g=h(p-1)/q mod p H:为散列函数 x:用户的私钥,0 xq y:

    25、用户的公钥,y=gx mod p p、q、g为系统发布的公共参数,与公钥y公开;私钥x保密。2023-8-2147Ch5-消息认证与数字签名 DSS 签名签名 设要签名的消息为M,0Mp。签名者随机选择一整数k,0kq,并计算:r=(gk mod p)mod q s=k-1(H(M)+xr)mod q(r,s)即为M的签名。签名者将M 连同(r,s)一起存放,或发送给验证者。2023-8-2148Ch5-消息认证与数字签名 DSS 验证验证 验证者获得M和(r,s),需要验证(r,s)是否是M的签名。首先检查r和s是否属于0,q,若不是,则(r,s)不是签名值。否则,计算:w=s-1 mod

    26、q u1=(H(M)w)mod q u2=rw mod q v=(gu1yu2)mod p)mod q 如果v=r,则所获得的(r,s)是M的合法签名。2023-8-2149Ch5-消息认证与数字签名 仲裁数字签名仲裁数字签名 仲裁签名中除了通信双方外,还有一个仲裁方 发送方A发送给B的每条签名的消息都先发送给仲裁者T,T对消息及其签名进行检查以验证消息源及其内容,检查无误后给消息加上日期再发送给B,同时指明该消息已通过仲裁者的检验。仲裁数字签名实际上涉及到多余一步的处理,仲裁者的加入使得对于消息的验证具有了实时性。2023-8-2150Ch5-消息认证与数字签名 仲裁数字签名仲裁数字签名 (

    27、1)AT:M|EKATIDA|H(M)(2)TB:EKTBIDA|M|EKATIDA|H(M)|T(1)AT:IDA|EPRAIDA|EPUB(EPRAM)(2)TB:EPRTIDA|EPUBEPRAM|T2023-8-2151Ch5-消息认证与数字签名 盲签名盲签名 盲签名是Chaum在1982年首次提出的,并利用盲签名技术提出了第一个电子现金方案。盲签名因为具有盲性这一特点,可以有效的保护所签名的消息的具体内容,所以在电子商务等领域有着广泛的应用。盲签名允许消息发送者先将消息盲化,而后让签名者对盲化的消息进行签名,最后消息拥有者对签名除去盲因子,得到签名者关于原消息的签名。2023-8-2

    28、152Ch5-消息认证与数字签名 盲签名的性质盲签名的性质 它除了满足一般的数字签名条件外,还必须满足下面的两条性质:1.签名者不知道其所签名的消息的具体内容。2.签名消息不可追踪,即当签名消息被公布后,签名者无法知道这是他哪次的签署的。2023-8-2153Ch5-消息认证与数字签名 盲签名的步骤盲签名的步骤 A期望获得对消息m的签名,B对消息m的盲签名的实现描述如下:盲化:A对于消息进行处理,使用盲因子合成新的消息M并发生给B;签名:B对消息M签名后,将签名(M,sign(M)返回给给A;去盲:A去掉盲因子,从对M的签名中得到B对m的签名。2023-8-2154Ch5-消息认证与数字签名

    29、好的盲签名的性质好的盲签名的性质 不可伪造性不可伪造性:除了签名者本人外,任何人都不能以他的名义生成有效的盲签名。不可抵赖性不可抵赖性:签名者一旦签署了某个消息,他无法否认自己对消息的签名。盲性盲性:签名者虽然对某个消息进行了签名,但他不可能得到消息的具体内容。不可跟踪性不可跟踪性:一旦消息的签名公开后,签名者不能确定自己何时签署的这条消息。2023-8-2155Ch5-消息认证与数字签名 代理签名代理签名 代理签名的目的是当某签名人因某种原因不能行使签名权力时,将签名权委派给其他人替自己行使签名权。由原始签名者(部分)授权代理签名者,使代理签名者产生代替原始签名的签名就是代理数字签名。这个概

    30、念是由Mambo,Usada和Okamoto于2019年首先提出的,并且给出了一个代理签名方案。2023-8-2156Ch5-消息认证与数字签名 MOU盲签名盲签名 系统参数 p是一个大素数,q为p-1的大素因子,gZp*,且gq 1 mod p。原始签名者A、代理签名者B的私钥为PRA、PRB1,2,.,q-1;公钥分别为:PUA=gPRA mod p、PUB=gPRB mod p。代理2023-8-2157Ch5-消息认证与数字签名 MOU盲签名盲签名 签名步骤如下签名步骤如下:1)产生代理密钥:A随机选择一个数k Zp*,计算r=gk mod p,然后计算代理签名密钥s=(PRA+kr)

    31、modd q;2)代理密钥的传递:A将(s,r)以安全的方式发送给B;3)代理密钥的验证:B检查等式 gs=PUA rr mod p 是否成立,如果成立则接受,否则拒绝;2023-8-2158Ch5-消息认证与数字签名 MOU盲签名盲签名 4)代理签名者对消息签名:对于消息m,B将s作为新的私钥(替代PRA)使用签名算法产生对m的签名sP=sig(s,m),然后将(sp,r)作为他代表A对于消息m的数字签名(即代理签名);5)代理签名的验证:接收方收到消息m和代理签名(sp,r),验证ver(PUA,(sp,r),m)=true,是否成立,如果成立则认为代理签名成立,否则拒绝。2023-8-2159Ch5-消息认证与数字签名 盲签名的条件盲签名的条件 假设A委托B进行代理签名,则签名必须满足三个最基本的条件:(1)签名接收方能够像验证A的签名那样验证B的签名;(2)A的签名和B的签名应当完全不同,并且容易区分;(3)A和B对签名事实不可否认。

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:第五章-信息安全原理与技术ch05-Hash函数和数字签名课件.ppt
    链接地址:https://www.163wenku.com/p-6924241.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库