An apparatus comprising an encryption processor and a signing processor is provided. The encryption processor takes a data message and provides an encryption using an encryption process. The signing processor takes the encryption and adds a signature to the encryption using a signing process. The encryption processor can employ EIGamal encryption. The encryption processor may use a function of the encryption to perform the signing process. The signing processor may perform a Schnorr signature process for the signing process. The signing processor uses part of the encryption process to perform the signing process, such as a random number used during the encryption process.
A fast encryption method particularly useful for long message lengths is provided. A message m is encrypted using a transmitter secret key z to form a quantity E. A transmitter processor prepares a quadruplet (a.sub.new, b.sub.new,s.sub.new, E) where: As in previous embodiments y=g.sup.x modulo p is the public key and x is the receiver secret key. The parameters g, x, and p according to methods known to a person skilled in the art and the parameter g is a generator of the group G.sub.p. The parameter c is a random number. The transmitter processor sends the quadruplet (a.sub.new, b.sub.new,s.sub.new, E) to a receiver processor. The receiver processor verifies the signature on s.sub.new using methods known in the art. The receiver processor then decrypts a.sub.new and b.sub.new using the receiver secret key x to get the transmitter secret key z, i.e. in the following manner z=a.sub.new /b.sub.new.sup.x. The receiver processor uses the transmitter secret key z to decrypt E to get the message M.