用于在多方之间交换数据的算法

时间:2016-03-11 16:43:04

标签: security encryption hash cryptography

让我们说有爱丽丝,鲍勃,夏娃和仲裁员。

让我们说

Alice有一张记录表

|      id | pet type | birth date |
|----------------------------------
|       1 |      cat | 2010-03-03 |
|       2 |      dog | 2011-06-12 |

Bob有一个记录表

|      id | pet type |    color |
|-------------------------------|
|       2 |      dog |    white |
|       3 |     bird |    green |

Eve有一个记录表

|      id | pet type |     size |
|--------------------------------
|       1 |      cat |    small |
|       3 |     bird |    small |

现在每个人都希望通过相邻ID的邻居数据来丰富自己的数据,但是没有披露此ID,例如,

Alice希望她的数据如下所示

|      id | pet type | birth date |   color |    size |
|------------------------------------------------------
|       1 |      cat | 2010-03-03 |         |   small |
|       2 |      dog | 2011-06-12 |   white |         |
鲍勃希望他的数据如下所示

|      id | pet type | birth date |   color |    size |
|------------------------------------------------------
|       2 |      dog | 2011-06-12 |   white |         |
|       3 |     bird |            |   green |   small |

等等。

仲裁员协调各方之间的所有交换操作,并使用来自各方数据集的相应加密id字段匹配数据,因此各方必须通过仲裁员进行沟通,但不能直接相互沟通。

仲裁员也必须能够确保

hash(Alice's id = 2) = hash(Bob's id = 2), hash(Bob's id = 3) = hash(Eve's id = 3)

等等,但一定不能恢复原始标识符,仲裁员也不能强制加密标识符(所以如果谈论某种哈希 - 它们必须被腌制)

为了简化Alice,Bob和Eve的事情 - 他们希望只有一个密钥来加密自己的标识符,但每个方的密钥应该不同,即

F1(alive_key(alice_id)) = F2(bob_key(bob_id)) = F3(eve_key(eve_id))

其中,F1,F2,F3-是仲裁者应用于Alice,Bob和Eve的加密标识符的一些功能,并且这些功能不解密原始标识符,但导致加密的标识符相同。

所以问题是 - 是否有任何算法可以帮助解决这样的问题?

0 个答案:

没有答案