Page 405 - 《软件学报》2026年第4期
P. 405
1846 软件学报 2026 年第 37 卷第 4 期
文的源地址和目的地址, 判断目标共识节点是否为网络信任联盟地址域内的共识节点. 对于联盟内节点所发出的
消息, 框架通过 IP 地址判断其所属地址域, 并利用地址域对应的对称密钥完成身份验证, 同时借助哈希值验证报
文完整性. 而对于联盟外节点所发出的消息, 框架则采用基于公钥签名的验证方式, 通过签名确认身份, 并通过哈
希校验确保报文完整性.
算法 3. IP 地址身份验证算法 (发送方).
输入: 共识消息 message、目的 IP 地址 IP_des、源 IP 地址 IP_src;
输出: 含有共识节点身份信息的共识消息.
// 判断目标节点所在地址域是否完全部署真实源地址验证技术
IF has_SAV(IP_des) == TRUE:
// 采用 IP 地址身份验证机制, 根据目的节点所在地址域的对称密钥计算 HMAC
domain = search_domain(IP_des)
secret = search_domain_secret(domain)
hmac = HMAC(message, secret)
message = message | hmac
ELSE
// 采用传统非对称密钥的身份验证机制, 用源节点所在地址域的公私钥对进行签名
pri_secret = search_domain_pri_secret(IP_src)
hash = hash(message)
sig = sign(hash, pri_secret)
message = message | hash | sig
RETURN message
算法 4. IP 地址身份验证算法 (接收方).
输入: 含有共识节点身份信息的共识消息 message, 源 IP 地址 IP_src;
输出: 验证结果.
IF has_SAV(IP_src) == TRUE:
// 采用 IP 地址身份验证机制, 判断源节点所在地址域, 并根据对应对称密钥验证 HMAC
domain = search_domain(IP_src)
secret = search_domain_secret(domain)
result = verify_hmac(message, secret)
ELSE
// 采用传统非对称密钥的身份验证机制, 获取源节点对应公钥, 验证签名
pub_secret = search_node_pub_secret(IP_src)
result = verify_sig_hash(message, pub_secret)
RETURN result
5.2 轻量共识过程
基于 IP 地址身份验证, 本文提出的框架实现了轻量化共识过程. 该过程如图 4 所示, 框架在传统共识过程的
基础上, 在共识节点层面采用对称密钥取代传统的非对称公私钥, 并使用 IP 地址身份验证机制取代传统的基于哈
希和签名的身份验证机制. 在这一过程中, 框架使用哈希运算消息认证码 (hash-based message authentication code,

