本文主要是介绍安全多方计算之计算平均工资,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
安全多方计算就是不依靠第三方或是其他方进行之间的的某个值的计算,其中的平均工资计算就是典型的例子之一,另一个百万富翁问题之前讲过。
背景:工资是很隐私的数据,很多公司的工资也很隐蔽,主要原因是员工必须签署工资保密协议,就是不准你透漏你的工资,但是员工还特别想知道自己所拿到的工资在公司处于怎样一个层次。安全多方计算就能解决这个问题,通过秘密的计算平均工资,和平均工资一比较,就知道你的层次的。
具体过程:
假设有五个员工,A,B,C,D,E,他们的工资分别为小写的a,b,c,d,e,他们都有自己的公钥,私钥PK,SK
- A先选择一个大的随机整数,然后将自己的工资与其相加,然后用B的公钥加密,发给B。
- B获取密文后,用自己的私钥解密后,将自己的工资与该明文数字相加,然后用C的公钥加密,发给C
- C ->D...
- D->E...
- E获取密文后,用自己的私钥解密后,将自己的工资与该明文数字相加,然后用A的公钥加密,发给A
- A拿到密文后,用自己的私钥解密后,将之前的大的随机数减去,除以5即得平均工资,发给其他人。
具体演示(如下图点击进入全屏):
据反映演示太快,考虑到动图大小限制,只将其中重要步骤放慢
这篇关于安全多方计算之计算平均工资的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!