【AIGC】找遍了全网的 shamir 方案,没有我要的"点击即用"的版本

【AIGC】找遍了全网的 shamir 方案,没有我要的"点击即用"的版本 事情的起因很简单:我想要一个这样的工具——上传任意文件,点一下,得到 n 个分片 + 1 个密文;恢复的时候,凑齐任意 k 个分片,点一下,文件原样回来。全程纯本地计算,不依赖任何后端,部署在一个静态页面就能跑。 我以为网上肯定有一堆现成的。结果把全网翻了个底朝天,发现这个生态位居然是空的。 一、先说我到底要什么 列一下我找了一路的验收标准,也是这个"生态位"的定义: 任意文件——不是助记词,不是口令字符串,就是随便一个文件:照片、文档、游戏存档、压缩包。 混合加密:随机生成一个 key,用 AES-256-GCM 加密文件得到密文;Shamir 秘密共享只用来分片这个 key,而不是分片文件本身。 返回物:n 个分片(每个只有几十字节)+ 1 个密文(和原文件一样大)。 纯前端:加密、分片、重组全部在浏览器本地完成,密文和分片全部本地下载。 能部署在 GitHub Pages:零后端、零服务器、零存储,打开页面就能用。 最好有现成的开源仓库,拿来即用。 为什么是"分片 key 而不是分片文件"?因为 Shamir 分片的总体积是 n × 秘密大小——把整个文件分片,每人要保管一大块跟原文件差不多大的东西,这不叫备份,这叫搬家。先加密、再只分片那 32 字节的 key,每人拿到的就是几行字符,复制、打印、二维码都能装;而密文可以随便丢——R2、U 盘、公共网盘,没有 key 它就是一堆噪声。 ...

Shamir 秘密共享方案

Shamir 秘密共享方案 这是个好玩的东西。简单的讲,就是某个数字例如K=77,可以分成5个,只有3个人都选择恢复这个数字才能恢复这个数字。 这能干的事情就很多了。 至于详细地说。。。看下面: 后来把它做成了一个能跑的服务:cnb.cool/t1mmoc/tspace/pwngore/shamir-file-split。 下面先讲原理,再讲那份抄来的 Python 代码里两个会让门限失效的 bug,最后讲工程化之后真正要解决的问题。 基本原理 Shamir 秘密共享方案是一种基于多项式插值原理的密码学技术,由 Adi Shamir 在 20 世纪 70 年代提出。其核心思想是将一个秘密数据分割成多个份额,只有当足够数量的参与者(达到一个预设的阈值)将他们的份额组合在一起时,才能重建出原始秘密。 ...