发明内容
本发明所要解决的技术问题是克服现有的不足而提供一种固定密文长度的可验证外包解密的属性基系统及方法,本发明将可验证外包解密体制和固定密文长度体制相结合,减少用户端的计算代价,将计算代价昂贵的部分外包给CSP去处理,并且在CSP转换密文之后用户可以有效检验转换操作的正确性,同时控制密文长度固定以减少通信代价。
本发明为解决上述技术问题采用以下技术方案:
根据本发明提出的一种固定密文长度的可验证外包解密的属性基方法,包括如下步骤:
A、设定系统公开参数PK和系统主密钥MK;
B、根据系统公开参数PK、系统主密钥MK和属性集合S生成用户私钥SKS;
C.根据系统公开参数PK,访问结构A对明文消息M进行加密,得到密文CT;
D.根据系统公开参数PK,用户私钥SKS对密文CT进行解密,得到明文消息M;
E.根据系统公开参数PK,用户私钥SKS生成转换密钥TKs和恢复密钥RKS;
F.根据系统公开参数PK,转换密钥TKs对密文CT进行转换操作,生成部分解密密文CT';
G.根据系统公开参数PK,恢复密钥RKS对部分解密密文CT'进行外包解密操作,并验证是否是初始密文CT所对应的明文消息M,若是则输出M,若不是则输出错误信息。
作为本发明所述的一种固定密文长度的可验证外包解密的属性基方法进一步优化方案,所述步骤A包括:
A1.选取阶为p的乘法循环群G1、GT以及双线性映射e:G1×G1→GT;
A2.随机选取G1的一个生成元g1和G1的四个元素h,u,v,d,随机选取群的元素y以及ti,j∈R Zp *,选取一个抗碰撞的哈希函数其中,ti,j表示每个属性对应的私钥部分,下标R表示随机选取,表示集合{1,2,…,p-1},哈希函数H是GT到的密码学哈希函数,i∈[1,n],j∈[1,ni],n表示属性数量,ni表示每个属性可取值的数量;
A3.计算Y=e(g1,h)y,表示每个属性对应的公钥部分,其中,e(g1,h)为双线性对运算;
得到系统公开参数PK=(e,g1,h,u,v,d,Y,Ti,j,H),系统主密钥MK=(y,ti,j)。
作为本发明所述的一种固定密文长度的可验证外包解密的属性基方法进一步优化方案,所述步骤B包括:
B1.对于拥有属性集合S的用户,随机选取r∈Zp *;
B2.计算和K2=g1 r作为用户的私钥SKS=(K1,K2),其中,vi,j∈S表示所有用户拥有属性的属性值。
作为本发明所述的一种固定密文长度的可验证外包解密的属性基方法进一步优化方案,所述步骤C包括:
C1.随机选取秘密值s,s'∈Zp *,冗余信息
C2.计算 C1=M·Ys,C2=g1 s, 得到密文 其中,H(M)表示对M作哈希函数操作后的函数值,表示对作哈希函数操作后的函数值。
作为本发明所述的一种固定密文长度的可验证外包解密的属性基方法进一步优化方案,所述步骤D包括:
D1.计算
D2.计算
D3.验证如果则得到明文消息M,否则输出错误信息。
作为本发明所述的一种固定密文长度的可验证外包解密的属性基方法进一步优化方案,所述步骤E包括:
E1.随机选取z∈Zp *作为恢复密钥RKS;
E2.计算 和
E3.得到转换密钥TKS=(K'1,K'2)和恢复密钥RKS=z。
作为本发明所述的一种固定密文长度的可验证外包解密的属性基方法进一步优化方案,所述步骤F包括:
F1.计算
F2.计算
F3.得到部分解密密文其中,是用于验证代理返回结果的正确性。
作为本发明所述的一种固定密文长度的可验证外包解密的属性基方法进一步优化方案,所述步骤G包括:
G1.判断初始密文和部分解密密文中的元素,如果或者T1≠C1或者T'1≠C1',那么输出错误信息;
G2.如果上述三个验证都通过,计算M=C1/T'z,
G3.验证如果则输出明文消息M,否则输出错误信息。
根据本发明提出的一种固定密文长度的可验证外包解密的属性基系统,包括公开参数设置服务器、用户私钥运算器、加密服务器、解密服务器、设置转换密钥服务器、转换密文服务器、外包解密服务器;其中,
公开参数设置服务器,用于生成系统主密钥和系统公开参数,系统主密钥发送至用户私钥运算器,系统公开参数发送至用户私钥运算器、加密服务器、解密服务器、设置转换密钥服务器、转换密文服务器、外包解密服务器;
用户私钥运算器,用于根据系统主密钥、系统公开参数生成各个用户的私钥,并将用户的私钥发送至解密服务器和设置转换密钥服务器;
加密服务器,根据系统公开参数,以及加密者用来限制解密者所必须需要拥有的身份条件的访问结构,对明文消息进行加密,生成该消息的原始密文,并将原始密文发送至解密服务器、转换密文服务器和外包解密服务器;
解密服务器,根据系统公开参数、私钥,将原始密文解密得到明文消息;
设置转换密钥服务器,根据系统公开参数、私钥,生成转换密钥和恢复密钥,并将转换密钥发送至转换密文服务器,将恢复密钥发送给外包解密服务器;
转换密文服务器,根据系统公开参数、转换密钥,将加密服务器发送的原始密文进行转换,获得部分解密密文,将其发送给外包解密服务器;
外包解密服务器,根据系统公开参数、恢复密钥,对转换密文服务器发送的部分解密密文进行外包解密,并利用加密服务器发送的原始密文做校验,检验转换操作是否正确。
本发明采用以上技术方案与现有技术相比,具有以下技术效果:本发明在保证加密安全的情况下,在保证CSP进行转换操作时得不到关于消息的任何信息的情况下,给予用户有效检验CSP转换操作的正确性的方法,防止CSP的替换攻击,使得用户可以肯定外包解密所得到的消息是与初始密文相对应的明文消息,同时密文长度固定,减少了通信代价,便于在带宽受限的设备中使用。因此本发明是一种新的安全高效的加密方法。
具体实施方式
下面结合附图对本发明的技术方案做进一步的详细说明:
本发明所述固定密文长度的可验证外包解密的属性基系统可基于双线性对来实现,下面简要介绍双线性对的相关概念和所需满足的性质:
令G1、GT是阶为p的乘法循环群,其中p为素数,g是G1的生成元。假设G1和G2这两个群上的离散对数问题都是困难问题。定义群上的双线性映射为:e:G1×G1→G2,且满足下面的性质:
1.双线性.e(ga,gb)=e(g,g)ab,对所有的a,b∈Zp *和g∈G1均成立。
2.非退化性.其中1是GT的单位元。
3.可计算性.存在有效算法来计算e。
可以注意到:e是可交换的,因为e(ga,gb)=e(g,g)ab=e(gb,ga)。
本发明所述方法设计的实体包括:公开参数设置服务器、数据拥有者、用户、云存储、用户私钥运算器、加密服务器、解密服务器、设置转换密钥服务器、转换密文服务器、外包解密服务器。
参照附图1,本发明所述系统包括:公开参数设置服务器A、用户私钥运算器B、加 密服务器C、解密服务器D、设置转换密钥服务器E、转换密文服务器F、外包解密服务器G;其中,
公开参数设置服务器,用于生成系统主密钥和系统公开参数,系统主密钥发送至用户私钥运算器,系统公开参数发送至用户私钥运算器、加密服务器、解密服务器、设置转换密钥服务器、转换密文服务器、外包解密服务器;
用户私钥运算器,用于根据系统主密钥、系统公开参数生成各个用户的私钥,并将用户的私钥发送至解密服务器和设置转换密钥服务器;
加密服务器,根据系统公开参数,以及加密者用来限制解密者所必须需要拥有的身份条件的访问结构,对明文消息进行加密,生成该消息的原始密文,并将原始密文发送至解密服务器、转换密文服务器和外包解密服务器;
解密服务器,根据系统公开参数、私钥,将原始密文解密得到明文消息;
设置转换密钥服务器,根据系统公开参数、私钥,生成转换密钥和恢复密钥,并将转换密钥发送至转换密文服务器,将恢复密钥发送给外包解密服务器;
转换密文服务器,根据系统公开参数、转换密钥,将加密服务器发送的原始密文进行转换,获得部分解密密文,将其发送给外包解密服务器;
外包解密服务器,根据系统公开参数、恢复密钥,对转换密文服务器发送的部分解密密文进行外包解密,并利用加密服务器发送的原始密文做校验,检验转换操作是否正确。
参照附图2,利用JPBC实现本发明的方案并介绍本发明的具体步骤:
该公开参数设置服务器A执行以下步骤:
A1.选取阶为p=730750818665451621361119245571504901405976559617的乘法循环群G1,GT以及双线性映射e:G1×G1→GT(双线性映射的计算在文中有详细说明);
A2.随机选取G1的一个生成元
g1=2695980418988198432775601549158155153699531247556848379894548290021537210239377846751392854698648926081360034376475670071315154758690787017673242316612074,4404960890217260917541780983589639082720013676829364450881625687891117248417060246959768283751681924889453031413143574211319770622243109414077148895789432和G1的四个元素:
h=5774640355161290068700191029628306563828687392466731809813029378864883121795695089430340274253651849473994253782148292689289409237222549142140981810158118,16091452804281906123401937228621096552157583211614219980951924172768390829875789820315065199423566390897304762102092237298825974349716655177535566275763 06,
u=316197920206449546212194364113143538456402150668895800735872440429726170413306202124486542379794776013085721086298577124111241141293868332648118139182701,8108154973516377681892677567515453448796866311972303457610266489742210206358230872153387756423127156788389373440775453196423205572337630278542500563853607,03853607,
v=4577040230003068054547995544224586560655102099699956884666272616446756894022253680058151076194668385365504543836347093986107773219193128423049594460812322,7955229454443174288275407328935241701637305606434525205464459625978867032136720127769377424292480818225743496346816930720829351363378418761092388775832690,
d=5774640355161290068700191029628306563828687392466731809813029378864883121795695089430340274253651849473994253782148292689289409237222549142140981810158118,1609145280428190612340193722862109655215758321161421998095192417276839082987578982031506519942356639089730476210209223729882597434971665517753556627576306,随机选取群的元素y=382560358736857752751803050607170982140716672546以及ti,j∈R Zp(i∈[1,2],j∈[1,4])分别为
[333951179209280756397531580848883511904286935174,
520920229692813482641882331334574679424616975811,
529804624240026519402815265382273776180532018067,
308979361875806443727805193433164042446743678064]和
[407487057818713316271950068986896711900254943997,
626485331279406117856498855038862419818961648552,
383210627149545936917793380763749376839565709907,
249849472079144148175312827316407669801387304997],
选取一个抗碰撞的哈希函数
A3.计算:
Y=e(g1,h)y=2343440690964019046280748442680384663884981230191459547868886396410901214453283748326635914314809883483973822854070403913785515865495392370801617801529115,207122521617800273726083520771876163652840160642436375914774730172645133154852872911005477495256044643468969593048395655365545058092374117570375381803195,
(i∈[1,2],j∈[1,4])分别为
[7806141549572961906048754183377169676942164849481997242232369187094956768612232608054670164016229314575132466479662585114319028866362353507839623459343869,2444602874916681296998281056227218496643271281020987046477824039283408359214498183254107179975666084849968743449661750188778045447173641656108715721161781,0,4517223158887889595904690553912520563387668605064360887452929125124438130180427560679547033784299395414944478681754567201655101779678387471107033094679591,5850698642283220261029098496480718841890757603702039106433156170672316241563198825975614100767189534470333777025508477180097291410946959889271858910177473,7932146683413529680720375349890657124183402143451386261941831726967241623547730516518157489691595469870457605577506961671962975262765627711978311778568831,1902799189492415414353078357433908586040184020625292954927050794334463542228573690200129890459753919158741038868830813625730427176313830899569147070283793,4441235234472515009394182823484889287294291734625821643151979777333940433347203957187288312869266104616922532152524691218599403609676856231956408684891026,3580348345733490254090424547381076386883485586853308306727571334191202557173978560610098987972134316041366244362357043065458569153238278271714413988113848]
[331282800743572298592324374729132788104173095106606869813241734873540162823373640352813944066147148678132493595001560932460048914323877876839757334141692,4643715079458442243132339960945565926998969890056192043153038467438821445630539981114714852230796023105707081781922637276611287305636728838211039053312986,5576386483366978765048367323924767548314222382478123016269060819398347813529694854956398568611047051350110129138253561701757952202606280836228710794914516,718696741871145604684270993497281768824619769719963864224192095511514931542637928495677701969242943409416301781598534753322185473042173150107095225149677,1777219023121117246782489604691446825699484728889012228680333914924734142302421813917981205926439397490863584514984440344267352470531806598477495631011924,8282024738314935952937881012106321747258806629652272972893775517814181100661426072319582529906238203044442807547697507966310426519838983262019831835735698,7853373992812758386520506406627674948930358207735155576935973778745393538126031765885584437269423
72097655310999956704511789264082822191424194461974164661,11178312351976059863099547230148770029682996276672310839271098314138889075655143444258547228327779 84626083927053542393370845190783217800922660573870901693];
上述步骤A2中,所选的哈希函数H是GT到的密码学哈希函数,表示集合{1,2,…,p-1}。
系统公开参数PK为系统主密钥MK为
用户私钥运算器B执行以下步骤:
B1.对于拥有属性集合S的用户,随机选取r∈Zp *;
B2.计算
K2=g1 r=1750480232967899836851824515786134013998268369588862270173415675297341776228132848135811792589474586723030052736840061508273785363706799431618726606176592,2980832553960994927287643636473539095476085593497511475579941173750029163123822046930662912772156797163795589495197269833644504149237148505217247778006180作为用户的私钥SKS=(K1,K2)。
加密服务器C执行以下步骤:
C1.随机选取秘密值s,s'∈Zp *,冗余信息
C2.计算
C1=M·Ys=7843192134650186053650113227091942231397350182084834544495038144619304460078784845302684139112839506208425405850112432668724847897775090313075176271061030,1813085931525603814097635689242260305493693313623662951540620058550097079291268290226279519517835072308198642611412811172129871940882357255626427177231663, C2=g1 s=5924309161290917835700569794620309636999134193412681258594214601266032930503407379975792846897203492942571625920676810903616203027151544646323410326540395,80489486928601901874795510570577863564695165282514532720322231849905533137484132907698806875678745335406715878763686539299124362617412785287193198077603,
这里的明文消息M为简单文本“属性基加密”,为保证安全属性加密之后使用对称秘钥加密一次以后才以密文形式存储到文件中。
解密服务器D执行以下步骤:
D1.计算
D2.计算
D3.验证如果
则得到明文消息M,否则输出错误信息。
设置转换密钥服务器E执行以下步骤:
E1.随机选取z∈Zp *=389828379491020256326291536057747266252178745066作为恢复密钥RKS,这里的z拥有不可忽略的优势是有乘法逆的;
E2.计算
E3.得到转换密钥TKS=(K'1,K'2)和恢复密钥RKS=z。
转换密文服务器F执行以下步骤:
F1.计算
F2.计算
F3.得到部分解密密文
外包解密服务器G执行以下步骤:
G1.判断初始密文和部分解密密文中的元素,如果或者T1≠C1或者T'1≠C1',那么输出错误信息;
G2.如果上述三个验证都通过,计算
M=C1/T'z=578977707789759884825754741772838560012635239512816618140918393275561030500540078345621521582193326104096017449178395940794025859262737238543917741868130,y=564409872759627753015656711217026593709838299945819730690600138498379344455693629458618621123809975185522338950860811313457447678582025732382643922173419,
G3.验证如果
则输出消息M,否则输出错误信息。
以上只是对本发明的优选实施方式进行了描述。对该技术领域的普通技术人员来说,根据以上实施方式可以很容易地联想到其它的优点和变形。因此,本发明并不局限于上述实施方式,其仅仅作为例子对本发明的一种形态进行详细、示范性的说明。在不背离本发明宗旨的范围内,本领域普通技术人员在本发明技术的方案范围内进行的通常变化和替换,都应包含在本发明的保护范围之内。