An efficient multicast key management is achieved by using seals. A
security server generates a seal. In one embodiment, the seal contains a
key. In another embodiment, the seal contains information for generating
a key. An application server requests the seal from the security server
and broadcasts the seal to a plurality of recipients. A recipient wishing
to encrypt or decrypt a data stream transmits the received seal to the
security server to be opened. If the recipient is authorized, the
security server transmits a permit to the authorized recipient. In one
embodiment, the recipient generates a key from the permit. In another
embodiment, the permit is the key. If the recipient is a sender, the
recipient encrypts data using the key and broadcasts the same encrypted
data stream to all receivers. If the recipient is a receiver, the
recipient decrypts an encrypted data stream using the key. In one
embodiment, a seal with a corresponding offset value is sent periodically
in a data stream. In another embodiment, multiple instances of identical
seals are opened only once. In yet another embodiment, a seal is appended
to each datagram packet. In a further embodiment, a seal is appended to
any data stream.