APP下载

TLS密码套件的流量数据随机性分析

2022-03-08郭帅程光

北京航空航天大学学报 2022年2期
关键词:随机性密文套件

郭帅,程光,3,*

(1.东南大学 网络空间安全学院,南京 211189; 2.计算机网络和信息集成教育部重点实验室(东南大学),南京 211189;3.网络通信与安全紫金山实验室,南京 211111)

加密流量的检测与识别是网络测量领域重要而又富有挑战性的研究方向。加密流量在现有互联网总体流量中的占比大幅增加,其中充斥着大量恶意程序流量与网络攻击流量,为网络监管与网络空间治理带来困难。由于密码算法将网络流量的原始信息掩盖,基于明文内容特征的识别方法在面对这些加密流量时难以奏效,加密流量的识别具有了较紧迫的需求与现实意义。加密流量识别在一般意义上指对经过密码算法加密后的数据在网络传输中产生的字节序列进行检测与识别,而被识别的对象则包括加密流量的内容、应用程序、密码算法等。根据加密流量的具体类型与应用场景的不同,又有针对VPN、安全传输层协议(transport layer security,TLS)及自定义或未知加密流量的识别。TLS协议作为现代Web网络的主流加密通信协议,被大规模使用,针对TLS流量的识别研究在加密流量识别领域具有重要地位,本文通过TLS不同加密套件的流量数据随机性分析,对TLS加密流量的密码算法识别进行了研究。TLS密码算法识别本质上属于密码体制识别,指在未知明文、具体密码算法与加密密钥的情况下对密码算法的体制与类型进行识别,是一种被动的唯密文攻击手段。密码体制与算法识别为加密流量的深层次分析提供了另一个角度与方向。

目前,网络流量的密码体制与算法识别主要有数学统计模型与机器学习2类,均以不同密码体制或算法产生的密文在字节分布特征上具有可分的差异性为前提,通过提取密文的字节分布特征输入预先建立的统计学模型或神经网络进行识别。密文字节分布的随机性是衡量密码体制与算法性能的重要指标,同样也是对其进行识别的重要特征。2015年,吴杨等[1]设计了一种基于码元频数检测、块内频数检测及游程检测的算法对AES、Camellia、DES、3DES及SMS4密文的随机性度量值取值个数进行了统计分析。2016年,丁伟和谈程[2]介绍了一种基于密文分析的密码识别方法,该方法使用支持向量机(SVM)对密码体制进行识别。2018年,黄良韬等[3]提出了一种基于随机森林的分层密码体制识别定义系统,相比单层识别方案有约20%的提升。2018年,李洪超[4]提出了一种基于SVM、随机森林和决策树的集成学习方法,通过了15种随机性测度对电子密码本(ECB)和密文分组链接(CBC)二种加密模式的识别。2019年,赵志诚等[5]提出了一种基于随机森林的密码体制识别方法,以美国国家标准与技术研究院(NIST)的随机性测试套件为基础,构建了54种密文特征,以显著高于随机识别的准确率完成对AES、DES、3DES、IDEA、Blowfish及Camellia六种密码体制的两两区分问题。2021年,王旭等[6]结合Relief特征选择算法和异质集成学习,提出了一种可适应多种密码体制识别情景的动态特征识别方案,比较了3类不同密码体制识别情景。

以上工作均以密文字节序列的分布随机性作为基础构建差异特征模型,但大多仅对DES、3DES等老旧密码算法与ECB、CBC等简单加密工作模式进行分类,对于TLS协议中常用的AES、ChaCha20密码算法及GCM加密模式均没有进行研究与分析,因此,上述工作在加密流量的密码算法识别上作用有限。本文将从实际现网加密流量中的密码算法使用比例出发,分析主流密码算法与其他传统密码算法在密文随机性分布上的特征,并尝试使用2种机器学习方法对AES、RC4与ChaCha20在不同工作模式下的密文进行分类识别,以探究加密流量中密码套件的选择与密码算法在纯密文、有无特征情况下的可识别性问题。

1 TLS密码套件分析

TLS密码套件是指在TLS连接握手、加密通信与数据完整性检验等过程中被使用的算法集合,包含密钥交换算法、对称密码算法和消息摘要算法等元素[7]。

1.1 TLS密码套件组成

根据TLS版本的不同,其密码套件组成也不同,一个典型的TLS1.2版本密码套件格式如图1(a)所示,一个典型的TLS1.3版本密码套件组成如图1(b)所示。

图1 TLS密码套件组成Fig.1 Composition of TLS cipher suite

需要说明的是,包含“WITH”字段的均为TLS1.2及以下版本支持的密码套件,TLS1.3版本默认使用ECDHE作为密钥交换算法,因此密码套件不需要表明,TLS1.3版本支持的密码套件编号为4 865~4 869。虽然TLS1.2版本与TLS1.3版本加密套件都使用相同的编号格式,但是二者并不通用。经过实际调研,TLS1.3版本的加密套件只可能是编号为4 865、4 866、4 867的3种情况。

1.2 现网流量中的各加密套件占比

本文中使用的现网流量采集自CERNET华东北网络中心边界路由,采集周期为7 d,抽取每天固定时间段内的流量作为样本,经解析得到TLS流1 415 375条,可提取出加密套件的流共613 922条,占比排名前20的密码套件如表1所示。

表1 现网流量中各TLS密码套件比例Table 1 Proportion of TLS cipher suites in actual network traffic

分析结果显示,大部分TLS流采用的密码套件是TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,占比为59.39%;排名前5的密码套件占总体的88.54%,其中前4名均为AES的GCM模式;在占比前20名的密码算法中,除了1个RC4与2个ChaCha20算法外,均为AES密码算法;这20个加密套件占总体样本的99.73%。除此以外,在这批样本中还观测到了少量的TLS1.3版本专用加密套件,说明样本中包含少量TLS1.3流量(少于0.02%)。

上述结果证明,在真实网络的TLS加密流量中,使用AES作为对称密码算法的情况占绝大部分(97.03%),其余的算法为ChaCha20与RC4。另外,在所有加密套件中均没有发现使用ECB模式的密码算法。

2 密码算法的密文随机性检测

密文随机性指经密码算法加密产生的数据在字节分布上的随机程度,密文随机性检测即指对密文字节分布的随机程度进行度量。本文使用了2种方法对密文的随机性进行检测:①密文图像重构法是一种主观的随机性检测方法,从宏观角度观察密文的字节分布特征;②基于SP800-22测试套件的检测方法则从客观和微观的角度对密文的随机性进行刻画。

2.1 基于密文图像重构法的随机性检测

本节将使用密文图像重构后的可辨别性作为标准对表2中所示的密码算法与工作模式进行密文随机性的检测。基于密文图像重构的随机性检测机制是直观且主观的。由于对称密码算法在加密后不会改变原始数据的长度,将图像数据加密后再按照原始尺寸与分辨率重新排列密文比特序列,可将密文重构成与原始数据相同大小的图像。

表2 参与实验的密码算法与工作模式Table 2 Cipher algor ithms and wor king modes involved in experiment

通过观察密文图像与原始图像,可以直观地感受到不同密码算法与工作模式对数据的影响,也可以观察到不同密码算法在不同的工作模式下,其密文随机性在宏观上的表现。

2.1.1 实验方法

本节实验采用如图2所示的卡通猴图像作为样本,该图像为二值图(只包含黑色和白色2种颜色),本质上是由0(白色)和1(黑色)组成的比特序列,图像大小为4 096×4 096,共16 777 216 bit(2 MByte)。图像的比特序列将作为密码算法的输入。

图2 用于实验的图像Fig.2 Images for experiments

由于表2中各密码算法及工作模式的分块大小均为2的整倍数,输入样本的数据量可被完整分块无需填充,加密后的数据量和尺寸不变。将密文的比特序列重新按照4 096×4 096的分辨率进行排列,可将密文组成一幅与原始图像大小相同的图像。通过肉眼观察、对比密文图像与原始图像在内容特征上的相似性,可以得到密文在字节分布上的宏观特征。

2.1.2 实验结果与分析

实验结果如图3所示。

图3 密文图像实验结果Fig.3 Experimental results of ciphertext image

通过实验结果可以看到,对于所有可选分组模式的密码算法,在ECB模式下均可观察到原始图像的大致轮廓,而其他模式或密码算法的结果在宏观上均为分布均匀的黑白像素,没有肉眼可以观察到的显著特征。通过分析,本文认为这一现象是由ECB本身的工作原理造成的,在ECB模式下,明文块加密后按顺序直接拼接。因此,当图像分辨率足够高时(明文长度足够长),明文分块过小(128 bit或256 bit)导致仅块内加密并不会影响整体的结构,而其他工作模式或密码算法对并不是分块加密后的明文进行线性地简单排列,破坏了整体结构,使密文无法显现出原始数据具有的轮廓特征。

为了验证密文图像不存在肉眼难以辨认的微小规律性特征,本节将原始图像、AES_ECB、AES_CBC、AES_GCM与ChaCha20密文图像的二维离散傅里叶频率图[8]作为补充实验,结果如图4所示。

图4 密文图像的傅里叶频率图Fig.4 Fourier frequency diagram of ciphertext image

通过观察实验结果可发现,原始图像和ECB模式下的图像在经过傅里叶变换后,仍旧保留了大量可分辨的高频和低频特征,能量分布并不均匀,证明其密文图像具有较显著的规则结构;其他加密模式的傅里叶变换功率图已无明显的特征,高低频分布均匀,能量分布均匀,证明密文图像无显著的规则结构。

根据上述结果,本文认为参与实验的密码算法在ECB工作模式下,其密文的随机性分布较差,具有显著的、肉眼可观测的特征。由于ECB工作模式加密时的线性特点,当原始数据的数据量足够大时,使用ECB工作模式进行加密,密文数据将会一定程度保留原始数据的结构特征,为密文攻击留下隐患。

2.2 基于SP800-22测试套件的随机性检测

工业界具有较广泛影响的随机性测试与度量方法是NIST于2010年修订的SP800-22 Rev1a标准[9],该标准包含15个测度指标用于对密码算法和伪随机数生成算法产生数据的随机性进行衡量。SP800-22 Revla标准包含的15个指标与测量方法如下:

1)monobit test。即整个二进制序列中0 bit和1 bit的比例,完全随机序列中二者应具有相同或相近的频次。

2)frequency within block test。本质上还是monobit test,只不过该测度将待测数据分块,再统计并在每块内执行monobit test。

3)runs test。n个相同的二进制位被视为1个长度为n的游程。游程检测通过统计一段密文中所包含的不同长度游程的数量,判断其是否与理想随机数据的游程数量一致。

4)longest run ones in a block test。分块内最长连续1 bit序列的长度。

5)binary matrix rank test。将数据的比特序列组成矩阵后,计算矩阵的秩。

6)dft test。将数据通过傅里叶变换转换到频域,检测其频率谱中能量尖峰的分布情况,目的是检测待检验信号的周期性。

7)non overlapping template matching test。用来测试数据中是否出现了过多的非周期模式序列。对于n bit长度的模式序列,使用1个n bit长度的滑动窗口进行匹配,如果在当前位置匹配失败,窗口向后滑动1 bit,如果当前位置匹配一致,窗口向后滑动n bit,继续进行匹配。

8)overlapping template matching test。该指标与non overlapping template matching test相似,用来测试数据中是否出现了过多的非周期模式序列,不同之处在于该指标在匹配成功后只滑动1 bit。

9)linear complexity test。计算输入数据的线性复杂度,评估其与完全随机序列的差距。

10)serial test。该指标检测所有连续m bit的序列在输入数据中出现的频次。

11)approximate entropy test。计算输入数据的近似熵,评估其与完全随机序列的差距。

12)cumulative sums test。检测输入数据中的部分比特和是否太大或太小。

13)random excursion test。检测输入数据中某一状态出现的次数是否远超完全随机序列。

14)random excursion variant test。检测输入数据中某一状态在1次随机游程中出现的次数是否远超完全随机序列。

15)maulers universal test。检测输入数据是否可以被压缩算法显著压缩。

SP800-22 Revla标准采用显著性检验模型对输入数据的随机性进行度量,即检验输入数据与假设的完美随机序列之间的统计学差距。由于假设检验不属于本文主要内容,在此不再赘述。当某一指标的指数大于0.01时,有99%的置信度认为输入数据在该指标上符合完全随机性,指数越接近1,说明输入数据在该指标上越接近完全随机序列。

基于SP800-22 Revla测试套件的随机性检测将图2的原始数据经过AES_GCM、AES_ECB、RC4和ChaCha20密码算法加密后,输入SP800-22 Revla随机性测试套件,对密文的15个随机性指标进行检测,其结果如表3所示。通过实验结果可知,AES_GCM、RC4及ChaCha20这3种主流TLS密码算法在随机性上表现优秀,通过了SP800-22 Revla测试套件的全部指标,而AES_ECB模式仅通过了3项,其余指标均未通过,与原始数据几乎相同。因此,ECB模式无法完全掩盖原始数据具有的非随机特征,与其他密码算法相比在密文的随机性上表现较差,具有可区分性,容易遭受密码分析攻击。

表3 图2在SP800-22测试套件上的随机性测度检测结果Table 3 SP800-22 randomness measurement test results of Fig.2

3 密码算法类型识别的可行性分析

应用于密码算法识别与加密流量分类的主要机器学习方法有2类:一类是以SVM[10]、决策树[11]、随机森林[12]等为代表的传统机器学习方法;另一类是以多层感知机(MLP)[13]、卷积神经网络(CNN)[14]、循环神经网络(RNN)[15]等模型为代表的深度学习方法。使用传统的机器学习方法需要通过特征工程提取原始数据的相关特征作为训练数据,而使用深度学习方法可以直接输入原始数据,依托深度学习模型的自主特征挖掘能力进行训练。本文将分别使用CNN和随机森林这2种在相关问题中被证明有效的模型,进行基于特征和原始数据的无特征密码算法类型与工作模式的识别可行性分析。

3.1 识别方案

3.1.1 基于CNN的无特征识别

CNN是包含卷积计算且具有深度结构的前馈神经网络,在计算机视觉、图像分析和处理等领域发挥了巨大作用,其接收1个多通道矩阵作为输入,经过卷积层、池化层、全连接层等网络结构,最后输出1个向量作为分类结果。LeNet5[14]是最经典的CNN网络模型,最早被应用于手写数字的识别,是一个十分类问题,其输出层尺寸为10×1。为适应实验需求,本文对其输出层结构进行了修改,具体结构组成依次为输入层(32×32,1通道)、二维卷积层(28×28,6通道)、最大池化层(14×14,6通道)、二维卷积层(10×10,16通道)、最大池化层(5×5,6通道)、全连接层(120×1,单通道)、全连接层(84×1,单通道)及输出层(5×1,单通道),详细结构如图5所示。

图5 用于密码算法识别的CNN结构Fig.5 CNN structure for cipher algorithm recognition

该模型对应一个五分类问题,即对AES_ECB、AES_CBC、AES_GCM、RC4、ChaCha20五种不同的密码算法与模式进行识别。模型的输入为原始流量数据经过处理后生成的尺寸为32×32的字节矩阵,输出为1×5的向量,代表最终的密码算法类型分类结果。整个训练过程共进行200次迭代。

3.1.2 基于随机森林的有特征识别

随机森林是一种集成学习分类方法[16],通过建立多个独立模型的组合来解决一个分类问题,其会生成多个分类器,每个分类器各自学习和做出决策,这些决策最后会通过投票形成一个单一的分类结果,因此在一般情况下,集成学习的结果将优于一个单独分类器。随机森林使用多个独立决策树的决策来确定最后的分类结果,因此,其也是一种集成学习方法。

本文将使用决策树作为分类模型,进行不同密码算法与工作模式的识别。随机森林是基于特征的分类器模型,不能直接输入原始数据,需要进行特征的提取。本文将使用SP800-22 Revla的全部测度作为样本的特征,组成一维特征向量F:

式中:xi代表SP800-22 Revla测试套件中的1个测度值;n为特征向量长度,本文中n=15。

使用样本特征向量组成各密码算法的样本数据集Salgo,样本数据集包含了该密码算法或工作模式用于训练和测试的所有样本:

式中:algo指某一种密码算法或工作模式;Fj为第j个样本的特征向量;k为样本数量,在本文中k=5 000,即每一类密码算法或工作模式有5 000个样本。

为了完成随机森林的二分类任务,需要从各密码算法或工作模式数据集中抽取2个组成用于模型训练和测试的扩展数据集T与标签集L:式中:Am代表扩展数据集T中第m个样本的密码算法或工作模式类型,取值为1或2,代表二分类问题中的第1类或第2类。

基于随机森林的有特征识别采用了十折交叉验证方法,因此,只需要对扩展数据集T进行随机打乱排序,而不需要手动进行训练集和测试集的划分。在进行模型的训练时,输入打乱顺序后的扩展数据集T,模型输出预测标签集Lpre,将Lpre与原始标签集L对比可得到模型的分类准确率。

3.2 实验方法

3.2.1 数据采集方法

本节实验采用TLS1.2加密网络流量作为基础数据样本,根据第1节对现网流量中密码套件的占比分析,实验采用如表4所示的4种密码套件产生流量。此外,为了验证模型的有效性,除了表4中列出的4种密码套件,本文还加入了AES_ECB模式,即总共5种密码算法。

表4 实验采用的密码套件Table 4 Cipher suite used in experiment

需要说明的是,在TLS密码套件中并不存在使用ECB的选项,因此,无法通过模拟产生TLS流量来获取AES_ECB加密的流量。本文将使用OpenSSL中的AES_ECB加密模块对原始数据进行加密,直接获得ECB工作模式下的样本。这种方法在本质上与TLS产生加密数据的过程类似,可以避免因样本产生方法不同而对实验结果产生影响。

4种密码套件的主要密码算法分别是AES_CBC、AES_GCM、ChaCha20及RC4,使用比例在本文采集的现网流量中达到90%。因此,这4种密码算法具有足够的代表性,如果能够对其进行区分,具有较大的现实意义。TLS流量由本地模拟环境产生,原始内容为HTTP形式的响应数据,其身体部分为长度1 000~1 200 Byte的邮件文本序列[17],加上约160 Byte的HTTP头部,整个负载加密后长度在1 300~1 500 Byte以内。通过反向代理,将HTTP流量封装成TLS流量,本节实验仅使用1 024 Byte长度的加密数据,因此,1个样本仅需1次HTTP请求即可。AES_ECB使用同样的原始数据,直接通过OpenSSL的加密模块生成1 024 Byte长度的加密数据。

本节实验一共使用20 000个密文样本,5种密码算法或工作模式的样本数量相同(每种5 000个样本)。在基于CNN的无特征识别中,从整个数据集中随机抽取80%作为训练样本,20%作为测试样本;在基于随机森林的有特征识别中,从整个数据集中提取2种密码算法或工作模式的样本构成扩展数据集,由于使用十折交叉验证,无需手动划分训练集和测试集。

3.2.2 数据预处理方法

按照图6所示的方法,对TLS样本流量的应用负载部分进行提取。首先,根据各密码算法的加密规则去除其头部和尾部的初始化向量、MAC校验码等附加部分,剥离出纯密文部分。然后,将纯密文部分裁剪为1 024 Byte长度(由于流量生成时长度最低为1 300 Byte,不存在密文长度不够时的填充问题,避免干扰),AES_ECB的密文无需处理,可直接生成1 024 Byte长度的样本。

图6 样本预处理方法Fig.6 Sample pretreatment method

在基于CNN的无特征识别中,将1 024 Byte的样本数据按顺序排列成一副尺寸为32像素×32像素的256色阶的单通道灰度图(即每个像素为1 Byte大小,代表0~255的不同黑白色阶,32×32=1 024)。按照分组密码算法16 Byte的分组长度,该图片的1行包含2个密文分组,每张图包含64个密文分组,且原始密文数据的顺序按从左到右、从上到下进行排列。

图7为一个经过图像化处理的样本,包含1 024 Byte的纯密文。

图7 经处理后的样本Fig.7 Processed samples

在基于随机森林的有特征识别中,将1 024 Byte长度的样本数据输入SP800-22 Revla测试套件,获取每一个样本的15个随机测度,并按照式(1)~式(4)生成对应的扩展数据集T和标签集L,作为随机森林分类器的输入。

3.3 实验结果

3.3.1 CNN模型识别结果

图8为训练过程中训练集准确率和测试集准确率的变化。可以看到,随着迭代次数的增加,训练集准确率持续上升,在第125个迭代时逼近100%,但测试集准确率却始终徘徊在约20%处,且整体呈现下降趋势,这说明在训练的早期模型可能就已经出现了过拟合现象。出现过拟合现象的原因有很多,如模型过于简单、样本过少、训练时间过长、样本噪声过大等。由于本节实验训练过程中,训练集准确率持续上升,测试集准确率一直处于下降状态,说明模型可以挖掘和学习到训练集样本的特征,但是无法将这种特征推广到测试集或其他数据集,也说明通过深度学习模型从纯密文样本挖掘到的全局特征是“随机”的,即对于各种密码算法,其密文特征并没有统一模式,这与密码算法的本质要求是一致的。

图8 训练过程中准确率的变化Fig.8 Change of accuracy during training

最终,该模型在AES_ECB、AES_CBC、AES_GCM、ChaCha20、RC4这5种密码算法识别问题上的准确率为20.92%,分类结果的混淆矩阵如图9所示,该模型在此处的五分类问题上与随机猜测的准确率一致。因此,本文认为LeNet5这一深度学习模型在本文的实验环境下,无法解决AES_ECB、AES_GCM、AES_CBC、ChaCha20及RC4纯密文数据的五分类问题,即使是随机性表现较差的AES_ECB,也无法通过纯密文负载与其他密码算法进行区分。

图9 分类结果混淆矩阵Fig.9 Confusion matrix of classification results

3.3.2 随机森林模型识别结果

本文使用随机森林进行密码算法间的二分类问题,共有5种密码算法需要分类,因此,可以形成10个不同的二分类问题,即随机森林的输入为10个扩展数据集T和标签集L。随机森林的二分类识别结果如表5所示。

通过表5中的结果可知,除AES_ECB外,其余密码算法或工作模式的二分类准确率均约为50%,与随机猜测的准确率几乎相同。而包含AES_ECB的二分类准确率均高于50%,但均低于60%,识别效果略高于随机猜测。

表5 随机森林二分类准确率Table 5 Accuracy of random forest classification

值得注意的是,该结果所表现出的AES_ECB与其他密码算法的随机性差异并没有表3中显著。本文认为这与原始数据本身的随机性有关,表3中的结果由图2经各密码算法加密后进行随机性检测得出,图2的原始数据在绝大多数随机性测度上都接近0。同时,AES_ECB无法掩盖原始数据的字节分布特征,导致经AES_ECB加密后的密文与其他密码算法的密文存在巨大差异。在本节实验中,原始数据来源于网络邮件数据集,在网络流量背景下比图2更具有代表性,其本身的随机性就比图2强,因此,经过AES_ECB加密后与其他密码算法的差异没有表3中显著。虽然对AES_ECB与其他密码算法的分类结果不显著,但仍高于随机猜测,证明本文模型在密码算法的分类上具有一定有效性;而对于除AES_ECB外的其他密码算法或工作模式,在本文中的实验环境下无法做到有效的区分。

4 结 论

本文通过对现网流量中TLS密码套件使用情况,以及通过实验对各类对称密码算法在不同工作模式下的密文随机性及抵抗密码体制识别能力上的表现进行比较,得出以下结论:

1)在现网流量中,AES是TLS协议中使用最广泛的对称密码算法,占总体的97.03%;GCM是AES算法中最常使用的工作模式,占总体的90.98%。现有关于密码算法识别的工作大多没有涉及AES_GCM 与ChaCha20这2种主流密码算法,因此,并不适用于TLS网络流量中的密码算法别问题。

2)TLS中各类对称密码算法在ECB工作模式下均具有较差的密文随机性,其密文带有显著的原始数据结构特征。在非ECB模式下,密文随机性表现良好,密文的傅里叶频率图能量分布均匀,其中AES_GCM、AES_CBC、ChaCha20及RC4密文均可通过SP800-22 Revla的全部指标。

3)AES_ECB、AES_CBC、AES_GCM、ChaCha20及RC4这5种密码算法或其分组模式均可在一定程度上抵御基于无特征识别的分析攻击,但AES_ECB模式无法抵御基于有特征识别的分析攻击。

4)进行加密流量的分析时,应同时考虑数据的非加密与加密部分、综合数据的低熵区与高熵区特征。

5)在进行TLS加密通信时,应优先选择带有AES_GCM 或ChaCha20对称密码算法的密码套件,以对抗基于随机性特征的密码体制识别攻击。

猜你喜欢

随机性密文套件
“保护”老年人的套件设计
一种新的密文策略的属性基加密方案研究
密码分类和攻击类型
一种抗攻击的网络加密算法研究
美国火力控制器公司X01卡宾枪转换套件
认真打造小学数学的优美课堂
浅析电网规划中的模糊可靠性评估方法
条件型非对称跨加密系统的代理重加密方案
买菜车的春天AC Schnitzer宝马3全系改装套件
对“德育内容”渗透“随机性”的思考