该研究方向:把基于深度学习的方法和密码学分析结合起来,进行对称密码或轻量级密码算法的性能评估研究。

基于深度学习的密码算法识别研究

{2021}, {曹莉茹}, {硕士学位论文}

曹莉茹. 基于深度学习的密码算法识别研究[J]. 成都: 电子科技大学, 2021.

Key Points

  • 密文特征选择与识别

  • 密文分割长度

  • 随机森林算法

  • BP 神经网络、卷积神经网络和循环神经网络算法

Summary

本文主要开展了两项工作,一是密文特征分析与选取,NIST随机性检验中存在着多种随机性检测指标,探究了在各种指标下,不同加密算法产生的密文文件以及加密算法产生的密文文件与随机文件的特征值分布状况。同时也探究了不同密文分割长度对特征分布的影响。

二是基于深度学习的密码算法识别,作者基于一中选取的特征开展密码算法识别工作,采取了8种加密算法,并且在固定密钥和随机密钥两种情况下实验,分别进行了随机森林下的识别以及用BP神经网络、卷积神经网络以及循环神经网络等深度学习方法下的识别,得出了基于深度学习的密码算法识别平均准确率比基于随机森林的要好得多。最后分析了优于的原因。

Research Objective(s)

研究有效的密码算法识别方法

Background / Problem Statement

研究背景:

密码分析是军事活动进行情报分析的重要部分,密码分析是指从密文相关信息未知的情况下获取密文隐藏内容。

识别出加密密文所属的加密算法是开展密码分析任务的重要前提,研究有效的密码识别方法有着重要的现实意义与应用价值。

问题陈述:

1.密文特征设计的改进与创新:已有的研究选择密文特征时,往往基于直觉设计,以识别效果作为特征选择的依据,欠缺对密文特征本身的分析与考虑。

2.深度学习在密码算法识别中的应用:综合已有的实验成果,基于机器学习的随机森林算法识别效率最高,随着GPU的发展,目前的神经网络已在诸多场景有着远超随机森林的表现,然而尚未有深度学习在密码算法识别方面的研究与探讨。

Method(s)

解决问题的方法:

  • 密文特征分析与选择部分:基于NIST 随机性检验筛选出随机文件与密文文件有明显区分的检验标准(6个),分析选取5个指标作为开展算法识别工作。最后探讨和实验了不同密文序列大小对特征值分布的影响(3个)。

  • 深度学习部分:采用 BP 神经网络、卷积神经网络与循环神经网络三种深度学习算法。

Evaluation

如何评估方法:

本次研究以五折交叉验证法在测试集的平均查准率 pre平均查全率 rec 作为密码算法识别方案的评价指标。

setup:

软硬件环境
CPU R74800H
操作系统 Windows 10
Python 3.7
Crypto++ 8.5
Visual Studio 2019
Tensorflow 2.0
SKLearn 0.24.1

随机森林和深度学习都分别进行了在固定密钥和随机密钥的情况下的实验。(全部采用的是ECB模式)

随机森林:

基于五种特征方法都采取了:将密文文件分割为数份大小为 4kB 的密文块,\(B = {b _1, b_2, . . . , b_k},k = ⌊\frac{n}{4096}⌋, k > 64;\) 具体细节配置各种方法有细微不同。

深度学习:

对于每种加密算法的数据集,随机抽取 0.2M 个样本作为测试集,0.8M 个样本作为训练集;(M为密文文件数量)

Conclusion

结论:

  • 密文文件与随机文件在频率检验、块内频数检验、非重叠模板检验、游程检验、近似熵检验与离散傅里叶变换检验上的特征分布存在着区别。但不同密码算法产生的密文在离散傅里叶变换检验上的特征分布差异并不明显。
  • 密文序列越小,特征值分布规律越明显的随机性检验项目有:离散傅里叶变换检验 、频率检验、非重叠模块匹配检验。
  • 深度学习算法在密码算法识别任务中有着比随机森林算法更为出色的表现。
  • 随机森林与深度神经网络对 Camellia、Blowfish 两种密码算法的识别均低于对其他密码算法的识别。
  • 在观察不同密码算法的特性后,发现 Blowfish、 Camellia 两种密码算法均包含 Feistel 结构,不易区分原因可能有二:一是设计的五种特征在二者上区分性不明显;二是与二者采用的 Feistel 结构有关,DES 虽也用此结构,但因其安全性低有明显频率特征而易于识别。(weak conclusions)

Thought(s)

Notes

现阶段密码算法识别的研究主要分为两个研究方向:

  • 通过对软硬件进行逆向分析来推导在软硬件中所实现的加密算法
  • 通过提取密文的相关特征来作为区分密文所属的加密体制的依据

现代密码算法设计需要遵循两个重要原则:混淆和扩散

  • 扩散:将明文的统计规律和结构规律分散到密文中去。即明文和密钥中的任意一位都影响密文数据中尽可能多的位,并且密文中的每一位都受到尽可能多的明文数据的影响。
  • 混淆:使密文、明文、密钥三者之间的数学关系变得尽可能复杂。分析者无法通过密文和对应的明文分析密钥的相关信息。也无法通过密文和已知的明文推测出其他明文的信息。

基于密文特征的密码算法识别方法主要分为两种,一种是早期的基于统计学的方法,一种是基于机器学习的方法(主流)。

非对称密码算法通常指公钥密码,公钥用于加密数据, 由私钥计算得到,且难以根据公钥来计算出私钥。

分组密码的工作模式:

  • 电码本模式(ECB)
  • 密码分组链接模式(CBC)
  • 计数器模式(CTR)
  • 密码反馈模式(CFB)
  • 输出反馈模式(OFB)

分组密码算法(常见的几种):

  • DES(Data Encryption Standard)
  • AES(Advanced Encryption Standard)
  • IDEA(International Data Encryption Algorithm)
  • Blowfish
  • Camellia

公钥密码:

  • Elgamal 算法
  • ECC 算法
  • RSA 算法

机器学习中分类器的度量指标:

  • 精度与错误率

  • 查准率、查全率和误报率

    • 分类后的样本可分为四种:①TP (True Positive) 表示真正例,即模型预测为正类,实际标签也为正类的数量;②FP (False Positive) 表示假正例,即模型预测为正类,但实际标签为负类的数量;③FN (False Negative) 表示假负例,即模型预测为负类,但实际标签为正类的数量;④TN (True Negative) 表示真负例,即模型预测为负类,实际标签也为负类的数量。

    • 查准率PRE:\(P=\frac{TP}{TP+FP}\), 一句话简单的说,即你认为是True的样本中,到底有多少个样本是真为True。

    • 查全率REC==(也叫召回率)==:\(R=\frac{TP}{TP+FN}\),同样简单一句话,即在预测样本中属于True的样本,你真的判断为True的有几个。

    • 误报率FPR:\(FPR=\frac{FP}{TP+FP}\),在所有被你判断为 True 的样本中,实际上是 False 的样本所占的比例。

    • 查准率和查全率的不同:

      • 查准率(Precision)

        • 通俗解释:假设你是一个侦探,在一堆嫌疑人中找真正的罪犯。查准率就是你认定的罪犯中,真正是罪犯的比例。比如你觉得有 10 个人是罪犯,最后经过核实,这 10 个人里有 8 个确实是罪犯,那么查准率就是 8÷10 = 80%。也就是说,你抓的人里,大部分是抓对了的,准确率比较高。
        • 特点:侧重于你判断为正例(比如是罪犯)的样本中,真正是正例的准确性。它关心的是你做出的 “是” 的判断有多靠谱。
      • 查全率(Recall)

        • 通俗解释:还是刚才的侦探例子,这次已知一共有 20 个真正的罪犯在那堆嫌疑人里。你最后找到了 15 个罪犯,那么查全率就是 15÷20 = 75%。这意味着你把真正的罪犯找出来的比例是 75%,还有一些罪犯被你遗漏了没找出来。
        • 特点:强调的是在所有真正的正例(全部罪犯)中,你成功找出来的比例。它关注的是你有没有把该找的都找出来,漏网之鱼多不多。
      • 两者的不同

        • 侧重点不同:查准率更注重结果的准确性,宁可少抓,也要保证抓的大部分是对的;查全率更看重完整性,尽量把所有的都找出来,哪怕可能会误抓一些。

        • 应用场景不同

          • 在一些对准确性要求极高的场景,比如医疗诊断,如果误诊(把没病的人诊断为有病)会给病人带来很大伤害,那么查准率就很重要。医生宁可漏诊一些,也不能轻易下诊断,要保证诊断为有病的人大部分确实有病。
        • 而在像抓捕逃犯这种场景,如果让逃犯逃脱会造成很大危害,那么查全率就更关键。哪怕多排查一些人,也要尽可能把所有逃犯都找出来,不能有漏网之鱼。

        总之,查准率和查全率是衡量模型或系统性能的两个重要指标,在不同的情况下,我们可能会更关注其中的一个,但通常都希望两者能达到一个较好的平衡。

在机器学习任务中,常见的对分类器模型进行评估与选择的方法有流出法、交叉验证法、自助法等,其中 K 折交叉验证法适用于数据样本量不充足的情况, 具体过程为将数据集随机分为 K 个大小相等且互斥的子集,在每一次实验中,抽取一份未选择过的子集作为测试集,其他 K1 个子集作为训练集,共进行 K 次实验,将 K 次结果的指标的平均值作为对分类算法性能的估计。

传统的BP 神经网络一般指三层的全连接神经网络,层数大于三层的 BP 神经网络被称 为深度神经网络。(BP神经网络的输入是一维向量,多维数据需要展平成一维向量)

卷积神经网络是一类包含卷积计算且具有深度结构的前馈神经网络,是深度神经网络的代表算法之一,卷积神经网络能够很好挖掘数据之间的空间关系,具有表征学习能力,对数据没有额外的特征工程要求,因此可用于处理多维数据。

References

李继中. 密码算法识别与分析关键技术研究[D]. 解放军信息工程大学, 2014.

赵志诚. 基于机器学习的密码体制识别研究[D]. 郑州: 战略支援部队信息工程大学, 2018.

基于深度学习的密码算法识别方案研究

{2024}, {张博文}, {硕士论文}

张博文.基于深度学习的密码算法识别方案研究[D].河南大学,2024.

Key Points

  • 密码算法识别
  • Transformer
  • 生成式对抗网络(GAN)

Summary

现有密码识别方案,大多是基于机器学习算法,存在着识别效果不佳的问题,同时也存在着泛化能力不足的问题。针对这两个问题,本文提出了基于Transformer模型分组密码算法识别方案,以及为了应对更多密码算法种类和数量的复杂密文识别场景,提出了基于生成式对抗网络的多层复合识别方案,并且对生成式网络存在的一些问题,进行改进并提出了混合GAN模型。本文在进行密文特征筛选时基于了NIST随机性测试,并且通过逐步验证的策略筛选出有效的密文特征。

Research Objective(s)

构建密码算法识别方案完成对同一体制下密码算法和不同体制不同分组密码算法加密模 式下密码算法的区分。

Background / Problem Statement

研究背景:

目前密码分析技术的研究和实践通常建立在一个关键前提之上:研究人员已经知道目标所用的密码体制或加密算法。现实中研究人员获得密文时,不知道密文使用的加密算法和所属的密码体制等相关信息, 因此无法顺利进行下面的研究工作,所以识别密文所用的具体加密算法是现实中密码分析工作必不可少的前提。

需要解决的问题:

现有的大多数密码算法识别方案都基于传统的机器学习模型,存在识别率与稳定性都不够优秀的问题。同时密文特征提取方法有许多, 包括根据密文特性的熵值计算方法和统计学等方法,但依据这些方法提取到的部分特征属于冗余特征,对识别密文使用的加密算法毫无帮助,导致大部分的时间被浪费

现有密码体制识别方案体系的不完整性,以及对密码算法种类识别上的局限性

Method(s)

分组算法识别上:

  • NIST随机性测试方法对加密数据集进行特征提取(通过采用逐步验证的策略,逐一检验每个特征对于密码算法识别的贡献,并在多次迭代中剔除无关或效用低的特征,最终保留了最具区分力的密文特征。)
  • 使用 Transformer 模型针对分组密码体制构建了识别方案

现有密码体制识别方案体系的不完整性,,以及对密码算法种类识别上的局限性:

  • 分簇识别
  • NIST随机性测试进行密文特征提取
  • 引入生成对抗网络模型,进行改进并提出混合GAN(Mix GAN,MGAN) 模型作为方案的识别算法

Evaluation

特征提取:准确率(在实验中每次从现有特征集中移除一个特征,然后重新训练 Transformer 模型并评估其性能)

基于 Transformer 模型的分组密码算法识别:

  • 准确率
  • 查准率
  • 查全率
  • F1 分数

基于生成对抗网络的密码算法多层复合识别方案:

  • 准确率
  • 查准率
  • 查全率

setup:

基于 Transformer 模型的分组密码算法识别:

  • 由 Python 编写的开源工具 sp800_22_tests-master 基础上进行改进以实现密文特征提取
  • Python 的 Crypto 库
  • 十折重复随机子抽样
  • 选取了影响最大的 10 种密文特征作为分类器的输入
  • 5 种密码算法,分别进行二分类与五分类识别

基于生成对抗网络的密码算法多层复合识别方案:

软硬件环境
CPU NVIDIA 2060 GPU
操作系统 Windows 10
Python 3.6
Pytorch 1.7.2
  • 12 种加密算法和 5 种加密模式,所有加密算法均设置固定密钥和初始变量

Conclusion(s)

  • 使用特征筛选过的数据集不仅能提高密码算法识别方案的准确率,同时还可以提高分类模型的训练效率。
  • 二分类识别中:
    • 密文文件的大小对分类模型的识别准确率具有一定的正面影响。当密文文件的大小增加时,理论上包含的特征信息更丰富, 模型有更多的数据可以学习,这可能是准确率提高的原因。
    • 密文文件大小对分类精度具有一定的影响,但 Transformer 分类模型的分类精度受文件大小影响较小, 即 Transformer 分类模型具有最强的稳定性。
  • 五分类识别中:
    • 采用传统机器学习算法构建的五种密码算法识别方案表现出较为有限的识别效果。
    • 比于传统机器学习算法, 深度学习算法表现出显著的优势,特别是采用 Transformer 算法构建的分类器,Transformer 模型相较于其他分类器具备更 小的性能波动和更高的稳定性
  • 改进后的 MGAN 模型在对三种不同层次的密码体制进行分类时表现出更高和更稳定的识别准确率,相较于原始的 GAN 模型有显著的改进和优化。
  • MGAN 模型在进行单层识别时能够以更高的准确率识别同一密码体制下的多种密码算法。

Thought(s)

在特征提取部分,可能存在多个特征共同影响模型的准确率,单一排除有点不严谨。

题目涵盖不严谨,后面基于生成对抗网络的密码算法多层复合识别方案没有介绍进去。

Notes

GAN框架的核心在于它包含两个互相竞争的网络部分:一个生成器(G) 和一个鉴别器(D)。在这个设置中,两个网络通过竞争不断发展提升自身的性能。生成器的目标是创建逼真的数据样本,而鉴别器则致力于区分生成器所产生的假数据和真正的训练数据。

训练 GAN 常常面临不稳定性和模式崩溃的问题,后者是指生成器网络“学会”只产生有限的、相对简单的数据样本子集,而忽略了数据的丰富多样性。这一问题限制了 GAN 在生成多样化和全面性数据方面的能力。

  • 为解决这些训练难题,目前已经探索出多种策略。包括改进的损失函数设计,引入正则化技术,以及采用特殊的训练策略。

F1-score:查准率和查全率的调和平均值(倒数的平均值的倒数)

References

Mirza M , Osindero S .Conditional Generative Adversarial Nets[J].Computer Science, 2014:2672-2680

基于深度学习的轻量级分组密码 SIMON 安全性分析

{2021}, {丛鹏}, {硕士论文}

丛鹏.基于深度学习的轻量级分组密码SIMON安全性分析[D].桂林电子科技大学,2021.DOI:10.27049/d.cnki.ggldc.2021.000589.

Key Points

  • SIMON
    • 安全性
  • STA/SMT

Summary

本文聚焦 SIMON 算法,鉴于轻量级分组密码安全性分析需求及深度学习优势,构建 FNN 和 CNN 神经网络区分器对 SIMON32/64 进行安全性剖析,探究输入差分影响并改进区分器,提出候选密钥筛选策略,为密码分析提供新途径。

Research Objective(s)

通过深度学习对 SIMON32/64 的安全性进行研究,基于区分器设计候选密钥筛选策略,降低攻击复杂度

明确影响神经网络区分器性能因素,改进输入差分选择提升其准确率与性能,拓展应用轮数。

Background / Problem Statement

背景:信息安全重要,轻量级分组密码缺乏安全标准,传统分析手段繁琐,深度学习兴起带来新可能。

问题:SIMON 安全性分析缺高效方法,深度学习区分器有准确率和输入差分选择问题。

Method(s)

用 FNN 和 CNN 构建区分器,依密码分析思想生成数据集,设置网络参数、格式、函数和超参数,依区分器特点设计筛选方案。

研究输入差分因素影响,用 SAT/SMT 依轮函数特性搜索改进输入差分构建新区分器。

Evaluation

评估方法:对比网络结构性能指标、筛选结果及复杂度,以准确率变化评估改进效果。

Conclusion

  • 构建的区分器及筛选方案可行有效,CNN 准确率优、FNN 训练快,结合有优势。

  • 确定输入差分关键因素并改进算法提升性能。

Thought(s)

参考研究方向:

  • 数据集很难获得,而深度模型需要大量有标签的数据,能否通过小样本学习改善在神经网络区分器的构建,进一步降低训练过程中数据复杂度和时间复杂度消耗。

Notes

前馈神经网络(Feedforward Neural Network, FNN): 一种典型的神经网络,由输入层、隐藏层和输出层组成,层与层之间全连接,无循环连接。(BP神经网络也是一种前馈神经网络

多差分密码分析: 这是一种密码分析技术,通过分析输入和输出的差分(即输入的差异如何影响输出的差异)来推断密钥或算法的内部状态。在多差分分析中,通常会考虑多个输入差分和多个输出差分。

References

Blondeau C, Gérard B. Multiple differential cryptanalysis: Theory and practice[C] //Proc of the Int Workshop on Fast Software Encryption. Berlin: Springer, 2011: 35-54.

Gohr A. Improving attacks on round-reduced speck32/64 using deep learning[C] // Proc of the Annual Int Cryptology Conf. Berlin: Springer, 2019: 150-179.

基于深度学习的轻量级分组密码安全性分析

{2024}, {岳晓腾}, {硕士论文}

岳晓腾.基于深度学习的轻量级分组密码安全性分析[D].河北大学,2024.DOI:10.27103/d.cnki.ghebu.2024.000316.

Key Points

  • 差分密码分析
  • Speck密码算法
  • 集成差分区分器
  • 多重差分神经区分器

Summary

物联网发展促使轻量级分组密码受关注,因其安全性存疑。本文聚焦 Speck 算法,鉴于已有研究不足,利用深度学习,通过改进数据格式、神经网络结构,结合集成与多重差分技术构建多种区分器,并进行密钥恢复攻击,提升了对 Speck 算法的分析能力,为轻量级分组密码安全研究提供思路。

Research Objective(s)

提升神经差分区分器对 Speck 密码的识别准确率与密钥恢复能力,克服轮数增加导致的性能下降问题。

融合集成学习和多重差分技术构建新区分器,增强对 Speck 密码的分析效果,降低攻击复杂度、提高成功率。

Background / Problem Statement

背景:物联网兴起引发隐私安全担忧,轻量级分组密码应运而生但安全性待考,深度学习在密码分析领域展现潜力,2019 年 Gohr 的工作奠定了相关研究基础。

问题:Speck 等轻量级密码易受攻击,传统差分分析有局限,已有神经差分区分器在准确率、特征识别及结构优化上存在问题。

Method(s)

神经差分区分器优化:提出新数据格式,依 Speck 算法计算前一轮特征提升准确率;用 Inception 模块改进神经网络结构,调整超参数,如输入维度、卷积核等。

集成差分区分器创建:选多种神经网络模型作基区分器,用特定数据格式训练;基于 MLP 与 Blending 算法构建元学习器集成结果,分别生成样本集训练。

多差分神经区分器设计:选特定输入差分集合生成样本,构建适配神经网络,调整参数后训练。

Evaluation

评估方法:以识别准确度、密钥恢复成功率及子密钥比特位准确率为指标,对比不同区分器性能,观察训练损失率和准确度曲线。

借鉴:提供技术融合思路,展示优化模型提升性能过程,为挖掘密码特征提供参考

Conclusion

  • 优化后的神经差分区分器对 Speck32 识别准确率高且密钥恢复效果好。
  • 集成差分区分器提高了识别和恢复成功率,验证集成学习有效。
  • 多差分神经区分器提升了对 Speck 算法的分析能力。

Thought(s)

Notes

轻量级分组密码的安全性分析分为两步,首先是构建轻量级分组密码的区分器,找到密码算法的某种非随机性特征, 然后利用构建的区分器对轻量级分组密码进行完全或部分的密钥恢复攻击。

  • 常见的分组密码的安全性分析技术有差分密码分析、线性密码分析、积分密码分析等。对于轻量级分组密码算法来说,最常见的密码分析技术是差分密码分析。(差分密码分析是目前已知的攻击分组密码算法最有效的方法之一)

References