一种同态密钥生成、共享方法及装置的制造方法

xiaoxiao2021-2-23  124

一种同态密钥生成、共享方法及装置的制造方法
【技术领域】
[0001] 本发明设及密钥生成方法,尤其是一种同态密钥生成、共享方法及装置。
【背景技术】
[0002] 目前传统的密钥管理技术已经较为成熟,其技术状况如下所示:
[0003] (1)传统的密钥分割技术,必须密钥管理中屯、获得完整的密钥然后进行分割,密钥 管理中屯、操作人员的不适当操作容易导致密钥泄露。
[0004] (2)传统的密钥共享技术通过公钥加密传送密钥,缺乏一个有效的第Ξ方监控密 钥的流转。传统的密钥共享技术,用户可W获得自己文件的加密密钥并将其任意分发,密钥 管理中屯、无法对密钥的流转进行有效的监控。
[0005] (3)传统的密钥共享技术通过公钥加密传送密钥,共享者无法控制被共享者的阅 读次数或者时间。共享者将密钥传送给被共享用户之后,被共享用户既需要将密钥存储在 本地,共享者无法限制被共享用户的阅读次数和时间。
[0006] (4)传统的密钥共享技术通过公钥加密传送密钥,共享者无法取消被共享者的阅 读权利。同(3)所述,被共享用户将密钥存储在本地之后,共享者无法取消被共享者的阅读 权利。
[0007] 公有云的密钥管理和移动互联网中的密钥管理,由于在公有云和移动互联网中, 无法存在一个可信的第Ξ方实现对用户的密钥管理,但每个用户又需要大量的加密密钥用 于文件的加密,因此如何解决公有云和移动互联网中的密钥管理是十分重要的。

【发明内容】

[000引本发明所要解决的技术问题是:针对现有技术存在的问题,提供一种同态密钥生 成、共享方法及装置。通过同态密钥的生成与共享,有效防止密钥管理中屯、人为操作或者黑 客攻击导致的密钥泄露;在整个密钥合成和分配的过程中,用户主密钥W及文件的加密密 钥均是W密文状态进行的,因此密钥管理中屯、不当的人为操作或者黑客对密钥管理中屯、的 攻击都不会影响用户密钥使用的安全性。
[0009] 本发明采用的技术方案如下:
[0010] -种同态密钥生成方法包括:
[0011] 步骤1:用户使用主密钥mk和文件f的文件名相乘,继而通过杂凑函数加密得到字 符串Z;其中主密钥mk是由用户随机选取的随机数。
[0012] 步骤2:用户通过同态合成公钥pk对Z进行加密生成Epk(z),并将Epk(z)和相应的 文件名发送给密钥管理中屯、;
[001引步骤3:密钥管理中屯、选取随机数Ik,使用用户公钥pk加密产生Epk(lk),计算化k (Z)巧pk(lk),并将化k(z脚pkQk)发送给用户,同时将所述化与步骤1中文件f的文件名进 行对应存储;
[0014]步骤4:用户通过同态合成私钥sk解密化k(z)巧pk(lk),得到文件加密密钥k巧二 z*lk,然后用户通过加密密钥key文件f,得到文件f的文件密文。
[0015] 进一步的,所述文件f的文件密文通过用户直接发送给云端存储或者通过用户本 地存储。
[0016] 进一步的,所述用户同态合成公钥pk与用户同态合成私钥sk是通过RSA或 化illier加密算法生成的一一对应的公私钥对;同态合成公钥pk交由密钥管理中屯、进行管 理,同态合成私钥sk由用户本地存储。
[0017]所述文件f的文件密文是通过SM4算法,使用加密密钥k巧对文件f进行加密得到。
[0018] -种同态密钥共享方法包括:
[0019] 步骤11:假设用户U想将自己的文件P共享给其他用户U1,则用户U使用用户U的主 密钥mk和共享文件P的文件名相乘,继而通过杂凑函数求的字符串为Z;所述用户U主密钥mk 通过密钥生成协议或者用户随机选取随机数生成主密钥mk;
[0020] 步骤12:用户U使用其他用户U1的同态合成公钥pkl加密Z,产生化kl(z),并将化kl (Z)W及对应文件P的文件名发送给密钥管理中屯、,并通知密钥管理中屯、要将该文件共享给 其他用户U1;
[0021] 步骤13:密钥管理中屯、得到用户U发送的化kl(z)w及对应文件P的文件名,根据文 件名查询对应化,密钥管理中屯、使用用户U1公钥pkl加密产生化klQk),计算化kl(z)相地1 Qk)=化kl(z*化),密钥管理中屯、将化kl(z*化)发送给其他用户U1;
[0022] 步骤14:其他用户U1使用自己的同态合成私钥ski解密化kl(z*化),获得文件加密 密钥key = z*化;
[0023] 步骤15:其他用户U1根据加密密钥key,对文件P解密,获得文件P中的明文。
[0024] 进一步的,所述其他用户U1同态合成公钥pkl与其他用户U1同态合成私钥ski是通 过RSA或化illier加密算法生成的--对应的公私钥对;同态合成公钥地1交由密钥管理中 屯、进行管理,同态合成私钥ski由其他用户U1本地存储。
[0025] 一种同态密钥生成装置包括:
[0026] 用户,用于使用主密钥mk和文件的文件名相乘,继而通过杂凑函数加密得到字符 串Z;然后使用同态合成公钥pk对Z进行加密生成化k(z),并将Epk(z)和相应的文件名发送 给密钥管理中屯、;当密钥管理中屯、接收到化k(z)巧pk(lk)后,用户通过同态合成私钥sk解 密化k(z)巧pk(lk),得到文件加密密钥k巧=z*化,然后用户通过加密密钥k巧加密文件,得 到文件的文件密文;所述文件f的文件密文通过用户直接发送给云端存储或者通过用户本 地存储;
[0027] 密钥管理中屯、,用于选取随机数Ik,使用用户公钥pk加密产生Epk(lk),计算Epk (Z)巧pkQk),并将化k(z)巧pkQk)发送给用户,同时将化对应其共享文件名进行存储。 [00%]进一步的,所述同态合成公钥pk与同态合成私钥sk是通过RSA或化illier加密算 法生成的一一对应的公私钥对;同态合成公钥pk交由密钥管理中屯、进行管理,同态合成私 钥sk由用户本地存储;所述加密密文是通过SM4算法,使用加密密钥k巧对文件进行加密得 到
[0029] -种同态密钥共享装置包括:
[0030] 用户U,当用户闲尋本地文件f共享给其他用户U1,则用户U使用主密钥mk和共享文 件f的文件名相乘,继而通过杂凑函数求的字符串为Z;然后用户U使用其他用户U1的同态合 成公钥pkl加密z,产生化kl(z),并将Epkl(z)W及对应文件f的文件名发送给密钥管理中 屯、,并通知密钥管理中屯、要将该文件共享给其他用户U1;
[0031] 密钥管理中屯、,用于接收用户U发送的化kl(z)w及对应文件f的文件名,根据文件 名查询对应Ik,密钥管理中屯、使用用户U1公钥pkl加密产生Epkl(lk),计算Epkl(z)地pkl Qk)=化kl(z*化),密钥管理中屯、将化kl(z*化)发送给其他用户U1;
[0032] 其他用户U1,用于使用自己的同态合成私钥ski解密化kl(z*化),获得文件加密密 钥key = Z*化;然后其他用户U1根据加密密钥key,对文件f解密,获得文件f中的明文。
[0033] 综上所述,由于采用了上述技术方案,本发明的有益效果是:
[0034] (1)密文数据流转不可控。通过同态密钥分割实现对密钥的全生命周期的监控,从 而实现对密文数据的控制。
[0035] (2)密钥管理中屯、操作人员失误操作导致密钥泄露。通过同态密码技术进行密钥 的分割,保证了在密钥管理中屯、存储的均是密钥密文,防止了密钥管理中屯、的密文泄露。
[0036] (3)密钥的智能化管理。通过同态密码技术实现密钥的分割,使得用户一个主密钥 便可W秘密的生成不同文件的加密密钥,继而通过密钥管理中屯、进行密钥管理,实现密钥 的智能化管理。
[0037] (5)实现安全高效的密文共享;密钥与密文数据进行分开传送与管理,通过密钥实 现对密文的控制和管理,使得密文的共享安全高效;
[0038] (6)通过密钥实现对用户共享出去的数据进行控制和监控;用户共享出去的密文 数据如果得不到用户的授权则无法获得密钥,同时用户可W自己控制被共享者对于数据的 读取权限,随时进行次数及阅读时间的设置。
【附图说明】
[0039] 本发明将通过例子并参照附图的方式说明,其中:
[0040] 图1本发明同态密钥生成技术原理图。
[0041] 图2是本发明同态密钥共享技术原理图。
【具体实施方式】
[0042] 本说明书中公开的所有特征,或公开的所有方法或过程中的步骤,除了互相排斥 的特征和/或步骤W外,均可任何方式组合。
[0043] 本说明书(包括任何附加权利要求、摘要和附图)中公开的任一特征,除非特别叙 述,均可被其他等效或具有类似目的的替代特征加 W替换。即,除非特别叙述,每个特征只 是一系列等效或类似特征中的一个例子而已。
[0044] 本专利相关说明:
[0045] 1、密钥管理中屯、化M):同态密钥合成,监控密钥使用情况,根据共享用户需求对被 共享者的密钥进行控制,拥有一对通信密钥和一对签名密钥。
[0046] 2、用户(U):密钥的使用者,拥有一个文件加密主密钥mk,可通过密钥管理中屯、的 部分密钥合成用户的每个文件加密密钥;
[0047] 3、云端(Cloud):密文文件存储(根据需求可有可无)。
[0048] 4、公钥地用来加密,私钥sk用来解密。公钥是本用户W及其他用户都可知的,但是 私钥只有本用户可知。
[0049] 5、同态密钥生成过程中用户使用用户公钥pk对Z进行加密的公钥加密 算法,应具 有半同态性,例如RSA,Pa i 11 i er等,文中主要使用的是乘法单同态算法。其中化i 11 i er算法 的原理,具体包括:
[0050] 初始化阶段:n = pq,其中p,q为2个大素数,选择g € Z,,:。唯得gcd(L(gV)dn2),n) = l(gcd为最大公约数
公钥为(n,g),私钥为(p,q)等价为λ(λ=]χηι(ρ-1,q- 1)) (1cm为最小公倍数).
[00川加密阶段:设有明文111£2。,且111<11。选择一个随机数六0,则密文为c = gm · rVodn2.
[0化2] 解密阶段:密文六112,明文
[0化3]经研究分析化i 11 ier满足加法同态性:
[0化4]
[0055] 本设计中都是假设用户拥有加密的通信信道,保证其与密钥管理中屯、通信过程是 安全的。
[0056] 实施方式1:同态密钥生成过程具体为:
[0057] 第一步:用户U使用自己的主密钥mk和文件名相乘,继而通过杂凑函数求的字符串 为Z,使用自己的同态密钥合成公钥地加密Z,产生化k(z),并将其也对应的文件名发送给密 钥管理中屯、KM;
[0058] 第二步:密钥管理中屯、KM得到用户发送的化k(z),选取随机数Ik,使用用户公钥加 密产生化kQk),计算化k(z)巧pkQk),将其发送给用户,同时将所述化与步骤1中所述文件 名进行对应存储;
[0059] 第Ξ步:用户U通过同态合成私钥sk解密获得文件加密密钥k巧= z*lk,然后用户 通过加密密钥加密文件得到加密密文;
[0060] 进一步的,加密密文通过用户本地存储或者用户将加密密文发送至云端存储。
[0061] 其中当用户需要使用该文件时可W从云端获取密文,然后按照上述步骤向密钥管 理中屯、请求密钥,唯一不同的是在第二步密钥管理中屯、不是随机选取Ik,而是根据文件名 查找其对应的Ik,因此便可W恢复出正确的解密密钥,实现用户文件的解密。
[0062] 实施方式2:密钥共享过程具体包括:
[0063] 本协议主要实现不同用户之间密钥的安全共享及密钥管理中屯、对于密钥的控制 和监控。密钥共享之前必须先通过密钥生成协议生成密钥,然后才可W共享给其他用户。假 设U用户想将自己的文件f共享给用户U1。
[0064] 协议描述:
[0065] 第一步:用户U使用自己的主密钥mk和文件名相乘,继而通过杂凑函数求的字符串 为Z,用户U使用其他用户U1的同态合成公钥pkl加密Z,产生化kl(z),并将化kl(z)与对应的 文件名发送给密钥管理中屯、,并通知密钥管理中屯、要将该文件共享给其他用户Ul;
[0066] 第二步:密钥管理中屯、KM得到用户U发送的Epkl(z)W及对应的文件名,根据文件 名查询对应Ik,密钥管理中屯、使用用户U1公钥pkl加密产生Epkl(lk),计算Epkl(z)地pkl Qk)=化kl(z*化),将其发送给用户U1;
[0067] 第Ξ步:用户U1使用自己的同态合成私钥ski解密化kl(z*化),获得文件加密密钥 key = z*lk;
[0068] 第四步:用户U1根据文件对应的加密密文,使用加密密钥key解密获得明文。
[0069] 本发明并不局限于前述的【具体实施方式】。本发明扩展到任何在本说明书中披露的 新特征或任何新的组合,W及披露的任一新的方法或过程的步骤或任何新的组合。
【主权项】
1. 一种同态密钥生成方法,其特征在于包括: 步骤1:用户使用主密钥mk和文件f的文件名相乘,继而通过杂凑函数加密得到字符串z;其中主密钥mk是由用户随机选取的随机数; 步骤2:用户通过同态合成公钥pk对z进行加密生成Epk(z),并将Epk(z)和相应的文件 名发送给密钥管理中心; 步骤3:密钥管理中心选取随机数lk,使用用户公钥pk加密产生Epk(lk),计算Epk(z)*Epk(lk),并将Epk(z)*Epk(lk)发送给用户,同时将所述lk与步骤1中文件f的文件名进行对 应存储; 步骤4:用户通过同态合成私钥sk解密Epk(z)*Epk(lk),得到文件加密密钥key=z*lk, 然后用户通过加密密钥key文件f,得到文件f的文件密文。2. 根据权利要求1所述的一种同态密钥生成方法,其特征在于所述文件f的文件密文通 过用户直接发送给云端存储或者通过用户本地存储。3. 根据权利要求1所述的一种同态密钥生成方法,其特征在于所述用户同态合成公钥 pk与用户同态合成私钥sk是通过RSA或Paillier加密算法生成的--对应的公私钥对;同 态合成公钥pk交由密钥管理中心进行管理,同态合成私钥sk由用户本地存储。4. 根据权利要求1所述的一种同态密钥生成方法,其特征在于所述文件f的文件密文是 通过SM4算法,使用加密密钥key对文件f进行加密得到。5. -种同态密钥共享方法,其特征在于包括: 步骤11:假设用户U想将自己的文件p共享给其他用户U1,则用户U使用用户U的主密钥mk和共享文件p的文件名相乘,继而通过杂凑函数求的字符串为z;所述用户U主密钥mk通过 密钥生成协议或者用户随机选取随机数生成主密钥mk; 步骤12:用户U使用其他用户U1的同态合成公钥pkl加密z,产生Epkl(z),并将Epkl(z) 以及对应文件P的文件名发送给密钥管理中心,并通知密钥管理中心要将该文件共享给其 他用户U1; 步骤13:密钥管理中心得到用户U发送的Epkl(z)以及对应文件p的文件名, 根据文件名查询对应lk,密钥管理中心使用用户U1公钥pkl加密产生Epkl(lk),计算Epkl(z)*Epkl(lk)=Epkl(z*lk),密钥管理中心将Epkl(z*lk)发送给其他用户U1; 步骤14:其他用户U1使用自己的同态合成私钥ski解密Epkl(z*lk),获得文件加密密钥 key=z木lk; 步骤15:其他用户U1根据加密密钥key,对文件p解密,获得文件p中的明文。6. 根据权利要求5所述的同态密钥共享方法,其特征在于所述其他用户U1同态合成公 钥pkl与其他用户U1同态合成私钥ski是通过RSA或Paillier加密算法生成的一一对应的公 私钥对;同态合成公钥pkl交由密钥管理中心进行管理,同态合成私钥ski由其他用户U1本 地存储。7. -种同态密钥生成装置,其特征在于包括: 用户,用于使用主密钥mk和文件的文件名相乘,继而通过杂凑函数加密得到字符串z; 然后使用同态合成公钥pk对z进行加密生成Epk(z),并将Epk(z)和相应的文件名发送给密 钥管理中心;当密钥管理中心接收到Epk(z)*Epk(lk)后,用户通过同态合成私钥sk解密Epk (z)*Epk(lk),得到文件加密密钥key=z*lk,然后用户通过加密密钥key加密文件,得到文件 的文件密文;所述文件f的文件密文通过用户直接发送给云端存储或者通过用户本地存储; 密钥管理中心,用于选取随机数lk,使用用户公钥pk加密产生Epk(lk),计算Epk(z)*Epk(lk),并将Epk(z)*Epk(lk)发送给用户,同时将lk对应其共享文件名进行存储。8. 根据权利要求7所述的一种同态密钥生成装置,其特征在于所述同态合成公钥pk与 同态合成私钥sk是通过RSA或Paillier加密算法生成的--对应的公私钥对;同态合成公 钥pk交由密钥管理中心进行管理,同态合成私钥sk由用户本地存储;所述加密密文是通过SM4算法,使用加密密钥key对文件进行加密得到。9. 一种同态密钥共享装置,其特征在于包括: 用户U,当用户U将本地文件f共享给其他用户U1,则用户U使用主密钥mk和共享文件f的 文件名相乘,继而通过杂凑函数求的字符串为z;然后用户U使用其他用户U1的同态合成公 钥pkl加密z,产生Epkl(z),并将Epkl(z)以及对应文件f的文件名发送给密钥管理中心,并 通知密钥管理中心要将该文件共享给其他用户U1; 密钥管理中心,用于接收用户U发送的Epkl(z)以及对应文件f的文件名,根据文件名查 询对应lk,密钥管理中心使用用户U1公钥pkl加密产生Epkl(lk),计算Epkl(z)*Epkl(lk) = Epkl(z*lk),密钥管理中心将Epkl(z*lk)发送给其他用户U1; 其他用户U1,用于使用自己的同态合成私钥ski解密Epkl(z*lk),获得文件加密密钥key=z*lk;然后其他用户U1根据加密密钥key,对文件f解密,获得文件f中的明文。
【专利摘要】本发明涉及密钥生成方法,尤其是一种同态密钥生成、共享方法及装置<b>。</b>本发明针对现有技术存在的问题,提供一种同态密钥生成、共享方法及装置。通过同态密钥的生成与共享,有效防止密钥管理中心人为操作或者黑客攻击导致的密钥泄露。本发明用户通过用户公钥pk对z进行加密生成Epk(z),并将Epk(z)和相应的共享文件名发送给密钥管理中心;密钥管理中心选取随机数lk,使用用户公钥pk加密产生Epk(lk),计算Epk(z)*Epk(lk),并将Epk(z)*Epk(lk)发送给用户;用户通过用户私钥sk解密Epk(z)*Epk(lk),得到文件加密密钥key=z*lk,然后用户通过加密密钥加密文件得到加密密文。
【IPC分类】H04L9/08
【公开号】CN105490806
【申请号】CN201510856819
【发明人】白健, 安红章, 汤殿华, 任飞, 何远杭
【申请人】中国电子科技集团公司第三十研究所
【公开日】2016年4月13日
【申请日】2015年11月28日

最新回复(0)