@@ -50,6 +50,9 @@ def __init__(self, pub: _FeDDHMultiClientDec_PK, exc_priv_key: ECC, index: int,
5050 self .exchange_key = [b'' for _ in range (pub .n )]
5151 self .share = [[] for _ in range (self .pub .n )]
5252
53+ def regenerate_sk (self ):
54+ self .sk = [(randbelow (self .pub .F .order ()), randbelow (self .pub .F .order ())) for _ in range (self .pub .m )]
55+
5356 def get_exc_public_key (self ):
5457 return self .exc_priv_key .public_key ()
5558
@@ -62,17 +65,17 @@ def exchange(self, index: int, pub_key: ECC.EccKey):
6265
6366 self .exchange_key [index ] = key_agreement (static_priv = self .exc_priv_key , static_pub = pub_key , kdf = kdf )
6467
65- def generate_share (self ):
68+ def generate_share (self , epoch = 0 ):
6669 length = self .pub .F .order ().bit_length () // 8
6770 self .share = [[] for _ in range (self .pub .n )]
6871 for i in range (self .pub .n ):
6972 for j in range (self .pub .m ):
7073 nonce = long_to_bytes (i * self .pub .m + j )
7174 self .share [i ].append (
7275 (cprf .CPRF .eval (self .pub .n , self .index , self .exchange_key ,
73- b'a' + nonce , length ) % self .pub .F .order (),
76+ b'a' + long_to_bytes ( epoch ) + nonce , length ) % self .pub .F .order (),
7477 cprf .CPRF .eval (self .pub .n , self .index , self .exchange_key ,
75- b'b' + nonce , length ) % self .pub .F .order ())
78+ b'b' + long_to_bytes ( epoch ) + nonce , length ) % self .pub .F .order ())
7679 )
7780
7881
0 commit comments