一种多读者文档加密和解密方法

文档序号:7926542阅读:104来源:国知局

专利名称::一种多读者文档加密和解密方法
技术领域
:本发明涉及一种数据加密和解密的方法,尤其涉及一种通过互联网自动完成多读者授权文档加、解密的方法。
背景技术
:在一种数据加密、解密系统和方法(申请号200710030135.2,申请人农革)中提出了一个加密方案,该方案利用每个读者的公钥对文件密码进行加密,然后把加密后的密码和读者身份信息附在文件头中。解密时根据文件头中的读者身份信息,通过网络获取该读者的私钥,再利用该私钥解密文件头中的文件密码,然后用解密后的文件密码对文件进行解密。用该方案生成的文件,对每一个该文件的读者,在文件头中都包含了用该读者的公钥进行加密后的文件密码。假设每个读者的授权信息需要m字节,存储n个读者的授权信息所需的空间为nm字节。在实际应用中,为了使加密后的文件密码被破解的难度增加,m的典型值为256到512个字节。不失一般性,假设m为256;如果n为1024,则授权信息至少需要256K字节以上。这样就导致了该方案的一个缺点当读者数增加时,授权信息增长过快、占用过多的存储空间。
发明内容本申请提出一个新型的文件加密和授权方案,有效克服上述所提方案的缺点。利用本发明生成的每个文件,其中包含的授权信息所需的存储空间约为32n字节,其中n为读者数。假设n为1024,本发明的方案只需要32K字节的空间来存储加密文件的读者授权信息。多读者文档加密和解密方法是基于一种加密和解密系统,该系统包括一个接受用户指令对文件进行加密和解密、以及进行公/私钥管理的客户端系统和一个从客户端子系统处接受作业请求、执行作业并返回作业结果的服务器系统,客户端子系统和服务器子系统通过互联网进行数据通讯。客户端系统的公/私钥管理包括利用用户的身份验证码通过互联网登录远程服务器系统,并从用户处接受指令,对存储于远程服务器系统中的公、私钥进行更新、发布和检索管理,还包括在本地生成公、私钥,并将其存储到远程服务器系统。服务器系统执行的作业包括公/私钥的生成、存储、发布和管理,所述公钥的发布信息的查阅,服务器还根据用户的预先设置对来自不同用户的査阅请求作出权限控制,根据用户在服务器中所存储的密钥对作业中提交的数据进行加密、解密、签名和验证签名。该方法加密过程为11)在所述客户端,作者A把文件密码Kb和一个随机数S用作者的密钥Kp进行加密,获取加密后的密码数据X,并把X存储于Fd的文件头;12)把n个读者按每组不多于g个读者分为j组,对每组读者重复步骤13)—14);13)用Ks对该组读者的身份信息和X进行签名运算,获得该组读者授权信息的签名数据H;14)把该组读者的身份信息和签名数据H作为一个记录,存储于Fd的文件头;15)把源文件Fs用Kb加密后获得密文Y,然后把Y存储于Fd的文件头之后。该方法解密过程为21)在所述客户端,读者R查找Fd文件头中所有读者组,如果有读者组包含R为读者,则把该组的读者身份信息、签名数据和加密后的密码数据X—起通过互联网发往服务器请求解密;22)所述服务器收到解密请求后,根据该请求中的读者身份信息和加密后的密码数据X用作者的密钥Kp验证读者R是否属于该读者组;23)如果步骤2中验证签名不通过,则拒绝该请求并退出,否则进行下一步;24)用作者的密钥Ks对X进行解密,获取加密Fs的密码Kb;25)把Kb通过互联网返回给提交请求的读者R;26)读者R用Kb把Fd解密还原为源文件Fs。上述整个加密文件Fd的数据结构为<table>tableseeoriginaldocumentpage7</column></row><table>上述每个读者组的数据结构为:<table>tableseeoriginaldocumentpage8</column></row><table>利用本发明生成的每个文件,其中包含的授权信息所需的存储空间约为32n字节,其中n为读者数;假设n为1024,本发明的方案只需要32K字节的空间来存储加密文件的读者授权信息。而
背景技术
中专利中的方案所需的256K字节相比,仅为其1/8,因而显著提高了存储效率,可用于对具有大读者群的文件进行加密授权。图la为本方法的加密流程图,图lb为本方法的解密流程图。图2为本方法所基于系统的结构图。具体实施例方式下面结合附图对本发明进行进一步阐述。如图2所示,本发明所基于的系统基础包括一个接受用户指令对文件进行加密和解密、以及进行公/私钥管理的客户端系统和一个从客户端子系统处接受作业请求、执行作业并返回作业结果的服务器系统。该系统的用户通过客户端来使用本系统所提供的文件加密解密服务,各客户端和服务器之间通过互联网进行通信。在下面的描述中,作者是制作该文件的用户,而读者是被作者授权可以解密该文件的用户,每个文件的作者都是该文件的读者。本方案中,每个作者都有属于自己的一对密钥Kp和Ks,这两个密钥可以相同,也可以不同,该对密钥被用来对文件进行加密、解密和读者授权。如图la所示,作者A把源文件Fs加密到一个有n个读者的目的文件Fd的步骤如下1)在客户端,作者A把文件密码Kb和一个随机数S用作者的密钥Kp进行加密,获取加密后的密码数据X,并把X存储于Fd的文件头。2)把n个读者按每组不多于g个读者分为j组,对每组读者重复步骤3)—4)03)用Ks对该组读者的身份信息和X进行签名运算,获得该组读者授权信息的签名数据H。4)把该组读者的身份信息和签名数据H作为一个记录,存储于Fd的文件头。5)把源文件Fs用Kb加密后获得密文Y,然后把Y存储于Fd的文件头之后。整个加密文件Fd的数据结构为<table>tableseeoriginaldocumentpage9</column></row><table>如图lb所示,读者R试图把一个加密文件Fd解密还原为源文件Fs的方法如下1)在客户端,读者R查找Fd文件头中所有读者组,如果有读者组包含R为读者,则把该组的数据(读者身份信息、签名数据)和加密后的密码数据X—起通过互联网发往服务器请求解密;2)服务器收到解密请求后,根据该请求中的读者身份信息和加密后的密码数据X用作者的密钥Kp验证读者R是否属于该读者组;3)如果步骤2中验证签名不通过,则拒绝该请求并退出,否则进行下一步;4)用作者的密钥Ks对X进行解密,获取加密Fs的密码Kb;5)把Kb通过互联网返回给提交请求的读者R。6)读者R用Kb把Fd解密还原为Fs。我们通过一个应用例子来对本发明做更详细的描述。假设用户ul为作者,其要用密码"abc"加密源文件Fs到目的文件Fd,并且授权用户ul到u40可以解密Fd,即ul到u40为Fd的读者。假设读者以每16人为一组。以下为运用本发明进行加密和解密的具体过程。加密1.把文件密码"abc"和一个随机数"0811"用作者(用户ul)的密钥Kp进行加密,获取加密后的密码数据X,并把X存储于Fd的文件头;2.把读者ul到u40分成三组ul到u16、u17到u32、u33到u40;对每组执行以下步骤3到4的操作;3.用作者的密钥Ks对该组用户的身份信息和X进行签名,获得签名数据H;4.把该组读者的身份信息和签名数据H作为一个记录,存储于Fd的文件头;5.把文件Fs用密码"abc"加密获取密文,并把密文存储于Fd的文件头之后。解密假设读者U2要解密文件Fd,其过程为1.查找Fd文件头中所有读者组,发现其本身包含于组l;2.把组1的数据(读者ul到ul6身份信息、签名数据)和加密后的密码数据X—起发往服务器请求解密;3.服务器收到解密请求后,根据该请求中的读者身份信息和加密后的密码数据X用作者ul的密钥Kp验证读者u2是否属于该读者组;4.步骤3中签名通过验证,进行下一步,否则退出;5.用作者的密钥Ks对X进行解密,获取文件加密原密码"abc";6.把"abc"返回给提交请求的读者u2。6.读者u2用"abc"来把Fd解密还原为Fs。假设非授权读者u99试图解密文件Fd,其过程为-l.查找文件头中所有读者组,发现其本身不包含于任何读者组,退出。在以上例子中,如果u99在知道自己未获授权的情况下仍然往服务器发送请求,企图欺骗服务器获取文件解密密码,则会进入以下过程-1.假设u99选择任一读者组,不失一般性,假设为读者组2,并把自己替换该组中的任一读者,然后把修改后的该组数据(读者身份信息、签名数据)和加密后的密码数据X—起发往服务器请求解密;2.服务器收到解密请求后,根据该请求中的读者身份信息和加密后的密码数据X用作者的密钥Kp验证读者u2是否属于该读者组;3.步骤2中的签名验证没有通过,服务器拒绝该请求并退出。权利要求1、一种多读者文档加密和解密方法,它是基于一种加密和解密系统,该系统包括一个接受用户指令对文件进行加密和解密、以及进行公/私钥管理的客户端系统和一个从客户端子系统处接受作业请求、执行作业并返回作业结果的服务器系统,客户端子系统和服务器子系统通过互联网进行数据通讯客户端系统的公/私钥管理包括利用用户的身份验证码通过互联网登录远程服务器系统,并从用户处接受指令,对存储于远程服务器系统中的公、私钥进行更新、发布和检索管理,还包括在本地生成公、私钥,并将其存储到远程服务器系统;服务器系统执行的作业包括公/私钥的生成、存储、发布和管理,所述公钥的发布信息的查阅,服务器还根据用户的预先设置对来自不同用户的查阅请求作出权限控制,根据用户在服务器中所存储的密钥对作业中提交的数据进行加密、解密、签名和验证签名,其特征在于,该方法加密过程为11)在所述客户端,作者A把文件密码Kb和一个随机数S用作者的密钥Kp进行加密,获取加密后的密码数据X,并把X存储于Fd的文件头;12)把n个读者按每组不多于g个读者分为j组,对每组读者重复步骤13)-14);13)用Ks对该组读者的身份信息和X进行签名运算,获得该组读者授权信息的签名数据H;14)把该组读者的身份信息和签名数据H作为一个记录,存储于Fd的文件头;15)把源文件Fs用Kb加密后获得密文Y,然后把Y存储于Fd的文件头之后;所述方法解密过程为21)在所述客户端,读者R查找Fd文件头中所有读者组,如果有读者组包含R为读者,则把该组的读者身份信息、签名数据和加密后的密码数据X一起通过互联网发往服务器请求解密;22)所述服务器收到解密请求后,根据该请求中的读者身份信息、签名数据和加密后的密码数据X用作者的密钥Kp验证读者R是否属于该读者组;23)如果步骤2中验证签名不通过,则拒绝该请求并退出,否则进行下一步;24)用作者的密钥Ks对X进行解密,获取加密Fs的密码Kb;25)把Kb通过互联网返回给提交请求的读者R;26)读者R用Kb把密文Y解密还原为源文件Fs。2、根据权利要求1所述的多读者文档加密和解密方法,其特征在于,所述整个加密文件Fd的数据结构为用作者的密钥Kp加密读者组l读者组2读者组j原文件Fs用KbKb和S后的密文X加密后的密文Y3、根据权利要求1所述的多读者文档加密和解密方法,其特征在于,所述每个读者组的数据结构为读者1身读者2身读者g身该读者组的签名数据H份信息份信息份信息全文摘要本发明公开了一种多读者文档加密和解密方法。加密过程作者首先在客户端用密钥Kp将文件密码Kb和一个随机数S加密得到密码数据X,用密码Kb将源文件Fs加密成密文Y,然后将所有读者按照一定规律分组,利用密钥Ks对每组读者身份信息和X进行签名得到签名数据H,最后将X、所有读者组信息和Y分别存储在加密文件Fd之中;解密过程读者查找Fd文件头所有读者组信息,确认自己为授权读者,然后将X、自己所属读者组信息发往服务器请求解密,服务器利用作者的密钥Kp验证该读者信息,再利用密钥Ks对X进行解密,得到密码Kb并返回给读者,然后读者利用Kb将Y解密还原为Fs。利用本发明不但可以对具有大读者群的文件进行加密授权,还显著提高了存储效率。文档编号H04L9/08GK101409618SQ200810219339公开日2009年4月15日申请日期2008年11月24日优先权日2008年11月24日发明者革农申请人:革农
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1