收藏 分销(赏)

信息安全原理与技术ch03(2)-对称加密技术.ppt

上传人:w****g 文档编号:1978689 上传时间:2024-05-13 格式:PPT 页数:63 大小:299KB
下载 相关 举报
信息安全原理与技术ch03(2)-对称加密技术.ppt_第1页
第1页 / 共63页
信息安全原理与技术ch03(2)-对称加密技术.ppt_第2页
第2页 / 共63页
信息安全原理与技术ch03(2)-对称加密技术.ppt_第3页
第3页 / 共63页
信息安全原理与技术ch03(2)-对称加密技术.ppt_第4页
第4页 / 共63页
信息安全原理与技术ch03(2)-对称加密技术.ppt_第5页
第5页 / 共63页
点击查看更多>>
资源描述

1、信息安全原理与技术信息安全原理与技术郭亚军 宋建华 李莉清华大学出版社 2024/5/13 周一1.第3章 对称加密技术(2)主要知识点主要知识点:-对称密码模型 -密码攻击 -古典加密技术 -数据加密标准 -高级加密标准 -RC6 -流密码流密码 -分组密码工作模式分组密码工作模式 -随机数的产生随机数的产生 -对称密码的密钥分配对称密码的密钥分配 2024/5/13 周一2.RC6 RC6是RSA公司提交给NIST的一个候选高级加密标准算法RC6在RC5基础上将分组长度扩展成128位,用四个32位区块代替RC5的两个32位区块RC6是参数可变的分组密码算法,三个可变的参数是:分组大小、密钥

2、大小和加密轮数RC6常常写为RC6-w/r/b,其中w是字的大小,以位为单位,r为加密轮数,允许值是0,255,b为密钥长度,单位是字节,0b255例如RC6-32/16/10 表示字长为32位,迭代的轮数是16,密钥长度为10字节由于高级加密标准的要求是w=32,r=20,因此满足AES的RC6算法是RC6-32/20/16,也就是四个32位字(128位),迭代的轮数为20,密钥长度16 个字节2024/5/13 周一3.RC6定义了6种运算基本操作,以2为底的对数表示为lg w。:a+b:模2w整数加 a-b:模2w整数减 ab:w位的字按位异或 ab:模2w整数乘 a b:循环右移w位的

3、字a,2024/5/13 周一4.RC6的加密和解密 RC6用这4个w位寄存器A、B、C、D来存放输入的明文和输出的密文明文和密文第一个字节第一个字节放在A的最低字节(即第一个字节,明文和密文的最后一个字最后一个字节节放在D的最高字节(即最后一个字节)RC6的加密过程如图3.31所示,其中f(x)=x(2x+1)加密算法和解密算法分别如图3.32,图3.33所示 2024/5/13 周一5.2024/5/13 周一6.2024/5/13 周一7.2024/5/13 周一8.密钥扩展 密钥扩展算法是从密钥K中导出2r+4个字长的密钥,储存在数组S0,2r+3中 在这其中用到了两个常量Pw和Qw,

4、Pw和Qw大小是一个字长,定义如下:Pw=Odd(e-2)2w)Qw=Odd(-2)2w)其中,e=2.7182818284(自然对数),=1.61803398874(黄金分割),Odd(x)是离x最近的奇数2024/5/13 周一9.密钥扩展时,首先将密钥K0,b-1放入c个w位字的另一个数组L0,c-1中,其中c为b/u的整数部分,u=w/8,即L数组上的元素大小为uw位将u个连续字节的密钥顺序放入L中,先放入L中的低字节,再放入其高字节如果L未填满,用0填充。当b=0,c=0时,c=1,L0=0。其次利用Pw和Qw将数组S初始化为一个固定的伪随机的数组,最后将用户密钥扩展到数组S中 20

5、24/5/13 周一10.RC6-w/r/b 密钥扩展输入:用户密钥字节预放入数组L0,c-1 轮数r输出:w位的轮密钥S0,2r+3过程:S0=Pw for i=1 to 2r+3 do Si=Si+1+Qw A=B=i=j=0 v=3 maxc,2r+4 for s=1 to v do A=Si=(Si+A+B)3 B=Lj=(Lj+A+B)(A+B)i=(i+1)mod(2r+4)j=(j+1)mod c2024/5/13 周一11.RC6的安全性和灵活性 RC6是对RC5的发展,加入了二次函数f(x)=x(2x+1),这个函数提高了函数密码扩散速度用二次函数变换的寄存器B和D的值来修改

6、寄存器A和C的值,增加了密码的非线性.因此RC6有很好的抗差分攻击和线性攻击的能力另外RC6的加密和解密的时间都与数据无关,可以有效地避免计时攻击。RC6也没有存在类似DES中的弱密钥RC6算法在加密过程中不需要查找表,加之算法中的乘法运算也可以用平方代替,所以该算法对内存的要求很低RC6特别适合在单片机上实现。2024/5/13 周一12.流密码 一次一密密码是绝对安全的密码,如果能以某种方式仿效一次一密密码,则将可以得到安全性很高的密码人们试图以流密码方式仿效一次一密密码流密码也称为序列密码,它是对明文以一位或者一个字节为单位进行操作为了使加密算法更安全,一般选取尽可能长尽可能长的密钥但是

7、长密钥的存储和分配都很困难流密码采用一个短的种子密钥短的种子密钥来控制密钥流发生器产生出长的密钥序列长的密钥序列,供加解密使用 2024/5/13 周一13.流密码的加密过程 种子密钥k输入到密钥流发生器,产生一系列密码流,通过与同一时刻的一个字节或者一位明文流进行异或操作产生密文流图图3.35 流密码加密过程流密码加密过程密钥流发生器密钥流发生器种子密钥种子密钥k密钥流密钥流ki明文流明文流mi密文流密文流ci2024/5/13 周一14.在流密码中,如果密钥流的产生完全独立于明文流或密文流,则称该流密码为同步同步流密码流密码(Synchronous Stream Cipher),如图3.3

8、6所示如果密钥流的产生与明文或者密文相关,则称这类流密码为自同步流密码自同步流密码(Self-Synchronous Stream Cipher),如图3.37所示 2024/5/13 周一15.2024/5/13 周一16.2024/5/13 周一17.同步流密码 只要通信双方的密钥流产生器具有相同的种子密相同的种子密钥和相同的初始状态钥和相同的初始状态,就能产生相同的密钥流在保密通信过程中,通信的双方必须保持精确的同精确的同步步,收方才能正确解密如果通信中丢失或增加了一个密文字符,则收方将一直错误,直到重新同步为止但是同步流密码对失步的敏感性,使我们能够容易检测插入、删除、重播等主动攻击由

9、于同步流密码各操作位之间相互独立,因此应用这种方式进行加解密时无错误传播,当操作过程中产生一位错误时只影响一位,不影响后续位,这是同步流密码的一个优点 2024/5/13 周一18.自同步流密码 每一个密钥位是由前面n个密文位参与运算推导出来的,其中n为定值如果在传输过程中丢失或更改了一个位,则这一错误就要向前传播n个位不过,在收到n个正确的密文位以后,密码自身会实现重新同步在自同步流密码系统中,密文流参与了密钥流的生成,这使得对密钥流的分析非常复杂,从而导致对自同步流密码进行系统的理论分析非常困难 2024/5/13 周一19.密钥流产生器 流密码的安全强度完全取决于它所产生的密钥流的特性如

10、果密钥流是无限长且为无周期的随机序列,那么流密码属于“一次一密”的密码体制满足这样条件的随机序列在现实中很难生成实际应用当中的密钥流都是由有限存储和有限复杂逻辑的电路产生的字符序列由于密钥流生成器只具有有限状态,那么它产生的序列具有周期性,不是真正的随机序列 2024/5/13 周一20.现实设计中只能追求密钥流的周期尽可能的长,随机性尽可能的好,近似于真正的随机序列 一个好的密钥流需要考虑下面几个要素:(1)加密序列的周期要长加密序列的周期要长。密钥流生成器产生的比特流最终会出现重复。重复的周期越长,密码分析的难度越大。(2)密钥流应该尽可能地接近一个真正的随机数流密钥流应该尽可能地接近一个

11、真正的随机数流的特征的特征。如,1和0的个数应近似相等。如果密钥流为字节流,则所有的256种可能的字节的值出现频率应近似相等。(3)为了防止穷举攻击,种子密钥值也应该有足够的种子密钥值也应该有足够的长度长度,至少要保证它的长度不小于128位。2024/5/13 周一21.生成一个具有良好特性的密钥流序列的常见方法有:线性反馈移位寄存器线性反馈移位寄存器(Linear Feedback Shift Register,LFSR)、非)、非线性移位寄存器(线性移位寄存器(NLFSR)、有限自动机、)、有限自动机、线性同余以及混沌密码序列线性同余以及混沌密码序列等方法这些方法都是通过一个种子(有限长)

12、密码产生具有足够长周期的、随机性良好的序列。只要生成方法和种子都相同,就会产生完全相同的密钥流。2024/5/13 周一22.目前密钥流生成器大都是基于移位寄存器移位寄存器移位寄存器结构简单,易于实现且运行速度快密钥流产生器一般由线性移位寄存器线性移位寄存器和一个非线非线性组合函数性组合函数两部分构成。其中线性移位寄存器部分称为驱动部分驱动部分,另一部分称为非线性组合部分其工作原理是将驱动部分,即线性移位寄存器在j时刻的状态变量x作为一组值输入非线性组合部分的f,将f(x)作为当前时刻的密钥kj驱动部分驱动部分负责提供非线性组合部分使用的周期大、统计性能好的序列,而非线性组合非线性组合部分以各

13、时刻移位寄存器的状态组合出密钥序列 2024/5/13 周一23.移位寄存器(LFSR)非线性组合函数f密钥流ki图3.38 密钥流产生器2024/5/13 周一24.图图3.39是一个域GF(2)上的反馈移位寄存器图中标有a1,a2,an-1,an 的小方框表示二值(0,1)存储单元 a1a2an-1anf(a1,a2,an)输出序列图3.39 反馈移位寄存器2024/5/13 周一25.RC4算法 RC4是Ron Rivest在1987年为RSA数据安全公司设计的一种同步流密码同步流密码 RC4不是基于移位寄存器的流密码,而是一种基于非线性数据表变换的流密码它以一个足够大的数据表足够大的数

14、据表为基础,对表进行非线性变换,产生非线性密钥流非线性密钥流序列RC4 是一个可变密钥长度,面向字节操作的流密码该字节的大小n可以根据用户需要来定义,一般应用中n取8位 2024/5/13 周一26.流密钥的生成需要两个处理过程:一个是密钥调密钥调度算法度算法(KSA);二是伪随机产生算法伪随机产生算法(PRGA)密钥调度算法密钥调度算法用来设置数据表S的初始排列伪随机产生算法伪随机产生算法用来选取随机元素并修改S的原始排列顺序 密钥流产生过程是用1到256个字节的可变长度的密钥初始化一个256个字节的数据表S加密和解密用的每一个密钥K(i)是由S中的元素按照一定的方式选出一个元素而生成每生成

15、一个K(i)值,S中的元素就被重新置换一次 2024/5/13 周一27.KSA初始化S 初始化时,先对S进行填充,即令S(0)=0,S(1)=1,S(2)=2,,S(255)=255用种子密钥填充一个256个字节的密钥表K,K(0),K(1),K(2),K(255)如果种子密钥的长度小于K的长度,则依次重复填充,直到将K填满然后通过S(i)和K(i)置换S中的元素2024/5/13 周一28.密钥流生成 数据表S一旦完成初始化,种子密钥将不再使用当KSA完成S的初始化后,PRGA就将接手工作它为密钥流选取一个个字节,即从S中选取随机元素,并修改S以便下一次选取密钥流的生成是从S(0)到S(2

16、55),对每个S(i),根据当前的S值,将S(i)与S中的另一个字节置换当S(255)完成置换后,操作继续重复从S(0)开始 2024/5/13 周一29.分组密码工作模式 分组密码算法是提供数据安全的一个基本构件分组密码是针对固定大小的分组进行加密的,例如,DES是对64比特的明文分组进行加密,AES是对128位分组操作需要保密传输的消息不一定刚好是一个分组大小为了在实际中应用分组密码,定义了五种五种工作模式工作模式。任何一种对称分组密码算法都可以以这些方式进行应用 2024/5/13 周一30.电子密码本模式 电子密码本模式(Electronic Code Book,ECB)模式是分组密码

17、的基本工作方式它将明文分割成独立大小的分组b,最后一组在必要时需要填充,一次处理b比特的明文,每次使用相同的密钥加密每一个分组依次独立加密,产生独立的密文组优点:并行处理来加速加/解密运算;一分组发生错误不会影响到其他分组.缺点:相同的明文组将产生相同的密文组,这样会泄露明文的数据模式.ECB模式特别适合短数据(如加密密钥)2024/5/13 周一31.2024/5/13 周一32.密码分组链接模式(CBC)将明文分成b位的一串分组,最后一组不足b位要进行填充CBC将这些分组链接在一起进行加密操作加密输入是当前明文分组和前一密文分组的异或,它们形成一条链每次加密使用相同的密钥,每个明文分组的加

18、密函数输入与明文分组之间不再有固定的关系明文分组的数据模式不会在密文中暴露 2024/5/13 周一33.2024/5/13 周一34.密码反馈模式 将加密的明文必须按照一个字节或者一位进行处理,即将分组密码转换为流密码分组密码转换为流密码假设它的输出是s位,s位的大小可以是1位、8位、64位或者其他大小,表示为CFB-1,CFB-8,CFB-64等密码反馈模式具有流密码的优点,也拥有CBC模式的优点但是它也拥有CBC模式的缺点,即也会导致错误传播密码反馈模式也会降低数据加密速度。无论每次输出多少位,都需要事先用密钥K加密一次,再与相等的明文位异或,所以即使一次输出为1位,也要经过相同的过程

19、2024/5/13 周一35.2024/5/13 周一36.以DES为例,用CFB-8工作模式工作模式说明加密过程 -加密:加密函数的输入是一个64位的移位寄存器,产生初始向量IV -对移位寄存器64位的数据用密钥进行加密,然后取加密数据最左边的8位跟输入的明文最初的8位进行异或操作,得到的值作为8位密文单元 -这8比特密文被移至位寄存器的最右端,而其它位则向左移动8位,最左端8比特丢弃 -继续加密,与第2段明文输入异或,如此重复直到所有明文单元都完成加密2024/5/13 周一37.输出反馈模式 类似于密码反馈模式不同的地方输出反馈模式(Output Feed Back,OFB)是将加密算法

20、的输出反馈到移位寄存器,而密码反馈模式是将密文单元反馈到移位寄存器OFB模式的优点是传输过程中的位错误不会被传播但是这种模式数据之间相关性小,这种加密模式是比较不安全的 2024/5/13 周一38.2024/5/13 周一39.计数器模式 计数器(Counter,CTR)采用与明文分组相同的长度加密不同的明文组,计数器对应的值不同计数器首先被初试化为一个值,然后随着消息块的增加,计数器的值依次递增1计数器加1后与明文分组异或得到密文分组解密是使用相同的计数器值序列,用加密后的计数器的值与密文分组异或来恢复明文 2024/5/13 周一40.2024/5/13 周一41.计数器模式计数器模式比

21、较适合对实时性和速度要求比较高实时性和速度要求比较高的场合,具有以下的优点。-处理效率处理效率:由于下一块数据不需要前一块数据的运算结果,所以CTR能够并行加密(解密)。这使其吞吐量可以大大提高。-预处理预处理:基本加密算法的执行不依赖明文或者密文的输入,因此可以事先处理。这样可以极大的提高吞吐量。-随机访问随机访问:由于对某一密文分组的处理与其他密文分组无关,因此可以随机地对任一个密文分组进行解密处理。-简单性简单性:计数器模式只要求实现加密算法,而不要求解密算法,加密阶段和解密阶段都使用相同的加密算法。2024/5/13 周一42.随机数的产生 在很多场合需要用到随机数,如对称密码体制中密

22、钥,非对称密码体制公钥以及用于认证的临时交互号等使用了随机数安全的随机数应该满足随机性随机性和不可预测性不可预测性随机性有两个评价标准评价标准:-分布一致性分布一致性:随机数分布是一致的,即每个数出现频率大约相等;-独立性独立性:数据序列中的任何数不能由其他数导出 一般来说,数据序列是否满足均匀分布可通过检测得出,而是否满足独立性则无法检测 但有很多检测方法能证明数据序列不满足独立性不满足独立性2024/5/13 周一43.如果对数据序列进行足够多次检测足够多次检测后都不能证明不满足独立性,就可比较有把握地相信该数据序列满足独立性不可预测性不可预测性表示根据数据序列的一部分不能推导出之前的部分

23、序列,也不能预测后续序列。产生随机数的方式有两种常见方法两种常见方法:-通过一个确定性的算法,由数字电路或是软件实现,把一个初值扩展成一个长的序列.这种方法产生的序列通常被称为伪随机序列伪随机序列 -选取真实世界的自然随机源,比如热噪声等.这种方法产生的通常被称为真随机序列真随机序列 2024/5/13 周一44.真随机数发生器 对于工程应用来说,只要产生的序列具有随机统计特性,并且不可再现,就可以被称之为真随机序真随机序列列设计一个真随机数发生器包括两步:-首先是获取真随机源获取真随机源 -然后是利用真随机源依照特定的数学方法获得真获得真随机数随机数真随机源广泛存在于现实世界中,如随机噪音、

24、计算机当前的秒级时钟、键盘反应时间、热噪声、操作系统的进程信息、光量子的偏振等 获取方法获取方法可以通过调用系统函数调用系统函数或者硬件电路硬件电路来实现 2024/5/13 周一45.利用真随机源产生真随机数的方法有很多一种最简单的方法是直接利用真随机源的奇偶特性来产生0和1序列为了增加序列的随机性,往往还对产生的0和1序列进行一系列的变换,比如归一化、非线性映射、移位、加密等图3.46是通过提取电路中的热噪声来产生随机数该方法将提取的热噪声进行放大,输入到一个比较器,与固定的参考电压进行比较,从而确定输出0、1序列 2024/5/13 周一46.图3.46 利用热噪声的随机数发生器2024

25、/5/13 周一47.伪随机数发生器 在信息安全中常常用伪随机发生器产生伪随机数这些随机数尽管不是真正的随机,但能够经过许多随机测试 常见的方法有:-线性同余法 -非线性同余法 -混沌随机数发生器 -用密码学的方法产生随机数 2024/5/13 周一48.线性同余法 随机数序列Xn通过下面的式子迭代获得:Xn+1=(aXn+c)mod m,n0 其中 X0称为种子或者初始值,并且0 X00 常数a称为乘子 0am 常数c 称为增量 0 cm当c=0时,该算法称为乘同余法乘同余法;当时,该算法称为混合线性同余法混合线性同余法 2024/5/13 周一49.a,c,m的取值是产生高质量的随机数的关

26、键当a=7,c=0,m=32,X0=1时,生成的数为1,7,17,23,1,7,,该数列的周期为4,而模为32,结果不满意当随机数周期达到模时,则其周期称为满周期,也就是理论上的最大周期用同余算法生成随机数的时候,要尽可能地使周期达到满周期合理地选择a、c、m、X0,可以使重复的周期充分长。2024/5/13 周一50.非线性同余法 非线性同余(Nonlinear Congruential)法的随机数序列Xn通过下面的式子迭代获得:Xn+1=f(Xn)mod m,n0一些非线性同余发生器的区别主要是f函数不同逆同余发生器逆同余发生器 Xn+1=(aXn+b)mod m,n0 二次同余发生器二次

27、同余发生器Xn+1=(aXn2+bXn+c)mod m,n0BBS发生器发生器Xn+1=Xn2 mod m,n0幂同余发生器幂同余发生器Xn+1=Xnd mod m,n0 指数同余发生器指数同余发生器Xn+1=gXn mod m,n0 2024/5/13 周一51.混沌随机数发生器 在混沌区的数据具有两个显著的特性:迭代不重复性和初值敏感性如果选定一个迭代方程和适当的系数,方程将进行无限制不循环地迭代下式是混合光学双稳模型的迭代方程:Xn+1=A sin2(Xn-XB)A和XB是方程的系数,当A=4,XB=2.5时方程处于混沌状态。根据该方程生成混沌序列 Xi,可以获得不同0和1序列 2024

28、/5/13 周一52.用密码学的方法产生随机数 单向函数可以用于产生伪随机数方法是首先选取随机种子s,然后再将函数应用于序列s,s+1,s+2,,进而输出序列f(s),f(s+1),f(s+2),该单向函数可以是hash函数,如SHA-1,或者是对称分组密码,如DES。常见的方法有:循环加密循环加密,ANSI X9.17随机随机数生成器数生成器 2024/5/13 周一53.循环加密 循环加密循环加密是一种非常简单的随机数产生方法 如图3.48所示,它用一个种子密钥循环加密计数器,从而产生一个随机序列 2024/5/13 周一54.ANSI X9.17随机数生成器 ANSI X9.17是基于3

29、DES随机数生成标准,如图3.49所示图中的符号含义如下:-EDE:表示用两个密码加密的三重DES,即加密-解密-加密。-DTi:第i轮的初始日期和时间。-Vi:第i轮的初始种子值,Vi+1表示第i轮产生的新种子,并作为i+1轮的种子。-Ri:第i轮的所产生的伪随机数。-K1,K2:DES所使用的密钥 2024/5/13 周一55.2024/5/13 周一56.对称密码的密钥分配 对称密码体制要求双方共享一个共同的密钥为防止攻击者得到密钥,还必须时常更新密钥分配密钥的方法有以下几种:(1)密钥由A选取,并通过物理手段交给B (2)密钥由第三方选取,并由第三方通过物理手段交给A和B (3)如果A

30、、B事先已有一密钥,则其中一方选取新密钥后,用已有的密钥加密新密钥并发送给另一方 (4)如果A和B与可信的第三方C分别有一保密通道,则C为A、B选取密钥后,分别在两个保密信道上发送给A、B。2024/5/13 周一57.前两种方法称为人工发送,该方法不可取对于第3种方法,攻击者一旦获得一个密钥就可获取以后所有的密钥;而且用这种方法对所有用户分配初始密钥时,代价仍然很大第第4种方法比较常用种方法比较常用,其中的第三方通常是一个负责为用户分配密钥的密钥分配中心密钥分配中心(Key Distribution Certer,KDC)每一用户必须和密钥分配中心有一个共享密钥,称为主密钥主密钥通过主密钥分

31、配给一对用户的密钥称为会话密钥会话密钥,用于这一对用户之间的保密通信通信完成后,会话密钥即被销毁 2024/5/13 周一58.密钥分配方案需要完成两个功能:一是将密钥分发给双方;二是双方互相认证图4.45是一个典型的密钥分配过程,由密钥分配中心(KDC)产生会话钥,然后分发给A和B.图中字符的含义如下:-Ka和Kb分别是A和B各自拥有与KDC共享的主密钥;-KS是分配给A和B的一次性会话钥;-N1和N2是 临时交互号(Nonces),可以是时间戳、计数器或随机数,主要用于防止重放攻击;-IDA和IDB分别是A和B的身份标识(例如A和B的网络地址)-f(N2)是对N2的某种变换(例如将N2加1

32、)函数,目的是认证。-|表示连接符,如IDA|IDB|N1表示同时传送了IDA、IDB和N1。2024/5/13 周一59.2024/5/13 周一60.密钥的分层控制 网络中如果用户数目非常多而且分布的地域非常广,一个KDC就无法承担为用户分配密钥的重任解决方法是使用多个多个KDC的分层结构的分层结构例如,在每个小范围(如一个LAN或一个建筑物)内,都建立一个本地KDC如果两个不同范围的用户想获得共享密钥,则可通过各自的本地KDC,而两个本地KDC的沟通又需经过一个全局KDC,这样就建立了两层KDC。类似地,可建立三层或多层KDC。分层结构可减少主密钥的分布,此外,如果一个本地KDC出错或者

33、被攻毁,则危害只限制在一个局部区域,而不会影响全局。2024/5/13 周一61.会话密钥的有效期 会话密钥更换得越频繁,系统的安全性就越高但会话密钥更换得太频繁,会延迟用户之间的交换,同时还造成网络负担,在决定会话密钥的有效期时,应权衡这两个方面。对于面向连接的协议面向连接的协议,在连接未建立前或断开时,会话密钥的有效期可以很长。而每次建立连接时,都应使用新的会话密钥对于无连接协议无连接协议,无法明确地决定更换密钥的频率。比较好的方案是在某一固定周期内或对一定数目的交易使用同一会话密钥。2024/5/13 周一62.无中心的密钥分配 每个用户事先和其他用户之间存在一个主密钥,然后使用这些主密钥产生会话钥如果网络中有n个用户,则需有n(n-1)/2个主密钥。当n很大时,整个网络中的主密钥很多,但每个节点最多只保存个n-1主密钥2024/5/13 周一63.

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服