Erp环境下的云平台数据计算方法

文档序号:10660848阅读:603来源:国知局
Erp环境下的云平台数据计算方法
【专利摘要】本发明提供了一种ERP环境下的云平台数据计算方法,该方法包括:企业组织中的主用户对加密参数和业务数据表项进行定义和配置;企业组织中的所有用户对加密后的字段进行分阶段查询。本发明提出了一种ERP环境下的云平台数据计算方法,在ERP协同云平台中实现方便的数据查询,而避免了将字段解密而造成的安全问题,同时方便了企业组织内部的业务信息共享。
【专利说明】
ERP环境下的云平台数据计算方法
技术领域
[0001]本发明涉及云计算,特别涉及一种ERP环境下的云平台数据计算方法。
【背景技术】
[0002]云计算模式的出现让软件或服务的使用模式从购买转为租赁的使用模式,这为中小企业带来了利益,因为他们在获得自己所需的服务的同时无需负担软件的维护与升级开销。尤其对于生产企业,企业之间的竞争已经发展为企业组织供应链之间的竞争。为提高竞争力,各个企业都纷纷采用协作ERP平台对整个供应链进行管理。由第三方服务商进行平台的搭建和维护,企业只需付出相对廉价的租金,就可以获得同等质量的可自定义的个性化服务。企业用户在使用ERP协作云平台进行合作时,产生大量的数据,其中部分数据是企业组织之间的重要数据,称为涉密数据。保证涉密数据不被非法用户获取,使用最广泛的、最有效的方法便是对涉密数据进行加密存储,但加密操作在保证了用户信息保密性的同时却破坏了明文原有的逻辑关系,将造成数据查询的不便。无法直接通过明文在加密字段数据中进行查询。

【发明内容】

[0003]为解决上述现有技术所存在的问题,本发明提出了一种ERP环境下的云平台数据计算方法,包括:
[0004]企业组织中的主用户对加密参数和业务数据表项进行定义和配置;
[0005]企业组织中的所有用户对加密后的字段进行分阶段查询。
[0006]优选地,所述主用户对加密参数进行定义和配置,进一步包括,通过以下两种方式设置加密私钥,一种是企业组织中的所有成员企业对于同一业务数据表中同一字段使用相同的私钥进行加解密,此时由主用户在进行加密字段选择时配置私钥;另一种是对同一数据表中分属不同协作用户的业务记录使用不同的私钥进行加解密,此时加解密私钥由主用户分别与协作用户进行协商,或由协作用户进行配置;
[0007]所述所有用户对加密后的字段进行分阶段查询,进一步包括:第一步查询在平台实现,用户设置查询条件后,平台先分离出查询条件中的非空涉密字段匹配值,然后再从索引文件中获取该表中该字段的索引记录,在提取索引记录时,先判断查询者是主用户还是协作用户,协作用户查询时,增加一个组合字段匹配条件,获取了索引信息之后,再获取匹配成功的索引记录,然后使用分离之后剩余的查询匹配条件之外从业务数据表中查询出数据,从中获取与匹配成功的索引记录中拥有相同标识字段值的记录,得到平台查询的初始结果集合,并返回给用户;第二步查询在客户端进行,客户端获得初始结果集合后,在本地解密初始结果集合中的加密字段,进行明文匹配,移除其中与匹配条件不匹配的结果,得到最后的正确查询结果。
[0008]本发明相比现有技术,具有以下优点:
[0009]本发明提出了一种ERP环境下的云平台数据计算方法,在ERP协同云平台中实现方便的数据查询,而避免了将字段解密而造成的安全问题,同时方便了企业组织内部的业务信息共享。
【附图说明】
[0010]图1是根据本发明实施例的ERP环境下的云平台数据计算方法的流程图。
【具体实施方式】
[0011]下文与图示本发明原理的附图一起提供对本发明一个或者多个实施例的详细描述。结合这样的实施例描述本发明,但是本发明不限于任何实施例。本发明的范围仅由权利要求书限定,并且本发明涵盖诸多替代、修改和等同物。在下文描述中阐述诸多具体细节以便提供对本发明的透彻理解。出于示例的目的而提供这些细节,并且无这些具体细节中的一些或者所有细节也可以根据权利要求书实现本发明。
[0012]本发明的一方面提供了一种ERP环境下的云平台数据计算方法。图1是根据本发明实施例的ERP环境下的云平台数据计算方法流程图。
[0013]本发明根据ERP协作云平台的数据特性、用户操作特性,提出用于本平台的数据加密与加密字段查询方法。加密字段查询的实现由分为对文本涉密数据的加密字段查询实现和对数值型涉密数据的加密字段查询实现。
[0014]本发明的ERP协作云平台是一个为中小企业提供服务的公共服务平台,为各个ERP中企业组织之间的合作提供支撑。该平台与各个企业内部的ERP系统实现无缝衔接,为各企业组织提供完整的协作服务,内容包括:销售,售后、采购、物流管理等等。整个系统包括数据加解密、加密字段查询和私钥分发功能模块。数据加解密模块保证涉密字段安全存储在平台同时又能够让用户正常查看业务数据;加密字段查询在涉密数据明文不泄露的前提下实现快速查询;私钥分发是保证协作用户与主用户都能正常查看数据的保障机制。
[0015]平台对各个企业组织的业务数据的存储采用独立数据库模式,业务数据存储在平台之后在通过与企业内部系统之间的数据交换机制,将业务数据传递到企业的内部系统中,企业在内部系统中对信息进行处理,然后再使用数据交换机制将处理之后的信息传递到平台中;涉密数据只应被业务双方用户查看,而对于非涉密数据则直接在平台数据库中存储明文。
[0016]平台采用了由各组织自己管理和设置业务数据表的涉密数据的策略。在组织内部,主用户拥有最高的权限,可以对协作用户进行管理,可以查看所有业务数据,而协作用户只能查看与自己相关的数据,因此将涉密数据的选择配置权交给主用户。
[0017]不同企业组织间的数据类型都有差异,但所使用的基本数据类型却大致相同,对于不同类型的字段作为查询条件时,所采用的查询方式也有不同:对于数值数据,如单价、数量、调整量等数据都是采用数值数据进行存储,这些数据的查询有两类:精确查询和区间查询。对于文本数据,平台使用两种查询方式:模糊查询与精确查询。在私钥存储中,私钥只能被有权获取该私钥的企业获得,非授权用户无法获得私钥的明文。
[0018]系统采用主用户进行加密字段配置操作,私钥的设置可以分为两种,一种是企业组织中的所有成员企业对于同一业务数据表中同一字段使用相同的私钥进行加解密,此时加解密私钥由主用户在进行加密字段选择时配置私钥,另一种是对同一数据表中分属不同协作用户的业务记录使用不同的私钥进行加解密;此时加解密私钥由主用户分别与协作用户进行协商,或者由协作用户自己进行配置。
[0019]ERP云平台采用三层架构。用户界面层,用于提供自定义加密视图、私钥配置视图、以及用户数据查询视图。业务逻辑层,用于对数据进行处理,包括数据加解密、加密字段查询的处理、私钥分发的处理等内容。数据访问层,用于控制对平台数据库中数据读取、添加、修改、删除。云平台的各个模块具体描述如下:
[0020]数据自定义加密模块:提供给主用户进行自定义涉密字段配置,包括,业务数据表组合字段选择,接收主用户从业务数据表中选择用作组合字段的字段,业务数据表涉密字段添加和删除。
[0021 ]加解密模块:对明文数据使用DES加密算法和RSA算法,将数据表中的字段的属性值为单位来加密和相应的解密。
[0022]业务数据查询模块:用于在不解密数据库中数据表加密字段情况下进行数据查询,具体可分为:加密文本信息查询:当查询条件中包含涉密文本匹配条件时使用该模块进行加密字段查询,包括对文本数据的精确查询和模糊查询;涉密文本索引管理:当对业务数据表进行修改和查找时对文本索引表进行管理,包括条件新索引记录、删除索引记录、更新索引记录;数值型加密字段查询:当查询条件中包含数值型涉密匹配条件时使用该模块进行加密字段查询,包括对数值数据的精确查询和区间查询;
[0023]私钥管理与分发模块:用于生成进行涉密字段保护、加密字段查询以及用户数据查看所需的各类私钥的生成、存储与分发的功能模块,具体进一步包括:存储企业用户的RSA公钥;安全的存储企业用户的私钥,保证用户的私钥只能由本企业获取。在选择了一个数值数据字段作为加密字段字段时的操作,生成FMES私钥;实现对FMES私钥与业务私钥的安全存储。在各个企业组织在需要时安全、正确的获取私钥明文。
[0024]数据库表的主键与外键不被加密。业务数据数据表中有一个特殊字段,该字段被称为组合字段,是用于判别一条记录是与哪个协作用户相关,并且该组合字段不被加密。对存储在平台的业务数据中的涉密数据采用DES加解密算法进行加解密,而对于私钥则采用RSA算法进行加解密操作。
[0025]在对业务数据进行加密之前,首先建立加密字段的索引数据,具体包括:首先为每一个涉密字段单独建立一张索引查找表,针对文本数据,使用文本序列邻接信息生成算法进行处理,并添加其他信息后建立新索引记录集合,而数值数据则采用FMES对明文数据进行加密处理,然后添加其他信息生成新索引记录集合。索引中的每一条记录对应一个涉密字段的值,该索引记录中记录有与这条索引项对应的明文涉密字段值的索引匹配信息、位置信息、关联信息。索引匹配信息是对涉密数据明文进行邻接信息生成算法计算生成的结果或者是FMES运算得到的结果,该信息用于查询时进行匹配;位置信息表示这条索引记录对应的业务数据在业务数据表中位置。位置信息由以下几个内容组成:该业务数据表的唯一标识字段名、唯一标识字段值;关联信息是一个表示该涉密数据被哪个协作用户关联的标识字段,该字段用于协作用户查询数据时进行数据隔离,同时可以提高协作用户查询操作的效率。
[0026]在加密时,先选择业务数据表的组合字段;在涉密字段选择功能中选择需要进行加密操作的业务数据表,同时根据该数据库的表配置信息,分析出所选业务数据表中的主键与外键,并禁止对主键、外键以及组合字段进行加密选择操作;平台将用户所选的涉密字段在平台数据库中的信息生成对应的索引信息,并在客户端对涉密字段的明文数据进行加密,然后将加密后的业务数据传送到平台,更新平台的业务数据库。用户查看数据时,先在平台进行首次查询,得到初始结果集合,将初始结果集合返回给用户,在客户端进行第二次查询,得到最后的结果。
[0027]当用户进行查询时,查询分为两步,第一步查询在平台实现,用户设置查询条件后,平台先分离出查询条件中的非空涉密字段匹配值,然后再从索引文件中获取该表中该字段的索引记录。在提取索引记录时,先判断查询者是主用户还是协作用户,协作用户查询时,增加一个组合字段匹配条件,获取了索引信息之后,再通过判别算法获取匹配成功的索引记录。然后使用分离之后剩余的查询匹配条件之外从业务数据表中查询出数据,从中获取与匹配成功的索引记录中拥有相同标识字段值的记录,得到平台查询的初始结果集合,并返回给用户;第二步查询在客户端进行,客户端获得初始结果集合后,本地解密初始结果集合中的加密字段,进行明文匹配,移除其中与匹配条件不匹配的结果,得到最后的正确查询结果。
[0028]主用户自定义加密过程时,调用平台提供的自定义加密服务工具,选择需要进行加密操作的业务数据表,平台显示所有字段,对不可加密字段设置为禁止进行选择,然后主用户选择涉密字段,再配置私钥,最后对涉密数据进行加密。在业务数据配置方案中,为主用户提供了加密算法、加密方式和加密私钥的自定义方案。数据加密算法采用DES加密算法,提供了两种加密策略,一种是单字段单私钥,另一种是同表同私钥,第一种方式是主用户需要为每一个涉密字段单独设置私钥,可以重复,第二种方式是同一张表中的所有涉密字段使用相同的私钥,这个私钥可以由用户自己设置,或可以通过平台产生随机私钥,也可以使用与该表己有的涉密字段的私钥。在主用户进行了私钥设置后对私钥进行检查,判定私钥是否合法,是判定私钥的位数是否正确。
[0029]私钥分发是以平台为中心,首先在平台中需要建立企业公钥信息表、私钥信息表和私钥分发表,公钥信息表中记录该组织中各个企业的公钥,而各用户的私钥加密存储在平台数据库,加密方法为使用用户登录平台的口令,然后对私钥进行AES加密;私钥分发表中记录企业的公钥加密的需要进行分配的私钥。当主用户使用平台的数据自定义加密服务选择了一个新的涉密字段并为其设置私钥1时,先从平台中获取企业组织的公钥,用每一个企业组织的公钥对1进行加密,然后将结果添加到平台中的私钥分发表中;同样,当已有涉密字段的私钥变化时,在将业务数据表中该字段的加密字段进行更新后,将新的私钥进行加密并更新私钥分发表。当企业X登陆平台时,首先从平台获得加密字段私钥,然后用其在客户端进行解密,并将私钥明文存储在客户端,然后在查看业务数据数据表T时,先从平台的私钥分发表中,获取用X的公钥加密的用户解密T中涉密字段的私钥,然后X在自己的客户端用自己的私钥解密得到解密T中涉密字段的私钥明文,然后将平台传来的业务数据中的涉密字段解密。
[0030]以下为本发明对涉密文本信息的查询过程。
[0031]使用文本邻接矩阵表示一个文本序列的文本邻接信息,然后将所建立的文本序列矩阵进行压缩存储,即确定获得一个压缩结果的位数m,对矩阵中的出现的每个I进行处理,将每个I所在位置用k个独立的哈希函数进行变换,将其映射到一个一维信息串的多个位置。
[0032]当用户的查询条件中有非空涉密匹配条件时,查询流程分为两步,第一步是在平台实现,是通过平台创建的索引表中的信息进行查询,保证用户的涉密数据不泄露。
[0033]步骤1:用户对是交查询,获取查询条件QS,待查询的业务数据表为L;
[0034]步骤2:查询平台数据库,获取表L的涉密字段集合SF;
[0035]步骤3:对QS进行分解,获取其中的涉密匹配字段名集合SQ,及匹配值集合VS;
[0036]步骤4:判断各个涉密匹配字段值是否为空,若都为空,则直接将送入DBMS中进行常规查询;
[0037]步骤5:若不全为空,获取QS中的非空涉密匹配字段名集合FN,以及值集合FV,以及他们的查询选项集合,查询选项为精确查询或模糊查询,同时获取中的非涉密匹配字段和空值涉密匹配字段名集合NS与值集合NF,以及查询选项集合;
[0038]步骤6:对明文匹配值进行处理,得到处理后的匹配值集合0F;
[0039]步骤7:根据涉密字段名FN与业务数据表L,获取这些涉密字段对应的索引表的表名;
[0040]步骤8:根据当前企业用户的用户类型,从对应索引文件中获取用户X能查看到的表L的涉密字段SF的索引记录,若该用户为主用户,则获取表L的涉密字段SF的所有索引记录,若用户为协作用户,则只获取与X相关的索引记录,获取的结果放入一个数据集DS中,并按标示字段升序排列,然后按以下匹配方法进行匹配,删除DS中匹配失败的记录:
[0041]当进行精确查询时,先要对匹配值采用上述文本序列邻接信息生成方法计算得到一个m位的结果St,然后与以前用明文生成的索引匹配信息So进行匹配,两者完全相同,则表示匹配成功;当进行模糊查询时,也需要先对匹配条件的值进行处理,包括先建立邻接矩阵,然后将邻接矩阵压缩,但邻接矩阵中的最后四行信息全部置0,得到压缩结果St*,接下来将与St*原有索引匹配信息St的匹配操作,匹配操作步骤为:第一步,将St*与St进行按位与操作,得到结果Sm;第二步,比较Sm与St*是否相同,相同则表示匹配成功,否则表示匹配失败。
[0042]步骤9:获取业务数据,并按升序排列,然后向下逐行与的第一行进行字段值匹配,若相同,则删除中的第一条记录,若否,则删除业务数据的当前行数据。
[0043]步骤10:判断DS是否为空,若不为空,则继续步骤8,若为空,将业务数据存入到临时表Tew,然后根据中的非空涉密匹配条件之外的其他条件查询表Tew,得到数据DL。
[0044]第二次查询是在客户端进行实现,先解密加密字段,然后进行精确查询。在进行首次查询中若是协作用户进行查询,平台添加用户类型作为查询条件,可以保证协作用户获取的初始结果中的数据不包含与该企业无关的其他协作用户的业务数据。
[0045]步骤I:获取数据库查询QS,查询表L
[0046]步骤2:从平台获取表L的涉密字段集合SF;
[0047]步骤3:分解QS并通过SF,获得QS中的非空涉密匹配字段名集合FN以及值集合FV;
[0048]步骤4:对首次查询结果DL中的加密字段信息进行解密,获得明文数据ML。
[0049]对于数值数据的加密和查询,为保证与数据自定义加密方案的统一性,采用与文本数据一样的DES算法进行加解密,对数值数据的加密字段查询,具体包括:
[0050]步骤1:主用户确定需要进行涉密字段保护的表L,并已确定数值型涉密字段SF;
[0051]步骤2:提获取表L唯一标示字段的字段名T,以及可标示该字段所属协作用户的字段0W;
[0052]步骤3:从第一条记录开始并逐次往下获取L中的记录Ai ;
[0053]步骤4:获取Ai中的涉密数据SAi,以及Ai中字段T的值,字段OW的值;
[0054]步骤5:对SAi进行FMES加密,得到加密结果Ri ;
[0055]步骤6:将表名L、标志字段名MN、标志字段值MV、索引匹配信息Ri存入一个临时数据集中;
[0056]步骤7:判断是否已将表L所有的记录都进行了处理,若未处理完所有记录,则返回步骤3;
[0057]步骤8:根据当前业务数据表表名L,涉密字段名SF生成一张新的索引表IN;
[0058]步骤9:将临时数据集中的数据批量插入到新建索引表中。
[0059]对于数值数据的精确查询,采用与文本涉密数据一样的查询方式,即在客户端,用户用该字段的私钥对匹配值进行加密,然后传输到平台,平台数据库进行常规数据库查询,但进行区间查询时就需要利用建立的索引,查询流程如下:
[0060]步骤1:用户对是交查询,获取查询条件QS,该QS查询的业务数据表为L;
[0061 ]步骤2:查询平台数据库,获取表L的涉密字段集合SF;
[0062]步骤3:判定用户的匹配条件是否有数值型字段,若有转入步骤4,数值数据的匹配字段是NF:若无则进行步骤5;
[0063]步骤4:用户X用NF的FMES私钥对匹配值进行FMES运算,并替换查询条件中字段NF的匹配值;
[0064]步骤5:将QS传到平台。平台对QS进行分解,提获取其中的数值匹配字段名集合和匹配值集合;
[0065]步骤6:判断各个涉密匹配字段值是否为空,若都为空,则直接将QS送入DBMS中进行常规查询,若不全为空,则转到步骤7;
[0066]步骤7:获取中的非空涉密匹配字段名集合NFN,以及值集合NFV,以及他们的查询选项集合,即查询选项为精确查询还是范围匹配,同时获取中的非涉密匹配字段和空值涉密匹配字段名集合与值集合,以及查询选项集合;
[0067]步骤8:根据涉密字段名NFN与业务数据表表名L,获取这些涉密字段对应的索引表表名;
[0068]步骤9:用分离出来的数值匹配字段的字段名、查询选项、匹配值或匹配范围,并根据当前企业用户的用户类型从各自对应的数值数据字段索引表中获取用户X能查看到的表L的涉密字段的索引记录,具体为:若用户类型为主用户,则获取表L的涉密字段的所有索引记录,若用户类型为协作用户,则只获取与L相关的索引记录,获取的结果放入一数据集DS中,并按标示字段升序排列。
[0069]步骤10:获取业务数据,然后向下逐行与DS的第一行进行字段的值匹配,若相同,则删除DS中的第一条记录,若不同,则删除业务数据的当前行数据。
[0070]步骤11:判断DS是否为空,若不为空,则继续步骤8,若为空,则将DS存入到临时表,然后根据QS中的非空涉密匹配条件之外的其他条件查询表,得到数据DL。
[0071]综上所述,本发明提出了一种ERP环境下的云平台数据计算方法,在ERP协同云平台中实现方便的数据查询,而避免了将字段解密而造成的安全问题,同时方便了企业组织内部的业务信息共享。
[0072]显然,本领域的技术人员应该理解,上述的本发明的各模块或各步骤可以用通用的计算系统来实现,它们可以集中在单个的计算系统上,或者分布在多个计算系统所组成的网络上,可选地,它们可以用计算系统可执行的程序代码来实现,从而,可以将它们存储在存储系统中由计算系统来执行。这样,本发明不限制于任何特定的硬件和软件结合。
[0073]应当理解的是,本发明的上述【具体实施方式】仅仅用于示例性说明或解释本发明的原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。此外,本发明所附权利要求旨在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修改例。
【主权项】
1.一种ERP环境下的云平台数据计算方法,用于为企业提供公共服务的ERP协作云平台,其特征在于,包括: 企业组织中的主用户对加密参数和业务数据表项进行定义和配置; 企业组织中的所有用户对加密后的字段进行分阶段查询。2.根据权利要求1所述的方法,其特征在于,所述主用户对加密参数进行定义和配置,进一步包括,通过以下两种方式设置加密私钥,一种是企业组织中的所有成员企业对于同一业务数据表中同一字段使用相同的私钥进行加解密,此时由主用户在进行加密字段选择时配置私钥;另一种是对同一数据表中分属不同协作用户的业务记录使用不同的私钥进行加解密,此时加解密私钥由主用户分别与协作用户进行协商,或由协作用户进行配置; 所述所有用户对加密后的字段进行分阶段查询,进一步包括:第一步查询在平台实现,用户设置查询条件后,平台先分离出查询条件中的非空涉密字段匹配值,然后再从索引文件中获取该表中该字段的索引记录,在提取索引记录时,先判断查询者是主用户还是协作用户,协作用户查询时,增加一个组合字段匹配条件,获取了索引信息之后,再获取匹配成功的索引记录,然后使用分离之后剩余的查询匹配条件之外从业务数据表中查询出数据,从中获取与匹配成功的索引记录中拥有相同标识字段值的记录,得到平台查询的初始结果集合,并返回给用户;第二步查询在客户端进行,客户端获得初始结果集合后,在本地解密初始结果集合中的加密字段,进行明文匹配,移除其中与匹配条件不匹配的结果,得到最后的正确查询结果。
【文档编号】H04L29/06GK106027509SQ201610317369
【公开日】2016年10月12日
【申请日】2016年5月13日
【发明人】郭建锋
【申请人】成都镜杰科技有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1