一种利用加密技术进行数据存储和共享的方法

文档序号:6646059阅读:187来源:国知局
专利名称:一种利用加密技术进行数据存储和共享的方法
技术领域
本发明涉及一种利用加密技术进行数据的结构化存储和共享的通用方法,更进一步是指一种服务于多种编程语言以及多个软件模块之间的数据存储和共享交换的方法。
背景技术
当今的软件编程中,编程软件种类繁多,从高级语言Visual Basic,Delphi到中级的C/C++,以及低级的汇编语言,各种语言都有其擅长的领域,有的软件开发效率高,开发周期短,开发难度低;有的语言执行效率高,开发周期长,开发难度大。在一个大型的项目中,往往牵扯到既需要高的开发效率,又需要高的执行效率,这样在一个项目中常常使用多种编程语言混和开发的情况,在重点难点上使用中低级的开发语言开发,而在节目表现,数据库访问以及打印等相对固定的而又相对简单的模块使用高级语言开发,这样既能提高开发效率,缩短开发周期,又能保证软件的执行效率。但是这样做肯定会增加使用不同语言开发的开发软件模块中的数据共享和数据传递的难度和复杂程度。而且每种语言的效率不同,涉及的到的内存分配和使用也不同,定义数据的类型等等都存在较大差别。
近年来Web编程因Internet的迅猛发展以及其特有的优势而迅速普及,大量的数据库操作甚至是软件程序的入口都被移植到Web上来,很多程序利用Web的界面友好和易于维护的特性将软件的大部分操作都转移到Web上来。这样做可以随时控制软件部分界面的实时更新,功能限制等。可以说Web编程给整个软件编程带来了革命性的变化。但是Web编程也有其局限性,比如不能最大化的使用本地资源,执行期间需要网络连接以及安全性问题。这样Web程序需要在特定的需求下使用本地资源,从而需要和本地的应用程序进行数据交换。
在某些特定的场合下,软件需要将用户的一些私有信息保存在本地计算机上,或者需要下次启动时自动获取这些信息,或者是将这些信息交给其他程序使用。由于这些信息是关系到个人隐私方面的内容,所以软件需要将这些信息加密后再保存到磁盘上以防被其他人看到。虽然目前有很多的加密、解密的算法可供选择,但是有的加密算法实现难度大,有的加密算法执行效率低下,也有的加密技术存在种种的使用限制。而且在一个软件的几个不同模块下要同时使用一组需要加密的数据,则需要多个模块实现协调好加密解密的方式和方法,否则不能正确的加密解密数据。

发明内容
鉴于中级语言的高效率执行的特点和在不同类型程序、不同编程语言开发间可以自由使用的需求,本发明提供了一种利用加密技术进行数据的结构化存储和共享的通用方法,其可以作为一种服务于多种编程语言以及多个软件模块之间的数据存储和共享交换的方法。
本发明的另一目的在于以动态链接库形式作为主要加密解密模块,在设计中充分考虑了用户的需要,屏蔽了与特定的编程语言,特定的文件系统相关的内容,借鉴了多种数据加密方式的优点,并对内存的使用做了大幅度的优化。
为了达到上述目的,本发明提供如下技术方案一种利用加密技术进行数据存储和共享的方法,其包含以下步骤a、应用程序通过专用软件将用户输入的数据进行结构化处理,并以加密的方式保存;其中,该专用软件进行结构化处理的步骤更具体为a1、按照需求创建所需的加密数据文件,或者打开已存在的加密数据文件;a2、根据设计需要指定数据文件内各个数据的数据类型,数据长度,以及数据标识;
a3、输入各项数据的初始化数值,文件描述信息,保存文件。
b、应用程序向数据文件中的数据作相应的处理;其中,该步骤中的Web应用或者应用程序对数据作相应处理的步骤更具体为b1、打开加密数据文件,读取文件描述信息,判定加密数据文件用途;b2、根据数据标识读取解密后的数据或者更新已经存在的数据;b3、将更新后的文件交给其他应用。
而步骤b3更进一步是指数据可以从Web应用直接转到应用程序使用。
c、客户端应用程序下载该数据文件,并通过相应模块读取并解密加密文件中的数据。
此外,所述的结构化数据文件格式为文件头标识、文件基础信息块、密钥区、文件描述区、属性信息区、数据区。
所述加密的数据文件采用动态随机密钥加密的方式,其数据文件的格式中以动态离散分布模式存放密钥,并以多重密钥加密的技术保护数据文件。
所述加密密钥的长度为512位。
本发明由于采用了高效率开发机制,使用此方式的不同软件模块可以达到最快的执行效率,采用数据标识以标识数据的方式,可以将数据的检索、查询等操作大大简化,调用模块只需要读取需要标识指定的数据,而不用关系数据的具体的加密、解密过程和存储格式,从而使上层的各个模块、组件仅仅专注于解决其领域本身的问题,这在一定程度上提高了系统的稳定性和健壮性并简化了系统的实现。本发明具有应用广泛、高效率、简便易行等优点;其可以实现的功能如下1、单一模块可以将自定义的数据以加密形式存储,从而避免了对于私有信息在本地计算机上可能的丢失或被篡改;2、单一模块可以将大量数据按照自定义的标识存储在本地或远程计算机上,在需要的时候只需要从指定标识读取即可,本发明提供的软件模块能够以最快的速度解密和查找指定标识下的数据,数据的查找速度几乎不受数据量的限制而减缓;3、不同模块可以使用同一个数据文件来交换和共享数据,模块间不必关心存储和加密解密细节而直接使用数据;4、提供可视化的数据增删改功能的软件,可以方便的维护数据;5、采取了复杂的加密机制,可以防止数据受到恶意的篡改。
下面结合附图和具体实施例来详细描述本发明。


图1是本发明的软件工作结构示意图;图2是本发明的数据流向图;图3是本发明的数据存储示意图;图4是本发明基于Web管理的视频会议中有关本发明的数据示意图;图5是本发明的软件模块操作加密数据示意图;图6是本发明实施例的方法流程图。
具体实施例方式
下面,参考附图对本发明的实施例进行详细说明。
首先就本发明生成的结构化数据文件格式、数据操作方式和加密策略分别进行说明。
一、结构化数据文件格式加密的数据文件如图3所示,其是由六个部分组成,分别为1、文件头标识用于标识此文件为本发明软件创建的一个加密数据文件;2、文件基础信息块用于存放文件的基础信息,包括文件版本号,该文件内存储数据数量等信息;3、密钥区用于存放强加密以后的用于加密解密此文件的唯一密钥信息;4、文件描述区用于标示该文件的用途信息;5、属性信息区用于存放该文件内存储的数据标识信息;6、数据区用于存放加密后的用于存储或共享交换的具体数据。
二、数据操作方式加密数据可以用于各种数据的存储和交换共享,所以本发明的加密解密模块可以同时操作多个数据文件,为了达到最快的执行效率,数据的操作完全在内存中进行,除非上层软件显式地强制加密/解密模块立刻存储文件,那样加密/解密模块将立刻将指定数据文件(或者全部数据文件)刷新到磁盘。
每一个上层应用软件或模块都可以同时管理多个加密文件,每个加密文件可以同时管理多组加密数据,每组加密数据又包含多个加密的数据项。这样一个应用牵扯到的数据量可能是非常大的,为此本发明采用了优化的数据检索策略,以保障在极其大量的数据下和极其复杂的数据结构中能够迅速检索到指定标识下的数据。
数据检索策略包括1、数据生成时专门对于数据检索的数据转换,将数据在不改变其内容的前提先做方便于检索的转换;2、使用散列表作为数据检索的方式,提高检索速度。
如图5所示,其为同一个软件管理下的多个加密数据文件。
一个上层应用操作加密数据文件的步骤具体如下1、调用加密/解密模块的Push命令,将一个加密数据文件加载到模块中,如果需要同时操作多个加密数据文件,可以依次将他们加载,而不用考虑加载顺序;2、调用加密/解密模块的Active命令,将当前处理的加密数据文件定向到指定文件;3、根据数据标识读出或写入数据;4、如需持久化数据,可以调用Save将更改数据刷新到磁盘;5、如果需要操作其他加密数据文件中的数据,重复2的操作。
三、加密策略为了使存储的数据安全可靠,本发明采取了多种加密措施用于保护文件以不会被恶意篡改。这样,即使是保存用户密码这样的关键数据,都可以像操作普通数据一样方便,简单。
本发明的加密措施主要包括下面五项1、512位长度的密钥加密为防止加密的数据文件的密码被轻易窃取,本发明采用512位长度的加密密钥,该长度的密钥可以保障在目前的计算机硬件条件下,密钥很难被破解软件使用暴力破解的方法破解。
2、动态密钥保存加密的数据文件格式采用动态离散分布模式存放密钥,不但不同的文件存放密钥的位置不同,就单一文件而言,每保存或生成一次加密的数据文件,密钥在文件中的位置都是和上一次的存放位置完全不同。动态密钥保存能够有效防止破解者通过多次采样罗列对比的方式破解文件。
3、动态密钥生成和普通的加密、解密的固定密钥加密措施不同,本发明生成的加密的数据文件采用动态密钥加密的方式,即每保存或生成一次加密的数据文件,相应的密钥都会改变。新生成的密钥和原密钥完全不同,而且无任何先后关联性。动态密钥生成技术保障了即便某个文件的密码被暴力破解,那么破解者也不能依照破解此文件的算法来破解其他文件。
4、多重密钥由于加密文件最终会被系统还原到内存,所以加密过程是可逆的,单一密钥加密机制容易被跟踪还原,本发明采用多重密钥加密技术保护数据文件,保障了破解者很难利用规则输入输出反解出密码。多重密钥主要表现为密钥是依照多个条件依次生成的,每一个条件都会按照本条件的特点对密钥进行再次加密,这样最终的密钥和最初的密钥经过多次再加密后表现得完全不同,从而使破解者不能直观的发现其联系。
5、动态干扰机制一般情况下,破解者会使用相同而且相关的数据来多次读取或保存同一组数据,因为其使用的数据都是相同的,所以可以通过这些相同的数据对比加密的数据后推算加密机制,为了防止这种类型的破解,本发明采用动态干扰机制,即将数据分组保存,每一组的加密都是不同的,即时多个组中包含相同的数据,由于加密不同,加密后的数据自然不同,这样可以有效防止使用相同而且相关的数据来反解密钥破解者。本发明对于冗余数据采用随机变化的处理,即冗余数据是随机变化的。这样也可以有效干扰破解者的思路。
其次,配合图6、图1及图2,对本发明实施例方法进一步说明如下(A)使用本发明中的专用软件(Editor)对需要存储、共享以及传递的数据进行结构化处理,具体为a1、按照需求创建所需的加密数据文件,或者打开已存在的加密数据文件;a2、根据设计需要指定数据文件内各个数据的数据类型,数据长度,以及数据标识;a3、输入各项数据的初始化数值,文件描述信息,保存文件;(B)应用程序通过本发明提供的软件模块向数据文件中查询,修改,保存数据;其中,Web应用或者应用程序对数据作如下处理(b1)Web应用或者应用程序打开加密数据文件,读取文件描述信息,判定加密数据文件用途;
(b2)Web应用或者应用程序根据数据标识读取解密后的数据或者更新已经存在的数据;(b3)Web应用或者应用程序将更新后的文件交给其他应用,更进一步是数据可以从Web应用直接转到应用程序使用。
(C)其他软件利用相应模块读取并解密加密文件中的数据;其他软件处理数据的处理过程与前述Web应用的处理方法相同。
最后,图4给出了基于Web管理的视频会议(WebVision)中使用有关本发明的数据示意图。它标示了单个模块使用独立的结构化加密数据以及多个模块共享同一加密数据的使用流程。基于Asp.net的Web应用程序将用户在Web模式下的输入转换成结构化数据,并以加密的方式保存后,客户端应用程序通过Internet下载该数据文件,并通过本发明的解密模块解密数据,从而得到用户在Web上设置或输入的信息,从而根据这些信息连接到WebVision服务器并且自动登录到指定的网络会议室。
即使对于WebVision客户端软件而言,本发明也可以解决其独立的界面模块对数据存储和读取中的数据安全问题。由于WebVision客户端软件可以动态的更改自身界面模式和界面色彩,因此客户端软件需要将不同种类的界面元素分别存储,由于WebVision的商用性决定了这些界面元素是不能被用户随意更改的,因此WebVision客户端软件将界面数据采用本发明的技术存储和读取,这样客户端软件可以在根本不用考虑任何加密、解密的情况下利用自己的数据标识来存储和读取数据。
综上所述,本发明采用高效率开发机制,使不同软件模块可以达到最快的执行效率;采用数据标识以标识数据的方式,可以将数据的检索、查询等操作大大简化,调用模块只需要读取需要标识指定的数据,而不用关系数据的具体的加密、解密过程和存储格式,从而使上层的各个模块、组件仅仅专注于解决其领域本身的问题,这在一定程度上提高了系统的稳定性和健壮性并简化了系统的实现。
对于本领域的普通技术人员来说可显而易见的得出其他优点和修改。因此,具有更广方面的本发明并不局限于这里所示出的并且所描述的具体说明及示例性实施例。因此,在不脱离权利要求及其等价体所定义的一般发明构思的精神和范围的情况下,可对其做出相应的修改。
权利要求
1.一种利用加密技术进行数据存储和共享的方法,其包含以下步骤a、应用程序通过专用软件将用户输入的数据进行结构化处理,并以加密的方式保存;b、应用程序向数据文件中的数据作相应的处理;c、客户端应用程序下载该数据文件,并通过相应模块读取并解密加密文件中的数据。
2.如权利要求1所述的利用加密技术进行数据存储和共享的方法,其中该专用软件进行结构化处理的步骤更具体为a1、按照需求创建所需的加密数据文件,或者打开已存在的加密数据文件;a2、根据设计需要指定数据文件内各个数据的数据类型,数据长度,以及数据标识;a3、输入各项数据的初始化数值,文件描述信息,保存文件。
3.如权利要求1所述的利用加密技术进行数据存储和共享的方法,其中步骤b中的Web应用或者应用程序对数据作相应处理的步骤更具体为b1、打开加密数据文件,读取文件描述信息,判定加密数据文件用途;b2、根据数据标识读取解密后的数据或者更新已经存在的数据;b3、将更新后的文件交给其他应用。
4.如权利要求3所述的利用加密技术进行数据存储和共享的方法,其中步骤b3更进一步是指数据可以从Web应用直接转到应用程序使用。
5.如权利要求1所述的利用加密技术进行数据存储和共享的方法,其中该结构化数据文件格式为文件头标识、文件基础信息块、密钥区、文件描述区、属性信息区、数据区。
6.如权利要求1所述的利用加密技术进行数据存储和共享的方法,其中所述加密的数据文件采用动态随机密钥加密的方式,其数据文件的格式中以动态离散分布模式存放密钥,并以多重密钥加密的技术保护数据文件。
7.如权利要求6所述的利用加密技术进行数据存储和共享的方法,其中所述加密密钥的长度为512位。
全文摘要
本发明提供一种利用加密技术进行数据存储和共享的方法,其包含的步骤为a.应用程序通过专用软件将用户输入的数据进行结构化处理,并以加密的方式保存;b.应用程序向数据文件中的数据作相应的处理;c.客户端应用程序下载该数据文件,并通过相应模块读取并解密加密文件中的数据。本发明采用高效率开发机制,以达到最快的执行效率,采用数据标识以标识数据的方式,可以将数据的检索、查询等操作大大简化,调用模块只需要读取需要标识指定的数据,而不用关系数据的具体的加密、解密过程和存储格式,从而提高了系统的稳定性和健壮性并简化了系统的实现。本发明更具有应用广泛、高效率、简便易行等优点。
文档编号G06F1/00GK1932810SQ20051010266
公开日2007年3月21日 申请日期2005年9月13日 优先权日2005年9月13日
发明者李晓耕 申请人:李晓耕, 汪海涛
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1