在 Kademlia 中,为什么建议使用 160 位节点 ID 和密钥而不是 128 位?

2024-01-01

Kademlia 论文指出,节点被分配了随机的 160 位 ID 和密钥。这是一个严格的限制吗?如果我觉得足够好,我还可以继续使用 128 位密钥空间吗?


选择这个长度是因为用作哈希表键的哈希函数的 SHA1 输出 160 位,这是当时使用最广泛的哈希函数。

路由算法本身不需要特定的长度来工作,它所需要的只是密钥空间足够大以避免随机选择的 ID 中的冲突 https://en.wikipedia.org/wiki/Birthday_problem。 128位ID将提供64位的冲突空间,这应该足够了除非你打算解决灰色粘性问题 https://xkcd.com/865/.

但除了路由算法本身之外,加密问题也可能相关。使用加密的网络受​​益于节点 ID 兼作节点公钥,并且通常部署的 ECC 算法需要至少 256 位的公钥。此外,针对(当前假设的)量子攻击的抵抗力已将建议的哈希函数大小大大超出了 128 位,因为它们会降低碰撞抵抗力N/3从下N/2对于经典攻击。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Kademlia 中,为什么建议使用 160 位节点 ID 和密钥而不是 128 位? 的相关文章

  • vue父子组件在不同情况下生命周期的执行顺序

    在分析父子组件生命周期之前 我们先核实一次两个路由 不包含子组件 之间切换 其生命周期的执行顺序 在这用到两个路由 新闻路由和top路由 名字只做区分 没有其他含义 1 首先切换到新闻路由 执行顺序 beforeCreate gt crea
  • T系接口源数据格式

    item apiStack name esi value endpoint mode android osVersion 9 26 0 protocolVersion 3 0 ultronage true data dinamic TB d
  • stata--异方差检验

    异方差检验有两种方法 1 残差图 2 white检验 1 残差图 一般不用这个 这个只是粗略 代码 reg y fdi rvfplot yline 0 rvpplot fdi yline 0 1 对y和fdi回归 2 画出残差与拟合值 y
  • 解决在cmd情况下无法连接MySQL情况(无脑操作教程)

    在输入外部命令 mysql u root p的时候 出现下面的情况 网图 侵删 问题分析 可能是MySQL路径问题没有解决 解决方法 1 打开电脑高级设置 2 点击环境变量 3 找到path路径变量后 点击编辑 4 新建路径 此路径是我保存
  • 【负荷预测】基于神经网络的负荷预测和价格预测(Matlab代码实现)

    目录 1 概述 2 基于神经网络的负荷预测 Matlab实现 2 1 代码 2 2 结果 2 3 回归树模型的进一步改进 3 基于神经网络的价格预测 Matlab代码实现 4 阅读全文 Matlab代码 1 概述 这个例子演示了用MATLA
  • 正大国际:正确的交易与趋势无关只与系统的入场信号有关对吗?

    趋势的方向根本就和你的成功无任何关联 什么看外盘 听消息 问专家 这些除了使自己更加焦虑以外 对我们的成功交易没有丝毫的帮助 只要系统显示的是做空信号 哪怕全世界的人都看多 我们也只能做空 严格的按照系统操作才能保证亏损最小化 利润最大化
  • CAN分析仪 USBCAN USB转CAN CAN转换调试器接口卡使用指导

    USBCAN系列便携式CAN分析仪 通过USB接口快速扩展一路CAN通道 使接入CAN网络非常容易 它具有一体式和小巧紧凑的外形 特别适合于随身携带 第一步 将usbcan卡连接电脑如图 usb灯亮红灯 打开 USBCAN系列便携式CAN总
  • 开源P2P视频流媒体源代码研究

    1 Azureus http azureus sourceforge net 这是java版的betorrent 最新版本2 4 0 2 从网上直接下载的源代码是没法构建的 所用的库没有在包里面 可以到 http azureus cvs s
  • 使用七牛云进行文件上传

    目录 一 七牛云入门测试 1 注册七牛云账号 完成后选择对象存储 2 在里面创建空间 一个空间相当于一个文件夹 就是将对象上传到的地方 3 查看个人秘钥 注册完成账号后 会有一个秘钥 上传文件的时候进行授权和认证 4 文件上传测试 二 封装
  • 从 iOS 到 Android 的点对点视频?

    我开始为 iOS 和 Android 开发 制作一个点对点视频聊天应用程序原型 我正在尝试创建与 FaceTime 或 Tango 类似的体验 即高质量的视频 可以在互联网 3G 上工作 而不仅仅是在同一 LAN 上 我刚刚开始进入研究阶段
  • C++ Winsock P2P

    Scenario 有没有人有任何使用 Winsock 在 C 中进行点对点 p2p 网络的好例子 这是我对特别需要使用这项技术的客户的要求 天知道为什么 我需要确定这是否可行 任何帮助将不胜感激 EDIT 我想避免使用库 以便我可以理解底层
  • 使用 Java 和 Corba 识别对等文件共享中的客户端。并在 2 个客户端之间建立套接字套接字

    我正在使用 Java 和 CORBA 开发一个点对点文件共享应用程序 我是 CORBA 新手 到目前为止 我已经成功创建了一个客户端程序 该程序通过 CORBA 在 SQL 数据库中注册一个文件 该表存储以下信息 filename 共享 基
  • 最新的 BitTorrent DHT 实施建议是什么?

    我正在努力实现另一个 BitTorrent 客户端 目前正在与 DHT 作斗争 是按照这个规范来实现的http www bittorrent org beps bep 0005 html但开始调试它时 我注意到网络上其他节点的响应有所不同
  • 通过多点连接发送和接收邀请

    我知道这个问题之前已经被问过 但我只是想知道为什么它在我的特定情况下不起作用 我正在尝试从一个视图控制器的多点连接发送邀请 并在另一个视图控制器上接收它 我的发送代码是 self invitePeer selectedPeerID toSe
  • 使用中间服务器创建点对点连接

    我想连接两个客户端 通过 TCP IP 套接字 客户端可以使用中间服务器发现彼此 一旦客户端发现彼此 服务器就不应该有任何参与 我对此做了一些研究 发现很多人建议JXTA 但我想自己从头开始创建协议 因为将来我可能也必须使用 WebSock
  • “dat”协议能否有效支持视频直播?

    我希望能够通过以下方式实时流式传输视频 或任何其他大型且不断修改 附加的文件 dat Here https github com beakerbrowser webdb performance它说 dat 协议不支持文件级别的部分更新 这意
  • 是否可以通过互联网在两个移动设备 (iPhone) 之间连接套接字?

    是否可以通过互联网在两个移动设备 iPhone 之间连接套接字 我正在尝试发现每个设备的IP并直接连接 我知道可以使用 Bonjour 来完成 但这只适用于本地网络 我需要通过互联网在两个设备之间建立高速连接 Thanks 如果你有两个 I
  • 比特币客户端如何确定第一个连接的IP地址?

    据我所知 比特币是一种 p2p 协议P2P协议必须有一个专用的中央服务器 https stackoverflow com questions 310607 peer to peer methods of finding peers 但据说比
  • 同步通过 LAN 电缆连接的两台 Windows 7 计算机之间的时间

    我有许多笔记本电脑 它们运行我们的应用程序 同时通过以太网电缆成对连接 但未连接到任何外部网络或互联网 时间 我需要连接对来同步其系统时间 但由于每台计算机都需要能够与任何其他计算机同步 因此我无法将一台计算机定义为时间服务器 而另一台计算
  • 智能手机可以通过 3G/4G 进行点对点通信吗?

    我正在尝试编写一个应用程序 将数据从一个 Android 设备传输到另一个 Android 设备 但这些设备很可能位于城市 州或国家的不同部分 直接的方法是拥有一台中央服务器 或任何类型的服务器 但我试图避免使用中央服务器 我试图传递的数据

随机推荐