init: v1.0.0
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
package ssss
|
||||
|
||||
/*
|
||||
package ssss implements Shamir's Secret Sharing Scheme
|
||||
|
||||
Usage:
|
||||
func TestSSSS() {
|
||||
secret := make([]byte, 16)
|
||||
// (3,5)门限
|
||||
shares, err := Split(secret, 3, 5, 0, rand.Reader)
|
||||
if err != nil {
|
||||
//
|
||||
}
|
||||
|
||||
// shares 是5份分片数据
|
||||
|
||||
// 收集至少3份分片数据
|
||||
recoveryShares := shares[:3]
|
||||
|
||||
//
|
||||
recoveredSecret, err := Restore(recoveryShares)
|
||||
if err != nil {
|
||||
//
|
||||
}
|
||||
|
||||
if bytes.Compare(secret, recoveredSecret) != 0 {
|
||||
fmt.Println("recoveredSecret and secret are different")
|
||||
}
|
||||
}
|
||||
|
||||
每个分片数据格式定义为:
|
||||
SharedSlice ::= SEQUENCE {
|
||||
Version INTEGER DEFAULT 0,-- default 0
|
||||
Threshold INTEGER, -- 门限值
|
||||
Length INTEGER, -- 原秘密值字节数
|
||||
Degree INTEGER, -- 拉格朗日多项式系数域在F_2上的扩域次数
|
||||
X INTEGER, -- x值
|
||||
Y INTEGER, -- y=f(x)
|
||||
Token [0]IMPLICIT OCTET STRING OPTINAL --随机字节,同一secret的n个分片应该一致
|
||||
}
|
||||
|
||||
*/
|
||||
Reference in New Issue
Block a user