Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

tss: Adds RSA Threshold signatures #364

Merged
merged 8 commits into from
Oct 10, 2022
Merged

tss: Adds RSA Threshold signatures #364

merged 8 commits into from
Oct 10, 2022

Conversation

jbis9051
Copy link
Contributor

@jbis9051 jbis9051 commented Aug 12, 2022

RSA Threshold Signatures

This is an implementation of "Practical Threshold Signatures" by Victor Shoup.
Protocol 1 is implemented.

Threshold Primer

Let l be the total number of players, t be the number of corrupted players, and k be the threshold.
The idea of threshold signatures is that at least k players need to participate to form a valid signature.

Setup consists of a dealer generating l key shares from a key pair and "dealing" them to the players. In this implementation the dealer is trusted.

During the signing phase, at least k players use their key share and the message to generate a signature share.
Finally, the k signature shares are combined to form a valid signature for the message.

Modifications

  1. Our implementation is not robust. That is, the corrupted players can prevent a valid signature from being formed by the non-corrupted players. As such, we remove all verification.
  2. The paper requires p and q to be safe primes. We do not.

@armfazh armfazh added the new feature New functionality or module label Aug 12, 2022
@armfazh armfazh self-assigned this Aug 12, 2022
Copy link
Contributor

@armfazh armfazh left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good in general. Most of the comments are easy to fix.

tss/rsa/rsa_threshold.go Outdated Show resolved Hide resolved
tss/rsa/rsa_threshold.go Outdated Show resolved Hide resolved
tss/rsa/rsa_threshold.go Show resolved Hide resolved
tss/rsa/rsa_threshold.go Outdated Show resolved Hide resolved
tss/rsa/rsa_threshold.go Outdated Show resolved Hide resolved
tss/rsa/util.go Outdated Show resolved Hide resolved
tss/rsa/rsa_threshold_test.go Outdated Show resolved Hide resolved
tss/rsa/rsa_threshold_test.go Outdated Show resolved Hide resolved
tss/rsa/util.go Show resolved Hide resolved
tss/rsa/pss/pss.go Outdated Show resolved Hide resolved
Copy link
Contributor

@armfazh armfazh left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changes look good. Thanks @jbis9051

@armfazh armfazh merged commit fa1d557 into cloudflare:main Oct 10, 2022
@armfazh armfazh changed the title Adds RSA Threshold signatures tss: Adds RSA Threshold signatures Oct 10, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
new feature New functionality or module
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants