[0001] The present invention relates to a mediated cryptographic method and system.
[0002] The RSA public key cryptographic method is well known and in its basic form is a two-party method in which a first party generates a public/private key pair and a second party uses the first party's public key to encrypt messages for sending to the first party, the latter then using its private key to decrypt the messages. More particularly, and with reference to
[0003] Initial Set Up Phase
[0004] 1. B chooses distinct random primes p and q.
[0005] 2. B computes n=(p).(q) and φ=(p−1).(q−1).
[0006] 3. B selects an encryption exponent e such that e and φ have no common factors.
[0007] 4. B computes a decryption exponent d=1/e mod φ.
[0008] 5. B publishes both e and n as its public key and keeps d secret as its private key (p, q and φ are either destroyed or also kept secret)
[0009] Message Transfer Phase
[0010] 6. A generates a message m.
[0011] 7. A computes m
[0012] 8. B computes (m
[0013] The set up phase is carried out once whilst the message transfer phase is carried out for each message to be sent from A to B. In practice, the set up phase may be carried out on behalf of B by a certificate authority that provides a trustable certificate associating B to its public key <e,n> and communicates d securely to B; the value of e is fixed for any particular domain.
[0014] It is often required to provide for control of message sending from A to B using a particular key pair. For example, A and B may initially be members of the same organisation with A sending messages to B using a public key for B that was certified or otherwise vouched for by the organisation as being associated with B; however, should B leave the organisation, it is desirable that the validity of B's public key be immediately revoked. One way of doing this is by the use of a revocation list that A must check each time it wants to send a message. A more reliable method is to use a mediated RSA method in which the decryption exponent d is split into two components, one held by B and the other held by a security mediator; in this case, both decryption exponent components must be applied to an encrypted message to decrypt it. This means that the security mediator must be contacted by B each time B wishes to decrypt a new encrypted message from A; the security mediator thus has control over which messages B decrypts and can therefore implement any desired control policy including, in the present example, preventing B decrypting messages after B has left the organisation.
[0015] However, it will generally be undesirable for the security mediator to have the ability to fully decrypt messages sent to B which implies that the security mediator must not have knowledge of B's decryption exponent component (or the data needed to compute it). Therefore, the security mediator must be separate from the entity generating the two decryption exponent components; since this latter entity clearly cannot be B (as B would then not need to go to the security mediator to decrypt a message), a separate key generation entity is needed with the result that most mediated RSA methods are four-party methods.
[0016]
[0017] Initial Set Up Phase
[0018] For each B, the KGC carries out steps 1 to 8
[0019] 1. KGC chooses distinct random primes p and q.
[0020] 2. KGC computes n
[0021] 3. KGC selects an encryption exponent e (the same for all Bs) such that e and φ
[0022] 4. KGC computes a decryption exponent d=1/e mod φ
[0023] 5. KGC chooses d
[0024] 6. KGC computes d
[0025] 7. KGC securely communicates d
[0026] 8. KGC publishes both e and n as the public key for B.
[0027] Message Transfer Phase
[0028] 9. A generates a message m.
[0029] 10. A computes m
[0030] 11. SEM computes x=(m
[0031] 12. B receives x which is equivalent to (m
[0032] 13. B computes x
[0033] B's decryption exponent component d
[0034] An inherent positive feature of the
[0035] A recently proposed variant of the mediated RSA method provides an identifier-based cryptographic method; this variant is described in the paper “Identity based encryption using mediated RSA”, D. Boneh, X. Ding and G. Tsudik, 3rd Workshop on Information Security Application, Jeju Island, Korea, August, 2002.
[0036] Identifier-Based Encryption (IBE) is an emerging cryptographic schema in which the encryption key used to encrypt a message is based on a sender-chosen string and public data, the corresponding decryption key being computed, potentially subsequent to message encryption, using the sender-chosen string and private data associated with the public data. Frequently, the sender-chosen string is a predetermined string that serves to “identify” the intended message recipient and this has given rise to the use of the label “identifier-based” or “identity-based” generally for these cryptographic methods. However, depending on the application to which such a cryptographic method is put, the sender-chosen string may serve a different purpose to that of identifying the intended recipient and, indeed, may be an arbitrary string having no other purpose than to form the basis of the encryption key. Accordingly, the use of the term “identifier-based” herein in relation to cryptographic methods and systems is to be understood simply as implying that the encryption key is based on a sender-chosen, cryptographically unconstrained, string whether or not the string serves to identify the intended recipient, and that the corresponding decryption key can be subsequently computed (though in certain applications it may be pre-computed). Furthermore, as used herein the term “string” is simply intended to imply an ordered series of bits regardless of their source.
[0037] In the identifier-based mediated RSA method described in the above-referenced paper, each potential recipient B has an associated predetermined identifier string ID
[0038] Initial Set Up Phase
[0039] 1. KGC chooses distinct random primes p and q. The primes p and q are specific to a particular domain and are not recipient dependent.
[0040] 2. KGC computes n=(p).(q) where n has a fixed value for the domain, this value being published in an appropriate certificate. KGC also computes φ=(p−1).(q−1).
[0041] For each B, the KGC carries out steps 3 to 8
[0042] 3. KGC uses the identifier string ID
[0043] 4. KGC computes a recipient-specific decryption exponent d=1/e
[0044] 5. KGC chooses d
[0045] 6. KGC computes a recipient-specific d
[0046] 7. KGC securely communicates d
[0047] 8. KGC publishes ID
[0048] Message Transfer Phase
[0049] 9. A generates a message m.
[0050] 10. A chooses the identifier string ID
[0051] 11. A computes m
[0052] 12. SEM computes x=(m
[0053] 13. B receives x which is equivalent to (m
[0054] 14. B computes x
[0055] This identifier-based mediated RSA method has the same features, positive and negative, mentioned above with respect to the mediated RSA method of
[0056] It should also be noted that the same message m must never be encrypted using two different encryption exponents as this would compromise the security of the method. As a consequence, the basic message data must normally be combined with random padding to form the message m to be sent.
[0057] It is an object of the present invention to provide improved mediated RSA cryptographic methods and systems.
[0058] According to one aspect of the present invention, there is provided a mediated RSA cryptographic method in which a sender encrypts a message using an encryption exponent e and a public modulus n, and a recipient and a trusted authority cooperate with each other to decrypt the encrypted message by using respective components d
[0059] Blinding itself is a known technique (see, for example, “Blind signatures for untraceable payments” in Advances in Cryptology—D. Chaum, Crypto '82, pp. 199-203, Springer-Verlag, 1983); however, the present invention is based in part on the insight that application of blinding to four-party mediated RSA cryptographic methods permits these methods to become three-party in nature. More particularly, by using blinding it becomes possible to treat the key generation center and security mediator as a single entity as their separation is no longer necessary to ensure that a message is unreadable by the mediating entity.
[0060] A consequence of using blinding to prevent the trusted authority reading a message is that in identifier-based mediated RSA methods, where the sender chooses a string for which the decryption exponent component d
[0061] Whilst the method of the invention can be applied to situations where the trusted authority is set up to serve only one intended recipient, the trusted authority will typically serve multiple recipients each of which can be arranged to have its own associated decryption exponent component d
[0062] In a preferred embodiment, there is provided an identifier-based cryptographic method with the encryption exponent e being made a function of a string chosen by the sender. The trusted authority will typically then be arranged to use the string to calculate, subsequent to message encryption, the decryption exponent component d
[0063] Advantageously, the string chosen by the sender comprises action information concerning actions to be taken by the trusted authority, the trusted authority using the action information in the string to carry out corresponding actions. Preferably, the action information 'specifies one or more conditions to be checked by the trusted authority, the second processing including the trusted authority checking these one or more conditions and only completing the second processing if the conditions are met. Typical conditions include a recipient-identity condition, conditions concerning other attributes of the intended recipient, and conditions unrelated to the intended recipient (such as a date or time condition).
[0064] In another embodiment, the encryption exponent e is fixed and the modulus n is specific to each of multiple recipients. In this case also, the trusted authority can be arranged either to store or calculate its corresponding decryption exponent components d
[0065] The present invention also encompasses systems, apparatus and computer program products for implementing the foregoing methods.
[0066] Embodiments of the invention will now be described, by way of non-limiting example, with reference to the accompanying diagrammatic drawings, in which:
[0067]
[0068]
[0069]
[0070]
[0071]
[0072]
[0073] Three embodiments of the invention are described below, the first two embodiments concerning blinded, identifier-based (IB), mediated RSA methods and systems in which the value of the encryption exponent e is varied, and the third embodiment concerning a blinded, non-IB, mediated RSA method and system in which the value of e is kept constant and the value of the modulus n is made recipient specific.
[0074] The Identifier-Based Embodiments
[0075] The identifier-based RSA cryptographic method and system forming the first embodiment of the invention is illustrated in
[0076] The RSA method of the first embodiment is similar to the prior art method illustrated in
[0077] A more detailed description of the operational steps involved in the
[0078] Initial Set Up Phase
[0079] This is the same as for the set up phase of the above-described identifier-based mediated RSA method depicted in
[0080] Message Transfer Phase
[0081] Encryption of Message by A
[0082] 9. A generates a message m.
[0083] 10. A chooses the identifier string ID
[0084] 11. A computes m
[0085] Message Blinding by B
[0086] 12. B chooses a secret random number r.
[0087] 13. B computes e
[0088] 14. B computes r
[0089] 15. B blinds the encrypted message by computing (r
[0090] Partial Decryption by the Trusted Authority TA
[0091] 16. The trusted authority TA uses the received recipient identifier to look up the value of d
[0092] Completion of decryption and cancellation of blinding by B
[0093] 17. B receives x which is equivalent to (r.m)
[0094] 18. B computes y=x
[0095] 19. B computes y/r mod n to recover the message m.
[0096] It will be appreciated that the blinding applied by B to the encrypted message before passing it to the trusted authority ensures that the latter cannot read the message even if it has retained B's value of d
[0097] It may be noted that instead of recipient identifier strings ID
[0098] As already mentioned above, applying blinding to the encrypted message passed to the trusted authority, ensures that the latter cannot read the message. As a consequence, the trusted authority can be allowed to retain d
[0099] The second embodiment of the invention, which is illustrated in
[0100] Initial Set Up Phase
[0101] 1. The trusted authority TA chooses distinct random primes p=2p′+1 and q=2q′+1 where both p′ and q′ are Sophie Germain primes. The primes p and q are specific to a particular domain/application/trusted-authority and are not recipient dependent.
[0102] 2. TA computes n=(p).(q) where n has a fixed value for the domain, this value being published in an appropriate certificate. TA also computes φ=(p−1).(q−1).
[0103] 3. For each B, the TA and B share a secret d
[0104] Message Transfer Phase
[0105] Encryption of Message by A
[0106] 4. A generates a message m.
[0107] 5. A chooses a string STR—this may be any string subject to any restrictions imposed, for example, by a particular application or by the trusted authority.
[0108] 6. A applies the predetermined function F to the string STR to compute a corresponding encryption exponent e, the function being such that e is odd.
[0109] 7. A computes m
[0110] Message Blinding by B
[0111] 8. B chooses a secret random number r.
[0112] 9. B computes e from the string STR using the predetermined function F.
[0113] 10. B computes r
[0114] 11. B computes (r
[0115] Partial Decryption by the Trusted Authority TA
[0116] 12. B computes e from the string STR using the predetermined function F.
[0117] 13. TA computes decryption exponent d=1/e mod φ.
[0118] 14. TA computes d
[0119] 15. TA then computes x=((r.m)
[0120] Completion of Decryption and Cancellation of Blinding by B
[0121] 16. B receives x which is equivalent to (r.m)
[0122] 17. B computes y=x
[0123] 18. B computes y/r mod n to recover the message m.
[0124] The
[0125] As regards the string STR chosen by the sender, as already indicated, this string may be any string. The string can be based on a character string, a serialised image bit map, a digitised sound, or any other data including data input by the sender using any suitable input device such as a keyboard or keypad. However, in many cases restrictions will be placed on the strings selectable by the sender. For example, the string may be required to conform to a predetermined set of rules with regard to its formatting and/or content (e.g. the string STR may be required to comply with a particular XML schema); alternatively, the sender may be required to select a string from a set of predetermined strings provided by the trusted authority or by another party. In this latter case, the predetermined set of strings can be stored by the trusted authority and/or B and retrieved against a string indicator provider by the sender A, the retrieved string then being used in the computation of e.
[0126] Generally (though not necessarily), the string STR is used to convey to the trusted authority information concerning actions to be taken by the trusted authority when it receives the encrypted message for decryption. If a recipient B changes the information in the string before passing it to the trusted authority, the string will no longer be usable to compute the correct decryption exponent d
[0127] The information in the string STR may relate to actions to be taken by the trusted authority that do not affect message decryption—for example, the trusted authority TA may be required to send a message to the message sender A at the time the TA decrypts the message concerned. However, the information in the string STR will frequently specify one or more conditions to be checked by the trusted authority as being satisfied before the trusted authority partially decrypts the related encrypted message (or before returning the corresponding partially decrypted message to the recipient B concerned).
[0128] For example, the string STR may comprise a recipient identity condition identifying a specific intended message recipient; in this case, the trusted authority carries out an authentication process with the recipient B presenting the related message for decryption to check that the recipient concerned meets the recipient-identity condition.
[0129] Rather than identifying an intended recipient as a particular individual, the string STR may comprise one or more conditions specifying one or more non-identity attributes that the recipient must possess; for example, a condition may specify that a recipient must have a certain credit rating. Again, it is the responsibility of the trusted authority to check out this condition before producing the decrypted message for a recipient presenting the encrypted message for decryption.
[0130] The string STR may additionally or alternatively comprise one or more conditions unrelated to an attribute of the intended recipient; for example, a condition may be included that the message concerned is not to be decrypted before a particular date or time.
[0131] Whatever the conditions relate to, the string STR may directly set out the or each condition or may comprises one or more condition identifiers specifying corresponding predetermined condition known to the trusted authority (in the latter case, the trusted authority uses the or each condition identifier to look up the corresponding condition to be checked).
[0132] In the
[0133] Non IB Embodiment
[0134] The third embodiment depicted in
[0135] Initial Set Up Phase
[0136] This is the same as for the set up phase of the prior art mediated RSA method depicted in
[0137] Message Transfer Phase
[0138] Encryption of Message by A
[0139] 9. A generates a message m.
[0140] 10. A computes m
[0141] Message Blinding by B
[0142] 11. B chooses a secret random number r.
[0143] 12. B computes r
[0144] 13. B computes (r
[0145] Partial Decryption by the Trusted Authority TA
[0146] 14. The trusted authority TA uses the received recipient identifier to look up the value of d
[0147] Completion of Decryption and Cancellation of Blinding by B
[0148] 15. B receives x which is equivalent to (r.m)
[0149] 16. B computes y=x
[0150] 17. B computes y/r mod n
[0151] Again, because of the blinding applied by B, the trusted authority is unable to read the message presented to it by B.
[0152] General
[0153] As is the case with all mediated RSA methods, in the embodiments of the invention described herein, the trusted authority TA will typically perform a control function (over and above that associated with implementing any conditions contained in the string STR) for ensuring that the recipient B presenting the trusted authority with a message for partial decryption, is only serviced if entitled to receive such a service; thus, for example, the trusted authority can provide for immediate implementation of a revocation list.
[0154] It may be noted that a consequence of the recipient B applying blinding to the encrypted message sent to the trusted authority is that it is no longer essential for the recipient's decryption exponent component d
[0155] As is well known, in RSA methods the encryption exponent e must have no common factors with (p−1).(q−1). This can be checked by the trusted authority where e is known in advance to the trusted authority; however, in the identifier-based mediated RSA embodiments of the invention e may not be known to the trusted authority in advance of its use—for example, in the
[0156] the function F used to generate the encryption exponent is such that e is always odd; and
[0157] p=(2p′+1) and q=(2q′+1) where p′ and q′ are Sophie Germain primes.
[0158] These constraints together serve to ensure, with a very high probability, that the encryption exponent e and (p−1).(q−1) will have no common factors.
[0159] Whilst the above-described embodiments are adequate in some environments, for most environments certain constraints need to be applied to remove their vulnerability to a number of attacks.
[0160] Traffic Analysis: If the same encrypted message is seen twice, then it is likely that it is the same message being encrypted with the same key and transmitted. This gives information to the attacker. The cure is to use random padding to ensure that the same message is never encrypted twice. The basic message content is thus combined with random padding and a message-content length indicator to form the message m to be encrypted.
[0161] Active Attacker: In the described embodiments, B passes (r.m)
[0162] thus changing the message m to newm. The channel between B and TA should therefore be able to detect any attempt to modify the message.
[0163] Common Modulus Attack: With RSA methods it is accepted that one should never encrypt the same message multiple times with different exponents that are coprime, since an attacker could then use the Extended Euclidean Algorithm to recover the original message. The embodiments of
[0164] Use random padding of the message, as described above, to ensure that the same message is never encrypted twice.
[0165] Ensure that the same message content is never re-sent—whilst this is possible to do in theory (for example, by storing all sent messages and checking any new message against the stored messages) in reality this solution is only practical in limited situations.
[0166] Ensure that the exponents are never coprime (that is, values of e derived from different strings having a common divisor greater than one). This can be achieved, for example, by making all exponents a multiple of 3; thus e can be derived from the string STR using a hash function # for which #(STR)≡3 mod 6—in other words:
[0167] More generally, successive values of e can be derived as:
[0168] where z is an odd integer ≧3, this value being fixed (that is, the same value is used for each successive calculation of e).
[0169] Another point to note regarding reducing vulnerability to cryptographic attacks is that the size of the message should, preferably, be similar to the value of the modulus n and this can be achieved by always adding an appropriate amount of random padding to the message content. Thus, for example, where the “message” is, in fact, a symmetric cryptographic key for encoding/decoding subsequent exchanges, the message can be padded by any suitable padding scheme such as OAEP (M. Bellare and P. Rogaway. Optimal Asymmetric Encryption—How to Encrypt with RSA. In Advances in Cryptology-Eurocrypt '94, pp. 92-111, Springer-Verlag, 1994).
[0170] With respect to the form of the blinding applied by the recipient B, in the described embodiments this has involved a modulo-n multiplication of the encrypted message by r
[0171] As is generally the case with mediated RSA methods, in all the embodiments described herein, unless the trusted authority only serves one recipient B, the trusted authority will need to be provided with an identifier, generally a recipient identifier, in order to able to determine, by computation or look up, the correct value of d
[0172] an identifier provided by the recipient B that presents the message to the trusted authority;
[0173] the value of the encryption exponent e used by the sender or the value of all or part of a string upon which that encryption exponent is based, in cases where a different respective said value is associated with each of multiple recipients;
[0174] the value of the modulus n used by the sender where a different respective said value is associated with each of multiple recipients.
[0175] Embodiments are possible in which the value of d
[0176] In certain situations it may be required that a message should only be decryptable with the cooperation of multiple trusted authorities. One way of doing this with mediated RSA methods is to sub-divide the decryption exponent component d
[0177] For the identifier-based mediated RSA methods, another approach is possible and involves each trusted authority having its own associated public modulus n and private data. Consider, for example, the situation where the sender wishes to impose multiple conditions but no single trusted authority is competent to check all conditions—in this case, different trusted authorities can be used to check different conditions. In one implementation, the sender organizes the message content as a number of data sets (say k data sets) by using Shamir's secret sharing scheme and then encrypts each data set using an associated string STR (for example, specifying a respective condition to be checked) and the public modulus of a respective one of the trusted authorities; in order to retrieve the message, a recipient B has to go to all of the trusted authorities in order to decrypt all of the data sets because any k−1 data sets or less cannot disclose any of the message contents.