Remote Digital Signing with Mobile Agents

 

O. Kaan Onbilger, Randy Chow, Richard Newman

 

Dept. of Computer and Information Science and Engineering, University of Florida,

Gainesville, FL 32611, USA

{onbilger, chow, nemo}@cise.ufl.edu

 

 

Abstract. Mobile Agents (MAs) are a promising technology with many interesting applications as an extension to distributed client/server computing. However, they also require additional support for security and interoperability. Recent research on MAs employing a group of agents for a single task seems to provide adequate solutions to the requirements of this technology, although further research is still needed in this area. To prove the capabilities of the technology, it is necessary to show that MAs are able to perform computations that can already be handled by distributed client/server applications. The most challenging part is to be able to compute with a secret in public, remotely. Digitally signing a document is such a computation that needs to be carried out by MAs. In this paper, we propose a multi-agent model together with simple secret splitting schemes for signing with shares of a key carried by members of a group of agents cooperating to accomplish a single task without the necessity of re-assembling the key. We explore and analyze the techniques, which use the well-known public-key cryptosystem implementations, and which conform to the established standards. Hence, we achieve a simple and ubiquitous solution with secret splitting in the multi-agent model, on a large scale environment which is the Internet. We also propose limited-liability keys with public key certificates to further improve security for MAs.

 

 


1  Introduction: The Multi-Agent Model

 

Mobile agents (MAs) are an approach to distributed computing employing the mobile code concept. An MA is an autonomous entity, which is composed of code, data and state information. They visit hosts (e.g., servers) possibly using an itinerary, perform some execution on those hosts using their codes and migrate with their state information from host to host. They act on behalf of their owners (i.e., senders). They are autonomous in the sense that they have all the knowledge needed to perform the assigned task on behalf of their owners. There are several application areas of MA systems (e.g., e-commerce and network management). Despite the benefits of MA paradigm such as being able to operate in disconnected mode in mobile computing and localized computation, which is realized by moving the code to data in contrast to the opposite in distributed client/server computing, there are two critical issues in the MA paradigm: security and interoperability among different MA systems. The security issue we address here is the problem of protecting MAs against malicious hosts.

 

In the classical MA model, a single MA performs a single task, which we call a mission. The term mission is the counterpart of the term session in client/server computing. A mission can represent any session that carries out a computation such as a database search, a network management activity or an e-commerce task, etc., using MAs. Figure 1.1 (a) illustrates the single agent model by showing a mission being carried out by an MA called Alice. The mission must be accomplished by visiting several hosts, which requires process migration from host to host. Alice computes (e.g., is being executed) in these hosts and returns home at the end of a successful mission in this case. Note that the illustration in Figure 1.1 (a) is a simplified generic case of a mission. It may not be necessary for an MA to return home and a same host might be visited multiple times in the same mission.

 

One of the open research issues in this single MA architecture model is the ability of computing with secrets in the public domain. In our recent work [1] on the design of an architecture for Mobile Agent Collaboration and Execution Support (MACES) system, we address this security issue as well as the problem of interoperability. In this architecture, we presented a multi-agent model for MAs. The multi-agent paradigm fits well with the concept of protection of an application as a whole. It is more difficult to compromise a task if the task is split into multiple collaborating agents. In the context of data secrecy, this is also referred to as information dispersal for security, which has been widely studied. The new definition of MA autonomy takes the form: “A group of agents is called ‘autonomous’ if they have the knowledge necessary to perform a single task, and they communicate and cooperate to perform that well-defined single task during a mission.”

 

Figure 1.1 (b) illustrates the model using the agents Alice, Bob, and Carol executing on three hosts A, B, and C respectively. In the model, we call one of the agents the master agent (distinguished by double circles in the figure), who actually visits the set of hosts that are necessary to complete the mission. This set of hosts is called the itinerary of the mission. The other agents are called support agents, who visit only the hosts outside of the itinerary of the master agent. Note that, the model that we describe here is the most generic multi-agent model. Variations of the model admit more than one master agent.

 

In Figure 1.1 (b), observe that these three hosts A, B, and C reside in three different network domains, A, B, and C respectively, which are shown as dashed ovals.


 


Note that the figure shows a snapshot of the agents at a specific time, therefore migration of the autonomous group of agents is not shown. In fact, the migration of an agent or agents in a group is more complicated in this model and requires support from an underlying system that is aware of the underlying network topology. The details of this MACES [1] system, such as determining the path of a single agent of a group or realizing the domain boundaries of the hosts involved in a mission, are outside the scope of this paper and are under active research. For now, we assume the existence of such a system.

 

Although the MA paradigm opens many interesting applications, to validate it as an alternative to traditional client/server computing, one must address its security issues. In particular, it should demonstrate the ability to compute with secrets in remote public domains.  A good example of the need for this is digitally signing a contract for e-commerce applications with MAs as shown in the paper by Sanders and Tschudin [2]. We call this problem remote digital signing. This paper proposes a multi-agent architecture and a solution to this problem. The techniques we explore and analyze are based on information dispersal in distributed system security terms as well as multisignatures and secret splitting in cryptographic terms. The idea is to devise a secure way of sharing secret keys among members of a multi-agent group and signing with shares for easy verification.

In the next section we summarize the remote digital signing problem along with the related work that addresses the problem. In Section 3, we present background information on multiple cryptography, on which the proposed solution for remote digital signing is based. Sections 4 present the secret splitting schemes using RSA and El Gamal cryptosystems, which can be employed by MAs using the multi-agent model. Section 5 presents a complete example of signing and verification of a document, employing the techniques given in Section 4. Section 6 presents the utilization of key certificates and introduces the limited-liability key concept for further protection of MA users’ long-term keys. Section 7 concludes the paper.

 

2  Related Work

 

Sander and Tschudin introduced the concept of Mobile Cryptography in 1998 [2]. The idea is to encrypt agents as a whole and apply computing with encrypted functions and data. Although it is limited to polynomial and rational functions, this is a good example of a software solution to the MA security problem that is based solely on cryptography. In the same paper they also introduced the concept of “undetachable digital signatures.” They point out that this is a possible realization of  “… an agent would like to use the secret in public e.g., to compute the digital signature of an order form but without disclosing the secret needed to do so.” They provide a solution using rational functions. They also point out that the scheme on which their proposal is based has been successfully attacked.

 

Kotzanikolaou et al. proposed a solution [3] to the problem introduced by Sander and Tschudin. They use RSA [4], which is based on exponential functions rather than rational functions. However, as the term “undetachable digital signatures” implies, the solution given in [3] requires that the signature be generated by the user (i.e., owner of the agent) and given to the agent before the mission takes place. This contradicts MA autonomy. This is due to the fact that the purchase decision has to be made strictly before negotiation with the sellers. User constraints, which have to be signed before these negotiations, therefore need to be pure data. However, it is desirable that a decision function be executed after or during the negotiation or bargaining process. This means that agents should be capable of deciding what to buy, where to buy, under what conditions, price, type of payment, delivery options, etc. For example, the user demand should be able to be stated as flexibly as possible with “I would like to purchase as many blank rewritable CDs as possible and I’ve got $100.” The result of the decision function will have a direct effect of the contract to be signed. Therefore what we need is to make the agents capable of computing with secrets in public as the quoted sentence in the previous paragraph implies. Without this capability, either the user must have a perfect knowledge of market conditions that might change rapidly, or user interaction during the mission is necessary. In the former case it is highly possible that the mission may fail, in the latter, autonomy is sacrificed. The problem arises from the fact that a malicious host should not be able to manipulate or directly use the agent in order to sign “arbitrary” documents. On the other hand, agents should also be capable of preparing the documents to be signed. The challenge is to resolve this contradiction.

 

3  Multiple Cryptography

Multiple cryptography, as the name implies, covers the cryptosystems that deal with more than two parties as opposed to the classical cryptography where there are only two parties: the one who encrypts or signs and the other who decrypts or verifies. In fact, there are many real-world applications that have multiple parties involved. For example, in a banking application, electronic fund transfers require approvals of bank officials of different ranks. Usually, at least two people are involved for a single transaction.

 

Our focus in this paper is on multiple digital signatures or multisignatures, which is a special case of multiple cryptography. Boyd, in [5] shows the generalization of RSA and use it as a multisignature scheme. A brief explanation of Boyd’s work, which is related to our application is given in Section 4.

 

Multiple cryptography, in general, is intended for classical applications (e.g., a banking application). In these applications, shareholders are usually individuals who represent an organization or a company. There is an important distinction between these applications and the MA applications. MAs are nothing but software entities. They are neither organizations nor individuals. Moreover, they are owned by individuals or organizations. In fact, it can be argued that, the MA owner and a bank have some kind of resemblance. So, the officials of the bank and the MA perform similar operations when signing a document. While this is not wrong, the actual difference comes from the fact that, MA owners are active players, while organizations or companies like a bank are not. A bank is actually an abstraction and cannot for example sign a document. But in the case of a human MA owner, this individual can equally sign documents him/herself. Also, the shareholders do not always exist. They are created when necessary and after they complete their work they cease to exist.

 

In addition to the threshold schemes like Shamir’s [6], techniques which are known as threshold cryptography

for the purpose of not only sharing keys but also being able to compute with them without a central authority, have been proposed. A threshold multisignature scheme, for example, has been given by Frankel and Desmedt [7]. Nevertheless, threshold schemes do not have specific advantages over simple secret splitting techniques we are using, with MAs. While it is feasible to use these secret splitting schemes to both share the keys and compute with them, it is also feasible to come up with very simple techniques to create multiple combinations of keys for providing fault-tolerance. On the other hand, in our application, secret splitting has two important advantages: simplicity and ubiquity. We use very simple secret splitting schemes, which use only addition and multiplication. The secret splitting schemes we use require nothing but the implementations of the standard public key cryptosystems, namely, de facto industry standard RSA and the official Digital Signature Standard (DSS), which is based on El Gamal public key scheme. So, these schemes do not need any new algorithms or an implementation of those algorithms. It should also be noted that what makes it possible to use these simple secret splitting schemes with the El Gamal cryptosystem and DSS is the unique property of the application that the whole secrets and all of the shares are to be computed and known by the MA owner; therefore it is possible to perform computations in advance to be used later when the complete signature is computed. Details of these computations are given in Section 5.

 

4  Key Splitting and Signature Generation

 

Boyd, by using the multiplicative property of RSA, showed that the classical RSA is actually a specialization of a general multisignature scheme [5]. For an RSA implementation for sequential signing, we will use this property. Boyd, in [8] also mentions about a similar technique, which enables to perform signature generation in parallel. This is the RSA part of the techniques we will use in parallel signing. Note that, both techniques use nothing but original RSA signing and verification algorithms. In the following subsections we present techniques to do the same with El Gamal Cryptosystem, which again use original signing and verification procedures, by using a property that is unique to MAs, as explained.

 

4.1  Using El Gamal Public Key Cryptosystem

 

Here we use a variant of the original El Gamal signature scheme as given in Kaufman et al [9]. There are two reasons to do this. First is, this scheme is simpler and it is easy to compute with partial keys. The other reason is that, the scheme is actually the El Gamal version used in DSS, which in turn is based on the original idea introduced by El Gamal [10]. So this scheme will enable us an easy transition from El Gamal to DSS, which has been published as a standard. The transition is given in Section 4.1.3. The El Gamal variant that we use is summarized below [9]:

 

·       Long term public key: <g, p, T>,  secret key: S, where gS mod p = T

·       For a message m choose random number Sm compute , and message digest dm  (digest of m | Tm)

·       Sign with  X = Sm + dm  S  mod (p – 1),

·       Verify by 

 

4.1.1  Signing in Sequence with El Gamal Signature Scheme

 

The El Gamal cryptosystem uses a pair of private keys as opposed to RSA’s single key. The first one is the long term key as in the RSA. The second is a short-term, per session, private key for each message to be signed with the long-term key. We split up both of these keys as follows:

Long-term key:

Short-term key:.

Here we assume again that our MA group consists of three agents, namely, Alice, Bob and Carol. Alice is the master and the others are support agents.

 

To sign a message, Alice computes the message digest and signs with

Then, she sends her partial signature to Bob. Bob, upon receiving Alice’s signature , further signs it with his portions of partial keys as

Carol does the same on , which represent the partial signature generated by Alice and Bob,

Unfortunately, this last equation above, unlike the RSA counterpart, is not equal to the signature X, although the last term of the equation is nothing but the last term of the original signing equation:

.

This leads us to the observation that the difference between the target signature X and the signature generated by the three agents Xc is

Since the right hand side of the equation consists only of constants and  partial private keys, it can easily be computed and given to agents before the agents are sent out to the network. This ability is unique to the application that we consider in this paper. In the classical applications of digital multisignatures and threshold signatures, it is not possible to perform the same computation since the signatories are distinct parties and the secrets they share cannot exist in a single site as a whole. So the last agent in the row, Carol, sends the partial signature Xc to Alice. Alice computes X, the target complete signature by using the equation above. The general difference equation for n signatories (e.g., agents) is

 

4.1.2  Signing in Parallel with El Gamal Signature Scheme

 

Signing in parallel with the same variant of El Gamal cryptosystem is also possible and even easier. For this purpose we split up the keys as follows:

Long-term key:

Short-term key:

Then, each agent is given the partial keys. They sign independently of each other as

and the support agents send their partial signatures to the master agent. Together with the master agent’s signature, the server combines the partial signatures and obtains the complete signature as follows

The scheme can be generalized to n signatories in the obvious way.

 

4.1.3  Transition from El Gamal Cryptosystem to Digital Signature Standard

 

Due to space considerations, we will neither provide the details of DSS nor the details of the signature generation by partial keys. However, we will give the differences between the El Gamal scheme presented in previous sections and DSS.

 

The signing equation in DSS is given by

where  is the multiplicative inverse of . Therefore it can be calculated in advance and instead of splitting up we can just as easily split up .

 

Signing in Sequence with DSS

 

The key splitting is performed as follows:

 

Long-term key:

Short-term key (inverse):.

The signing process is very similar to El Gamal as in Section 5.2. However the difference in this case is given by

For n signatories (i.e., agents), the general difference equation is

The difference from Section 4.1.1 here is mainly the term , which is the per session public key.

 

Signing in Parallel with DSS

 

The key splitting, signing and signature combination calculations here are very similar to those in Section 4.1.2. However, the combined value is not equal to the target complete signature X. Therefore we call this value X’ and the difference is given by

 

For n signatories (i.e., agents), the general difference equation is

 

5  The Overall System for Remote Digital Signing

 


As seen in section 4, there are two major multi-signature schemes: sequential and parallel. Figures 5.1 and 5.2 provide the overall system of signing and verification processes as part of an MA mission, for sequential and parallel signature generation schemes, respectively. In this section, we discuss these protocols, compare them with respect to assumptions made and the analysis of attacks possible against each scheme.

 


Please note that, in this paper we do not address fully the overall security issues necessary for a whole MA mission. Signature generation is actually an integral part of the whole mission. However we provide the protection mechanisms when necessary in addition to the signature generation process to make this process more meaningful.

 

In both of the protocols, the first part is to obtain the bid of the server along with the signature for this offer and then verify this signature in steps 1 through 4. After Alice obtains server’s signature, she sends it to both Bob and Carol. Signature verification is carried out by both Bob and Carol independently on different hosts in different domains. It would not make sense to let Alice verify the signature since Alice is under complete control of the very same host that made the offer.

Step 5 in Figure 5.1 contains the contract preparation process done by Bob. The protocol assumes that Host B does not have any interest in forging the computation as does Host A. Although the chances are low, this assumption is not enough for a convincing level of security, since a denial-of-service attack by Host B is possible. This is due to the drawback of this protocol that there is no way to check whether the contract signed by the first agent in the row is correct. This is true regardless of the fact that the decision function is executed in cooperation with all the members of the group. However, this drawback does not make the protocol totally inappropriate because even an attack cannot be prevented, it would be detected in Step 11 when the host attempts to verify the signature. Nevertheless, it is not possible to tell which host is cheating. The parallel signature generation scheme does not have this drawback as we see next.

 

In Figure 5.2, Step 5 states that all agents prepare the contract to be signed. This is possible since Bob and Carol receive the server’s offer from Alice. Furthermore, any decision function that needs to be executed to reach the decision for actual purchase is shared by three agents and executed in cooperation. However, it is also possible for any one agent to prepare the contract and communicate it to the others. Once the contract is obtained either way, agents sign it with their shares of the private key for the chosen algorithm as described in section 4. Step 6 says that Bob and Carol send their signatures back to Alice, and in Step 7, Alice combines them to obtain the fully signed contract. This means that combining the partial signatures takes place in the host where Alice resides. This is because there is no trusted authority to ask for this computation. But for the application under consideration, there is no need for it, either, since there is no known attack possible.

 

 

 

6  Using Limited-liability Keys and Public Key Certificates

 

Our multi-agent model provides a high level of security by making it difficult to compromise all the agents, which together form an autonomous group. However,

the secret, which is a private key of the agent owner, is an extremely sensitive piece of information. Revealing user’s shopping preferences or losing electronic cash is certainly undesirable, but in essence a part of our daily lives since we have just enough security to protect these valuables. It is always possible that these could be lost or stolen. But a forged signature under a document may mean “anything” and may not be tolerable or acceptable. So even a very small chance of the whole group of agents being compromised may not be acceptable since the consequence of this malicious action is revealing the private key of the user. Therefore we define two types of public/private key pairs as follows.

 

Long-term public/private key pairs: These are the long-term keys, which are created, registered and assigned to the user (who becomes the owner of the keys) by a Certificate Authority (CA). The lifetime of these keys are again decided by the same authority.

 

Limited-liability public/private key pairs: These are the short-term keys, which are created by the very same user (owner of the keys). Since the creators of the keys are the users themselves they also are the authority to decide the lifetime of the keys.

 


There are two limitations that can be imposed on the limited-liability keys. The first one is the lifetime of the key and the second one is what can be done (i.e., signed) with these keys. Both of these limitations can be flexible or restrictive and is up to the owner of the keys. For example, the lifetime of a key may vary from a single MA mission, which may be limited to a couple of minutes, to a total of a couple of days that spans several different missions. Liability definition says what exactly can be signed with these keys. For example, a typical definition may say that these keys can only be used in an e-commerce transaction and the amount that could be involved in such a transaction cannot exceed $500. The other type of limitation that can be imposed is the type of the transaction. For example, it can be stated that, with these keys only one mobile phone, one color printer or one DVD player purchase contract can be signed.

 


The problem with this scheme is the authenticity of this new pair of keys. One possible solution would be to register this pair of new keys with a CA and obtain a certificate, or ask the CA directly for a pair of new keys. Nevertheless, this solution does not make much sense, since this introduces an overhead of obtaining a new key for every single transaction from a CA, which could easily become unmanageable. Instead, the user creates this key and a certificate for this key by using his/her long-term key. The idea is that the user obtains only a single public key and a certificate for it from a CA. Using this certificate and public key, it is possible for the very same user to create and use unlimited number of other public keys. The key point here is that these new keys are certified by their owners. That is, the user in essence becomes a CA for the agents he/she sends on missions.

 

It may seem at first that the scheme explained in this section provides enough security for the limited-liability private key. This is due to the fact that what can be signed by this key is restricted by the certificate provided for it. However, it is not so for two reasons. First problem is the same problem that the undetachable signature schemes have as explained in section 2, which is the difference between the limitation of what can be signed and what actually is signed. The second problem is that an attack is possible by any host visited. Any such host for example might learn the complete limited-liability private key from agent Alice, and then can sign a contract to sell something. Also, even if the support agents are involved in the decision function to be executed, this is not enough since the single agent who possesses the complete key could be manipulated. The long and the short of it is that this scheme when used alone could open a can of worms. Therefore, the limited-liability keys are protected by splitting them up and giving them to members of a group of MAs. Their usage, on the other hand, is protected by the certificate created by the user using the long-term key.

The complete protocol for using the certificates and limited-liability keys for agents is given in Figure 6.1. In the protocol, P and S represent the long-term public and private keys respectively and p and s represent the limited-liability keys. The protocol assumes that user already has P and S. Note that P, S, p and s, are symbols for the private and public keys, for example in the case

 

 

of RSA, P and p indicate (E, N) and (e, n) respectively. The certificate contains p and the description of the liability. Any document, which is signed with s and therefore can be verified by p, should conform to this description to be valid.

 

Note that a certificate chain that would also include CA's certificate for (P, S) rules out the necessity for the server to connect the CA and ask for verification.

 

Now let’s look at what can and cannot be accomplished with these limited time and liability keys and what can go wrong. The analysis involves three parties that can act maliciously; agent owner, the host to which a signature is provided, and third parties, which could presumably acquire the limited-liability private key. Since the private/public key pair is arbitrary, meaning that they are neither created nor registered by a CA, the host on which the transaction took place may sign a contract that states that the agent purchased 500 mobile phones for the price of $100 each. Since the host also knows the credit card information of the user, it can perform a transaction and bill the user’s credit card for this transaction. The solution to the dispute requires the proof of the user’s demand for this kind of purchase. But the certificate which is signed by user’s long-term private key pair states that the transaction amount may not exceed $500 and it is only valid for a purchase of a single mobile phone. Therefore there is no way for the host to prove such claim.

 

Now, suppose that a third party was able to compromise all the agents in a group and therefore acquire the limited-liability key. Then this party could sign an arbitrary contract on behalf of the user by masquerading as the user. In this case, however, it is not possible to bind the user to this contract since there is no certificate signed by the user using the long-term private key. So, such signed document is invalid because the user can deny it rightfully.

 

Third attack involves a malicious user, and is known as non-repudiation problem. The user cannot deny a contract that states a purchase demand that conforms what is stated in the certificate signed by the user’s long-term private key. This is what we expect since this is the aim of the certificate and is completely legitimate. Also, the user cannot deny the legitimacy of a contract by claiming that the contract was signed after the limited-liability key had been expired. That is because agents are supposed to check whether the expiration date and time has passed. On the other hand, as explained in the previous paragraph, the user can deny any illegitimate contract signed by the limited-liability key that does not conform to the certificate. Similarly, the user can use the limited-liability key to sign a document that does not conform to the definition of the liability and then deny its correctness. But, because this key is not registered by any central authority, it is not possible to present a CA certificate for this key. So, it is the responsibility of the party to check the legitimacy of the key by either asking for a CA certificate or directly checking the legitimacy of the key by asking the CA.

 

7  Conclusion

This paper carefully examines the implementation of remote digital signing, which is a special case of computing with secrets in the public domain, within a larger picture of supporting multi-agent computing. The solution approach is based on secret sharing and the concept of protection as a whole. In addition to well-known multiplicative and additive properties of the RSA, similar techniques with El Gamal public-key cryptosystem are demonstrated to show their applicability in the MA systems.  Although threshold multisignature schemes fit well into the application, it may not be feasible and even reasonable to provide the implementations of these schemes to the MAs.  Moreover, the advantage of the techniques we presented in this paper is that they use nothing but original signing and verification algorithms of RSA and DSS, which are well known and widely used. In this sense, these simple schemes address the ubiquity in a large scale MA execution environment like the Internet.

 

The MA security problem is not limited to signature generation, however. In fact, signing a document is supposed to be a part of an MA mission. A complete solution to the problem of protection against malicious hosts is still to be addressed in our future work. The novel ideas to secure the execution of agents using a multi-agent model were presented previously [1]. However, as we have presented in this paper, even the most challenging part of the problem, computing with secrets by MAs, is feasible using the multi-agent model.

 

It is shown that both parallel and sequential signature generation schemes are possible. There are important properties of each scheme. The former one provides data integrity since each agent in the group signs the original document, therefore can check its integrity. However, in this scheme there is no confidentiality for the document to be signed. The latter scheme provides data confidentiality only if signing process begins at the server, where the master agent is being executed. The other hosts, where the support agents are running, can not see the document in clear, assuming the partially signed documents have enough strength against cryptanalysis. The schemes presented in this paper address authenticity rather than data confidentiality.

 

References

 

1.        Onbilger, O.K., Newman, R., Chow, R., “A Distributed and Compromise-tolerant Mobile Agent Protection Scheme,” In Proceedings of International Conference on Intelligent Agents, Web Technologies and Internet Commerce – IAWTIC 2001, pp. 394-400.

2.        Sander, T., Tschudin, C.F., “Protecting mobile agents against malicious hosts,” Mobile Agents and Security, LNCS 1419, pp. 44-60, 1998.

3.        Kotzanikolaou, P., Burmester, M., Chrissikopoulos, V., “Secure Transactions with Agents in Hostile Environments,” LNCS 1841, pp.289-297, Springer 2000.

4.        Rivest, R.L., Shamir, A., Adleman, L., “A Method for Obtaining Digital Signatures and Public-Key Cryptosystems,” Communications of the ACM, v.21, n.2, pp. 120-126, 1978.

5.        Boyd, C., “Some Applications of Multiple Key Ciphers,” LNCS 330, Advances in Cryptology, EUROCRYPT’88 Proceedings, 1988.

6.        Shamir, A., “How to Share a Secret,” Communications of the ACM, v.22, n.11, November 1979.

7.        Frankel, Y., Desmedt, Y.G., “Parallel Reliable Threshold Multisignature,” Tech. Report: Department of E.E. and C.S. University of Wisconsin-Milwaukee, TR-92-04-02, April 1992.

8.        Boyd, C., “Digital Multisignatures,” Cryptography and Coding, pp. 241-246, 1989.

9.        Kaufman, C., Perlman, R., Speciner, M., Network Security, (Prentice Hall, 1995).

10.     El Gamal, T., “A Public Key Cryptosystem and a Signature Scheme Based on Discrete Logarithms,” IEEE Transactions on Information Theory, Vol. IT-31, No. 4, July 1985.