Secret Sharing是什么?

Secret Sharing Scheme

read from The Joy of Cryptography

定义:一个TSSS (t out-of n threshold secret-sharing scheme)包含了以下的一些操作:

  1. Share(拆分):随机性的,其需要能够将一条Message随机地分割为\(n\)个Share

  2. Reconstruct(重建):确定性的,将\(n\)个Share聚合起来得到唯一确定的Message

所有可能的Message构成了一个空间,而我们假设这个空间的一个阈值为\(t\)

阈值?空间的阈值?这个阈值的意义就是只有集齐了\(t\)个Share,我们才能确定性地重建出唯一的Message,少一个都不行!!

我们称一个TSSS是安全的,严格意义上来说,必须要求任何拥有少于t个Share的时候都不应该了解关于Message的信息。

这是什么意思呢?通俗来说,对于Message空间内的任意两个不同的A Message和B Message各自执行Share拆分后,各自取出少于t个Share组成集合,这两个集合都可能是完全相同的,这也就使得持有者并不能确定究竟是A还是B。

进行Share步骤时,我们强调了“随机性”,那么这个随机性应该如何定义呢?随机性当然是指对Message进行随机性的切分,不过同时也是指即便我们采用同样的Message调用同样的拆分算法, 它输出的结果也应该是随机的。

一种简单的2 out-of 2 TSSS是通过异或实现。对于一个Message,随机生成等长的二进制字符串,然后将其与之异或,则最后的结果作为一个Share,原随机二进制字符串作为一个Share即可。很容易就发现假如仅持有一个Share(即少于阈值),那么这个Share完全是随机的,无法用于确定任何有用的信息。

一种更加普适的n out-of n TSSS通过多项式实现的。我们都知道,一个最高N次的多项式曲线,至少需要N个点才能确定。我们将Message作为常数项,然后随机生成n个多项式参数作为n个Share,组成一条曲线方程,这样就能从数学的角度上就能保证上文所述的安全性。这也是著名的Shamir-Sharing方法的基础。

posted @ 2022-08-02 15:36  neumy  阅读(92)  评论(0编辑  收藏  举报