一种数据加密、解密系统和方法

文档序号:7645297阅读:157来源:国知局

专利名称::一种数据加密、解密系统和方法
技术领域
:本发明涉及一种数据加密、解密系统和方法,尤其涉及一种通过互联网自动完成数据文件加密和解密的系统和方法。
背景技术
:目前的数据加密方法主要分为两类不对称和对称加密,其中前者又称之为公钥加密。广为人知的标准化加密算法例子分别是RSA公钥不对称加密和AES/DES对称加密。一个不对称的公钥加密系统有一对公、私钥。私钥只为用户自己掌握,而公钥对其他人公开。假设私钥所有人为用户A,其公、私钥分别为Xa和Ya,其中符号X和Y表示公钥和私钥,下标a表示属于用户A。如果用户B欲加密其发送给A的数据T,则B利用Xa对T加密获取密文Ta,并把Ta发给A,收到来自B的密文Ta后,A用其私钥Ya对Ta进行解密运算获取原文T。因为不对称的公钥加密系统加、解密的运算复杂度较大,在实际应用中,RSA通常并不直接用于对数据进行加密,而与AES/DES等对称加密技术相结合形成一个运算复杂度较小的混合加密方案。例如,用户B首先用A的RSA公钥Xa对AES子系统使用的密码K进行加密为Ka,并用AES的密码K把T加密为T,,然后把Ka和T,一起发送给A。收到来自于B的密文Ka和T'后,A用其私钥Ya解密Ka获取K,再用K解密T'获取T。在以上用户B向A发送密文的典型传统应用例子中,用户B需要通过某种途径获取A的公钥Xa以将明文加密为密文,而用户A需要向系统提供其私钥Xa以将密文解密为明文。如何获取一个用户的公、私钥,是该类应用中一个很关键的问题,直接影响该类应用的使用方便性。文件加密是一种重要的加密应用。然而,现行的文件加密系统,需要用户提供一个密码用于文件的加密和解密。根据该密码,系统可以通过有限步骤的运算后,获取一个用于对目标数据进行加、解密的最终密码。比如,在以上例子中,Xa和Ya分别为加、解密过程的初始密码,而K为最终密码。目前比较通行的管理初始密码的方法,是由用户自己保存,并通过USB盘等随身携带,以在有需要时使用
发明内容为了解决以上文件加密应用中使用不便的缺点,我们在本发明中把文件加、解密和初始密码的管理通过互联网技术结合,方便联网用户随时随地使用文件加、解密。本发明的目的在于把传统数据文件加密应用中由用户在本地提供的公、私钥管理功能,改为通过互联网由远端系统自动提供。这样,利用一个较短的身份验证码登录我们的系统,用户就可以方便的使用原本过程非常繁复的数据加密应用。特别地,本发明通过互联网来对公私钥在远端服务器系统的存储进行管理,并在密文中嵌入用一个或多个授权读者的公钥加密后的对称密钥。在用户通过互联网登录服务器系统后,系统即可用一个或多个文件授权读者的公钥自动生成包含各读者解密所需数据的加密文件,以及用各获授权读者的私钥从密文自动恢复明文。一种数据加密、解密系统,它包括一个接受用户指令对文件进行加密和解密、以及进行公/私钥管理的客户端子系统和一个从客户端子系统处接受作业请求、执行作业并返回作业结果的服务器子系统,客户端子系统和服务器子系统通过互联网进行数据通讯。服务器子系统执行的作业包括公/私钥的生成、存储、发布和管理,所述公钥的发布信息的査阅,服务器还可以根据用户的预先设置对来不同用户的查阅请求作出权限控制;根据用户在服务器中所存储的公钥对作业中提交的数据进行加密;根据用户在服务器中所存储的私钥对作业中提交的数据进行解密。客户端子系统的公/私钥管理主要包括利用用户的身份验证码通过互联网登录远程的服务器子系统,并从用户处接受指令,对存储于远程服务器子系统中的公、私钥进行更新、发布和检索等管理;还包括可以在本地生成公、私钥,并将其存储到远程的服务器子系统。所述加密后的文件格式为I文件头I:其中密文为输入的数据用对称密钥Keyl加密后的内容,文件头包含一个或者多个用户的公钥对Keyl加密后的密文。文件头的结构有两种方案,其一为MiscNlKlNmKm其中,Ki为用名字为Ni的公钥对Keyl加密后的获得的Keyl的密文Keyl',字段Misc包含该文件的其它管理信息,如文件长度、数据校验等,Ni包含了从互联网上存取Ki所需要的索引信息。此文件头结构对应的加密/解密主要步骤包括1)用户输入一个或者多个该文件的读者的身份标识,该用户我们称之为该文件的作者;2)作者通过互联网向其所属服务器发出作业请求,检索相应读者发布的公钥,如果其他读者所属的服务器和作者的不同,则由作者所属的服务器向其他读者所属的服务器发出作业请求,并将作业结果返回作者,如果使用的是基于身份的公、私钥加密技术,这一步可以是根据各读者的身份标识在本地计算出他们各自的公钥,无需通过网络从服务器获取;3)根据作者输入或者由系统自动随机产生的密码Keyl,用步骤2中获取的各读者的公钥对Keyl进行加密计算,并将Keyl的密文和各公钥名及其对应的计算结果存储于文件头的各字段;4)用Keyl对文件内容进行对称加密,作为文件密文部分;5)根据特定算法计算Misc字段的数据,对文件进行封包;6)根据文件头中的Misc字段验证文件头和文件数据的正确性;7)根据文件头部该读者的公钥名,通过互联网从该读者的服务器获取或由该读者自己在本地存储器提供相应的私钥;8)假设获取的是对应Ni的私钥,用该私钥对Ki进行解密,获取密码对称密码Keyl;9)用Keyl对文件的密文部分进行解密,获取明文。所述文件头的结构还可以为:<formula>formulaseeoriginaldocumentpage10</formula>此结构中,在K1,K2,Km中我们存贮的是用各用户的公钥对另外一个密码Key2进行加密后的数据Key2,,而Ks存贮的是用Key2对Key1用对称加密算法如AES等进行加密后的数据结果Keyl',文件的数据用Keyl对称加密,字段Misc包含该文件的其它管理信息,如文件长度、数据校验等,Ni包含了从互联网上存取Ki所需要的索引信息。此文件头对应的加密/解密的步骤包括1)用户输入一个或者多个该文件的读者的身份标识,该用户我们称之为该文件的作者;2)作者通过互联网向其所属服务器发出作业请求,检索相应读者发布的公钥,如果其他读者所属的服务器和作者的不同,则由作者所属的服务器向其他读者所属的服务器发出作业请求,并将作业结果返回作者,如果使用的是基于身份的公、私钥加密技术,这一步可以是根据各读者的身份标识在本地计算出他们各自的公钥,无需通过网络从服务器获取;3)根据作者输入或者由系统自动随机产生的密码Keyl和Key2,用Key2对Keyl用对称加密算法进行加密,并将Keyl的密文存储于文件头部;4)用步骤2中获取的各读者的公钥对Key2进行加密计算,并将各公钥名及其对应的计算结果存储于文件头的各字段;5)用Keyl对文件内容进行对称加密,作为文件密文部分;6)根据特定算法计算Misc字段的数据,对文件进行封包;7)根据文件头中的Misc字段验证文件头和文件数据的正确性;8)根据文件头部该读者的公钥名,通过互联网从该读者的服务器获取或由该读者自己在本地存储器提供相应的私钥;9)假设获取的是对应Ni的私钥,用该私钥对Ki进行解密,获取密码对称密码Key2;10)用密码Key2对Keyl的密文进行解密,得到密码Keyl;11)用Keyl对文件的密文部分进行解密,获取明文。所述第一密码Keyl和第二密码Key2,可以由客户端子系统自动随机产生,也可以由用户输入,第一密码进行加密所需要的公钥,可以根据用户的设置,由客户端系统从本地存储器或者通过互联网从远程服务器获取。解密部分,可以由客户端子系统通过互联网向远程服务提交对第一密码进行解密的作业请求,由远程服务器返回解密后的第一密码,再用解密后的第一密码来解密文件数据部分的密文;还可以由客户端子系统通过互联网向远程服务提交对第二密码进行解密的作业请求,由远程服务器返回解密后的第二密码,再用解密后的第二密码来解密文件头中的第一密码的密文,然后用第一密码来解密文件数据部分的密文;它还可以由用户直接输入第一密码,或者由客户端子系统从本地或者通过互联网从远程服务器获取用户的私钥对加密后的第二和第一密码进行解密。本发明的有益效果为1、本发明把文件加、解密和初始密码的管理通过互联网技术结合,方便联网用户随时随地使用文件加、解密。2、本发明把传统数据文件加密应用中由用户在本地提供的公、私钥管理功能,改为通过互联网由远端系统自动提供。这样,利用一个较短的身份验证码登录我们的系统,用户就可以方便的使用原本过程非常繁复的数据加密应用。3、本发明通过互联网来对公私钥在远端服务器系统的存储进行管理,并在文件中嵌入用一个或多个授权读者的公钥加密后的对称密钥。在用户通过互联网登录服务器系统后,系统即可用一个或多个文件授权读者的公钥自动生成包含各读者解密所需数据的加密文件,以及用各获授权读者的私钥从密文自动恢复明文。图1为加密、解密系统结构图;图2为实施例结构图。具体实施方式下面结合附图对本发明进行进一步阐述。如图1所示,一种数据加密、解密系统,它包括一个接受用户指令对文件进行加密和解密、以及进行公/私钥管理的客户端子系统和一个从客户端子系统处接受作业请求、执行作业并返回作业结果的服务器子系统,客户端子系统和服务器子系统通过互联网进行数据通讯。服务器子系统执行的作业包括公/私钥的生成、存储、发布和管理,所述公钥的发布信息的查阅,服务器还可以根据用户的预先设置对来不同用户的公、私钥查阅请求作出权限控制;根据用户在服务器中所存储的公钥对作业中提交的数据进行加密;根据用户在服务器中所存储的私钥对作业中提交的数据进行解密。客户端子系统的公/私钥管理主要包括利用用户的身份验证码通过互联网登录远程的服务器子系统,并从用户处接受指令,对存储于远程服务器子系统中的公、私钥进行更新、发布和检索等管理;还包括可以在本地生成公、私钥,并将其存储到远程的服务器子系统。用于存储加密后的数据结构如表1所示文件头密文表1为文件结构第一种方案一个加密后的文件包括文件头和密文两部分。后者为输入的数据用对称密钥Keyl用对称加密算法如AES等加密后的密文,而前者包含用一个或多个用户的公钥对Keyl加密后的密文Kl,K2...Km。为叙述方便,我们称这些用户K1,K2…Km为该文件的读者。如下表2所示为一个包含用m个读者的公钥对Keyl加密后构成的文件头。Ki为用名字为Ni的公钥对Keyl加密后的获得的Keyl的密文。字段Misc包含该文件的其它管理信息,如文件长度、数据校验等。Ni包含了从互联网上存取Ki所需要的索引信息。MiscNlKlNmKm表2为文件头结构以下我们给出运用此文件头设计方案的加密和解密方法。加密过程1)用户输入一个或者多个该文件的读者的身份标识,该用户我们称之为该文件的作者。读者可以包括作者本身。2)作者通过互联网向其所属服务器发出作业请求,检索相应读者发布的公钥,如果其他读者所属的服务器和作者的不同,则由作者所属的服务器向其他读者所属的服务器发出作业请求,并将作业结果返回作者。(如果使用的是基于身份的公、私钥加密技术,这一步可以是根据各读者的身份标识在本地计算出他们各自的公钥,无需通过网络从服务器获取。)3)根据作者输入或者由系统自动随机产生的密码Keyl,用步骤2中获取的各读者的公钥对Keyl进行加密计算,并将各公钥名及其对应的计算结果存到表2中所示的文件头的各字段。4)用Keyl对文件内容进行对称加密,作为表1所示的文件密文部分。5)根据特定算法计算表2中Misc字段的数据,对文件进行封包。作者完成文件的加密后,将文件通过互联网或者其它方式传送给读者。任一读者收到该加密文件后,可对其进行解密如下。解密过程为1)根据文件头中的Misc字段验证文件头和文件数据的正确性2)根据文件头部该读者的公钥名,通过互联网从该读者的服务器获取或由该读者自己在本地存储器提供相应的私钥。3)假设获取的是对应Ni的私钥,用该私钥对Ki进行解密,获取密码对称密码Keyl。4)用Keyl对文件的密文部分进行解密,获取明文。在以上方案中,我们利用各读者的公钥来对Keyl进行加密后放在文件头,即K1,K2…Km。因为通常使用的RSA公钥为128—256个字节,其可有效加密的数据长度(即本例子中Keyl的长度)范围在几十个字节之间。而Keyl的长度直接影响到被加密文件数据的保密性。为了使用比较长的Keyl,我们还可以对该种方案做迸一步改进如下。第二种方案如表3所示,在文件头中我们多增加一项Ks。与第一种方案不同的是,在Kl,K2,Km中我们存贮的是用各读者的公钥对另外一个密码Key2进行加密后的数据。而Ks存贮的是用Key2对Keyl用对称加密算法如AES等进行加密后的数据结果,文件的数据用Keyl对称加密。<table>tableseeoriginaldocumentpage16</column></row><table>表3为文件头结构在以上两种方案中,假设读者i需要解密的时候,可用以下方法-1)如果该读者知道密码Keyl,则可以输入Keyl直接解密文件密文。2)如果是第一种方案,则用该读者的私钥对Ki解密获取Keyl;如果是第二种方案,则先用该读者的私钥对Ki解密获取Key2,然后用Key2对Ks解密获取Keyl。3)用Keyl解密文件的数据.相对第一种方案而言,第二种方案的设计是一个多层加密方案,可以用来实现密码Key2限长,而用相对较长的密码Keyl来对数据进行加密。Key2和Keyl均可以由用户输入或者系统自动生成。这种方案可以让用户使用易读的较长密码Keyl来对文件数据进行加密,提高被加密数据的保密性。利用以上所描述本发明的方法,我们给出一个本发明的实施例如下。假设用户A给用户B发送一个只有用户A和B才能解密的文件。该实施例的结构如图2所示,图中各组成部分用标号l、2、3、4表示。其中1,2为用户A和B,而3、4为管理用户A、B的公私钥所在的服务器。各用户和服务器通过互联网进行通信。加密过程1)用户A输入授权读者A和B的身份标识。2)用户A通过互联网向其所属服务器A发出作业请求,检索用户A和B发布的公钥。服务器A向服务器B发出作业请求,并将用户A和B的公钥返回给用户A。3)根据用户A输入或者由系统自动随机产生的一个密码Keyl,例如"abcl23",用步骤2中获取的用户A和B的公钥对密码Keyl进行RSA加密计算,并将各公钥名和计算结果存到文件头的相应字段。4)用Keyl对文件内容用AES算法进行对称加密,作为文件的密文部分。5)根据特定算法计算文件头中Misc字段的数据,对文件进行封包。用户A完成文件的加密后,将文件通过互联网或者其它方式传送给用户B。收到密件后,用户B对其进行解密。解密过程为-1)根据Misc验证文件头和文件数据的正确性2)根据文件头部的用户B的公钥名,通过互联网获取或由用户B在本地存储器提供相应的私钥。3)假设用户B是对应文件头中字段N1和Kl的读者,用该私钥对K1进行RSA解密,获取密码明文"abcl23"。4)用"abcl23"对文件的密文用AES算法进行解密还原。根据本文所描述而做改动的技术均隶属于本发明的保护范围,不限于在说明书中所描述的特定实施例。权利要求么、钥的发布信息的査阅以及所述私钥信息的査阅,服务器还可以根据用1、一种数据加密、解密系统,其特征在于,它包括一个接受用户指令对文件进行加密和解密、以及进行公/私钥管理的客户端子系统和一个从客户端子系统处接受作业请求、执行作业并返回作业结果的服务器子系统,客户端子系统和服务器子系统通过互联网进行数据通讯。2、根据权利要求1所述的数据加密、解密系统,其特征在于,所述服务器子系统执行的作业包括公/私钥的生成、存储、发布和管理,所述公?户的预先设置对来不同用户的公、私钥査阅请求作出权限控制;服务器子系统执行的作业还包括根据用户在服务器中所存储的公钥对作业中提交的数据进行加密;服务器子系统执行的作业还包括根据用户在服务器中所存储的私钥对作业中提交的数据进行解密。3、根据权利要求1所述的数据加密、解密系统,其特征在于,所述客户端子系统的公/私钥管理主要包括利用用户的身份验证码通过互联网登录远程的服务器子系统,并从用户处接受指令,对存储于远程服务器子系统中的公、私钥进行更新、发布和检索等管理;还包括可以在本地生成公、私钥,并将其存储到远程的服务器子系统。4、根据权利要求1所述的数据加密、解密系统,其特征在于,所述加密后的文件格式为文件头密文其中密文为输入的数据用对称密钥Keyl加密后的内容,文件头包含-个或者多个用户的公钥对Keyl加密后的密文。5、根据权利要求4所述的数据加密、解密系统,其特征在于,所述文件头的结构为<table>tableseeoriginaldocumentpage3</column></row><table>其中,Ki为用名字为Ni的公钥对Keyl加密后的获得的Keyl的密文Keyl',字段Misc包含该文件的其它管理信息,如文件长度、数据校验等,Ni包含了从互联网上存取Ki所需要的索引信息;所述文件头的结构还可以为-<table>tableseeoriginaldocumentpage3</column></row><table>此结构中,在K1,K2…Km中我们存贮的是用各用户的公钥对另外一个密码Key2进行加密后的数据Key2',而Ks存贮的是用Key2对Keyl用对称加密算法如AES等进行加密后的数据结果Keyl',文件的数据用Keyl对称加密,字段Misc包含该文件的其它管理信息,如文件长度、数据校验等,Ni包含了从互联网上存取Ki所需要的索引信息。6、根据权利要求5所述的数据加密、解密系统,其特征在于,所述第一密码Keyl和第二密码Key2,可以由客户端子系统自动随机产生,也可以由用户输入。7、根据权利要求1或2所述的数据加密、解密系统,其特征在于,所述对第一密码进行加密所需要的公钥,可以根据用户的设置,由客户端系统从本地存储器或者通过互联网从远程服务器获取。8、根据权利要求1所述的数据加密、解密系统,其特征在于,所述客户端子系统的解密过程,可以由客户端子系统通过互联网向远程服务提交对第一密码进行解密的作业请求,由远程服务器返回解密后的第一密码,再用解密后的第一密码来解密文件数据部分的密文;还可以由客户端子系统通过互联网向远程服务提交对第二密码进行解密的作业请求,由远程服务器返回解密后的第二密码,再用解密后的第二密码来解密文件头中的第一密码的密文,然后用第一密码来解密文件数据部分的密文;它还可以由用户直接输入第一密码,或者由客户端子系统从本地或者通过互联网从远程服务器获取用户的私钥对加密后的第二和第一密码进行解密。9、一种数据加密、解密系统的方法,其特征在于,所述加密/解密主要步骤包括1)用户输入一个或者多个该文件的读者的身份标识,该用户我们称之为该文件的作者;2)作者通过互联网向其所属服务器发出作业请求,检索相应读者发布的公钥,如果其他读者所属的服务器和作者的不同,则由作者所属的服务器向其他读者所属的服务器发出作业请求,并将作业结果返回作者,如果使用的是基于身份的公、私钥加密技术,这一步可以是根据各读者的身份标识在本地计算出他们各自的公钥,无需通过网络从服务器获取;3)根据作者输入或者由系统自动随机产生的密码Keyl,用步骤2中获取的各读者的公钥对Keyl进行加密计算,并将Keyl的密文和各公钥名及其对应的计算结果存储于文件头的各字段;4)用Keyl对文件内容进行对称加密,作为文件密文部分;5)根据特定算法计算Misc字段的数据,对文件进行封包;6)根据文件头中的Misc字段验证文件头和文件数据的正确性;7)根据文件头部该读者的公钥名,通过互联网从该读者的服务器获取或由该读者自己在本地存储器提供相应的私钥;8)假设获取的是对应Ni的私钥,用该私钥对Ki进行解密,获取对称密码Keyl;9)用Keyl对文件的密文部分进行解密,获取明文。所述加密/解密的另一种方法步骤包括1)用户输入一个或者多个该文件的读者的身份标识,该用户我们称之为该文件的作者;2)作者通过互联网向其所属服务器发出作业请求,检索相应读者发布的公钥,如果其他读者所属的服务器和作者的不同,则由作者所属的服务器向其他读者所属的服务器发出作业请求,并将作业结果返回作者,如果使用的是基于身份的公、私钥加密技术,这一步可以是根据各读者的身份标识在本地计算出他们各自的公钥,无需通过网络从服务器获取;3)根据作者输入或者由系统自动随机产生的密码Keyl和Key2,用Key2对Keyl用对称加密算法进行加密,并将Keyl的密文存储于文件头部;4)用步骤2中获取的各读者的公钥对Key2进行加密计算,并将各公钥名及其对应的计算结果存储于文件头的各字段;5)用Keyl对文件内容进行对称加密,作为文件密文部分;6)根据特定算法计算Misc字段的数据,对文件进行封包;7)根据文件头中的Misc字段验证文件头和文件数据的正确性;8)根据文件头部该读者的公钥名,通过互联网从该读者的服务器获取或由该读者自己在本地存储器提供相应的私钥;9)假设获取的是对应Ni的私钥,用该私钥对Ki进行解密,获取对称密码Key2;10)用密码Key2对Keyl的密文进行解密,得到密码Keyl;11)用Keyl对文件的密文部分进行解密,获取明文。全文摘要本发明公开了一种通过互联网自动完成数据文件加密和解密的系统和方法。该系统包括一个接受用户指令对文件进行加密和解密、以及进行公/私钥管理的客户端子系统和一个从客户端子系统处接受作业请求、执行作业并返回作业结果的服务器子系统。读者首先将其公钥发布到服务器子系统上,用户通过自己设置的密码Keyl对文件明文进行对称加密;然后用户通过互联网获得该读者的公钥,并用该公钥对密码Keyl进行不对称加密后存储于文件头部,读者接受到用户的文件之后,首先通过自己的私钥对文件头部中密码Keyl的密文进行解密,获得Keyl,然后再利用Keyl对文件的密文进行解密得到明文。本发明通过将文件的加密/解密和密钥的管理与互联网相结合,方便用户随时随地使用文件加密解密。文档编号H04L9/28GK101123495SQ20071003013公开日2008年2月13日申请日期2007年9月7日优先权日2007年9月7日发明者革农申请人:革农
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1