本发明公开了一种基于群加密的虚拟机文件注入方法,主要解决现有技术存在的文件传输不安全和低效率问题。其实现步骤是:1、密钥生成中心生成并公开系统参数;2、根据系统参数生成并分发虚拟机公私钥;3、根据系统参数生成并分发权威机构公私钥;4、云计算平台加密需要注入的文件并发送给虚拟机;4、虚拟机用自己的私钥解密密文;5、虚拟机向权威机构提出申请;6、权威机构接收该申请,将消息反馈给虚拟机;7、虚拟机接收反馈消息。本发明通过对注入的文件利用群加密的方法进行处理,保证了注入文件的安全性,保护了虚拟机的隐私性,提高了虚拟机文件注入的效率,可用于云计算环境下需要向大量虚拟机中安全注入文件的场景。
[
1.基于群加密的虚拟机文件注入方法,包括如下步骤:(1)密钥生成中心KGC生成并公开系统参数,该系统参数包括大素数p、大素数q、密钥生成函数KDF、对称加解密算法(SE,SD);(2)密钥生成中心KGC利用RSA算法为每个虚拟机生成公私钥对(pki,ski),并将公钥pki公开,将私钥ski通过安全信道发送给对应的虚拟机,其中i=1,2,...,n,表示对应的虚拟机编号,n表示虚拟机的总数量;(3)密钥生成中心KGC利用RSA算法为权威机构OA生成公私钥对(pkOA,skOA),并将公钥pkOA公开,将私钥skOA通过安全信道发送给权威机构OA;(4)云计算平台选择需要注入的文件w以及需要接收文件的虚拟机集合,使用各个虚拟机的公钥pki和权威机构OA的公钥pkOA,用中国剩余定理及RSA算法对需要注入的文件w进行加密,生成密文消息C并将其分发给虚拟机;(5)接收到消息的虚拟机利用自己的私钥ski对注入文件w进行解密,恢复出注入文件w;(6)解密后,若虚拟机怀疑该注入文件是云计算平台误发给自己,则向权威机构OA提出申请;(7)权威机构OA接收该申请,并利用自己的私钥对密文消息C进行解密,得到接收该消息的所有虚拟机的身份信息列表,并判断(6)中提出申请的虚拟机是否在该列表中,并将此信息反馈给(6)中的虚拟机;(8)虚拟机接收(7)中的反馈消息,以此确认文件是否是发送给自己的。
2.根据权利要求1所述的方法,其中所述步骤(1)中密钥生成中心KGC生成系统参数,按如下步骤进行:(1a)根据实际要求设定系统的安全参数l≥160;(1b)密钥生成中心KGC根据系统的安全参数l选取两个大于2l的素数p、q;(1c)密钥生成中心KGC选取密钥生成函KDF,选取原则是:输入空间为[0,p*q];(1d)密钥生成中心KGC选取对称加解密算法(SE,SD),其中SE算法用于加密,SD算法用于解密;(1e)密钥生成中心KGC对上述所选取的大素数p、大素数q、密钥生成函数KDF、对称加解密算法(SE,SD)进行公开。
3.根据权利要求1所述的方法,其中所述步骤(2)中密钥生成中心KGC生成并分发虚拟机的公私钥,按如下步骤进行:(2a)对每台虚拟机i,密钥生成中心KGC选择两个素数pi、qi,使得pi=2p′+1,qi=2q′+1,其中p′和q′都是大素数,并且p′>p,q′>q,由两个素数pi、qi计算得到大素数Ni=pi*qi,其中i=1,2,...,n,表示对应的虚拟机编号,n表示虚拟机的总数量;(2b)对每台虚拟机i,密钥生成中心KGC选择随机数ei,使得ei与大素数Ni互素,即(ei,Ni)=1;(2c)对每台虚拟机i,密钥生成中心KGC选择随机数di,使得eidi≡1modNi;(2d)对每台虚拟机i,密钥生成中心KGC将虚拟机公钥pki=(ei,Ni)公开,将虚拟机私钥ski=(di,pi,qi)通过安全信道发送给第i个虚拟机。
4.根据权利要求1所述的方法,其中所述步骤(3)中密钥生成中心KGC生成并分发权威机构OA的公私钥,按如下步骤进行:(3a)密钥生成中心KGC选择两个素数pOA、qOA,使得pOA=2p′OA+1,qOA=2q′OA+1,p′OA和q′OA是两个不同的大素数,并且p′OA>p,q′OA>q,由这两个素数pOA、qOA计算得到权威机构OA的大素数NOA=pOA*qOA;(3b)密钥生成中心KGC选择随机数eOA,使得eOA与权威机构OA的大素数NOA互素,即(eOA,NOA)=1;(3c)密钥生成中心KGC选择随机数dOA,使得eOAdOA≡1modNOA,其中NOA为权威机构OA的大素数;(3d)密钥生成中心KGC将权威机构OA的公钥(eOA,NOA)公开,并将权威机构OA的私钥(dOA,pOA,qOA)通过安全信道发送给权威机构OA。
5.根据权利要求1所述的方法,其中所述步骤(4)中云计算平台加密注入文件并发送到虚拟机,按如下步骤进行:(4a)云计算平台选择需要注入的文件w和k个需要注入文件的虚拟机,虚拟机的公钥为(pk1,pk2,...,pki,...,pkk),其中i=1,2,...,k,k≤n,表示对应的虚拟机编号;(4b)云计算平台计算k个大素数Ni的乘积N=N1×N2×…×Ni×…×Nk,其中大素数Ni为两个素数pi、qi的乘积,即Ni=pi*qi,选择一个随机数M,满足0
6.根据权利要求1所述的方法,其中所述步骤(5)中虚拟机解密云计算平台发送的密文,按如下步骤进行:(5a)虚拟机i接收到密文消息C之后,计算中间密文ci=C1modNi,利用其私钥di计算出由云计算平台选择的随机数(5b)虚拟机使用密钥生成函数KDF和随机数M计算密钥K=KDF(M),并通过对称解密算法SD对第二部分密文C2解密得到注入文件w=SD(C2,K)。
7.根据权利要求1所述的方法,其中所述步骤(7)中权威机构OA解开密文并验证接收密文的虚拟机身份,按如下步骤进行:(7a)权威机构OA利用自己私钥中的随机数dOA和第三部分密文C3计算该密文消息对应的接收者列表其中NOA=pOA*qOA是权威机构OA的大素数;(7b)权威机构OA根据列表ID,判断虚拟机是否在此列表中,并将此反馈给该虚拟机;(7c)虚拟机若收到该反馈消息,则确认其是该密文的接收者,否则,不是该密文的接收者。
]