Documentation ¶
Overview ¶
This file implements the key refresh protocol of [DKLs18](https://eprint.iacr.org/2018/499.pdf). The key refresh protocol is defined as follows:
- Key Share: 1.1. alice generates k_A <-- F_q; writes it to merlin transcript. sends it to bob. 1.2. bob receives k_A and writes it to merlin transcript. generates k_B <-- F_q and writes it to merlin transcript. reads k out of merlin transcript. overwrites sk_B *= k. sends k_B to Alice. 1.3. alice writes k_B to merlin transcript. reads k from it. overwrites sk_A *= k^{-1}.
- OT: Redo OT (as it is done in the DKG)
Index ¶
- type Alice
- func (alice *Alice) Output() *dkg.AliceOutput
- func (alice *Alice) Round1RefreshGenerateSeed() curves.Scalar
- func (alice *Alice) Round3RefreshMultiplyRound2Ot(input *RefreshRound2Output) ([]simplest.ReceiversMaskedChoices, error)
- func (alice *Alice) Round5RefreshRound4Ot(challenge []simplest.OtChallenge) ([]simplest.OtChallengeResponse, error)
- func (alice *Alice) Round7DkgRound6Ot(challengeOpenings []simplest.ChallengeOpening) error
- type Bob
- func (bob *Bob) Output() *dkg.BobOutput
- func (bob *Bob) Round2RefreshProduceSeedAndMultiplyAndStartOT(aliceSeed curves.Scalar) (*RefreshRound2Output, error)
- func (bob *Bob) Round4RefreshRound3Ot(compressedReceiversMaskedChoice []simplest.ReceiversMaskedChoices) ([]simplest.OtChallenge, error)
- func (bob *Bob) Round6RefreshRound5Ot(challengeResponses []simplest.OtChallengeResponse) ([]simplest.ChallengeOpening, error)
- type RefreshRound2Output
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Alice ¶
type Alice struct {
// contains filtered or unexported fields
}
Alice struct encoding Alice's state during one execution of the overall signing algorithm. At the end of the joint computation, Alice will NOT obtain the signature.
func NewAlice ¶
func NewAlice(curve *curves.Curve, dkgOutput *dkg.AliceOutput) *Alice
NewAliceRefresh creates a party that can participate in 2-of-2 key refresh.
func (*Alice) Output ¶
func (alice *Alice) Output() *dkg.AliceOutput
func (*Alice) Round1RefreshGenerateSeed ¶
func (*Alice) Round3RefreshMultiplyRound2Ot ¶
func (alice *Alice) Round3RefreshMultiplyRound2Ot(input *RefreshRound2Output) ([]simplest.ReceiversMaskedChoices, error)
func (*Alice) Round5RefreshRound4Ot ¶
func (alice *Alice) Round5RefreshRound4Ot(challenge []simplest.OtChallenge) ([]simplest.OtChallengeResponse, error)
func (*Alice) Round7DkgRound6Ot ¶
func (alice *Alice) Round7DkgRound6Ot(challengeOpenings []simplest.ChallengeOpening) error
type Bob ¶
type Bob struct {
// contains filtered or unexported fields
}
Bob struct encoding Bob's state during one execution of the overall signing algorithm. At the end of the joint computation, Bob will obtain the signature.
func (*Bob) Round2RefreshProduceSeedAndMultiplyAndStartOT ¶
func (bob *Bob) Round2RefreshProduceSeedAndMultiplyAndStartOT(aliceSeed curves.Scalar) (*RefreshRound2Output, error)
func (*Bob) Round4RefreshRound3Ot ¶
func (bob *Bob) Round4RefreshRound3Ot(compressedReceiversMaskedChoice []simplest.ReceiversMaskedChoices) ([]simplest.OtChallenge, error)
func (*Bob) Round6RefreshRound5Ot ¶
func (bob *Bob) Round6RefreshRound5Ot(challengeResponses []simplest.OtChallengeResponse) ([]simplest.ChallengeOpening, error)
Click to show internal directories.
Click to hide internal directories.