基于属性基加密的数据共享系统设计与实现_第1页
基于属性基加密的数据共享系统设计与实现_第2页
基于属性基加密的数据共享系统设计与实现_第3页
基于属性基加密的数据共享系统设计与实现_第4页
基于属性基加密的数据共享系统设计与实现_第5页
已阅读5页,还剩26页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

-[17]:(1)进行数据加密:实际数据的对称加密处理(2)会话密钥保护:加密传输中的临时密钥机制SM4的算法特点包括:(1)基于8×8S盒的非线性变换方法(2)基于线性变换的扩散性能提升研究(3)轮密钥生成依赖密钥扩展算法(4)支持ECB、OFB、CFB、CBC等工作模式。国密算法的集成策略:集成国密算法于ABE系统的关键问题探讨:双线性配对与SM2的结合:由于SM2使用特定的椭圆曲线,而ABE系统需要支持双线性配对的椭圆曲线,因此需要在系统中同时支持两种椭圆曲线群:一种用于实现ABE算法(如BN128),另一种用于SM2数字签名。哈希函数的统一:在ABE系统里,把属性映射成群元素,这个过程往往用哈希函数来完成,本系统采用SM3做统一的哈希函数,既用它来验证数据完整性,又用来在ABE算法里把属性映射成群元素。对称加密的分层设计:采用分层加密设计,使用SM4对实际数据进行加密(效率高),再使用ABE技术对SM4密钥进行加密(实现细粒度访问控制)数字签名的整合:采用SM2数字签名保障数据的完整性和不可否认性,SM2签名操作在SM4加密之前完成,从而保证即使解密验证失败,也能检测到数据被篡改。这样一种集成策略,既满足了国密算法的使用要求,也充分发挥了各种算法的优点,形成了一个安全、高效的数据共享系统。2.4本章小结此章讲解创建依靠属性基加密的数据分享系统所必要的背景知识与有关技术,先论述椭圆曲线密码学,双线性映射这些密码学根基,给认识ABE系统的数学原理形成根基,再细致叙述属性基加密的基本概念,类别以及安全模型,着重剖析CP-ABE的技术特性及长处,在访问树那一部分探究怎样用树形结构来体现繁杂的访问策略,还有怎样利用线性秘密共享和拉格朗日插值技术达成高效的秘密分配和重新组建,末了,该章讲述了系统采用的三种国密算法(SM2,SM3,SM4)各自的技术特点及其在系统里的运用方法。通过对这些基本概念和技术加以深刻认识,给后面章节里有关系统的设计与完成形成了稳固的理论根基,下一章会细致阐述系统的总体流程规划,包含加密以及解密的详细步骤及算法达成。3系统流程设计3.1系统总设计双线性映射引擎:给予有效的双线性配对运算支持,其中包含椭圆曲线点运算,标量乘法,配对计算等关键功能,此模块依照各种计算平台实施改良,支撑多线程并行运算来加强性能。证书颁发机构(CA)模块:完成系统初始化以及用户私钥的生成和管理,CA模块保存系统的主密钥MK,根据用户的属性集合生成对应的私钥,CA模块设计遵循最小权限原则,只有经过授权的操作才能够访问主密钥。访问策略树管理模块:提供访问策略的创建,编辑,校验和存储功能,此模块具备图形化界面,可以让用户直接用眼睛看到并设计复杂的访问策略,其中包含AND,OR,Threshold之类的逻辑运算,访问策略能够存成JSON格式的文件,利于长久保留或者通过网络传送。加密模块:实现数据的分层加密,先用SM4算法对原始数据进行对称加密,再用SM2算法对数据进行数字签名,最后用CP-ABE技术对SM4密钥进行加密,这样就充分利用了各种算法的优点,在保障安全的前提下提高了系统的整体性能。解密模块:按照加密的逆过程恢复数据,先验证用户属性符合访问策略,再用ABE算法解开SM4密钥,之后用SM4密钥解开数据,最后验证数字签名保障数据完整真实。密钥管理模块:用户属性管理、私钥分发与更新,此模块负责用户属性映射关系的维护,支持属性动态增删,提供密钥撤销机制来应对安全事件。图3.SEQ图3.\*ARABIC1系统架构系统采用分层安全架构,各层具备特定安全措施与功能:数据层:采用SM4实现高效对称加密以保障数据传输与存储的机密性访问控制层:基于CP-ABE技术的细粒度访问控制研究与实现完整性保护层:基于SM2数字签名与SM3哈希算法保障数据完整性与真实性身份认证层:基于属性与数字证书机制保障用户身份合法性。3.2访问树定制流程访问树的设计和定制是系统实现细粒度访问控制的核心,本节阐述访问树的设计原理,搭建流程以及改良策略。访问树的数学模型:在系统中,访问树T是一个有向无环图(DAG),其中:每个节点v都有一个类型:LEAF(叶节点)、AND(与门)、OR(或门)或Threshold(阈值门)叶节点表示一个属性attr内部节点有一个阈值k,表示满足的子节点个数根节点表示整个访问策略。访问树的定制过程:(1)策略需求剖析:第一要剖析实际的应用场景,明确所需控制的属性集U={attr1,attr2,...,attrn},比如在教育系统里也许包含“学生”,“研究生”,“教授”,“管理员”之类的属性。(2)逻辑关系设计:根据业务逻辑来设计属性之间的逻辑关系,比如访问策略可能是“(学生AND研究生)OR(教授OR管理员)”,表示要么是研究生,要么是教授或者管理员。(3)树结构构建:将逻辑关系转换成树结构,先创建根节点,类型为OR,阈值为1,创建第一个子节点,类型为AND,阈值为2,给AND节点添加两个叶节点,学生,研究生,创建第二个子节点,类型为OR,阈值为给第二个OR节点添加两个叶节点,教授,管理员,最后把这两个分支添加到根节点。(4)索引分配:给每一个节点赋予独有的索引,此索引被用于秘密分享以及拉格朗日差值运算,索引分配利用深度优先探寻的方法来保证各个节点具备独有的标识。(5)策略验证:对构建的访问树进行验证,检查树的完整性和连通性(无环),节点类型和阈值是否正确,属性是否一致。树的序列化和持久化:为了实现策略的保存与传输,系统实现了访问树的JSON序列化。序列化后格式包括节点类型、阈值、属性、索引、子节点等信息,具有较好的可读性及结构。动态策略调整:系统允许在不重新加密数据的前提下对策略做有限度的修改,可以对属性进行重命名、增加OR分支(扩大访问权限)、调整阈值门的阈值(合理范围内),但是不允许删除OR分支(缩小访问权限)、增加AND条件、删除属性等操作,这些操作都需要重新加密数据。3.3加密流程加密流程是系统的主要功能之一,利用分层加密策略来保障数据的保密性和访问控制的精确性,整个加密流程可划分成如下几个主要环节:图3.SEQ图3.\*ARABIC2加密流程步骤1:选择访问策略,数据所有者要选择或者定义一个访问策略A,该策略用访问树来表达,表明哪些属性组合能够解密数据,用户可以挑选从文件里加载既有的策略,也可以采用系统赋予的默认策略。步骤2:生成会话密钥,系统生成一个随机的128位SM4密钥K作为会话密钥,该密钥将用于对实际数据进行对称加密,选用SM4是因为其加密速度快,适合大量数据加密。步骤3:采用数据签名和加密的方法来保证数据的完整性和不可否认性,系统首先对原始数据进行SM2数字签名,再将“数据+签名”进行SM4加密:计算数据的SM3哈希值:H=SM3(M)生成SM2数字签名:(r,s)=SM2Sign(sksign,M)(3.1)创建签名数据:M’=M||r||sSM4加密:Cdata=SM4Enc(K,M’)(3.2)步骤4:CP-ABE密钥加密这是最关键的步骤,使用CP-ABE技术对SM4密钥进行加密。CP-ABE加密过程包含以下子步骤:随机数生成:选择随机数s∈Zq,确保随机数的质量和不可预测性。计算密文组件C:C=g1s,这是密文的主要组件,基于双线性映射的第一个群G1。计算掩码:计算e(g1,g2)αs,用于掩码SM4密钥。这里利用了双线性映射的性质,将主密钥α和随机数s结合起来。加密SM4密钥:将SM4密钥与掩码进行异或运算,得到掩码后的密钥。这种方法确保只有拥有正确属性的用户才能恢复原始密钥。生成属性密文:对访问策略中的每个属性x,计算:hx=H(x)(将属性哈希到G1群),Cx=hxs。这一步骤为每个属性生成对应的密文分量,这些分量将在解密时用于验证用户的属性。构建最终密文:密文CT包含:C=g1s、C’=掩码后的SM4密钥、{Cx:对每个属性x}、访问策略树的序列化表示。数学原理:CP-ABE加密的思想就是用线性秘密共享的方式把密钥分解成每个属性相关的部分。假设访问树的根节点代表秘密s,利用多项式插值,将这个秘密分配给每一个叶节点(属性)。每个叶节点得到一个秘密分享sx,相应的密文组件为Cx=hxsx。性能优化:为了提高加密效率,采用如下优化策略:预计算常用椭圆曲线点、并行计算多个属性的密文组件、利用快速幂算法计算指数、对小规模配对运算进行缓存。3.4解密流程解密流程是加密流程的逆过程,目的是从密文中恢复原始数据,同时验证用户的访问权限和数据的完整性。解密流程包括以下主要步骤:图3.SEQ图3.\*ARABIC3解密流程步骤1:密文解析首先解析接收到的密文,提取各个组件。系统从密文中提取C、主要的密文组件C’、掩码后的SM4密钥Cattrs、属性对应的密文组件policy、访问策略树的序列化表示。步骤2:访问策略验证检查用户的属性集合是否满足密文中嵌入的访问策略。这个验证过程采用递归的方式,从叶节点开始向上检查,对于叶节点,检查对应的属性是否在用户的属性集合中。对于内部节点,计算满足条件的子节点数量,并与阈值比较,只有当根节点返回True时,用户才有权限解密数据。步骤3:拉格朗日插值计算如果用户通过访问策略验证,系统使用拉格朗日插值技术重构解密密钥。这是最复杂的计算步骤:标识满足节点:自顶向下找出所有满足条件的最小节点集合。计算拉格朗日系数:对于每个满足的节点i,计算拉格朗日系数。这个系数用于在拉格朗日插值中正确地组合各个秘密分享。重构解密值:使用拉格朗日插值公式重构原始秘密。通过组合满足条件的节点的秘密分享,可以恢复出用于解密的密钥。步骤4:SM4密钥恢复通过双线性配对运算恢复被掩码的SM4密钥:计算配对:使用用户的私钥和密文组件进行双线性配对运算。去除掩码:将配对结果与掩码后的SM4密钥进行异或运算,恢复原始的SM4密钥。步骤5:数据解密和验证使用恢复的SM4密钥解密数据,然后验证签名:SM4解密:利用解密所得SM4密钥对加密数据组合解密,获取“明文+签名”组合数据。为了防止侧信道攻击,系统保证了解密的时间不会取决于失败的原因,这样可以防止攻击者通过时间分析来获取系统的有关信息。签名验证:基于SM2算法的数字签名有效性验证确保数据传输完整性完整性检查:签名验证失败时,解密过程将终止并返回错误,确保系统不输出篡改数据错误处理和安全考虑:系统在解密过程中形成起完备的错误处理机制,如果用户属性不符合访问策略,则立刻返回解密失败,不再执行后面的计算,倘若拉格朗日插值运算发生故障,系统就会改用备用算法或者给出出错消息,如果签名校验不成功,那么系统便记下可能存在的窜改举动。3.5系统信息共享流程加密共享系统和解密共享系统都采用了客户端-服务器结构,实现了安全的信息交换,分别监听9000和9001端口,所有网络通信都由NetworkManager类处理。通信协议采用固定格式:8字节的消息类型标识、8字节的长度以及JSON格式的内容,支持“MSG”和“ATTR_REQ”两种消息。信息交换分为两个流程,一个是加密消息的传输,另一个是策略信息交换。加密系统会对原始数据使用SM4加密,再对SM4密钥使用CP-ABE加密,而解密系统会根据用户的属性来生成密钥,如果符合访问策略就可以成功解密。系统安全性依靠三个机制,一是基于属性的访问控制,只有拥有合适属性组合的用户才能解密数据,二是采用国密算法(SM2/3/4)与双线性映射,保障数据安全,三是用户属性由用户本地管理,不通过网络传输,保护属性隐私。3.6本章小结本章介绍了基于属性基加密的数据共享系统的核心流程设计。系统总体设计展示了一个模块化的、可以扩展的系统,把复杂的密码学操作封装在独立的模块中,使得系统具有可维护性、安全性。访问树定制流程给用户赋予了灵活且强大的访问控制策略设计工具,它依靠AND,OR,Threshold等多种逻辑门,可表现复杂的权限控制需求,而且,序列化机制和动态调整功能也给实际应用带来了便利。加密流程采取分层设计,各种密码算法各取所长,SM4给出高效的对称加密,SM2保障数据真实性和完整,CP-ABE做到细粒度的访问控制,这样既维持了安全性,又明显改善了系统性能。解密流程通过严格的访问策略验证、高效的拉格朗日插值运算以及完备的签名验证,从而保证只有合法用户才能得到正确的解密结果,而且,完备的错误处理机制与安全考量也提升了系统的可靠度和安全性。下一章将深入探讨访问树的实现细节,包括节点定义、结构修改与存储等技术内容。4访问树定制设计与实现4.1引言访问树的设计应具备表达能力强、表示复杂的布尔逻辑关系的能力、计算效率高、在大规模属性集合下仍能保持良好性能、易于操作、支持动态的策略调整与维护、安全性强、防止恶意用户绕过访问控制。4.2设计目标访问树模块的设计目标可以从功能性和非功能性两个维度来考虑:(1)功能性目标:多类型节点支持:系统需要支持多种类型的节点,包括叶节点(LEAF)对应具体的属性、与门节点(AND)所有子节点都必须满足、或门节点(OR)至少一个子节点满足即可、阈值门节点(Threshold)k个子节点满足即可。支持策略表达与验证,提供语法支持及自动验证和语法检查功能。支持动态策略调整,实现有限策略调整而无需重新加密数据。支持序列化、持久化及策略的保存、加载与网络传输。(2)非功能性目标:执行性能改良,在维持功能完备性的情况下,把计算效率做到最大,内存经营,对内存运用实施有效的经营,规避内存泄漏和栈溢出,可扩充性,形成模块化的架构,方便日后增添新功能,出错处理,给予周全的出错处理办法,保障系统稳定运行。4.3系统构造4.3.1访问树节点定义节点关系管理:通过parent和children属性来维持节点间的父子联系,能够实现双向遍历,在添加子节点的时候,系统会自动更新父子关系以及索引,在删除子节点的时候,系统会重新给剩下的子节点分配索引,从而保证索引是连续的。(1)节点属性:每个节点具备节点种类(AND/OR/LEAF/Threshold),阈值(仅仅内部节点会用得到),属性(只是叶节点才会用到),子节点清单,父节点参考,节点编号,秘密共享数值以及多项式系数这些属性。(2)节点索引机制:每个节点都有一个索引,索引在以下场景起着关键作用:线性秘密共享时多项式求值的点-拉格朗日插值时的插值点节点的索引。索引分配采用深度优先遍历方式,保证访问树的每个节点都有唯一标识符,遍历时从根节点开始,给当前节点分配索引,再递归地给所有子节点分配索引。4.3.2访问树的结构修改策略等价性检查:当进行树结构修改的时候,系统能够检查修改前后策略是否等价,这个检查过程借助于生成测试用例集合,针对每一个测试用例来检验修改前后策略给出的结果是否一致。节点添加操作:添加新节点时先判断插入位置是否合法,比如叶子节点没有孩子,然后在指定位置插入新节点,更新父子关系,再重新分配索引,检查树的合法性。节点删除操作:删除节点的时候要处理它的子节点,要是被删掉的节点有子节点,系统就会把子节点提升到父节点,维持树的结构完整,对于叶节点,可以直截了当删掉,删掉以后,系统会重新分派索引,还要检查树是否有效。树结构优化:要提升计算效率,系统具备访问树自动改良功能:把相同种类的邻接节点合起来,比如,两个相邻的OR节点可合成为一个OR节点,去除不必要的单子树,要是某个内部节点仅有一子节点,就可用子节点来代替它,对子节点重新排序,依照计算复杂程度或者概率去改良子节点的访问次序。4.3.3访问树的保存与读取压缩和优化:对于比较大的访问树,系统支持压缩功能,采用gzip算法压缩JSON数据,减少存储空间与传输时间,压缩后的数据仍保留结构,可正确解压恢复。序列化实现:序列化把访问树转变成字典格式,含有节点种类,阈值,属性,索引以及子节点信息,序列化的数据可转变成JSON字符串,可执行美化输出并设定字符编码。反序列化实现:反序列化过程从字典或者JSON字符串恢复访问树结构,系统会递归创建节点,正确设置父子关系和索引,在反序列化的时候包含全面的错误检查,保证数据的完整性和正确性。文件操作:系统提供了方便的文件保存和加载功能。保存的时候会自动创建目录,文件锁定等。加载的时候会有完整的错误处理,可以处理文件不存在,没有权限,格式错误等等各种异常。版本控制:为支持策略的版本管理,在序列化时加入版本信息,即版本号、时间戳和校验和,方便追踪策略的变更历史并执行一致性验证。4.4本章小结这一章细致阐述了访问树的设计与达成状况,涵盖节点界定,结构变动以及储存方法等方面,依靠TreeNode类的用心规划,系统做到了灵活又高效的访问策略表述及管理工作。访问树节点定义部分主要阐述了节点的主要属性和方法,特别是索引机制和节点之间的关系,这为后续秘密共享和拉格朗日插值奠定了基础。访问树的结构修改功能给用户赋予了动态修改访问策略的能力,利用节点的增添,删减和移动操作,用户能够在不重新加密数据的前提下做一些策略上的改动,树结构改良以及策略等价性检测功能也提升了该系统的实用性和可靠性。访问树的保存与读取使用了JSON格式,方便阅读且跨平台,版本控制和压缩优化功能为实际应用提供了更多的便利。下一章将介绍基于双线性映射的属性基加密系统的具体实现,包括CA的初始化、策略树的读取以及国密算法的集成。5属性基加密系统设计与实现5.1引言CP-ABE系统的安全性依赖于双线性映射的困难性假设,其中最重要的是双线性Diffie-Hellman(BDH)假设和判断双线性Diffie-Hellman(DBDH)假设。即使攻击者得到了多个用户的私钥,只要这些用户的属性组合不满足密文的访问策略,他们也无法得到原始数据。5.2属性基加密的实现5.2.1CA的初始化证书颁发机构(CA)在ABE系统中扮演着关键角色,它负责系统参数的生成、主密钥的管理和用户私钥的颁发。CA的安全性直接关系到整个系统的安全性。系统参数生成:CA初始化过程包含以下步骤:(1)双线性群的选择:选择三个循环群G₁、G₂和Gₜ,其中G₁和G₂的阶为q(大素数),双线性映射e=G₁×G₂→Gₜ(5.1)(2)生成元的确定:分别选择G₁和G₂的生成元g₁和g₂。(3)主密钥的生成:随机选择两个指数α,β∈Zᵧ,其中α是主密钥,β是辅助参数。系统首先初始化双线性映射引擎,基于BN128椭圆曲线构建双线性群。然后生成主密钥α和参数β,这两个值必须使用密码学安全的随机数生成器,确保其不可预测性。接下来计算公钥组件,包括g1β、g1α和e(g1,g2)α。最后构建并发布公钥PP=(g1,g2,g1β,e(g1,g2)α)(5.2)(1)随机数生成:利用密码学安全的随机数生成器(CSPRNG),产生α与β,保证随机性且难以预料。(2)主密钥保护:α须严格保密,不得在系统中存储或传输,相关计算均在CA内部完成(3)参数验证:确保参数生成满足安全性要求,包括β≠0及群运算的正确性。(4)公钥的发布:CA生成的公钥将公开发布,供系统用户使用。5.2.2策略树的读取默认策略树的构建:系统提供一个示例策略树,实现(StuANDGra)OR(ProfORAdmin)的访问策略,表示要么是研究生(同时具有学生和研究生身份),要么是教授或者管理员。创建根节点、构建子树、分配索引等。策略树的解析:系统提供交互式的策略选择界面,用户可以选择从文件加载策略树或者使用默认的示例策略树,如果选择从文件加载策略树,则提示用户输入文件路径,然后尝试解析JSON格式的策略文件,如果加载失败则自动回退到默认策略树。图5.SEQ图5.\*ARABIC1示例访问树策略验证:系统在应用策略树前进行完整性验证:(1)结构检查:保证树结构完整且无循环依赖。(2)语法验证:验证节点类型与阈值的有效性。(3)语义分析:确保策略逻辑合理性。5.2.3实现属性基加密的技术CP-ABE的实现涉及四个核心算法:Setup、KeyGen、Encrypt和Decrypt。每个算法都有其特定的数学原理和实现方式。Setup算法:Setup算法在CA初始化时执行,生成系统的公开参数和主密钥。算法选择双线性群,选择生成元,随机选择主密钥和辅助参数,计算公钥组件并输出公开参数和主密钥。KeyGen算法:KeyGen算法为拥有特定属性集合的用户生成私钥。算法首先选择随机数r,然后计算主密钥分量对于每个属性,算法将属性映射到G₁中的点,选择随机数rⱼ,计算属性私钥分量Dⱼ=g₁^r·H(j)^rⱼ。最终用户私钥包含主分量D和每个属性的分量。数学原理:用户私钥包含主分量D=g2(α+r)/β(5.3)和每个属性j的分量Dj=g1其中H是将属性映射到G₁的哈希函数。Encrypt算法:Encrypt算法将明文与访问策略一起加密。算法选择随机数s,计算C=g₁s,计算掩码因子e(g1,g2)αs,使用掩码加密SM4密钥。然后为每个属性计算密文组件,将属性哈希到G₁群,计算Cattr=Hattrs最后构建包含所有组件的密文。Decrypt算法:Decrypt算法检查用户属性是否满足访问策略,如果满足则恢复明文。算法首先检查访问策略,计算解密值(使用拉格朗日插值),恢复SM4密钥并解密数据。如果任何步骤失败,算法返回解密失败。5.3国密算法的参与及实现国密算法在系统中发挥着重要作用,确保符合我国密码法规要求的同时,为数据提供全方位的安全保护。5.3.1SM3算法的实现数据完整性验证:系统提供恒定时间比较函数以防范时序攻击。(1)属性映射:属性字符串到椭圆曲线群点的映射方法研究。(2)数据完整性:计算数据哈希值以验证完整性。(3)数字签名:数字签名算法的消息摘要提供方案。属性映射实现:系统使用try-and-increment方法把属性字符串映射成椭圆曲线点,算法把属性编码成字节,用计数器产生不同的输入,算出SHA256哈希,在实际应用中应当用SM3,把哈希值改成标量,试着生成椭圆曲线点,如果成功就返回点和对应的标量,失败就试着下一个计数器值。通过计算数据的SM3哈希值并与期望值比较,可以验证数据是否被篡改。5.3.2SM2算法的实现SM2椭圆曲线公钥密码算法主要用于数字签名,确保数据的真实性和不可否认性。密钥对生成:SM2Signer类在初始化时生成密钥对。系统使用密码学安全的随机数生成器生成私钥,通过椭圆曲线点乘法计算公钥。所有操作都在SM2推荐的椭圆曲线上进行。数字签名过程:签名算法首先计算哈希值ZA||M,其中ZA是用户标识的哈希。然后进入签名循环:生成随机数k,计算椭圆曲线点(x1,y1)=[k]G,计算r=(e+x1)modn(5.6)计算s=((1+dA)-1⋅

(k-r⋅dA))modn(5.7)如果r或s为0,重新生成k。最终返回签名(r,s)。签名验证过程:验证算法检查r和s的范围,计算哈希值ZA||M,计算t=(r+s)modn,计算验证点[s]G+[t]PA,计算R=(e+x1)modn,验证R是否等于r。5.3.3SM4算法的实现填充机制:实现了标准的PKCS7填充。填充时计算填充的长度,保证数据按照16字节的边界对齐,填充值就是填充的长度。去除填充时验证填充的有效性,防止填充Oracle攻击。加密实现:SM4加密函数先对明文做PKCS7填充,然后创建SM4加密器并设置密钥,再执行ECB模式加密,最后返回密文。整个过程保证数据以16字节块的方式被处理。解密实现:SM4解密函数创建SM4解密器并设置密钥,执行ECB模式解密,去除PKCS7填充,返回明文。解密过程有完整的错误检查,保证填充正确。5.4系统的加密流程加密流程是系统的核心功能,它将普通的数据转换为只有授权用户才能解密的密文。整个过程涉及多个密码学算法的协调配合。图5.SEQ图5.\*ARABIC2加密系统可视化界面完整加密流程:(1)预处理阶段:系统首先选择访问策略树,如果是首次使用则提示用户选择。然后生成128位随机SM4密钥,作为会话密钥使用。(2)数据处理阶段:系统对原始数据进行UTF-8编码,计算SM3哈希值保证数据完整性,使用SM2算法对数据进行数字签名,将原始数据、签名r和签名s组合成一个数据包,使用SM4算法加密组合后的数据。(3)密钥加密阶段(CP-ABE):这是最关键的步骤,系统选择随机数s,计算密文主组件,计算掩码因子,将SM4密钥与掩码进行异或运算,为访问策略中的每个属性计算密文组件。(4)密文构建阶段:系统构建最终密文,包含C、掩码后的密钥、属性密文组件、访问策略和其他元数据,将所有组件序列化为JSON格式。数学理论基础:CP-ABE加密的核心思想基于线性秘密共享方案。设访问树对应的秘密共享矩阵为M,标签函数为ρ,加密过程涉及以下关键计算:主密文组件:C=g₁s,C’=M·e(g₁,g₂)αs。属性密文组件:对每个属性i,计算:Cᵢ=g₁^λᵢ·H(ρ(i))-rᵢ(5.8)计算Dᵢ=g₂rᵢ,其中λᵢ是秘密分享值,rᵢ是随机数。性能优化:为提高加密效率,系统采用了多种优化技术:预计算技术,预计算常用的椭圆曲线点运算结果、并行计算,对多个属性的密文组件并行计算、批处理,批量处理多个加密请求、缓存机制,缓存频繁使用的中间计算结果。5.5信息共享的实现加密共享系统与解密共享系统的信息共享原理如下:这两个系统通过网络通信实现了基于属性的加密(ABE)信息共享功能。下面将详细解释它们的信息共享原理:5.5.1网络通信架构两个系统均采用了客户端-服务器架构,但可以互相通信,加密共享系统默认监听9000端口,解密共享系统默认监听9001端口。两者都包含了NetworkManager类,负责处理所有网络通信功能,包括服务器功能(接收消息)、客户端功能(发送消息)和策略信息交换。5.5.2通信协议系统使用一个简单但有效的通信协议:(1)消息类型标识:固定8字节字符串(2)MSG:加密数据传输(3)ATTR_REQ:策略信息请求(4)消息长度:固定8字节数字(5)消息内容:JSON格式,包含:对于加密数据:SM4密文和ABE密文(均为Base64编码)。对于策略信息:访问树结构和属性列表。5.5.3加密消息传输流程(1)加密过程(加密系统)的工作流程:首先使用SM4加密原始数据,然后使用CP-ABE加密SM4密钥,再将两部分密文编码为Base64字符串,最后封装为JSON格式的消息。(2)然后是发送流程:建立TCP连接,然后发送消息类型标识MSG、消息长度、JSON消息内容,最后接收确认响应。(3)接收过程(解密系统)的工作流程如下:首先接收消息类型、长度和内容,然后解析JSON数据并将消息存入队列和UI显示列表,最后发送确认响应。5.5.4策略信息交换流程解密系统请求过程流程如下:发送ATTR_REQ请求到加密系统且不需要附加数据(长度为0)。加密系统的响应过程:先获取当前访问策略信息,然后将策略树结构和属性列表封装为JSON,再发送给解密系统。解密系统的处理过程:解析策略信息然后显示在UI上,帮助用户选择正确的属性组合。5.6系统的解密流程解密流程是加密流程的逆过程,它验证用户的访问权限并恢复原始数据。解密过程必须严格按照密码学协议执行,确保安全性。图5.SEQ图5.\*ARABIC3解密系统可视化解密流程详述:验证阶段:系统首先解析JSON格式的密文,提取各个组件,从密文中恢复访问策略树,验证用户属性是否满足访问策略。计算阶段:如果用户通过验证,系统计算解密值,使用递归算法遍历访问树,为每个满足的叶节点计算配对值,使用拉格朗日插值重构根节点的解密值。密钥恢复阶段:系统计算关键的配对值,理论上应恢复e(g₁,g₂)αs,从密文中提取掩码标识符和掩码后的密钥,使用异或运算恢复原始SM4密钥。数据恢复阶段:系统使用SM4密钥解密数据,分离原始数据和数字签名,验证签名的有效性,如果所有验证通过,返回原始明文。拉格朗日插值的数学原理:在CP-ABE解密中,拉格朗日插值是恢复秘密的关键技术。对于满足访问策略的属性集合S,拉格朗日系数定义为:Δᵢ,ₛ(x)=∏ⱼ∈ₛ,ⱼ≠ᵢ(x-j)/(i-j)(5.9)在实际实现中,x=0,因此:Δᵢ,ₛ(0)=∏ⱼ∈ₛ,ⱼ≠ᵢ(-j)/(i-j)。这个系数用于重构原始秘密:s=Σᵢ∈ₛλᵢ·Δᵢ,ₛ(0)。5.7本章小结加密和解密流程的详尽叙述显示了系统的工作方式,分层加密策略很好地利用了对称加密的效率以及非对称加密的灵活之处,完备的错误处理机制保证了系统的稳定可靠。CA初始化部分提到系统参数的生成以及主密钥的管理,特别重视安全性考量,随机数生成质量,主密钥的保护措施等等都是重要安全因素,公钥被正确生成并公布是系统安全运作的基本前提。策略树的读取与管理给系统赋予了灵活的访问控制手段,依靠从文件加载以及动态创建,它就能符合各种复杂的权限管理需求,示例策略树的设计表现出怎样用逻辑门组合来达成复杂的访问策略。ABE算法的实现部分对Setup、KeyGen、Encrypt和Decrypt这四个核心算法进行了详细的实现,每个算法都严格按照数学定义进行实现,保证了系统的正确性和安全性,尤其是密钥生成和解密时,线性秘密共享和拉格朗日插值的正确实现是保证系统功能的重要因素。国密算法的集成,显示了怎样把SM2、SM3、SM4这些国产密码算法很好地融入到ABE系统当中去,这样既符合规定,又利用了各种算法的优点,形成一个有效而且安全的密码学架构。结论本研究采用属性基加密技术设计并实现了一个符合国密标准的数据共享系统,系统采用模块化设计的方法将系统划分为证书颁发机构、访问策略树管理、加密解密以及数据共享等模块,在BN128椭圆曲线上搭建双线性映射环境,并将SM2、SM3、SM4等国密算法应用到该环境中。研究过程里深入挖掘了访问树的设计与改进,实现了一种灵活且直观的策略表示办法,支持AND,OR,Threshold之类的逻辑操作相互结合,能够应对复杂的权限控制需求,在加解密流程设计时采用了分层策略,凭借SM4算法高效处理大量数据的特性,之后用CP-ABE技术加密SM4密钥,如此一来既保证了安全性又提升了系统效率。安全性分析显示这个系统能够抵御选择明文攻击、合谋攻击之类的安全威胁,性能测试的结果同样表明对的优化策略在提升加解密效率方面是有效的,预计算、并行计算这些手段确实改善了系统的性能表现。不过系统也存在一些限制,即便经过很多方面的改良,双线性配对运算的高计算复杂程度依旧是系统性能的瓶颈所在,尤其在大规模应用场合更为突出,而且密钥以及密文长度会伴随属性数量与策略复杂程度的增多而增大,这对于储存空间和传送资源相对匮乏的环境而言或许会造成困难。未来的工作主要针对算法的改进,优化密钥及密文的存储结构以减小其大小,使程序更加节省资源。总的来说,该研究从理论和操作两个层面给出了解决数据共享时精细访问控制问题的办法,给国密环境下的安全应用给予了有用的参照及执行根基。参考文献李发根,胡予濮,李刚.一个高效的基于身份的签密方案[J].计算机学报,2006,(09):1641-1647

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论