一种密钥处理方法、装置、设备及存储介质制造方法及图纸

技术编号:36354126 阅读:50 留言:0更新日期:2023-01-14 18:10
本申请涉及信息安全技术领域,公开了一种密钥处理方法、装置、设备及存储介质,应用于编译器,包括:获取目标密钥和待编译程序源代码,并对目标密钥进行分片处理,得到与目标密钥对应的多个密钥变量;将各个密钥变量随机插入至待编译程序源代码中的不同位置处,并将自定义的密钥重组代码随机插入至待编译程序源代码中的加密代码段中,得到与待编译程序源代码对应的待编译重构代码;对待编译重构代码进行编译并输出相应的可执行文件,以便执行到可执行文件中的加密代码段所在位置处的内容时,通过调用密钥重组代码的方式根据可执行文件中的密钥变量重组得到目标密钥。本申请能够解决写在代码里的密钥等敏感信息容易被逆向破解的问题。问题。问题。

【技术实现步骤摘要】
一种密钥处理方法、装置、设备及存储介质


[0001]本专利技术涉及信息安全
,特别涉及一种密钥处理方法、装置、设备及存储介质。

技术介绍

[0002]现有加密场景中的代码处理方式是将密钥直接写在源代码中或写在硬件里,这种情况下,密钥和代码不能分离,不利于密钥的保护,存在以下两种风险:(1)开发人员泄露密钥;(2)源代码泄露同时泄露密钥,源代码一旦泄露便可以通过技术手段查看可执行文件数据区,也就很容易找到密钥。上述情况下,提高了程序对密钥系统和硬件加密卡的依赖,也就是提高了开发成本且不利于密钥维护。
[0003]因此,上述技术问题亟待本领域技术人员解决。

技术实现思路

[0004]有鉴于此,本专利技术的目的在于提供一种密钥处理方法、装置、设备及存储介质,能够解决写在代码里的密钥等敏感信息容易被逆向破解的问题。其具体方案如下:
[0005]本申请的第一方面提供了一种密钥处理方法,应用于编译器,包括:
[0006]获取目标密钥和待编译程序源代码,并对所述目标密钥进行分片处理,得到与所述目标密钥对应的多个密钥变量;
[0007]将各个所述密钥变量随机插入至所述待编译程序源代码中的不同位置处,并将自定义的密钥重组代码随机插入至所述待编译程序源代码中的加密代码段中,得到与待编译程序源代码对应的待编译重构代码;其中,所述加密代码段为触发利用所述目标密钥进行数据加密的功能代码;
[0008]对所述待编译重构代码进行编译并输出相应的可执行文件,以便执行到所述可执行文件中的所述加密代码段所在位置处的内容时,通过调用所述密钥重组代码的方式根据所述可执行文件中的所述密钥变量重组得到所述目标密钥。
[0009]可选的,所述对所述目标密钥进行分片处理,包括:
[0010]在预编译阶段对所述目标密钥进行分片处理,并对所述目标密钥的分片数量进行保存。
[0011]可选的,所述对所述目标密钥进行分片处理,得到与所述目标密钥对应的多个密钥变量之后,还包括:
[0012]将全部所述密钥变量进行分组,得到第一密钥变量组和第二密钥变量组;
[0013]所述将各个所述密钥变量随机插入至所述待编译程序源代码中的不同位置处,包括:
[0014]将所述第一密钥变量组中的各个所述密钥变量随机插入至所述待编译程序源代码中的不同位置处;
[0015]所述对所述待编译重构代码进行编译并输出相应的可执行文件之后,还包括:
[0016]将所述第二密钥变量组中的各个所述密钥变量随机插入至所述可执行文件中的不同位置处。
[0017]可选的,所述对所述待编译重构代码进行编译之前,还包括:
[0018]根据目标需求在所述待编译重构代码的预设位置处预留出存储空间,使得编译后输出的所述可执行文件在相应位置处具有相应的存储空间。
[0019]可选的,所述将所述第二密钥变量组中的各个所述密钥变量随机插入至所述可执行文件中的不同位置处,包括:
[0020]将所述第二密钥变量组中的各个所述密钥变量随机插入至所述可执行文件中预留的存储空间。
[0021]可选的,所述将自定义的密钥重组代码随机插入至所述待编译程序源代码中的加密代码段中之前,还包括:
[0022]基于所述目标密钥的分片数量及各个所述密钥变量在所述待编译重构代码中的偏移量构建所述密钥重组代码。
[0023]可选的,所述编译器为C语言编译器。
[0024]本申请的第二方面提供了一种密钥处理装置,应用于编译器,包括:
[0025]获取及分片模块,用于获取目标密钥和待编译程序源代码,并对所述目标密钥进行分片处理,得到与所述目标密钥对应的多个密钥变量;
[0026]代码重构模块,用于将各个所述密钥变量随机插入至所述待编译程序源代码中的不同位置处,并将自定义的密钥重组代码随机插入至所述待编译程序源代码中的加密代码段中,得到与待编译程序源代码对应的待编译重构代码;其中,所述加密代码段为触发利用所述目标密钥进行数据加密的功能代码;
[0027]编译及重组模块,用于对所述待编译重构代码进行编译并输出相应的可执行文件,以便执行到所述可执行文件中的所述加密代码段所在位置处的内容时,通过调用所述密钥重组代码的方式根据所述可执行文件中的所述密钥变量重组得到所述目标密钥。
[0028]本申请的第三方面提供了一种电子设备,所述电子设备包括处理器和存储器;其中所述存储器用于存储计算机程序,所述计算机程序由所述处理器加载并执行以实现前述密钥处理方法。
[0029]本申请的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现前述密钥处理方法。
[0030]本申请中,编译器先获取目标密钥和待编译程序源代码,并对所述目标密钥进行分片处理,得到与所述目标密钥对应的多个密钥变量;然后将各个所述密钥变量随机插入至所述待编译程序源代码中的不同位置处,并将自定义的密钥重组代码随机插入至所述待编译程序源代码中的加密代码段中,得到与待编译程序源代码对应的待编译重构代码;其中,所述加密代码段为触发利用所述目标密钥进行数据加密的功能代码;最后对所述待编译重构代码进行编译并输出相应的可执行文件,以便执行到所述可执行文件中的所述加密代码段所在位置处的内容时,通过调用所述密钥重组代码的方式根据所述可执行文件中的所述密钥变量重组得到所述目标密钥。可见,本申请不将密钥直接写死在源代码或者硬件中,而是利用编译器通过分片写入的方式将密钥和源代码进行分离,在执行加密程序时,通
过调用编译阶段写入的密钥重组代码来对密钥进行重组,使得密钥不容易被破解且操作便捷,从而解决写在代码里的密钥等敏感信息容易被逆向破解的问题。
附图说明
[0031]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
[0032]图1为本申请提供的一种密钥处理方法流程图;
[0033]图2为本申请提供的一种密钥处理方法架构图;
[0034]图3为本申请提供的一种具体的密钥处理方法流程图;
[0035]图4为本申请提供的一种具体的密钥处理方法时序图;
[0036]图5为本申请提供的一种密钥处理装置结构示意图;
[0037]图6为本申请提供的一种密钥处理电子设备结构图。
具体实施方式
[0038]下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0039]现现有加密场本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种密钥处理方法,其特征在于,应用于编译器,包括:获取目标密钥和待编译程序源代码,并对所述目标密钥进行分片处理,得到与所述目标密钥对应的多个密钥变量;将各个所述密钥变量随机插入至所述待编译程序源代码中的不同位置处,并将自定义的密钥重组代码随机插入至所述待编译程序源代码中的加密代码段中,得到与待编译程序源代码对应的待编译重构代码;其中,所述加密代码段为触发利用所述目标密钥进行数据加密的功能代码;对所述待编译重构代码进行编译并输出相应的可执行文件,以便执行到所述可执行文件中的所述加密代码段所在位置处的内容时,通过调用所述密钥重组代码的方式根据所述可执行文件中的所述密钥变量重组得到所述目标密钥。2.根据权利要求1所述的密钥处理方法,其特征在于,所述对所述目标密钥进行分片处理,包括:在预编译阶段对所述目标密钥进行分片处理,并对所述目标密钥的分片数量进行保存。3.根据权利要求1所述的密钥处理方法,其特征在于,所述对所述目标密钥进行分片处理,得到与所述目标密钥对应的多个密钥变量之后,还包括:将全部所述密钥变量进行分组,得到第一密钥变量组和第二密钥变量组;所述将各个所述密钥变量随机插入至所述待编译程序源代码中的不同位置处,包括:将所述第一密钥变量组中的各个所述密钥变量随机插入至所述待编译程序源代码中的不同位置处;所述对所述待编译重构代码进行编译并输出相应的可执行文件之后,还包括:将所述第二密钥变量组中的各个所述密钥变量随机插入至所述可执行文件中的不同位置处。4.根据权利要求3所述的密钥处理方法,其特征在于,所述对所述待编译重构代码进行编译之前,还包括:根据目标需求在所述待编译重构代码的预设位置处预留出存储空间,使得编译后输出的所述可执行文件在相应位置处具有相应的存储空间。5.根据权利要求4所述的密钥处理方法,...

【专利技术属性】
技术研发人员:侯良伟李卫明黄景醒
申请(专利权)人:杭州弗兰科信息安全科技有限公司
类型:发明
国别省市:

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

1