安全多方计算之七:门限密码系统

这篇具有很好参考价值的文章主要介绍了安全多方计算之七:门限密码系统。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. 定义

门限密码系统由分布式密钥生成算法、加密算法、门限解密算法三部分构成,定义如下:

(1)分布式密钥生成:这是一个由参与者共同生成公钥 y y y的协议,协议运行结束后,每个参与者将获得一个关于私钥 x x x的碎片、对应于该碎片的公钥密钥 y i y_i yi,以及与私钥 x x x相对应的公钥 y y y

(2)加密算法:该算法的输入为公钥 y y y和待加密的消息 m m m,其输出为在公钥 y y y下明文 m m m对应的密文 c c c

(3)门限解密: 这是一个由任意 t t t个参与者 P i 1 ′ , P i 2 ′ , … , P i t P_{i_1^{\prime}}, P_{i_2^{\prime}}, \ldots, P_{i_{t}} Pi1,Pi2,,Pit 运行的协议, 对于给定输人密文 c c c t t t个公开验证密钥 h i 1 ′ , h i 2 ′ , … , h i t h_{i_1^{\prime}},h_{i_2^{\prime}}, \ldots, h_{i_{t}} hi1,hi2,,hit 以及 t t t 个碎片 x i 1 ′ x i 2 ′ , … , x i t x_{i_1^{\prime}} x_{i_2^{\prime}}, \ldots, x_{i_{t}} xi1xi2,,xit, 协议运行结束后将输出 密文 c c c 和对应的明文 m m m

2. 分布式ElGamal加密

系统参数: p 、 q p、q pq是大素数, 且 q / p − 1 q / p-1 q/p1, 满足 Z p Z_{p} Zp中离散对数问题是难解的, g g g Z p ∗ Z_{p}^{*} Zp的本原元, M M M 为明文消息。

n n n个参与者 P 1 , P 2 , … , P n P_{1}, P_{2}, \ldots, P_{n} P1,P2,,Pn分别选取一个随机数 x i ∈ Z p , i = 1 , 2 , … , n x_{i} \in Z_{p},i=1,2, \ldots, n xiZp,i=1,2,,n 计算 y i = g x i   m o d   p y_{i}= g^{x_{i}} \bmod p yi=gximodp并公布。

私钥: x = ∑ i = 1 n x i   m o d   p x=\sum_{i=1}^{n} x_{i} \bmod p x=i=1nximodp公钥: y = ∏ i = 1 n y i   m o d   p = g ∑ i = 1 n x i   m o d   p = g x   m o d   p y=\prod_{i=1}^{n} y_{i} \bmod p=g^{\sum_{i=1}^{n} x_{i}} \bmod p = g^x \bmod p y=i=1nyimodp=gi=1nximodp=gxmodp

加密: 选取随机数 r ∈ Z p r \in Z_{p} rZp, 计算 E ( M ) = ( α , β ) = ( g r   m o d   p , y r M   m o d   p ) E(M)=(\alpha, \beta) = (g^{r} \bmod p, y^{r} M \bmod p) E(M)=(α,β)=(grmodp,yrMmodp)解密: n n n个参与者首先分别计算 α x i   m o d   p \alpha^{x_{i}}\bmod p αximodp并公布, 然后共同计算出 ∏ i = 1 n α x i \prod_{i=1}^{n} \alpha^{x^{i}} i=1nαxi, 从而解出 M M M: M = β ∏ i = 1 n α x i   m o d   p = β α ∑ i = 1 n x i   m o d   p = β α x   m o d   p M=\frac{\beta}{\prod_{i=1}^{n} \alpha^{x^{i}}} \bmod p =\frac{\beta}{\alpha^{\sum_{i=1}^{n} x^{i}}} \bmod p =\frac{\beta}{\alpha^x} \bmod p M=i=1nαxiβmodp=αi=1nxiβmodp=αxβmodp

推广

令消息 M = M 1 M 2 ⋯ M n M=M_{1} M_{2} \cdots M_{n} M=M1M2Mn, n n n个参与者 P 1 , P 2 , … , P n P_{1}, P_{2}, \ldots, P_{n} P1,P2,,Pn分别对消息 M 1 , M 2 , … , M n M_{1}, M_{2}, \ldots, M_{n} M1,M2,,Mn 加密。

系统参数: p 、 q p、q pq是大素数, 且 q / p − 1 q / p-1 q/p1, 满足 Z p Z_{p} Zp中离散对数问题是难解的, g g g Z p ∗ Z_{p}^{*} Zp的本原元, M M M 为明文消息。

利用分布式 ElGamal 加密方式产生私钥/公钥对: n n n个参与者分别选取一个随机数 x i ∈ Z p , i = 1 , 2 , … , n x_{i}\in Z_{p},i=1,2, \ldots,n xiZp,i=1,2,,n 计算 y i = g x i   m o d   p y_{i}=g^{x_{i}} \bmod p yi=gximodp 并公布。

私钥: x = ∑ i = 1 n x i   m o d   p x=\sum_{i=1}^{n} x_{i} \bmod p x=i=1nximodp公钥: y = ∏ i = 1 n y i   m o d   p = g ∑ i = 1 n x i   m o d   p = g x   m o d   p y=\prod_{i=1}^{n} y_{i} \bmod p=g^{\sum_{i=1}^{n} x_{i}} \bmod p = g^x \bmod p y=i=1nyimodp=gi=1nximodp=gxmodp

加密: n n n个参与者分别选取随机数 r 1 , r 2 , … , r n ∈ Z p r_{1}, r_{2}, \ldots, r_{n} \in Z_{p} r1,r2,,rnZp, 对消息 M i M_{i} Mi 加密 E ( M i ) = ( α i , β i ) = ( g r i   m o d   p , y r i M i   m o d   p ) E\left(M_{i}\right)= \left(\alpha_i ,\beta_i\right) =(g^{r_{i}} \bmod p, y^{r_{i}} M_{i} \bmod p) E(Mi)=(αi,βi)=(grimodp,yriMimodp)

根据同态性计算 E ( M ) = E ( M 1 M 2 ⋯ M n ) = E ( M 1 ) E ( M 2 ) ⋯ E ( M n ) = ( α , β ) E(M)=E\left(M_{1} M_{2} \cdots M_{n}\right)= E(M_{1})E(M_{2}) \cdots E(M_{n})= (\alpha, \beta) E(M)=E(M1M2Mn)=E(M1)E(M2)E(Mn)=(α,β)其中, α = ∏ i = 1 n α i = g ∑ i = 1 n r i   m o d   p , β = ∏ i = 1 n β i = y ∑ i = 1 n r i M   m o d   p \alpha=\prod_{i=1}^{n} \alpha_{i}=g^{\sum_{i=1}^{n} r_{i}} \bmod p,\beta = \prod_{i=1}^{n} \beta_{i}=y^{\sum_{i=1}^{n} r_{i}} M \bmod p α=i=1nαi=gi=1nrimodp,β=i=1nβi=yi=1nriMmodp

解密: n n n 个参与者首先分别计算 α x i   m o d   p \alpha^{x_{i}} \bmod p αximodp 并公布, 来共同计算出 ∏ i = 1 n α x i \prod_{i=1}^{n} \alpha^{x_{i}} i=1nαxi, 从而解出 M M M: M = β ∏ i = 1 n α x i   m o d   p β α ∑ i = 1 n x i   m o d   p = β α x   m o d   p \quad M=\frac{\beta}{\prod_{i=1}^{n} \alpha^{x_{i}}} \bmod p \frac{\beta}{\alpha^{\sum_{i=1}^{n} x_{i}}} \bmod p=\frac{\beta}{\alpha^x} \bmod p M=i=1nαxiβmodpαi=1nxiβmodp=αxβmodp

3.有可信中心的门限ElGamal密码

(1) 分布式密钥生成

可信中心产生一个密钥 x x x, 对应的公钥为 y = g x   m o d   p y=g^{x} \bmod p y=gxmodp,使用 ( t , n ) (t, n) (t,n) 门限方案在协议参与者中分享私钥 x x x : 选择随机多项式 f ( u ) = a t − 1 u t − 1 + … + a 2 u 2 + a 1 u + a 0 ∈ G F ( q ) [ u ] f(u)=a_{t-1} u^{t-1}+\ldots+a_{2} u^{2}+ a_{1} u+a_{0} \in G F(q)[u] f(u)=at1ut1++a2u2+a1u+a0GF(q)[u] P i P_{i} Pi 得到 x i = f ( u i ) , i = 1 , 2 , … , n x_{i}=f\left(u_{i}\right), i=1,2, \ldots, n xi=f(ui),i=1,2,,n

(2) 加密

选取随机数 k ∈ Z p k \in Z_{p} kZp计算: E ( M ) = ( α , β ) = ( g k   m o d   p , y k M   m o d   p ) E(M)=(\alpha, \beta)= (g^{k} \bmod p, y^{k} M \bmod p) E(M)=(α,β)=(gkmodp,ykMmodp)

(3) 解密

P i P_{i} Pi 计算 α i = α x i \alpha_{i}=\alpha^{x_{i}} αi=αxi并公布, 同时公布一个零知识证明以证明其计算的正确性;
每个协议参与者从公布的计算结果中选择 t t t α i 1 , α i 2 , … , α i t \alpha_{i_1}, \alpha_{i_2}, \ldots, \alpha_{i_t} αi1,αi2,,αit, 则 M = β α x = β ∏ s = 1 t α i s λ i s M=\frac{\beta}{\alpha^{x}}=\frac{\beta}{\prod_{s=1}^{t} \alpha_{i_s}^{\lambda_{i_s}}} M=αxβ=s=1tαisλisβ λ i s \lambda_{i_s} λis 为 Lagrange 揷值系数, 满足 x = λ i 1 x i 1 + ⋯ + λ i t x i t x=\lambda_{i_1} x_{i_1}+\cdots+\lambda_{i_t} x_{i_t} x=λi1xi1++λitxit .

有可信中的门限ElGamal密码不能算严格意义上的门限密码,存在第三方可心中,参加密钥分享的用户必须完全信任分发者,相信其不会对加密数据执行解密操作。

4. 无可信中心的门限ElGamal密码

(1)分布式密钥生成

每个参与者 P i P_{i} Pi 选择择随机数 x i x_{i} xi 作为私钥, 计算 y i = g x i   m o d   p y_{i}=g^{x_{i}} \bmod p yi=gximodp, 并公布;
每个参与者收到广播的值后, 计算公钥: y = ∏ i = 1 n y i   m o d   p = g ∑ i = 1 n x i   m o d   p = g x   m o d   p y=\prod_{i=1}^{n} y_{i} \bmod p=g^{\sum_{i=1}^{n} x_{i}} \bmod p = g^x \bmod p y=i=1nyimodp=gi=1nximodp=gxmodp每个参与者 P i P_{i} Pi以秘密分发者身份执行 Feldman 的 VSS 方案, 在 P 1 , P 2 , … , P n P_{1}, P_{2}, \ldots, P_{n} P1,P2,,Pn 之间分享秘密 x i x_{i} xi : 选择 t − 1 t-1 t1 次随机多项式, f i ( u ) = a i , t − 1 u t − 1 + … + a i 2 u 2 + a i 1 u + a i o ∈ G F ( q ) [ u ] f_{i}(u)=a_{i, t-1} u^{t-1}+\ldots+a_{i 2} u^{2}+a_{i 1} u+a_{i o} \in G F(q)[u] fi(u)=ai,t1ut1++ai2u2+ai1u+aioGF(q)[u]其中 x i = a i 0 = f i ( 0 ) x_{i}=a_{i 0}=f_{i}(0) xi=ai0=fi(0)

P i P_{i} Pi 计算 x i j = f i ( u j ) x_{i j}=f_{i}\left(u_{j}\right) xij=fi(uj) , 发送给 P j , j = 1 , 2 … , n P_{j}, j=1,2 \ldots, n Pj,j=1,2,n ; P j P_{j} Pj 收到其他参与者的值 x i j = f i ( u j ) , i = 1 , 2 … , n x_{i j}=f_{i}\left(u_{j}\right), i=1,2 \ldots, n xij=fi(uj),i=1,2,n, 计算 s j = ∑ i = 1 n x i j = ∑ i = 1 n f i ( u j ) s_{j}=\sum_{i=1}^{n} x_{i j}=\sum_{i=1}^{n} f_{i}\left(u_{j}\right) sj=i=1nxij=i=1nfi(uj) 作为自己最终分享得到的关于私钥 x x x的秘密碎片, 其验证公钥为 y j = g s j   m o d   p = g ∑ i = 1 n x i j   m o d   p y_{j}=g^{s_{j}} \bmod p=g^{\sum_{i=1}^{n} x_{i j}} \bmod p yj=gsjmodp=gi=1nxijmodp(2) 加密

选取随机数 k ∈ Z p k \in Z_{p} kZp,计算 E ( M ) = ( α , β ) = ( g k   m o d   p , y k M   m o d   p ) E(M)=(\alpha, \beta) =(g^{k} \bmod p, y^{k} M \bmod p) E(M)=(α,β)=(gkmodp,ykMmodp)(3) 门限解密

每个参与者 P i P_{i} Pi 计算 α i = α s i \alpha_{i}=\alpha^{s_{i}} αi=αsi , 并公布. 同时公布一个零知识证明以证明其计算的正确性;
每个协议参与者从公布的计算结果中选择 t t t α i 1 , α i 2 , … , α i t \alpha_{i_1}, \alpha_{i_2}, \ldots, \alpha_{i_t} αi1,αi2,,αit, 则 M = β α x = β ∏ s = 1 t α i s λ i s M=\frac{\beta}{\alpha^{x}}=\frac{\beta}{\prod_{s=1}^{t} \alpha_{i_s}^{\lambda_{i_s}}} M=αxβ=s=1tαisλisβ λ i s \lambda_{i_s} λis 为 Lagrange 揷值系数, 满足 x = λ i 1 s i 1 + ⋯ + λ i t s i t x=\lambda_{i_1} s_{i_1}+\cdots+\lambda_{i_t} s_{i_t} x=λi1si1++λitsit .文章来源地址https://www.toymoban.com/news/detail-805117.html

到了这里,关于安全多方计算之七:门限密码系统的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SM1、SM2、SM3、SM4、同态加密、密态计算、隐私计算和安全多方计算的概念

    为了保障商用密码的安全性,国家密码局制定了一系列密码标准,包括:SM1(SCB2)、SM2、SM3、SM4、SM7、SM9、祖冲之密码算法(ZUC) 等。 SM1、SM4、SM7、祖冲之密码(ZUC)是 对称算法 。 SM2、SM9是 非对称算法 。 SM3是 哈希算法 。 SM1、SM7算法不公开,调用该算法时,需要通过 加

    2024年02月03日
    浏览(25)
  • 基于区块链和门限密码的安全投票系统(Python+Django+Node+web3+SQLite3) 毕业论文+文献综述+方案对比+图形源文件+参考文献+项目源码

    2022年1月28日,中国创建首个区块链与隐私计算科技创新平台,为解决多方协作和多方信任等安全性问题提供了有力支持。区块链实现数据可信存储,隐私计算保护实体秘密提供可信计算,如果将隐私计算的数据部署到区块链,并由智能合约触发,那么可以解决传统领域各种

    2024年02月05日
    浏览(33)
  • 基于量子同态加密的安全多方凸包协议

    摘要 安全多方计算几何(SMCG)是安全多方计算的一个分支。该协议是为SMCG中安全的多方凸包计算而设计的。首先,提出了一种基于量子同态加密的安全双方值比较协议。由于量子同态加密的性质,该协议可以很好地保护量子电路执行过程中数据的安全性和各方之间的交互。结

    2024年02月15日
    浏览(31)
  • 基于量子同态的安全多方量子求和加密

    摘要 安全多方计算在经典密码学中一直扮演着重要的角色。量子同态加密(QHE)可以在不解密的情况下对加密数据进行计算。目前,大多数协议使用半诚实的第三方(TP)来保护参与者的秘密。我们使用量子同态加密方案代替TP来保护各方的隐私。在量子同态加密的基础上,提出了

    2024年02月13日
    浏览(33)
  • 同态加密:一个基于多方计算的CKKS方案

    这篇文章主要介绍LattiGo团队搞出来的一个多方同态加密的工作。个人觉得比较优雅,而且有库支持,方便把玩,所以记一下。 在攒毕业论文的时候整了这么个看上去很烂,但是(个人觉得)有一点意思的烂活,没心思写那么多的公式,各位dalao凑合看,欢迎轻喷。 实现了C

    2024年02月06日
    浏览(39)
  • 安全多方计算之一:什么是安全多方计算

    安全多方计算问题(SMC,Secure Multi-party Computation)由由中国计算机科学家、2000年图灵奖获得者姚启智教授于1982年在论文《Protocols for secure computations》中以百万富翁问题(两个百万富翁Alice和Bob想知道他们两个谁更富有,但他们都不想让对方及其他第三方知道自己财富的任何信

    2024年02月09日
    浏览(34)
  • 隐私计算-多方安全计算

    多方安全计算(MPC:Secure Muti-Party Computation)理论是姚期智先生为解决一组互不信任的参与方之间在保护隐私信息以及没有可信第三方的前提下协同计算问题而提出的理论框架。 多方计算的目标就是对一组计算的参与者,每个参与者拥有自己的数据,并且不信任其它参与者和

    2024年02月16日
    浏览(24)
  • 联邦学习与安全多方计算

    联邦学习(FL,Federated Learning)是谷歌于2016年提出的一种分布式机器学习框架,可以 在保护个人数据隐私的前提下,联合多方用户的数据实现模型训练 。 联邦学习用于解决“数据孤岛”问题,核心思想是“ 数据不动模型动,数据可用不可见 ”。 传统机器学习中,数据需集

    2023年04月15日
    浏览(24)
  • 安全多方计算简介

    安全多方计算(Secure Multi-Party Computation,SMPC)用于解决一组互不信任的参与方各自持有秘密数据,协同计算一个既定函数的问题。安全多方计算在保证参与方获得正确计算结果的同时,无法获得计算结果之外的任何信息。在整个计算过程中,参与方对其所拥有的数据始终拥有绝

    2024年02月07日
    浏览(26)
  • 第162篇 笔记-安全多方计算

    一、主要概念 安全多方计算 (Secure Multi-Party Computation):指多个参与者在不泄露各自隐私数据情况下,利用隐私数据参与保密计算,共同完成某项计算任务。 该技术能够满足人们利用隐私数据进行保密计算的需求,有效解决数据的“保密性”和“共享性”之间的矛盾。多方

    2024年02月03日
    浏览(25)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包