基于分离式存储的电子合同文件的分组加密系统及方法转让专利

申请号 : CN202110720622.1

文献号 : CN113378200B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 杨子晋陈尚浩李莲珠胡孝张军军

申请人 : 江苏翔晟信息技术股份有限公司

摘要 :

本发明公开了一种基于分离式存储的电子合同文件的分组加密方法,分组加密模块会以分离式存储的方式将分组加密后的密文保存到不同的存储数据库中,并将各个加密结果存储的位置及密文个数进行拼接得到第二拼接结果。本发明不仅能够针对分离式存储设备的不同对电子合同进行加密,使得同一文件针对不同的分离式存储设备加密的结果不同,还能够对电子合同进行分组加密,并将不同的密文存储到不同的数据库中,使得对数据的保存更加安全,不同的组对应不同的密钥解密密钥,同时相邻解密密钥相互之间还存在联系,在解密时,中间的某组的解密密钥出现错误,该组及后面所有组的密文均无法成功解密,有效提升了电子合同的安全性。

权利要求 :

1.一种基于分离式存储的电子合同文件的分组加密方法,其特征在于,所述分组加密包括以下步骤:

S1、通过存储区域检测模块对当前设备上的存储区域进行检测,区分出设备自带的存储区域与分离式存储区域;

S2、通过分离式存储区域参数获取模块获取分离式存储区域的参数,所述参数包括:类型、文件系统、容量及可用空间;

S3、在分组加密模块中,通过文件的大小和内容结构对待加密的电子合同文件进行第一分组,并对第一分组内容根据内容结构的调整规则进行最终分组,对最终分组后的待加密的电子合同文件及分离式存储区域参数获取模块得到的分离式存储区域的参数进行分组加密,分别得到对应的私钥,在分组加密模块中在对待加密的电子合同文件进行分组加密时,会将上一组文件加密后所得的私钥作为下一组文件加密时所需的公钥,所述公钥和私钥的长度都是相等且固定的,在分组加密完成后,分组加密模块会以分离式存储的方式将分组加密后的密文保存到不同的存储数据库中,并将各个加密结果存储的位置及密文个数进行拼接得到第二拼接结果;

S4、在密钥组合模块中,将分组加密模块获取的私钥按得到的先后顺序通过字符串拼接的方式进行组装拼接,拼装成一个完整的密钥,然后运用字符串拼接的方式将第二拼接结果拼接到完整密钥的前方,得到最终密钥,该最终密钥可用于对待加密的电子合同文件整体进行解密;

S5、在密钥碎片化处理模块中,对密钥组合模块获取的完整密钥进行拆卸,将其拆卸成多个长短不一的密钥碎片并进行保存;

S6、在分组解密模块中,通过对密钥碎片进行拼凑实现对最终密钥的组合,然后对最终密钥进行切割得到完整密钥,并通过完整密钥实现对待加密的电子合同文件整体进行解密,分组解密模块中用户只需记录指定位置的n个完整密钥碎片,其余位置可直接通过拼接的方式对完整密钥进行获取,根据解密后所得文件的内容结构进行解密正确性的校验,如果内容结构完整或者内容结构符合调整规则,则判定解密正确,否则判定解密失败,解密结果错误。

2.根据权利要求1所述的一种基于分离式存储的电子合同文件的分组加密方法,其特征在于:所述分组加密模块包括分组模块和加密模块,所述分组模块,通过文件的大小和内容结构这两方面因素考虑,对待加密的电子合同文件进行切割分组,得到待加密的电子合同文件的最终分组结果,所述每组的命名方式为:文件名+am,所述am中a为该待加密的电子合同文件所分组的总个数,m表示该组文件为该待加密的电子合同文件所分组中的第m组;

所述加密模块,用于对分组后的待加密的电子合同文件进行加密,得到相应的密文及私钥,并将密文的名称记为:文件名+am密文,所述am为该密文对应的编号,并以分离式存储的方式将分组加密后的密文保存到不同的存储数据库中,并将各个加密结果存储的位置及密文个数进行拼接得到第二拼接结果,所述存储数据库有x个,分别为第1存储数据库Y1、第2存储数据库Y2、…、第x存储数据库Yx,分离式存储方式如下:

V1、获取加密模块对分组后的待加密的电子合同文件加密后得到的密文及该密文的名称:文件名+am密文;

V2、获取密文名称中的am,用am中的m除以存储数据库的个数加1,即 获取运算结果中的余数大小,所述余数为整数,将该密文及相应的密文名称存储到第r存储数据库Yr中,所述1≤r≤x,所述r与所得余数相等;

V3、所有的存储数据库中均会按照数据存储时间的先后顺序对存储数据进行排序,获取步骤V2中该密文及相应的密文名称存储的数据库Yr及在该存储数据库中对应的存储数据序号z,将其记为Yrz;

V4、获取步骤V3中所有密文及相应的密文名称对应的Yrz,运用字符串拼接的方式将获取的所有Yrz进行拼接,在拼接之前,打乱Yrz与Yrz之间的位置关系,得到最终的拼接结果,记为第一拼接结果;

V5、统计待加密的电子合同文件加密后得到的密文个数a,运用字符串拼接的方式将a拼接到第一拼接结果的前面,得到第二拼接结果。

3.根据权利要求2所述的一种基于分离式存储的电子合同文件的分组加密方法,其特征在于:所述分组模块从文件的大小这方面因素考虑对待加密的电子合同文件进行分组时,

将待加密的电子合同文件的大小与分离式存储区域参数获取模块获取分离式存储区域的可用空间参数进行比较,判断该待加密的电子合同文件能否成功分组,当待加密的电子合同文件的大小小于等于分离式存储区域参数获取模块获取分离式存储区域的可用空间参数时,判定分组模块不能够对该待加密的电子合同文件进行分组,停止对该待加密的电子合同文件进行分组,对该待加密的电子合同文件分组加密失败;

当待加密的电子合同文件的大小大于分离式存储区域参数获取模块获取分离式存储区域的可用空间参数时,判定分组模块能够对该待加密的电子合同文件进行分组,进一步对该待加密的电子合同文件的大小进行判断,将其与第一预设值进行比较,若该待加密的电子合同文件的大小小于等于第一预设值时,将该待加密的电子合同文件均分成a组,并为所分的组命名,完成第一分组,命名方式为:文件名+am,所述am中a为该待加密的电子合同文件所分组的总个数,m表示该组文件为该待加密的电子合同文件所分组中的第m组,

若该待加密的电子合同文件的大小大于第一预设值时,将该待加密的电子合同文件按内容先后顺序,每第一阈值大小的内容分为一组,将其分为a组,并为所分的组命名,完成第一分组,命名方式为:文件名+am,所述am中a为该待加密的电子合同文件所分组的总个数,m表示该组文件为该待加密的电子合同文件所分组中的第m组。

4.根据权利要求3所述的一种基于分离式存储的电子合同文件的分组加密方法,其特征在于:所述分组模块获取第一分组的结果,并从内容结构这方面因素进行考虑,对第一分组的结果中各组内的内容进行调整,调整之后的结果为该待加密的电子合同文件最终的分组结果,

获取相邻两组的内容,判断前一组内容中的最后一段与后一组内容中的第一段是否为一段,判断方式为前一组内容中的最后一段的结尾是否有句号、后一组内容的第一段的段首位置是否缩进两个字,

当前一组内容中的最后一段的结尾有句号且后一组内容的第一段的段首位置缩进两个字时,则判定前一组内容结构完整;

当前一组内容中的最后一段的结尾有句号且后一组内容的第一段的段首位置未缩进两个字时,则判定前一组内容中最后一段结尾的句号表示一句段的结束,但是前一组内容中的最后一段与后一组内容中的第一段依旧为一段,即前一组内容结构不完整;

当前一组内容中的最后一段的结尾没有句号且后一组内容的第一段的段首位置缩进两个字时,判定后一组内容中的第一段格式出现错误,前一组内容结构不完整;

当前一组内容中的最后一段的结尾没有句号且后一组内容的第一段的段首位置未缩进两个字时,则判定前一组内容结构不完整,当前一组内容结构不完整时,需要对该两组的内容进行调整,调整过程需要考虑到前一组内容的总字数、后一组内容的总字数分别与第一阈值的差值Q1、Q2,及前一组内容中的最后一段字数与后一组内容中的第一段字数,分别将前一组内容中的最后一段字数、后一组内容中的第一段字数与第二预设值进行比较,若前一组内容中的最后一段字数、后一组内容中的第一段字数均大于等于第二预设值时,则不对该两组的内容进行调整;

若前一组内容中的最后一段字数大于等于第二预设值、后一组内容中的第一段字数小于第二预设值时,对Q1、Q2的大小进一步判断,如果Q1大于0且Q2小于0,则不对该两组的内容进行调整,反之,则将后一组内容中的第一段对应的内容剪切到前一组内容中最后一段对应内容之后的位置;

若前一组内容中的最后一段字数小于第二预设值、后一组内容中的第一段字数大于等于第二预设值时,对Q1、Q2的大小进一步判断,如果Q1小于0且Q2大于0,则不对该两组的内容进行调整,反之,则将前一组内容中的最后一段对应的内容剪切到后一组内容中第一段对应内容之前的位置,对Q1、Q2的大小进一步判断;

若前一组内容中的最后一段字数、后一组内容中的第一段字数均小于第二预设值时,则进一步比较前一组内容中的最后一段字数与后一组内容中的第一段字数两者之间的多少,

如果前一组内容中的最后一段字数大于等于后一组内容中的第一段字数,对Q1、Q2的大小进一步判断,

假如Q1大于0且Q2小于0,则不对该两组的内容进行调整,反之,则将后一组内容中的第一段对应的内容剪切到前一组内容中最后一段对应内容之后的位置,

如果前一组内容中的最后一段字数小于后一组内容中的第一段字数,对Q1、Q2的大小进一步判断,

假如Q1小于0且Q2大于0,则不对该两组的内容进行调整,反之,则将前一组内容中的最后一段对应的内容剪切到后一组内容中第一段对应内容之前的位置。

5.根据权利要求2所述的一种基于分离式存储的电子合同文件的分组加密方法,其特征在于:所述加密模块在对分组后的待加密的电子合同文件进行加密时,包括一下加密步骤:

A1、通过加密模块自动生成当前设备分离式存储区域的初始公钥;

A2、利用当前设备分离式存储区域的初始公钥对分离式存储区域参数获取模块获取到的分离式存储区域的参数进行加密,获取分离式存储区域参数密文及分离式存储区域的初始私钥;

A3、将分离式存储区域的初始私钥作为分组后的待加密的电子合同文件中,文件名为文件名+a1的文件对应的公钥,进而通过该公钥对文件名为文件名+a1的文件进行加密,得到文件名为文件名+a1的文件对应的密文及私钥,并将该密文的名称记为:文件名+a1密文;

A4、将文件名为文件名+a1的文件对应的私钥作为文件名为文件名+a2的文件对应的公钥,进而通过该公钥对文件名为文件名+a2的文件进行加密,得到文件名为文件名+a2的文件对应的密文及私钥,并将该密文的名称记为:文件名+a2密文;

A(m+2)、将文件名为文件名+am‑1的文件对应的私钥作为文件名为文件名+am的文件对应的公钥,进而通过该公钥对文件名为文件名+am的文件进行加密,得到文件名为文件名+am的文件对应的密文及私钥,并将该密文的名称记为:文件名+am密文;

A(m+3)、将待加密的电子合同文件各组对应的密文及步骤A2至步骤A(m+2)中所得的所有私钥进行保存,所得待加密的电子合同文件各组对应的密文即为待加密的电子合同文件进行分组加密的结果。

6.根据权利要求5所述的一种基于分离式存储的电子合同文件的分组加密方法,其特征在于:所述密钥碎片化处理模块中,对密钥组合模块获取的最终密钥进行拆卸,将其拆卸成多个长短不一的密钥碎片,其具体拆卸方法包括:B1、获取最终密钥的内容;

B2、在最终密钥中按顺序统计各个大写字母至该大写字母的下一大写字母之前所构成的片段,最后一个大写字母及之后的内容构成一个片段;

B3、判断步骤B2中所得各个片段的字符长度,将其与第三预设值进行比较,当某片段的字符长度小于第三预设值时,将该片段内容添加到前一片段中,并将该片段从步骤B2的统计中剔除;

当某片段的字符长度大于等于第三预设值时,则进一步对步骤B2中统计的片段进行处理,即将统计的片段相互之间进行比较,若存在两个或多个片段相同,则获取各个相同片段中的每一个片段与该片段的前一个片段的总长度、各个相同片段中的每一个片段与该片段的后一个片段的总长度,分别记为第一总长度、第二总长度,比较各个相同片段中的每一个片段对应的第一总长度、第二总长度的大小,将两者中的较小的值与该片段进行绑定,然后将各个相同片段中的每一个片段绑定的值进行比较,将最大的值对应的片段保留,其余的各个相同片段均按照绑定值进行相应处理,

若某相同片段绑定的值为第一总长度,则该片段与该片段的前一个片段进行拼接,使得原有的两个片段构成一个新的片段,若某相同片段绑定的值为第二总长度,则该片段与该片段的后一个片段进行拼接,使得原有的两个片段构成一个新的片段;

B4、将经步骤B3处理后的统计的片段进行保存,不同的片段即为密钥碎片。

7.根据权利要求6所述的一种基于分离式存储的电子合同文件的分组加密方法,其特征在于:用户在对分组加密的文件进行解密时,用户需要在分组解密模块中按顺序输入密钥碎片,所述分组解密模块会自动将用户输入的密钥碎片进行字符串拼接,进而得到最终密钥,

用户在输入密钥碎片的过程中,前n个密钥碎片需要完整输入,但是在进行第n个之后密钥碎片的输入时,用户只需输入各个密钥碎片的首字符,然后分组解密模块会自动在密钥碎片化处理模块保存的所有密钥碎片中筛选出首字符与用户输入的首字符相同的密钥碎片,用户可从分组解密模块筛选的密钥碎片中进行选择,用户选择的密钥碎片会自动输入;

在用户输入的过程中,分组解密模块会自动对用户输入的第一个密钥碎片进行识别,获取a的值,然后根据a的值在前n个密钥碎片中识别出前a个大写字母片段,所述每个大写字母片段包括该大写字母及该大写字母与下一大写字母之间的部分,对该a个大写字母片段进行校验,当校验成功时,分组解密模块会自动根据各个大写字母的片段信息从各个存储数据库中提取相应的密文及对应的密文名称,反之,则不对密文及对应的密文名称进行处理;

所述分组解密模块将提取的密文及对应的密文名称按照密文名称中am对应m值按从小到大的顺序对密文进行排序,并保存;

在用户输入完前n个密钥碎片后,分组解密模块会有一个校验判断,即判断用户输入的前n个密钥碎片是否正确,

当校验正确时,则用户可以继续对密钥碎片进行输入,当校验失败时,则用户不能继续对密钥碎片进行输入,已经输入的前n个密钥碎片会自动清除,需要重新输入,同时分组解密模块会将保存的密文及对应的密文名称进行删除。

8.根据权利要求7所述的一种基于分离式存储的电子合同文件的分组加密方法,其特征在于:所述分组解密模块运用完整的密钥对电子合同文件对应的各组密文进行解密的步骤如下:

C1、将最终密钥中前a+1个大写字母片段进行剔除,得到完整的密钥,根据公钥及私钥的长度将完整的密钥切割成密钥片段,并对密钥片段内进行标号,标号从0开始,相邻标号间隔为1;

C2、将0号密钥片段与1号密钥片段进行拼接,得到第一拼接密钥,用第一拼接密钥对电子合同文件的第一组密文进行解密,得到第一组解密文件并保存,将0号密钥片段作为公钥对第一解密文件进行加密,将得到的私钥作为第一私钥,将第一私钥与1号密钥片段进行比较,当两者相同时,判定数据正常,当两者不同时,判定解密错误,停止解密;

C3、将1号密钥片段与2号密钥碎片进行拼接,得到第二拼接密钥,用第二拼接密钥对电子合同文件的第二组密文进行解密,得到第二组解密文件并保存,将第一私钥作为公钥对第二解密文件进行加密,将得到的私钥作为第二私钥,将第二私钥与2号密钥片段进行比较,当两者相同时,判定数据正常,当两者不同时,判定解密错误,停止解密;

Ck、将k‑2密钥片段与k‑1号密钥片段进行拼接,得到第k‑1拼接密钥,用第二拼接密钥对电子合同文件的第k‑1组密文进行解密,得到第k‑1组解密文件并保存,将第k‑2私钥作为公钥对第k‑1解密文件进行加密,将得到的私钥作为第k‑1私钥,将第k‑1私钥与k‑1号密钥片段进行比较,当两者相同时,判定数据正常,当两者不同时,判定解密错误,停止解密;

C(k+1)、当k‑1号密钥片段为最后一个密钥片段时,停止解密;

C(k+2)、对步骤C2至步骤Ck所得的所有解密文件按顺序进行保存。

9.根据权利要求1所述的一种基于分离式存储的电子合同文件的分组加密方法,其特征在于:所述公钥与私钥是多对一的关系。

10.应用权利要求1‑9任一项所述的一种基于分离式存储的电子合同文件的分组加密方法的基于分离式存储的电子合同文件的分组加密系统,其特征在于,包括:存储区域检测模块、分离式存储区域参数获取模块、分组加密模块、密钥组合模块、密钥碎片化处理模块、分组解密模块,

所述存储区域检测模块,用于对当前设备上的存储区域进行检测,区分出设备自带的存储区域与分离式存储区域;

所述分离式存储区域参数获取模块,用于获取分离式存储区域的参数,所述参数包括:类型、文件系统、容量及可用空间;

所述分组加密模块,通过文件的大小和内容结构对待加密的电子合同文件进行第一分组,并对第一分组内容根据内容结构的调整规则进行最终分组,对最终分组后的待加密的电子合同文件及分离式存储区域参数获取模块得到的分离式存储区域的参数进行分组加密,分别得到对应的私钥,在分组加密模块中在对待加密的电子合同文件进行分组加密时,会将上一组文件加密后所得的私钥作为下一组文件加密时所需的公钥,所述公钥和私钥的长度都是相等且固定的,在分组加密完成后,分组加密模块会以分离式存储的方式将分组加密后的密文保存到不同的存储数据库中,并将各个加密结果存储的位置及密文个数进行拼接得到第二拼接结果;

所述密钥组合模块,用于将分组加密模块获取的私钥按得到的先后顺序通过字符串拼接的方式进行组装拼接,拼装成一个完整的密钥,然后运用字符串拼接的方式将第二拼接结果拼接到完整密钥的前方,得到最终密钥,该最终密钥可用于对待加密的电子合同文件整体进行解密;

所述密钥碎片化处理模块,用于对密钥组合模块获取的完整密钥进行拆卸,将其拆卸成多个长短不一的密钥碎片并进行保存;

所述分组解密模块,通过对密钥碎片进行拼凑实现对最终密钥的组合,然后对最终密钥进行切割得到完整密钥,并通过完整密钥实现对待加密的电子合同文件整体进行解密,分组解密模块中用户只需记录指定位置的n个完整密钥碎片,其余位置可直接通过拼接的方式对完整密钥进行获取,根据解密后所得文件的内容结构进行解密正确性的校验,如果内容结构完整或者内容结构符合调整规则,则判定解密正确,否则判定解密失败,解密结果错误。

说明书 :

基于分离式存储的电子合同文件的分组加密系统及方法

技术领域

[0001] 本发明涉及分组加密技术领域,具体为一种基于分离式存储的电子合同文件的分组加密系统及方法。

背景技术

[0002] 随着计算机技术的快速发展,人们对计算机技术的运用越来越广泛,但同时对信息安全存储和安全传输的要求也越来越高,当前对电子合同文件的加密方式通过只是对文
件整体进行加密,该加密方式存在一定的危险性,同时,当前的加密方式未考虑到信息的安
全存储方面。
[0003] 针对上述情况,我们需要一种基于分离式存储的电子合同文件的分组加密系统及方法,不仅能够针对分离式存储设备的不同对电子合同进行加密,使得同一文件针对不同
的分离式存储设备加密的结果不同,还能够对电子合同进行分组加密,并将不同的密文存
储到不同的数据库中,使得对数据的保存更加安全,当存储的密文收到破坏时,被破坏的密
文及之后的密文均无法被破解,有效增强了密文的安全性,而且不同的组对应不同的密钥
解密密钥,同时相邻解密密钥相互之间还存在联系,在解密时,中间的某组的解密密钥出现
错误,该组及后面所有组的密文均无法成功解密,有效提升了电子合同的安全性。

发明内容

[0004] 本发明的目的在于提供一种基于分离式存储的电子合同文件的分组加密系统及方法,以解决上述背景技术中提出的问题。
[0005] 为了解决上述技术问题,本发明提供如下技术方案:一种基于分离式存储的电子合同文件的分组加密方法,所述分组加密包括以下步骤:
[0006] S1、通过存储区域检测模块对当前设备上的存储区域进行检测,区分出设备自带的存储区域与分离式存储区域;
[0007] S2、通过分离式存储区域参数获取模块获取分离式存储区域的参数,所述参数包括:类型、文件系统、容量及可用空间;
[0008] S3、在分组加密模块中,通过文件的大小和内容结构对待加密的电子合同文件进行第一分组,并对第一分组内容根据内容结构的调整规则进行最终分组,对最终分组后的
待加密的电子合同文件及分离式存储区域参数获取模块得到的分离式存储区域的参数进
行分组加密,分别得到对应的私钥,在分组加密模块中在对待加密的电子合同文件进行分
组加密时,会将上一组文件加密后所得的私钥作为下一组文件加密时所需的公钥,所述公
钥和私钥的长度都是相等且固定的,在分组加密完成后,分组加密模块会以分离式存储的
方式将分组加密后的密文保存到不同的存储数据库中,并将各个加密结果存储的位置及密
文个数进行拼接得到第二拼接结果;
[0009] S4、在密钥组合模块中,将分组加密模块获取的私钥按得到的先后顺序通过字符串拼接的方式进行组装拼接,拼装成一个完整的密钥,然后运用字符串拼接的方式将第二
拼接结果拼接到完整密钥的前方,得到最终密钥,该最终密钥可用于对待加密的电子合同
文件整体进行解密;
[0010] S5、在密钥碎片化处理模块中,对密钥组合模块获取的完整密钥进行拆卸,将其拆卸成多个长短不一的密钥碎片并进行保存;
[0011] S6、在分组解密模块中,通过对密钥碎片进行拼凑实现对最终密钥的组合,然后对最终密钥进行切割得到完整密钥,并通过完整密钥实现对待加密的电子合同文件整体进行
解密,分组解密模块中用户只需记录指定位置的n个完整密钥碎片,其余位置可直接通过拼
接的方式对完整密钥进行获取,根据解密后所得文件的内容结构进行解密正确性的校验,
如果内容结构完整或者内容结构符合调整规则,则判定解密正确,否则判定解密失败,解密
结果错误。
[0012] 进一步的,所述分组加密模块包括分组模块和加密模块,
[0013] 所述分组模块,通过文件的大小和内容结构这两方面因素考虑,对待加密的电子合同文件进行切割分组,得到待加密的电子合同文件的最终分组结果,所述每组的命名方
式为:文件名+am,所述am中a为该待加密的电子合同文件所分组的总个数,m表示该组文件为
该待加密的电子合同文件所分组中的第m组;
[0014] 所述加密模块,用于对分组后的待加密的电子合同文件进行加密,得到相应的密文及私钥,并将密文的名称记为:文件名+am密文,所述am为该密文对应的编号,并以分离式
存储的方式将分组加密后的密文保存到不同的存储数据库中,并将各个加密结果存储的位
置及密文个数进行拼接得到第二拼接结果,
[0015] 所述存储数据库有x个,分别为第1存储数据库Y1、第2存储数据库Y2、…、第x存储数据库Yx,分离式存储方式如下:
[0016] V1、获取加密模块对分组后的待加密的电子合同文件加密后得到的密文及该密文的名称:文件名+am密文;
[0017] V2、获取密文名称中的am,用am中的m除以存储数据库的个数加1,即 获取运算结果中的余数大小,所述余数为整数,将该密文及相应的密文名称存储到第r存储数据库Yr
中,所述1≤r≤x,所述r与所得余数相等;
[0018] V3、所有的存储数据库中均会按照数据存储时间的先后顺序对存储数据进行排序,获取步骤V2中该密文及相应的密文名称存储的数据库Yr及在该存储数据库中对应的存
储数据序号z,将其记为Yrz;
[0019] V4、获取步骤V3中所有密文及相应的密文名称对应的Yrz,运用字符串拼接的方式将获取的所有Yrz进行拼接,在拼接之前,打乱Yrz与Yrz之间的位置关系,得到最终的拼接结
果,记为第一拼接结果;
[0020] V5、统计待加密的电子合同文件加密后得到的密文个数a,运用字符串拼接的方式将a拼接到第一拼接结果的前面,得到第二拼接结果。
[0021] 本发明分组加密模块按功能进一步划分成分组模块和加密模块,并在不同的模块中从多方面因素进行考虑,使得所得结果用户的使用更加便利,如:分组模块中从内容结构
方面进行考虑,则是兼顾到用户对电子合同阅读的方便问题,防止一段文字未读完,不知道
后续内容,使得内容不连贯,可能对用户的理解造成偏差。
[0022] 进一步的,所述分组模块从文件的大小这方面因素考虑对待加密的电子合同文件进行分组时,
[0023] 将待加密的电子合同文件的大小与分离式存储区域参数获取模块获取分离式存储区域的可用空间参数进行比较,判断该待加密的电子合同文件能否成功分组,
[0024] 当待加密的电子合同文件的大小小于等于分离式存储区域参数获取模块获取分离式存储区域的可用空间参数时,判定分组模块不能够对该待加密的电子合同文件进行分
组,停止对该待加密的电子合同文件进行分组,对该待加密的电子合同文件分组加密失败;
[0025] 当待加密的电子合同文件的大小大于分离式存储区域参数获取模块获取分离式存储区域的可用空间参数时,判定分组模块能够对该待加密的电子合同文件进行分组,进
一步对该待加密的电子合同文件的大小进行判断,将其与第一预设值进行比较,
[0026] 若该待加密的电子合同文件的大小小于等于第一预设值时,将该待加密的电子合同文件均分成a组,并为所分的组命名,完成第一分组,命名方式为:文件名+am,所述am中a为
该待加密的电子合同文件所分组的总个数,m表示该组文件为该待加密的电子合同文件所
分组中的第m组,
[0027] 若该待加密的电子合同文件的大小大于第一预设值时,将该待加密的电子合同文件按内容先后顺序,每第一阈值大小的内容分为一组,将其分为a组,并为所分的组命名,完
成第一分组,命名方式为:文件名+am,所述am中a为该待加密的电子合同文件所分组的总个
数,m表示该组文件为该待加密的电子合同文件所分组中的第m组。
[0028] 本发明分组模块从该待加密的电子合同文件的大小进行考虑,结合分离式存储区域参数,判断该待加密的电子合同文件能否成功分组,同时对如何进行第一分组进行判断。
[0029] 进一步的,所述分组模块获取第一分组的结果,并从内容结构这方面因素进行考虑,对第一分组的结果中各组内的内容进行调整,调整之后的结果为该待加密的电子合同
文件最终的分组结果,
[0030] 获取相邻两组的内容,判断前一组内容中的最后一段与后一组内容中的第一段是否为一段,判断方式为前一组内容中的最后一段的结尾是否有句号、后一组内容的第一段
的段首位置是否缩进两个字,
[0031] 当前一组内容中的最后一段的结尾有句号且后一组内容的第一段的段首位置缩进两个字时,则判定前一组内容结构完整;
[0032] 当前一组内容中的最后一段的结尾有句号且后一组内容的第一段的段首位置未缩进两个字时,则判定前一组内容中最后一段结尾的句号表示一句段的结束,但是前一组
内容中的最后一段与后一组内容中的第一段依旧为一段,即前一组内容结构不完整;
[0033] 当前一组内容中的最后一段的结尾没有句号且后一组内容的第一段的段首位置缩进两个字时,判定后一组内容中的第一段格式出现错误,前一组内容结构不完整;
[0034] 当前一组内容中的最后一段的结尾没有句号且后一组内容的第一段的段首位置未缩进两个字时,则判定前一组内容结构不完整,
[0035] 当前一组内容结构不完整时,需要对该两组的内容进行调整,调整过程需要考虑到前一组内容的总字数、后一组内容的总字数分别与第一阈值的差值Q1、Q2,及前一组内容
中的最后一段字数与后一组内容中的第一段字数,分别将前一组内容中的最后一段字数、
后一组内容中的第一段字数与第二预设值进行比较,
[0036] 若前一组内容中的最后一段字数、后一组内容中的第一段字数均大于等于第二预设值时,则不对该两组的内容进行调整;
[0037] 若前一组内容中的最后一段字数大于等于第二预设值、后一组内容中的第一段字数小于第二预设值时,对Q1、Q2的大小进一步判断,
[0038] 如果Q1大于0且Q2小于0,则不对该两组的内容进行调整,
[0039] 反之,则将后一组内容中的第一段对应的内容剪切到前一组内容中最后一段对应内容之后的位置;
[0040] 若前一组内容中的最后一段字数小于第二预设值、后一组内容中的第一段字数大于等于第二预设值时,对Q1、Q2的大小进一步判断,
[0041] 如果Q1小于0且Q2大于0,则不对该两组的内容进行调整,
[0042] 反之,则将前一组内容中的最后一段对应的内容剪切到后一组内容中第一段对应内容之前的位置,对Q1、Q2的大小进一步判断;
[0043] 若前一组内容中的最后一段字数、后一组内容中的第一段字数均小于第二预设值时,则进一步比较前一组内容中的最后一段字数与后一组内容中的第一段字数两者之间的
多少,
[0044] 如果前一组内容中的最后一段字数大于等于后一组内容中的第一段字数,对Q1、Q2的大小进一步判断,
[0045] 假如Q1大于0且Q2小于0,则不对该两组的内容进行调整,
[0046] 反之,则将后一组内容中的第一段对应的内容剪切到前一组内容中最后一段对应内容之后的位置,
[0047] 如果前一组内容中的最后一段字数小于后一组内容中的第一段字数,对Q1、Q2的大小进一步判断,
[0048] 假如Q1小于0且Q2大于0,则不对该两组的内容进行调整,
[0049] 反之,则将前一组内容中的最后一段对应的内容剪切到后一组内容中第一段对应内容之前的位置。
[0050] 本发明分组模块获取第一分组的结果,并从内容结构这方面因素进行考虑,对第一分组的结果中各组内的内容进行调整,调整的过程中从邻两组的内容中前一组内容中的
最后一段与后一组内容中的第一段进行判断,针对不同情况执行不同的调整方案,进而获
取最终的分组结果,尽量使得分组结果中各组中的最后一段完整,方便用户阅读理解。
[0051] 进一步的,所述加密模块在对分组后的待加密的电子合同文件进行加密时,包括一下加密步骤:
[0052] A1、通过加密模块自动生成当前设备分离式存储区域的初始公钥;
[0053] A2、利用当前设备分离式存储区域的初始公钥对分离式存储区域参数获取模块获取到的分离式存储区域的参数进行加密,获取分离式存储区域参数密文及分离式存储区域
的初始私钥;
[0054] A3、将分离式存储区域的初始私钥作为分组后的待加密的电子合同文件中,文件名为文件名+a1的文件对应的公钥,进而通过该公钥对文件名为文件名+a1的文件进行加密,
得到文件名为文件名+a1的文件对应的密文及私钥,并将该密文的名称记为:文件名+a1密
文;
[0055] A4、将文件名为文件名+a1的文件对应的私钥作为文件名为文件名+a2的文件对应的公钥,进而通过该公钥对文件名为文件名+a2的文件进行加密,得到文件名为文件名+a2的
文件对应的密文及私钥,并将该密文的名称记为:文件名+a2密文;
[0056] …
[0057] A(m+2)、将文件名为文件名+am‑1的文件对应的私钥作为文件名为文件名+am的文件对应的公钥,进而通过该公钥对文件名为文件名+am的文件进行加密,得到文件名为文件
名+am的文件对应的密文及私钥,并将该密文的名称记为:文件名+am密文;
[0058] A(m+3)、将待加密的电子合同文件各组对应的密文及步骤A2至步骤A(m+2)中所得的所有私钥进行保存,所得待加密的电子合同文件各组对应的密文即为待加密的电子合同
文件进行分组加密的结果。
[0059] 本发明加密模块中将前一组文件加密得到的私钥作为后一组文件加密的公钥,使得相邻两组密文相互联系起来,加强了各组文件之间的关系,由于解密时需要同时用到每
组文件对应的公钥与私钥,因此,为各组密文的解密做出限制,使得整个加密方式类似与菊
花链形式,一旦其中一组的私钥出现问题,会导致后续所有组的密文均无法破解,有效提升
了文件的安全性。
[0060] 进一步的,所述密钥碎片化处理模块中,对密钥组合模块获取的最终密钥进行拆卸,将其拆卸成多个长短不一的密钥碎片,其具体拆卸方法包括:
[0061] B1、获取最终密钥的内容;
[0062] B2、在最终密钥中按顺序统计各个大写字母至该大写字母的下一大写字母之前所构成的片段,最后一个大写字母及之后的内容构成一个片段;
[0063] B3、判断步骤B2中所得各个片段的字符长度,将其与第三预设值进行比较,
[0064] 当某片段的字符长度小于第三预设值时,将该片段内容添加到前一片段中,并将该片段从步骤B2的统计中剔除;
[0065] 当某片段的字符长度大于等于第三预设值时,则进一步对步骤B2中统计的片段进行处理,即将统计的片段相互之间进行比较,
[0066] 若存在两个或多个片段相同,则获取各个相同片段中的每一个片段与该片段的前一个片段的总长度、各个相同片段中的每一个片段与该片段的后一个片段的总长度,分别
记为第一总长度、第二总长度,比较各个相同片段中的每一个片段对应的第一总长度、第二
总长度的大小,将两者中的较小的值与该片段进行绑定,然后将各个相同片段中的每一个
片段绑定的值进行比较,将最大的值对应的片段保留,其余的各个相同片段均按照绑定值
进行相应处理,
[0067] 若某相同片段绑定的值为第一总长度,则该片段与该片段的前一个片段进行拼接,使得原有的两个片段构成一个新的片段,
[0068] 若某相同片段绑定的值为第二总长度,则该片段与该片段的后一个片段进行拼接,使得原有的两个片段构成一个新的片段;
[0069] B4、将经步骤B3处理后的统计的片段进行保存,不同的片段即为密钥碎片。
[0070] 本发明将完整密钥进行拆卸并保存,是为了防止完整密钥太长,导致用户无法清晰记忆,将其拆卸成长短不一的密钥碎片,一方面能够都密钥进行有效保存,且有避免了他
人对完整密钥进行窃取。
[0071] 进一步的,用户在对分组加密的文件进行解密时,用户需要在分组解密模块中按顺序输入密钥碎片,所述分组解密模块会自动将用户输入的密钥碎片进行字符串拼接,进
而得到最终的密钥,
[0072] 用户在输入密钥碎片的过程中,前n个密钥碎片需要完整输入,但是在进行第n个之后密钥碎片的输入时,用户只需输入各个密钥碎片的首字符,然后分组解密模块会自动
在密钥碎片化处理模块保存的所有密钥碎片中筛选出首字符与用户输入的首字符相同的
密钥碎片,用户可从分组解密模块筛选的密钥碎片中进行选择,用户选择的密钥碎片会自
动输入;
[0073] 在用户输入的过程中,分组解密模块会自动对用户输入的第一个密钥碎片进行识别,获取a的值,然后根据a的值在前n个密钥碎片中识别出前a个大写字母片段,所述每个大
写字母片段包括该大写字母及该大写字母与下一大写字母之间的部分,对该a个大写字母
片段进行校验,当校验成功时,分组解密模块会自动根据各个大写字母的片段信息从各个
存储数据库中提取相应的密文及对应的密文名称,反之,则不对密文及对应的密文名称进
行处理;
[0074] 所述分组解密模块将提取的密文及对应的密文名称按照密文名称中am对应m值按从小到大的顺序对密文进行排序,并保存;
[0075] 在用户输入完前n个密钥碎片后,分组解密模块会有一个校验判断,即判断用户输入的前n个密钥碎片是否正确,
[0076] 当校验正确时,则用户可以继续对密钥碎片进行输入,
[0077] 当校验失败时,则用户不能继续对密钥碎片进行输入,已经输入的前n个密钥碎片会自动清除,需要重新输入,同时分组解密模块会将保存的密文及对应的密文名称进行删
除。
[0078] 本发明在用户输入完前n个密钥碎片后,设置校验判断是为了防止他人胡乱对最终密钥进行输入,保护了电子合同的安全性,同时该校验方式还能够对用户起到提醒的作
用,在校验错误时,提醒用户输入错误,避免用户输入后续的密钥碎片且无法对文件进行解
密,进而浪费用户的时间。
[0079] 进一步的,所述分组解密模块运用完整的密钥对电子合同文件对应的各组密文进行解密的步骤如下:
[0080] C1、将最终密钥中前a+1个大写字母片段进行剔除,得到完整的密钥,根据公钥及私钥的长度将完整的密钥切割成密钥片段,并对密钥片段内进行标号,标号从0开始,相邻
标号间隔为1;
[0081] 本发明中将最终密钥中前a+1个大写字母片段进行剔除是因为第二拼接结果中包括一个Om和m个密文存储位置信息的大写字母片段。
[0082] C2、将0号密钥片段与1号密钥片段进行拼接,得到第一拼接密钥,用第一拼接密钥对电子合同文件的第一组密文进行解密,得到第一组解密文件并保存,将0号密钥片段作为
公钥对第一解密文件进行加密,将得到的私钥作为第一私钥,将第一私钥与1号密钥片段进
行比较,当两者相同时,判定数据正常,当两者不同时,判定解密错误,停止解密;
[0083] C3、将1号密钥片段与2号密钥碎片进行拼接,得到第二拼接密钥,用第二拼接密钥对电子合同文件的第二组密文进行解密,得到第二组解密文件并保存,将第一私钥作为公
钥对第二解密文件进行加密,将得到的私钥作为第二私钥,将第二私钥与2号密钥片段进行
比较,当两者相同时,判定数据正常,当两者不同时,判定解密错误,停止解密;
[0084] …
[0085] Ck、将k‑2密钥片段与k‑1号密钥片段进行拼接,得到第k‑1拼接密钥,用第二拼接密钥对电子合同文件的第k‑1组密文进行解密,得到第k‑1组解密文件并保存,将第k‑2私钥
作为公钥对第k‑1解密文件进行加密,将得到的私钥作为第k‑1私钥,将第k‑1私钥与k‑1号
密钥片段进行比较,当两者相同时,判定数据正常,当两者不同时,判定解密错误,停止解
密;
[0086] C(k+1)、当k‑1号密钥片段为最后一个密钥片段时,停止解密;
[0087] C(k+2)、对步骤C2至步骤Ck所得的所有解密文件按顺序进行保存。
[0088] 本发明密文在进行破解时,需要同时拥有对应的公钥和私钥,但是完整密钥只是由私钥组成,因此在破解时还需要进行再次加密,并将所得第k‑2私钥与k‑1号密钥片段进
行比较,时为了防止后续继续进行破解,由于私钥错误,会导致后续破解均错误,所以提前
停止,会减少浪费用户的时间。
[0089] 进一步的,所述公钥与私钥是多对一的关系。
[0090] 一种基于分离式存储的电子合同文件的分组加密系统,包括:存储区域检测模块、分离式存储区域参数获取模块、分组加密模块、密钥组合模块、密钥碎片化处理模块、分组
解密模块,
[0091] 所述存储区域检测模块,用于对当前设备上的存储区域进行检测,区分出设备自带的存储区域与分离式存储区域;
[0092] 所述分离式存储区域参数获取模块,用于获取分离式存储区域的参数,所述参数包括:类型、文件系统、容量及可用空间;
[0093] 所述分组加密模块,通过文件的大小和内容结构对待加密的电子合同文件进行第一分组,并对第一分组内容根据内容结构的调整规则进行最终分组,对最终分组后的待加
密的电子合同文件及分离式存储区域参数获取模块得到的分离式存储区域的参数进行分
组加密,分别得到对应的私钥,在分组加密模块中在对待加密的电子合同文件进行分组加
密时,会将上一组文件加密后所得的私钥作为下一组文件加密时所需的公钥,所述公钥和
私钥的长度都是相等且固定的,在分组加密完成后,分组加密模块会以分离式存储的方式
将分组加密后的密文保存到不同的存储数据库中,并将各个加密结果存储的位置及密文个
数进行拼接得到第二拼接结果;
[0094] 所述密钥组合模块,用于将分组加密模块获取的私钥按得到的先后顺序通过字符串拼接的方式进行组装拼接,拼装成一个完整的密钥,然后运用字符串拼接的方式将第二
拼接结果拼接到完整密钥的前方,得到最终密钥,该最终密钥可用于对待加密的电子合同
文件整体进行解密;
[0095] 所述密钥碎片化处理模块,用于对密钥组合模块获取的完整密钥进行拆卸,将其拆卸成多个长短不一的密钥碎片并进行保存;
[0096] 所述分组解密模块,通过对密钥碎片进行拼凑实现对最终密钥的组合,然后对最终密钥进行切割得到完整密钥,并通过完整密钥实现对待加密的电子合同文件整体进行解
密,分组解密模块中用户只需记录指定位置的n个完整密钥碎片,其余位置可直接通过拼接
的方式对完整密钥进行获取,根据解密后所得文件的内容结构进行解密正确性的校验,如
果内容结构完整或者内容结构符合调整规则,则判定解密正确,否则判定解密失败,解密结
果错误。
[0097] 与现有技术相比,本发明所达到的有益效果是:本发明不仅能够针对分离式存储设备的不同对电子合同进行加密,使得同一文件针对不同的分离式存储设备加密的结果不
同,还能够对电子合同进行分组加密,不同的组对应不同的密钥解密密钥,同时相邻解密密
钥相互之间还存在联系,在解密时,中间的某组的解密密钥出现错误,该组及后面所有组的
密文均无法成功解密,有效提升了电子合同的安全性。

附图说明

[0098] 附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
[0099] 图1是本发明基于分离式存储的电子合同文件的分组加密系统的组成示意图;
[0100] 图2是本发明基于分离式存储的电子合同文件的分组加密系统加密模块中分离式存储方式的流程示意图;
[0101] 图3是本发明基于分离式存储的电子合同文件的分组加密系统加密模块中加密步骤的流程示意图;
[0102] 图4是本发明基于分离式存储的电子合同文件的分组加密系统密钥碎片化处理模块中对完整密钥拆卸方法的流程示意图;
[0103] 图5是本发明基于分离式存储的电子合同文件的分组加密系统分组解密模块中解密步骤的流程示意图。

具体实施方式

[0104] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于
本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他
实施例,都属于本发明保护的范围。
[0105] 请参阅图1‑4,本发明提供技术方案:一种基于分离式存储的电子合同文件的分组加密方法,所述分组加密包括以下步骤:
[0106] S1、通过存储区域检测模块对当前设备上的存储区域进行检测,区分出设备自带的存储区域与分离式存储区域;
[0107] S2、通过分离式存储区域参数获取模块获取分离式存储区域的参数,所述参数包括:类型、文件系统、容量及可用空间;
[0108] S3、在分组加密模块中,通过文件的大小和内容结构对待加密的电子合同文件进行第一分组,并对第一分组内容根据内容结构的调整规则进行最终分组,对最终分组后的
待加密的电子合同文件及分离式存储区域参数获取模块得到的分离式存储区域的参数进
行分组加密,分别得到对应的私钥,在分组加密模块中在对待加密的电子合同文件进行分
组加密时,会将上一组文件加密后所得的私钥作为下一组文件加密时所需的公钥,所述公
钥和私钥的长度都是相等且固定的,在分组加密完成后,分组加密模块会以分离式存储的
方式将分组加密后的密文保存到不同的存储数据库中,并将各个加密结果存储的位置及密
文个数进行拼接得到第二拼接结果;
[0109] S4、在密钥组合模块中,将分组加密模块获取的私钥按得到的先后顺序通过字符串拼接的方式进行组装拼接,拼装成一个完整的密钥,然后运用字符串拼接的方式将第二
拼接结果拼接到完整密钥的前方,得到最终密钥,该最终密钥可用于对待加密的电子合同
文件整体进行解密;
[0110] S5、在密钥碎片化处理模块中,对密钥组合模块获取的完整密钥进行拆卸,将其拆卸成多个长短不一的密钥碎片并进行保存;
[0111] S6、在分组解密模块中,通过对密钥碎片进行拼凑实现对最终密钥的组合,然后对最终密钥进行切割得到完整密钥,并通过完整密钥实现对待加密的电子合同文件整体进行
解密,分组解密模块中用户只需记录指定位置的n个完整密钥碎片,其余位置可直接通过拼
接的方式对完整密钥进行获取,根据解密后所得文件的内容结构进行解密正确性的校验,
如果内容结构完整或者内容结构符合调整规则,则判定解密正确,否则判定解密失败,解密
结果错误。
[0112] 进一步的,所述分组加密模块包括分组模块和加密模块,
[0113] 所述分组模块,通过文件的大小和内容结构这两方面因素考虑,对待加密的电子合同文件进行切割分组,得到待加密的电子合同文件的最终分组结果,所述每组的命名方
式为:文件名+am,所述am中a为该待加密的电子合同文件所分组的总个数,m表示该组文件为
该待加密的电子合同文件所分组中的第m组;
[0114] 所述加密模块,用于对分组后的待加密的电子合同文件进行加密,得到相应的密文及私钥,并将密文的名称记为:文件名+am密文,所述am为该密文对应的编号,并以分离式
存储的方式将分组加密后的密文保存到不同的存储数据库中,并将各个加密结果存储的位
置及密文个数进行拼接得到第二拼接结果,
[0115] 所述存储数据库有x个,分别为第1存储数据库Y1、第2存储数据库Y2、…、第x存储数据库Yx,分离式存储方式如下:
[0116] V1、获取加密模块对分组后的待加密的电子合同文件加密后得到的密文及该密文的名称:文件名+am密文;
[0117] V2、获取密文名称中的am,用am中的m除以存储数据库的个数加1,即 获取运算结果中的余数大小,所述余数为整数,将该密文及相应的密文名称存储到第r存储数据库Yr
中,所述1≤r≤x,所述r与所得余数相等;
[0118] V3、所有的存储数据库中均会按照数据存储时间的先后顺序对存储数据进行排序,获取步骤V2中该密文及相应的密文名称存储的数据库Yr及在该存储数据库中对应的存
储数据序号z,将其记为Yrz;
[0119] V4、获取步骤V3中所有密文及相应的密文名称对应的Yrz,运用字符串拼接的方式将获取的所有Yrz进行拼接,在拼接之前,打乱Yrz与Yrz之间的位置关系,得到最终的拼接结
果,记为第一拼接结果;
[0120] V5、统计待加密的电子合同文件加密后得到的密文个数a,运用字符串拼接的方式将a拼接到第一拼接结果的前面,得到第二拼接结果。
[0121] 本发明分组加密模块按功能进一步划分成分组模块和加密模块,并在不同的模块中从多方面因素进行考虑,使得所得结果用户的使用更加便利,如:分组模块中从内容结构
方面进行考虑,则是兼顾到用户对电子合同阅读的方便问题,防止一段文字未读完,不知道
后续内容,使得内容不连贯,可能对用户的理解造成偏差。
[0122] 进一步的,所述分组模块从文件的大小这方面因素考虑对待加密的电子合同文件进行分组时,
[0123] 将待加密的电子合同文件的大小与分离式存储区域参数获取模块获取分离式存储区域的可用空间参数进行比较,判断该待加密的电子合同文件能否成功分组,
[0124] 当待加密的电子合同文件的大小小于等于分离式存储区域参数获取模块获取分离式存储区域的可用空间参数时,判定分组模块不能够对该待加密的电子合同文件进行分
组,停止对该待加密的电子合同文件进行分组,对该待加密的电子合同文件分组加密失败;
[0125] 当待加密的电子合同文件的大小大于分离式存储区域参数获取模块获取分离式存储区域的可用空间参数时,判定分组模块能够对该待加密的电子合同文件进行分组,进
一步对该待加密的电子合同文件的大小进行判断,将其与第一预设值进行比较,
[0126] 若该待加密的电子合同文件的大小小于等于第一预设值时,将该待加密的电子合同文件均分成a组,并为所分的组命名,完成第一分组,命名方式为:文件名+am,所述am中a为
该待加密的电子合同文件所分组的总个数,m表示该组文件为该待加密的电子合同文件所
分组中的第m组,
[0127] 若该待加密的电子合同文件的大小大于第一预设值时,将该待加密的电子合同文件按内容先后顺序,每第一阈值大小的内容分为一组,将其分为a组,并为所分的组命名,完
成第一分组,命名方式为:文件名+am,所述am中a为该待加密的电子合同文件所分组的总个
数,m表示该组文件为该待加密的电子合同文件所分组中的第m组。
[0128] 本发明分组模块从该待加密的电子合同文件的大小进行考虑,结合分离式存储区域参数,判断该待加密的电子合同文件能否成功分组,同时对如何进行第一分组进行判断。
[0129] 进一步的,所述分组模块获取第一分组的结果,并从内容结构这方面因素进行考虑,对第一分组的结果中各组内的内容进行调整,调整之后的结果为该待加密的电子合同
文件最终的分组结果,
[0130] 获取相邻两组的内容,判断前一组内容中的最后一段与后一组内容中的第一段是否为一段,判断方式为前一组内容中的最后一段的结尾是否有句号、后一组内容的第一段
的段首位置是否缩进两个字,
[0131] 当前一组内容中的最后一段的结尾有句号且后一组内容的第一段的段首位置缩进两个字时,则判定前一组内容结构完整;
[0132] 当前一组内容中的最后一段的结尾有句号且后一组内容的第一段的段首位置未缩进两个字时,则判定前一组内容中最后一段结尾的句号表示一句段的结束,但是前一组
内容中的最后一段与后一组内容中的第一段依旧为一段,即前一组内容结构不完整;
[0133] 当前一组内容中的最后一段的结尾没有句号且后一组内容的第一段的段首位置缩进两个字时,判定后一组内容中的第一段格式出现错误,前一组内容结构不完整;
[0134] 当前一组内容中的最后一段的结尾没有句号且后一组内容的第一段的段首位置未缩进两个字时,则判定前一组内容结构不完整,
[0135] 当前一组内容结构不完整时,需要对该两组的内容进行调整,调整过程需要考虑到前一组内容的总字数、后一组内容的总字数分别与第一阈值的差值Q1、Q2,及前一组内容
中的最后一段字数与后一组内容中的第一段字数,分别将前一组内容中的最后一段字数、
后一组内容中的第一段字数与第二预设值进行比较,
[0136] 若前一组内容中的最后一段字数、后一组内容中的第一段字数均大于等于第二预设值时,则不对该两组的内容进行调整;
[0137] 若前一组内容中的最后一段字数大于等于第二预设值、后一组内容中的第一段字数小于第二预设值时,对Q1、Q2的大小进一步判断,
[0138] 如果Q1大于0且Q2小于0,则不对该两组的内容进行调整,
[0139] 反之,则将后一组内容中的第一段对应的内容剪切到前一组内容中最后一段对应内容之后的位置;
[0140] 若前一组内容中的最后一段字数小于第二预设值、后一组内容中的第一段字数大于等于第二预设值时,对Q1、Q2的大小进一步判断,
[0141] 如果Q1小于0且Q2大于0,则不对该两组的内容进行调整,
[0142] 反之,则将前一组内容中的最后一段对应的内容剪切到后一组内容中第一段对应内容之前的位置,对Q1、Q2的大小进一步判断;
[0143] 若前一组内容中的最后一段字数、后一组内容中的第一段字数均小于第二预设值时,则进一步比较前一组内容中的最后一段字数与后一组内容中的第一段字数两者之间的
多少,
[0144] 如果前一组内容中的最后一段字数大于等于后一组内容中的第一段字数,对Q1、Q2的大小进一步判断,
[0145] 假如Q1大于0且Q2小于0,则不对该两组的内容进行调整,
[0146] 反之,则将后一组内容中的第一段对应的内容剪切到前一组内容中最后一段对应内容之后的位置,
[0147] 如果前一组内容中的最后一段字数小于后一组内容中的第一段字数,对Q1、Q2的大小进一步判断,
[0148] 假如Q1小于0且Q2大于0,则不对该两组的内容进行调整,
[0149] 反之,则将前一组内容中的最后一段对应的内容剪切到后一组内容中第一段对应内容之前的位置。
[0150] 本发明分组模块获取第一分组的结果,并从内容结构这方面因素进行考虑,对第一分组的结果中各组内的内容进行调整,调整的过程中从邻两组的内容中前一组内容中的
最后一段与后一组内容中的第一段进行判断,针对不同情况执行不同的调整方案,进而获
取最终的分组结果,尽量使得分组结果中各组中的最后一段完整,方便用户阅读理解。
[0151] 进一步的,所述加密模块在对分组后的待加密的电子合同文件进行加密时,包括一下加密步骤:
[0152] A1、通过加密模块自动生成当前设备分离式存储区域的初始公钥;
[0153] A2、利用当前设备分离式存储区域的初始公钥对分离式存储区域参数获取模块获取到的分离式存储区域的参数进行加密,获取分离式存储区域参数密文及分离式存储区域
的初始私钥;
[0154] A3、将分离式存储区域的初始私钥作为分组后的待加密的电子合同文件中,文件名为文件名+a1的文件对应的公钥,进而通过该公钥对文件名为文件名+a1的文件进行加密,
得到文件名为文件名+a1的文件对应的密文及私钥,并将该密文的名称记为:文件名+a1密
文;
[0155] A4、将文件名为文件名+a1的文件对应的私钥作为文件名为文件名+a2的文件对应的公钥,进而通过该公钥对文件名为文件名+a2的文件进行加密,得到文件名为文件名+a2的
文件对应的密文及私钥,并将该密文的名称记为:文件名+a2密文;
[0156] …
[0157] A(m+2)、将文件名为文件名+am‑1的文件对应的私钥作为文件名为文件名+am的文件对应的公钥,进而通过该公钥对文件名为文件名+am的文件进行加密,得到文件名为文件
名+am的文件对应的密文及私钥,并将该密文的名称记为:文件名+am密文;
[0158] A(m+3)、将待加密的电子合同文件各组对应的密文及步骤A2至步骤A(m+2)中所得的所有私钥进行保存,所得待加密的电子合同文件各组对应的密文即为待加密的电子合同
文件进行分组加密的结果。
[0159] 本发明加密模块中将前一组文件加密得到的私钥作为后一组文件加密的公钥,使得相邻两组密文相互联系起来,加强了各组文件之间的关系,由于解密时需要同时用到每
组文件对应的公钥与私钥,因此,为各组密文的解密做出限制,使得整个加密方式类似与菊
花链形式,一旦其中一组的私钥出现问题,会导致后续所有组的密文均无法破解,有效提升
了文件的安全性。
[0160] 进一步的,所述密钥碎片化处理模块中,对密钥组合模块获取的最终密钥进行拆卸,将其拆卸成多个长短不一的密钥碎片,其具体拆卸方法包括:
[0161] B1、获取最终密钥的内容;
[0162] B2、在最终密钥中按顺序统计各个大写字母至该大写字母的下一大写字母之前所构成的片段,最后一个大写字母及之后的内容构成一个片段;
[0163] B3、判断步骤B2中所得各个片段的字符长度,将其与第三预设值进行比较,
[0164] 当某片段的字符长度小于第三预设值时,将该片段内容添加到前一片段中,并将该片段从步骤B2的统计中剔除;
[0165] 当某片段的字符长度大于等于第三预设值时,则进一步对步骤B2中统计的片段进行处理,即将统计的片段相互之间进行比较,
[0166] 若存在两个或多个片段相同,则获取各个相同片段中的每一个片段与该片段的前一个片段的总长度、各个相同片段中的每一个片段与该片段的后一个片段的总长度,分别
记为第一总长度、第二总长度,比较各个相同片段中的每一个片段对应的第一总长度、第二
总长度的大小,将两者中的较小的值与该片段进行绑定,然后将各个相同片段中的每一个
片段绑定的值进行比较,将最大的值对应的片段保留,其余的各个相同片段均按照绑定值
进行相应处理,
[0167] 若某相同片段绑定的值为第一总长度,则该片段与该片段的前一个片段进行拼接,使得原有的两个片段构成一个新的片段,
[0168] 若某相同片段绑定的值为第二总长度,则该片段与该片段的后一个片段进行拼接,使得原有的两个片段构成一个新的片段;
[0169] B4、将经步骤B3处理后的统计的片段进行保存,不同的片段即为密钥碎片。
[0170] 本发明将完整密钥进行拆卸并保存,是为了防止完整密钥太长,导致用户无法清晰记忆,将其拆卸成长短不一的密钥碎片,一方面能够都密钥进行有效保存,且有避免了他
人对完整密钥进行窃取。
[0171] 进一步的,用户在对分组加密的文件进行解密时,用户需要在分组解密模块中按顺序输入密钥碎片,所述分组解密模块会自动将用户输入的密钥碎片进行字符串拼接,进
而得到最终的密钥,
[0172] 用户在输入密钥碎片的过程中,前n个密钥碎片需要完整输入,但是在进行第n个之后密钥碎片的输入时,用户只需输入各个密钥碎片的首字符,然后分组解密模块会自动
在密钥碎片化处理模块保存的所有密钥碎片中筛选出首字符与用户输入的首字符相同的
密钥碎片,用户可从分组解密模块筛选的密钥碎片中进行选择,用户选择的密钥碎片会自
动输入;
[0173] 在用户输入的过程中,分组解密模块会自动对用户输入的第一个密钥碎片进行识别,获取a的值,然后根据a的值在前n个密钥碎片中识别出前a个大写字母片段,所述每个大
写字母片段包括该大写字母及该大写字母与下一大写字母之间的部分,对该a个大写字母
片段进行校验,当校验成功时,分组解密模块会自动根据各个大写字母的片段信息从各个
存储数据库中提取相应的密文及对应的密文名称,反之,则不对密文及对应的密文名称进
行处理;
[0174] 所述分组解密模块将提取的密文及对应的密文名称按照密文名称中am对应m值按从小到大的顺序对密文进行排序,并保存;
[0175] 在用户输入完前n个密钥碎片后,分组解密模块会有一个校验判断,即判断用户输入的前n个密钥碎片是否正确,
[0176] 当校验正确时,则用户可以继续对密钥碎片进行输入,
[0177] 当校验失败时,则用户不能继续对密钥碎片进行输入,已经输入的前n个密钥碎片会自动清除,需要重新输入,同时分组解密模块会将保存的密文及对应的密文名称进行删
除。
[0178] 本发明在用户输入完前n个密钥碎片后,设置校验判断是为了防止他人胡乱对最终密钥进行输入,保护了电子合同的安全性,同时该校验方式还能够对用户起到提醒的作
用,在校验错误时,提醒用户输入错误,避免用户输入后续的密钥碎片且无法对文件进行解
密,进而浪费用户的时间。
[0179] 进一步的,所述分组解密模块运用完整的密钥对电子合同文件对应的各组密文进行解密的步骤如下:
[0180] C1、将最终密钥中前a+1个大写字母片段进行剔除,得到完整的密钥,根据公钥及私钥的长度将完整的密钥切割成密钥片段,并对密钥片段内进行标号,标号从0开始,相邻
标号间隔为1;
[0181] 本发明中将最终密钥中前a+1个大写字母片段进行剔除是因为第二拼接结果中包括一个Om和m个密文存储位置信息的大写字母片段。
[0182] C2、将0号密钥片段与1号密钥片段进行拼接,得到第一拼接密钥,用第一拼接密钥对电子合同文件的第一组密文进行解密,得到第一组解密文件并保存,将0号密钥片段作为
公钥对第一解密文件进行加密,将得到的私钥作为第一私钥,将第一私钥与1号密钥片段进
行比较,当两者相同时,判定数据正常,当两者不同时,判定解密错误,停止解密;
[0183] C3、将1号密钥片段与2号密钥碎片进行拼接,得到第二拼接密钥,用第二拼接密钥对电子合同文件的第二组密文进行解密,得到第二组解密文件并保存,将第一私钥作为公
钥对第二解密文件进行加密,将得到的私钥作为第二私钥,将第二私钥与2号密钥片段进行
比较,当两者相同时,判定数据正常,当两者不同时,判定解密错误,停止解密;
[0184] …
[0185] Ck、将k‑2密钥片段与k‑1号密钥片段进行拼接,得到第k‑1拼接密钥,用第二拼接密钥对电子合同文件的第k‑1组密文进行解密,得到第k‑1组解密文件并保存,将第k‑2私钥
作为公钥对第k‑1解密文件进行加密,将得到的私钥作为第k‑1私钥,将第k‑1私钥与k‑1号
密钥片段进行比较,当两者相同时,判定数据正常,当两者不同时,判定解密错误,停止解
密;
[0186] C(k+1)、当k‑1号密钥片段为最后一个密钥片段时,停止解密;
[0187] C(k+2)、对步骤C2至步骤Ck所得的所有解密文件按顺序进行保存。
[0188] 本发明密文在进行破解时,需要同时拥有对应的公钥和私钥,但是完整密钥只是由私钥组成,因此在破解时还需要进行再次加密,并将所得第k‑2私钥与k‑1号密钥片段进
行比较,时为了防止后续继续进行破解,由于私钥错误,会导致后续破解均错误,所以提前
停止,会减少浪费用户的时间。
[0189] 进一步的,所述公钥与私钥是多对一的关系。
[0190] 一种基于分离式存储的电子合同文件的分组加密系统,包括:存储区域检测模块、分离式存储区域参数获取模块、分组加密模块、密钥组合模块、密钥碎片化处理模块、分组
解密模块,
[0191] 所述存储区域检测模块,用于对当前设备上的存储区域进行检测,区分出设备自带的存储区域与分离式存储区域;
[0192] 所述分离式存储区域参数获取模块,用于获取分离式存储区域的参数,所述参数包括:类型、文件系统、容量及可用空间;
[0193] 所述分组加密模块,通过文件的大小和内容结构对待加密的电子合同文件进行第一分组,并对第一分组内容根据内容结构的调整规则进行最终分组,对最终分组后的待加
密的电子合同文件及分离式存储区域参数获取模块得到的分离式存储区域的参数进行分
组加密,分别得到对应的私钥,在分组加密模块中在对待加密的电子合同文件进行分组加
密时,会将上一组文件加密后所得的私钥作为下一组文件加密时所需的公钥,所述公钥和
私钥的长度都是相等且固定的,在分组加密完成后,分组加密模块会以分离式存储的方式
将分组加密后的密文保存到不同的存储数据库中,并将各个加密结果存储的位置及密文个
数进行拼接得到第二拼接结果;
[0194] 所述密钥组合模块,用于将分组加密模块获取的私钥按得到的先后顺序通过字符串拼接的方式进行组装拼接,拼装成一个完整的密钥,然后运用字符串拼接的方式将第二
拼接结果拼接到完整密钥的前方,得到最终密钥,该最终密钥可用于对待加密的电子合同
文件整体进行解密;
[0195] 所述密钥碎片化处理模块,用于对密钥组合模块获取的完整密钥进行拆卸,将其拆卸成多个长短不一的密钥碎片并进行保存;
[0196] 所述分组解密模块,通过对密钥碎片进行拼凑实现对最终密钥的组合,然后对最终密钥进行切割得到完整密钥,并通过完整密钥实现对待加密的电子合同文件整体进行解
密,分组解密模块中用户只需记录指定位置的n个完整密钥碎片,其余位置可直接通过拼接
的方式对完整密钥进行获取,根据解密后所得文件的内容结构进行解密正确性的校验,如
果内容结构完整或者内容结构符合调整规则,则判定解密正确,否则判定解密失败,解密结
果错误。
[0197] 需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存
在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖
非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要
素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备
所固有的要素。
[0198] 最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可
以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。
凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的
保护范围之内。