The elliptic curve used in the DRM is an elliptic curve over the finite field , where
In base 16 the number is
and the group is cyclic with generator
Our heroes Nikita and Michael share digital music when they are not out fighting terrorists. When Nikita installed the DRM software on her computer, it generated a private key
which it hides in bits and pieces of files. In order for Nikita to play Juno Reactor's latest hit juno.wma, her web browser contacts a web site that sells music. After Nikita sends her credit card number, that web site allows Nikita to download a license file that allows her audio player to unlock and play juno.wma.
As we will see below, the license file was created using the ElGamal public-key cryptosystem in the group . Nikita can now use her license file to unlock juno.wma. However, when she shares both juno.wma and the license file with Michael, he is frustrated because even with the license his computer still does not play juno.wma. This is because Michael's computer does not know Nikita's computer's private key (the integer above), so Michael's computer can not decrypt the license file.
We now describe the ElGamal cryptosystem, which lends itself well to implementation in the group . To illustrate ElGamal, we describe how Nikita would set up an ElGamal cryptosystem that anyone could use to encrypt messages for her. Nikita chooses a prime , an elliptic curve over , and a point , and publishes , , and . She also chooses a random integer , which she keeps secret, and publishes . Her public key is the four-tuple .
Suppose Michael wishes to encrypt a message for Nikita. If the message is encoded as an element , Michael computes a random integer and the points and on . Then is encrypted as the pair . To decrypt the encrypted message, Nikita multiplies by her secret key to find , then subtracts this from to obtain
Returning out our story, Nikita's license file is an encrypted message to her. It contains the pair of points , where
into memory and computes
The -coordinate is the key that unlocks juno.wma.
If Nikita knew the private key that her computer generated, she could compute herself and unlock juno.wma and share her music with Michael. Beale Screamer found a weakness in the implementation of this system that allows Nikita to detetermine , which is not a huge surprise since is stored on her computer after all.
William 2007-06-01