安全数据流通技术介绍

不同于区块链技术,数据流通技术⼴泛应⽤于区块链中间件之中。其中如何做到安全数据流通,即不泄露⽤⼾隐私,是数据类中间件的重要需求和组成部分。本期⽂章主要介绍安全数据流通技术的⼏种技术⼯具和框架,重点介绍的是安全多⽅计算⽅法。⾸先我们需要了解基本的数据流通概念。

什么是数据流通

因此,数据流通可以被定义为某些信息系统中存储的数据作为流通对象,按照⼀定规则的从供应⽅传递到需求⽅的过程

数据流通技术需求

1. 个⼈信息保护

个⼈信息保护是数据流通的前提。根据《中国⼈⺠共和国⽹络安全法》规定:“未经被收集者同意,不得向他⼈提供个⼈信息。但是,经过处理⽆法识别特定个⼈且不能复原的除外”。对此,个⼈信息保护可以从信息处理和个⼈授权两个⽅⾯解决。但是,去除个⼈信息的处理加⼯⽅式 必然伴随着信息的流失导致信息使⽤价值降低。因此,如何同时保证信息完整不缺失和保护被收集者 个⼈信息成为迫切需求。技术要满⾜以下需求:

⼀是数据标识加密技术。该技术利⽤算法,将可识别个⼈⾝份的标识信息转换成不能识别⾝份的密⽂ 信息,且需要满⾜相同数据标识在不同数据持有⽅中被转换的结果不同,⽤于确保个⼈信息在流通中 得到保护。⼆是加密后的数据标识可进⾏关联技术。该技术实现不同参与⽅系统中的被加密标识可通 过第三⽅转译进⾏再次关联,⽤于保证流通关联性。三是个⼈信息被流通前的有效授权技术。该技术 需要确保只在被收集者授权情况下才可启动数据流通,确保个⼈数据只在授权范围内合法使⽤。其中,差分隐私、同态加密等加密技术都可以实现对个⼈数据信息保护的前提下,实现数据计算任务。

2. 权益分配

权益分配是数据流通的基本动⼒。对权益进⾏合理分配才能促进数据不断流通。必须保证数据拥有者,数据持有者,数据开发者都能够得到合理分配的权益。权益分配策略必须在技术上简单⾼效可⾏。技术要能够满⾜以下需求:

⼀是权益分配⽅案必须为各⽅所共同接受。必须按照各⽅贡献价值⼤⼩进⾏分配。⼆是必须能够快速⾼效计算各⽅贡献价值,保证各⽅贡献价值真实有效。

其中,区块链技术可以实现⾼效、安全的多⽅利益分配机制,做到去中⼼化、信息可追溯,并且提供可信的多⽅计算环境。

3. 安全保障

安全保障是数据流通的关键屏障。必须通过技术⼿段保障流通数据安全与⽤⼾安全。

⼀是对流通的数据应采⽤加密⼿段处理,保证数据在传输过程中的安全。⼆是在上传数据前必须明确告知被收集者,禁⽌在未经被收集者同意情况下采⽤技术⼿段直接上传数据。三是禁⽌流通任何危害国家安全社会稳定、侵犯他⼈权利,涉及商业机密的数据。技术上能够做到对这些数据检索识别,追踪数据上传源头。四是数据必须在⼀定范围内使⽤,符合有限使⽤原则。技术上能对数据使⽤范围做出检测,警告超出合理使⽤范围的数据应⽤。

其中,安全多⽅计算技术,可以确保在保护数据提供⽅数据的前提下,实现多⽅安全协同计算,并确保各参与⽅得到正确的数据结果反馈。

4. 追溯审计

追溯审计是数据流通的坚实后盾。对已经流通的数据建⽴完善的追溯审计体制,使违规侵权⾏为被及时追踪发现。技术要能够满⾜以下需求:

⼀是对参与数据流通各⽅实体的⾏为做到透明⽇志记录,⽅便数据拥有者查阅其数据使⽤记录。⼆是能够及时检测⽇志中出现的异常⾏为并快速定位异常情况,追溯到⾏为源头。

其中,区块链技术天然具备透明⽇志记录以及可追溯、不可篡改的特性,⾮常适合做安全、透明的追溯审计。

技术介绍

可信执⾏环境(trusted execution environment (TEE))是⼀块主处理器中的安全区域。它保护其区域内的数据和代码的完整性与安全性。⼀块可信执⾏环境拥有⾃⼰独⽴运⾏的系统,包含⼀些特性如隔离执⾏、完整、安全的运⾏程序等。简⽽⾔之,可信执⾏环境较之普通操作系统,拥有更⾼级别的独⽴性和安全性,较之安全元件拥有更多的功能性。

为了防⽌⽤⽤⼾控制的软件模拟硬件,可信执⾏环境使⽤所谓的“硬件信任根”。这是⼀组在制造过程中直接嵌⼊到芯⽚中的私钥。即使在设备重置后,这些私钥也⽆法更改,并且其公共副本位于制造商数据库中,以及属于受信任⽅(通常是芯⽚供应商)的公钥的⾮秘密哈希,⽤于签署受信任的固件执⾏加密操作和控制访问的电路。硬件的设计⽅式可以防⽌所有未由受信任⽅密钥签名的软件访问特权功能。供应商的公钥在运⾏时提供并经过哈希处理;然后将此散列与芯⽚中嵌⼊的散列进⾏⽐较。如果哈希匹配,则使⽤公钥来验证数字签名受信任的供应商控制的固件。然后使⽤受信任的固件来实现远程证明。

当应⽤程序被证明时,其不受信任的组件将其受信任的组件加载到内存中;受信任的应⽤程序受到带有硬件的不受信任组件的修改保护。⼀个随机数由不可信⽅要求从验证的服务器,⽤作加密认证协议的⼀部分,证明了信任的应⽤程序的完整性。证明被传递给验证者,验证者对其进⾏验证。⽆法在模 拟硬件中计算有效证明因为为了构建它,需要访问到硬件中的密钥;只有受信任的固件才能访问这些密钥和/或从它们派⽣或使⽤它们获得的密钥。由于只有平台所有者才能访问代⼯⼚中记录的数据,因此验证⽅必须与供应商设置的服务进⾏交互。

使⽤场景

2. 移动⾦融服务

移动商务应⽤程序,如移动钱包、点对点⽀付、⾮接触式⽀付或使⽤移动设备作为销售点终端通常具 有明确定义的安全要求。可信执⾏环境,通常与近场通信(NFC)、安全元件(SE)和可信后端系统结合使⽤,以提供实现⾦融交易所需的安全性。在某些情况下,需要与最终⽤⼾进⾏交互,这可能需要⽤⼾向移动操作系统公开敏感信息,例如 PIN、密码或⽣物识别标识符,以作为对⽤⼾进⾏⾝份验证的⼿段。TEE 可选择提供可信⽤⼾界⾯,可⽤于在移动设备上构建⽤⼾⾝份验证。

3. 认证

TEE ⾮常适合⽀持⽣物识别 ID ⽅法(⾯部识别、指纹传感器和语⾳授权),这可能⽐ PIN 和密码更易于使⽤且更难窃取。

4. 企业、政府和云政府

企业和云服务提供商可以使⽤ TEE 来安全处理移动设备和服务器基础设施上的机密信息。TEE 针对移动操作系统中⽣成的软件攻击提供了⼀定程度的保护,并有助于控制访问权限。它通过容纳敏感的、“受信任的”应⽤程序来实现这⼀点,这些应⽤程序需要与移动操作系统和可能存在的任何恶意恶意软件隔离和保护。通过利⽤ TEE 提供的功能和安全级别,政府和企业可以确保员⼯使⽤⾃⼰的设备以安全和可信的⽅式进⾏操作。同样,基于服务器的 TEE 有助于抵御针对后端基础设施的内部和外部攻击。

同态加密

同态加密是指对其加密数据进⾏处理得到⼀个输出,将此输出进⾏解密,其结果与⽤同⼀⽅法处理未加密原始数据得到的结果⼀致。

简单举例

同态加密可以⽤以下的举例来说明:Alice买到了⼀⼤块⾦⼦,她想让⼯⼈把这块⾦⼦打造成⼀个项链。但是⼯⼈在打造的过程中有可能会偷⾦⼦,Alice可以通过以下这种⽅法让⼯⼈加⼯⾦⼦⼜不能偷⾛⾦⼦。

Alice将⾦⼦锁在⼀个密闭的盒⼦⾥⾯,这个盒⼦安装了⼀个⼿套。⼯⼈可以带着这个⼿套,对盒⼦内 部的⾦⼦进⾏处理。但是盒⼦是锁着的,所以⼯⼈不仅拿不到⾦块,连处理过程中掉下的任何⾦⼦都拿不到。加⼯完成后。Alice拿回这个盒⼦,把锁打开,就得到了⾦⼦。

这⾥⾯的对应关系如下,盒⼦:加密算法;盒⼦上的锁:⽤⼾密钥;将⾦块放在盒⼦⾥⾯并且⽤锁锁上:将数据⽤同态加密⽅案进⾏加密;加⼯:应⽤同态特性,在⽆法取得数据的条件下直接对加密结果进⾏处理;开锁:对结果进⾏解密,直接得到处理后的结果。

使⽤场景

与普通加密算法只关注数据存储安全不同,同态加密算法关注的是数据处理安全,提供对加密数据进⾏加法和乘法处理的功能。使⽤同态加密算法,不持有私钥的⽤⼾也可以对加密数据进⾏处理,处理过程不会泄露任何原始数据信息。同时,持有私钥的⽤⼾对处理过的数据进⾏解密后,可得到正确的处理结果。

同态加密算法从功能上可分为部分同态算法和全同态算法。所谓部分同态是指⽀持加法同态或者乘法 同态或者两者都⽀持但是操作次数受限。⽽全同态算法则可简单理解为能不受限制地同时⽀持加法和乘法操作,从⽽完成各种加密后的运算(如加减乘除、多项式求值、指数、对数、三⻆函数等)。

利⽤同态加密,可以委托不信任的第三⽅对数据进⾏处理,⽽不泄露信息。因此,同态加密在云计算、电⼦商务、物联⽹等领域有重要应⽤。其中,零知识证明在使⽤同态加密的前提下也⼤量应⽤于数据类区块链中间件中,如Pocket Network等。

安全多⽅计算(MPC)

安全多⽅计算(MPC)最初由图灵奖获得者、中国科学院院⼠姚期智教授在1982年通过百万富翁问题提出。安全多⽅计算的研究主要针对⽆可信第三⽅情况下,安全地进⾏多⽅协同计算问题。即在⼀个分布式⽹络中,多个参与实体各⾃持有秘密输⼊,各⽅希望共同完成对某函数的计算,⽽要求每个参与实体除计算结果外均不能得到其他⽤⼾的任何输⼊信息。

详细介绍

在 MPC 中,给定数量的参与者 各⾃拥有私有数据,分别为 p_1 , p_2 , …, p_N 参与者想要在私有数据上计算公共函数的值:F (d_1 , d_2 , …, d_N )同时对⾃⼰的输⼊保密。

例如,假设我们有三⽅ Alice、Bob 和 Charlie,分别输⼊x, y, z 表⽰他们的薪⽔。他们想找出三⼈薪⽔中最⾼的⼀个,⽽不是互相透露他们每个⼈的⼯资。在数学上,这转化为他们的计算:F (x, y, z) = max(x, y, z)

如果有⼀些值得信赖的外部⼈⼠(⽐如,他们有⼀个共同的朋友托尼,他们知道托尼可以保守秘密),他们每个⼈都可以告诉托尼他们的薪⽔,托尼可以计算出最⼤值,然后将这个数字告诉所有⼈。MPC 的⽬标是设计⼀个协议,通过只相互交换消息,Alice、Bob 和 Charlie 仍然可以学习F (x, y, z) ,⽽⽆需透露谁制造了什么,也不必依赖 Tony。他们不应该通过参与他们的协议学到更多,⽽不是通过与⼀个廉洁、完全值得信赖的托尼互动来学习。

特别是,各⽅可以学习的只是他们可以从输出和他们⾃⼰的输⼊中学到的东西。所以在上⾯的例⼦中,如果输出是z,那么查理知道他的z是最⼤值,⽽爱丽丝和鲍勃学习(如果x,y和z不同),他们的输⼊不等于最⼤值,并且持有的最⼤值等于z。基本场景可以很容易地推⼴到各⽅有多个输⼊和输出, 并且函数向不同⽅输出不同值的情况。

安全两⽅计算与多⽅计算在形式、内容中有较⼤差异,因此使⽤时⼀定要注意。两⽅计算多使⽤姚期智教授提出的乱码电路算法。这⾥重点介绍多⽅计算,以最为常⽤的Shamir秘密共享算法(Shamir’s Secret Sharing(SSS))为例。

秘密共享算法(SSS)

在秘密共享算法中,秘密被分成多个部分,称为共享部分。这些部分⽤于重建原始秘密。要通过Shamir的秘密共享解锁秘密,需要最少数量的共享。这称为阈值,⽤于表⽰解锁秘密所需的最⼩共享数。来看⼀个具体例⼦:

某公司需要保护其⾦库密码。他们可以使⽤⼀些标准的东西,⽐如 AES,但是如果密钥的持有者不 可⽤或死了怎么办?如果密钥被恶意⿊客盗⽤,或者密钥持有者变成流氓,并利⽤他们对⾦库的权⼒谋取利益怎么办?

这就是 SSS 的⽤武之地。它可以⽤来加密⾦库的密码并⽣成⼀定数量的股份,其中⼀定数量的股份可以分配给该公司内的每个⾼管。现在,只有当他们汇集他们的股份时,他们才能解锁⾦库。可以根据管理⼈员的数量适当设置阈值,因此保险库始终可以被授权的个⼈访问。如果⼀两股落⼊坏⼈之⼿, 除⾮其他⾼管合作,否则他们⽆法打开密码。

Shamir的秘密分享是⼀个理想的(n,k)阈值协议。在这样的协议中,⽬标是以这样的⽅式分割⼀个秘密 S 变成n个数据块 S_1 , …, S_n(称为共享部分),使得:

1. 任何 k 或更多 S_i 使 S 容易计算。也就是说,完整的秘密可以从任意 k 个共享部分组合重建。

2.任何 k 或更少 S_i 完全⽆法确定 S ,因为 S 可能的值⾮常多。也就是说,秘密不能⽤少于 k 个共享部分重建。

该⽅案的基本思想是基于拉格朗⽇插值定理,特别是 k 个点就⾜以唯⼀地确定⼀个最⾼次数⼩于或等于 k-1 的多项式. 例如,2个点⾜以定义⼀条线,3 个点⾜以定义抛物线,4 个点⾜以定义三次曲线等等。我们假设我们的秘密 可以表⽰为⼀个有限域 上的元素 . 我们从 GF (q) 中随机选择 k-1 个元素 a_1 , …, a_k−1,并构造多项式:

让我们构造任何 n 个在多项式中的点来重建秘密 a0 ,例如取 (x_i, f(x_i)),i = 1, …, n。每个参与者都被赋予⼀个点。在这些对中给定的任何⼤⼩为 k 的⼦集,我们可以使⽤插值得到 a_0,⼀种可能的公式如下:

举⼀个很简单的例⼦,设秘密是 20 ,现构造⼀个(3,2) 秘密共享,即共3⼈,任意2⼈或以上可以重建秘密。取多项式 f(x) = 20 + 3x,从多项式中任取3个点 (3, 29),(1, 23),(5, 35) 分别给3⼈,每⼈1个点。对每个⼈⽽⾔多项式的形式可以表⽰为 f(x) = a + bx ,则对任意2⼈⽽⾔,可以使⽤插值公式或联⽴⽅程组(以前两个点为例):

使⽤场景

安全多⽅计算在需要秘密共享和隐私保护的场景中具有重要意义,其主要适⽤场景包括联合数据分析、数据安全查询、数据可信交换等。

⼩结

本⽂梳理了数据流通过程中⾯临的技术需求,介绍了可信执⾏环境、安全多⽅计算、同态加密、零知 识证明等技术⼯具。

需要指出的是,这些技术并不是孤⽴存在的。每个技术本⾝可能有不同的算法实现,技术的⽅案也会以使⽤场景的变化⽽变化。对于这⼏种技术,也不能以偏概全的⽐较孰优孰劣,不同的使⽤场景和⽬标⽤⼾也会导致技术的优劣势转移。笔者个⼈⽽⾔更看好安全多⽅计算。

对于投资者⽽⾔,看清中间件的数据流通安全性证明也是其前景的⼀块重要板块。

参考⽂献

2. 可信执⾏环境: https://en.wikipedia.org/ wiki/Trusted_execution_environment

3. 安全多⽅计算: https://en.wikipedia.org /wiki/Secure_multi party_computation

4. 秘密共享: https://en.wikipedia.org/ wiki/Shamir%27s_Secret_Sharing

--

--

Distributed blockchain research institution. Focusing on underlying technology research and practice. Support us: http://giveth.io/project/cyc

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
CYC

Distributed blockchain research institution. Focusing on underlying technology research and practice. Support us: http://giveth.io/project/cyc