The elliptic curve used in the DRM is an elliptic curve over the
finite field 
 , where
, where
 
In base 16 the number
 is
 is 
 ,
, 
 , and
, and  .
The elliptic curve
.
The elliptic curve  is
 is
|  |  | |
|  | 
 
and the group
 is cyclic with generator
 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
.
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.
 above),
so Michael's computer can not decrypt the license file.
![\includegraphics[width=1.9in]{graphics/juno.eps}](img2252.png) 
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
.  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
, an
elliptic curve  over
 over 
 , and a point
, and a point 
 , and
publishes
, and
publishes  ,
,  , and
, and  .  She also chooses a random integer
.  She also chooses a random integer  ,
which she keeps secret, and publishes
,
which she keeps secret, and publishes  .  Her public key is the
four-tuple
.  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
,
Michael computes a random integer  and the
points
 and the
points  and
 and  on
 on 
 .  
Then
.  
Then  is encrypted as the pair
 is encrypted as the pair
 . To decrypt the encrypted message,
Nikita multiplies
. To decrypt the encrypted message,
Nikita multiplies  by her secret key
 by her secret key  to find
to find 
 , then subtracts this from
, then subtracts this from
 to obtain
 to obtain
  
 
 .
.
Returning out our story, 
Nikita's license file is an encrypted message to her.
It contains the pair of points
 , where
, where
|  |  | |
|  | 
|  |  | |
|  | 
 
into memory and computes
|  |  | |
|  | 
 to obtain
 to obtain
|  |  | |
|  | 
The  -coordinate
-coordinate 
 is the 
key that unlocks juno.wma.
 is the 
key that unlocks juno.wma.
If Nikita knew the private key  that her computer generated, she
could compute
 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
 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
,
which is not a huge surprise since  is stored on her computer after
all.
 is stored on her computer after
all.
William 2007-06-01