发明名称 基于位置信息的限定区域文件保密方法
摘要 本发明公开了一种基于位置信息的限定区域文件保密方法,目的是解决在一定区域内进行安全通信的问题。技术方案是先构建一套由用户主机、安全管理主机、全球定位系统组成的基于位置信息的限定区域文件保密系统,安全管理主机上安装文件权限管理程序;用户主机上安装有位置信息模块、文件权限服务程序;其保密方法如下:安全管理主机为用户主机生成公私钥;发送方加密消息,并根据消息限定的安全区域生成位置密钥;安全管理主机判断接收方位置密钥数据合法性,以验证接收方在安全区域;接收方在限定区域解密消息。本发明采取用户口令与地理位置作为双重认证手段,实现了秘密的区域可控,适合于保密会议、保密室等机密场所。
申请公布号 CN103401834B 申请公布日期 2016.06.15
申请号 CN201310263854.4 申请日期 2013.06.27
申请人 中国人民解放军国防科学技术大学 发明人 付邵静;程力;张鹏飞;叶帅;周文浩
分类号 H04L29/06(2006.01)I;H04L9/32(2006.01)I;H04L9/08(2006.01)I;H04L9/06(2006.01)I 主分类号 H04L29/06(2006.01)I
代理机构 国防科技大学专利服务中心 43202 代理人 郭敏
主权项 一种基于位置信息的限定区域文件保密方法,其特征在于包括以下步骤:第一步,构建一套基于位置信息的限定区域文件保密系统,该系统由用户主机、安全管理主机、全球定位系统组成;用户主机是通信网络的端点,与全球定位系统通过无线信号相连,用户主机之间通过通信网络相连;安全管理主机与用户主机和全球定位系统均通过无线信号相连;全球定位系统是能够为用户主机提供位置信息的定位系统;安全管理主机是用于管理用户主机通信的计算机,其上安装操作系统和文件权限管理程序;文件权限管理程序是运行在操作系统之上的应用程序,由用户管理模块、密钥管理模块、第一文件管理模块以及第一通信模块构成;用户管理模块负责用户主机信息的编号、管理,并将用户编号信息发送至密钥管理模块;密钥管理模块根据用户主机编号信息生成用户会话所需要的公私钥,将公私钥发送至第一文件管理模块;密钥管理模块内有位置密钥库,位置密钥库中存储根据安全区域生成的位置密钥;第一文件管理模块将接收到的公私钥进行存储,并将公私钥传送给第一通信模块;第一通信模块负责通过网络以密文形式将公私钥及保密数据发送给用户主机;用户主机是用于用户间通信的计算机,其上安装有位置信息模块、操作系统和文件权限服务程序;用户主机分为接收方用户主机与发送方用户主机,两者安装的软件相同,只是在消息收发阶段文件权限服务程序各个模块工作的顺序不同;位置信息模块接收全球定位系统发布的位置信息并将位置信息发送给文件权限服务程序;文件权限服务程序是添加在操作系统中的服务程序,作为操作系统的服务程序为其他可能操作保密文件的应用程序提供文件权限检查服务,由加解密模块、第二文件管理模块、第二通信模块组成;在文件加密过程中,发送方用户主机的位置信息模块从键盘接收位置信息发送给加解密模块;发送方用户主机的第二文件管理模块将需要加密的明文与接收方用户主机的公钥发送至加解密模块,加解密模块将接收到的位置信息通过哈希映射产生位置密钥;加解密模块使用键盘输入的会话密钥对从第二文件管理模块传来的明文进行加密产生密文并将密文传送给第二通信模块;加解密模块将会话密钥与位置密钥异或,产生密钥;加解密模块将密钥进行加密,得到加密后的密钥,发送给第二通信模块;第二通信模块将加密后的密钥与密文发送给安全管理主机的第一通信模块;在文件解密过程中,接收方用户主机位置信息模块从全球定位系统获取接收方用户主机当前位置信息并将位置信息发送给加解密模块,加解密模块将位置信息通过哈希映射产生位置密钥并将位置密钥发送给第二通信模块;第二通信模块将位置密钥发送给安全管理主机,安全管理主机验证位置密钥合法性;第二通信模块从安全管理主机的第一通信模块处接收到发送方用户主机发送的加密后的密钥和密文,将加密后的密钥和密文发送给加解密模块;第二文件管理模块将接收方用户主机的私钥发送给加解密模块;加解密模块使用接收方用户主机的私钥,对加密后的密钥进行解密操作,得到密钥,将密钥与位置密钥进行异或操作,得到会话密钥,对密文进行解密;第二步、安全管理主机的文件权限管理程序对用户主机统一编号,为每个用户主机生成单独的公私钥,并将公私钥加密后分发给用户主机,方法是:2.1密钥管理模块对用户主机统一编号,用户主机有k台,分别编号为a<sub>1</sub>,a<sub>2</sub>,...,a<sub>i</sub>,...,a<sub>k</sub>,通过安全套接字层密码库OpenSSL为每个用户主机编号生成对应的公私钥,存入第一文件管理模块,OpenSSL为编号a<sub>i</sub>的用户主机生成的公私钥为<p(a<sub>i</sub>),s(a<sub>i</sub>)>,i为正整数,1≤i≤k,p(a<sub>i</sub>)为编号a<sub>i</sub>主机对应的公钥,s(a<sub>i</sub>)为编号a<sub>i</sub>主机对应的私钥;2.2第一通信模块将所有用户的公钥即<p(a<sub>1</sub>),p(a<sub>2</sub>),...p(a<sub>i</sub>),....p(a<sub>k</sub>)>,依次分发给所有的用户主机;再将各个用户主机的私钥单独发送给相应的用户主机,最终每个用户主机都收到自身私钥及所有用户的公钥;2.3用户主机的第二通信模块从安全管理主机的第一通信模块接收到自身私钥及所有用户的公钥后,发送给加解密模块;2.4用户主机的加解密模块将自身私钥及所有用户的公钥发送给第二文件管理模块,第二文件管理模块将其存储;第三步、发送方用户主机<img file="FDA0000968327870000031.GIF" wi="92" he="87" />即编号为a<sub>m</sub>的用户主机与接收方用户主机<img file="FDA0000968327870000032.GIF" wi="91" he="86" />即编号为a<sub>n</sub>的用户主机进行安全通信,m,n是正整数,1≤m,n≤k,<img file="FDA0000968327870000033.GIF" wi="97" he="86" />生成密文f(m)与加密的密钥R(key),并发送给安全管理主机,方法是:3.1发送方用户主机的位置信息模块从键盘接收保密文件需要限定的位置信息loc,并将loc传送给加解密模块,loc包括文件的使用权限所需要限制的经度logti,纬度lati,范围s;3.2加解密模块将loc通过哈希映射产生位置密钥h(loc),即通过哈希算法h,将loc=(logti,lati,s)转化为位置密钥h(loc);3.3第二文件管理模块将从键盘输入的明文m发送至加解密模块;3.4加解密模块使用键盘输入的会话密钥key<sub>c</sub>对明文m进行加密,得到密文f(m);3.5加解密模块将会话密钥key<sub>c</sub>与位置密钥h(loc)异或,产生密钥key;3.6第二文件管理模块从<p(a<sub>1</sub>),p(a<sub>2</sub>),...p(a<sub>i</sub>),....p(a<sub>k</sub>)>中获得接收方用户主机的公钥p(a<sub>n</sub>),发送给加解密模块,加解密模块将密钥key用p(a<sub>n</sub>)进行加密,得到加密后的密钥R(key);3.7第二通信模块将R(key)与f(m)发送给安全管理主机;第四步:安全管理主机的第一通信模块将接收到的密文f(m)与加密后的密钥R(key)进行登记、编号,并存入第一文件管理模块;将发送方用户主机<img file="FDA0000968327870000041.GIF" wi="94" he="87" />此次通信请求数据<a<sub>m</sub>,time>发送给接收方用户主机<img file="FDA0000968327870000042.GIF" wi="119" he="99" /><a<sub>m</sub>,time>是含a<sub>m</sub>和time的二元组,a<sub>m</sub>为发送方主机编号,time为接收到消息的时间;第五步:接收方用户主机<img file="FDA0000968327870000043.GIF" wi="87" he="87" />在接收到通信请求数据<a<sub>m</sub>,time>后,产生位置密钥数据&lt;a<sub>n</sub>,h(loc’),&lt;a<sub>m</sub>,time&gt;&gt;,将位置密钥数据&lt;a<sub>n</sub>,h(loc’),&lt;a<sub>m</sub>,time&gt;&gt;发送给安全管理主机,位置密钥数据是包含接收方用户主机编号a<sub>n</sub>,位置密钥h(loc′),通信请求<a<sub>m</sub>,time>的三元组,方法是:5.1接收方用户主机<img file="FDA0000968327870000044.GIF" wi="86" he="87" />的位置信息模块从全球定位系统获取当前位置信息loc′并将loc′发送给加解密模块,加解密模块将loc′通过哈希映射产生位置密钥h(loc′),即通过哈希算法h,loc′中含经度logti′,纬度lati′,范围s′,将位置loc′=h(logti′,lati′,s′)转化为位置密钥h(loc′);5.2接收方用户主机第二通信模块将位置密钥数据&lt;a<sub>n</sub>,h(loc’),&lt;a<sub>m</sub>,time&gt;&gt;发送至安全管理主机;第六步:安全管理主机在接收到<img file="FDA0000968327870000045.GIF" wi="91" he="87" />的位置密钥数据&lt;a<sub>n</sub>,h(loc’),&lt;a<sub>m</sub>,time&gt;&gt;后,判断该位置密钥数据是否合法,如果合法,就将密文f(m)与加密后的密钥R(key)发送给接收方用户主机<img file="FDA0000968327870000046.GIF" wi="119" he="100" />方法是:6.1安全管理主机的第一通信模块将接收到的&lt;a<sub>n</sub>,h(loc’),&lt;a<sub>m</sub>,time&gt;&gt;发送至密钥管理模块;6.2密钥管理模块接收到&lt;a<sub>n</sub>,h(loc’),&lt;a<sub>m</sub>,time&gt;&gt;后,将h(loc′)与密钥管理模块中事先存储的安全区域的位置密钥库进行比对,如果位置密钥库中存在h(loc′),说明位置密钥数据合法,转到6.3步,如果位置密钥库中不存在h(loc′),那么第一通信模块发送错误信息error给接收方用户主机,转第九步;6.3第一文件管理模块将第四步接收到的密文f(m)与加密后的密钥R(key)发送给第一通信模块;6.4第一通信模块将密文f(m)与加密后的密钥R(key)发送至编号为a<sub>n</sub>的接收方用户主机<img file="FDA0000968327870000051.GIF" wi="119" he="87" />第七步、接收方用户主机<img file="FDA0000968327870000052.GIF" wi="84" he="86" />对接收到的加密后的密钥R(key)和密文f(m)进行解密,方法是:7.1接收方用户主机<img file="FDA0000968327870000053.GIF" wi="87" he="87" />的位置信息模块从全球定位系统获取当前自身位置信息loc″并将loc″发送给加解密模块,加解密模块将loc″通过哈希映射产生位置密钥h(loc″),loc″含经度logti″纬度lati″,范围s″,通过哈希算法h,将限定位置loc″=h(logti″,lati″,s″)转化为位置密钥h(loc″);7.2接收方用户主机第二通信模块从安全管理主机处接收加密后的密钥R(key)和密文f(m),将R(key)发送给加解密模块;7.3加解密模块从第二文件管理模块中得到2.2步获得的私钥s(a<sub>n</sub>),通过RSA算法对R(key)进行解密,得到密钥key,加解密模块将密钥key与位置密钥h(loc″)进行异或操作,如果位置密钥h(loc″)与3.1步中发送方用户主机限定的位置密钥h(loc)一致,即h(loc″)=h(loc),则产生正确的会话密钥key<sub>c</sub>,转7.4步,否则产生错误的会话密钥,转第九步;7.4加解密模块通过AES解密算法用会话密钥key<sub>c</sub>对密文f(m)进行解密,发送至第二文件管理模块,并显示文件内容m;7.5删除之前接收到的密文f(m)、密钥R(key);第八步、如果用户主机需要继续通信,转第三步,若用户主机不需要继续通信,则转第九步;第九步,结束。
地址 410073 湖南省长沙市开福区德雅路109号