IP Library Granted Patent US 9,635,012
Granted Patent B2
US 9,635,012 · App. 14/255,396 · Granted Apr 25, 2017

Method for deriving a verification token from a credential

Inventors: Jan L. Camenisch (Thalwil, CH); Anja Lehmann (Zurich, CH); Gregory Neven (Oberrieden, CH)
Assignee: International Business Machines Corporation
H04L63/0823H04L9/0866H04L9/3218H04L63/062H04L9/3263H04L63/0407H04L2209/04H04L2209/42
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,635,012
App. No.
14/255,396
Granted
Apr 25, 2017
Kind
B2
Abstract

A method for deriving a verification token from a credential may be provided. The credential may be a set of attributes certified by an issuer to a user using a public key of the issuer. The method may comprise generating the verification token out of the credential and binding the verification token to a context string, wherein the verification token may comprise at least one commitment. A commitment may be a blinded version of an attribute. The method may also comprise generating an opening key for the verification token enabling a generation of a confirmation for a validity of the attribute.

Claims (38)

1. A method for deriving a verification token from a credential, the credential being a set of attributes certified by an issuer to a user using a public key of the issuer, the method comprising:

generating the verification token out of the credential, wherein the verification token comprises at least one commitment, wherein a commitment is a blinded version of an attribute;

generating an opening key for the verification token enabling a generation of a confirmation for a validity of the attribute,

wherein the generating the verification token comprises binding of the verification token to a context string for preventing the verification token to be reusable together with a different context string;

performing the generation of the verification token and the opening key in a first system;

transferring a first tuple comprising an attribute, the verification token, and the opening key from the first system, the first tuple receivable by a second system, such that at the second system a confirmation about the validity of the attribute based on the first tuple and the public key of the issuer is obtainable;

transferring from the first system a second tuple comprising a plurality of attributes together with a corresponding verification token comprising commitments for the plurality of attributes, and corresponding opening keys for each attribute and commitment combination, the second tuple being receivable by the second system;

transferring from the second system to a third system, a subset of the plurality of attributes, the verification token, and a subset of opening keys related to the subset of the plurality of attributes; and

obtaining at the third system a confirmation about the validity of the subset of the plurality of attributes based on the verification token, the subset of opening keys, and the public key of the issuer, wherein the obtaining of a confirmation at the third system is performed with a respective certified function from the issuer.

2. The method of claim 1 , wherein the generation of the verification token is performed using a public key of the second system.

3. The method of claim 1 , wherein the generating of the verification token is based on an anonymous credential scheme.

4. The method of claim 3 , wherein the anonymous credential scheme is a Camenisch-Lysyanskaya Signature.

5. The method of claim 1 , wherein an attribute is selected out of a group comprising first name, last name, address, age, customer number, credit line, account number, bank name, social security number, insurance number, and credit card number of the user.

6. The method of claim 1 , wherein the generation of the verification token, the generation of the opening key, the obtaining of the confirmation at the second system and the obtaining of a confirmation at the third system is each performed with a respective certified function from the issuer.

7. The method of claim 1 , wherein the generation of the verification token and corresponding opening key for commitments comprised in the verification token results in different verification tokens for identical credentials, each time the verification token is generated.

8. A system for deriving a verification token from a credential, the credential being a set of attributes certified by an issuer to a user using a public key of the issuer, the system comprising:

a computer having a processor and a computer-readable storage device;

a program embodied on the storage device for execution by the processor, the program having a plurality of program modules, the program modules including:

a token generation module adapted for generating the verification token out of the credential, and for binding the verification token to a context string for preventing the verification token from being reusable together with a different context string, wherein the verification token comprises at least one commitment, and wherein a commitment is a blinded version of an attribute; wherein the generation of the verification token and the opening key in performed on a first system,

wherein the program further comprises a first transferring module adapted to transfer a first tuple comprising an attribute, the verification token, and the opening key from the first system, the first tuple receivable by a second system, such that at the second system a confirmation about the validity of the attribute based on the first tuple and the public key of the issuer is obtainable;

a key generation module adapted for generating an opening key for the verification token enabling a generation of a confirmation for a validity of the attribute;

a second transferring module adapted to transfer from the first system a second tuple comprising a plurality of attributes together with a corresponding verification token comprising commitments for the plurality of attributes, and corresponding opening keys for each attribute and commitment combination, the second tuple being receivable by the second system;

a third transferring module configured to transfer from the second system to a third system, a subset of the plurality of attributes, the verification token, and a subset of opening keys related to the subset of the plurality of attributes; and

an obtaining module configured to obtain at the third system a confirmation about the validity of the subset of the plurality of attributes based on the verification token, the subset of opening keys, and the public key of the issuer.

9. The system of claim 8 , wherein the generation of the verification token is performed using a public key of the second system.

10. The system of claim 8 , wherein the generating of the verification token is based on an anonymous credential scheme.

11. The system of claim 10 , wherein the anonymous credential scheme is a Camenisch-Lysyanskaya Signature.

12. A computer program product, comprising a non-transitory computer-readable storage medium having program code embodied therewith, the program code executable by a processor of a computer to perform a method comprising:

generating, by the processor, the verification token out of the credential, wherein the verification token comprises at least one commitment, wherein a commitment is a blinded version of an attribute;

generating, by the processor, an opening key for the verification token enabling a generation of a confirmation for a validity of the attribute,

wherein the generating the verification token comprises binding, by the processor, the verification token to a context string for preventing the verification token to be reusable together with a different context string;

performing, by the processor, the generation of the verification token and the opening key in a first system; and

transferring, by the processor, a first tuple comprising an attribute, the verification token, and the opening key from the first system, the first tuple receivable by a second system, such that at the second system a confirmation about the validity of the attribute based on the first tuple and the public key of the issuer is obtainable;

transferring, by the processor, from the first system a second tuple comprising a plurality of attributes together with a corresponding verification token comprising commitments for the plurality of attributes, and corresponding opening keys for each attribute and commitment combination, the second tuple being receivable by the second system;

transferring from the second system, by a processor of the second system, to a third system, a subset of the plurality of attributes, the verification token, and a subset of opening keys related to the subset of the plurality of attributes; and

obtaining at the third system, by a processor of the third system, a confirmation about the validity of the subset of the plurality of attributes based on the verification token, the subset of opening keys, and the public key of the issuer.

13. The computer program product of claim 12 , wherein the generation of the verification token is performed, by the processor, using a public key of the second system.

14. The computer program product of claim 12 , wherein the generating of the verification token, by the processor, is based on an anonymous credential scheme.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 17, 2014
From: CAMENISCH, JAN L.; LEHMANN, ANJA; NEVEN, GREGORY
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 032712/0296 →
Priority Claims (1)
GB 1309535.1 · May 29, 2013 · national
Continuity (1)
Related Publication 20140359289A1 · Dec 4, 2014