首页 > 编程知识 正文

oracle自带的加密函数,文件属性有哪些

时间:2023-05-04 03:02:56 阅读:106398 作者:1559

欢迎公众号:区块链之美致力于区块链技术研究,传播区块链技术与解决方案、区块链应用落地、区块链行业动态等。

1.背景区块链的一个典型应用场景是资源共享,但在实际应用中,许多参与者的数据涉及机密,数据所有者不希望公开自己的数据。 数据在链上保存证书后会被他人共享,但数据所有人都可以看到,没有隐私。 如果数据所有者用自己的私钥加密数据并在链中存储证书,则可以保护数据的隐私,但不能与他人安全共享。

比如在金融领域,数据上行可以提高数据本身的安全性,也有利于监管机构从区块链提取和监管数据,但为什么金融领域的区块链APP很难取得进展呢? 要解决的一个重要问题是金融公司自身不希望数据存在于链上。 这些数据相当敏感和重要,如果数据泄露,会带来不小的损失。

3358 www.Sina.com/http://www.Sina.com/http://www.Sina.com /在ABE中属性也具有类似的作用。 例如,如果JackyLi是a大学的信息安全学院的教授,则“a大学”、“信息安全学院”和“教授”在ABE中描绘出JackyLi这个人的多个属性,这些属性可以构成一个属性的集合,将它们集合在c

2.基于属性的加密技术战略实际上是由属性和它们的关系构成的逻辑公式,这一简单的理解。 例如,以下公式中的Policy :

2.1相关概念

这是一个简单的策略,意味着只有x项目组的成员或a大学信息安全学院的教授才能满足其要求。

使用33558www.Sina.com/c_Jacky_Li和Policy1进行说明。 C_Jacky_Li集合没有“参与x课题”的属性,因此无法满足战略的前半部分; 另一方面,在战略的后半部分,要求“信息安全学院”、“A大学”、“教授”这三个属性同时出现,但由于C_Jacky_Li同时包含这三个属性,因此属性集合与战略的后半部分一致,是战略前后两个属性

此时,如果其他用户Johnson,他的属性集合为C_Johnson={计算机学院,a大学,教授},则很明显C_Johnson无法满足Policy1,此时属性集合和策略的一致将失败。

3358 www.Sina.com/http://www.Sina.com/http://www.Sina.com /基于属性加密技术(Attribute-BasedEncryption,ABE )的合理配置

以CP-ABE为例,通过一个简单的例子说明了ABE相对于传统公钥加密算法的优越性。

一个数据所有者必须对一个明文文件进行加密并将其发送给n个不同的用户。在使用传统的公钥加密算法时,数据所有者首先要存储该n个用户的公钥,使用该n个不同的公钥对该明文文件进行n次加密PK :公钥,公钥; CT:Cipher Text,密文。

使用ABE完成这个任务会很简单。 此时,数据所有者只需创建只有这n个用户满意的访问策略,然后将公共参数PP、该策略和明文文件输入ABE加密算法进行加密,创建唯一的密文。 获得密文后,数据所有者将密文分别发送到

这N个不同用户。

从加密计算开销与存储开销的角度来看,ABE在该场景下(数据加密共享场景)相较于传统公钥加密算法,有着肉眼可见的性能优势。

2.4.1 KP-ABE

KP-ABE(基于密钥策略的属性加密,Key-Policy ABE,KP-ABE)是将策略嵌入到用户密钥中,属性嵌入到密文中。密钥对应于一个访问结构而密文对应于一个属性集合,解密当且仅当属性集合中的属性能够满足此访问策略。这种设计比较接近静态场景,此时密文用与其相关的属性加密存放在服务器上,当允许用户得到某些消息时,就分配一个特定的访问策略给用户,其应用场景则更加偏向于付费视频网站、日志加密管理等等。如果用户想解密多个文件,那么他必须拥有多个可以满足匹配的秘钥,否则不能解密多个文件。

2.4.2 CP-ABE

CP-ABE(基于密文策略的属性加密,Ciphertext-Policy ABE,CP-ABE)是将策略嵌入到密文中,属性嵌入到用户密钥中。密文对应于一个访问结构而密钥对应于一个属性集合,解密当且仅当属性集合中的属性能够满足此访问结构。

CP-ABE基于属性的加密运用密码机制保护数据,由数据拥有者规定访问密文的策略,将属性集合与访问资源相关联,数据使用者可以根据自己的授权属性的访问密文信息,该技术适合隐私数据共享等访问类应用。

CP-ABE由于策略嵌入密文中,这就意味着数据拥有者可以通过设定策略去决定拥有哪些属性的人能够访问这份密文,也就相当于对这份数据做了一个粒度可以细化到属性级别的加密访问控制,CP-ABE的应用场景一般是公有云上的数据加密存储与细粒度共享。

2.3 KP-ABE与CP-ABE比较

比较项

CP-ABE

KP-ABE

策略相关

密文

秘钥

属性集合相关

秘钥

密文

数据拥有者是否有权决定数据能被谁访问

属性集合中属性来源

用户属性

数据/文件属性

适用场景

云环境/区块链数据加密共享

日志管理、付费视频网站

2.支持用户属性可撤销和恢复的CP-ABE算法实现步骤

CP-ABE主要由7个步骤组成,前两步均在证书颁发中心(CA)执行,并存储PKMKUK:

初始化Setup:初始化算法为随机化算法,初始化仅生成系统公钥PK、系统主秘钥MSK。撤销机构初始化:输入参数为PK,生成一个素数域P,为每个属性att计算list=1。算法输出初始化的P,map<userGID,prime>及map<att,list>,list并不是我们常见的list,而是一个大数,且为素数,用来记录是否被撤销。秘钥生成KeyGen:可信授权中心根据PK、MK和数据请求者提交的属性集合S,为数据请求者生成与属性集合关联的用户秘钥UK。在素数域中为用户申请一个素数prime,从P中删除这个prime,保证不同用户获取的prime不一样,然后素数存入映射表map<userGID,prime>中。加密Encrypt:加密算法(随机化算法)输入参数为PK、待加密消息M、访问策略关联的访问控制结构,输出基于属性加密的密文。解密Decrypt:解密为确定化算法,由数据请求者执行。解密分为两个步骤,第一步:访问策略树的叶子节点,令i=att(x),x表示密文策略访问树的叶子节点,(函数att(x)返回节点x所对应的属性),如果i∈S,算法获取该属性对应的撤销列表list并取模list%prime。若值不为0,表明该用户未被撤销,若为0,表示已被撤销,解密结束;第二步:当第一步验证通过后,算法输入UK、密文M,如果属性集合满足访问策略,算法可成功解密密文M。用户属性撤销:算法输入参数为属性att,属性对应的撤销列表list、用户user及用户对应的素数prime。当用户user被撤销属性att时,DO分别从映射表map<user,prime>和map<att,list>取出用户对应的素数prime及属性对应的撤销列表list,并计算list'=list×prime。属性att对应的撤销列表更新为list'。用户属性恢复:算法输入参数为属性att,属性对应的撤销列表list、用户user及用户对应的素数prime。用户被撤销可能是暂时的,当用户user重新拥有属性att时,DO分别从映射表map<user,prime>和map<att,list>取出用户对应的素数prime及属性对应的撤销列表list,并计算list'=list÷prime。属性att对应的撤销列表更新为list'。2.1用户和秘钥管理 2.1.1用户管理

用户拥有的基本信息(最小数据集合):GID(CA提供或业务方提供,但要保证全局唯一性)、CP-ABE用户属性(业务方提供)、唯一素数(CA用户注册单元提供)、私钥(CA用户私钥生成单元产生)。

用户提交信息(GID、CP-ABE用户属性、唯一素数)到CA,申请注册和生成用户私钥,用户私钥存在CA中,CA提供接口查询用户和用户私钥获取。

2.1.2策略更改

在实际工程应用中,撤销方案尽量选择复杂度低、计算开销小、实现简单的方案。因此,本设计中采用的策略撤销方案:通过固定长度的撤销列表记录撤销用户,撤销过程不必更新系统及相关用户的秘钥,可大大降低撤销所引起的计算开销。

2.1.3撤销

用户属性撤销:算法输入参数为属性att,属性对应的撤销列表list、用户user及用户对应的素数prime。当用户user被撤销属性att时,DO分别从映射表map<user,prime>和map<att,list>取出用户对应的素数prime及属性对应的撤销列表list,并计算list'=list×prime。属性att对应的撤销列表更新为list'。

2.1.4恢复

用户属性恢复:算法输入参数为属性att,属性对应的撤销列表list、用户user及用户对应的素数prime。用户被撤销可能是暂时的,当用户user重新拥有属性att时,DO分别从映射表map<user,prime>和map<att,list>取出用户对应的素数prime及属性对应的撤销列表list,并计算list'=list÷prime。属性att对应的撤销列表更新为list'。

3.安全性分析

已有大量学者对其研究证明是安全的,此处安全分析略。

4.方案优势 实现了加密数据的细粒度访问控制,即数据拥有者可以指定谁可以访问加密的数据,数据拥有者对数据具有完全的控制权。例如,金融公司自身可以控制谁能对数据进行访问,只需要把数据访问的权限交给监管机构和与之有数据合作的伙伴即可。CP-ABE不需要像其它加密方式那样,如非对称加密,每次加密都必须知道接收者的身份信息且发送给多个用户时必须加密多次,CP-ABE只需要设置访问策略仅执行一次加密,当用户拥有的属性符合加密者所描述的策略时,数据使用者就可以解密。可解决对称加密密钥传输带来的密钥泄露的问题,保护了数据拥有者信息,也保护了数据使用者信息。5.潜在的应用场景

区块链技术与开放银行的构建

6.CP-ABE算法Java实现

可参考以下两个开源项目实现,但是不包括访问策略更改,这一点需要自己实现。

https://github.com/干净的学姐81/dcpabehttps://github.com/TU-Berlin-SNET/jTR-ABE

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。