Academia.eduAcademia.edu

Efficient one-time proxy signatures

2005, Communications, IEE Proceedings-

One-time proxy signatures are one-time signatures for which a primary signer can delegate his or her signing capability to a proxy signer. In this work we propose two one-time proxy signature schemes with different security properties. Unlike other existing one-time proxy signatures that are constructed from public key cryptography, our proposed schemes are based one-way functions without trapdoors and so they inherit the communication and computation efficiency from the traditional one-time signatures. Although from a verifier point of view, signatures generated by the proxy are indistinguishable from those created by the primary signer, a trusted authority can be equipped with an algorithm that allows the authority to settle disputes between the signers. In our constructions, we use a combination of one-time signatures, oblivious transfer protocols and certain combinatorial objects. We characterise these new combinatorial objects and present constructions for them.

Efficient One-Time Proxy Signatures Huaxiong Wang and Josef Pieprzyk Centre for Advanced Computing – Algorithms and Cryptography Department of Computing Macquarie University Sydney, NSW 2109, AUSTRALIA {hwang,josef}@ics.mq.edu.au Abstract. One-time proxy signatures are one-time signatures for which a primary signer can delegate his or her signing capability to a proxy signer. In this work we propose two one-time proxy signature schemes with different security properties. Unlike other existing one-time proxy signatures that are constructed from public key cryptography, our proposed schemes are based one-way functions without trapdoors and so they inherit the communication and computation efficiency from the traditional one-time signatures. Although from a verifier point of view, signatures generated by the proxy are indistinguishable from those created by the primary signer, a trusted authority can be equipped with an algorithm that allows the authority to settle disputes between the signers. In our constructions, we use a combination of one-time signatures, oblivious transfer protocols and certain combinatorial objects. We characterise these new combinatorial objects and present constructions for them. 1 Introduction In general, digital signatures can be divided into two classes. The first class includes one-time signatures and their variants based on one-way functions without trapdoors. These schemes can be used to sign a predetermined number of messages only, we will call them one/multiple-time signature schemes (examples of such schemes includes one-time signatures by Lamport [16] and Rabin [27], but also multiple-time signatures by Rohatgi [32], by Reyzin and Reyzin [30], and by Pieprzyk, Wang and Xing [26]). The second class of schemes is based on public-key cryptography and they can be used to sign an unlimited number of messages. The RSA [29] and the ElGamal [10] signatures represent this class. One-time signatures were first proposed by Rabin [27] and Lamport [16] and are based on the idea of committing public keys to secret keys using one-way functions. For more than 25 years, various variants of Rabin’s schemes have been proposed and investigated by many researchers (see, for example, [3,4,11,16,20]). Indeed, one-time signatures have found many interesting applications [7,21], including on-line/off-line signatures [9], digital signatures with forward security properties [1], broadcast authentication protocols [25] and stream-oriented authentication [32] etc. C.S. Laih (Ed.): ASIACRYPT 2003, LNCS 2894, pp. 507–522, 2003. c International Association for Cryptologic Research 2003  508 Huaxiong Wang and Josef Pieprzyk One of the main advantages of one-time signatures is their reliance on oneway functions without trapdoors that can be implemented using fast hash functions such as SHA-1 or MD5. The resulting signatures are the order of magnitude faster than signatures based on public cryptography. With the advent of lowpowered, resource-constrained, small devices, such as cell phones, pagers, Palm pilots, smart cards etc. in recent years, one-time signatures have attracted more and more attention, as an attractive alternative to the traditional signatures based on public key cryptography (see, for example [15,25,30]). Although digital signatures have been successfully applied to ensure the integrity, authenticity, and non-repudiation for the electronic documents, standard signatures (both based on public-key cryptography and on one-way functions) alone are too inflexible and inefficient to handle many practical requirements in new applications. Thus, many variants of the standard signatures with additional functionalities have been proposed. These include blind, undeniable, and group signatures to mention a few. Motivated by applications that require the power to sign to be transfered from one person to another, Mambo et al [19] proposed proxy signatures. Proxy signatures allow a designated person, called a proxy, to sign on behalf of a primary signer. A proxy signature convinces a verifier that the primary signer has delegated the signing power to the proxy and that the proxy has signed the message. To our best knowledge, all the previously published proxy signatures are based on public-key cryptography. Most of the proxy signatures can be viewed as modifications of the ElGamal signature and their security typically relies on the assumption of the difficulty of the discrete logarithm problem (the DL assumption). In addition, these proxy schemes can generally be used for signing multiple messages and for multiple proxy signers. In this paper, we will study one-time proxy signatures (or simply OTP signatures). As the name suggests, we consider one-time signatures with the additional proxy functionality. It should be noted that the notion of one-time proxy signature itself is not new, and it has been proposed by Kim et al [15] in a different context. Their signature is a variant of the ElGamal signature (or more precisely, a variant of one-time fail-stop signature [13]) and its security rests on the DL assumption. The motivation behind their work is to limit the power of the proxy signer so the proxy signer can sign once only. In contrast, our motivation is to enable the primary signer to delegate a proxy to sign in the applications where one-time signatures (based on one-way functions) are used. To define our proxy signatures, we employ two basic cryptographic primitives as the building blocks. The first one is a one-time (or multiple-time) signature primitive based on one-way functions. The second building block is an oblivious transfer (OT) primitive. We then combine these primitives with certain combinatorial objects to obtain our OTP signatures. We formulate the general framework for proxy signatures, define their security goals and attacks against them. We then show that the efficiency of any OTP signature can be measured by the properties of the underlying combinatorial objects. We introduce proxy patterns that characterise the properties of these OTP signatures. Next, we give Efficient One-Time Proxy Signatures 509 constructions for the desired proxy patterns, using polynomials over finite fields and error-correcting codes, and link them with other combinatorial structures (such as Steiner systems). The rest of the paper is organised as follows. In Section 2, we introduce our model of one-time proxy signatures. In Section 3, we consider candidates for the two building blocks that can be used to construct one-time proxy signatures. In Section 4, we propose a simple scheme for one-time proxy signatures and later we describe a basic scheme and analyse its security. In Section 5, we analyse the basic scheme and and its security against the swallow attacks. Finally, Section 6 concludes the paper. 2 The Model A proxy signature enables the primary signer to delegate his/her signing capability to a proxy signer so the proxy signer can generate a signature on behalf of the primary signer. Mambo et al [19] introduced the concept of proxy signature. They defined three classes of delegation: full delegation, partial delegation and delegation by warrant. A full delegation scheme assumes that the primary signer and the proxy signer have the same secret key, so the proxy signer can sign any message that is indistinguishable from the signature generated by the primary signer. A signature with partial delegation allows the primary signer to delegate the power of signing to a proxy in such a way that the signatures generated by the primary and proxy signers are different. This is normally done by making verification algorithms different for primary and proxy signatures. In other words, proxy signatures are distinguishable from primary signatures. A signature with delegation by warrant requires an additional piece of message (called a warrant) that determines the proxy signer that is delegated by the primary signer. Signatures with full delegation do not provide non-repudiation while signatures with partial delegation do. Signatures with delegation by warrant can be implemented using double signatures and therefore, they are not as efficient as signatures with full or partial delegations. In this paper, we are interested in one-time signatures that allow full delegation with an added feature that allows to trace the authorship of the signature (if both proxy and primary signers agree to settle a dispute). Being more precise, we are going to consider proxy signatures with full delegation, in which the private signing key of the proxy signer is derived from the private key of the primary signer. In particular, we restrict our attention to signatures that can be used once only. Informally, a one-time proxy signature scheme (OTP signature) includes two parties: a primary signer and a proxy signer together with the following three algorithms. Key Generation: For a given security parameter, it outputs a pair of private and public keys for the primary signer and a private key for the proxy signer. The key generation may involve a two-party protocol run between the primary and proxy signers, or a multi-party protocol that is run amongst three parties: the primary signer, the proxy, and a trusted authority. 510 Huaxiong Wang and Josef Pieprzyk Singing: For an input that consists of a message to be signed and the private key of the signer (either primary or proxy), it outputs a valid signature. Verifying: For an input that includes a pair (a message and a signature) and the public key of the primary signer, it outputs either accept or reject. In the following, we consider the basic security requirements imposed on OTP signatures. If an OTP signature satisfies the requirements, it is called secure. Unforgeability: It is infeasible for any third party (that has not been involved in signing) to forge a message/signature that passes the signature verification. This means that if a signature has been generated by the primary signer, no body (including the proxy) can forge a message/signature. Also if the signature has been generated by the proxy, then no body (including the primary signer) can forge a message/signature. Verifiability: For a valid signature, a verifier is convinced that the primary signer has agreed to sign a message (either the primary signer has signed it or the proxy has). Traceability: In case of a dispute between the primary and proxy signers, there exists a tracing algorithm that reveals the identity of the actual signer. That is, the algorithm guarantees that it should be infeasible for – the primary singer to sign a message and to claim later that it has been signed by the proxy signer. – the proxy signer to sign a message and to claim later that it has been signed by the primary signer. We note that the model of our OTP signature is slightly different from previous proxy signatures in the sense that there is only one public key of the primary signer for the signature verification. Thus, from a verifier point of view, signatures generated by primary or proxy signers are indistinguishable (like in the full delegation). However, the tracing algorithm guarantees the non-repudiation property for the primary signer and the proxy singer. Thus, unlike in full delegation signatures, the primary singer and the proxy signer have different private keys for signature generation, and in case a dispute occurs between the two potential signers, the tracing algorithm is called to resolve it. We argue that the indistinguishable between the signatures by the primary signer and the proxy signer is an interesting property, for example, it can be used to protect the privacy of the actual signer. However, in this paper we are not going to explore it beyond this point. 3 Building Blocks In this section, we review two cryptographic primitives that are needed in the our constructions of proxy signatures. 3.1 One-Time Signature One-time signatures are based on one-way functions. Rabin published the first one-time signature based on a private-key encryption or a one-way function Efficient One-Time Proxy Signatures 511 without a trapdoor [27], requiring interaction between the signer and the verifier. Lamport [16] gave a non-interactive one-time signature using a one-way function. The idea of Lamport is as follows. For a given one-way function f , one selects two random strings x0 , x1 as the secret key, and publishes f (x0 ) and f (x1 ) as the public key. Then the single-bit message b ∈ {0, 1} can be signed by revealing xb . Various modifications of the Lamport signature with improved efficiency and functionalities have been proposed (see, for example [2,4,5,9,12,14,21,25,30,32]). As our building block, we are going  to use a one-time signature defined as follows. Let b, t, k be integers such that kt ≥ 2b . Let T denote the set {1, 2, . . . , t} and Tk be the family of k-subsets of T . Let S be a one-to-one mapping from {0, 1, . . . , 2b − 1} to Tk such that for a message m, S(m) assigns a unique kelement subset from Tk . Let f be a one-way function operating on -bit strings ( is a security parameter). The signature scheme consists of three algorithms: key generation, signing and verification. For a given security parameter , the key generator chooses at random t strings si of the length  bits and creates the secret key SK = (s1 , . . . , st ). The public key is the image of the secret key obtained using the one-way function f , i.e., P K = (v1 , . . . , vt ) such that v1 = f (s1 ), . . . , vt = f (st ). To sign a b-bit message m, the signer interprets m as an integer between 0 and 2b − 1 and computes S(m) = {i1 , . . . , ik } ∈ Tk . The value si1 , . . . , sik is the signature of m. To verify a signature (s1 , s2 , . . . , sk ) on a message m, the verifier again interprets m as an integer between 0 and 2b − 1 and computes {i1 , . . . , ik } as the m-th k-element subset of Tk . Finally, the verifier checks whether f (s1 ) = vi1 , . . . , f (st ) = vit . Definition 1. We call the above one-time signature scheme a (t, k) one-time signature scheme and denote it by O = (T, S, f ), or simply by O. The parameters (t, k) specify efficiency of the signature. Note that the Bos-Chaum one-time signature scheme [2] is a special case of the (t, k) scheme in which k = t/2. Note also that for a (t, k) one-time signature O = (T, S, f ), the most expensive part of computation is the implementation of the mapping S. In [30], Reyzin and Reyzin present two algorithms for implementation for S with computation costs of O(tk log2 t) or O(k 2 log t log k). In [26], Pieprzyk et al give more efficient implementations for S through the explicit constructions of S using polynomials over finite fields, error-correcting codes, and algebraic curves. 3.2 Oblivious Transfer (OT) An oblivious transfer (OT) refers to a two-party protocol executed between a sender S and a receiver R. The goal of the protocol is to transfer the knowledge about an input string held by the sender to the receiver in such a way that the receiver learns some part of the input but the sender cannot figure out which part of the input is now known to the receiver. Consider a 1-out-n oblivious 512 Huaxiong Wang and Josef Pieprzyk transfer (OT1n ) protocol. The sender S has n secrets (strings) m1 , m2 , . . . , mn , and is willing to disclose one of them (mα ) to R for some index α chosen by R. However, R does not want to reveal its choice of the index α to S and at the same time, S does not want R to gain any information about other secrets mi , i = α. In general, we may have a k-out-n oblivious transfer (OTkn ), in which R may choose k indices out of n. The concept of oblivious transfer has been introduced by Rabin in 1981 [28] and it has been extensively studied (see, for example, [8,22,23]). Here is an example of OT1n proposed recently by Tzeng [33], which is among the most efficient OT protocols proposed so far. Let g and h be two (public) generators in a q-order group Gq , where q is prime. Assume that the secret input of S is m1 , m2 , . . . , mn ∈ Gq , and the choice of R is α, 1 ≤ α ≤ n. The protocol proceeds as follows. 1. R → S : y = g r hα for a random r ∈ Zq , 2. S randomly chooses n elements ki ∈ Zq and S → R : ci = (g ki , mi (y/hi )ki ), 1 ≤ i ≤ n. 3. R computes mα = b/ar , assuming cα = (a, b). It is proved in [33] that in the above OT1n protocol, the confidentiality of the receiver choice is unconditionally secure and the confidentiality of un-chosen secrets is at least as strong as the hardness of the decision Diffie-Hellman problem. As to computations required in the protocol, the receiver needs to compute 2 modular exponentiations and the sender computes 2n modular exponentiations. 4 One-Time Proxy Signatures Our basic idea behind the constructions of OTP signatures is as follows. The primary signer generates n private/public key pairs for one time signatures, say (sk1 , pk1 ), . . . , (skn , pkn ). The proxy signer gains one of the n private keys, say ski in such a way that the primary signer does not know, which key was obtained by the proxy signer, i.e., the primary signer does not know the index i. The primary signer publishes the public key pk1 , . . . , pkn in an authenticated way. The proxy signer uses ski to sign the message, which can be verified by anyone who knows the public key. Note that the verification of signatures generated by primary and proxy signers is the same. To prevent cheating by signers, a tracing algorithm has to be carefully designed. The algorithm should be run by a trusted authority and should identify the true signer with a high probability. Note that the oblivious transfer enables us to identify the true signer. To do this, the trusted authority always asks the proxy to sign the disputed message again. If the proxy is unable to produce a different signature it means that either the proxy really signed the message or the primary signer has applied the same secret key as proxy (this event happens with the probability 1/n). Efficient One-Time Proxy Signatures 4.1 513 A Simple Proxy Signature Scheme We present a simple and somewhat trivial scheme to illustrate the basic idea. Then we improve its efficiency using some combinatorial techniques. The scheme is based on a (t, k) one-time signature O = (T, S, f ) and an oblivious transfer protocol OT1n (or OTkn ), and it works as follows. Key Generation: It consists of the following three steps. – The primary signer randomly chooses an n × t array A = (sij )n×t as her private key. Each row holds t secret keys of an instance of the (t, k) one-time signature O. The public key is V = (vij )n×t , where vij = f (sij ) and f is the one-way function from O. – The primary and proxy signers execute an OT1n (or OTkn ) protocol. At the end of the protocol, the proxy signer learns one row from A, say (si1 , . . . , sit ), as his private key, but nothing more. The primary signer has no information about the index i. – The proxy singer applies f to (si1 , . . . , sit ) and compares the results with the ith row of public array V . If the check fails to hold, the proxy exits the scheme and complains to the primary signer. Signing: The proxy signer applies the ith row of A, i.e., (si1 , . . . , sit ), as his private key of the one-time signature O and signs the message m. That is the proxy signer first computes S(m) = {j1 , . . . , jk } ⊆ {1, . . . , t} and then reveals m and the signature δ = {(sij1 , . . . , sijk ), i}. Verifying: This part follows the steps necessary to verify an instance of the (t, k) one-time signature. Security. We discuss the security requirements of the scheme. Obviously, unforgeability and verifiability of the OTP signature follow directly from the unforgeability and verifiability of the underlying one-time signature O. What we need to consider is the traceability of the true signer (in case of cheating attempts from either the proxy or the primary signer). Unforgeability against the primary signer: Assume that the primary singer wants to cheat. She generates a signature for a message m and later claims that it was generated by the proxy signer. Note that to sign m, the primary signer has to choose a row of A and to sign using the chosen instance of one-time signature. Suppose that she has chosen jth row of A. The generated signature is δj = {(sji1 , . . . , sjik ), j}, where S(m) = {i1 , . . . , ik }. The proxy signer can prove that the signature was not generated by him, by revealing another signature for m using his private key (si1 , . . . , sit ). That is, he reveals the signature δi = {(sii1 , . . . , siik ), i}, which shows that δi = δj . As the proxy signer knows only one row of the private keys, he can only sign the message with one of the rows, so δj must have been generated by the primary signer. The OT protocol provides unconditional security for the proxy signer and the probability of success of the primary signer is 1/n. Unforgeability against the proxy singer: Suppose that the proxy signer wants to cheat, he generates a signature, later denies it and claims that the primary signer 514 Huaxiong Wang and Josef Pieprzyk (or someone else) has generated the signature. His claim can be accepted only if he can generate a different signature for the same message. In other words, the proxy is able to produce two different signatures for the same message. This is impossible unless, he is able to break the OT protocol or to invert the one-way function. We stress that the tracing algorithm is called only if the dispute between the primary signer and the proxy signer occurs. The knowledge of a valid signature alone is not sufficient to identify the actual signer (the signature provides full delegation). Efficiency. We look at the efficiency of the scheme. The signing and verification of the signature are exactly the same as the underlying one-time signature scheme, so could be very fast. The key generation requires n times costs of key generation for one-time signatures, plus the cost of running an OT1n (or OTtn ) protocol. The length of public and secret keys increases n times as well. However, observe that the key generation, which is the most expensive part of computations, can be precomputed. Furthermore, an expensive OT protocol can be avoided if a third trusted party helps during the key generation. The private key of the primary signer can be discarded after the key generation. In the next section we propose methods to reduce the public key length. 4.2 The Basic Proxy Signature Scheme To decrease the probability of successful cheating by the primary signer, it is required to increase the parameter n and consequently the number of rows in A. This causes that the simple proxy signature secure against a dishonest primary signer must have a long private/public key. We show that the simple proxy signatures can be converted into proxy signatures with shorter public keys using combinatorial techniques. Definition 2. Given a set X = {x1 , . . . , xM } and an n × t array C = [cij ] with entries from X. The array C is called a (t, k, n, M ) proxy pattern, denoted by P P (t, k, n, M ), for a (t, k) one-time signature if 1. each row of C contains t different elements of X, 2. any two distinct rows of C have at most k − 1 common elements, i.e., for any i = j, |{ci1 , . . . , cit } ∩ {cj1 , . . . , cjt }| < k. For a given P P (t, k, n, M ), we combine it with a (t, k) one-time signature to construct an OTP signature that is a generalisation of the simple scheme presented above. Without the loss of generality, assume that C = (cij ) is a P P (t, k, n, M ) with entries taken from X = {1, . . . , M } and O = (T, S, f ) is a (t, k) one-time signature. Our basic proxy signature works as follows. Key Generation: It goes through the following three steps. – The primary signer randomly chooses M distinct values (s1 , s2 , . . . , sM ) as the private key (for example, each si is an -bit string if the underlying one-time signature O is defined for the security parameter ). The public key is V = (v1 , . . . , vM ), where vi = f (si ), i = 1, . . . , M . Efficient One-Time Proxy Signatures 515 – The primary and proxy signers execute an OTtM protocol. At the end of the protocol, the proxy signer learns the ith row of C, that is (sci1 , . . . , scit ), as his private key, but nothing more. The primary signer has no information about the index i. – The proxy singer applies f to (sci1 , . . . , scit ) and checks the results with the corresponding components of the public key V . If the check fails, the proxy aborts and complains. Signing: For a given message m, the proxy signer applies his private key (sci1 , . . . , scit ) to the one-time signature O and signs the message. That is, the proxy signer first computes S(m) = {j1 , . . . , jk } ⊆ {1, . . . , t} and then reveals the signature δ = {(scij1 , . . . , scijk ), i}. Verifying: It follows the verification of the (t, k) one-time signature (applied to the appropriate instance of the one-time signature) in a straightforward manner. It is easy to see that the security of this scheme is similar to the security of the simple scheme. The traceability is guaranteed by the properties of the proxy pattern C, that is, any two rows will have at most k−1 common elements. Since a signature requires the knowledge of k secret values of the private key, the proxy signer can resolve disputes by showing two valid signatures (corresponding to two different rows of C). The main advantage of the basic signature scheme is a reduction of the length of public key (and the corresponding private key) from nt values to M values. In the remainder of this section, we will give constructions for proxy patterns with small M and derive a bound on the minimal value for M . 4.3 Constructions of Proxy Patterns It is easy to see that the simple signature uses a trivial P P (t, k, n, nt) for any k, 1 ≤ k ≤ t. By fixing k, as this is the case for the underlying (k, t) one-time signature, we are able to construct a P P (t, k, n, M ) such that M is significantly smaller than nt, and so to reduce the length of the public key. Assume GF (q) is a finite field with q elements and a1 , . . . , at are t distinct elements from GF (q). We construct a P P (t, k, n, M ) as follows. Consider a set X = {a1 , . . . , at } × GF (q) and all polynomials of the degree at most k − 1 over GF (q). Next write them as g1 (x), . . . , gqk (x). Note that there are q k such polynomials. Further define a q k × t array C = [cij ] with entries taken from X, so cij = (aj , gi (aj )), for i = 1, 2, . . . , q k , j = 1, 2, . . . , t. Now we show that C is a P P (t, k, q k , qt). Indeed, for 1 ≤ i ≤ q k , the ith row of C is ((a1 , gi (a1 )), (a2 , gi (a2 )), . . . , (at , gi (at ))). 516 Huaxiong Wang and Josef Pieprzyk Thus, for i = j, |{((a1 , gi (a1 )), . . . , (at , gi (at ))} ∩ {((a1 , gj (a1 )), . . . , (at , gj (at ))}| = |{a | gi (a) = gj (a)}| = |{a | (gi − gj )(a) = 0}| <k otherwise there are k or more than k roots for the polynomial gi − gj . But gi − gj is a polynomial of degree at most k, it follows that gi = gj which contradicts that i = j. We have proved the following result. Theorem 1. Let q be a prime power. For any integers t, k such that k ≤ t ≤ q, there exists a P P (t, k, q k , qt). Note that for the simple proxy signature, a P P (t, k, q k , q k t) is required. Thus, for the fixed parameters t, k and q k+1 , we can reduce the number of elements in the public key from q k t for the simple proxy signature to qt in the basic proxy signature. A generalisation of the above polynomial construction uses error-correcting codes. Let Y be an alphabet of q elements. An (N, W, D, q) code is a set M of W vectors in Y N such that the Hamming distance between any two distinct vectors in M is at least D. Consider an (N, W, D, q) code M. We write each codeword as mi = (mi1 , . . . , miN ) with mij ∈ Y , where 1 ≤ i ≤ W, 1 ≤ j ≤ N . For a set X = {1, . . . , N } × Y , we define a proxy pattern C = (cij ) as follows, cij = (j, mij ), for i = 1, 2, . . . , W, j = 1, 2, . . . , N. Now for each distinct i, j, we have |{ci1 , ci2 , . . . , ciN } ∩ {cj1 , cj2 , . . . , cjN }| = |{(k, mik ) : 1 ≤ k ≤ N } ∩ {(k, mjk ) : 1 ≤ k ≤ N }| = |{k : mik = mjk }| < N − D + 1. This shows that the array C constructed above is a P P (N, N − D + 1, W, N q). We then have Theorem 2. If there exists an (N, W, D, q) code, then there exists a P P (N, N − D + 1, W, N q). In the coding theory, it is known that for given k and q there are constructions (e.g. using algebraic geometry codes [24]) for (N, W, D, q) codes for which N = O(log W ). In the context of proxy patterns, this means that there exists P P (N, N −D, W, N q) in which N = O(log W ). Applying this observation to onetime proxy signature, we can reduce the number of elements in the public key from O(n), for the simple proxy signature, to O(log n) for the proxy signature based on the coding construction. Efficient One-Time Proxy Signatures 4.4 517 Bounds for Proxy Patterns To minimise the success probability of cheating by the primary signer, we need to have a P P (t, k, n, M ) for which the value n is as large as possible while other parameters t, k and M are fixed. In the following we derive an upper bound for such n. Theorem 3. For any P P (t, k, n, M ), the following inequality holds M  n ≤ kt  . k Proof. Assume that C = [cij ] is a P P (t, k, n, M ) with entries taken from an M set of X. For each row i, we associate a subset Bi of X, i.e., Bi = {ci1 , . . . , cit } ⊆ X, where i = 1, . . . , n. Clearly, |Bi | = t and |Bi ∩ Bj | < k for all i, j where i = j. For each 1 ≤ i ≤ n, denote Ri to be the family of all the k-subsets of Bi . This  implies that |Ri | = kt . Now we claim that Ri ∩ Rj = ∅ for each i = j. If this claim is not true or B ∈ Ri ∩ Rj is a k-subset of X, then B is a k-subset of both Bi and Bj , which contradicts the fact that |Bi ∩ Bj | < k. Thus we have  M k  ≥| ∪ni=1   t Ri | = n|Ri | = n . k The desired result follows immediately. Next, we show that the bound in Theorem 3 is tight for some parameter set. Recall that a Steiner system S(k, t, M ) is a pair (X, B), where X is a set of M elements called points and B is a family of t-subsets of X called blocks, such that every k-subset of points is contained   in  t a unique block. It is known that the number of blocks of an S(k, t, M ) is M / k k .   t Corollary 1. An P P (t, k, n, M ) with n = M k / k exists if and only if there exists an S(k, t, M ). Proof. Let (X, B) be an S(k, t, M ). For each block, associate a row of an n × t array in a natural way, i.e., entries of the ith row are assigned to the elements in the block  is easy to see that assignment gives rise to a P P (t, k, n, M )  Bi.t It / with n = M k k .   t On the other hand, assume that C is a P P (t, k, M k / k , M ) with entries from M -set X, each row of C is a subset of X, we obtain a set system (X, B)  t where B = {Bi : 1 ≤ i ≤ M / }. It is clear that each k-subset of X appears k k in at most one block. So we need to show that it is contained in at least one block. Using the  same notation as in Theorem 3, we know that each block   Bt i contributes kt k-subsets Ri of X. Since Ri s are disjoint and there are M k / k M such Ri , which gives rise all the k possible choices of k-subsets of X, that means that any k-subset must be in one of the Ri . This concludes the proof. 518 5 Huaxiong Wang and Josef Pieprzyk Proxy Signatures Secure against Swallow Attacks Consider the following attack: suppose the primary signer has seen a valid signature (m, δ) produced by the proxy. She knows that the private key of the proxy signer is the ith row of the proxy pattern. Now the primary signer swallows the signature generated by the proxy signer, and generates the signature for another new message, using the private key of the proxy signer. In this case, the proxy signer is unable to prove his innocence. We will call it, the swallow attack. In order to protect proxy signatures against the swallow attack, the primary signer should not be able to guess the private key of the proxy from a signature produced by the proxy. Looking at a message and its signature, the primary signer should not be able to determine the private key of the proxy. In other words, a single proxy signature should point at many (potential) private keys of the proxy. On the other hand, there should not be too many private keys corresponding to a given proxy signature. Otherwise, the proxy signature can be subject to an attack in which the primary signer chooses at random the proxy private key (without looking at the signature) and succeeds with a high probability. Based on this observation, we propose a new proxy signature that is secure against the swallow attack. First we need some notation. Let C = (cij ) be an n × t array with entries from an M -set of X. For any 1 ≤ i ≤ n and 1 ≤ j1 ≤ j2 ≤ · · · ≤ jk ≤ t, we denote C[i; j1 , j2 , . . . , jk ] = { | cj1 = cij1 , . . . , cjk = cijk }. In other words, C[i; j1 , j2 , . . . , jk ] is the set of indices of the rows which are identical to ith row when restricted to the j1 , . . . , jk columns. Definition 3. Given a set X = {x1 , . . . , xM }. An n × t array C = (cij ), with entries from X, is called a (λ1 , λ2 )-strong (t, k, n, M ) proxy pattern, denoted by (λ1 , λ2 )-SPP(t, k, n, M ) for a (t, k) one-time signature if 1. each row of C contains t different elements of X, 2. any two distinct rows of C have at most k common elements, i.e., for any i = j, |{ci1 , . . . , cit } ∩ {cj1 , . . . , cjt }| ≤ k. 3. for any row 1 ≤ i ≤ n and any k columns 1 ≤ j1 ≤ j2 ≤ · · · ≤ jk ≤ t, λ1 ≤ |C[i; j1 , j2 , . . . , jk ]| ≤ λ2 . We now combine a (λ1 , λ2 )-SPP(t, k, n, M ) and a (t, k) one-time signature to construct an OTP signature secure against the swallow attack. Assume C = (cij ) is a (λ1 , λ2 )-SPP(t, k, n, M ) with entries taken from X = {1, . . . , M } and O = (T, S, f ) is a (t, k) one-time signature. The signature works as follows. Key Generation: It consists of the following three steps. – The primary signer randomly chooses M distinct elements (s1 , s2 , . . . , sM ) as the private key (for example, each si is a -bit string if the private key of underlying one-time signature O consists of -bits strings). The public key is V = (v1 , . . . , vM ), where vi = f (si ), i = 1, . . . , M . Efficient One-Time Proxy Signatures 519 – The primary and proxy signers execute an OTtM protocol. At the end of the protocol, the proxy signer learns a t-subset of X that is the ith row of C, i.e., (sci1 , . . . , scit ), as his private key, but nothing more. The primary signer has no information about the index i. – The proxy singer applies f to (sci1 , . . . , scit ) and checks the results by comparing them to the corresponding components of the public key V . If the check fails, the proxy aborts and complains. Signing: To sign a message m, the proxy signer computes S(m) = {j1 , j2 , . . . , jk } and C[i; j1 , . . . , jk ]. Then he randomly chooses  ∈ C[i; j1 , . . . , jk ], and reveals δ = {(scj1 , . . . , scjk ), } as the signature. Verifying: It follows the verification of the (t, k) one-time signature (applying to the th row) in a straightforward manner. Clearly, the unforgeability against the third party is the same as the underlying one-time signature scheme O. Next we show that the scheme is secure against regular attacks and the swallow attacks from the primary signer. Lemma 1. The probability that the primary signer succeeds in the regular attack (without seeing any signature) is at most λ2 /n. Proof. In this attack, the primary signer generates a signature and later claims that it is generated by the proxy signer. She succeeds if the proxy signer fails to prove that he has not generated the signature. As the primary signer has no information about the index i chosen by the proxy signer, she may try to guess it. Assume that she has chosen the index j. For a message m, the primary signer computes S(m) = {j1 , . . . , jk } and reveals the signature {scjj1 , . . . , scjjk , }, where  ∈ C[j; j1 , . . . , jk ]. Note that if j ∈ C[i; j1 , . . . , jk ], then the proxy can sign the message m using a different key from the ith row, which results in different signature of the primary signer. The primary signer succeeds if and only if j ∈ C[i; j1 , j2 , . . . , jk ]. Since C is a (λ1 , λ2 )-SPP(t, k + 1, n, M ), we know that |C[i; j1 , . . . , jk ]| ≤ λ2 and the result follows. Lemma 2. The probability that the primary signer succeeds in the swallow attack (having seen a signature) is at most max{1/λ1 , λ2 /n}. Proof. In this attack, the primary signer has seen a message/signature pair (m, δ) generated by the proxy signer. Next she swallows the data and generates another message/signature pair (m , δ  ). She succeeds if the proxy signer fails to prove that there is a cheating from the primary signer. Suppose that the proxy signer has chosen the index i. For a signature (m, δ) generated by the proxy signer, we may assume that δ = {(scj1 , . . . , scjk ), }, where S(m) = {j1 , . . . , jk } and  ∈ C[i; j1 , . . . , jk ]. Having seen the signature δ, the primary signer knows that the secret index chosen by the proxy signer is one of the elements in C[; j1 , . . . , jk ]. One attack strategy from the primary signer is to randomly choose j ∈ C[; j1 , . . . , jk ] and use secret key from jth row to generate the signature (m , δ  ). She succeeds with probability 1/|C[; j1 , . . . , jk ]| that j = i. If j = i, then the proxy signer can generate the signature for m , say δ  . It can 520 Huaxiong Wang and Josef Pieprzyk be seen that δ  = δ  , which means that the proxy can create two signatures for the same message m using two different row keys. This proves that the primary signer attempted to cheat. Another strategy for the primary signer is to choose j ∈ C[; j1 , . . . , jk ]. In this case, she succeeds if and only if j ∈ C[i; j1 , . . . , jk ], where S(m ) = {j1 , . . . , jk }. As in the proof of Lemma 1, the probability of a successful attack using this strategy is at most λ2 /n. Therefore, the overall success probability of the attack is bounded by max{1/λ1 , λ2 /n}. Previously, we have used polynomials over a finite field to construct a P P (t, k, q k , qt). We will show that this construction can be extended for (q, q)-SPP(t, k−1, q k , qt). Theorem 4. The polynomial construction for a P P (t, k, q k , qt) given in Section 4 results in a (q, q)-SPP(t, k − 1, q k , qt). Proof. We already know that the polynomial construction gives rise to a P P (t, k, q k , qt), C = (cij ). To show that C is a (q, q)-SPP(t, k − 1, q k , qt). We need to show that for any 1 ≤ i ≤ q k and 1 ≤ j1 ≤ j2 . . . , jk−1 ≤ t, we have C[i; j1 , j2 , . . . , jk−1 ] = q. In other words, we need to show that for any k−1 distinct elements aj1 , . . . , ajk−1 ∈ GF (q), and any k − 1 elements α1 , . . . , αk−1 ∈ GF (q), there are exactly q polynomials g of degree at most k − 1 such that g(ai1 ) = α1 , . . . , g(aik−1 ) = αk−1 . (1) Indeed, choose a ∈ GF (q) \ {ai1 , . . . , aik−1 }, then a polynomial g satisfying (1) is uniquely determined by the value of g(a), there are q different possible choices for g(a) which in turn give rise to q possible polynomial polynomials satisfying (1). This proves our desired result. It should be noted that constructions for strong proxy patterns can also be based on error-correcting codes. The argument follows the one developed in Section 4.3. However, it is not clear how the parameters λ1 , λ2 are related to the parameters of the codes. We believe that it is an interesting problem for further research. 6 Conclusions In this work, we have studied one-time proxy signature schemes. Unlike other existing one-time proxy signature scheme that are constructed using public-key cryptography, we have proposed one-time proxy signatures based on one-way functions. These signatures preserve the basic functionalities and properties of one-time signatures (including their fast generation and verification) but also allow the primary signer to delegate the power of signing to a chosen proxy. The one-time proxy signatures permit full delegation for which potential verifiers are not able to distinguish primary signers from proxy. However, in case Efficient One-Time Proxy Signatures 521 of a dispute between the signers about the authorship of a signature, a trusted authority is able to run an algorithm to resolve the dispute. The algorithm asks the proxy to re-generate a signature for the disputed message. If the proxy is able to produce a signature different from the disputed one, then the true signer of the signature is the primary signer. Otherwise, the proxy has generated the signature. One-time proxy signatures can be especially useful where there is a need for fast generation and verification together with a need to share power of signing. Applications may include authentication of streams of packets in a distributed environment with mirror servers generating proxy signatures. Our approach is based on a combination of certain type of existing one-time signature with some combinatorial objects. While the former can be optimised using the known techniques in the literature, the latter are new combinatorial objects we introduce in this paper and so are of independent interest. In particular, the structures of strong proxy patterns are far from clear, and providing efficient constructions for them is an interesting research problem. Acknowledgement The work was in part supported by Australian Research Council Discovery grants DP0345366 and DP0344444. References 1. M. Abdalla and L. Reyzin. A new forward-secure digital signature scheme, Advances in Cryptology – Asiacrypt’00, LNCS, 1976(2000), 116-129. 2. J. N. E. Bos and D. Chaum. Provably unforgeable signature, Advances in Cryptology – Crypto’92, LNCS, 740(1993), 1-14. 3. M. Bellare and S. Micali. How to sign given any trapdoor function. Journal of Cryptology, 39(1992), 214-233. 4. D. Bleichenbacher and U. Maurer. Directed acyclic graphs, one-way functions and digital signatures, Advances in Cryptology – Crypto’94, LNCS, 839(1994), 75-82. 5. D. Bleichenbacher and U. Maurer. On the efficiency of one-time digital signatures, Advances in Cryptology – Asiacrypt’96, LNCS, 1163(1996), 145-158. 6. D. Bleichenbacher and U. Maurer. Optimal tree-based one-time digital signature schemes, STACS’96, LNCS, 1046(1996), 363-374. 7. C. Dwork and M. Naor. An efficient existentially unforgeable signature scheme and its applications, Advances in Cryptology – Crypto’94, LNCS, 839(1994), 234-246. 8. G. Di Crescenzo, T. Malkin and R. Ostrovsky. Single database private information retrieval implies oblivious transfer, Advances in Cryptology - Eurocrypt’00, LNCS, 2000, 122-138. 9. S. Even, O. Goldreich and S. Micali. On-line/off-line digital signatures, Journal of Cryptology, 9(1996), 35-67. 10. T. ElGamal. A public key cryptosystem and a signature scheme based on discrete logarithms, IEEE Transactions on Information Theory. 31(1985), 469-472. 11. S. Goldwasser, S. Micali and R. Rivest. A digital signature scheme secure against adaptive chosen-message attacks. SIAM Journal on Computing, 17(1988), 281-308. 522 Huaxiong Wang and Josef Pieprzyk 12. A. Hevia and D. Micciancio. The provable security of graph-based one-time signatures and extensions to algebraic signature schemes. Advances in Cryptology – Asiacrypt’02, LNCS, 2501(2002), 379-396. 13. T. P. Pedersen and B. Pfitzmann. Fail-stop signatures. SIAM Journal on Computing, 26/2(1997), 291–330. 14. Y.-C Hu, A. Perrig and D.B. Johnson. Packet Leashes: A defense against wormhole attacks in wireless Ad Hoc Networks. Proceedings of the 22nd Annual Joint Conference of the IEEE Computer and Communications Societies (INFOCOM 2003), 2003, to appear. 15. H. Kim, J. Baek, B. Lee and K. Kim. Secret Computation with secrets for mobile agent using one-time proxy signature. The 2001 Symposium on Cryptography and Information Security, Oiso, Japan. 16. L. Lamport. Constructing digital signatures from a one way function. Technical Report CSL-98, SRI International, 1979. 17. L. Lamport. Password authentication with insecure communication. Communication of the ACM, 24(11), 1981, 770-772. 18. B. Lee, H. Kim and K. Kim. Strong proxy signature and its applications. The 2001 Symposium on Cryptography and Information Security, Oiso, Japan. 19. M. Mambo, K. Usuda and E. Okamoto. Proxy signatures: Delegation of the power to sign messages. IEICE Trans. Fundamentals, Vol. E79-A (1996), 1338-1353. 20. R.C. Merkle. A digital signature based on a conventional function. Advances in Cryptology – Crypto’87, LNCS, 293(1987), 369-378. 21. R.C. Merkle. A certified digital signature. Advances in Cryptology – Crypto’87, LNCS, 435(1990), 218-238. 22. M. Naor and B. Pinkas. Oblivious transfer and polynomial evaluation. Proceedings of the 31st ACM Symposium on Theory of Computing, 1999, 245-254 23. M. Naor and B. Pinkas. Efficient oblivious transfer protocols. SODA01, 2001. 24. H. Niederreiter and C. P. Xing, Rational Points on Curves over Finite Fields: Theory and Applications, Cambridge University Press, LMS 285, 2001. 25. A. Perrig. The BiBa one-time signature and broadcast authentication. Eighth ACM Conference on Computer and Communication Security, ACM, 2001, 28-37. 26. J. Pieprzyk, H. Wang and C. Xing. Multiple-time signature schemes secure against adaptive chosen message attacks. the 10th annual workshop on Selected Areas in Cryptography (SAC03), LNCS, to appear. 27. M.O. Rabin. Digitalized signatures. Foundations of Secure Communication, Academic Press, 1978, 155-168. 28. M.O. Rabin. How to exchange secrets by oblivious transfer. Technical Report TR81, Harvard University, 1981. 29. R.L. Rivest, A. Shamir and L. Adleman. A method for obtaining digital signatures and public key cryptosystems. Communications of the ACM, 21(1978), 120-12. 30. L. Reyzin and N. Reyzin. Better than BiBa: Short one -time signatures with fast signing and verifying. Information Security and Privacy (ACISP02), LNCS, 2384(2002), 144-153. 31. R. Rivest and A. Shamir. PayWord and MicroMint: two simple micro payment schemes. Tech. Rep., MIT Lab. for Computer Science, 1996. 32. P. Rohatgi. A compact and fast hybrid signature scheme for multicast packet authentication. 6th ACM conference on Computer and Communication Security, 1999, 93-100. 33. W-G Tzeng. Efficient 1-out-n Oblivious Transfer Schemes. PKC’02, LNCS, 159171. View publication stats