发明名称 基于消息依赖于密钥的隐私数据加密方法
摘要 本发明公开了一种基于消息依赖于密钥的隐私数据加密方法,主要解决现有技术中未考虑明文和密钥的相关性和用电子邮件分发群组公钥带来的密钥相关攻击和密钥泄露问题。其实现步骤为:1.授权中心初始化系统参数;2.用户向授权中心进行身份验证;3.授权中心为通过身份验证的用户分发密钥;4.用户根据获得的密钥处理明文文件得到密文;5.用户将密文上传至云服务器;6.用户使用时,再向云服务器请求下载密文,请求通过后获得密文进行解密。本发明采用单用户模式下基于消息依赖于密钥的加密方法实现了对区块链钱包文件的安全加密,能够避免密钥泄漏,减轻密钥相关攻击,提高钱包文件的安全性。
申请公布号 CN106534092A 申请公布日期 2017.03.22
申请号 CN201610948549.2 申请日期 2016.11.02
申请人 西安电子科技大学 发明人 高军涛;王笠燕;李雪莲;王丹妮;王誉晓
分类号 H04L29/06(2006.01)I;H04L29/08(2006.01)I 主分类号 H04L29/06(2006.01)I
代理机构 陕西电子工业专利中心 61205 代理人 王品华
主权项 基于消息依赖于密钥的隐私数据加密方法,包括如下步骤:(1)初始化:(1a)授权中心确定第一安全参数λ、第二安全参数k、第三安全参数γ、关键字个数的参量τ和伯努利分布的参量θ=2<sup>‑λ</sup>,定义明文矩阵的消息长度l、维数N、分组长度m,分别为l=l(λ)、N=N(λ)、m=m(λ);(1b)授权中心定义纠错码的生成矩阵为G=G<sub>m×l</sub>,设置解纠错码的个数为d=(θ+σ)·m,根据生成矩阵G和解纠错码个数d选取一组二进制线性纠错码D,其中,G<sub>m×l</sub>表示生成矩阵为m×l阶,σ是(0,1)区间上选取的固定值;(1c)对于任意比特串K∈{0,1}<sup>γ</sup>,授权中心定义P<sub>K</sub>(x)是{0,1}<sup>τ</sup>区间上的伪随机置换函数族,定义F<sub>K</sub>(x)是定义域为{0,1}<sup>τ</sup>、值域为{0,1}<sup>γ</sup>的第一伪随机函数族,定义G<sub>K</sub>(x)是定义域为[1,n]、值域为{0,1}的第二伪随机函数族;(1d)授权中心公开纠错码D、生成矩阵G、伪随机置换函数族P<sub>K</sub>(x)、第一伪随机函数族F<sub>K</sub>(x)、第二伪随机函数族G<sub>K</sub>(x)和公共参数{l,m,N,θ};(2)身份注册:(2a)用户将个人身份信息提交给授权中心;(2b)授权中心审核该用户提交的身份信息是否真实,若真实,则执行步骤(3),否则,拒绝注册;(3)密钥分发:(3a)授权中心定义有限域<img file="FDA0001139967960000011.GIF" wi="299" he="55" />选取矩阵<img file="FDA0001139967960000012.GIF" wi="207" he="63" />作为用户加密明文的对称密钥,其中,<img file="FDA0001139967960000013.GIF" wi="36" he="46" />是整数环,2是素数;(3b)授权中心为用户生成消息认证码HMAC操作所需的密钥k<sub>mac</sub>;(3c)授权中心通过安全信道将消息{S||k<sub>mac</sub>||γ||τ}发送给用户;其中,S是用户加密明文的对称密钥,γ是第三安全参数,τ是关键字个数的参量,||表示级联符号;(3d)用户将对称密钥S、消息认证码HMAC密钥k<sub>mac</sub>、第三安全参数γ和关键字个数的参量τ秘密保存;(4)处理明文文件:(4a)用户加密明文文件ε<sub>j</sub>时,对其明文矩阵进行分块,定义每个明文矩阵块为<img file="FDA0001139967960000021.GIF" wi="227" he="63" />其中,1≤j≤n,n为明文文件总数;(4b)用户根据对称密钥S加密每个明文矩阵块M,获得对应的密文矩阵块W:W=(A,C),其中,A是从<img file="FDA0001139967960000022.GIF" wi="110" he="62" />中随机选取的系数矩阵,C=A·S+E+G·M,S是对称密钥,G是纠错码D的生成矩阵,E是从Ber<sub>θ</sub><sup>m×N</sup>中随机选取的噪声矩阵,Ber<sub>θ</sub>表示{0,1}上的伯努利分布,1的概率为θ,0的概率为1‑θ;(4c)将该明文文件ε<sub>j</sub>所有的密文矩阵块W级联起来,得到该明文文件ε<sub>j</sub>对应的密文文件ψ<sub>j</sub>;(4d)用户根据消息认证码HMAC密钥k<sub>mac</sub>和密文文件ψ<sub>j</sub>计算密文文件ψ<sub>j</sub>的消息认证标签T<sub>j</sub>:T<sub>j</sub>=HMAC(k<sub>mac</sub>,ψ<sub>j</sub>),其中,HMAC()表示消息认证标签生成算法;(4e)用户随机均匀选取第一秘密值s∈{0,1}<sup>γ</sup>、第二秘密值r∈{0,1}<sup>γ</sup>,生成一个可记录2<sup>τ</sup>个关键字(i,w<sub>i</sub>)的索引字典,将索引字典和两个秘密值s、r秘密保存;其中,i为标号,i∈[1,2<sup>τ</sup>],w<sub>i</sub>为关键字,w<sub>i</sub>∈{0,1}<sup>*</sup>,*表示任意长度;(4f)用户生成明文文件ε<sub>j</sub>的索引比特串I<sub>j</sub>;(5)数据上传:(5a)用户通过安全的信道,将消息认证码密钥k<sub>mac</sub>发送给云服务器,并将消息{I<sub>j</sub>||ψ<sub>j</sub>||T<sub>j</sub>}上传至云服务器,其中,1≤j≤n,n为明文文件总数,||表示级联符号;(5b)云服务器按照下式对每个密文文件进行完整性验证,验证结果用v<sub>j</sub>表示:v<sub>j</sub>=Verify(k<sub>mac</sub>,ψ<sub>j</sub>,T<sub>j</sub>),其中,1≤j≤n,n为明文文件总数,Verify()表示消息认证码HMAC的验证算法;若v<sub>j</sub>=1,表明ψ<sub>j</sub>在上传过程中未被篡改,则云服务器接收该消息,并将索引字符串I<sub>j</sub>保存到索引字符串集合I中,同时向用户返回“ψ<sub>j</sub>上传成功”的通知;若v<sub>j</sub>=0,表明ψ<sub>j</sub>在上传过程中被篡改,则云服务器拒绝接收该消息,并向用户返回“ψ<sub>j</sub>上传错误”的通知;(5c)用户根据收到的通知内容确定是否上传成功:若用户接收到“ψ<sub>j</sub>上传成功”的通知,表明ψ<sub>j</sub>已经成功上传至云服务器;若用户接收到“ψ<sub>j</sub>上传错误”的通知,则返回步骤(5a);(6)下载密文并解密:(6a)用户生成需下载文件中的关键字w<sub>μ</sub>的陷门<img file="FDA0001139967960000031.GIF" wi="91" he="70" />并上传至云服务器;(6b)云服务器根据陷门<img file="FDA0001139967960000032.GIF" wi="90" he="70" />对已存储的文件索引比特串集合I进行匹配检索,若匹配成功,云服务器给用户返回相应的密文ψ,继续步骤(6c);若匹配失败,则云服务器给用户返回“检索失败”的通知;(6c)用户解密密文ψ获得对应的明文文件ε。
地址 710071 陕西省西安市雁塔区太白南路2号