题目
一个秘密?,被分割成?个子秘密(??,??),从?个子秘密(??,??)中任意选择大于等于?个,能够恢复出秘密?,少于t个则不能恢复出秘密?。
环境
Windows10,MinGW-W64-builds-4.3.5,miracl 7.0.1
方案设计
背景
中国剩余定理
原理
- (?,?)门限,一个秘密?,被分割成?个子秘密 (??,??)
对于某个秘密 ?,计算
{ k 1 ≡ k ( m o d d 1 ) k 2 ≡ k ( m o d d 2 ) k n ≡ k ( m o d d k ) \begin{cases} k_1 ≡ k (mod \, d1) \\ k_2≡ k (mod \, d2)\\\\\\ k_n ≡ k (mod \, dk) \end{cases} ⎩⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎧k1≡k(modd1)k2≡k(modd2)kn≡k(moddk)则子秘密为 (??,??)
要求一: 选择?个整数??,??,⋯,??,满足
(1)?? < ?? < ⋯ < ??;
(2) (??,??) = ?,? ≠ ?;
(3)? = ??×?? ×⋯×??
? = ??−?+? ×??−?+? ×⋯×??,有? > ?
要求二: ? > ? > ?
- ?个子秘密中任意选择?个,(???,???), (???,???),⋯, (???,???),恢复出秘密 ?,计算 { k i 1 ≡ k ( m o d d i 1 ) k i 2 ≡ k (