Abstract:
A result of application of a test to information about a user (U) is securely transmitted between a source of information (A) and a destination of information (B) via an intermediary device (C). The source of information can be, for example, a database of personal data, and the destination of information (B) a server of a service provider performing services depending on an age limit. The intermediary device (C) minimizes the information that is made available to the source (A) and the destination (B) about the purpose of the test and the underlying data. To this end, the intermediary device (C) executes a secure comparison protocol with the source (A), whereby the encrypted result is additionally blinded, for example, with a blinding that comes from the user. The intermediary device (C) decrypts the blinded encrypted result, so that a blinded result is left. The destination B removes the blinding, preferably on the basis of blinding information of the user. The intermediary device (C) preferably sends the blinded comparison result to the user (U).

Description:
FIELD OF THE INVENTION 
       [0001]    The invention relates to a method for exchanging data, devices for the secure exchange of data, and a computer program for carrying out the method. 
       BACKGROUND 
       [0002]    Use of an encryption device in sending information is a known technique to prevent unauthorized parties being able to gain access to the information. Also in sending information over the Internet this is utilized. In the most simple processes this involves transmission between two apparatuses, further called A and B, with A acting as sending apparatus and B as receiving apparatus. Briefly stated, encrypting ensures that the recipient alone can read the message. It provides certainty to the sender that the message can actually be read by the recipient alone. This is done in asymmetric encryption systems by encrypting the message with the public key of the recipient. The recipient alone can decrypt the message with his private key. Encrypting hence does not provide certainty to the recipient that the message originates from the sender (anyone can encrypt with the public key of the recipient), but does provide certainty to the sender that the recipient alone can decrypt the message. 
         [0003]    Mutual certainty can be provided by applying both signing and encrypting. There are different techniques of signing (digital signature) known to counteract intrusion of such communication by unauthorized parties. 
         [0004]    (1) User certificates (signing): “The recipient verifies that the message originates from the sender”. Providing certainty to the recipient that the message actually originates from the sender. This is done by encrypting the message with the private key of the sender. Each recipient can decrypt with the public key of the sender (for instance from the latter&#39;s user certificate). Signing hence does not provide certainty to the sender that the recipient alone can decrypt the message (anyone can decrypt with the public key of the sender), but does provide certainty to the recipient that the message has been sent by the sender. 
         [0005]    (2) Browser certificates. Standard certificates in browsers are not user certificates, but server certificates. With them, the user (U) can check that the server with which he is communicating (C) is actually the server he thinks he is communicating with. These certificates do not provide certainty to the server C that the user U is who he claims to be. For that, the user can be asked to log in at server C, so that such certainty does arise. 
         [0006]    In an example of an application to webstores, a user U may, for instance, give instruction to send information from A to B in order to be able to obtain a service from B. The service concerned may depend on personal information about U, such as age, which needs to be retrieved at a trusted party A, such as, for instance, the authorities, or a sufficient bank balance, which needs to be confirmed by a trusted bank A. Technically, this means that B generates a request for information, to which A, by order of U, responds by searching in a database of A for information with an identification of U, after which the information is sent to B in a reply. Statutory regulations on the registration of such data and access thereto (Dutch WBP Act: “Personal Data Protection Act”) set limiting conditions on such a process. For instance, A needs to be entitled to keep the database, and there are limitations circumscribing at whose request and to whom which information may be provided. 
         [0007]    Jointly, the use of certification, signing and encryption can ensure that (a) privacy sensitive information can only be requested by an apparatus U (“user”) that can show a certificate proving he has the right to query the information (or demonstrates this right by logging in with a password), (b) it can be verified that the retrieved information has been delivered by an authoritative source A, (c) the recipient of the information is indeed a party B that has been designated for that purpose by U, and (d) that the information can be inspected by B and U alone. 
         [0008]    But nonetheless there is some loss of privacy. The apparatus B could, after decryption, register more information than is strictly necessary for the service rendered, which makes abuse possible. Further, in conventional implementations the apparatus A can, on the basis of apparatus B for which the information is intended, register what information for what service-provider has been retrieved for the user U, which entails the possibility of unauthorized use of this information by A (for instance, the authorities or a bank), and in any case violates the privacy of U. This problem can be mitigated by having A provide the information to U alone, and forwarding this information from U to B. But this increases the risk of manipulation of the information and the request therefor. This risk can be reduced by use of a trusted intermediary device C as a proxy for U between A and B. But in this case, too, A could infer more information from the request than is desirable. 
         [0009]    In the prior art the so called secure comparison protocol is known, with which also the information exchange between apparatuses A and B can be limited. A secure comparison protocol (also known as a solution of the “millionaires problem”) is an algorithm to compare a first and second number which are respectively known to a first and second party, without either party needing to know both numbers. For examples, see the article “Comparing encrypted data” by T. Veugen, published on http://isplab.tudelft.nl/sites/default/files/Comparing%20encrypted%20data.pdf. 
         [0010]    With the secure comparison protocol it can be ensured that the apparatus A at the source of the information and the apparatus B generating the request for the information do not get to know what their information is compared with. A and B in this case see only a part of the result of the comparison. But if A executes the protocol with B, A still learns the identity of B, and hence also learns that for U a particular kind of information for a service associated with B has been requested. U could prevent this by requesting information signed by A and forwarding it to B, but this can be done only if A knew the comparison result. If for the encryption a public key of B is used, A could find out the identity of B on the basis of this public key. Creating keys exclusively for the session leads to overhead. If a proxy C executes the secure comparison protocol on behalf of U with A, then C can get access to confidential results about U from A. Also, if C is not sufficiently trusted, U would not have any certainty that C will not of its own initiative retrieve information about U at A. 
         [0011]    It is desirable to provide for a process for sending information that satisfies the following limiting conditions: 
         [0000]    1. Between the apparatus A with the information about user U and the apparatus B for which the information is intended, an intermediary device C has to be used that prevents A from being able to register for what apparatus B the information is intended.
 
2. C may not get access to the information.
 
3. The user U must first give his permission before the reply to the question may be forwarded by C to B.
 
4. It is not necessary that U disposes of a certificate or another cryptographic key.
 
5. Preferably, it is impossible for C on its own initiative to ask A for information and obtain it.
 
6. The result of the comparison may not become known at apparatus A, but may at B and C.
 
         [0012]    It is desirable to provide for process steps with which an intermediary device C makes it possible to provide such a process for sending information that satisfies the limiting conditions mentioned. 
         [0013]    It is desirable to provide for an intermediary device C that makes it possible to provide such a process for sending information that satisfies the limiting conditions mentioned. 
         [0014]    It is desirable to provide for a user device U that makes it possible to provide such a process for sending information that satisfies the limiting conditions mentioned. 
       SUMMARY 
       [0015]    The solution according to a preferred embodiment of the invention is as follows: 
         [0000]    1. C sends the certificates of A and B to U.
 
2. U takes the public keys of A and B from the certificates.
 
2a (Optional) U checks the certificates.
 
3. U sends a same random bit b_u to A and B without C learning the bit.
 
4. A and C execute a secure comparison protocol, which results in a bit t.
 
5. A blinds t with the random bit b_u and sends the exclusive or of enciphered bit t with the random bit b_u to C.
 
6. C deciphers the bit (t xor b_u) and sends it to U.
 
7. U takes off his bit b_u and assesses whether he wishes to send the outcome t to B=RP or not.
 
8. As soon as the user U gives permission, C sends bit (t xor b_u) to B.
 
9. Because B has also received b_u, B can therefore derive the outcome t.
 
         [0016]    In step 3, for the purpose of transmission, preferably use is made of encryption with the public keys of A and B. By use of the secure comparison protocol, the bit t, in step 4, is preferably produced encrypted. 
         [0017]    Step 3 can be done as follows 
         [0000]    a. U generates a random bit b_u and a large enough random number r and computes the hash h_u=h(b_u|r).
 
b. U enciphers the numbers (b_u, r) with the public keys of A and B=RP.
 
c. U sends [b_u|r]_{AP}, [b_u|r]_{RP} and h_u to C.
 
d. C sends [b_u|r]_{AP} and h_u to A and A checks whether h_u is correct.
 
e. C sends [b_u|r]_{RP} and h_u to B and B checks whether h_u is correct. (this step can also be done later when C sends the result to B, for instance in step 8).
 
         [0018]    What has been achieved now? 
         [0019]    A and B do not learn each other&#39;s identity, but B has trust in the result because it comes from C. 
         [0020]    Each query to A is preceded by a message from the user, which makes it more difficult for C to ask arbitrary questions. In case of doubt, C may even be asked to submit [b_u|r]_{AP}, [b_u|r]_{RP} and h_u, after which A and B can confirm whether this information is right or not. 
         [0021]    The user U does not need a certificate. What he does need to be able to do is: generating random numbers, computing hash functions, exclusive or execution of 2 bits, verifying signatures (only necessary for extra security) and enciphering messages. 
         [0022]    In an embodiment, (b_u, r, sessiontoken) instead of (b_u, r) can be used to ensure that the outcomes correspond to the right sessions. 
         [0023]    The use of hash functions is known, but applying a hash function to solve the above problem is not obvious. The reason is that the bit (t xor b_u) which is to be communicated from A=AP to user has first been conceptually inverted by having the user generate a bit and sending that to the A=AP and then using the hash function to enforce that B=RP receives the same bit. 
         [0024]    The computer program may be stored on a tangible carrier, such as a DVD, but may also be retrievable via Internet. 
         [0025]    A system for implementing the invention comprises several devices, where each device may comprise a processor, a memory and an input-output unit. The processor can be a general (micro)processor. Also, a unit can comprise a special cryptographic processor. The memory may be configured for storing processor instructions for carrying out the steps of the method according to the invention. Further, the memory of a device may be configured for storing data and cryptographic keys, possibly a separate memory (protected or otherwise) is provided for this. 
         [0026]    In the above, reference has been made to the transfer of 1 bit. The outcome of the comparison protocol, which is by definition a bit, is made up of a bit (P) at the A and a bit (Q) at C, such that the outcome t equals P xor Q. In some embodiments, that outcome is the difference of two large numbers x_A and x_C, such that the outcome is equal to the number x_A−x_C, for instance. In other words, also numbers greater than one bit can be transferred according to the present invention. 
         [0027]    It will therefore be clear to those skilled in the art that the invention is not limited to the embodiments described and that many supplements and modifications are possible without departing from the ambit of the invention. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0028]    These and other aspects will be apparent from a description of embodiments with reference to the following figures. 
           [0029]      FIG. 1  shows a system for protected exchange of data 
           [0030]      FIG. 2  shows a signal diagram for secure testing of information 
           [0031]      FIG. 2   a  shows a signal diagram for secret transmission of a bit 
           [0032]      FIG. 3  shows a signal diagram for secure testing of information 
       
    
    
     DETAILED DESCRIPTION OF EXEMPLARY EMBODIMENTS 
       [0033]      FIG. 1  shows a system for protected exchange of data, with multiple information provider devices A, multiple information receiver devices B, an intermediary service provider device C and a user device U. Intermediary service provider device C is linked to information provider devices A, information receiver devices B, and user device U. Although symbolically direct connections are shown, the connections can also be established via one or more networks such as the Internet. 
         [0034]    Each device can comprise a processor, a memory, and an input-output unit (not shown). The processor can be a general (micro) processor. In addition, a unit can comprise a special cryptographic processor. The memory may be configured for storing processor instructions for carrying out the steps of the method according to the invention. Further, the memory of a device may be configured for storing data and cryptographic keys, possibly a separate memory (protected or otherwise) is provided for that. 
         [0035]    Each information provider device A may be provided with a database with data including data about the user. Each information provider device A may be provided with a storage apparatus for storage of its database, or have access to such database, for instance via a network. The processor of the information provider device A and/or the special cryptographic processor are configured so as, on the basis of a request, to read out information about the user from the database and to execute a secure comparison protocol in communication with intermediary service provider device C in which this information is used. 
         [0036]    Each information receiver device B may be configured to perform a task on condition of receipt of a predetermined reply to a request for information about the user U from an information provider device A. 
         [0037]    Intermediary service provider device C is configured to be able to execute the secure comparison protocol in communication with each of the information provider devices A. 
         [0038]    In operation, the system is used for sending a message to device B with the reply to a request for information about U on the basis of information which is stored in a database of device A. Device B can send a message with the request, after which U and/or C preferably generate a further request based on the request from B, but made specific with a key for selection of information about U from the database of C. Devices A and C execute a secure comparison protocol to reply to the further request on the basis of information from the database of A, and using an encryption scheme of which C has the private decryption key. C decrypts the reply of the secure comparison protocol and sends it with help from U to B. U here generates information for blinding the reply. Device A performs the blinding before sending the reply of the secure comparison protocol to C, utilizing the homomorphic property of the encryption scheme of the secure comparison protocol, which makes it possible to compute the encryption of blinded information from the encryption of the information without decryption of the information. 
         [0039]      FIG. 2  shows a signal diagram of an embodiment of secure testing of information. 
         [0000]    1. C sends the certificates of A and B to the user U (message  20 ).
 
2. The user U takes out the public keys of A and B and checks them (action  20   a ) (this check is optional, C is already a trusted party).
 
3. User is forced to send a same random bit b_u to A and B without C learning the bit (messages  21   a, b ). An embodiment of this will be described with reference to  FIG. 2   a.  
 
4. A and C execute the secure comparison protocol (exchange  22 ). At the end of that protocol A has the QR-enciphered outcome bit [t] (and C the decryption key).
 
5. A ‘blinds’ t with the random bit b_u (action  22   a ) and sends [t xor b_u] to C (message  23 ).
 
6. C deciphers the bit (t xor b_u) (action  23   a ) and sends it to the user U (message  24 ).
 
7. The user takes off his bit b_u and assesses whether or not he wishes to send the outcome t to B=RP (action  24   a ).
 
8. As soon as the user gives permission, C sends the bit (t xor b_u) to the B=RP (action  26  possibly together with a step of 3).
 
9. The B=RP knows b_u so can simply derive the outcome t (action  26   a ).
 
         [0040]    For step 4 use can be made of a secure comparison protocol known per se, as described, for instance, in the article “Comparing encrypted data” by T. Veugen. In such a secure comparison protocol, use is made of an encryption scheme with a public and private encryption key, the encryption scheme having a homomorphic property. That is, an algorithm exists which, from two encrypted numbers, computes directly, without decryption, an encrypted version of the sum (or a product) of the numbers, for example, by multiplication of the encrypted numbers. The Veugen article gives examples of this: Paillier, DGK (Damgård, Geisler, Krøigaard) and QR (Quadratic Residues), this last involving enciphering of bits with quadratic residues. 
         [0041]    In the secure comparison, C has a reference number (e.g., limit for a date of birth) and the private key of the encryption scheme (and possibly also the public encryption key). A has the public encryption key of the encryption scheme, a random number and a confidential number (based on the database, e.g., date of birth) with which the reference number is to be compared. The random number is here known to A but not to C. Use is made here of the fact that A can provide information to C about the sum of the random number and the confidential number without revealing the confidential number to C. 
         [0042]    C can carry out computations with this sum in the non-encrypted domain, encrypt a result of those computations with the public encryption key and send it to A. A can thereupon use the homomorphic property to compute without decryption an encryption of a sum or difference of this result and the random number or a number derived from the random number. A in turn can send this encryption of the sum/difference back to C again, to derive therefrom a partial result of the secure comparison by means of decryption with the private encryption key. 
         [0043]    An important point is that the blinding of the above step 5 can be incorporated directly into such a protocol by placing at A&#39;s disposal the bit b_u of user U, or an encryption thereof with the public key of the secure comparison protocol. When A uses the homomorphic property to compute without decryption an encryption of the comparison result, A can further, without decryption, add an addition of the random bit b_u of user U to it. The result is that C, even after decryption with the private key of the secure comparison protocol, does not dispose of the result because C does not dispose of the random bit b_u. Although an example has been given of blinding of a 1-bit result with a bit b_u, it will be clear that blinding of multi-bit results with multi-bit data of U is possible. 
         [0044]    Although the chosen embodiment of the secure comparison protocol is not relevant for this, by way of example two embodiments will be described. 
         [0045]    The idea behind a first embodiment of the secure comparison protocol is that if the reference number and the confidential number are L bit numbers, the most significant bit of a sum of an offset and the difference between these numbers can be used to determine which number is greater. The offset is equal to the L-th power of 2, and is used to keep the sum positive. In the first embodiment A takes care that C disposes of the difference plus the random number plus the offset. A and C compute an encrypted remainder bit, which indicates whether upon division by the offset the remainder of the difference plus the random number is smaller than the remainder of the random number upon division by the offset. C computes from the difference plus the random number plus the offset the L+1st bit Z from the least significant bit, encrypts Z with the public key and sends the encrypted bit to A. A encrypts the L+1st bit R from the least significant bit in the random number and uses the homomorphic property to compute the encrypted sum of Z, R and the encrypted remainder bit. This sum contains an exclusive or bit of Z and R and a carry bit. A sends this encrypted sum to B which after decryption disposes of the exclusive or of Z and R and the remainder bit, which constitutes the result of the secure comparison protocol. 
         [0046]    The idea behind a second embodiment is that the comparison between the reference number and the confidential number can be carried out by comparing first and second numbers with M bits from the least significant bit of the reference number and the confidential number, respectively, and repeating this recursively for first and second numbers with increasingly greater M. The first number with M bits is greater and smaller, respectively, than the second number with M bits, if the most significant bit of the first number is greater and smaller, respectively, than the most significant bit of the second number, or (given equality) when the first number with M−1 bits is greater and smaller, respectively, than the second number with M−1 bits. In the second embodiment A computes for successive values of M, utilizing the homomorphic property, an encrypted comparison result for M from an encrypted comparison result for M−1 and M-th bits of the numbers. 
         [0047]      FIG. 2   a  shows a signal diagram of an embodiment of the sending of a bit to AP and RP without C learning the bit (step 3 hereinabove). 
         [0000]    a. The user U generates a random bit b_u and a large enough random number r and computes the hash h_u=h(b_u|r) (action  201 ).
 
b. The user U enciphers the numbers (b_u, r) with the public keys of A=AP and B=RP (action  202 ).
 
c. The user U sends [b_u|r]_{A}, [b_u|r]_{B} and h_u to C (message  203 ).
 
d. C sends [b_u|r]_{A} and h_u to A (message  204 ) and A checks whether h_u is correct (action  204   a ).
 
e. C sends [b_u|r]_{B} and h_u to B (message  205 ) and B checks whether h_u is correct (action  205   a ) (this step can also be done later, as part of action  26  in step 8) when C sends the result to B).
 
         [0048]    With this, the following has been achieved: 
         [0049]    A and B do not get to know each other&#39;s identity, but B has trust in the result because it comes from C. 
         [0050]    The querying of A is preceded by a message from the user U, which renders it more difficult for C to ask arbitrary questions. In case of doubt, C may even be asked to submit [b_u|r]_{A}, [b_u|r]_{B} and h_u, after which A and B can confirm whether this information is right or not. 
         [0051]    The user U does not need a certificate. What he does need to be capable of is: 
         [0052]    generating random numbers, computing hash functions, exclusive or execution of 2 bits, verifying signatures (only necessary for extra security) and enciphering messages. 
         [0053]    In an embodiment, also a session token may be added. Possibly, (b_u, r, sessiontoken) instead of (b_u, r) could be used to ensure that the outcomes correspond to the right sessions. 
         [0054]    The bit t that is to be communicated from A to user U is first conceptually inverted by having the user generate a bit b_u and sending that to A and then using the hash function to enforce that B receives the same bit. The use of hash functions is known per se, but applying a hash function to solve the above problem is not known. 
         [0055]    The bit b_u in fact provides, in combination with the exor operation (exclusive or), for a simple form of encryption of the information (the bit t) that A releases. 
         [0056]    An embodiment of the operation of the system will be described on the basis of Boolean verification, username/password (invariable attribute). 
         [0057]      FIG. 3  shows a signal diagram for secure testing of information for Boolean verification. An information provider device A will herein also be designated as Attribute Provider (AP), as an example an embodiment will be discussed in which the Attribute Provider (AP) disposes of the GBA (Gemeentelijke Basisadministratie: “Municipal Personal Records Database”, a data collection of the authorities). An information receiver device B will also be designated as Relying Party (RP). The intermediary service provider device C will also be designated as Secure Identity Broker. User device U will also be designated as user, or Claimant. Further, the following abbreviations are used: 
         [0000]    Public Key C=pub_tb
 
Private Key C=pri_tb (always remains in the hands of C)
 
Public Key AP=pub_ap
 
Private Key AP=pri_ap (always remains in the hands of the AP)
 
Public Key RP=pub_rp
 
Private Key RP=pri_rp (always remains in the hands of the RP)
 
eID Claimant Username=eid_usn
 
eID Claimant Password=eid_pwd
 
Source=collection of APs from which the RP accepts attributes
 
Existence=age of an attribute which the RP still accepts
 
         [0058]    An example of a starting point of the example of  FIG. 3  is that the Claimant with http visits a website of the RP (message exchange  30 ) and, for instance, wishes to buy an age-restricted article, wishes to use an age-restricted service or wishes to view age-restricted content. In this case: the claimant U is seeking access only to free content over age 16. 
         [0059]    The RP (B) sends to the claimant a redirect (message  31 ) to a separate https screen, in which he is informed that an age check is required and login at C is to take place. A request to be replied to is sent along, which upon login is forwarded to C: signed and encrypted ((Request(Sessiontoken, ‘Age’, ‘≧’, Norm Nx))pub_tb)pri_rp with Nx=16 years. Here, ‘Age’ is an element of the request that denotes the type of attribute the request is about, ‘≧’ is an element of the request that denotes the kind of comparison, and Norm Nx (where Nx is, e.g., 16) is an element of the request that denotes a value with respect to which the comparison is to be made. “pub_C” and “pri_RP” denote that the request is encrypted with the public key of C and is signed with the private key of the RP. Thus, C can verify with pub_RP that the request does in fact originate from the RP and decrypt with the private key of C. 
         [0060]    The claimant U logs in at C (message  32 ) with his username eid_usn and the password eid_pwd. Of each user, C has stored the username eid_usn and the hash of the password eid_pwd of each user. The password that the claimant has entered is hashed and compared with the stored hashed password. Further, of each user, C has multiple encrypted keys to APs with which the claimant has a relation. In the context of a database system a key is an information item that gives access to personal data. Examples: 
         [0061]    The BSN (Burger service nummer: “Citizen&#39;s Service Number”, a number that is associated with an individual person by government computers) is a key, for with the BSN the personal data of an individual can be queried in the GBA (Gemeentelijke Basisadministratie: “Municipal Personal Records Database”, databases which are kept by municipalities); 
         [0062]    Bank account numbers are keys, for with these account numbers personal data of an individual can be queried at the banks concerned; 
         [0063]    The Driving license number is a key, for with this number personal data of an individual can be queried at the RDW (Rijksdienst voor het wegverkeer: “Government Road Transport Agency”, a public body which keeps a database of vehicle data); 
         [0064]    Student numbers are keys, for with this number personal data of an individual can be queried at educational institutes. 
         [0065]    A key itself is also a personal datum, for it provides—with some effort—access to personal data of the individual to whom the key relates (WBP: Wet Bescherming Persoonsgegevens: “Personal Data Protection Act”). 
         [0066]    Of each user, C has multiple encrypted keys to APs with which the claimant has a relation. 
         [0067]    encrypted (BSN)pub_ap1 for queries at GBA 
         [0068]    encrypted (Bank account number)pub_ap2 for queries at banks 
         [0069]    encrypted (Driving license number)pub_ap3 for queries at the RDW 
         [0070]    encrypted (Student number)pub_ap4 for queries at DUO (Dienst Uitvoering Onderwijs: “Education Implementation Agency”) 
         [0071]    encrypted (BSN)pub_ap5 for queries at BKR (Bureau Krediet-Registratie: “Central Credit Registration Bureau”) 
         [0072]    etc. 
         [0000]    The respective AP alone can decipher these encrypted keys. 
         [0073]    After log-in of the claimant with eid_usn and eid_pwd, the claimant is known at C. C verifies that the signed request ((Request(Sessiontoken, ‘Age’, ‘≧’, Norm Nx))pub_tb)pri_rp does in fact come from the RP with pub_rp. Thereupon C decrypts the remaining encrypted request (Request(Sessiontoken, ‘Age’, ‘≧’, Norm Nx))pub_tb with pri_tb (action  32   a ). 
         [0074]    C proceeds to show (message  33 ) to the Claimant the relations which: 
         [0000]    1. are known at C (here: GBA, Bank, RDW, DUO and BKR)
 
2. could provide the requested attribute ‘Age’
 
3. satisfy [Source]
 
The Claimant chooses the AP he wants, for example the GBA, and through this choice gives permission to query the ‘Date of birth’ to the chosen AP (message  34 ). C then sends the request signed and encrypted to the GBA (message  35 ): ((Request((BSN)pub_ap1, ‘Date of birth’))pub_ap1)pri_tb. In it, the element (BSN)pub_ap1 of the request is the key encrypted with the public key of the AP, the element (‘Date of birth’) of the request denotes the type of registered data that the request is about. “pub_ap1” and “pri_tb” indicate that the request is encrypted with the public key of the AP and signed with the private key of C, so that the AP can verify with pub_tb that the request comes from C and can decipher the request with the pri_ap1.
 
         [0075]    So, upon instruction of the claimant, C is here querying the GBA, without knowing or receiving personal data. In this case, [Existent] is not relevant, because the date of birth is queried real-time, and cannot age. The GBA receives the ((Request((BSN)pub_ap1, ‘Date of birth’))pub_ap1)pri_tb. The GBA processes this request in action  35   a . With pub_tb the GBA verifies that the request comes from C. By thereupon first deciphering the request with the pri_ap1 and then deciphering the BSN with pri_ap1, the GBA now knows of which registree data are to be retrieved. In an embodiment the computer (A) of the GBA is configured to check whether the request is a permitted request, and to carry out the next steps only if this is so. 
         [0076]    With the aid of this BSN the record of the registree is retrieved (this is still in action  35   a ). Based on the request from C, the date of birth is filtered from this record, for instance in the string form ‘01-04-1995’. This date is a personal datum and is not provided to third parties in this form. The GBA date is transformed into a difference, by subtracting the GBA date from the current date. This transformation reduces the number to be compared, which saves computing time. Naive algorithm in this case: 20121009−19950401=170,608. The minimum number is 0 and the maximum number is 21001231−19000101=2,001,130. This number can be represented with 21 bits and is encrypted in conformity with the principle of ‘Comparing Encrypted Data’ [Thijs Veugen] and leads to 21 numbers of 1024 bits. From this, the real date of birth cannot be reconstructed anymore. This number X is sent, signed, to C: (X)pri_ap1 (message  36 ). It is not a personal datum and may be provided to C by the GBA. With logic operations, the AP also derives a bit P from the number X. 
         [0077]    C receives from the GBA the signed number (X)pri_ap1 and verifies that this number originates from the GBA with pub_ap1 (action  36   a ). To compare the number X (which represents the simplified date of birth of the claimant) with the norm Nx, C converts the norm Nx (in this case 16) to the date preceding today&#39;s date by 16 years, for instance ‘01-10-1996’, and simplifies this number in the same manner as the GBA did: 20121009−19961001=160,008. This number Y is also encrypted into 12 numbers of 1024 bits. On the basis of the Quadratic Residues principle the numbers X and Y are compared, whereby numbers are regularly sent back and forth between the AP and C (message exchange  37 ). On each of these, logic operations are performed by GBA and C. This eventually yields to C 1 bit Q. 
         [0078]    Through the logic operation P XOR Q it can be determined whether the Claimant satisfies the norm Nx. C has bit Q and the AP has bit P. The logic operation has to be performed by the Claimant, for C does not want to know the outcome of the comparison, since the outcome is a personal datum. 
         [0079]    The Claimant receives from C bit Q, signed with pri_tb (message  38   a ): (Q)pri_tb. 
         [0000]    The Claimant receives from the AP bit P, signed with pri_ap1 (message  38   b ): (P)pri_ap1. In the browser of the Claimant JavaScript code is executed which executes P XOR Q (action  38   c ).
 
Result=0: Claimant satisfies Norm Nx (claimant is age 17: 01-04-1995 and 01-10-1996)
 
Result=1: the claimant does not satisfy Norm Nx
 
The JavaScript code gives the reply ‘You satisfy the norm of age 16 or older.’ “Do you want to forward this result to RP?” The Claimant then gives permission to supply the bits P and Q (message  39 ).
 
Java/JavaScript is an example of executable code which is executed in the browser of the Claimant. The results are not visible to others.
 
         [0080]    The RP has two bits coming in: 
         [0000]    bit P: preferably supplied by C (message  39   a ), but originally determined by the AP.
 
bit Q: computed by C.
 
The https session is ended.
 
After a logic operation P XOR Q it appears (action  39   b ) that:
 
Bit=0: the (anonymous) claimant is ≧Norm Nx
 
Bit=1: the (anonymous) claimant is &lt;Norm Nx
 
The RP now knows whether the claimant is older than the Norm Nx or not. In this case: The claimant gets access via the http session to the requested content without revealing his identity or his exact date of birth.
 
       General Principle 
       [0081]    APs 
         [0082]    verify that the signed request can originate only from intermediary service provider device C (with pub_tb) 
         [0083]    cannot find out what the provided numbers are used for 
         [0084]    know for certain that the provided numbers are not traceable to any individual 
         [0085]    trust that intermediary service provider device C submits queries only after permission of a claimant. They can not check this directly, but can afterwards. 
         [0086]    Intermediary Service Provider Device C 
         [0087]    verifies that the signed Request originates from the RP (with pub_rpx) 
         [0088]    verifies that the signed number X originates from the AP (with pub_apx) 
         [0089]    verifies that the signed bit Q originates from the AP (with pub_apx) 
         [0090]    has stored only hashes of passwords of claimants. In case of intrusion, these are worthless. 
         [0091]    trusts the APs. These are parties having a reliable (basic) record registration 
         [0092]    trusts the RPs. They have a contract.
       trusts the claimants. They can only log in with a reliable eID       
 
         [0094]    RPs 
         [0095]    know for certain that C alone can open the encrypted Request (with pri_tb) 
         [0096]    trust that C gives a reply that is based on information from reliable APs satisfying [Source] and [Existence] 
         [0097]    cannot find out which AP has provided the requested attribute (with APs&gt;1) 
         [0098]    trust that C only replies substantively after permission of the claimant. 
         [0099]    Claimants 
         [0100]    trust that C submits queries exclusively after permission of the claimant. 
         [0101]    The system can be applied to a number of uses (cases): 
         [0000]    Case 1 (already described). Boolean verification, username/password (invariable attribute)
 
Case 2. Boolean verification, [IRMA]smartcard (invariable attribute)
 
Case 3. Boolean verification, username/password (variable attribute)
 
Case 4. Boolean verification, [IRMA]smartcard (variable attribute)
 
Case 5. Text verification, username/password
 
Case 6. Text verification, [IRMA]smartcard
 
       Assumption 
       [0102]    In the central cases 1, 3 and 5 the assumption is that the claimant disposes of an eID (username/password) and that the relations that the claimant has with the APs are known at C. These relations can be established by laying down with each eID a set of encrypted keys. If with each eID the intermediary service provider device C lays down keys (BSN, Bank account numbers, Driving license numbers, Student numbers, etc.) which are encrypted with the public keys of the APs that utilize these keys, then these encrypted keys cannot be reduced to the ‘real’ key by intermediary service provider device C anymore. The APs alone can do that, by means of their private keys. 
         [0103]    C hence cannot reduce the encrypted keys to any individual either. Consequently, the encrypted keys cannot be regarded anymore as personal data (WBP). The set of encrypted keys does indicate that the individual is (probably) known at the AP whose encrypted key has been laid down, but this is not to be regarded as a personal datum either (WBP). 
         [0104]    The data that the several APs could provide are publicly known (example: in the GBA the date of birth is laid down) and are never within the scope of the WBP. 
       Starting Points of the Service 
       [0105]    Listed below are the provisional starting points of the interested parties, with the interests [Privacy], [Business enablement], [Business case], [Earning model], [Competition] and [Trust]. 
       Starting Points for C: 
       [0106]    Is broker of information which originates from third parties and is provided to third parties [Business Enablement] 
         [0107]    Does not store data [Privacy] and [Trust] 
         [0108]    Can automatedly effect the translation between supplied attribute and attribute to be delivered (for example, 29-08-1968 is translated into ‘older than age 18’) [Privacy] 
         [0109]    May possibly act as information provider itself as well [Competition] 
         [0110]    Invests in connecting up providers and buyers of information and maintains this infrastructure [Business Enablement] 
         [0111]    Does not make a distinction among information providers or information buyers; accepts them and uses the same rates [Competition] 
         [0112]    Receives for each query a (small) amount for the use of the broker function [Earning model], comparable to payments by switch card (PIN payments) 
         [0113]    Pays for each query the amount that the information provider asks for his information supply [Business case] 
       Starting Points for the Information Providers: 
       [0114]    Supply attributes or identities verified by them to third parties for verification purposes [Business Enablement and Trust] 
         [0115]    Supply exclusively this information and also do so exclusively upon request of the user [Privacy] 
         [0116]    Never learn for what purpose this information is being supplied [Privacy] 
         [0117]    Receive for each query a (small) amount from C, for providing the information [Earning model], and themselves determine the amount in exchange for which they are prepared to provide the information [Competition] 
       Starting Points for the Information Buyers: 
       [0118]    Verified information comes from (government) parties which themselves have supplied this information (passport, driving license, GBA), or from (market) parties which themselves have verified this information (banks, telcos, DUO, SVB [Sociale Verzekeringsbank: Dutch organization that implements national insurance schemes], pension funds) with the aid of the first-mentioned means [Trust]. 
         [0119]    The verified information concerns only the minimal information that is necessary for the performance of a legal task (for example, ‘older than 18’ for purchase of age-restricted articles, so not the date of birth) or that is necessary for business operation (for example, name/address/city (“NAW”) for a delivery service) [Privacy]. 
         [0120]    (Possibly) determines himself which information providers are accepted for his purpose [Trust] 
         [0121]    Can use the provided information to demonstrate legal compliance to supervisors (for example, a delivery, accompanied by an attribute) [Trust] 
         [0122]    Pays a (small) amount for each query [Business case] to C, by analogy with switch card (PIN) payments via Currence. 
       Starting Points for the User: 
       [0123]    The threshold for the user to employ the verification facility should be as low as possible [Business Enablement]. If possible: 
         [0124]    Reuse (usable side by side) of existing log-in mechanisms 
         [0125]    As few log-in events, PIN codes, tokens, smart cards, extra clicks, etc., as possible 
         [0126]    No extra issuing body for smart cards, codes, etc. 
         [0127]    No client software 
         [0128]    Chooses himself which information provider can provide the requested information (banks, authorities, telcos, etc.) [Privacy and Competition] 
         [0129]    Does not pay, or does not pay directly, for the supply of the information [Business Enablement] 
       Design Starting Points Per Interface 
       [0130]    The principle is based on the Extended Backbone Model (TILT study). Four roles are distinguished: 
         [0000]    1. C, the spider in the web
 
2. Information providers
 
3. Information buyers
 
       4. Users 
       [0131]    In the model the principles of a decentralized model (IRMA) are combined with a central model. The user can choose between: 
         [0132]    an eID in the form of a smartcard/card reader protected with a PIN code or, for example, a biometric authentication (fingerprint) 
         [0133]    an eID in a form without hardware, such as a username/password, possibly combined with a second channel (such as SMS) 
       Decentralized Model: 
       [0134]    The attributes of the user are stored on a smartcard. C serves solely as an intermediary of encrypted data between the information providers and the user and between the user and the information buyers. The encryption of data is done with a public key. The private key is on the smartcard of the user. C is the deal maker and provides the interfaces with the other three roles. The emphasis is on protection of privacy. 
       Central Model: 
       [0135]    The attributes of the user remain stored at the information providers. Users can log in at C. On behalf of the user, C queries attributes at the information providers. After permission of the user, C supplies the attributes to the information buyers. The encryption of data is done with a public key. The information buyer can unlock the encrypted data with a key which is, for instance, derived from a PIN code which the user provides when he agrees to the information provider. In addition to being a deal maker, C is also an active party. The emphasis is on user convenience. 
         [0136]    For the information buyers it makes no difference whether a user prefers or uses the decentralized model or the central model. They have only one standard interface with C. 
         [0137]    For the information providers it makes no difference either whether the attributes are provided encrypted to C or encrypted to the user. They, too, have only one standard interface with C. 
         [0138]    For C it does make a difference which principle the user wishes to apply; handling differs. On the other hand, the invoicing to the information buyers (transaction) and the compensation to the information providers (transaction) remain the same. 
       Design Principles for C: 
       [0139]    C is both Certificate/Credentials Service Provider (CSP) (towards all three other roles) and the Authentication Service Provider (ASP) (towards the users) 
         [0140]    C functions as a Federated Identity Provider for the benefit of many possible Relying Parties 
         [0141]    C issues eIDs to users who want an account. An account is always issued on the basis of a verified source. Possibilities: 
         [0142]    Sending eID to a GBA address (own issue accounts) 
         [0143]    Collecting eID with a paper ID (passport, ID card or driving license) 
         [0144]    Reuse of existing eID (Internet banking, MyXXX telco accounts) In this case, also other parties are ASPs that are trusted for C 
         [0145]    The form of the eID is not fixed yet 
         [0146]    C is not aware of what information is exchanged (computing on encrypted data) 
         [0147]    C guarantees to the information buyers that the attributes: 
         [0148]    come from the APs which the information buyer accepts (S) 
         [0149]    are sufficiently current for the AP (A) 
         [0000]    Both parameters are contractually laid down between RPs en C 
         [0150]    To be solved or to be accepted: 
         [0151]    Security by centralized account storage and SPOF 
         [0152]    Linkability by C through finding out the user after authenticating 
         [0153]    C knows who has interacted with whom (pp. 31-32). 
       Design Principles for the Information Providers: 
       [0154]    Information providers are Attribute Providers (APs) 
         [0155]    The APs receive from C a request to provide a specified attribute of a registree. This concerns a ‘bare’ attribute, from which it cannot be derived for what purpose the query is made. 
         [0000]    Example: the date of birth. 
       Question: Request(Identifier, Attribute) 
     Answer: Response (Identifier, Attribute, [S], [A]) 
       [0156]    The manner in which the AP knows for what registree an attribute is to be provided (Identifier) is yet to be established. 
         [0157]    Upon request, the AP additionally provides information [Source] as to who the provider is (for example ‘GBA’) and what the currency of the attribute is [Existent] in the form of a date/time stamp. 
       Design Principles for the Information Buyers: 
       [0158]    Information buyers are the Relying Parties (RPs) 
         [0159]    The RP has to know for sure that the reply to a request comes from an AP that he trusts [Source] and is sufficiently current [Existent]. The RP specifies this contractually with C. 
         [0160]    The RP has to know for sure that the reply to a request relates to the Claimant with whom he wants to carry out a ‘transaction’ 
         [0161]    The RPs can send C different types of requests: 
       Boolean Attribute Verification Against a Norm Nx: 
       [0162]    Question: Request(Identifier, Type, Operator, Norm Nx) 
         [0000]    Answer: Response (Identifier, yes/no)
 
Thus, an RP can ask questions of age: ≧Na, ≧Nb, &lt;Nc, with a=16, b=18 and c=65
 
or, for example, a creditworthiness question ≧Nd with d=         4,000.
 
       Text Attribute Verification 
       [0163]    Question: Request(Identifier, attribute, Mx) 
         [0000]    Answer: Response(Identifier, attribute)
 
Thus an RP can query attributes that are sufficient for his business operation, such as ‘Name’ (identity) Ma, ‘Date of Birth’ (identity) Mb, Address (identity) Mc, etc.
 
         [0164]    The manner in which the RP knows for what registree an attribute is to be retrieved (Identifier) is yet to be determined. 
         [0165]    Between the RPs and C it is contractually laid down beforehand that: 
         [0166]    Responses have been checked against the fixed norm Mx or Nx. 
         [0000]    What is thus prevented is that the RP, by repeated querying of Boolean attributes, can find out the precise value of the attribute (e.g., age or creditworthiness). 
         [0167]    Responses relate only to attributes that the RP is allowed to query. Never is anything more supplied to the RP than is minimally needed. 
         [0168]    Responses come from an AP that is acceptable to the RP [Source]. (For instance, the GBA and banks, but not telcos and Facebook) 
         [0169]    Responses have the acceptable currency per attribute [Existent] 
         [0170]    C guarantees the RP that the above four conditions have been met, without revealing the actual sources or date/time stamps. 
         [0171]    The Type (what attributes can be queried) is yet to be determined. 
         [0172]    The RP gets a response that has been encrypted by the AP with a public key. 
         [0173]    The response can be unlocked with the private key of the user. The private key can be provided: 
         [0174]    by C after permission of the user (‘central variant’) as with PIN 
         [0175]    by the user himself (‘decentralized variant’). 
       Starting Points for the User: 
       [0176]    The user is the Claimant. 
         [0177]    The user disposes of an eID that has been issued by C 
         [0178]    In both the decentralized and the central model logging in at C is necessary, to enable the dealmaking between the parties. 
       Case: Course of a Transaction Involving an Online Purchase 
     Purchase Process Up Until the Age Check 
       [0179]    The user goes to www.gall.nl 
         [0180]    The user puts a bottle of whisky in his basket 
         [0181]    The user wants to pay (step 1) 
       The Age Check 
       [0182]    Gall gives a pop-up for age check and asks the user to log in at C. 
         [0183]    The user logs in at C with his eID 
         [0184]    The user-C session has to be related to the user-Gall session 
         [0185]    Decentralized Model: 
         [0000]    The user provides the requested attribute of his smartcard via C to the RP. C checks whether the (encrypted) attribute satisfies the four conditions contractually agreed upon with the RP. 
         [0186]    Central Model: 
         [0000]    From C, the user gets to see the parties that are acceptable to the RP, and where the user is registered (cf. IDeal).
 
The user gives once-only permission to C to query the attribute at AP on his behalf. C queries the attribute at the AP and checks whether the four conditions are satisfied.
 
C asks the user for permission to provide the attribute to the RP.
 
         [0187]    C provides the attribute, encrypted, to the RP 
         [0188]    Decentralized model: 
         [0000]    The user takes his private key from the smartcard and provides it via C to the RP, so that the record can be unlocked by the RP. 
         [0189]    Central Model: 
         [0190]    The user provides his private key in the form of a PIN code or, for instance, an SMS code to be keyed in, via C to the RP.