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

Completed credential signature data model #164

Merged
merged 8 commits into from
Oct 2, 2023
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 6 additions & 16 deletions spec/data_flow_issuance.md
Original file line number Diff line number Diff line change
Expand Up @@ -432,29 +432,19 @@ convention was initially defined
by the [Hyperledger Aries](https://www.hyperledger.org/projects/aries)
community.

:::

#### The Credential Signature

The credential signature elements are constructed as follows:

1. Compute $q = \frac{Z}{us^{v''}r^{m}_{linksecret}\ (Mod\ n)}$ where $v''$ is a random 2724-bit number with most significant bit as $1$ and $e$ is a random prime such that $2^{596} \leq e \leq 2^{596}+2^{119}$
2. Compute $a = q^{e^{-1}\ (Mod\ p'q')}\ (Mod\ n)$ where $p', q'$ are primes generated during issuer setup, and $e^{-1}$ is the multiplicative inverse of $e$.

::: todo

Add the details about the credential signature data elements

:::

* `m_2` is the *TO BE ADDED*. It is constructed as follows:
* *TO BE ADDED*
* `a` is the *TO BE ADDED*. It is constructed as follows:
* *TO BE ADDED*
* `e` is the *TO BE ADDED*. It is constructed as follows:
* *TO BE ADDED*
* `v` is the *TO BE ADDED*. It is constructed as follows:
* *TO BE ADDED*
* `m_2` is a linkable identifier to the holder encoded in base 10 that is also called the `master_secret` in old versions. It is constructed as follows:
* $m_2 = H(i || \mathcal{H})$, where $i$ is an index assigned to the holder, and $\mathcal{H}$ is an identifier with which the [[ref: holder]] is known to the [[ref: issuer]].
* `a` is the signature of the blinded known attributes. It's generation is given above.
Copy link
Contributor

Choose a reason for hiding this comment

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

Add how is encoded. I believe for anoncreds 1.0 its base 10

Copy link
Contributor Author

Choose a reason for hiding this comment

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

yes, it is encoded in decimal

Copy link
Contributor Author

Choose a reason for hiding this comment

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

added this into the spec

* `e` is a random prime generated by the [[ref: issuer]] for creating signature.
* `v` is a number generated by the [[ref: holder]] to unblind the signature of the blinded attributes. It is constructed as follows:
* $v = v' + v''$, where $v'$ is the blinding factor which the holder has and $v''$ is a random number generated by the issuer.

#### The Credential Signature Correctness Proof

Expand Down