CN116150714A - 用于软件开发数据的安全管理方法 - Google Patents

用于软件开发数据的安全管理方法 Download PDF

Info

Publication number
CN116150714A
CN116150714A CN202310423705.3A CN202310423705A CN116150714A CN 116150714 A CN116150714 A CN 116150714A CN 202310423705 A CN202310423705 A CN 202310423705A CN 116150714 A CN116150714 A CN 116150714A
Authority
CN
China
Prior art keywords
nodes
node
edge
scrambling
function
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202310423705.3A
Other languages
English (en)
Other versions
CN116150714B (zh
Inventor
秦少卿
张梓韦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuxi Hongding Software Technology Co ltd
Original Assignee
Wuxi Hongding Software Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Wuxi Hongding Software Technology Co ltd filed Critical Wuxi Hongding Software Technology Co ltd
Priority to CN202310423705.3A priority Critical patent/CN116150714B/zh
Publication of CN116150714A publication Critical patent/CN116150714A/zh
Application granted granted Critical
Publication of CN116150714B publication Critical patent/CN116150714B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/14Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Technology Law (AREA)
  • Multimedia (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)

Abstract

本发明涉及用于电子数字数据处理技术领域,具体涉及用于软件开发数据的安全管理方法,包括:利用软件的源代码中实现不同功能的部分进行模块划分,获得若干个功能模块,利用功能模块之间的函数调用关系,将功能模块作为节点构建图结构,根据图结构中各节点之间的边权以及连接关系进行置乱并获得置乱路径,并对置乱后的源代码数据进行加密,将置乱路径作为置乱加密部分的密钥。本发明利用源代码中各功能模块之间的函数关系对功能模块进行置乱有效提高源代码信息的隐藏效果,增强了对源代码的加密效果。

Description

用于软件开发数据的安全管理方法
技术领域
本发明涉及电子数字数据处理技术领域,具体涉及用于软件开发数据的安全管理方法。
背景技术
随着计算机技术的发展,计算机程序在不同领域企业中发挥着重要作用,比如软件开发中程序为开发基础,对于企业在软件开发过程而言,所编写的代码是宝贵的,涉及着企业的核心技术,一旦源代码被获取,企业丧失核心技术,同时还会涉及到知识产权纠纷。所以在企业在软件开发过程中,需要保护软件源代码的安全性,即对代码进行管理。
完整代码信息主要表现为功能代码本身以及对应组合关系,现有代码加密主要针对代码功能表现进行代码置乱,比如常见利用多线性配对方法进行代码分段置乱以及重组,即进行代码分段置乱加密。由于实际代码的运行是通过函数的循环调用实现程序运行,此时源代码的信息组成为不同函数以及函数之间的调用关系,导致不同功能代码之间存在对应的联系关系,但是一般的代码置乱过程没有考虑功能代码之间的联系,导致置乱后的代码组合同样存在源代码信息泄露的可能,致使代码加密效果不佳。
发明内容
本发明提供用于软件开发数据的安全管理方法,以解决现有的问题。
本发明的用于软件开发数据的安全管理方法采用如下技术方案:
本发明一个实施例提供了用于软件开发数据的安全管理方法,该方法包括以下步骤:
获取软件开发的源代码数据,将源代码划分为若干个包含多个函数的功能模块,将任意一个功能模块作为一个节点,将所有节点根据函数的异同进行节点连接构建图结构,将任意连接的两个节点之间的连接关系记为边;
将任意一条边对应两个节点中所含有相同函数存在于整个图结构中节点的数量与图结构中节点数量的比值记为第一边权因子,将相同函数在图结构出现在的次数记为重要性,将任意边对应的两个节点中所包含相同函数的重要性均值记为第二边权因子,根据第一边权因子对第二边权因子的调整校正结果获得第三边权因子;
将任意边对应的两个节点中所存在相同函数的种类数量记为第一影响,将任意一条边对应两个节点之间函数调用次数记为第二影响,根据第一影响、第二影响、第三边权因子的融合结果获得边权;
根据边与节点之间的最短路径距离记为边-节点距离,将边权与边-节点距离之间的比例关系记为节点连接关系因子,将两个节点之间任意最短路径上所有边的节点连接关系因子均值记为第一节点连接关系,将两个节点之间所有最短路径的第一节点连接关系均值记为第二节点连接关系;
选取起始节点,根据起始节点与图结构中其他节点的第二节点连接关系获取目标节点,并根据目标节点与其他节点的第二节点连接关系获取新的目标节点,以此类推获得置乱路径,并将与其他节点不存在相同函数的节点按照在源代码中的顺序排列在所得置乱路径之后获得最终置乱路径,根据最终置乱路径的排列顺序获得置乱后的节点序列;
对置乱后的节点序列进行编码加密并获取密钥,实现对源代码的置乱以及加密。
进一步的,所述图结构,获取方法如下:
首先构建一个常见的功能注释关键词字典,然后在代码中进行关键词搜索,最后利用搜素到的关键词进行代码分段,即将一个关键词与下一个关键词之间的代码划分为一个功能模块;
将任意一个功能模块作为一个节点,将含有相同函数的节点之间的连接关系记为边;则有节点与边构建获得图结构。
进一步的,所述第三边权因子,获取方法如下:
Figure SMS_1
其中,第一影响
Figure SMS_2
表示第j条边对应两个节点中所存在相同函数的种类数量,
Figure SMS_6
表 示第j条边对应两个节点中相同函数存在于整个图结构中节点数量,
Figure SMS_8
表示图结构中节点 的数量,重要性
Figure SMS_4
表示第z种相同函数在源代码中存在次数,第一边权因子
Figure SMS_5
表示第j条边 对应两个节点的相同函数在图结构中的应用范围,第二边权因子
Figure SMS_7
即表示重要性
Figure SMS_9
的均值,第三边权因子
Figure SMS_3
表示第j条边的第一边权因子对第二边权因子的调整校正结 果。
进一步的,所述边权,获取方法如下:
Figure SMS_10
其中,第一影响
Figure SMS_11
表示第j条边对应两个节点中所存在相同函数的种类数量,第二 影响
Figure SMS_12
表示第j条边对应节点包含函数的调用关系对边权的影响,
Figure SMS_13
即表示第j条边对应 的边权,
Figure SMS_14
表示第三边权因子。
进一步的,所述第二节点连接关系,获取方法如下:
Figure SMS_15
其中,n表示任意两个节点之间的最短路径的数量,N表示任意两个节点之间的最 短路径, K表示两个节点之间所对应边的边权;
Figure SMS_16
表示对应任意两个节点之间没有直接 连接,
Figure SMS_17
表示任意两个节点的第t个最短路径中第x个边对应的边权,边-节点距离
Figure SMS_18
表示 任意两个节点的第t个最短路径中第x个边与两节点之间最短路径距离,节点连接关系因子
Figure SMS_19
表示任意两个节点的第t个最短路径中第x个边所对应两个节点之间的连接关系, 第一节点连接关系
Figure SMS_20
表示任意两个节点的第t个最短路径中N个边的边权 共同反映对应这两个节点之间的连接关系,第二节点连接关系f则表示任意两个节点之间 所有最短路径包含边权所反映的两节点之间的连接关系。
进一步的,所述置乱后的节点序列,获取方法如下:
获取置乱路径的起点:在所有节点中随机选择一个节点起始节点;
确定置乱路径过程中下一个节点:首先获取图结构中起始节点以外的节点中,与起始节点之间的第二节点连接关系最小的节点,记为目标节点,以此获得了起始节点和目标节点的置乱路径,然后获取在所有未获得置乱路径的节点中,选择与目标节点之间的第二节点连接关系最小的节点,作为新的目标节点,需要说明的是,存在多个节点连接关系最小的节点时,随机选择一个节点作为新的目标节点;
确定所有节点:在完成一个目标节点的确定和迭代更新后,利用新的目标节点重复上述步骤,以此类推,确定所有节点之间的置乱路径;
另外,由于源代码中所有功能模块可能存在与其他功能模块之间没有相同函数的情况,将与其他功能模块之间没有相同函数的对应节点,按照在源代码中的顺序,直接排列在所得置乱路径之后,获得最终的置乱路径,根据最终置乱路径中节点的排列顺序获得置乱后的节点序列。
进一步的,所述实现对源代码的置乱以及加密,包括的具体步骤如下:
在完成对功能模块的置乱后,对置乱后的节点序列每一个单独的节点所包含的源代码数据直接利用霍夫曼编码进行加密,输入所有功能模块的源代码数据,输出对应编码信息,此时获得最终密文数据为所有功能模块的编码数据,对应密钥为编码序列与源代码字符的对应表,以及功能模块的置乱顺序;
软件开发数据中代码包含基本所有的有效信息,此时利用上述过程对源代码进行加密,对加密后的密文数据进行留档保存,且赋予管理人员密钥,用于源代码的提取,实现对源代码的置乱以及加密。
本发明的技术方案的有益效果是:
(1)根据功能模块之间的关系确定置乱路径,使得置乱后相邻功能模块之间的联系最小,避免了功能模块之间的相同函数、或者函数之间的调用关系对源代码信息的暴露,有效提高源代码信息的隐藏效果。
(2)利用功能模块之间的函数关系构建图结构以及对应连接边权,并利用图结构中节点连接路径确定所有节点关系,即能够获得所有节点之间的关系,便于后续置乱路径的确定。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明用于软件开发数据的安全管理方法的步骤流程图;
图2为功能模块连接示意图;
图3为节点连接示意图。
具体实施方式
为了更进一步阐述本发明为达成预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明提出的用于软件开发数据的安全管理方法,其具体实施方式、结构、特征及其功效,详细说明如下。在下述说明中,不同的“一个实施例”或“另一个实施例”指的不一定是同一实施例。此外,一或多个实施例中的特定特征、结构或特点可由任何合适形式组合。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。
下面结合附图具体的说明本发明所提供的用于软件开发数据的安全管理方法的具体方案。
请参阅图1,其示出了本发明一个实施例提供的用于软件开发数据的安全管理方法的步骤流程图,该方法包括以下步骤:
步骤S001,获取程序源代码作为需要加密处理的原始数据。
在软件程序开发过程中,会产生大量的开发数据,一般需要对开发数据进行管理,其中每一期完成开发的软件源代码具有完整的开发思想以及相应开发成果,所以需要对源代码进行加密处理,所以将完成一期开发的程序源代码作为后续进行加密处理的对象。
步骤S002,根据源代码中包含多个函数的功能模块对源代码进行分段处理。
软件开发代码信息主要表现为代码实现过程中不同功能之间的实现关系,所以加密过程主要针对不同功能块之间的关系,其中功能块之间函数及函数表现直接影响着功能块之间的关系。所以本实施例根据代码功能进行分块,并根据功能模块之间函数关系构建图结构,基于图结构的边关系确定代码置乱路径。
通常情况下,一个软件的源代码含有许多个不同函数,其中软件源代码中某个功能的实现对应了一个功能模块,而一个功能模块由多个函数组成;另外,通常情况下,对源代码进行加密主要通过隐藏代码功能来实现,即对降低每一个功能模块代码的可读性,或者改变代码组成,实现代码的加密。
所以在加密之前首先在源代码中根据代码功能模块进行分段,基于功能模块注释,在源代码中搜索获得每一个功能模块,然后将每一个功能模块进行分割,从而实现基于功能模块的源代码分段,对源代码进行划分为功能模块的具体过程为:
首先构建一个常见的功能注释关键词字典;
然后在代码中进行关键词搜索;
最后利用搜素到的关键词进行代码分段,即将一个关键词与下一个关键词之间的代码划分为一个功能模块。
至此,完成对源代码的模块划分,获得若干个包含多个函数的功能模块,将所划分 的功能模块的数量记为
Figure SMS_21
步骤S003,根据功能模块函数关系构建图结构,并利用图节点之间的关系确定功能模块置乱路径。
在将源代码分段后,则需要对其进行置乱而实现代码加密。在代码分段隐藏中,现有技术主要利用多线性配对方法进行分段置乱以及重组,此时所加密的信息仅仅是模拟功能模块之间的组合关系,但是由于代码的运行是通过函数的循环调用实现程序运行,此时源代码的信息组成为不同函数以及函数之间的调用关系,所以在加密过程中需要同时对函数以及函数的调用关系进行隐藏。
在上述过程所获得的功能模块中,所实现一个功能需要多个函数,所以一个功能模块包含多个函数,并且存在函数的调用关系,同时不同功能模块之间可能存在多个相同函数,使得功能模块之间具有函数以及函数调用关系,从而暴露了原始代码功能模块之间的关系,同时也是多线性配对方法未曾考虑的问题,导致置乱后的相邻功能模块存在源代码信息的暴露可能性。所以本实施例需要根据功能模块之间的函数关系进行整体代码信息的隐藏。
(1)构建图结构。
在每一个功能模块中对应包含多个函数,此时不同功能模块中可能存在相同的函数,即相同的函数将不同的功能模块联系起来,并且功能模块中函数之间具有调用关系,不同功能模块中存在的相同函数表现为对该函数的多次调用。此时根据模块中函数以及函数调用关系主要表现为两功能模块之间的对应关系,为了对所有功能模块对应关系的同一表示,本实施例以所划分的任意一个功能模块为一个节点,将所有节点中存在相同函数的节点进行连接而构建图结构,利用图结构中节点特征以及节点的连接关系反应功能模块之间的关系,便于后续功能模块置乱。
所述图结构如图2所示,其中A、B、C、D分别表示4个功能模块,功能模块A中包含函数H1、H2、H3,功能模块B中包含函数H4、H1、H5,所以A、B功能模块之间具有相同函数H1,然后将A、B功能模块连接,同理,连接所有具有相同函数的功能模块,获得对应图结构。
获取所构建图结构中任意一条边对应两个节点中所存在相同函数的种类数量,以及任意一条边对应两个节点中所含有相同函数存在于整个图结构中节点的数量,并统计图结构中各函数所出现的次数。
(2)边权。
上述步骤通过功能模块之间的相同函数连接而构建图结构,但是在实际功能模块中,功能模块之间可能存在多个相同函数,并且每一个功能模块包含的多个函数具有调用关系,导致不同功能模块之间的连接关系不同。因为源代码的置乱目的在于隐藏功能模块之间的关系,所以为了最大程度的对功能模块之间的关系进行隐藏,首先需要利用模块之间的连接关系,确定图结构的边权。
另外,获取调用关系对边权的影响,所述调用关系针对边所对应的节点中的所有函数,一个节点中的函数被另一个节点调用一次称为一个调用关系,比如,一条边对应A、B节点,A节点中一个函数被B节点调用一次,或者B节点中一个函数被A节点调用一次,则表示A、B节点之间具有一个调用关系。此时节点中函数的调用关系对边权的影响即为节点之间调用关系的数量,调用关系越多,对边权的影响越大,其中调用关系越多,节点之间的联系越大,对应边权越大。
则将第j条边对应两个节点包含函数的调用关系对边权的影响记为边权影响因子
Figure SMS_22
,即为第j条边对应两个节点之间函数调用的次数。
所述边权主要表示节点(即功能模块)之间所包含函数关系,相同函数越多,节点之间的相似度越大,对应边权越大,函数调用关系越一致,节点之间的联系越大,对应的边权越大。
图结构中任意两个连接的节点之间的边对应的边权的获取方法为:
Figure SMS_23
其中,第一影响
Figure SMS_25
表示第j条边对应两个节点中所存在相同函数的种类数量,其值 越大,对应边权越大。
Figure SMS_28
表示第j条边对应两个节点中相同函数存在于整个图结构中节点数 量,
Figure SMS_30
表示图结构中节点的数量,第一边权因子
Figure SMS_24
表示第j条边对应两个节点的相同函数在 图结构中的应用范围,其值越大,对应函数应用范围越广,所反映的边权越大;重要性
Figure SMS_29
表 示第z种相同函数在源代码中存在次数,其值越大,对应函数越重要,其反应的边权越大,
Figure SMS_31
即表示
Figure SMS_32
中相同函数的重要性对边权的影响。第二影响
Figure SMS_26
表示第j条边对应节 点包含函数的调用关系对边权的影响,
Figure SMS_27
即表示第j条边对应边权。
(3)置乱路径。
根据上述步骤获得图结构中的边权,在实际代码置乱过程后,密文中相邻的功能函数之间的联系需要尽量小,以保证原始代码信息的高效隐藏。此时上述过程所获得边权即可用于功能模块的置乱。
1)节点关系。
在功能模块置乱过程中,在确定一个功能模块以后,需要根据边权确定下一个功能模块,但是在实际图结构中并不是所有节点之间都存在边,所以上述边权并不能完整的表示所有节点之间的关系。此时为了利用节点之间的关系对其进行置乱,首先需要获得所有节点之间的关系。
本实施例根据节点之间边的传递关系,以节点之间直接连接或者间接连接确定节点之间的关系。节点之间直接连接时,对应关系为连接边权,节点之间间接连接时,对应关系则利用节点之间间接连接边的边权表示,如图3所示,节点A、C之间的连接关系为间接连接,节点A、B之间的连接关系为直接连接,且节点B、C节点之间的连接关系也为直接连接,则A、C之间的间接连接关系利用节点A、B边权以及节点B、C边权表示。
另外,利用图结构中的广度优先算法,获得任意两个节点之间的最短路径,即最短路径经过的边的数量,记为N。
为了避免节点置乱后联系较多的节点之间仍然存在较大的关联,需要根据节点之 间的连接关系判断节点之间的关联性,以保证后续对节点的置乱效果,将节点之间的连接 关系记为第二连接关系,则第二节点连接关系
Figure SMS_33
的获取方法为:
Figure SMS_34
其中,n表示任意两个节点之间的最短路径的数量,N表示任意两个节点之间的最 短路径,两节点直接连接时,对应的连接距离为1,即两节点经过一条边距离,最短路径
Figure SMS_37
时,对应任意两个节点之间连接关系即为对应边权K;
Figure SMS_39
表示对应任意两个节点 之间没有直接连接,此时利用这两个节点之间实际最短路径的边权表示其节点关系,并且 这两个节点之间的最短路径可能存在多条,此时
Figure SMS_41
表示任意两个节点的第t个最短路径中 第x个边对应的边权,边-节点距离
Figure SMS_35
表示任意两个节点的第t个最短路径中第x个边与两 节点之间最短路径距离,其中边与节点直接相连时对应最短路径距离为1,第x个边与节点 之间每增加一个节点,对应的最短路径距离增加1,且
Figure SMS_38
越大,第x个边所对应两个节点之 间关系程度就越小,节点连接关系因子
Figure SMS_40
表示任意两个节点的第t个最短路径中第x 个边所对应两个节点之间的连接关系,第一节点连接关系
Figure SMS_42
表示任意两个 节点的第t个最短路径中N个边的边权共同反映这两个节点之间的连接关系,第二节点连接 关系
Figure SMS_36
则表示任意两个节点之间n个最短路径包含边权所反映两 节点之间的关系,即表示为f,反映了图结构中任意两个节点之间的关联性的大小。
至此,获得任意两个节点之间的连接关系,此时在置乱过程中需要相邻节点之间的节点连接关系f最小,即可利用上述步骤获得的节点之间的联系进行置乱路径的选择,便于降低置乱后相邻功能模块之间的联系,提高源代码信息的隐藏效果。
2)置乱路径。
通过获取图结构中所有节点之间的连接关系
Figure SMS_43
,确定了所有节点之间的连接关系 大小,即确定开发代码中所有功能模块之间的关系,在实际置乱过程中相邻的功能模块之 间的关系越小,源代码信息隐藏效果越好。所以此时需要根据功能模块对应图节点直接的 关系,确定其置乱顺序。具体过程为:
获取置乱路径的起点:在所有节点中随机选择一个节点作为起始节点;
确定置乱路径过程中下一个节点:为了置乱后功能模块之间的联系最小,需要利用节点之间的第二节点连接关系确定置乱路径,两个节点之间的连接关系越强,在置乱后这两个节点相邻的可能性就应该越小,首先获取图结构中起始节点以外的节点中与起始节点之间的第二节点连接关系最小的节点,记为目标节点,然后获取在所有未确定置乱路径的节点中,选择与目标节点之间的第二节点连接关系最小的节点,作为新的目标节点;需要说明的是,当存在多个节点连接关系最小的节点时,随机选择一个节点作为新的目标节点;
确定所有节点:在完成一个目标节点的确定和迭代更新后,利用新的目标节点重复上述步骤继续选择迭代后新的目标节点,以此类推,确定所有节点之间的置乱路径;
另外,由于源代码中所有功能模块可能存在与其他功能模块之间没有相同函数的情况,将与其他功能模块之间没有相同函数的对应节点,按照在源代码中的顺序,直接排列在所得置乱路径之后,获得最终的置乱路径,根据最终置乱路径中节点的排列顺序获得置乱后的节点序列。
需要说明的是,所述置乱路径为:在根据第二节点连接关系获取每一个节点的目标节点时,创建一个空集,将选取的起始节点放入空集中作为空集的第一个元素,获得新的集合,再将根据第二节点连接关系获取的起始节点对应的目标节点放入新的集合中,随后获得的所有新的目标节点按照顺序放入该集合中,最终该集合中所有节点之间排列顺序的路径即为置乱路径。
至此,利用上述处理方法,将所有源代码包含的功能模块按照所确定的置乱路径排列,即改变了所有节点(即功能模块)的位置关系,实现源代码的置乱加密。其中所获得的置乱位置中,基于节点之间关系所确定的相邻功能模块之间的联系最小,避免了功能模块之间的相同函数、或者函数之间的调用关系对源代码信息的暴露,有效提高源代码信息的隐藏效果。
步骤S004,对源代码置乱后单独的功能模块进行编码加密获得加密后的密文数据和密钥。
根据上述步骤对节点的置乱实现了对源代码中所有对应的功能模块进行置乱,将置乱前后节点之间的对应关系作为密钥,该过程隐藏了源代码之间的关联方面的有效信息,但是所述功能模块中同样包含源代码信息,此时为了进一步对源代码信息的隐藏,本步骤对所有功能模块中含有的源代码进行单独加密。
在完成对功能模块的置乱后,对每一个单独的功能模块直接利用现有的霍夫曼编码,输入所有功能模块的源代码数据,输出对应编码信息,此时获得最终密文数据为所有功能模块的编码数据,对应密钥为编码序列与源代码字符的对应表,以及功能模块的置乱顺序。
软件开发数据中代码包含基本所有的有效信息,此时利用上述过程对源代码进行加密,对加密后的密文数据进行留档保存,且赋予管理人员密钥,用于源代码的提取;
对密文数据进行还原时,根据霍夫曼编码将编码信息还原为源代码数据,并根据以置乱前后节点之间的对应关系作为的密钥,将源代码数据中各功能模块的顺序还原。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (4)

1.用于软件开发数据的安全管理方法,其特征在于,该方法包括以下步骤:
获取软件开发的源代码数据,将源代码划分为若干个包含多个函数的功能模块,将任意一个功能模块作为一个节点,将所有节点根据函数的异同进行节点连接构建图结构,将任意连接的两个节点之间的连接关系记为边;
将任意一条边对应两个节点中所含有相同函数存在于整个图结构中节点的数量与图结构中节点数量的比值记为第一边权因子,将相同函数在图结构出现在的次数记为重要性,将任意边对应的两个节点中所包含相同函数的重要性均值记为第二边权因子,根据第一边权因子对第二边权因子的调整校正结果获得第三边权因子;
将任意边对应的两个节点中所存在相同函数的种类数量记为第一影响,将任意一条边对应两个节点之间函数调用次数记为第二影响,根据第一影响、第二影响、第三边权因子的融合结果获得边权;
根据边与节点之间的最短路径距离记为边-节点距离,将边权与边-节点距离之间的比例关系记为节点连接关系因子,将两个节点之间任意最短路径上所有边的节点连接关系因子均值记为第一节点连接关系,将两个节点之间所有最短路径的第一节点连接关系均值记为第二节点连接关系;
选取起始节点,根据起始节点与图结构中其他节点的第二节点连接关系获取目标节点,并根据目标节点与其他节点的第二节点连接关系获取新的目标节点,以此类推获得置乱路径,并将与其他节点不存在相同函数的节点按照在源代码中的顺序排列在所得置乱路径之后获得最终置乱路径,根据最终置乱路径的排列顺序获得置乱后的节点序列;
对置乱后的节点序列进行编码加密并获取密钥,实现对源代码的置乱以及加密;
所述第三边权因子,获取方法如下:
Figure QLYQS_1
其中,第一影响
Figure QLYQS_2
表示第j条边对应两个节点中所存在相同函数的种类数量,/>
Figure QLYQS_6
表示第j条边对应两个节点中相同函数存在于整个图结构中节点数量,/>
Figure QLYQS_8
表示图结构中节点的数量,重要性/>
Figure QLYQS_3
表示第z种相同函数在源代码中存在次数,第一边权因子/>
Figure QLYQS_5
表示第j条边对应两个节点的相同函数在图结构中的应用范围,第二边权因子/>
Figure QLYQS_7
即表示重要性/>
Figure QLYQS_9
的均值,第三边权因子/>
Figure QLYQS_4
表示第j条边的第一边权因子对第二边权因子的调整校正结果;
所述边权,获取方法如下:
Figure QLYQS_10
其中,第一影响
Figure QLYQS_11
表示第j条边对应两个节点中所存在相同函数的种类数量,第二影响
Figure QLYQS_12
表示第j条边对应节点包含函数的调用关系对边权的影响,/>
Figure QLYQS_13
即表示第j条边对应的边权,/>
Figure QLYQS_14
表示第三边权因子;
所述第二节点连接关系,获取方法如下:
Figure QLYQS_15
其中,n表示任意两个节点之间的最短路径的数量,N表示任意两个节点之间的最短路径, K表示两个节点之间所对应边的边权;
Figure QLYQS_16
表示对应任意两个节点之间没有直接连接,/>
Figure QLYQS_17
表示任意两个节点的第t个最短路径中第x个边对应的边权,边-节点距离/>
Figure QLYQS_18
表示任意两个节点的第t个最短路径中第x个边与两节点之间最短路径距离,节点连接关系因子
Figure QLYQS_19
表示任意两个节点的第t个最短路径中第x个边所对应两个节点之间的连接关系,第一节点连接关系/>
Figure QLYQS_20
表示任意两个节点的第t个最短路径中N个边的边权共同反映对应这两个节点之间的连接关系,第二节点连接关系f则表示任意两个节点之间所有最短路径包含边权所反映的两节点之间的连接关系。
2.根据权利要求1所述用于软件开发数据的安全管理方法,其特征在于,所述图结构,获取方法如下:
首先构建一个常见的功能注释关键词字典,然后在代码中进行关键词搜索,最后利用搜素到的关键词进行代码分段,即将一个关键词与下一个关键词之间的代码划分为一个功能模块;
将任意一个功能模块作为一个节点,将含有相同函数的节点之间的连接关系记为边;则有节点与边构建获得图结构。
3.根据权利要求1所述用于软件开发数据的安全管理方法,其特征在于,所述置乱后的节点序列,获取方法如下:
获取置乱路径的起点:在所有节点中随机选择一个节点起始节点;
确定置乱路径过程中下一个节点:首先获取图结构中起始节点以外的节点中,与起始节点之间的第二节点连接关系最小的节点,记为目标节点,以此获得了起始节点和目标节点的置乱路径,然后获取在所有未获得置乱路径的节点中,选择与目标节点之间的第二节点连接关系最小的节点,作为新的目标节点,需要说明的是,存在多个节点连接关系最小的节点时,随机选择一个节点作为新的目标节点;
确定所有节点:在完成一个目标节点的确定和迭代更新后,利用新的目标节点重复上述步骤,以此类推,确定所有节点之间的置乱路径;
另外,由于源代码中所有功能模块可能存在与其他功能模块之间没有相同函数的情况,将与其他功能模块之间没有相同函数的对应节点,按照在源代码中的顺序,直接排列在所得置乱路径之后,获得最终的置乱路径,根据最终置乱路径中节点的排列顺序获得置乱后的节点序列。
4.根据权利要求1所述用于软件开发数据的安全管理方法,其特征在于,所述实现对源代码的置乱以及加密,包括的具体步骤如下:
在完成对功能模块的置乱后,对置乱后的节点序列每一个单独的节点所包含的源代码数据直接利用霍夫曼编码进行加密,输入所有功能模块的源代码数据,输出对应编码信息,此时获得最终密文数据为所有功能模块的编码数据,对应密钥为编码序列与源代码字符的对应表,以及功能模块的置乱顺序;
软件开发数据中代码包含基本所有的有效信息,此时利用上述过程对源代码进行加密,对加密后的密文数据进行留档保存,且赋予管理人员密钥,用于源代码的提取,实现对源代码的置乱以及加密。
CN202310423705.3A 2023-04-20 2023-04-20 用于软件开发数据的安全管理方法 Active CN116150714B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310423705.3A CN116150714B (zh) 2023-04-20 2023-04-20 用于软件开发数据的安全管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310423705.3A CN116150714B (zh) 2023-04-20 2023-04-20 用于软件开发数据的安全管理方法

Publications (2)

Publication Number Publication Date
CN116150714A true CN116150714A (zh) 2023-05-23
CN116150714B CN116150714B (zh) 2023-06-27

Family

ID=86351007

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310423705.3A Active CN116150714B (zh) 2023-04-20 2023-04-20 用于软件开发数据的安全管理方法

Country Status (1)

Country Link
CN (1) CN116150714B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116389170A (zh) * 2023-06-05 2023-07-04 北京双鑫汇在线科技有限公司 一种网络信息安全管理方法
CN117150563A (zh) * 2023-10-27 2023-12-01 国建大数据科技(辽宁)有限公司 一种软件开发数据加密保护方法及系统
CN118041534A (zh) * 2024-04-12 2024-05-14 浙江金网信息产业股份有限公司 一种源码动态算子加密方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8621237B1 (en) * 2011-06-30 2013-12-31 Emc Corporation Protecting against cryptographic key exposure in source code
CN106506462A (zh) * 2016-10-18 2017-03-15 傅书豪 一种基于表单置乱的网站安全保护方法与装置
CN109857731A (zh) * 2019-01-11 2019-06-07 吉林大学 一种生物医学实体关系的文献检索系统及检索方法
CN115760126A (zh) * 2023-01-10 2023-03-07 北京厚方科技有限公司 一种金融交易信息加密方法
CN115842621A (zh) * 2023-02-21 2023-03-24 安徽汇迈信息科技有限公司 一种基于大数据与云边协同的智慧医疗系统
CN115865953A (zh) * 2023-02-17 2023-03-28 广州合利宝支付科技有限公司 一种基于跨境支付的分布式存储系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8621237B1 (en) * 2011-06-30 2013-12-31 Emc Corporation Protecting against cryptographic key exposure in source code
CN106506462A (zh) * 2016-10-18 2017-03-15 傅书豪 一种基于表单置乱的网站安全保护方法与装置
CN109857731A (zh) * 2019-01-11 2019-06-07 吉林大学 一种生物医学实体关系的文献检索系统及检索方法
CN115760126A (zh) * 2023-01-10 2023-03-07 北京厚方科技有限公司 一种金融交易信息加密方法
CN115865953A (zh) * 2023-02-17 2023-03-28 广州合利宝支付科技有限公司 一种基于跨境支付的分布式存储系统
CN115842621A (zh) * 2023-02-21 2023-03-24 安徽汇迈信息科技有限公司 一种基于大数据与云边协同的智慧医疗系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
许金超等: "基于栈状态关系的动态软件水印算法", 计算机应用 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116389170A (zh) * 2023-06-05 2023-07-04 北京双鑫汇在线科技有限公司 一种网络信息安全管理方法
CN116389170B (zh) * 2023-06-05 2023-07-28 北京双鑫汇在线科技有限公司 一种网络信息安全管理方法
CN117150563A (zh) * 2023-10-27 2023-12-01 国建大数据科技(辽宁)有限公司 一种软件开发数据加密保护方法及系统
CN117150563B (zh) * 2023-10-27 2024-02-20 国建大数据科技(辽宁)有限公司 一种软件开发数据加密保护方法及系统
CN118041534A (zh) * 2024-04-12 2024-05-14 浙江金网信息产业股份有限公司 一种源码动态算子加密方法

Also Published As

Publication number Publication date
CN116150714B (zh) 2023-06-27

Similar Documents

Publication Publication Date Title
CN116150714B (zh) 用于软件开发数据的安全管理方法
Zahur et al. Revisiting square-root ORAM: efficient random access in multi-party computation
Boemer et al. MP2ML: A mixed-protocol machine learning framework for private inference
KR102667837B1 (ko) 고정밀 프라이버시 보호 실가 함수 평가
US5675652A (en) Computer readable device implementing a software-efficient pseudorandom function encryption
CN104335218B (zh) 使用基函数编码来保护可访问的系统
US11775658B2 (en) Linking encrypted datasets using common identifiers
Fountoulakis et al. Sharp load thresholds for cuckoo hashing
CN107145799A (zh) 一种数据脱敏方法及装置
CN100576227C (zh) 一种软件加密注册防盗版方法
Barthe et al. A probabilistic separation logic
CN106131139B (zh) 一种云关系数据库的浮点数据的加密及查询方法
Cong et al. Sortinghat: Efficient private decision tree evaluation via homomorphic encryption and transciphering
Schoppmann et al. Make some room for the zeros: Data sparsity in secure distributed machine learning
CN115378693B (zh) 一种用于纵向联邦学习数据对齐的隐匿集合求交方法
CN113037488B (zh) 基于国密密码杂凑算法的保留格式加密方法及解密方法
He et al. Stretching cube attacks: improved methods to recover massive superpolies
Bian et al. He3db: An efficient and elastic encrypted database via arithmetic-and-logic fully homomorphic encryption
CN110957003B (zh) 一种面向用户隐私保护的高效基因比对方法
CN109299586A (zh) 一种离线解密激活方法、系统及存储介质
Moataz et al. Recursive trees for practical ORAM
Abdoun Design, implementation and analysis of keyed hash functions based on chaotic maps and neural networks
EP3246900B1 (en) Matrix and key generation device, matrix and key generation system, matrix coupling device, matrix and key generation method, and program
CN117461021A (zh) 用于全同态评估的计算网络转换
RU2259639C2 (ru) Способ комплексной защиты распределенной обработки информации в компьютерных системах и система для осуществления способа

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant