解析

2023-11-09

隐私数据密文控制权只能由单一主体掌控?代表控制权的密钥如何才能安全地交由多个互不信任的主体协同使用?如何在技术层面保障多方授权的公平公正性?任一参与协作的主体密钥丢失,如何实现安全可靠的容灾恢复?

在业务方案设计中,安全可控地让多个隐私主体参与数据协作,是隐私保护技术创造新兴商业价值的关键之一。在这一过程中,代表控制权的密钥由哪一方来掌握,是影响参与者合作意愿的重要因素。

因为哪一方拥有了密钥,相当于哪一方就获得了控制权,未能掌控密钥的另一方,则可能在合作关系中处于弱势。这将成为实现公平对等多方协作关系的一个关键阻碍。

以多方决策为例,上市公司的一次董事会会议中,需要多数董事对决策项进行签字才能生效。出于某些影响,会议无法面对面举行,所有董事必须使用数字签名来远程完成这一个签字过程。为了保证决议过程的机密性和公正性,每位董事不希望其他董事知晓自己的选择,同时要让股东团体对最后的决策结果,即聚合后的签名,进行验证。

这个过程中,存在三个隐私保护相关的主要功能点:

  • 每位董事的签名控制权须由自己控制,而不是由中心化的可信第三方来代理行使权力。
  • 代表决策结果的聚合签名只需多数董事同意,便可生成合法的声明。
  • 股东团体需要对聚合后的签名进行验证,但无需知道具体哪些董事对此进行了签名。

以上功能点涉及在多方协作过程中,如何将原本单个的密钥安全地打碎成多个密钥分片,并让每个主体独立使用自己的密钥分片,合作完成所需的密码学协议过程。解决这一问题的关键,就在于门限密码算法的巧妙构造。

门限密码算法在多方协作的相关场景中应用十分广泛,可以实现数据联合授权、认证、密钥安全恢复、密钥安全交换等需求,在诸多分布式多方计算协议中均可见其身影。

本文主要从秘密分享、门限加密、门限签名三大应用方向,分享门限密码算法的奇妙之处。

 

秘密分享

1979年,Adi Shamir和George Blakley各自独立地提出秘密分享(Secret Sharing)的概念,奠定了门限密码学体系的基础。

具体而言,秘密分享是指一种安全地在多个参与者之间分享秘密的方式,其满足以下特性:

  • 每个参与者都独立持有一部分关于秘密S的分片,只有将足够数目的分片组合起来,才能够重新恢复出秘密S。
  • 当获得的分片数量不足时,无论采用何种组合策略,不会泄露关于秘密S的任何信息。

秘密分享在学术上的价值在于,提供了一种技术手段,将原本单一的密钥,以密钥分片的形式,安全地、平等地分配到多个参与者手中,除此之外,还实现了以下额外的安全特性:

  • 容错高可用:不会因为少量密钥分片损坏和丢失,而导致密钥不可用。
  • 抗侧信道攻击:原本固定的密钥,在密码学算法工程实现的执行过程中,可能会泄露一部分密钥的信息,但进行分片之后,成功实施此类攻击的难度将指数上升。

对于业务应用而言,主要使用的特性是密钥安全平等分配和容错高可用,可以用来满足价值贵重的物品或权利不能由单一主体掌控的业务需求,以此控制盗用、滥用等潜在风险。

例如,董事会的印章不能由单独的成员持有,银行保险箱的钥匙不能由单独的职员保管。在数字化的场景中,涉及多方隐私数据的业务合作,数据密钥也不能由单一主体掌管。

为了实现安全的秘密分享效果,最直接的秘密字符串分片方式并不能保障其安全性,攻击者无需收集足够的分片,便可以获得秘密的部分信息,示例如下:

因此,我们需要引入更为精巧的分片构造方式。

最常见的构造方式利用了拉格朗日多项式插值算法。其核心思想为,t个点可以确定一个t-1阶多项式对应的曲线。每一个秘密分片都相当于多项式曲线上的一个点:

  • 只要收集不同点的数目达到t个,就可以通过拉格朗日多项式插值算法求解出多项式中代表秘密的系数值。
  • 如果点的数目不足t个,对应的多项式有无限多个,对应的秘密可能是任意值,对秘密的机密性保护达到了信息论安全。

具体构造方式可以参考Shamir Secret Sharing的(t, n)秘密分享方案,即,将秘密分为n份,任意t份都可以完整地恢复出拆分前的秘密。构造过程如下:

  • 将秘密S作为多项式的第0阶常量系数,其余t-1个系数随机生成,由此构造出一个t-1阶的多项式,对应的曲线为C。
  • 在曲线C上随机选n个不同的点,将其分发给n个参与者。
  • 只要不小于t个参与者同意使用自己的点参与协同运算,便可恢复出曲线C对应的多项式,取其中第0阶常量系数,便可获得秘密S。

秘密分享在分布式密钥生成、密钥容灾恢复、数字版权管理、数据安全传输等业务领域中都有广泛应用。同时,秘密分享也是用于构造安全多方计算的重要技术之一。

基础的秘密分享方案可以进一步扩展为可验证秘密分享、多级多秘密分享、定期更新分片的主动秘密分享、可随时变更参与者的动态秘密分享、基于身份的秘密分享等方案,满足多方协作中多样化的业务需求。

秘密分享是所有门限密码算法的基础,解决了算法设计中密钥控制权安全分发的问题,用技术手段保障了隐私数据多方协作中,权利均衡、平等互信的效果。

门限加密

门限加密方案是门限密码算法常见应用之一,常常体现为一类分布式加解密协议,可以实现如下功能:

  • 任意用户都可以使用公钥对数据进行加密。
  • 私钥的所有权由多个指定的秘密持有者联合控制,只有满足数目的秘密持有者合作,将解密分片聚合,才能实现解密。

门限加密方案可以有效保护需要多方授权才能使用的隐私数据。回到之前董事会决策的示例,目前有一份敏感的业务数据需要给董事会成员汇报,由于数据的敏感性,需要确保有足够数量的董事在场,数据才能被解密。

门限加密方案可以很好地满足这一需求。传输业务数据前,使用门限加密的公钥对其进行加密,产生的密文只有当数量不少于门限值的董事授权同意之后才能进行解密。

使用门限加密方案的一般流程如下:

  • 初始化:n个参与者约定设置门限值t,并获取自己的私钥分片x,联合计算数据加密公钥PK并公开。
  • 加密:数据贡献者使用公钥PK对数据明文m进行加密,生成密文E(m)。
  • 生成解密分片:参与者分别使用自己的私钥分片x对密文E(m)进行解密,生成解密分片D_x(m)。
  • 聚合解密分片:参与者将解密分片聚合,只有获得不小于t个不同的解密分片D_x(m)之后,才可以完成聚合解密,获得数据明文m。

理论上,门限加密方案可以基于不同的计算困难性问题构造,例如,基于离散对数的ElGamal门限密码学体系、基于Diffie-Hellman的门限密钥交换协议、基于大素数分解的RSA门限密码学体系、基于椭圆曲线离散对数问题的BLS门限密码学体系等。

工程上,门限加密方案目前已经比较成熟,以经典论文《Simple and Efficient Threshold Cryptosystem from the Gap Diffie-Hellman Group》为基础的开源参考实现为例,在个人计算机上,对单个数据块进行单次分片聚合和解密的耗时都在微秒级,已经可以满足大部分业务的商用性能要求。

应用上,除了之前描述的多方授权数据解密之外,门限加密方案在匿名电子投票、数据代理服务、数据外包计算等需要为多个数据贡献者提供联合数据使用授权特性的领域,均有广泛应用前景。

门限签名

门限签名方案是门限密码算法最常见的应用。同样基于秘密分享的核心理念,门限签名方案通过将私钥拆分成多个秘密分片,实现了如下效果:

  • 只有当不少于门限值的秘密分片持有者共同协作,才可以生成有效的签名。
  • 即便部分秘密分片丢失,只要剩余秘密分片不少于门限值,依旧可以生成有效的签名。
  • 联合生成的签名中,并没有透露具体哪些持有者参与了签名过程。

在业务应用中,门限签名方案可以用来构造有效的多方联合签名流程。相比传统数字签名方案,整个签名过程消除了由单一主体保管密钥带来的系统性单点故障风险,以及跨机构信任问题。

每位秘密分片的持有者对签名私钥拥有平等的控制权,门限签名方案同时提供了私钥容灾恢复功能和外部验证匿名性。

这类方案可以显著提高用户对数据认证的信任,并促进多方平等合作,对于目前使用数字签名的所有应用场景都适用,可以看作是传统数字签名方案在分布式商业环境中的全面升级。

使用门限签名方案的一般流程如下:

  • 初始化:n个参与者约定设置门限值t,并获取自己的私钥分片x,联合计算数据验签公钥PK并公开。
  • 生成签名分片:参与者使用私钥分片x对数据m生成签名分片sig_x。
  • 聚合并生成签名:将签名分片合并,只有不少于t个签名分片才能生成完整签名sig。
  • 验证签名:验证者使用公钥PK,对关于数据m的签名sig进行验证。

与门限加密方案类似,门限签名方案可以基于不同的计算困难性问题来构造实现,例如,可以构造基于SM2国密标准算法的门限签名方案。

目前较为常见的开源实现,主要是基于BLS(Boneh–Lynn–Shacham)的签名算法。该方案验证效率尚可,但在签名聚合环节,生成签名的耗时会随参与者数量的增加而显著增加,可以达到毫秒级,比传统的数字签名方案慢几个数量级。

除此之外,目前的门限签名方案在初始化过程中,如果不依赖可信第三方,会面临交互轮数过多、构造复杂等问题。以上工程问题对需要进行高频签名操作的应用来说,可能会带来一定性能上的挑战,但对于一般应用来讲,应该不会成为性能瓶颈。

总体而言,门限密码学方案提供了一系列高效、易用的隐私保护分布式数据协作技术。随着其应用越来越广泛, NIST于2019年提议对门限密码学相关的密码学原语进行标准化,分别从单一主体使用和多方协作使用两个方向,对门类众多的门限密码学方案进行归类和标准化尝试。

在标准化完成之前,根据具体的业务需求,门限密码学方案的基础技术选型可以参考下图:

正是:多方协作密钥谁掌控,门限密码分权众做主!

门限密码学方案通过对隐私保护方案中的密钥进行分片,使得对于密钥所代表的数据控制权进行按需分配成为了可能。对于源自多方的隐私数据,门限密码学方案提供了安全、平等、高效的协同认证和计算工具,可以用来解决现代分布式商业环境中,所面临的多方数据认证、可信数据交换等核心业务挑战。

多方数据协作场景中,基于可信硬件(TEE)的解决方案也是目前行业研究的热点。

撰文 | 李昊轩 来源 | 微众银行区块链    授权转载

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

解析 的相关文章

  • 常用运放电路计算与分析

    常用运放电路计算与分析 1 运放的符号表示 2 集成运算放大器的技术指标 1 开环差模电压放大倍数 开环增益 大 Ao Ad Vo V V 107 1012倍 2 共模抑制比高 KCMRR 100db以上 3 输入电阻大 ri gt 1MW
  • 怎么在命令行里运行python脚本 (合集)

    在命令行里运行python脚本的方法 工具 原料 python CMD命令行 windows操作系统 方法 步骤 首先下载安装python 建议安装2 7版本以上 3 0版本以下 由于3 0版本以上不向下兼容 体验较差 打开文本编辑器 推荐
  • 区块链是生命体、经济体。未来的区块链世界离不开自己的价值尺度建设

    想知道更多区块链技术知识 请百度 链客区块链技术问答社区 链客 有问必答 公有链和联盟链的本质不同 区块链受到大家广泛关注应该是2015年10月 那时候万向在上海搞了一场区块链国际峰会 因为万向在整个金融界比较有影响力 加上 经济学人 在1
  • 编码:KR字符串匹配,一个简单到领导都看得懂的算法

    常怀感恩 生活或许就不会处处深渊 这几天看了 柔性字符串匹配 觉得很有意思 书是好书 只是这个脑子是不是猪脑就不知道了 于是秉着知之为知之 不知为不知的精神 我准备再次去请教一下我的领导 在一个月黑风高的夜晚 我给领导发了个消息 领导这么回
  • ckeditor的文本文件粘贴的br问题

    前几天 忽然发现wordpress的fckeditor不再更新了 而且因为升级 导致系统的编辑器也不能用了 所以给wordpress更换了编辑器 CKEditor CKEditor for WordPress 4 0 安装完成后 感觉还好
  • sprintf, snprintf, _snprintf, sprintf_s 等的区别

    先放结论 1 在支持snpritf的编译器 只使用int snprintf char buffer size t count const char format argument 无论成功或者失败 都会返回字符串的总长度 不包括结束符 如果
  • Cocos2d-x 3.x部署

    这是我第一次写技术文章 这里只是分享一下我的部署经验 请各位参考 谢谢 我简单的写写我的部署步骤 只参考了官方的readme 环境 win7 64位 1 打开控制台cmd 2 进入到cocos2d x引擎目录 键入setup py 键入的前
  • 后端转前端,该如何快速学习

    后端转前端还是比较容易的 学习难度降低了 多花点时间实操 基本可以接手项目 首先初学者要知道web前端工程师的目前核心技术 主要有HTML5 CSS JavaScript JQuery Ajax等技术 而且想要成为一名优秀的web前端工程师
  • CSDN第一篇博客,找工作日记第一篇

    今天结束了UC公司的几轮面试 不确定能否拿到offer 但回顾近几天的校招情况 比起十一之前不顺利的过程来说的确让人欣慰了很多 最近考了很多公司的笔试 也面过4399 UC TP LINK等等 峰回路转地明天还要参加百度的面试 当然还有菲音
  • 释放技术的想象-解码腾讯云软件架构与应用

    欢迎大家前往腾讯云社区 获取更多腾讯海量技术实践干货哦 关于腾讯 你可能玩过 王者荣耀 你可能用过 微信 和它的 小程序 你可能看过 腾讯视频 并且曾为之付费 你可能已经是多年的 QQ 老手但还不知道什么是 MQ 作为成立多年的老牌互联网公
  • android 之 如何让app没有图标

    我们有时候需要让我们的app没有图标 不要问我没有图标要干啥 我只是说的一个需求 单讲技术不说别的 首先我们要获得 PackageManager 的对象 PackageManager packageManager getPackageMan
  • HTTP协议实例详解

    HTTP是一个应用层协议 由请求和响应构成 是一个标准的客户端服务模型 HTTP通常承载于TCP协议之上 有时候也承载于TLS或SSL协议层之上 这个时候 就成了常说的HTTPS 默认HTTP的端口号为80 HTTPS的端口号为443 缺点
  • java关于ArrayList,Vector,LinkedList,Set及其面试题+LeetCode136两种方式实现

    ArrayList ArrayList的遍历补充 将list转换为数组 使用toArray 方法将列表转换为数组 再对数组进行遍历 Test void test01 List
  • 新手如何学习网络安全?

    每天都有新闻报道描述着新技术对人们的生活和工作方式带来的巨大乃至压倒性影响 与此同时有关网络攻击和数据泄露的头条新闻也是日益频繁 攻击者可谓无处不在 企业外部充斥着黑客 有组织的犯罪团体以及民族国家网络间谍 他们的能力和蛮横程度正日渐增长
  • [技术发展-28]:信息通信网大全、新的技术形态、信息通信行业高质量发展概览

    目录 前言 第1章 什么是信息与通信 第2章 为啥要编制信息与通信发展规划 第3章 信息与通信如何高质量发展 重点 3 0 发展目标 编辑 3 1 建设新型数字基础设施 3 1 1 移动通信网 无线接入层 1G到5G 3 1 2 固定宽带网
  • 区块链三加一:深度论区块链的联盟链意义与作用

    随着区块链技术的发展 越来越受个人及企业的关注 而和区块链联系最为紧密的 恐怕就是金融行业了 然而虽然区块链大受热捧 但毕竟区块链是属于公有区块链 公有区块链有着其不可编辑 不可篡改的特点 这就使得公有链并不适合企业使用了 毕竟如果某金融企
  • .net IOC之Spring.Net

    一 开发环境 编译器 VS2013 Net版本 net framework4 5 二 涉及程序集 Spring Core dll 1 3 Common Logging 三 开发过程 1 项目结构 2 添加Person cs namespac
  • 非常详尽的 Linux 中 WEB服务器配置与管理 (通过例子来讲解)

    Apache服务器的安装与启动 检查是否已经安装了APACHE并启动它 这是已安装好的状态 root root rpm qa grep httpd httpd tools 2 2 15 53 el6 x86 64 httpd 2 2 15
  • 移动端H5开发遇到的问题

    移动端开发必会出现的问题和解决方案 H5开发过程中难免会遇到一些兼容性等爬过坑的问题 移动端 H5 相关问题汇总 1px 问题 响应式布局 iOS 滑动不流畅 iOS 上拉边界下拉出现白色空白 页面件放大或缩小不确定性行为 click 点击
  • 对技术行业的深度思考

    技术行业是当今世界最为热门和发展迅猛的领域之一 无论是互联网 人工智能还是区块链 技术的快速发展正在改变着我们的生活和社会 然而 我们是否真正思考过技术在我们生活中的影响和意义 本文将对技术行业展开深度思考 探讨其带来的优势与挑战 以及如何

随机推荐

  • 图灵机模拟程序功能设计

    图灵机由无限长的纸带 读写头 状态寄存器 控制规则等四部分组成 纸带上的符号可以是 0 1 空格 要利用图灵机求解一个问题 需要自己设计图灵机 程序 即定义一些状态 其中包括初始状态和结束状态 设计给出控制规则 并进行图灵机初始化 设定初始
  • chrome/Edge搜索技巧

    1 剔除干扰项搜索 搜索内容 不想要的关键词 排除干扰项 2 特定搜索 给关键词加引号 关键词 只搜索引号里面的字 3 指定网站内搜索 site 域名 关键词 4 指定格式搜索 filetype 文件格式 关键词 可以制定pdf doc p
  • series not exists. Legend data should be same with series name or data name.

    normal删除
  • php+vscode+xdebug搭建php调试环境

    php vscode xdebug搭建php调试环境 开发环境 windows 10 php 8 0 23 xdebug 3 1 6 配置xdebug 查看php版本信息 cmd exe php version 可看到 我的版本信息为8 0
  • 阿里云maven 仓库地址配置

    参考 https help aliyun com document detail 102512 html spm a2c40 aliyun maven repo 0 0 36183054erKD4V 配置指南 maven配置指南 打开mav
  • 深度学习之生成对抗网络(7)WGAN原理

    深度学习之生成对抗网络 7 WGAN原理 1 JS散度的缺陷 2 EM距离 3 WGAN GP WGAN算法从理论层面分析了GAN训练不稳定的原因 并提出了有效的解决方法 那么是什么原因导致了GAN训练如此不稳定呢 WGAN提出是因为JS散
  • Best Cow Fences (前缀和 + 二分)

    描述 Farmer John s farm consists of a long row of N 1 lt N lt 100 000 fields Each field contains a certain number of cows
  • java Timer(定时调用、实现固定时间执行)

    最近需要用到定时调用的功能 可以通过java的Timer类来进行定时调用 下面是有关Timer的一些相关知识 其实就Timer来讲就是一个调度器 而TimerTask呢只是一个实现了run方法的一个类 而具体的TimerTask需要由你自己
  • caffe_master windows下的安装编译

    一 安装配置 caffe master包 https pan baidu com s 1kI2TcOX3Ak kNGGzsTYRBA 其它有需要请留言2602721630 qq com 本文在windows下使用visual studio2
  • 51单片机控制SG90舵机、MG90S舵机

    舵机的控制信号为周期是20ms 的脉宽调制 PWM 信号 其中脉冲宽度从0 5ms 2 5ms 相对应舵盘的位置为0 180度 呈线性变化 也就是说 给它提供一定的脉宽 它的输出轴就会保持在一个相对应的角度上 无论外界转矩怎样改变 直到给它
  • JavaScript 中的 SOLID 原则

    什么是 SOLID SOLID 是 Robert C Martin 的前五个面向对象设计原则的首字母缩写词 这些原则的目的是 让你的代码 架构更具可读性 可维护性 灵活性 单一职责原则 Single Responsibility Princ
  • 关于Java中Arrays.sort()的几种用法

    复习了Java数组之后 突然Arrays里面有一个sort是针对数组排序的 然后就看了看它的简单用法 Java的Arrays类中有一个sort 方法 该方法是Arrays类的静态方法 在需要对数组进行排序时 非常的好用 但是sort 的参数
  • mongo在linux下的安装(实践记录)

    mongo在linux下的安装 1 到官方网站下载需要安装的mongo版本 下载mongo对应的版本 官网为 http www mongodb org downloads 本人用的是公司的版本 mongodb linux x86 64 1
  • mysql如何设置自动增长id列

    参考 https blog csdn net WxQ92222 article details 79956403 我使用的是navicat软件来可视化mysql 实际上navicat可以直接设置自动增长的 在设计表时只要添加类型为int或b
  • linux添加新LUN,无需重启

    author skate time 2011 12 12 linux添加新LUN 无需重启 在给存储增加新的Lun时 在linux下一般是 A 重启操作系统 B 重启HBA卡驱动 1 kudzu 添加完新硬盘后 运行命令kudzu重新扫描新
  • TCP/UDP端口对应(转)

    常用端口编号 0 TCP UDP 保留端口 不使用 若发送过程不准备接受回复消息 则可以作为源端口 1 TCP UDP TCPMUX 传输控制协议端口服务多路开关选择器 5 TCP UDP RJE 远程作业登录 7 TCP UDP ECHO
  • Fiddler手机抓包方法及添加代理后连不上网解决

    Fidder手机抓包要保证电脑和手机在同一个局域网内 电脑端使用ipconfig查看ip地址 1 Fiddle给手机添加代理 Tools gt Options 2 手机添加代理 对应wifi点击高级选项 gt 代理 手动 gt 设置代理主机
  • css div layout,CSS布局指南

    特别声明 本文根据 Rachel Andrew的 Getting Started With CSS Layout 一文整理 在过去几年中 CSS布局已经发生了巨大的变化 现在我们开发网站的方式也发生了巨大变化 现在我们有需要可选的CSS布局
  • css3鼠标悬停动画线条边框特效

    鼠标滑过边框动画效果 使用css3结合jquery 此效果和代码是早些年最早刚接触c3动画时写的 当年写出它来别有一番成就感呢 所以记忆尤新 哈哈哈哈 早些年从不感兴趣这些写文章 管理博客之类的 现在拿出来分享给刚接触动画的小盆友们参考 先
  • 解析

    隐私数据密文控制权只能由单一主体掌控 代表控制权的密钥如何才能安全地交由多个互不信任的主体协同使用 如何在技术层面保障多方授权的公平公正性 任一参与协作的主体密钥丢失 如何实现安全可靠的容灾恢复 在业务方案设计中 安全可控地让多个隐私主体参