System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 基于机器学习的布尔函数求解方法技术_技高网
当前位置: 首页 > 专利查询>广州大学专利>正文

基于机器学习的布尔函数求解方法技术

技术编号:40316868 阅读:13 留言:0更新日期:2024-02-07 20:59
本发明专利技术公开了一种基于机器学习的布尔函数求解方法,包括以下步骤:求哈达玛矩阵:通过函数递归方法,进行矩阵拼接,求解出对应元数的哈达玛矩阵;初始化参数:将未知Walsh谱部分设为模型的参数,并赋初值,得到完整Walsh谱;构建映射函数:根据已知Walsh谱和哈达玛矩阵,构建映射函数,得到模型输出;构建辅助矩阵与损失函数:对模型输出整体取绝对值,构建辅助矩阵,根据模型输出绝对值和辅助矩阵得到损失函数;模型优化:使用梯度下降方法,对损失函数关于参数求梯度,使用梯度下降法对损失函数进行优化。已知部分Walsh谱与其对应地址,基于机器学习快速高效的求解出其对应的原布尔函数。通用性强,不依赖于问题特殊结构。

【技术实现步骤摘要】

本专利技术涉及密码学,具体地说,尤其涉及一种应用于密码学中的基于机器学习的布尔函数求解方法


技术介绍

1、布尔函数是密码学的重要研究对象,在设计序列密码、分组密码、散列函数和随机数发生器中扮演着重要的角色,研究布尔函数的密码学性质是密码学中最活跃的研究领域。walsh谱是研究布尔函数密码学性质的重要工具。布尔函数的许多性质都可以利用walsh谱表示或反映,如布尔函数的平衡性、线性结构、最佳线性逼近、非线性度、bent性、扩散特性、相关免疫性和代数结构等。walsh谱和布尔函数的密码学性质紧密相关。在已知walsh谱的若干元素的条件下,研究布尔函数的计数和构造问题具有重要意义。

2、一方面,可以指导和帮助理解walsh谱的密码学性质。另一方面,可以帮助设计者在密码算法设计中快速地选择出合适的布尔函数,在密码算法安全性评估中建立科学严谨的分析模型。已知部分walsh谱值与其对应的地址,能够求出其对应的布尔函数。分析传统布尔函数求解算法,暴力求解法可以解决低维的问题,但是对于高维的数据,暴力求解法所花费时间太长。列方程求解法,虽然可以设出2n个未知数和m个方程,但是在布尔函数求解过程中依旧难度很大。


技术实现思路

1、本专利技术的目的在于克服现有技术的缺点和不足,提供一种基于机器学习的布尔函数求解方法,在已知部分walsh谱与其对应地址的条件下,基于机器学习快速高效的求解出其对应的原布尔函数。

2、为了实现上述目的,本专利技术所采用的技术方案如下:

3、一种基于机器学习的布尔函数求解方法,包括以下步骤:

4、s1.求哈达玛矩阵:通过函数递归方法,进行矩阵拼接,求解出对应元数的哈达玛矩阵;

5、s2.初始化参数:将未知walsh谱部分设为模型的参数,并赋初值,得到完整walsh谱;

6、s3.构建映射函数:根据已知walsh谱和哈达玛矩阵,构建映射函数,得到模型输出;

7、s4.构建辅助矩阵与损失函数:对模型输出整体取绝对值,构建辅助矩阵,根据模型输出绝对值和辅助矩阵得到损失函数;

8、s5.模型优化:使用梯度下降方法,对损失函数关于参数求梯度,使用梯度下降法对损失函数进行优化。

9、进一步地,步骤s1,求哈达玛矩阵,具体为:

10、通过函数递归方法,进行矩阵拼接,求解出对应n元的哈达玛矩阵hn,n表示维度,如下所示:

11、

12、采用分段的方式优化求高维hn,先设定一个值m,递归求出hm与hn-m,之后使用循环乘法的方式代替hn。

13、进一步地,步骤s2,初始化参数,具体为:

14、将未知walsh谱部分设为模型的参数param,并赋初值,得到完整的walsh谱

15、进一步地,步骤s3,构建映射函数,具体为:

16、根据已知walsh谱和哈达玛矩阵,构建映射函数,参考walsh谱反演公式,定义映射函数为:

17、

18、式中,f为布尔函数,的结果为模型输出。

19、进一步地,步骤s4,构建辅助矩阵与损失函数,具体为:

20、先对整体取绝对值,得到构建值全为1,size=2n的张量ones,即ones=[1,1,……],损失函数公式如下所示:

21、

22、ones为全1的向量,在理想情况下,的值为1,减去ones结果为0;若不为1就会有差值,产生损失,累加每一项的损失,得到模型损失值l。

23、进一步地,步骤s5,模型优化,具体为:

24、使用梯度下降方法,对损失函数关于参数param求梯度,使用梯度下降法对损失函数进行优化。

25、进一步地,步骤s5中,对损失函数进行优化,包括以下步骤:

26、s51:根据不同损失值,设置不同的学习率lr;

27、s52:使用学习率区,每个参数每次使用的学习率随机在设定范围内;

28、s53:设置更新矩阵;

29、s54:判断是否对更新后的进行取整,当损失值l小于某个阈值a时,对四舍五入取整;

30、s55:根据损失函数公式求出此时的损失值l,若损失值l=0,根据公式

31、

32、求出布尔函数,结束;若损失值l不为0,则重复模型优化的步骤。

33、进一步地,步骤s52中,学习率设置方式为:

34、

35、进一步地,步骤s53中,设置更新矩阵,具体为:

36、在更新中param时,设置一个0、1更新矩阵change,大小为2n;

37、在change矩阵中,与param在中有相同下标的值置为1,其余置为0;

38、直接使用公式更新参数,公式为:

39、

40、式中,为对求梯度,公式表示按照lr的学习率对进行更新。

41、进一步地,步骤s54中,判断是否对更新后的进行取整,判断公式为:

42、

43、与现有技术相比,本专利技术具有如下优点和有益效果:

44、1.本专利技术相比于暴力求解法,大大提高了效率;相比于列方程求解,不需要去考虑方程消元等问题,步骤更加的简单。

45、2.本专利技术用连续数据逼近离散数据并在误差较小时采用取整的技巧,使得梯度下降也可以处理离散数据并有较好的效果。

46、3.本专利技术通用性强,不依赖于问题的特殊结构,随机给出walsh谱值都可以进行求解,不需要walsh谱值内部存在特殊规律。

本文档来自技高网...

【技术保护点】

1.一种基于机器学习的布尔函数求解方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的基于机器学习的布尔函数求解方法,其特征在于,步骤S1,求哈达玛矩阵,具体为:

3.根据权利要求2所述的基于机器学习的布尔函数求解方法,其特征在于,步骤S2,初始化参数,具体为:

4.根据权利要求3所述的基于机器学习的布尔函数求解方法,其特征在于,步骤S3,构建映射函数,具体为:

5.根据权利要求4所述的基于机器学习的布尔函数求解方法,其特征在于,步骤S4,构建辅助矩阵与损失函数,具体为:

6.根据权利要求5所述的基于机器学习的布尔函数求解方法,其特征在于,步骤S5,模型优化,具体为:

7.根据权利要求6所述的基于机器学习的布尔函数求解方法,其特征在于,步骤S5中,对损失函数进行优化,包括以下步骤:

8.根据权利要求7所述的基于机器学习的布尔函数求解方法,其特征在于,步骤S52中,学习率设置方式为:

9.根据权利要求7所述的基于机器学习的布尔函数求解方法,其特征在于,步骤S53中,设置更新矩阵,具体为:

10.根据权利要求7所述的基于机器学习的布尔函数求解方法,其特征在于,步骤S54中,判断是否对更新后的进行取整,判断公式为:

...

【技术特征摘要】

1.一种基于机器学习的布尔函数求解方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的基于机器学习的布尔函数求解方法,其特征在于,步骤s1,求哈达玛矩阵,具体为:

3.根据权利要求2所述的基于机器学习的布尔函数求解方法,其特征在于,步骤s2,初始化参数,具体为:

4.根据权利要求3所述的基于机器学习的布尔函数求解方法,其特征在于,步骤s3,构建映射函数,具体为:

5.根据权利要求4所述的基于机器学习的布尔函数求解方法,其特征在于,步骤s4,构建辅助矩阵与损失函数,具体为:

6.根据权利要求5所述的基...

【专利技术属性】
技术研发人员:徐峰余玉银李京辰谭子晗
申请(专利权)人:广州大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1