You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

shared file systems中数据块签名含义及共享数据public auditing项目相关问题

1. 大文本场景下的data block定义

data block是你按业务规则对大文本做拆分后得到的独立分片,拆分规则可自行定义:

  • 最简单的是固定大小拆分:比如把10GB的大文本按每4KB一个分片切割,每个分片就是一个data block
  • 也可以按语义拆分:比如按章节、段落、日志行组拆分,保证单个block的修改不会影响其他block的语义
    拆分的核心要求是每个block可以独立读取、独立校验、独立修改,通常会给每个block分配全局唯一的序号,避免攻击者调换block顺序绕开校验。

2. 用户对data block签名的具体含义

这里指非对称加密体系下的数字签名操作,完整流程如下:

  • 每个用户生成独立的非对称密钥对:私钥自己留存,公钥公开给所有文件共享参与方和审计方
  • 对需要签名的data block明文做哈希运算,得到固定长度的摘要(比如用SHA256算法得到32字节的摘要)
  • 用自己的私钥对该摘要加密,得到的结果就是该用户对这个block的签名
    签名的核心作用是证明该block的内容经过了该用户的确认,后续不管是block内容被篡改、还是有人伪造用户对block的修改,签名都会失效。

你可以用openssl快速实现单block的签名操作,示例命令:
openssl dgst -sha256 -sign user1_private.key -out block_001.sig block_001.txt

3. 访问文件时的签名验证流程

用户访问文件时,按需对目标block的签名做验证,步骤如下:

  1. 获取三个核心要素:待验证的block明文内容、对应该block的用户签名、签名用户的公开公钥
  2. 对当前获取的block明文执行和签名时完全相同的哈希运算,得到新的摘要
  3. 用签名用户的公钥对留存的签名做解密,得到签名时生成的原始摘要
  4. 对比两个摘要是否完全一致:一致则说明block内容未被篡改,是该用户签名确认的版本;不一致则说明内容被篡改或签名伪造。

对应的openssl验证示例命令:
openssl dgst -sha256 -verify user1_public.pub -signature block_001.sig block_001.txt

如果你的公开审计场景要求不能暴露block明文,可以用同态哈希、零知识证明等方案实现无明文验证,不需要对外暴露原始文本内容即可完成审计校验。

内容的提问来源于stack exchange,提问作者naman singh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 18:45:03