U-Prove allows for anonymous authentication and authorization without the involvement of an IdP.

When a client generates a presentation proof 3 values can be optionally included, but I can't find intuitive documentation on how or why to use them. The values are:

  • Pseudonyms
  • Commitments
  • Scope

I examined the sourcecode and infer that the pseudonym is used by a hardware device, and not sure if this usage is exclusive to the prover's device, or if the usage can be expanded to more creative scenarios. I simply don't understand the value this provides.

I suspect scope is a string generated by the verifier (a.k.a. authorization target), but am unclear on how frequently it must be updated (per token or presentation) or what it should contain.

The commitments attribute is very interesting since part of the source code says it's for protocol extensions, but I haven't seen any extensions take advantage of this, let alone understand how or why the protocol can be expanded. It does seem to be related to FieldZqElements and the tildeO variables.

This is what I found in the source code describing these variables:

committed: An ordered array of committed attribute indices.

pseudonymAttribIndex: Index of the attribute used to create a scope-exclusive pseudonym, or 0 if no pseudonym is to be presented. The index must not be part of the disclosed attributes.

gs: The pseudonym scope element, or null if no pseudonym is to be presented.

Can anyone elaborate on these 3 (and any other related variable), and how they would be used in a to-be-invented security protocol? (e-voting, limited use, x "greater than" y, etc)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.