zoukankan      html  css  js  c++  java
  • 【密码学】安全多方计算

    历史背景

    1. A.C. Yao于1982年首次提出安全多方计算的概念,其主要研究在私有信息不被泄漏的前提下,多个互不信赖的参与者如何协作进行计算
    2. Goldwasser:“安全多方计算所处的地位就如同公钥密码学10年前所处的地位一样重要,它是计算科学一个极其重要的工具,而实际应用才刚起步。”
    3. 1987年,Goldreich等人设计出通用的安全多方计算协议解决普遍存在的安全多方计算问题
    4. 1998年,Goldreich将安全多方计算进行了较为全面的概括。但使用通用协议会是的协议的复杂度较高,效率较低。因此他指出安全多方计算应该具体问题具体分析,设计特定的安全多方计算协议
    5. 2001年,Du等人在前人工作的基础上,更深入地研究了包括科学计算、集合计算、统计分析等具体的安全多方计算问题及其应用

    安全多方计算的场景很多,只要是用户需要保护隐私的合作计算都能划归于此。即安全多方计算解决的是多个互不信任的参与者在一个分布式环境中,分别输入自己的保密信息进行写作计算,进而得到各自所需要的正确结果,并在计算结束后每个参与方没有把自己的私有信息泄漏给其他方。它是目前国际密码学界的研究热点之一。

    问题引入

    1. 甲化工厂拥有含有A,B,C三种成分的物质(eta_1,eta_2),乙化工厂含有A,B,C三种成分的物质(eta_1,eta_3)。现在甲、乙两化工厂处于自己的利益考虑,想要在互相不泄露自己私有信息的情况下,判断能不能用(eta_2,eta_3)的混合物来代替(eta_1)
    2. 老板拖欠工人工资。假设老板每个月固定日期回数次公司,而工人们会根据老板回公司的时间要工资。对老板来说,他不想让工人知道每个月几号回公司,对工人来说,也不想让老板知道他们会在几号去公司。这种情况下,工人们如何能顺利地要到自己被拖欠的工资?

    分析:问题一,能不能替换就是看最终ABC三种成分是不是一样的。假设以(A,B,C)为坐标轴画三维坐标系,(eta_1,eta_2,eta_3)分别是这个三维坐标系中的点。如果这三个点在同一条直线上的话,那么通过调整比例可以用任意两种作为配方。故问题转化为几何问题中的三点贡献问题。问题二,可以转换为最小公倍数问题(?)

    安全多方问题(1982,姚期智)

    n个参与者(P_1,P_2,...P_n)要在保护个人隐私的前提下共同计算一个函数,这个过程中既要保证正确的输出结果,也要保证输入、输出信息的隐私性。即就是,每个参与者(P_i)保密输入私有信息(X_i),并合作计算函数

    [f(X_1,X_2,...X_n)=(Y_1,Y_2,...,Y_n) ]

    计算结束时,每个参与者(P_i)在保护自己(X_i)的隐私的同时得到正确的(Y_i)
    安全多方计算模型

    和密码学的关系

    安全多方计算是密码学的一个重要分支,设计安全多方计算协议会用到很多密码学知识,如不经意传输、零知识证明、公钥加密算法、数字承诺等等,于此同时,安全多方计算的一些知识同样用于密码学,两者相互促进,一同发展,已成为解决信息安全问题的主要方法。

    安全多方计算中的基本概念

    1. 参与者与攻击者
      参与者:诚实参与者、半诚实参与者、恶意参与者
      攻击者:计算能力分(多项式时间计算能力、无限计算能力);对被腐蚀者的操控方式(主动、被动);攻击者自身的适应性(静态、动态)
    2. 通信模型
      同步通信模型
      异步通信模型
    3. 敌手模型
      半诚实敌手模型
      恶意敌手模型
    4. 安全性需求
      隐私性
      正确性
      公平性
      输入的独立性
      输出的传递性
    5. 不可区分性
      在密码学中,根据区分者的计算能力可将不可区分性大致分为以下几种:完美不可区分性、统计不可区分、多项式时间不可区分。通常,我们讨论的是多项式时间不可区分。
      多项式时间不可区分,也称计算不可区分,是指两个对象在任意有效的计算程序下仍然不能被区分,则认为这两个对象在多项式时间内是不可区分的,通常将多项式时间不可区分定义如下:
    6. 安全性定义
      (1)理想模型。引入一个可信任的TTP(trusted Third Party)是解决安全多方计算问题的最直接方法,任何情况下,TTP都不会泄露任何不该泄露的信息。】

    (2)现实模型。理想模型不存在隐私泄露,但实际可信的第三方并不真实存在。这种情况下,要解决安全多方问题就需要参与者之间进行相互的信息传递,经过若干轮的交互最终得到正确结果,这种模型称为现实模型。

    (3)传统的半诚实模型下的安全多方计算的定义

    (4)传统的恶意模型下的安全多方计算的定义

    (5)云环境下半诚实模型的安全性定义

    1. 协议的复杂性
      (1)计算复杂度
      (2)通信复杂度

    2. 信息论安全和密码学安全

    技术工具

    1. 密码系统
      通常情况下,密码系统由以下5部分组成:
      (1)明文空间M:被加密的原始信息的集合
      (2)密文空间C:加密后的密文的集合
      (3)密钥空间k: 包括加密密钥pk和解密密钥sk
      (4)加密算法E:通过一定规则,将明文转换成密文的过程
      (5)解密算法D:通过一定规则,将密文转换成明文的过程
    2. 对称密码系统
    3. 公钥密码系统(双钥加密系统或非对称加密系统)
    4. 同态加密
      同态加密(Homomorphic Encryption)是一种密码学技术,依赖于数学困难问题的计算复杂性理论。它允许在密文上进行某些运算,且在协议执行过程中不会泄露任何原始信息,而经过同态加密的数据在解密之后,输出的结果与为加密的原始数据用统一方法处理得到的输出结果是一样的,即对于加密函数(H:R->S),其中,R为明文空间,S为密文空间,令(otimes)为定义在明文空间的代数运算或算术运算,对于任意的(x,y in R),若有

    [H(x) otimes H(y)=H(xotimes y) ]

    成立,则称加密函数H具有同态性,是同态的。
    5. 内积协议

    1. Hash函数(单向散列函数,也叫杂凑函数)
  • 相关阅读:
    MyWebViewDemo【封装Webview常用配置和选择文件、打开相机、录音、打开本地相册的用法】
    PhotoPickerNewDemo【PhotoPicker0.9.12的个性化修改以及使用(内部glide版本号是4.1.1)】
    PhotoPickerDemo【PhotoPicker0.9.8的个性化修改以及使用(内部glide版本号是3.7.0)】
    轻松理解MYSQL MVCC 实现机制
    MySQL-InnoDB-MVCC多版本并发控制
    Mysql中MVCC的使用及原理详解
    wmi的作用
    Java中BIO,NIO,AIO的理解
    Netty--索引
    Netty 入门示例
  • 原文地址:https://www.cnblogs.com/maxwell-maxwill/p/12320325.html
Copyright © 2011-2022 走看看