代理重加密-入门学习笔记(四)

代理重加密-入门学习笔记(四)代理重加密(PRE)(重密码学!)原文:https://blog.csdn.net/Black_BearB/article/details/812280301、基本思想-流程结算在云计算中,云计算服务提供商作为代理人,用户A不能完全相信云计算服务提供商,因此需要将自己的数据在本地用自己的公钥加密后在云中存储,这样代理人无法得到数据的明文信息。当他要和用户B共享文件时,A根据自己的信…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

代理重加密(PRE)(重密码学!)

原文:

https://blog.csdn.net/Black_BearB/article/details/81228030

1、基本思想-流程结算

在云计算中,云计算服务提供商作为代理人,用户A不能完全相信云计算服务提供商,因此需要将自己的数据在本地用自己的公钥加密后在云中存储,这样代理人无法得到数据的明文信息。当他要和用户B共享文件时,A根据自己的信息(如私钥)及用户B的公钥计算一个转换密钥Rk(重加密密钥),由代理人使用Rk将针对A的密文转换为针对B的密文。这样,B可以从云中下载该密文,只用自己的私钥即可解密。

 

2、算法描述

1:系统初始化

2:产生公私钥对

2.1:Alice向KGC请求生成自己的公私钥对。

2.2:KGC生成Alice的公私钥对并返回给Alice。

2.3:Bob向KGC请求生成自己的公私钥对。

2.4:KGC生成Bob的公私钥对并返回给Bob。

3:Alice生成密文文件

3.1:Alice利用AES算法加密数据M生成密文C1。

3.3:Alice根据第二层加密算法并利用自己的公钥加密AES的密钥生成密文C2

3.2:Alice把加密后的数据密文C1和C2,上传到服务器Server上

4:构建重加密密钥

4.1:Alice向KGC请求Bob的公钥。

4.2:KGC把Bob的公钥返回给Alice。

4.3:Alice利用Bob的公钥和自己的私钥生成重加密密钥KAàB。

4.4:Alice把生成的重加密密钥KAàB上传到服务器Server上。

5.代理重加密(ReEncryption)

重加密算法ReEnc(params,CT,rkiàj):给定针对公钥pki和第二层密文CTi,该算法利用重加密密钥rkiàk生成一个针对公钥pkj的第一层密文CTj。

服务器Server利用重加密密钥KAàB和之前Alice上传的密文C2做代理重加密运算生成新的密文C3。

6.Bob请求数据:

6.1:Bob向服务器Server请求解密数据M对应的密文G。

6.2:服务器Server把重加密后生成的密文C3和C1发送给Bob。.

6.3:Bob解密密文C,得到对称密钥,并用该对称密钥解密C,得到原始的的明文数据M。

3、密文共享

密文共享三种方法:

1.传统方法、代理重加密、属性加密

第一种:传统方法中,需要耗费大量的通信开销和运算代价,并且需要用户增加本地存储空间,这不符合用户通过云计算节省设备开销的初衷。

第二种:代理重加密方法中,主要是通过代理服务器将一个用户的密文转换为另一个用户可以解密的密文,且不泄露用户的私钥和明文信息。这种方法主要是端到端的。

第三种:属性加密方法中,数据拥有者可以利用属性加密,在数据加密的过程中定义一个访问策略只有满足这个访问策略的用户才能够解密,由此来实现密文的共享。这种方法主要是一对多

4、实际实例

医疗和保险,用户通过代理重加密对数据进行授权。数据分析公司用AI技术对模型进行训练然后基于MPC(安全多方计算)和下游企业如医院等,进行数据共享,形成一个良性经济生态。用户分享数据,也得到一定的利益。

征信和广告也类似,用不同的密码学技术对个人数据进行筛选处理,满足不同机构的需求,最后的收益要在链上进行记录和分发。各取所得,个人用户、机构等都有不同的利益分享,形成一个可持续的生态。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/195706.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • python NameError: name ‘raw_input’ is not defined

    python NameError: name ‘raw_input’ is not defined

    2021年10月21日
    44
  • 谷歌浏览器怎么安装crx插件_谷歌浏览器怎么安装crx插件

    谷歌浏览器怎么安装crx插件_谷歌浏览器怎么安装crx插件Chrome67版本(大概2018.06.06的更新包)开始,插件已经无法离线安装啦,也就是自己无法使用crx文件安装插件,而只能从chrome.google.com/webstore上安装。

    2022年8月5日
    3
  • git中ssh配置方法(ssh配置文件详解)

    前言:前几天在写博客手把手教你用Hexo+github搭建自己博客的时候,经常需要用到一些git操作,截了好多图,于是就想干脆整理成一系列的git教程,总结如下Git下载及配置环境变量Git命令行教程及实例教程Gitssh配置及使用gitssh配置多个账户Gitconfig使用说明Git配置别名——让命令变得更简单闲聊这篇教程是在电脑

    2022年4月15日
    55
  • MySQL数据库:SQL优化与索引优化

    MySQL数据库:SQL优化与索引优化

    2021年4月9日
    149
  • archwing任务流程_机器的武器任务流程

    archwing任务流程_机器的武器任务流程有两台机器 A,B 以及 K 个任务。机器 A 有 N 种不同的模式(模式 0∼N−1),机器 B 有 M 种不同的模式(模式 0∼M−1)。两台机器最开始都处于模式 0。每个任务既可以在 A 上执行,也可以在 B 上执行。对于每个任务 i,给定两个整数 a[i] 和 b[i],表示如果该任务在 A 上执行,需要设置模式为 a[i],如果在 B 上执行,需要模式为 b[i]。任务可以以任意顺序被执行,但每台机器转换一次模式就要重启一次。求怎样分配任务并合理安排顺序,能使机器重启次数最少。输入格

    2022年8月10日
    18
  • linux中samba服务器搭建(手机samba服务器)

    一、Samba概述Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(ServerMessagesBlock,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。win…

    2022年4月14日
    49

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号