软件设计说明书(基于立体混淆法的数据去真遮蔽系统).doc

上传人:龙*** 文档编号:1095187 上传时间:2018-12-05 格式:DOC 页数:11 大小:673KB
下载 相关 举报
软件设计说明书(基于立体混淆法的数据去真遮蔽系统).doc_第1页
第1页 / 共11页
软件设计说明书(基于立体混淆法的数据去真遮蔽系统).doc_第2页
第2页 / 共11页
软件设计说明书(基于立体混淆法的数据去真遮蔽系统).doc_第3页
第3页 / 共11页
软件设计说明书(基于立体混淆法的数据去真遮蔽系统).doc_第4页
第4页 / 共11页
软件设计说明书(基于立体混淆法的数据去真遮蔽系统).doc_第5页
第5页 / 共11页
点击查看更多>>
资源描述

1、基于立体混淆法的数据去真遮蔽系统设计说明书1 系统简介随着信息化建设的发展,企事业单位和政府部门获取大量原始数据,为信息系统的开发和运用提供了有力的支撑。但在实际工作中,对于数据安全要求较高的单位其原始数据具有保密性特征,针对它的使用有一套严格管理措施,因此客观上严重的约束了它的应用场景和时间,难以贯穿信息系统开发、测试、培训、推广的整个流程。目前利用混淆法生成仿真数据是解决这问题的一种有效方法。混淆法是通过对原始数据的属性进行随机交换,来生成仿真数据的方法。在使用混淆法时始终存在着一对矛盾,既数据遮蔽度与数据质量之间的矛盾,数据遮蔽度是指仿真数据与原始数据的差异性,两者之间差异性越大,就越难

2、以从仿真数据中推导出原始数据,安全性越好。生成的仿真数据如果越能反映原始数据的特征,就认为数据质量越高,反之质量越差。在实际工程中如何协调兼顾两者,是混淆法需要进一步提高的方向。混淆法应用广度和深度上有一定的局限性:(1)在原有混淆法中原始数据的各个属性都独立参与混淆运算,这种处理方式在有些场景下市不合适的。一是存在意义相关的字段,比如“经纬度”和“地名”字段,如果进行单独混淆,得到的仿真数据会出现北京的某个区域的经纬度指向了新疆,数据的质量降低,甚至不可使用。二是当表的主键或唯一键为多个字段组合而成时,如果这些字段单独进行混淆,将破坏数据的逻辑性和约束关系。(2)在原有混淆法中所有数据都作为

3、同一层次进行处理,这种处理方式面对数据描述的对象存在分类或有层次关系的时候会产生低质量的仿真数据。比如某表记录了台站信息,级别高的台站通常有大量人员和物质,而级别低的台站所属人员和物质较少。如果不理会级别,生成该表的仿真数据,会出现级别高的台站和级别低的台站信息错位,影响数据质量。如果对数据进行分类,在同类中的数据进行混淆,将大大提高仿真数据的质量。(3)描述表与表之间的关联关系通过主外键实现。当主表进行数据混淆时,从表如果能够独立混淆,会进一步遮蔽数据的真实性,如果从表不参与混淆,可更大程度保障数据质量。这里就存在一个取舍的问题。针对原有混淆法的局限性,本文档提出了一种通过对数据集合的特征和

4、结构的分析,从分组、分类和深度三个维度混淆数据的新方法:立体混淆法。并根据该方法实现了基于立体混淆法的数据去真遮蔽系统 ,归纳起来系统具有如下特点:(1)能够遮蔽原始数据的真实性基于立体混淆法的数据去真遮蔽系统采用随机数组排序算法。该算法通过随机对数据属性进行排序来实现仿真数据的生成,数据混淆度高,能够有效遮蔽原始数据的真实性,防止他人通过逆推、联想等手段获取原始数据,确保数据的安全性。(2)能够扩展混淆法运用范围原有混淆法生成的仿真数据在一定程度上破坏了数据的拓扑结构,降低用户对仿真数据的体验度,因而限制该方法的运用范围。本系统针对原有混淆法提出从分组、分类和深度三个角度对混淆规则进行改进,

5、在遮蔽数据真实性的同时,尽量确保原始数据的特征和拓扑结构,提高用户体验度,扩展混淆法运用范围。(3)能够海量生成虚拟数据随着技术的发展和运用场景的变化,信息系统对仿真数据在结构和内容上将提出新的要求。通过传统的手工录入方式,将不得不大量修改记录甚至重新录入,实现起来时间长,工作量大。本文档所描述的混淆数据生成系统采用随机数组排序算法,当需求将原始数据遮蔽时,只有及时对混淆规则进行配置,就可以自动生成仿真数据,提高工作效率。2 软件设计本部分介绍基于立体混淆法的数据去真遮蔽系统的软件设计,主要包括系统的基本架构、实现流程、实现方式等。2.1 基本架构“基于立体混淆法的数据去真遮蔽系统”的基本架构

6、图 1 所示。系统采用三层体架构,由数据支撑层、系统支撑层、系统应用层组成。样本数据随机数组排序生成模块仿真数据产品分组混淆生成系统应用层系统支撑层数据支撑层分类混淆生成深度混淆生成混淆分组设置混淆分类设置混淆深度设置混淆配置数据元数据获取图 1 立体混淆法基本结构数据支撑层为系统支撑层和系统应用层提供数据支撑,包括样本数据库、仿真数据产品库和混淆配置数据库。样本数据库为包含真实数据的信息系统数据库,是为实现仿真数据提供最初的原始样本数据。混淆配置数据库用于存放设置好的混淆策略,包括分组、分类和深度等配置信息,为混淆数据的生产提供规范。仿真数据产品库存放混淆后生产的数据,将该数据作为最终数据产

7、品输出给用户。系统支撑层为系统应用层提供后台运算支撑,包括随机数组排序生成模块、元数据获取模块、分组混淆生成模块、分类混淆生成模块、深度混淆生成模块等五个指模块。随机数组排序生成模块是基础模块,为其他混淆生成方法的提供随机数据组。元数据获取模块用于读取样本数据库的结构性元数据,为用户配置混淆策略提供信息支撑。分组混淆生成模块,对数据集垂直划分,即按照混淆配置数据库中对字段进行分组,分组后按组利用随机数组排序生成模块提供的随机数组,混淆数据生成仿真数据。分类混淆生成模块,对数据集水平划分,即按照混淆配置数据库中的信息划分数据范围,在范围内利用随机数组排序生成模块提供的随机数组,混淆数据生成仿真数

8、据。深度混淆生成模块按照混淆配置数据库中记录的主从表关系,对主从表进行同步混淆,从表的混淆能够更深度的遮蔽数据。系统应用层面向用户,包括混淆分组设置模块、混淆分类设置模块,深度混淆设置模块。混淆分组设置模块读取样本数据库中要进行混淆表的字段信息,为用户提供对字段进行分组的功能,分组信息存放到混淆配置数据库中。混淆分类设置模块,读取样本数据存在的分类或分层信息,为用户提供对数据集范围划分功能,分类信息存放到混淆配置数据库中。深度混淆设置模块读取样本数据库中的混淆表的从表信息,根据用户需求开启或关闭从表的同步混淆,该信息存放到混淆配置数据库中。2.2 实现思路开始结束设置是否进行数据深度混淆设置数

9、据记录分类条件实现分类设置数据字段分组以数据范围对表数据分类对表数据分组混淆是否进行深度混淆对从表数据进行混淆图 2 立体混淆法基本思路(1)用户通过元数据获取模块,获取表与表之间的主从关系,并以其为依据结合需求,设置是否对从表或者那些从表同步进行混淆。(2)用户通过元数据获取模块,获取数据集的结构性元数据,并以其为依据对字段进行分组,分组结果保存到混淆配置数据库中,为分组混淆提供依据;(3)用户通过元数据获取模块,获取数据集的结构性元数据,并以其为依据对记录划分范围,划分范围保存到混淆配置数据库中,为分类混淆提供依据;(4)按照混淆配置策略,对数据集中的记录划分范围,将范围内的数据作为数据子

10、集,调用分组混淆生成模块生成该子集的仿真数据。所有子集生成完毕后,合并数据集,生成数据产品。(5)在步骤 4 调用分组混淆生成模块时,按照混淆配置策略,对数据按照组独立混淆,混淆的次序由随机数组排序生成模块生成的随机数组确定。(6)如果用户确定了从表混淆,迭代调用本系统对从表进行混淆。2.3 实现方式2.3.1 随机数组排序法随机数组排序法是立体混淆法的核心算法,下面将介绍该算法的具体实现方法和步骤:随机数组排序法根据要混淆数据长度的需求,生成一个包含元素1.n,随机排列的数组。原始数据将该数组元素作为序号进行重新排列,从而实现数据混淆。随机数组排序法通过两个数组 vals、keys 进行同步

11、排序来实现。数组 vals 存放 n 个任意随机数,数组 keys 记录 vals 的元素序号,初始值为1.n。因为 vals 中存放的是任意随机数,所以该数组中元素的大小顺序也是随机的。对 vals 中的元素按顺序排列,原有的元素序号将发生改变,改变后的序号相对于原序号将是随机的。keys 数组记录 vals 的序号,按照 vals 序号改变的次序同步变化,那么 keys 中记录 vals 序号的元素也重新排列,且排序为随机。排序实例如图 3 所示,最终得到 keys 为分布范围为 1 到 n,包含 n 个唯一数的随机数组。具体算法的实现方式参见图 4。(1)生成长度为 n 的两个数组 ke

12、ys 与 vals。n 来自于需要混淆的记录数。(2)为数组 vals 赋值,valsi为任意随机数,注意:随机数的取值的范围尽量取大,防止出现相同随机数。(3)为数组 keys 赋值,赋值为 key=1.n,用于记录 vals 数组的序号。(4)采用冒泡法对 vals 数组进行排序,keys 数组采用 vals 的序号在排序的改变,同步进行更新。 (注:此处采用插于排序、选择排序、归并排序等方法,效果基本相同) 。(5)输出 keys 数组,作为随机排序数组。3 6 3 2 2 5 3 2 3 4 6 9 3 4 2 4 2 v a l s :k e y s :2 4 2 2 5 3 3 4

13、 6 3 6 3 2 9 3 4 2 v a l s :排 序 前排 序 后排 序 前排 序 后k e y s :1 2 3 4 5 n 3 n 2 4 1 5 图 3 随机数组排序法数据变化示意图开始根据需求生成长度为 n 的数组k e y s , v a l si v a l s j t e m p : = v a l s i v a l s i = v a l s j v a l s j = t e m pt e m p : = k e y s i k e y s i = k e y s j k e y s j = t e m pNYYYi = i + 1j = j + 1NNN图 4

14、随机数组排序法算法流程2.4.1 分组混淆法分组混淆法是针对字段之间包含强相关信息,参与混淆后破坏数据结构和信息,降低数据质量而提出来的一种解决方法。字段之间强相关信息主要包括以下几种:(1)主键,多个字段组合为主键,将其中字段独立混淆将违法数据约束关系。如果多字段组合为唯一约束条件,其性质与主键类似,所以也将其作为主键处理。(2)关联,字段间存在逻辑关联,如前例中“地名”和“经纬度”字段,两者必须相关才合理。(3)顺序,字段间存在前后顺序,如“人员”表中的 “出生日期”和“工作时间”字段之间, “工作时间”必然在“出生日期”之后。(4)排他,字段间存在排他关系,如“人员”表中的 “婚姻状态”

15、和“配偶”字段之间,“婚姻状态”数值为否的话, “配偶”值应当为空。 实际工程处理中,针对这种强相关信息,我们将各种强相关信息包含的字段分为一组,其他没有上述关系的字段各自独立为一组。因为首先要确保数据结构,主键包含的字段首先分组,主键字段可以包含不属于主键的字段,但其他分组不能包含主键字段;一个字段属于某个分组后,不允许属于其他分组,防止同一字段再次参与混淆运算,从而破坏前次分组;分组和分组有相关关系,可以进行合并,但分组不易过大,从而降低数据混淆效果。分组完成后,每个分组分别独立调用混淆算法生成随机数组,按照数组规定的顺序进行混淆。混淆结束后将各分组数据重新组合生成新的数据集。具体流程如图

16、 5 所示。字段分组开始结束将字段分组获取随机数组是否完成分组混淆YN将主键字段分为一组按照随机数组对该组字段进行混淆未分组字段各自独立为一组合并分组图 5 分组混淆处理流程2.4.2 分组混淆法存在分类或层次关系的数据直接参与混淆后,将破坏数据原有的类型特征和层次,从而降低数据质量,我们针对这类数据提出一种解决方法:分类混淆法。具体处理流程如图 6:开始结束将范围内数据进行混淆是否完成各个范围的数据混淆YN确定数据分类范围获取范围内的数据确定数据分层范围合并范围图 6 分类混淆处理流程(1)首先确定同层次的数据范围,各范围间不允许出现重叠,如果没有层次关系,略过该步骤;(2)如果有层次关系,

17、在层次范围内划分各类型的数据范围;如果没有层次关系,直接划分各类型的的数据范围,各范围间不允许出现重叠。(3)在将各范围的数据进行混淆。混淆处理时可以直接进行混淆,也可以按照需求调用分组混淆模块进行处理。(4)将各范围中已经完成混淆的数据进行合并,生成最终数据产品。2.4.3 深度混淆法针对存在主外键关系的表有两种情况需要讨论:(1)仅仅混淆主表的数据,而不变动从表的数据,仿真的数据与原数据近似,能够确保数据质量,但也会增加根据从表中的信息推导出主表真实数据的可能性,影响数据的安全。比如主表“人员”表进行了混淆,但从表“任职经历”表没有进行混淆,也有可能根据某人的任职经历推导出他的个人信息;(

18、2)在混淆主表数据的同时,对从表也进行混淆,仿真的数据得到了深层次的混淆,很难再从表的数据推导主表的真实信息,确保了数据的安全。但实际工程处理中,从表进行混淆后,常常导致主表信息质量的降低,例如有主表“设备”和从表“设备电源” ,从表“设备电源”中的数据进行混淆后,可能出现某大型设备配置小型电源,而小型设备确配置了大型电源的情况,降低了用户对数据良好的体验性。从表是否与主表同步进行混淆,需要用户进行酌情考虑。如果从从表不能推导出主表信息,建议不要对从表的数据进行混淆,毕竟高质量的数据,更容易获得用到良好体验。本文将从表参与主表混淆称之为深度混淆,具体如图 7 所示:开始结束对从表数据进行混淆Y

19、是否进行深度混淆对主表数据进行混淆获取有外键关系的从表是否完成从表混淆Y NN图 7 深度混淆处理流程(1)首先确定同层次的数据范围,各范围间不允许出现重叠,如果没有层次关系,略过该步骤;(2)如果有层次关系,在层次范围内划分各类型的数据范围;如果没有层次关系,直接划分各类型的数据范围,各范围间不允许出现重叠。(3)在将各范围的数据进行混淆。混淆处理时可以直接进行混淆,也可以按照需求调用分组混淆模块进行处理。(4)将各范围中已经完成混淆的数据进行合并,生成数据产品。3 使用说明3.1 使用环境本系统是采用 Delhpi7.0 开发的,支持的数据库是 Oracle10g,可在 windows X

20、P、 window2007 等操作系统中运行。3.2 使用流程本系统可用于对原始数据采用混淆方式生成仿真数据。主要工作包括:混淆深度设置、混淆分组设置、混淆数据生成。具体组织流程如图 8 所示。用 户 系 统混淆数据深度设置混淆数据分组设置混淆数据分类设置生成主从表混淆规则生成数据字段分组规则生成数据分类规则混淆数据生成结束混淆表选择获取表元数据图 8 使用流程3.2.1 选择混淆表用户选择需要进行混淆的表后,系统自动通过分析该表的结构信息,获取该表的元数据信息,为下一步混淆规则的设置提供基础。3.2.2 混淆深度设置用户在选择要混淆的主表后,首先要确定从表或者那些从表随主表进行混淆。如果从表

21、要同步混淆,对从表设置混淆规则。从表设置混淆规则的方法与主表相同,可以将此时的从表当做要混淆的主表进行配置。3.2.2 混淆分组设置系统默认将表中主键(含唯一性字段)包含的字段分为一组,将其他字段各自分组进行混淆。用户可以按照需求,任意选择字段进行分组,但主键(含唯一性字段)包含的字段必须分为一组。这样才能确保混淆后的数据满足约束关系。3.2.3 混淆分类设置系统默认将表中的所有数据分为一类进行混淆。用户可以对字段值的范围划分对数据记录进行分类,也可以通过写 SQL 语句中的 where 条件对已有记录进行分类,不属于任何分类范围的数据单独作为一类。3.2.4 混淆数据生成用户确定对数据的深度

22、、分组和分类规则后,系统依据随机数组排序法生成序列对各数据的属性按分组和分类规则进行混淆。如果确定了混淆深度,对从表也同步进行混淆。3.3 操作使用3.3.1 选择混淆表系统启动后,在列表中显示当前可以访问的表。用户选择要混淆数据的表(下文称该表为混淆表) 。系统自动读取该对象的元数据信息,为下一步混淆设置提供准备。3.3.2 混淆深度设置系统通过获取的元数据将当前混淆表的全部从表的信息展现给用户,用户可以通过点选读取该信息,做出是否进行深度混淆的判断。(1)用户如果判断不进行深度混淆,将不勾选任何从表,点击下一步后系统自动进入分组设置。(2)用户如果判断对某从表进行同步混淆,勾选该从表,并对

23、从表的混淆规则进行设置(设置操作与混淆表基本相同) 。系统在对混淆表生成仿真数据前,会同步将从表进行混淆。3.3.3 混淆分组设置系统通过获取的元数据将当前混淆表的字段信息进行展现,并自动将混淆表中的字段进行如下分组:(1)混淆表中主键或唯一键所包含的字段单独分组,即某个主键或唯一键包含的字段分为一组。防止混淆后出现违法唯一性约束条件的情况出现。(2)混淆表中其他非主键或唯一键的字段,各自独立为一组。分组将以树型方式展现,根节点为混淆表,一级节点为分组,二级节点为分组包含的字段。包含有主键或唯一键的分组为关键分组,其他分组为普通分组。用户通过对分组树进行操作实现进一步分组,操作如下:(1)用户通过拖拽二级节点到一级节点,来实现分组。当某个代表二级节点的字段被拖

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文资料库 > 毕业论文

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。