本发明涉及属性加密领域,尤其涉及一种适用于工业控制系统额辅助加密传输机制。
背景技术:
随着工业控制系统(industrialcontrolsystem,ics)和信息技术(informationtechnology,it)加速融合,原本独立、封闭的工控系统开始使用云计算、大数据等技术进行数据的存储及分析。在这一过程中,工控系统面临着来自外部网络的多种威胁,如恶意入侵、计算机病毒、网络攻击等,最知名的是2010年伊朗“stuxnet”病毒事件。在传统的工业控制系统中,数据以明文形式进行传输,如果将明文数据直接发送并存储到云平台,则可能导致数据面临泄露、被篡改等威胁,造成无法挽回的损失。近年来,世界各国均提出了一些极具参考意义的指标和安全实践指南,我国也颁布了《网络安全法》,提出加强关键信息基础设施安全防护,维护国家网络安全。
为保障工业数据的机密性,加密无疑是一种有效方案。然而,由于工控系统的特殊性,不能简单地将密码学工具应用其中,在保护数据机密性的同时,还要保证系统的实时性和可用性。此外,仅靠传统“一对一”的加密手段无法实现云计算环境下数据的灵活访问控制功能,对用户身份的动态变化适应性也不够。为了适应开放网络环境下资源保护所面临的细粒度控制策略、安全等需求,人们提出了基于属性的加密算法(attribute-basedencryption,abe),与传统的一对一的加密算法不同,派生于分布式计算的abe采用一对多的加密方式,可为用
为了适应开放网络环境下资源保护所面临的细粒度控制策略、安全等需求,人们提出了基于属性的加密算法(attribute-basedencryption,abe),与传统的一对一的加密算法不同,派生于分布式计算的abe采用一对多的加密方式,可为用户提供灵活的访问方式。
在标准cp-abe方案中,密文长度随着访问策略的复杂度而增加,用户在解密过程中需运行的双线性对运算、指数运算的次数也随之增加,从而一方面导致用户端的解密开销增大,另一方面需要用户提供更大的存储空间。为此,doshi从密文长度恒定这一角度入手,提出了一种密文定长的cp-abe算法,减小了用户的存储及解密开销。同样,也有学者采用可验证外包计算的方法来降低用户端解密开销,与标准方案相比实用性更好。
技术实现要素:
针对工业控制系统中数据安全性不足的问题,本发明提出一种基于外包解密的密文定长的加密传输机制。本发明采用具有灵活访问策略的cp-abe加密算法,同时将可验证外包解密和恒定密文长度两种加密体制相结合,将复杂的解密计算外包给可信第三方prc,既减轻了用户端的计算开销,也降低了用户端的存储开销。
cp-abe加密算法满足双线性映射的性质。设g1和g2是两个阶为素数p的循环群,g是g1的生成元,定义双线性映射e:g1×g1→g2满足如下条件:
双线性性:对任意的a,b∈zp,满足e(ga,gb)=e(g,g)ab。
非退化性:存在g∈g1,使得e(g,g)≠1。
可计算性:对任意
进一步,本发明的系统模型如图1所示,该模型由五个实体组成,分别为授权中心(kgc)、工业控制系统(ics)、数据用户(du)、公有云(puc)和私有云(prc)。其中,kgc主要负责计算系统公共参数、系统主密钥对和计算属性私钥skl,同时还负责给注册的合法用户分配全局标识符(gid);ics负责将数据进行加密,并上传到puc;puc主要存储和转发数据密文;du负责计算转换密钥对tkgid,同时验证部分解密密文m′,验证成功后才对密文m′进行最后的解密;prc则是一个可信第三方,主要承担大量的外包解密计算。
本发明所采用的技术方案包括如下步骤:
s1、系统初始化,生成系统公开参数pp、系统主密钥对(mpk,msk)和用户全局标识符gid;
s2、用户私钥生成,根据系统公开参数pp、系统主私钥msk和用户属性列表l,生成属性私钥skl;
s3、数据加密,根据系统公开参数pp、数据明文m、系统主公钥mpk和访问结构w,生成密文ct;
s4、转换密钥生成,根据属性私钥skl和用户全局标识符gid,生成转换密钥对tkgid;
s5、外包解密,若l满足密文访问策略w(即l|=w),则私有云能成功解密输出部分密文m′;若l不满足密文访问策略w(即l|≠w),则输出⊥;
s6、用户解密,根据部分密文m′和转换私钥tskgid,解密出数据明文m。
进一步地,s1的具体步骤为:
s11、选取阶为素数p的循环群g1和g2,定义双线性映射e:g1×g1→g2,随机选取群g1的元素g、u和抗碰撞的哈希函数h:{0,1}*→zp,u={att1,att2,…,attn}表示属性集合,l={l1,l2,…,ln}表示用户的属性集合,
s12、给注册的合法用户分配一个独一无二的全局标识符gid;
s13、为用户的每个属性atti∈u选择两个随机数t∈zp和αi,j∈zp,生成系统主密钥对msk=(t,αi,j)和
进一步地,s2的具体步骤为:
s21、根据用户属性列表l,计算出用户属性私钥skl={sk1,sk2},其中
进一步地,s3的具体步骤为:
s31、选择随机秘密值s∈zp,数据明文m∈zp;
s32、根据用户访问结构w,计算
进一步地,s4的具体步骤为:
s41、du选择随机值z∈zp;
s42、根据用户gid和私钥skl,计算
进一步地,s5的具体步骤为:
s51、用户向公有云发起密文申请,公有云收到申请后将密文发送给私有云进行解密计算;
s52、若用户属性集合l满足访问策略w(即l|=w),则进行下一步解密计算,否则解密失败并返回⊥;
s53、计算
进一步地,s6的具体步骤为:
s61、计算
s62、计算h(um),验证等式h(um)=v是否正确,等式正确则表明解密成功,否则解密失败。
本发明采用的以上技术与现有技术相比,具有的有益效果为:可为拥有多重属性值的用户提供灵活的访问控制策略;外包解密承担了大量的计算开销,减轻了用户端的计算损耗,同时参与外包解密计算的密文和密钥组件中没有包含任何与明文数据m有关的内容,确保数据m不会被泄露给第三方;密文长度恒定的特点,减少了系统的通信带宽的消耗和用户端的存储开销。因此本发明是一种新颖且安全高效的加密传输机制,尤其适用于资源有限的环境。
附图说明
图1是本发明所述的一种适用于工业控制系统辅助加密传输机制的系统模型图,其中包含如下实体:
1.授权中心(kgc);2.工业控制系统(ics);3.数据用户(du);4.公有云(puc);5.私有云(prc);
图2是本发明所述的一种适用于工业控制系统辅助加密传输机制的系统流程图。
具体实施方式
下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行详细的描述。
参照附图2的系统流程图,利用pbc库实现本发明的加密算法机制,其具体步骤如下:
s1、系统初始化执行以下步骤;
s11、选取抗碰撞的哈希函数h:{0,1}*→zp和阶为p的乘法循环群g1、g2以及双线性映射e:g1×g1→g2,随机选取g1的生成元g和元素u分别为:
g=[5462914575314910590899595955490751713417048187311079632287396095786480298716526511614994896345956642734944823690767827421117215770549253192224569035233452,7741951153811669436365578252066973729372246239499529273276613753367560078229717572800983325982796438080368162089272557814671905190685753576323819420989540],
u=[8487353399856413929388368501234479892295452797269517825134728364482598758995891534039345119941142587582340670551007030751910914537114826889254339397188638,2970337777599241103491157177316814942129706292472811654570426663766820287693806771336406816786757662338787274805875139986516124083501919315410305509123601];
s12、假设有2个合法注册用户,用户gid分别为:[4488618633568781791492339033376285691542857708364434288933590791938876969723346973039886419697146034066676767230705786914457234935787509659224312374702797,7728851999525554231805568661405122431892594445260712005679047174331998274785677160373431845472750666582114347894270039886191762008677566041951201981052745]和[7730670042146947730798180295240307428397273208796717993095751916455776229454729602406310985988183402835815394273972306772384465200148115645957087719622932,4730551570511900684579570624769337471037531245313289095506789902444386120992551953306171246674419387347474819295623649712639257511328810375044750424647289];
s13、随机选取群zp的元素t=60134565467162597619551889360596470341343941707,以及αi,j∈zp(i∈[1,2],j∈[1,1])分别为:157347558368911061313505707982477630918393805691和291210044024366714736641698341046089753076170479;
计算:y=e(g,g)t=[7541050007900577201111711391182562511460084913112056718698735295331838465268027242106762636742275688145260924631999028850543998510913414013668152157413536,1921205630970210907125201228045341450085144247919568049003269212269790295382258027779462576853882462787507898750594877563960886520036742969891097030709032];
计算
系统公开参数pp={g1,g2,h,e,g,u},系统主密钥对msk=(t,αi,j)和
s2、用户属性私钥生成执行以下步骤;
s21、用户属性私钥是skl={sk1,sk2},其中属性私钥sk1分别为[6368274481360342200458802678156981367411224458315523261048991521931473460322741573790728361553391747528808824853354136962890601839557500828902762135117269,5788256949513700394364333492750348376706631867763084154632924454784087522050590401025704219309727166812068548353914536894192132333204890312715082148640187][3572603681930970529571986091234655956342769970261002488562960820242220166293122551824877986524957719821566953904336579174014593255320692049131832815358570,2915507091612554170392662591572352430568547706804880680761260025131021346457804117601208867024762657889753941176506537203942658535659683357140749804535197],属性私钥sk2分别为[553915751448763861598574217480802840084360256647891635500266764093799388779691622887311809224558010450927866637133063144688241142943487321799495781905683,7843035992563494781842869780032713450371830911644910513673200947505258133439958306361639231530706989594115142526325724475719420189561766957304004614439250]和[4664062169671778255721357134450115491307857617102774886289191562399795388942116656645743600218390993200695007371192544609166497486460988251431766184119487,5481792262652826061251169709257694135193649610674564319313291465081184585594010697527720208016587780617611812746189060901440777414999569791148199741735579]。
s3、数据加密执行以下步骤;
s31、选择随机秘密值s∈zp,数据明文m∈zp;
s32、计算
c0=mys=[1127144289006796520161777956466957844223446455635694174697160880305435624158670669716833668287365559483934171497188852205470278250555719223688304648767644,1107173700388559356539126977257246891142355067736036483838443829197667046424424303794023038695834742477079197127352699223720289135097167478335559557453875],
c2=gs=[7756564698133547249820327578995004819772535800710144100542497428797994667945311247067273849026577332435390618716289237490723725002420482886439894415848974,3712972592374458722329861278663171716061059832108566291055525520020140033296404373480771992639088225273966342219683038176367116579799979724522211441031315],
v=h(um)=[2529606736990671521968460986150661696200666674801001743771993934636657104329451930846777575644948461737698852738417629513968277275699680814085518917759705,8700691065673245248910832954425000871117520068195131199482897956334234458827041142642254597338302051324687753941635485115839177458366783048609376477655651];
得到密文ct=(c0,c1,c2,v)。
s4、转换密钥生成执行以下步骤;
s41、选择随机值z∈zp;
s42、计算转换密钥对tkgid=(tpki,j,tskgid),其中,tskgid为498534137916196157562228050976189031755509832336,tpki,j中
s5、外包解密执行以下步骤;
s51、用户向公有云发起密文申请,公有云收到申请后将密文发送给私有云进行解密计算;
s52、若用户属性集合l满足访问策略w(即l|=w),则进行下一步解密计算,否则解密失败并返回⊥;
s53、计算
s6、用户解密执行以下步骤;
s61、计算
s62、计算h(um)=[2529606736990671521968460986150661696200666674801001743771993934636657104329451930846777575644948461737698852738417629513968277275699680814085518917759705,8700691065673245248910832954425000871117520068195131199482897956334234458827041142642254597338302051324687753941635485115839177458366783048609376477655651],等式h(um)=v验证成立,数据密文解密正确,否则输出⊥。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所做的等同替换,或直接或间接运用在相关技术领域,均同理包括在本发明的专利保护范围。