如何保护分布式哈希表中的密钥,以便只有拥有私钥的人才能写入密钥?

问题描述 投票:0回答:1

我正在尝试将分布式哈希表(DHT)与名称系统放在一起,其中一个人可以声明任何密钥的所有权。

我想到的是以下界面

dht.secure_set(public_key, signature, key, value)

哪里

signature == sign(private_key, public_key, key, value)`

这是由signature签署的键值对。

然后,其他人将能够检索value,因为他们知道public_keykey

dht.secure_get(public_key, key)

只有当签名确实是key对的签名时,DHT中负责(public_key, key)的同行才会接受对(key, value)对的更新。

这个签名方案是否安全?

cryptography digital-signature p2p dht
1个回答
1
投票

我至少看到两个问题:

A)让存储对等体负责验证是不够的。它可能是一个恶意节点,所以读者也必须验证

B)如果有许多(key,pubkey)元组具有相同的密钥但不同的pubkeys,即某些密钥真的很受欢迎,这可能会给它们必须花费的CPU周期的一小部分节点带来不适当的负担(如果有频繁的写入),他们必须服务的存储和流量。 最好通过哈希函数从(key,pubkey)派生最终查找键,以便这些元组分散在整个键空间中。这实际上是DHT为其generic value signed storage指定的bittorrent

© www.soinside.com 2019 - 2024. All rights reserved.