21/6/27读书笔记
21/6/27 读书笔记
安全多方学习 引论
安全多方学习定义(multi-party computation):一组参与者共同执行一个computation的同时不向其他参与者暴露自身的私有信息。参与者们约定采用一个计算函数,并使用协议来保证在不暴露各自私有数据的情况下完成共同的computation。核心问题在于如何在保证数据安全的基础上进行数据处理。
安全可验证计算的两种形式:
- outsourced computation: 数据持有和数据计算分离,数据持有者持有数据,数据计算者负责计算。持有者需要对数据进行加密,而计算者则对加密的数据进行计算并返回加密的结果,这个过程中需要保证计算者不能以任何方式获取到被加密的数据和结果的解密信息。
- homomorphic enctyption 同态加密:实现outsourced computation的技术基础。分为部分同态和完全同态:
- 部分同态加密下只允许计算者进行少数的不完备的计算操作,比如只能加减。
- 完全同态加密(FHE)支持计算者拥有一套“图灵完备”的操作集合,以使得能够执行任何计算。
- homomorphic enctyption 同态加密:实现outsourced computation的技术基础。分为部分同态和完全同态:
- multi-party computation: 一组参与者在不相信其他任何参与者和任何第三方的情况下协作执行某个computation。在MPC的场景中,每个参与者都同时是计算者和数据持有者。这个问题可被描述为对一个函数\(f(x_1,x_2,...,x_n)\),\(x_i\)是第i个参与者的私有输入(即该输入内容不能被其他n-1个参与者所获取),需要基于这n个参与者共同计算出这个函数的结果而不依赖于任何第三方。所有的参与者都能验证这个函数的执行结果,同时不会知晓其他人的私有输入。
MPC的应用和实践
- 百万富翁问题:A和B各有a和b元,为了得出谁更有钱(即计算\(f(a,b)=1或0\)代表A是否更富有),同时不能让对方知道自己具体的数目。
- 安全拍卖:要求拍卖的隐私性(即其他人不知道自己的报价)和出价的非渐变性(即在知道他人出价的情况下,故意出稍高一点的价格)。在没有受信任的第三方的情况下(即没有拍卖管理者),如何实现以上两点?
- 不经意模型推理(Oblivous model inference):服务器持有机器学习模型,用户持有数据,用户根据数据发送加密请求,服务器根据加密请求返回加密结果,用户解密获得模型输出。保证用户的请求和获取的结果对服务器私有,服务器模型对用户私有。
- 安全的模型训练:允许多个参与者共同训练一个模型的同时不暴露自己提供的数据。由于机器学习训练集很大,而采用同态加密和MPC混合的方法使得训练速度可接受。
安全多方学习 MPC定义
一些约定和定义
定义Secure Multi-Party Computation = MPC = Secure Function Evaluation = SFE
双方参与的MPC过程是MPC的特例,但是协议方面差距较大,故涉及双方参与时使用2PC来特殊强调
计算参数κ表明会抵抗敌人通过线下计算破坏的能力,统计参数σ表示敌人攻击的难度。量化上看,我们认为安全被破坏的几率为\(2^{-σ}+v(κ)\),其中v(κ)是取决于敌人资源的函数(通常趋向无穷小),当我们考虑不限制计算情况的敌人时,我们需要使得v恒等于0,即κ可忽略。
分为computational和statistical两种情况进行讨论,computational通常指现实情况下允许的,statistical通常指理想情况下的。对MPC的安全分为computational security和Information-theorectic security两种,前者指敌人使用多项式时间内的算法的情况下的安全能力,后者则是理想情况下敌人拥有无限计算能力的安全能力。
多项式时间:针对时间复杂度,O(1)\O(n)\O(\(n^2\))等,n作为基数,通常视为多项式复杂度;而O(\(2^n\))等n作为指数时,数据规模增加时会导致计算时间大幅增加,通常视为非多项式复杂度。
原语定义
定义了几种基本的MPC场景作为MPC问题的原语:
-
秘密分享(Secret Sharing):使用(t,n)描述一个该问题,表示将秘密S分为n份,这n份中任何个数少于t的子集不能反推出S的整体,而任意个数大于大于等于t的子集都能反推出S。其核心在于两个函数:分享函数Shr和重建函数Rec。通常我们讨论的都是(n,n)的秘密分享问题,即缺失任何部分都无法重建
-
随机Oracle(Random Oracle):又称RO,是一个理想化情境。目前的SHA-256等哈希函数就是这样一个逼近RO的函数,但是其无法满足这个要求。在RO的情境下,我们假设这样一个函数H,当输入为x的时候:
- 如果x和H(x)已经在表里记录过,就输出H(x)
- 如果没有关于x的记录,则RO完全随机地在值域中选取一个0,1字符串(或者从其他希望映射到的元素集合中完全随机的选取)当作H(x),把这个和x一起记录在表里,然后输出这个H(x)。
MPC的安全定义
什么是“安全”?以往,安全的定义是笼统的,我们可能会列出一个冗长的清单来指出任何可能违反安全的行为,并以应对这些行为的能力作为安全的属性。而Real-ideal Paradigm的引入使得我们从一个理想角度出发考虑安全问题,使得所有的安全保障被隐性地包含在我们的理想假设中。
在我们的理想假设中,引入了受信任的第三方,所有参与者都将自己的信息发送给第三方并从第三方获取输出。这个模型在理想状态下是完全安全的,但是在现实情况下不可能存在受信任第三方,仅作为一个绝对的基准来衡量安全性。
在现实中,如果一个安全协议能够实现敌人任何行为所造成的后果与在理想情况下一致,那么这个协议是安全的
Semi-honest Securtiy:敌人遵从协议行动,但是可能存在串通的情况,敌人目的在于在遵从协议的情况下获取到其他诚实参与者的信息。
Malicious Security:敌人不再严格遵从协议,同时仍然保持串通可能。在该场景下,我们必须考虑敌人所计算得出的结果具有不确定性,因此在理想环境下的模拟需要更为细致。malicious的场景是更为常见的和实用的。
Reactive functionalities:对于理想世界中第三方执行的函数F(\(x_1\),...),当其具备状态性且不暴露该内部状态时,认为其具有reactive性质。一个典型例子就是发牌员,其每次发牌基于其自身状态,而该状态对参与者不可见。
Security with abort:这是在malicious场景下的一种问题。在实际场景中,结果是在参与者间传递的,因此可能出现一个结果从被腐坏的参与者手中传递到诚实参与者手中的情况,即腐坏者先于诚实者获得结果。此时腐坏者如果决定不传递结果(即abort),那么诚实者将无法获得结果。而在传统的理想实际中,由于结果由第三方分发,所以保证所有参与者同时受到结果而不会因为腐坏者abort造成影响。因此需要为这个情景额外考虑理想状态的修正,即第三方是Reactive的(即具有用于保存结果的状态)、第三方知道谁是腐坏者、第三方在获得结果时先将结果发送给腐坏者们,然后由腐坏者告诉第三方是否将结果发送给诚实者。
Composition:看三遍,没看懂,等组会时候问前辈
有趣的一些功能(functionality)
这是一些构建MPC时尤为有用的一些functionality:
- Oblivious Transfer 不经意传输:简称OT,对于构建MPC协议具有必要作用。其描述的基本问题是对于发送者Sed和接收者Rec,Sed具有多个字符串,而Rec有一个bit用于指示需要获取Sed的具体哪个字符串。OT的协议保证了Rec只能获取到其指示bit对应的Sed的字符串而不知道其他的字符串,而Sed不知道Rec请求了哪个字符串。
- Commitment 承诺:类似git的commit(?),发送者Sed先向第三方发送一个字符串,然后第三方发送给接收方Rec一个commit消息而不告诉其具体字符串内容(即只通知Rec,Sed发送给它了一个字符串,而不传递实际的字符串内容)。当Sed通知第三方可以递交字符串时,第三方再将字符串内容发送给Rec。
- Zero-Knowledge Proof 零知识证明:简称ZK,对于证明者Pro和验证者Ver,对于秘密x和一个函数C(x)->0或1,Pro将x和C发送给第三方,第三方通过C得出一个x对应的一个结果,再将结果和函数C反馈给Ver。这个过程需要满足Pro在不泄露x具体信息的情况下向Ver证明自己拥有正确的x。
数据挖掘导论 绪论
数据挖掘是什么:海量数据下的数据分析无法用传统的工具和技术解决,而有时即使数据很小,但是数据内容具有非传统特点。数据挖掘将传统数据分析方法和专门处理大量数据的复杂方法结合,为探查和分析新的数据类型提供了机会。
知识发现(knowledge discovery in database):将未加工的数据转换为有用信息的整个过程,包括数据的预处理、数据挖掘、后处理:
- 数据预处理:融合来自多个数据源的数据,清洗数据以消除噪声和重复观测,选取与当前挖掘任务吻合的特征。预处理可能非常耗时费力。
- 数据挖掘:对数据进行分析,得出有用的信息。
- 后处理:对数据挖掘的结果进行筛选,将真正需要的信息集成到决策系统中
数据挖掘所需要解决的问题:
- 可伸缩性:数据集的规模越来越庞大,要求挖掘算法能够适应各种各样的情况,甚至适应从内存算法到非内存算法的转换(因为内存可能放不下这么多数据)。
- 高维性:数据维度(特征数)越来越多
- 异种数据和复杂数据:比如DNA数据、蛋白质数据等新数据类型对数据挖掘提出了更高要求
- 数据所有权和分布:分布式数据挖掘技术要求解决通信和安全问题
- 非传统分析模式:传统数据分析的假设-检验模型在数据挖掘的场景下要求挖掘算法能自动产生和评估假设。
数据挖掘的任务类型:
数据挖掘分为两大类:
- 预测任务:给定其他属性,预测特定属性,涉及因变量和自变量的关系
- 描述任务:导出数据间的潜在联系模式
将学习四种主要数据挖掘任务:
- 预测建模:以构建数据预测模型为目的,希望预测结果的误差最小
- 关联分析:发现和描述数据间强关联关系的模式
- 聚类分析:发现紧密相关的观测值集合,使得具有相似性的观测值组成一个集合从而与其他集合区别开来。
- 异常检测:识别出特征显著不同的观测值
数据挖掘导论 数据
数据中的重点问题有:数据类型、数据质量、数据预处理、数据联系
数据类型
-
数据属性:数据的属性是对象的性质,通过测量标度的映射转换为特定的数值或符号值
-
常将属性的类型视为测量标度的类型
-
属性类型的三个维度:
-
数值的基本性质:标称、序数、区间、比率,其意义性质逐步递增
属性类型 属性性质 描述 例子 操作 标称 定性 无特殊意义,仅有标识作用 ID,邮政编码 是否相同 序数 定性 足以确定对象间顺序 排名,卫生等级 排序 区间 定量 足以确定差异的程度 日期,时间 求取时间段长度 比率 定量 具有确定倍率关系的能力 余额,年龄 求取倍率关系 -
值的个数:分为离散和连续两种
-
对称与非对称:根据零值是否具有统计意义,若具有则称为对称,否则非对称。在分析非对称数据时要注意只考虑非零值
-
-
-
数据集的类型
- 数据集的一般特性:维度、稀疏性、分辨率。维度指属性的数目;稀疏性指对非对称数据而言非零值的分布情;分辨率指数据的宏观程度,分辨率过高则过于宏观,模式可能被噪声所掩盖,分辨率过低则过于狭隘,模式可能无法显现
- 数据集类型(暂且)分为三种:
- 记录数据:基本的数据集形式,每条记录间没有明显的联系
- 基于图形的数据:揭示了对象间的联系或对象内部的结构特征
- 有序数据:数据记录间具有时间、空间、相对位置等相关性,使得在分析时需要充分考虑序带来的相关性。
数据质量
数据质量中存在的两大问题:
- 测量误差:测量中导致的问题,比如150cm错记成15cm
- 数据收集错误:数据收集过程的不当,比如遗漏某些对象或属性,或者重复包含了相同实际对象。
测量误差可以从随机和确定性两方面考量,噪声是测量误差的随机表现,伪像是其确定性表现(比如所有身高数据都少了10cm)。精度用于描述噪声的情况,偏倚用于描述伪像的情况。
数据质量在应用方面的考量:
- 时效性:数据本身可能具有一定时效性,比如股票价格等,其质量随时间而改变
- 相关性:抽样偏倚(幸存者误差)导致在抽样时就已经脱离了总体情况
- 文档质量的好坏:用于描述数据集的文档质量也影响数据的质量
麻了,摸鱼之心越发强烈。正经人谁写日记啊(x

浙公网安备 33010602011771号