(57)【要約】  ＥｌＧａｍａｌ暗号を用いる場合に、暗号文が従来より短くなるようなコンテンツ配信システムを提供する。コンテンツ配信装置は、コンテンツ鍵について、楕円曲線上の暗号演算を行って楕円曲線上の点のｘ座標値を生成し、生成した前記ｘ座標値を含む暗号化コンテンツ鍵を生成し、生成した暗号化コンテンツ鍵を出力する。コンテンツ視聴装置は、暗号化コンテンツ鍵を取得し、取得した前記暗号化コンテンツ鍵に含まれる前記ｘ座標値を持つ楕円曲線上の点のｙ座標値を算出し、前記ｘ座標値と前記ｙ座標値からなる楕円曲線上の点と、前記暗号化コンテンツ鍵の他の部分とを用いて、楕円曲線上の復号演算を行って、復号コンテンツ鍵を生成する。
2007507742.tif 000002
【特許請求の範囲】
【請求項１】
楕円曲線上の離散対数問題を安全性の根拠として、平文を秘密に伝達する情報伝達システムであって、暗号装置と復号装置とから構成され、
前記暗号装置は、
平文を記憶している記憶手段と、
前記平文について、楕円曲線上の暗号演算を行って楕円曲線上の暗号点のｘ座標値を生成し、生成した前記ｘ座標値を含む暗号文を生成する暗号化手段と、
生成した暗号文を出力する出力手段とを含み、
前記復号装置は、
前記暗号文を取得する取得手段と、
取得した前記暗号文に含まれる前記ｘ座標値を持つ楕円曲線上の前記暗号点のｙ座標値を算出し、前記ｘ座標値と前記ｙ座標値からなる楕円曲線上の暗号点と、前記暗号文の他の部分とを用いて、楕円曲線上の復号演算を行って、復号文を生成する復号手段とを含む
ことを特徴とする情報伝達システム。
【請求項２】
楕円曲線上の離散対数問題を安全性の根拠として、平文を秘密に出力する暗号装置であって、
平文を記憶している記憶手段と、
前記平文について、楕円曲線上の暗号演算を行って楕円曲線上の暗号点のｘ座標値を生成し、生成した前記ｘ座標値を含む暗号文を生成する暗号化手段と、
生成した暗号文を出力する出力手段と
を備えることを特徴とする暗号装置。
【請求項３】
前記記憶手段は、スカラ値である前記平文を記憶しており、
前記暗号化手段は、
スカラ値である乱数を生成する乱数生成部と、
楕円曲線上のベース点に、前記乱数を乗じてベース乗算点を算出する第１演算部と、
楕円曲線上の公開鍵点に、前記乱数を乗じて公開鍵乗算点を算出する第２演算部と、
前記平文に、楕円曲線上の点への変換関数を施して、楕円曲線上の平文点を生成する変換部と、
前記平文点と前記公開鍵乗算点との加算を用いて、平文加算点を算出する第３演算部と、
前記ベース乗算点からｘ座標値を抽出し、抽出したｘ座標値及び前記平文加算点から構成される前記暗号文を生成する生成部と
を含むことを特徴とする請求項２に記載の暗号装置。
【請求項４】
前記第３演算部は、所定の条件を満たすか否かを判断し、満たすと判断する場合に、前記平文点に前記公開鍵乗算点を加算して前記平文加算点を算出し、満たさないと判断される場合に、前記平文点に前記公開鍵乗算点を加算し、得られた値の負の値を前記平文加算点とする
ことを特徴とする請求項３に記載の暗号装置。
【請求項５】
有限体ＧＦ（ｐ）上の楕円曲線をｙ2 ＝ｘ3 ＋ａ×ｘ＋ｂとし、ｐは素数であり、
前記第３演算部は、前記ベース乗算点のｙ座標値が、（ｐ−１）／２より小さいか否かを判断し、小さいと判断される場合に、前記平文点に前記公開鍵乗算点を加算して前記平文加算点を算出し、小さくないと判断される場合に、前記平文点に前記公開鍵乗算点を加算し、得られた値の負の値を前記平文加算点とする
ことを特徴とする請求項４に記載の暗号装置。
【請求項６】
有限体ＧＦ（２m ）上の楕円曲線をｙ2 ＋ｘｙ＝ｘ3 ＋ａｘ2 ＋ｂとし、ｍは自然数であり、ＧＦ（２m ）の生成多項式をｆ（ｘ）とし、その根をαとし、
前記第３演算部は、前記ベース乗算点のｘ座標値のαの生成多項式の係数が０でない項のうち、最も小さい次数をｓとし、
前記ベース乗算点のｙ座標値のαの生成多項式の項αs の係数が、ｘ座標値のαの生成多項式の項αs の係数と等しいか否かを判断し、等しいと判断される場合、前記平文点に前記公開鍵乗算点を加算して前記平文加算点を算出し、等しくないと判断される場合に、前記平文点に前記公開鍵乗算点を加算し、得られた値の負の値を前記平文加算点とする
ことを特徴とする請求項４に記載の暗号装置。
【請求項７】
有限体ＧＦ（ｐ）上の楕円曲線をｙ2 ＝ｘ3 ＋ａ×ｘ＋ｂとし、ｐは素数であり、
前記記憶手段は、スカラ値である前記平文を記憶しており、
前記暗号化手段は、
スカラ値である乱数を生成する乱数生成部と、
楕円曲線上の公開鍵点に、前記乱数を乗じて公開鍵乗算点を算出する第２演算部と、
前記平文に、楕円曲線上の点への変換関数を施して、楕円曲線上の平文点を生成する変換部と、
前記平文点と前記公開鍵乗算点とを加算して、平文加算点を算出する第３演算部と、
前記平文加算点のｙ座標値が、（ｐ−１）／２より小さいか否かを判断し、小さいと判断される場合に、楕円曲線上のベース点に、前記乱数を乗じてベース乗算点を算出し、小さくないと判断される場合に、楕円曲線上のベース点に、前記乱数の負の値を乗じてベース乗算点を算出する第１演算部と、
前記平文加算点からｘ座標値を抽出し、抽出したｘ座標値及び前記ベース乗算点から構成される前記暗号文を生成する生成部と
を含むことを特徴とする請求項２に記載の暗号装置。
【請求項８】
有限体ＧＦ（ｐ）上の楕円曲線をｙ2 ＝ｘ3 ＋ａ×ｘ＋ｂとし、ｐは素数であり、
前記記憶手段は、スカラ値である前記平文を記憶しており、
前記暗号化手段は、
スカラ値である乱数を生成する乱数生成部と、
楕円曲線上のベース点に、前記乱数を乗じてベース乗算点を算出する第１演算部と、
楕円曲線上の公開鍵点に、前記乱数を乗じて公開鍵乗算点を算出する第２演算部と、
前記平文と、前記公開鍵乗算点のｘ座標値とに排他的論理和を施して、前記楕円曲線上の排他論理和値を生成する第３演算部と、
第３演算部により生成された前記排他論理和値と、前記暗号点としての前記ベース乗算点のｘ座標値とから構成される前記暗号文を生成する生成部と
を含むことを特徴とする請求項２に記載の暗号装置。
【請求項９】
前記記憶手段に記憶されている前記平文は、コンテンツ鍵であり、
前記暗号化手段は、前記コンテンツ鍵を暗号化して前記暗号文を生成し、
前記暗号装置は、さらに、
前記コンテンツ鍵を用いて、コンテンツに暗号化を施して暗号化コンテンツを生成するコンテンツ暗号手段と、
生成した前記暗号化コンテンツを出力するコンテンツ出力手段と
を含むことを特徴とする請求項２に記載の暗号装置。
【請求項１０】
楕円曲線上の離散対数問題を安全性の根拠として、伝達された暗号文を復号する復号装置であって、
前記暗号文は、平文について、楕円曲線上の暗号演算を行って生成された楕円曲線上の暗号点のｘ座標値を含み、
前記復号装置は、
前記暗号文を取得する取得手段と、
取得した前記暗号文に含まれる前記ｘ座標を持つ楕円曲線上の前記暗号点のｙ座標値を算出し、前記ｘ座標値と前記ｙ座標値からなる楕円曲線上の前記暗号点と、前記暗号文の他の部分とを用いて、楕円曲線上の復号演算を行って、復号文を生成する復号手段と
を備えることを特徴とする復号装置。
【請求項１１】
有限体ＧＦ（ｐ）上の楕円曲線をｙ2 ＝ｘ3 ＋ａ×ｘ＋ｂとし、ｐは素数であり、
前記取得手段は、請求項５の暗号装置から、前記暗号文を取得し、
前記復号手段は、
楕円曲線の定義式ｙ2 ＝ｘ3 ＋ａ×ｘ＋ｂに、取得した前記暗号文に含まれる前記ｘ座標値を代入し、その２個の平方根を算出し、算出された２個の平方根のうち、（ｐ−１）／２より小さい方を選択し、前記暗号文に含まれる前記ｘ座標値と選択された前記平方根とからなる楕円曲線上の第１復号点を生成する平方根計算部と、
生成された第１復号点に、スカラ値である秘密鍵を乗じて、秘密鍵復号点を算出し、前記公開鍵点は、前記ベース点に前記秘密鍵を乗じて得られた楕円曲線上の点であるスカラ倍点計算部と、
取得した前記暗号文に含まれる平文加算点から前記秘密鍵復号点を減じ、得られた値にスカラ値への逆変換関数を施して、スカラ値である復号文を生成する復号文計算部と
を含むことを特徴とする請求項１０に記載の復号装置。
【請求項１２】
有限体ＧＦ（２m ）上の楕円曲線をｙ2 ＋ｘｙ＝ｘ3 ＋ａｘ2 ＋ｂとし、ｍは自然数であり、ＧＦ（２m ）の生成多項式をｆ（ｘ）とし、その根をαとし、
前記取得手段は、請求項６の暗号装置から、前記暗号文を取得し、
前記復号手段は、
取得した前記暗号文に含まれる前記ｘ座標値のαの生成多項式の係数が０でない項のうち、最も小さい次数をｓとする第１演算部と、
楕円曲線の定義式ｙ2 ＋ｘｙ＝ｘ3 ＋ａｘ2 ＋ｂに、取得した前記暗号文に含まれる前記ｘ座標値を代入し、その２個の解を算出し、算出された２個の解から、解のαの生成多項式の項αs の係数が前記ｘ座標値のαの生成多項式の項αs の係数と等しい方を選択し、前記ｘ座標値と選択された解とからなる第１復号点を生成する解計算部と、
生成された第１復号点に、スカラ値である秘密鍵を乗じて、秘密鍵復号点を算出し、前記公開鍵点は、前記ベース点に前記秘密鍵を乗じて得られる楕円曲線上の点であるスカラ倍点計算部と、
取得した前記暗号文に含まれる前記平文加算点から前記秘密鍵復号点を減じ、得られた値にスカラ値への逆変換関数を施して、スカラ値である復号文を生成する復号文計算部と
を含むことを特徴とする請求項１０に記載の復号装置。
【請求項１３】
有限体ＧＦ（ｐ）上の楕円曲線をｙ2 ＝ｘ3 ＋ａ×ｘ＋ｂとし、ｐは素数であり、
前記取得手段は、請求項７の暗号装置から、前記暗号文を取得し、
前記復号手段は、
楕円曲線の定義式ｙ2 ＝ｘ3 ＋ａ×ｘ＋ｂに、取得した前記暗号文に含まれる前記ｘ座標値を代入し、その２個の平方根を算出し、算出された２個の平方根のうち（ｐ−１）／２より小さい方を選択し、前記暗号文に含まれる前記ｘ座標値と選択された前記平方根とからなる楕円曲線上の第２復号点を生成する平方根計算部と、
取得した前記暗号文に含まれるベース乗算点に、スカラ値である秘密鍵を乗じて、秘密鍵復号点を算出し、前記公開鍵点は、前記ベース点に前記秘密鍵を乗じて得られた楕円曲線上の点であるスカラ倍点計算部と、
生成した第２復号点から前記秘密鍵復号点を減じ、得られた値にスカラ値への逆変換関数を施して、スカラ値である復号文を生成する復号文計算部と
を含むことを特徴とする請求項１０に記載の復号装置。
【請求項１４】
前記取得手段は、請求項８の暗号装置から、前記暗号文を取得し、
有限体ＧＦ（ｐ）上の楕円曲線をｙ2 ＝ｘ3 ＋ａ×ｘ＋ｂとし、ｐは素数であり、
前記復号手段は、
楕円曲線の定義式ｙ2 ＝ｘ3 ＋ａ×ｘ＋ｂに、取得した前記暗号文に含まれる前記暗号点の前記ｘ座標値を代入し、その２個の平方根を算出し、算出された２個の平方根のうち、（ｐ−１）／２より小さい方を選択し、前記暗号点の前記ｘ座標値と選択された前記平方根とからなる楕円曲線上の第１復号点を生成する平方根計算部と、
生成された第１復号点に、スカラ値である秘密鍵を乗じて、秘密鍵復号点を算出するスカラ倍点計算部と、
取得した前記排他論理和値と、前記秘密鍵復号点のｘ座標値に排他的論理和を施して、復号文を生成する復号文計算部と
を含むことを特徴とする請求項１０に記載の復号装置。
【請求項１５】
前記取得手段は、請求項９の暗号装置から、前記暗号文を取得し、さらに、暗号化コンテンツを取得し、
前記復号手段は、前記暗号文を復号して、前記復号文として、復号コンテンツ鍵を生成し、
前記復号装置は、さらに、
前記復号コンテンツ鍵を用いて、取得した前記暗号化コンテンツに復号を施して復号コンテンツを生成するコンテンツ復号手段と、
生成した復号コンテンツを再生するコンテンツ再生手段と
を含むことを特徴とする請求項１０に記載の復号装置。
【請求項１６】
楕円曲線上の離散対数問題を安全性の根拠として、平文を秘密に出力する暗号装置で用いられる暗号方法であって、
前記平文について、楕円曲線上の暗号演算を行って楕円曲線上の暗号点のｘ座標値を生成し、生成した前記ｘ座標値を含む暗号文を生成する暗号化ステップと、
生成した暗号文を出力する出力ステップと
を含むことを特徴とする暗号方法。
【請求項１７】
楕円曲線上の離散対数問題を安全性の根拠として、平文を秘密に出力する暗号装置で用いられる暗号プログラムであって、
前記平文について、楕円曲線上の暗号演算を行って楕円曲線上の暗号点のｘ座標値を生成し、生成した前記ｘ座標値を含む暗号文を生成する暗号化ステップと、
生成した暗号文を出力する出力ステップと
を含むことを特徴とする暗号プログラム。
【請求項１８】
前記暗号プログラムは、コンピュータ読み取り可能な記録媒体に記録されている
を含むことを特徴とする請求項１７に記載の暗号プログラム。
【請求項１９】
楕円曲線上の離散対数問題を安全性の根拠として、伝達された暗号文を復号する復号装置で用いられる復号方法であって、
前記暗号文は、平文について、楕円曲線上の暗号演算を行って生成された楕円曲線上の暗号点のｘ座標値を含み、
前記復号方法は、
前記暗号文を取得する取得ステップと、
取得した前記暗号文に含まれる前記ｘ座標を持つ楕円曲線上の前記暗号点のｙ座標値を算出し、前記ｘ座標値と前記ｙ座標値からなる楕円曲線上の前記暗号点と、前記暗号文の他の部分とを用いて、楕円曲線上の復号演算を行って、復号文を生成する復号ステップと
を含むことを特徴とする復号方法。
【請求項２０】
楕円曲線上の離散対数問題を安全性の根拠として、伝達された暗号文を復号する復号装置で用いられる復号プログラムであって、
前記暗号文は、平文について、楕円曲線上の暗号演算を行って生成された楕円曲線上の暗号点のｘ座標値を含み、
前記復号プログラムは、
前記暗号文を取得する取得ステップと、
取得した前記暗号文に含まれる前記ｘ座標を持つ楕円曲線上の前記暗号点のｙ座標値を算出し、前記ｘ座標値と前記ｙ座標値からなる楕円曲線上の前記暗号点と、前記暗号文の他の部分とを用いて、楕円曲線上の復号演算を行って、復号文を生成する復号ステップと
を含むことを特徴とする復号プログラム。
【請求項２１】
前記復号プログラムは、コンピュータ読み取り可能な記録媒体に記録されている
ことを特徴とする請求項２０に記載の復号プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報セキュリティ技術としての暗号技術を利用した秘密情報伝達技術に関する。
【背景技術】
【０００２】
近年、通信内容を盗聴者に漏らさないように、受信者に安全に伝える暗号技術が様々な分野で利用されるようになってきている。
例えば、音楽や映画などのコンテンツをＤＶＤなどの記録媒体に格納して配布したり、ネットワークを利用して多数のユーザに配信したりする場合に、コンテンツが不正に利用されないようにするためにコンテンツに暗号化が施されて配布される。
【０００３】
暗号化の技術は、暗号化鍵と復号鍵とが等しい秘密鍵暗号と、暗号化鍵と復号鍵とが異なる公開鍵暗号に分類される。秘密鍵暗号では、何らかの方法で、送信者（暗号化する者）と受信者（復号する者）との間で鍵を共有する必要がある。一方、公開鍵暗号では、暗号化鍵を公開しておき、復号鍵を秘密にしておく。
秘密鍵暗号であるＤＥＳ（Data Encryption Standard） は、平文、暗号文、鍵ともに、６４ビットのサイズを持つブロック暗号である。ＤＥＳでは、初期置換により、平文の隣合った各ビットがほぼ３２ビットだけ離れるようにビットの入れ換えが行われた後、１６段の同一の変換が繰り返し適用される。
【０００４】
また、公開鍵暗号である楕円ＥｌＧａｍａｌ暗号は、ＥｌＧａｍａｌ暗号における有限体上の乗法演算を楕円曲線上の加法演算に対応させることにより構成されたものである。以下において、楕円ＥｌＧａｍａｌ暗号について説明する。
受信者（復号する者）は、楕円ＥｌＧａｍａｌ暗号の秘密鍵ｋｓを秘密に保持している。
【０００５】
送信者（暗号化する者）は、秘密鍵ｋｓに対応する公開鍵ＫＰを保持している。
公開鍵ＫＰ＝ｋｓ＊Ｇ
ここで、Ｇは、楕円ＥｌＧａｍａｌ暗号のベース点であり、楕円曲線上の点である。また、ｋｓ＊Ｇは、ベース点Ｇを（ｋｓ−１）回加算することにより得られる楕円曲線上の点を表す。
【０００６】
送信者は、平文ＫＣに対して、次のようにして暗号文ＥＫＣを生成する。
（ステップ１）乱数ｋを発生させ、ＰＣ＝ｋ＊Ｇを計算する。
（ステップ２）ｋ＊ＫＰを計算する。
（ステップ３）平文ＫＣを楕円曲線上の点Ｐ＿ＫＣ＝ｆ（ＫＣ）に変換する。変換関数ｆについては後述する。
【０００７】
（ステップ４）Ｃ＝Ｐ＿ＫＣ＋ｋ＊ＫＰを計算する。
（ステップ５）ＰＣとＣとを暗号文ＥＫＣとして送信する。
受信者（復号する者）は、次のようにして復号文ＫＣ’を生成する。
（ステップ１）暗号文ＥＫＣに含まれるＰＣに対し、ｋｓ＊ＰＣを計算する。
（ステップ２）Ｐ＿ＫＣ’＝Ｃ−ｋｓ＊ＰＣを計算し、Ｐ＿ＫＣ’を整数値に変換するために、復号文ＫＣ’＝ｆ-1（Ｐ＿ＫＣ’）とする。ここで、ｆ-1は変換関数ｆの逆関数である。生成された復号文ＫＣ’は、平文ＫＣと同じであると期待される。
【０００８】
これは、ｋｓ＊ＰＣ＝ｋｓ＊ｋ＊Ｇ＝ｋ＊ＫＰが成り立つため、
Ｐ＿ＫＣ’＝Ｃ−ｋｓ＊ＰＣ
＝Ｐ＿ＫＣ＋ｋ＊ＫＰ−ｋｓ＊ＰＣ
＝Ｐ＿ＫＣとなり、
Ｐ＿ＫＣ’は、点Ｐ＿ＫＣと等しいからである。
【０００９】
ここで、変換関数ｆは、定義体より小さいビットサイズをもつ整数値から楕円曲線上の点への変換を行う関数である。また、逆変換関数ｆ-1は、楕円曲線上の点から定義体より小さいビットサイズをもつ整数値への変換を行う関数である。関数ｆは、単射であり、整数値をｖとするとき、ｆ-1（ｆ（ｖ））＝ｖが成り立つ関数であれば何でもよい。なお、変換関数については、非特許文献４に詳しく説明されている。
【００１０】
次に、楕円ＥｌＧａｍａｌ暗号における暗号文のデータ量について検討する。
簡単のため、楕円曲線の定義体のビット数を、現在、楕円曲線暗号として推奨されている１６０とする。受信者に送信される暗号文ＥＫＣは、点Ｃ及び点ＰＣから構成される。点Ｃｉ及び点ＰＣｉはｘ、ｙ座標をもつため、それぞれ、３２０ビットである。そのため、暗号文ＥＫＣは、３２０＋３２０＝６４０ビット（＝８０バイト）である。
【００１１】
以上説明したように、ＤＥＳによると、所定長の平文に対して、同一サイズの暗号文が生成されるが、楕円ＥｌＧａｍａｌ暗号によると、所定長の平文に対して、その４倍の長さの暗号文が生成される。
【非特許文献１】岡本龍明、山本博資、”現代暗号”、産業図書（１９９７年）
【非特許文献２】Henri Cohen, “A Course in Computational Algebraic Number Theory", GTM 138, Springer-Verlag,1993, pp.31-33
【非特許文献３】Michael Rosing, “Implementing Elliptic  Curve Cryptography", Manning, 1998, pp.180-181
【非特許文献４】Neal Koblitz, “ A Course in Number theory and Cryptography", Springer-Verlag,1987), pp.162-163
【特許文献１】米国特許番号  ６、１９９、０８６
【発明の開示】
【発明が解決しようとする課題】
【００１２】
このように、楕円ＥｌＧａｍａｌ暗号を用いると、同一長の鍵を使用する場合において、他の暗号技術、例えば、ＤＥＳと比較すると、より高い安全性が得られるものの、例えば、ＤＥＳと比較すると、暗号文が長くなるという問題点がある。
本発明は、楕円曲線暗号を用いる場合に、暗号文が従来より短くなるような情報伝達システム、暗号装置、復号装置、暗号方法、復号方法及びコンピュータプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１３】
上記目的を達成するために、本発明は、楕円曲線上の離散対数問題を安全性の根拠として、平文を秘密に伝達する情報伝達システムであって、暗号装置と復号装置とから構成され、前記暗号装置は、平文を記憶している記憶手段と、前記平文について、楕円曲線上の暗号演算を行って楕円曲線上の暗号点のｘ座標値を生成し、生成した前記ｘ座標値を含む暗号文を生成する暗号化手段と、生成した暗号文を出力する出力手段とを含み、前記復号装置は、前記暗号文を取得する取得手段と、取得した前記暗号文に含まれる前記ｘ座標値を持つ楕円曲線上の前記暗号点のｙ座標値を算出し、前記ｘ座標値と前記ｙ座標値からなる楕円曲線上の暗号点と、前記暗号文の他の部分とを用いて、楕円曲線上の復号演算を行って、復号文を生成する復号手段とを含むことを特徴とする。
【発明の効果】
【００１４】
この構成によると、楕円曲線上の点を出力することなく、暗号文として楕円曲線の点のｘ座標値を出力し、受け取ったｘ座標値から楕円曲線上の前記点を算出し、算出した前記点を用いて、復号するので、伝達される暗号文のデータ量を従来より短くすることができる。
ここで、前記記憶手段は、スカラ値である前記平文を記憶しており、前記暗号化手段は、スカラ値である乱数を生成する乱数生成部と、楕円曲線上のベース点に、前記乱数を乗じてベース乗算点を算出する第１演算部と、楕円曲線上の公開鍵点に、前記乱数を乗じて公開鍵乗算点を算出する第２演算部と、前記平文に、楕円曲線上の点への変換関数を施して、楕円曲線上の平文点を生成する変換部と、前記平文点と前記公開鍵乗算点との加算を用いて、平文加算点を算出する第３演算部と、前記ベース乗算点からｘ座標値を抽出し、抽出したｘ座標値及び前記平文加算点から構成される前記暗号文を生成する生成部とを含む。
【００１５】
また、前記第３演算部は、所定の条件を満たすか否かを判断し、満たすと判断する場合に、前記平文点に前記公開鍵乗算点を加算して前記平文加算点を算出し、満たさないと判断される場合に、前記平文点に前記公開鍵乗算点を加算し、得られた値の負の値を前記平文加算点とする。
また、有限体ＧＦ（ｐ）上の楕円曲線をｙ2 ＝ｘ3 ＋ａ×ｘ＋ｂとし、ｐは素数であり、前記第３演算部は、前記ベース乗算点のｙ座標値が、（ｐ−１）／２より小さいか否かを判断し、小さいと判断される場合に、前記平文点に前記公開鍵乗算点を加算して前記平文加算点を算出し、小さくないと判断される場合に、前記平文点に前記公開鍵乗算点を加算し、得られた値の負の値を前記平文加算点とする。
【００１６】
また、有限体ＧＦ（ｐ）上の楕円曲線をｙ2 ＝ｘ3 ＋ａ×ｘ＋ｂとし、ｐは素数であり、前記取得手段は、前記暗号装置から、前記暗号文を取得し、前記復号手段は、楕円曲線の定義式ｙ2 ＝ｘ3 ＋ａ×ｘ＋ｂに、取得した前記暗号文に含まれる前記ｘ座標値を代入し、その２個の平方根を算出し、算出された２個の平方根のうち、（ｐ−１）／２より小さい方を選択し、前記暗号文に含まれる前記ｘ座標値と選択された前記平方根とからなる楕円曲線上の第１復号点を生成する平方根計算部と、生成された第１復号点に、スカラ値である秘密鍵を乗じて、秘密鍵復号点を算出し、前記公開鍵点は、前記ベース点に前記秘密鍵を乗じて得られた楕円曲線上の点であるスカラ倍点計算部と、取得した前記暗号文に含まれる平文加算点から前記秘密鍵復号点を減じ、得られた値にスカラ値への逆変換関数を施して、スカラ値である復号文を生成する復号文計算部とを含む。
【００１７】
これらの構成によると、ＧＦ（ｐ）上の楕円曲線に適用できる。
ここで、前記記憶手段は、スカラ値である前記平文を記憶しており、前記暗号化手段は、スカラ値である乱数を生成する乱数生成部と、楕円曲線上のベース点に、前記乱数を乗じてベース乗算点を算出する第１演算部と、楕円曲線上の公開鍵点に、前記乱数を乗じて公開鍵乗算点を算出する第２演算部と、前記平文に、楕円曲線上の点への変換関数を施して、楕円曲線上の平文点を生成する変換部と、前記平文点と前記公開鍵乗算点との加算を用いて、平文加算点を算出する第３演算部と、前記ベース乗算点からｘ座標値を抽出し、抽出したｘ座標値及び前記平文加算点から構成される前記暗号文を生成する生成部とを含む。
【００１８】
また、前記第３演算部は、所定の条件を満たすか否かを判断し、満たすと判断する場合に、前記平文点に前記公開鍵乗算点を加算して前記平文加算点を算出し、満たさないと判断される場合に、前記平文点に前記公開鍵乗算点を加算し、得られた値の負の値を前記平文加算点とする。
また、有限体ＧＦ（２m ）上の楕円曲線をｙ2 ＋ｘｙ＝ｘ3 ＋ａｘ2 ＋ｂとし、ｍは自然数であり、ＧＦ（２m ）の生成多項式をｆ（ｘ）とし、その根をαとし、
前記第３演算部は、前記ベース乗算点のｘ座標値のαの生成多項式の係数が０でない項のうち、最も小さい次数をｓとし、前記ベース乗算点のｙ座標値のαの生成多項式の項αs の係数が、ｘ座標値のαの生成多項式の項αs の係数と等しいか否かを判断し、等しいと判断される場合、前記平文点に前記公開鍵乗算点を加算して前記平文加算点を算出し、等しくないと判断される場合に、前記平文点に前記公開鍵乗算点を加算し、得られた値の負の値を前記平文加算点とする
また、有限体ＧＦ（２m ）上の楕円曲線をｙ2 ＋ｘｙ＝ｘ3 ＋ａｘ2 ＋ｂとし、ｍは自然数であり、ＧＦ（２m ）の生成多項式をｆ（ｘ）とし、その根をαとし、
前記取得手段は、前記暗号装置から、前記暗号文を取得し、前記復号手段は、取得した前記暗号文に含まれる前記ｘ座標値のαの生成多項式の係数が０でない項のうち、最も小さい次数をｓとする第１演算部と、楕円曲線の定義式ｙ2 ＋ｘｙ＝ｘ3 ＋ａｘ2 ＋ｂに、取得した前記暗号文に含まれる前記ｘ座標値を代入し、その２個の解を算出し、算出された２個の解から、解のαの生成多項式の項αs の係数が前記ｘ座標値のαの生成多項式の項αs の係数と等しい方を選択し、前記ｘ座標値と選択された解とからなる第１復号点を生成する解計算部と、生成された第１復号点に、スカラ値である秘密鍵を乗じて、秘密鍵復号点を算出し、前記公開鍵点は、前記ベース点に前記秘密鍵を乗じて得られる楕円曲線上の点であるスカラ倍点計算部と、取得した前記暗号文に含まれる前記平文加算点から前記秘密鍵復号点を減じ、得られた値にスカラ値への逆変換関数を施して、スカラ値である復号文を生成する復号文計算部とを含む。
【００１９】
これらの構成によると、ＧＦ（２m ）上の楕円曲線に適用できる。
ここで、有限体ＧＦ（ｐ）上の楕円曲線をｙ2 ＝ｘ3 ＋ａ×ｘ＋ｂとし、ｐは素数であり、前記記憶手段は、スカラ値である前記平文を記憶しており、前記暗号化手段は、スカラ値である乱数を生成する乱数生成部と、楕円曲線上の公開鍵点に、前記乱数を乗じて公開鍵乗算点を算出する第２演算部と、前記平文に、楕円曲線上の点への変換関数を施して、楕円曲線上の平文点を生成する変換部と、前記平文点と前記公開鍵乗算点とを加算して、平文加算点を算出する第３演算部と、前記平文加算点のｙ座標値が、（ｐ−１）／２より小さいか否かを判断し、小さいと判断される場合に、楕円曲線上のベース点に、前記乱数を乗じてベース乗算点を算出し、小さくないと判断される場合に、楕円曲線上のベース点に、前記乱数の負の値を乗じてベース乗算点を算出する第１演算部と、前記平文加算点からｘ座標値を抽出し、抽出したｘ座標値及び前記ベース乗算点から構成される前記暗号文を生成する生成部とを含む。
【００２０】
また、有限体ＧＦ（ｐ）上の楕円曲線をｙ2 ＝ｘ3 ＋ａ×ｘ＋ｂとし、ｐは素数であり、前記取得手段は、前記暗号装置から、前記暗号文を取得し、前記復号手段は、楕円曲線の定義式ｙ2 ＝ｘ3 ＋ａ×ｘ＋ｂに、取得した前記暗号文に含まれる前記ｘ座標値を代入し、その２個の平方根を算出し、算出された２個の平方根のうち（ｐ−１）／２より小さい方を選択し、前記暗号文に含まれる前記ｘ座標値と選択された前記平方根とからなる楕円曲線上の第２復号点を生成する平方根計算部と、取得した前記暗号文に含まれるベース乗算点に、スカラ値である秘密鍵を乗じて、秘密鍵復号点を算出し、前記公開鍵点は、前記ベース点に前記秘密鍵を乗じて得られた楕円曲線上の点であるスカラ倍点計算部と、生成した第２復号点から前記秘密鍵復号点を減じ、得られた値にスカラ値への逆変換関数を施して、スカラ値である復号文を生成する復号文計算部とを含む。
【００２１】
これらの構成によると、ＧＦ（ｐ）上の楕円曲線に適用できる。
ここで、有限体ＧＦ（ｐ）上の楕円曲線をｙ2 ＝ｘ3 ＋ａ×ｘ＋ｂとし、ｐは素数であり、前記記憶手段は、スカラ値である前記平文を記憶しており、前記暗号化手段は、スカラ値である乱数を生成する乱数生成部と、楕円曲線上のベース点に、前記乱数を乗じてベース乗算点を算出する第１演算部と、楕円曲線上の公開鍵点に、前記乱数を乗じて公開鍵乗算点を算出する第２演算部と、前記平文と、前記公開鍵乗算点のｘ座標値とに排他的論理和を施して、前記楕円曲線上の排他論理和値を生成する第３演算部と、第３演算部により生成された前記排他論理和値と、前記暗号点としての前記ベース乗算点のｘ座標値とから構成される前記暗号文を生成する生成部とを含む。
【００２２】
また、前記取得手段は、前記暗号装置から、前記暗号文を取得し、有限体ＧＦ（ｐ）上の楕円曲線をｙ2 ＝ｘ3 ＋ａ×ｘ＋ｂとし、ｐは素数であり、前記復号手段は、楕円曲線の定義式ｙ2 ＝ｘ3 ＋ａ×ｘ＋ｂに、取得した前記暗号文に含まれる前記暗号点の前記ｘ座標値を代入し、その２個の平方根を算出し、算出された２個の平方根のうち、（ｐ−１）／２より小さい方を選択し、前記暗号点の前記ｘ座標値と選択された前記平方根とからなる楕円曲線上の第１復号点を生成する平方根計算部と、生成された第１復号点に、スカラ値である秘密鍵を乗じて、秘密鍵復号点を算出するスカラ倍点計算部と、取得した前記排他論理和値と、前記秘密鍵復号点のｘ座標値に排他的論理和を施して、復号文を生成する復号文計算部とを含む。
【００２３】
これらの構成によると、伝達される暗号文のデータ量をさらに短くすることができる。
ここで、前記記憶手段に記憶されている前記平文は、コンテンツ鍵であり、前記暗号化手段は、前記コンテンツ鍵を暗号化して前記暗号文を生成し、前記暗号装置は、さらに、前記コンテンツ鍵を用いて、コンテンツに暗号化を施して暗号化コンテンツを生成するコンテンツ暗号手段と、生成した前記暗号化コンテンツを出力するコンテンツ出力手段とを含む。
【００２４】
また、前記取得手段は、前記暗号装置から、前記暗号文を取得し、さらに、暗号化コンテンツを取得し、前記復号手段は、前記暗号文を復号して、前記復号文として、復号コンテンツ鍵を生成し、前記復号装置は、さらに、前記復号コンテンツ鍵を用いて、取得した前記暗号化コンテンツに復号を施して復号コンテンツを生成するコンテンツ復号手段と、生成した復号コンテンツを再生するコンテンツ再生手段とを含む。
【００２５】
これらの構成によると、コンテンツ鍵を用いてコンテンツを暗号化し、同じコンテンツ鍵を用いて暗号化コンテンツを復号する際に、伝達される前記暗号文としての暗号化コンテンツ鍵のデータ量を従来より小さくすることができる。
以上説明したように、暗号文中の楕円曲線上の点のｙ座標を暗号化コンテンツ鍵に含めないことにより、伝達される暗号文のデータ量を削減することができ、その実用的価値は大きい。
【発明を実施するための最良の形態】
【００２６】
１．第１の実施の形態
本発明に係る１の実施の形態としてのコンテンツ配布システム１０について説明する。
１．１  コンテンツ配布システム１０の構成
コンテンツ配布システム１０は、図１に示すように、１台のコンテンツ配信装置１００及びｎ台のコンテンツ視聴装置２００1 、２００2 、・・・、２００i 、・・・、２００n から構成されている。ここで、ｎは自然数であり、例えば、ｎ＝１，０００，０００である。このとき、コンテンツ視聴装置は、１，０００，０００台存在することになる。コンテンツ配信装置１００及びコンテンツ視聴装置２００1 、２００2 、・・・、２００n は、それぞれ、インターネット２０を介して相互に接続されている。
【００２７】
コンテンツ配信装置１００は、映画のデジタル著作物であるコンテンツＣに対して、コンテンツ鍵ＫＣを生成し、生成したコンテンツ鍵ＫＣを用いてコンテンツＣに共通鍵暗号方式の暗号化アルゴリズムＥｎｃ1 を施して暗号化コンテンツＥＣを生成し、コンテンツ鍵ＫＣに公開鍵暗号方式の暗号化アルゴリズムＥｎｃ2 を施して暗号化コンテンツ鍵情報ＥＫＣを生成し、生成した暗号化コンテンツＥＣと暗号化コンテンツ鍵情報ＥＫＣとを、インターネット２０を介して、コンテンツ視聴装置２００1 、２００2 、・・・、２００n へ送信する。
【００２８】
コンテンツ視聴装置２００1 は、インターネット２０を介して、暗号化コンテンツＥＣと暗号化コンテンツ鍵情報ＥＫＣとを受け取り、受け取った暗号化コンテンツ鍵情報ＥＫＣに公開鍵暗号方式の復号アルゴリズムＤｅｃ2 を施して復号コンテンツ鍵ＫＣ’を生成し、生成した復号コンテンツ鍵ＫＣ’を用いて、受け取った暗号化コンテンツＥＣに共通鍵暗号方式の復号アルゴリズムＤｅｃ1 を施して復号コンテンツを生成し、生成した復号コンテンツを再生して出力する。他のコンテンツ視聴装置２００2 、・・・、２００n についても、コンテンツ視聴装置２００1 と同様である。
【００２９】
ここで、復号アルゴリズムＤｅｃ1 は、暗号化アルゴリズムＥｎｃ1 により生成された暗号文を復号するアルゴリズムであり、復号アルゴリズムＤｅｃ2 は、暗号化アルゴリズムＥｎｃ2 により生成された暗号文を復号するアルゴリズムである。
また、コンテンツ視聴装置に付された参照符号に含まれるサフィックスは、コンテンツ視聴装置を一意に識別する装置固有番号である。例えば、コンテンツ視聴装置２００i を一意に識別する装置固有番号は、「ｉ」である。
【００３０】
１．２  楕円曲線暗号と楕円曲線のパラメータ
コンテンツ配布システム１０では、前記公開鍵暗号方式において、楕円曲線暗号が使用される。楕円曲線暗号については、非特許文献１に詳しく記載されている。以下に、コンテンツ配布システム１０において使用される楕円曲線暗号における楕円曲線Ｅ1 のパラメータについて簡単に述べる。
【００３１】
楕円曲線Ｅ1 の定義式を
ｙ2 ＝ｘ3 ＋ａ×ｘ＋ｂとする。
ここで、ｘ及びｙは、変数であり、ａ及びｂは、定数である。また、ａ×ｘはａとｘの掛け算を示す。定数ａ及び定数ｂは、自然数であり、定数ａ及び定数ｂが定まることにより、１個の楕円曲線Ｅ1 が決定する。また、楕円曲線Ｅ1 は、一般に、有限体である定義体ＧＦ（ｐm ）上において、定義される。ここで、ｐは素数であり、ｍは自然数である。また、簡単のため、ｍ＝１とし、定義体をＧＦ（ｐ）とする。
【００３２】
１．３  楕円曲線上の離散対数問題
公開鍵暗号方式の安全性の根拠として離散対数問題が用いられる。離散対数問題には、代表的なものとして、有限体上定義されるもの及び楕円曲線上定義されるものがある。なお、離散対数問題については、ニイルコブリッツ著  ”ア  コウス  イン  ナンバア  セオリイ  アンド  クリプトグラヒイ”(Neal Koblitz , " A Course in Number theory and Cryptography", Springer-Verlag,1987)に詳しく述べられている。
【００３３】
楕円曲線上の離散対数問題とは、
Ｅ（ＧＦ（ｐ））を有限体ＧＦ（ｐ）上で定義された楕円曲線とし、楕円曲線Ｅの位数が大きな素数で割り切れる場合に、楕円曲線Ｅに含まれる元Ｇをベースポイントとする。このとき、楕円曲線Ｅに含まれる与えられた元Ｙに対して、
（式１）  Ｙ＝ｘ＊Ｇ
となる整数ｘが存在するならば、ｘを求めよ、という問題である。
【００３４】
離散対数問題を公開鍵暗号の安全性の根拠とするのは、多くの元を有する有限体ＧＦ（ｐ）に対して、上記問題は極めて難しいからである。
１．４  コンテンツ配信装置１００の構成
コンテンツ配信装置１００は、送受信部１０１、コンテンツ鍵生成部１０２、コンテンツ暗号化部１０３、公開鍵格納部１０４、鍵情報生成部１０５、コンテンツ記憶部１０６及び制御部１０７から構成され、また、制御部１０７は、入力部１０８及び表示部１０９に接続されている。
【００３５】
コンテンツ配信装置１００は、具体的には、マイクロプロセッサ、ＲＯＭ、ＲＡＭ、ハードディスクユニット、通信ユニットなどから構成されるコンピュータシステムである。前記ＲＡＭ又は前記ハードディスクユニットには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムに従って動作することにより、コンテンツ配信装置１００は、その一部の機能を達成する。
【００３６】
（１）公開鍵格納部１０４
公開鍵格納部１０４は、コンテンツ視聴装置２００1 、２００2 、・・・、２００nの公開鍵ＫＰ1 、ＫＰ2 、・・・、ＫＰn を予め格納している。
公開鍵ＫＰ1 、ＫＰ2 、・・・、ＫＰn は、それぞれ、次式により予め算出された楕円曲線Ｅ1 上の点である。
【００３７】
ＫＰ1 ＝ｋｓ1 ＊Ｇ、
ＫＰ2 ＝ｋｓ2 ＊Ｇ、
・・・
ＫＰn ＝ｋｓn ＊Ｇ
ここで、ｋｓ1 、ｋｓ2 、・・・、ｋｓn は、それぞれ、コンテンツ視聴装置２００1 、２００2 、・・・、２００nに割り当てられた秘密鍵である。また、Ｇは、楕円曲線Ｅ1 上におけるElGamal 暗号のベース点であり、楕円曲線Ｅ1 上の点である。また、本明細書において、ａ＊Ｂは、楕円曲線上の点Ｂをａ回加算することにより得られる楕円曲線上の点を表す。例えば、ｋｓ1 ＊Ｇは、ベース点Ｇをｋｓ1 回加算することにより得られる楕円曲線Ｅ1 上の点を表す。なお、この演算を、楕円曲線上の楕円べき倍演算と呼ぶ。
【００３８】
（２）コンテンツ記憶部１０６
コンテンツ記憶部１０６は、映画のデジタル著作物であるコンテンツＣを予め記憶している。コンテンツＣは、映像データ及び音声データが、動画や音声の圧縮符号化技術であるＭＰＥＧ２（Moving Pictures Experts Group ２）により定まる規格により高効率に圧縮されて生成された圧縮データである。
【００３９】
（３）コンテンツ鍵生成部１０２
コンテンツ鍵生成部１０２は、コンテンツ記憶部１０６に記憶されているコンテンツＣ毎に、１６０ビットの乱数を生成し、生成した乱数をコンテンツ鍵ＫＣとする。次に、生成したコンテンツ鍵ＫＣをコンテンツ暗号化部１０３及び鍵情報生成部１０５へ出力する。
【００４０】
（４）コンテンツ暗号化部１０３
コンテンツ暗号化部１０３は、コンテンツ記憶部１０６からコンテンツＣを読み出し、コンテンツ鍵生成部１０２からコンテンツ鍵ＫＣを受け取る。
次に、コンテンツ暗号化部１０３は、受け取ったコンテンツ鍵ＫＣを用いて、読み出したコンテンツＣに、共通鍵暗号方式の暗号化アルゴリズムＥｎｃ1 を施して、暗号化コンテンツＥＣ＝Ｅｎｃ1 （ＫＣ、Ｃ）を生成する。
【００４１】
ここで、Ｅｎｃ1 （ＫＣ、Ｃ）は、鍵ＫＣを用いて、コンテンツＣに暗号化アルゴリズムＥｎｃ1 を施して生成された暗号文である。共通鍵暗号方式の暗号化アルゴリズムＥｎｃ1 は、例えば、ＤＥＳ（Data Encryption Standard ）暗号である。また、他の共通鍵暗号方式、例えば、ＡＥＳ（Advanced Encryption Standard）暗号であるとしてもよい。共有鍵暗号について、非特許文献１に詳しく説明されている。
【００４２】
コンテンツ暗号化部１０３は、生成した暗号化コンテンツＥＣを送受信部１０１へ出力する。
（５）鍵情報生成部１０５
鍵情報生成部１０５は、図２に示すように、鍵暗号化部１１１、カウンタ設定部１１２、カウンタ加算部１１３、カウンタ判定部１１４、出力部１１５、鍵制御部１１６及びパラメタ記憶部１１７、カウンタｉ１１８から構成されている。
【００４３】
パラメタ記憶部１１７は、ベース点Ｇ、定数ａ、定数ｂ、素数ｐを予め記憶している。
カウンタ設定部１１２は、カウンタｉを「１」に設定する。
鍵暗号化部１１１は、コンテンツ視聴装置２００i に対する暗号化コンテンツ鍵を以下のように生成する。
（ａ）１６０ビットの乱数ｋi を生成する。
【００４４】
（ｂ）パラメタ記憶部１１７からベース点Ｇ、定数ａ及び素数ｐを読み出し、生成した乱数ｋi と読み出したベース点Ｇ、定数ａ及び素数ｐとを用いて、
ＰＣi ＝ｋi ＊Ｇを計算する。
ここで、楕円曲線上の楕円べき倍演算について、以下に簡単に説明する。
一例として、１００＊Ｐを計算する。
【００４５】
１００＊Ｐ＝２（２（Ｐ＋２（２（２（Ｐ＋２Ｐ）））））と表すと、１００＊Ｐは、楕円曲線上の点による６回の２倍算と２回の加算により計算される。
このように、楕円べき倍演算は、２倍算及び加算による演算に帰着する。
ここで、楕円曲線Ｅ1 の方程式を  ｙ2 ＝  ｘ3 ＋ａ×ｘ＋ｂ  とし、
楕円曲線Ｅ1 上の任意の点Ｐの座標を（ｘ1，ｙ1 ）とし、任意の点Ｑの座標を（ｘ2 ，ｙ2 ）とする。ここで、Ｒ＝Ｐ＋Ｑで定まる点Ｒの座標を（ｘ3 ，ｙ3 ）とする。
【００４６】
Ｐ≠Ｑの場合、Ｒ＝Ｐ＋Ｑは、加算の演算となる。加算の公式を以下に示す。
ｘ3 ＝｛（ｙ2 −ｙ1）／（ｘ2 −ｘ1 ）｝2 −ｘ1 −ｘ2
ｙ3 ＝｛（ｙ2 −ｙ1）／（ｘ2 −ｘ1 ）｝（ｘ1 −ｘ3 ）−ｙ1 
Ｐ＝Ｑの場合、Ｒ＝Ｐ＋Ｑ＝Ｐ＋Ｐ＝２×Ｐとなり、Ｒ＝Ｐ＋Ｑは、２倍算の演算となる。２倍算の公式を以下に示す。
【００４７】
ｘ3 ＝｛（３ｘ1 2 ＋ａ）／２ｙ1 ｝2 −２ｘ1 
ｙ3 ＝｛（３ｘ1 2 ＋ａ）／２ｙ1 ｝（ｘ1 −ｘ3 ）−ｙ1 
ここで、上記演算は、楕円曲線Ｅ1 が定義される有限体ＧＦ（ｐ）上での演算である。
なお、楕円曲線の演算公式については、"Efficientelliptic curve 
exponentiation"（Miyaji, Ono, and Cohen著、  Advances in 
cryptology-proceedings of ICICS'97,   Lecture notes in computer science, 1997, Springer-verlag, 282-290.）に詳しく説明されている。
【００４８】
（ｃ）公開鍵格納部１０４から公開鍵ＫＰi を読み出し、生成した乱数ｋi、読み出した公開鍵ＫＰi 、読み出した定数ａ及び素数ｐを用いて、ｋi ＊ＫＰi を計算する。
なお、楕円曲線上の楕円べき倍演算については、上述した通りである。
（ｄ）コンテンツ鍵生成部１０２からコンテンツ鍵ＫＣを受け取り、受け取ったＫＣに変換関数ｆを施して、コンテンツ鍵ＫＣを楕円曲線Ｅ1 上の点Ｐ＿ＫＣ＝ｆ（ＫＣ）に変換する。なお、変換関数ｆについては後述する。
【００４９】
（ｅ）Ｐ＿ＫＣ＋ｋi ＊ＫＰi を計算する。
（ｆ）パラメタ記憶部１１７から素数ｐを読み出し、ＰＣi のｙ座標ｙi （ＰＣi ）が
ｙi （ＰＣi ）＜（ｐ−１）／２
を満たすか否かを判定する。
ｙi （ＰＣi ）＜（ｐ−１）／２の場合、
Ｃi ＝Ｐ＿ＫＣ＋ｋi ＊ＫＰiとし、
ｙi （ＰＣi ）≧（ｐ−１）／２の場合、
Ｃi ＝−（Ｐ＿ＫＣ＋ｋi ＊ＫＰi ）とする。
【００５０】
（ｇ）点ＰＣi のｘ座標ｘ（ＰＣi ）と、点Ｃi とを暗号化コンテンツ鍵ＥＫＣiとし、暗号化コンテンツ鍵ＥＫＣi を出力部１１５へ出力する。
カウンタ判定部１１４は、カウンタｉがｎであるか否かを判定する。
カウンタ判定部１１４により、カウンタｉ≠ｎであると判定される場合に、カウンタ加算部１１３は、カウンタｉに１を加算する。次に、上記を繰り返す。
【００５１】
カウンタ判定部１１４により、カウンタｉ＝ｎであると判定される場合に、出力部１１５は、暗号化コンテンツ鍵ＥＫＣ1 、ＥＫＣ2 、ＥＫＣ3 、．．．、ＥＫＣn を暗号化コンテンツ鍵情報ＥＫＣとし、暗号化コンテンツ鍵情報ＥＫＣを送受信部１０１へ出力する。
鍵制御部１１６は、鍵情報生成部１０５を構成する各構成要素を制御する。
【００５２】
ここで、上記の（ａ）〜（ｇ）では、楕円ＥｌＧａｍａｌ暗号を変形したものを使用している。通常の楕円ＥｌＧａｍａｌ暗号と異なる点は、暗号文を、
ＰＣi 及びＣi ではなく、ＰＣi のｘ座標及びＣi としている点である。ＰＣi のｙ座標の情報を全く（１ビットも）暗号化コンテンツ鍵情報ＥＫＣに含めていないことが、実施の形態１の特徴である。
【００５３】
（６）送受信部１０１
送受信部１０１は、コンテンツ暗号化部１０３から暗号化コンテンツＥＣを受け取り、鍵情報生成部１０５から暗号化コンテンツ鍵情報ＥＫＣを受け取り、受け取った暗号化コンテンツＥＣと暗号化コンテンツ鍵情報ＥＫＣとを、インターネット２０を介して、コンテンツ視聴装置２００1 、２００2 、・・・、２００n へ送信する。
【００５４】
送受信部１０１により、各コンテンツ視聴装置へ送信される送信情報３０１を図３に示す。この図に示すように、送信情報３０１は、暗号化コンテンツＥＣ３０２と暗号化コンテンツ鍵情報ＥＫＣ３０３から構成されている。暗号化コンテンツ鍵情報ＥＫＣ３０３は、ｎ個の暗号化コンテンツ鍵３１１、３１２、・・・、３１３を含む。ｉ番目の暗号化コンテンツ鍵は、ＰＣi のｘ座標ｘ（ＰＣi ）と、Ｃi とを含む。
【００５５】
各暗号化コンテンツ鍵に含まれるＰＣi のｘ座標ｘ（ＰＣi ）と、Ｃi とは、それぞれ、固定長であり、具体的には、１６０ビット及び３２０ビットである。暗号化コンテンツ鍵情報ＥＫＣ３０３内において、ｎ個の暗号化コンテンツ鍵は、各コンテンツ視聴装置に対応するように、コンテンツ視聴装置に割り当てられた装置固有番号に従って配列されている。従って、各コンテンツ視聴装置に割り当てられた装置固有番号が特定できれば、前記コンテンツ視聴装置に対応する暗号化コンテンツ鍵の特定ができる。
【００５６】
例えば、装置固有番号「１」が割り当てられたコンテンツ視聴装置２００1 については、暗号化コンテンツ鍵情報ＥＫＣの先頭から４８０ビット（＝１６０ビット＋３２０ビット）を抽出すれば、ＰＣ1 のｘ座標ｘ（ＰＣ1 ）と、Ｃ1 とが得られる。
一般的に、装置固有番号「ｉ」が割り当てられたコンテンツ視聴装置２００i については、暗号化コンテンツ鍵情報ＥＫＣの先頭から数えて（１＋（ｉ−１）×４８０）ビット目から、４８０ビット分を抽出すれば、ＰＣi のｘ座標ｘ（ＰＣi ）と、Ｃi とが得られる。
【００５７】
（７）制御部１０７、入力部１０８及び表示部１０９
制御部１０７は、コンテンツ配信装置１００を構成する各構成要素を制御する。
入力部１０８は、コンテンツ配信装置１００の操作者から情報の入力、又は操作指示の入力を受け付け、受け付けた情報又は操作指示を制御部１０７へ出力する。
表示部１０９は、制御部１０７の制御により、各種の情報を表示する。
【００５８】
１．５  コンテンツ視聴装置２００1 、２００2 、・・・、２００n の構成
コンテンツ視聴装置２００1 、２００2 、・・・、２００n は、同様の構成を有している。ここでは、代表して、コンテンツ視聴装置２００i の構成について説明する。
コンテンツ視聴装置２００i は、図４に示すように、送受信部２０１、秘密鍵格納部２０２、コンテンツ復号部２０３、鍵復号部２０４、再生部２０５、制御部２０６、入力部２０７、モニタ２０８、スピーカ２０９及びパラメタ記憶部２１０から構成されている。
【００５９】
コンテンツ視聴装置２００i は、具体的には、コンテンツ配信装置１００と同様に、マイクロプロセッサ、ＲＯＭ、ＲＡＭを含んで構成されるコンピュータシステムである。前記ＲＡＭには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムに従って動作することにより、コンテンツ視聴装置２００i は、その一部の機能を達成する。
【００６０】
ここで、参照符号に付されたサフィックスｉは、コンテンツ視聴装置２００i を一意に識別する装置固有番号である。
（１）秘密鍵格納部２０２及びパラメタ記憶部２１０
秘密鍵格納部２０２は、１６０ビットの秘密鍵ｋｓi を予め秘密に格納している。秘密鍵格納部２０２は、鍵復号部２０４によってのみアクセス可能である。
【００６１】
秘密鍵ｋｓi は、公開鍵ＫＰi に対応しており、上述したように、公開鍵ＫＰi は、次式により算出されたものである。
公開鍵ＫＰi ＝ｋｓi ＊Ｇ
パラメタ記憶部２１０は、ベース点Ｇ、定数ａ、定数ｂ、素数ｐを予め記憶している。
（２）送受信部２０１
送受信部２０１は、インターネット２０を介して、コンテンツ配信装置１００から暗号化コンテンツＥＣ及び暗号化コンテンツ鍵情報ＥＫＣを受信し、受信した暗号化コンテンツＥＣをコンテンツ復号部２０３へ出力し、受信した暗号化コンテンツ鍵情報ＥＫＣを鍵復号部２０４へ出力する。
【００６２】
（３）鍵復号部２０４
鍵復号部２０４は、図４に示すように、平方根計算部２１１、スカラ倍点計算部２１２及びコンテンツ鍵計算部２１３から構成されている。
（平方根計算部２１１）
平方根計算部２１１は、自身のコンテンツ視聴装置に割り当てられた装置固有番号ｉを予め記憶している。
【００６３】
平方根計算部２１１は、送受信部２０１から暗号化コンテンツ鍵情報ＥＫＣを受け取り、装置固有番号ｉを読み出し、読み出した装置固有番号ｉを用いて、上述したように、受け取った暗号化コンテンツ鍵情報ＥＫＣから自身の装置に対応するＰＣi のｘ座標ｘ（ＰＣi ）を特定し、特定したｘ座標ｘ（ＰＣi ）を暗号化コンテンツ鍵情報ＥＫＣから抽出する。
【００６４】
次に、平方根計算部２１１は、抽出したｘ座標ｘ（ＰＣｉ）に対し、
ｚ＝ｘ（ＰＣｉ）3 ＋ａ×ｘ（ＰＣｉ）＋ｂのＧＦ（ｐ）上での平方根ｒｔ（２個）を計算する。
ここで、平方根は（ｐ−１）／２より小さいものと、（ｐ−１）／２以上のものの二つあるが、平方根計算部２１１は、（ｐ−１）／２より小さい方の平方根を選択する。次に、抽出したｘ座標ｘ（ＰＣi ）と、選択した平方根ｒｔとの組により、ＰＣｉ’＝（ｘ（ＰＣｉ），ｒｔ）とする。次に、ＰＣｉ’をスカラ倍点計算部２１２へ出力する。
【００６５】
平方根の計算方法については、非特許文献２に詳しく述べられている。
以下において、ｐ＝３  ｍｏｄ  ４の場合のＧＦ（ｐ）での平方根の計算方法を示す。その他の平方根の計算方法は、非特許文献２を参照。
なお、「ｄ  ｍｏｄ  ｅ」は、ｄをｅで割ったときの余りを示す。
ｚの平方根は、
ｚ＾（（ｐ＋１）／４）又は、−ｚ＾（（ｐ＋１）／４）である。
【００６６】
一般に、ｚ＾（ｐ−１）＝１  ｍｏｄ  ｐが成り立つため、
ｚ＾（ｐ＋１）＝ｚ＾２  ｍｏｄ  ｐとなり、
ｚ＾（（ｐ＋１）／４）＝（ｚ＾２）＾（１／４）＝ｚ＾（１／２）となるため、ｚの平方根が得られることがわかる。
ここで、「Ａ＾Ｂ」は、ＡのＢ乗、つまり、ＡB を示す。本明細書では、
Ａ＾Ｂの表記及びＡB の表記の両方を、場合によって使い分けている。
【００６７】
（スカラ倍点計算部２１２）
スカラ倍点計算部２１２は、秘密鍵格納部２０２から秘密鍵ｋｓi を読み出し、平方根計算部２１１からＰＣi ’を受け取る。次に、パラメタ記憶部２１０から定数ａ及び素数ｐを読み出し、読み出した定数ａ、素数ｐ及び秘密鍵ｋｓｉを用いて、ＰＣi ’のｋｓi 倍の点ｋｓi ＊ＰＣi ’を計算する。
【００６８】
なお、楕円曲線上の楕円べき倍演算については、上述した通りである。
次に、計算した点ｋｓi ＊ＰＣi ’をコンテンツ鍵計算部２１３へ出力する。
（コンテンツ鍵計算部２１３）
コンテンツ鍵計算部２１３は、スカラ倍点計算部２１２から
点ｋｓi ＊ＰＣi ’を受け取る。次に、
Ｐ＿ＫＣ’＝Ｃi −ｋｓi ＊ＰＣi ’を計算し、
Ｐ＿ＫＣ’を整数値に変換するために、復号コンテンツ鍵ＫＣ’＝ｆ-1（Ｐ＿ＫＣ’）を算出する。ここで、ｆ-1は、変換関数ｆの逆関数である。ここで、算出された復号コンテンツ鍵ＫＣ’は、コンテンツ鍵ＫＣと同じ値であると期待される。次に、算出した復号コンテンツ鍵ＫＣ’をコンテンツ復号部２０３へ出力する。
【００６９】
（４）コンテンツ復号部２０３
コンテンツ復号部２０３は、送受信部２０１から暗号化コンテンツＥＣを受け取り、鍵復号部２０４から復号コンテンツ鍵ＫＣ’を受け取る。次に、受け取った復号コンテンツ鍵ＫＣ’を用いて、受け取った暗号化コンテンツＥＣに、共通鍵暗号方式の復号アルゴリズムＤｅｃ1 を施して、復号コンテンツＣ’＝Ｄｅｃ1 （ＫＣ’、ＥＣ）を生成する。
【００７０】
ここで、Ｄｅｃ1 （ＫＣ’、ＥＣ）は、復号コンテンツ鍵ＫＣ’を用いて、暗号化コンテンツＥＣに復号アルゴリズムＤｅｃ1 を施して生成された復号文である。
次に、コンテンツ復号部２０３は、生成した復号コンテンツＣ’を再生部２０５へ出力する。
（５）再生部２０５、制御部２０６、入力部２０７、モニタ２０８及びスピーカ２０９
再生部２０５は、コンテンツ復号部２０３から復号コンテンツＣ’を受け取り、受け取った復号コンテンツＣ’から映像データ及び音声データを生成し、生成した映像データ及び音声データをアナログの映像信号及び音声信号に変換し、アナログの映像信号及び音声信号を、それぞれ、モニタ２０８及びスピーカ２０９へ出力する。
【００７１】
モニタ２０８及びスピーカ２０９は、それぞれ、再生部２０５からアナログの映像信号及び音声信号を受け取り、映像を表示し、音声を出力する。
制御部２０６は、コンテンツ視聴装置２００i を構成する各構成要素を制御する。
また、入力部２０７は、コンテンツ視聴装置２００i の利用者からの操作指示を受け取り、受け取った操作指示を制御部２０６へ出力する。
【００７２】
１．６  変換関数ｆ及び逆変換関数ｆ-1について
ここで、変換関数ｆ及び逆変換関数ｆ-1について説明する。
変換関数ｆは、定義体ＧＦ（ｐ）のビットサイズより小さいビットサイズをもつ整数値から楕円曲線Ｅ1 上の点への変換を行う関数である。また、逆変換関数ｆ-1は、楕円曲線Ｅ1上の点から定義体のビットサイズより小さいビットサイズをもつ整数値への変換を行う関数である。変換関数ｆは、単射であり、整数値をｖとするとき、
ｆ-1（ｆ（ｖ））＝ｖが成り立ち、さらに楕円曲線上の点Ｐに対して、
ｆ-1（−Ｐ）＝ｆ-1（Ｐ）を満たす関数であれば何でもよい。変換方法については、非特許文献４に詳しく説明されている。
【００７３】
以下に、この非特許文献４に記述されている方法を述べる。
（１）定義体のビットサイズｌｅｎｐに対し、ｖのビットサイズをｌｅｎｐ−１０、すなわち、整数値ｖのビットサイズが定義体より１０ビット小さいとする。ｃ＝０とし、ｘ＿ｆｖ＝ｃ｜｜ｖとし、（（ｘ＿ｆｖ）3 ＋ａ×ｘ＿ｆｖ＋ｂ）がＧＦ（ｐ）上で平方剰余であるかを判定する。
【００７４】
（２）平方剰余であれば、（（ｘ＿ｆｖ）3 ＋ａ×ｘ＿ｆｖ＋ｂ）の平方根ｙ＿ｆｖを計算し、ｆ（ｖ）＝（ｘ＿ｆｖ，ｙ＿ｆｖ）とする。
（３）平方剰余でなければ、ｃに１を加算し、ｘ＿ｆｖ＝ｃ｜｜ｖとし、（（ｘ＿ｆｖ）3 ＋ａ×ｘ＿ｆｖ＋ｂ）がＧＦ（ｐ）で平方剰余であるかを判定する。平方剰余であれば、（（ｘ＿ｆｖ）3 ＋ａ×ｘ＿ｆｖ＋ｂ）の平方根ｙ＿ｆｖを計算し、ｆ（ｖ）＝（ｘ＿ｆｖ，ｙ＿ｆｖ）とする。平方剰余でなければ、ｃに１を加算し、同様の判定を行い、（（ｘ＿ｆｖ）3 ＋ａ×ｘ＿ｆｖ＋ｂ）がＧＦ（ｐ）で平方剰余になるまで繰り返す。
【００７５】
次に、ｆ-1（Ｐ＿ｆｖ）の変換方法について述べる。
Ｐ＿ｆｖ＝（ｘ＿ｆｖ，ｙ＿ｆｖ）とするとき、ｆ-1（Ｐ＿ｆｖ）を、ｘ＿ｆｖの下位ｌｅｎｐ−１０ビットの数とする。この変換方法を用いた場合、
ｆ-1（ｆ（ｖ））＝ｖになることは容易に分かる。また、ｆ-1（Ｐ＿ｆｖ）は、ｘ座標の下位を取るため、
ｆ-1（−Ｐ）＝ｆ-1（Ｐ）を満たすことも容易に分かる。
【００７６】
なお、上でも述べたが、変換関数ｆとｆ-1の組は、上記文献に記述の方法に限らず、関数ｆが、単射であり、整数値をｖとするとき、ｆ-1（ｆ（ｖ））＝ｖが成り立ち、さらに楕円曲線上の点Ｐに対して、ｆ-1（−Ｐ）＝ｆ-1（Ｐ）を満たす関数であれば何でもよい。
１．７  コンテンツ鍵を正しく復号化できる理由
ここで、ｆ-1（Ｐ＿ＫＣ’）＝ｆ-1（Ｐ＿ＫＣ）が成り立つため、ＫＣ’は、コンテンツ鍵ＫＣと等しい。以下で、ｆ-1（Ｐ＿ＫＣ’）＝ｆ-1（Ｐ＿ＫＣ）が成り立つ理由について述べる。
【００７７】
一般に、ＧＦ（ｐ）で定義される楕円曲線では、Ｐ＝（ｘ１，ｙ１）に対する負の点−Ｐは、−Ｐ＝（ｘ１，−ｙ１）で与えられる。平方根ｒｔは、ｒｔ2 ＝ｘ（ＰＣi ）3 ＋ａ×ｘ（ＰＣi ）＋ｂを満たす。ここで、点ＰＣi のｙ座標ｙ（ＰＣi ）もｙ（ＰＣi ）2 ＝ｘ（ＰＣi ）3 ＋ａ×ｘ（ＰＣi ）＋ｂを満たすため、ｙ（ＰＣi）＝ｒｔまたはｙ（ＰＣi ）＝−ｒｔを満たす。
【００７８】
ここで、ｙ（ＰＣi ）＝ｒｔ、すなわち、ｙ（ＰＣi ）＜（ｐ−１）／２であれば、ＰＣi ＝ＰＣi ’となり、Ｃi ＝Ｐ＿ＫＣ＋ｋi ＊ＫＰi より、Ｐ＿ＫＣ’＝Ｃi −ｋｓi ＊ＰＣi ’＝Ｐ＿ＫＣ＋ｋi ＊ＫＰi −ｋｓi ＊ＰＣi である。ｋi ＊ＫＰi ＝ｋi＊ｋｓi ＊Ｇ＝ｋｓi ＊ＰＣi より、Ｐ＿ＫＣ’＝Ｐ＿ＫＣであり、ｆ-1（Ｐ＿ＫＣ’）＝ｆ-1（Ｐ＿ＫＣ）が成り立つ。
【００７９】
ｙ（ＰＣi ）＝−ｒｔである場合、すなわち、ｙ（ＰＣi ）≧（ｐ−１）／２であれば、ＰＣi ’＝−ＰＣi を満たす。Ｃi ＝−（Ｐ＿ＫＣ＋ｋi ＊ＫＰi ）であるため、Ｐ＿ＫＣ’＝Ｃi −ｋｓi ＊ＰＣi ’＝−（Ｐ＿ＫＣ＋ｋi ＊ＫＰｉ）−ｋｓi ＊（−ＰＣi ’）＝―Ｐ＿ＫＣであり、ｆ-1（−Ｐ＿ＫＣ）＝ｆ-1（Ｐ＿ＫＣ）より、ｆ-1（Ｐ＿ＫＣ’）＝ｆ-1（Ｐ＿ＫＣ）が成り立つ。
【００８０】
以上より、ｆ-1（Ｐ＿ＫＣ’）＝ｆ-1（Ｐ＿ＫＣ）が成り立ち、コンテンツ鍵ＫＣが正しく復号化できる。
１．８  コンテンツ配布システム１０の動作
コンテンツ配布システム１０の動作について説明する。
（１）コンテンツ配布システム１０の主要な動作
コンテンツ配布システム１０の主要な動作について、図５に示すフローチャートを用いて説明する。
【００８１】
コンテンツ配信装置１００のコンテンツ鍵生成部１０２は、コンテンツ鍵ＫＣを生成し（ステップＳ１０１）、コンテンツ暗号化部１０３は、コンテンツ鍵ＫＣを用いて、コンテンツＣを暗号化して、暗号化コンテンツＥＣを生成し（ステップＳ１０２）、鍵情報生成部１０５は、暗号化コンテンツ鍵情報ＥＫＣを生成し（ステップＳ１０３）、送受信部１０１は、インターネット２０を介して、生成した暗号化コンテンツＥＣ及び暗号化コンテンツ鍵情報ＥＫＣを各コンテンツ視聴装置へ送信する（ステップＳ１０４）。
【００８２】
各コンテンツ視聴装置、例えばコンテンツ視聴装置２００i の送受信部２０１は、コンテンツ配信装置１００から、インターネット２０を介して、暗号化コンテンツＥＣ及び暗号化コンテンツ鍵情報ＥＫＣを受信し（ステップＳ１０４）、鍵復号部２０４は、秘密鍵格納部２０２に格納されている秘密鍵ｋｓi を用いて、暗号化コンテンツ鍵情報ＥＫＣに含まれる暗号化コンテンツ鍵ＥＫＣi を復号化して、復号コンテンツ鍵ＫＣ’を生成し（ステップＳ１０５）、コンテンツ復号部２０３は、生成された復号コンテンツ鍵ＫＣ’を用いて、暗号化コンテンツＥＣを復号化して、復号コンテンツＣ’を生成し（ステップＳ１０６）、再生部２０５は、復号コンテンツＣ’を再生する（ステップＳ１０７）。
【００８３】
（２）暗号化コンテンツ鍵情報ＥＫＣの生成の動作
コンテンツ配信装置１００の鍵情報生成部１０５による暗号化コンテンツ鍵情報ＥＫＣの生成の動作について、図６に示すフローチャートを用いて説明する。なお、ここで説明する暗号化コンテンツ鍵情報ＥＫＣの生成の動作は、図５に示すフローチャートのステップＳ１０３の詳細である。
【００８４】
鍵情報生成部１０５のカウンタ設定部１１２はカウンタｉを「１」に設定する（ステップＳ１２１）。
次に、鍵暗号化部１１１は、コンテンツ視聴装置２００i に対する暗号化コンテンツ鍵ＥＫＣi を生成し（ステップＳ１２２）、カウンタ判定部１１４は、カウンタｉがｎであるか否かを判定する。ｉ＝ｎでないと判定する場合は（ステップＳ１２３）、カウンタ加算部１１３は、カウンタｉに「１」を加算し（ステップＳ１２４）、ステップＳ１２２へ戻って処理を繰り返す。
【００８５】
ｉ＝ｎであると判定する場合は（ステップＳ１２３）、出力部１１５は、暗号化コンテンツ鍵ＥＫＣ1 、ＥＫＣ2 、ＥＫＣ3 、．．．、ＥＫＣn を暗号化コンテンツ鍵情報ＥＫＣとして送受信部１０１へ出力する（ステップＳ１２５）。
（３）暗号化コンテンツ鍵ＥＫＣi の生成の動作
鍵情報生成部１０５の鍵暗号化部１１１による暗号化コンテンツ鍵ＥＫＣi の生成の動作について、図７に示すフローチャートを用いて説明する。なお、ここで説明する暗号化コンテンツ鍵ＥＫＣi の生成の動作は、図６に示すフローチャートのステップＳ１２２の詳細である。
【００８６】
鍵暗号化部１１１は、乱数ｋi を生成し（ステップＳ１４１）、ＰＣi ＝ｋi ＊Ｇを計算し（ステップＳ１４２）、ｋi ＊ＫＰi を計算し（ステップＳ１４３）、コンテンツ鍵ＫＣを楕円曲線Ｅ1 上の点Ｐ＿ＫＣ＝ｆ（ＫＣ）に変換して点Ｐ＿ＫＣを生成し（ステップＳ１４４）、Ｐ＿ＫＣ＋ｋi ＊ＫＰi を計算する（ステップＳ１４５）。
次に、鍵暗号化部１１１は、ＰＣi のｙ座標ｙi （ＰＣi ）が、
ｙi （ＰＣi ）＜（ｐ−１）／２を満たすか否かを判定する。ｙi （ＰＣi ）＜（ｐ−１）／２の場合（ステップＳ１４６）、Ｃi＝Ｐ＿ＫＣ＋ｋi ＊ＫＰi とし（ステップＳ１４８）、それ以外のとき（ステップＳ１４６）、Ｃi ＝−（Ｐ＿ＫＣ＋ｋi ＊ＫＰi ）とする（ステップＳ１４７）。
【００８７】
次に、鍵暗号化部１１１は、ＰＣi のｘ座標ｘ（ＰＣi ）とＣi とを暗号化コンテンツ鍵ＥＫＣiとして出力する（ステップＳ１４９）。
（４）復号コンテンツ鍵ＫＣ’の生成の動作
コンテンツ視聴装置２００i の鍵復号部２０４による復号コンテンツ鍵ＫＣ’の生成の動作について、図８に示すフローチャートを用いて説明する。なお、ここで説明する復号コンテンツ鍵ＫＣ’の生成の動作は、図５に示すフローチャートのステップＳ１０５の詳細である。
【００８８】
鍵復号部２０４の平方根計算部２１１は、暗号化コンテンツ鍵ＥＫＣi に含まれるｘ（ＰＣi ）に対し、ｘ（ＰＣi ）3 ＋ａ×ｘ（ＰＣi ）＋ｂの平方根ｒｔ（２個）を計算し（ステップＳ１６１）、計算により得られた２個の平方根ｒｔのうち、（ｒｔ＜（ｐ−１）／２）を満たす方を選択し（ステップＳ１６２）、ＰＣi ’＝（ｘ（ＰＣi ）、ｒｔ）を生成する（ステップＳ１６３）。
【００８９】
次に、スカラ倍点計算部２１２は、ＰＣi ’のｋｓi 倍の点ｋｓi ＊ＰＣi ’を計算する（ステップＳ１６４）。
次に、コンテンツ鍵計算部２１３は、Ｐ＿ＫＣ’＝Ｃi −ｋｓi ＊ＰＣi ’を計算し（ステップＳ１６５）、Ｐ＿ＫＣ’を整数値に変換するために、復号コンテンツ鍵ＫＣ’＝ｆ-1（Ｐ＿ＫＣ’）を計算する（ステップＳ１６６）。
【００９０】
こうして生成された復号コンテンツ鍵ＫＣ’はコンテンツ鍵ＫＣとみなすことができる。
１．９  実施の形態１の効果
コンテンツ配布システム１０における暗号化コンテンツ鍵ＥＫＣi のデータ量について検討する。
【００９１】
簡単のため、楕円曲線Ｅ1 の定義体のビット数を、現在、楕円曲線暗号として推奨されている１６０とする。
一台のコンテンツ視聴装置２００i に対する暗号化コンテンツ鍵ＥＫＣi は、一つの点Ｃi と一つの点ＰＣi のｘ座標ｘ（ＰＣi ）から構成される。Ｃi は１６０ビットのｘ，ｙ座標からなるため３２０ビットであり、点ＰＣi のｘ座標も同様に１６０ビットである。そのため、暗号化コンテンツ鍵ＥＫＣi は、３２０＋１６０＝４８０ビット（＝６０バイト）である。
【００９２】
従来技術による暗号化コンテンツ鍵情報のデータ量は、８０バイトであるため、コンテンツ配布システム１０では、従来技術の３／４に暗号化コンテンツ鍵のデータ量を削減できている。
コンテンツ視聴装置の台数ｎ＝１，０００，０００としたとき、暗号化コンテンツ鍵情報のデータ量は、６０×１，０００，０００＝６０，０００，０００バイト＝６０Ｍバイトとなる。一方、従来技術によると、コンテンツ視聴装置の台数ｎ＝１，０００，０００としたとき、暗号化コンテンツ鍵情報のデータ量は、８０×１，０００，０００＝８０，０００，０００バイト＝８０Ｍバイトとなる。
【００９３】
このように、暗号化コンテンツ鍵情報により評価する場合に、実施の形態１によると、従来技術と比較して、２０Ｍバイトの削減となる。
２．第２の実施の形態
本発明に係る別の実施の形態としてのコンテンツ配布システム１０ｂ（図示していない）について説明する。
【００９４】
コンテンツ配布システム１０ｂは、コンテンツ配布システム１０と同様の構成を有している。ここでは、コンテンツ配布システム１０との相違点を中心として説明する。
コンテンツ配布システム１０ｂは、コンテンツ配布システム１０と同様に、１台のコンテンツ配信装置１００ｂ及びｎ台のコンテンツ視聴装置２００ｂ1 、２００ｂ2 、・・・、２００ｂi 、・・・、２００ｂn から構成されており、コンテンツ配信装置１００ｂ及びコンテンツ視聴装置２００ｂ1 、２００ｂ2 、・・・、２００ｂn は、それぞれ、インターネット２０を介して相互に接続されている。
【００９５】
２．１  コンテンツ配信装置１００ｂの構成
コンテンツ配信装置１００ｂは、コンテンツ配信装置１００と同様の構成を有しており、送受信部１０１、コンテンツ鍵生成部１０２、コンテンツ暗号化部１０３、公開鍵格納部１０４、鍵情報生成部１０５ｂ、コンテンツ記憶部１０６及び制御部１０７から構成され、また、制御部１０７は、入力部１０８及び表示部１０９に接続されている（図示していない）。
【００９６】
つまり、コンテンツ配信装置１００ｂは、鍵情報生成部１０５に代えて、鍵情報生成部１０５ｂを備えている点において、コンテンツ配信装置１００と異なっている。
以下において、コンテンツ配信装置１００との相違点を中心として説明する。
（１）鍵情報生成部１０５ｂ
鍵情報生成部１０５ｂは、鍵情報生成部１０５と同様の構成を有しており、鍵暗号化部１１１ｂ、カウンタ設定部１１２、カウンタ加算部１１３、カウンタ判定部１１４、出力部１１５、鍵制御部１１６及びパラメタ記憶部１１７、カウンタｉ１１８から構成されている（図示していない）。
【００９７】
つまり、鍵情報生成部１０５ｂは、鍵暗号化部１１１に代えて、鍵暗号化部１１１ｂを備える点において、鍵情報生成部１０５と異なっている。ここでは、鍵情報生成部１０５との相違点を中心として説明する。
鍵暗号化部１１１ｂは、コンテンツ視聴装置２００ｂi に対する暗号化コンテンツ鍵を以下のように生成する。
【００９８】
（ａ）１６０ビットの乱数ｋi を生成する。
（ｂ）パラメタ記憶部１１７からベース点Ｇ、定数ａ及び素数ｐを読み出し、生成した乱数ｋi と読み出したベース点Ｇ、定数ａ及び素数ｐとを用いて、
ＰＣi ＝ｋi ＊Ｇを計算する。
（ｃ）公開鍵格納部１０４から公開鍵ＫＰi を読み出し、生成した乱数ｋi、読み出した公開鍵ＫＰi 、読み出した定数ａ及び素数ｐを用いて、
ｋi ＊ＫＰi を計算する。
【００９９】
（ｄ）コンテンツ鍵生成部１０２からコンテンツ鍵ＫＣを受け取り、受け取ったコンテンツ鍵ＫＣを用いて、計算したｋi ＊ＫＰi に対し、
ｓi ＝ＫＣ  ｘｏｒ  ｘ（ｋi ＊ＫＰi ）を計算する。ここで、ｘ（ｋi＊ＫＰi ）は、ｋi ＊ＫＰi のｘ座標であり、ｘｏｒは排他的論理和を示す演算子である。また、ｓi は、スカラ値である。
【０１００】
（ｅ）ＰＣi のｘ座標ｘ（ＰＣi ）と、ｓi とを暗号化コンテンツ鍵ＥＫＣiとし、暗号化コンテンツ鍵ＥＫＣi を出力部１１５へ出力する。
（２）出力部１１５
出力部１１５は、暗号化コンテンツ鍵ＥＫＣ1 、ＥＫＣ2 、ＥＫＣ3 、．．．、ＥＫＣn を暗号化コンテンツ鍵情報ＥＫＣとして送受信部１０１へ出力する。
【０１０１】
（３）送受信部１０１
送受信部１０１は、コンテンツ暗号化部１０３から暗号化コンテンツＥＣを受け取り、鍵情報生成部１０５ｂから暗号化コンテンツ鍵情報ＥＫＣを受け取り、受け取った暗号化コンテンツＥＣと暗号化コンテンツ鍵情報ＥＫＣとを、インターネット２０を介して、コンテンツ視聴装置２００ｂ1 、２００ｂ2 、・・・、２００ｂn へ送信する。
【０１０２】
送受信部１０１により、各コンテンツ視聴装置へ送信される送信情報３２１を図９に示す。
この図に示すように、送信情報３２１は、暗号化コンテンツＥＣ３２２と暗号化コンテンツ鍵情報ＥＫＣ３２３から構成されている。暗号化コンテンツ鍵情報ＥＫＣ３２３は、ｎ個の暗号化コンテンツ鍵３３１、３３２、・・・、３３３を含む。ｉ番目の暗号化コンテンツ鍵は、ＰＣi のｘ座標ｘ（ＰＣi ）と、ｓi とを含む。
【０１０３】
（４）第１の実施の形態との相違点
第１の実施の形態と異なる点は、点ＰＣi のｘ座標ＰＣi と点Ｃi とを暗号文とするのではなく、点ＰＣiのｘ座標とスカラｓi とを暗号文としている点である。この第２の実施の形態においても、第１の実施の形態と同様に、ＰＣi のｙ座標の情報を１ビットも暗号化コンテンツ鍵情報ＥＫＣに含めていない。
【０１０４】
２．２  コンテンツ視聴装置２００ｂ1 、２００ｂ2 、・・・、２００ｂn の構成
コンテンツ視聴装置２００ｂ1 、２００ｂ2 、・・・、２００ｂn は、それぞれ、コンテンツ視聴装置２００1 、２００2 、・・・、２００n と同様の構成を有している。
ここでは、代表して、コンテンツ視聴装置２００ｂi の構成について、コンテンツ視聴装置２００i との相違点を中心として説明する。
【０１０５】
コンテンツ視聴装置２００ｂi は、コンテンツ視聴装置２００と同様に、送受信部２０１、秘密鍵格納部２０２、コンテンツ復号部２０３、鍵復号部２０４ｂ、再生部２０５、制御部２０６、入力部２０７、モニタ２０８、スピーカ２０９及びパラメタ記憶部２１０から構成されている。
つまり、コンテンツ視聴装置２００ｂi は、鍵復号部２０４に代えて、鍵復号部２０４ｂを備えている点において、コンテンツ視聴装置２００i と異なっている。
【０１０６】
（１）鍵復号部２０４ｂ
鍵復号部２０４ｂは、平方根計算部２１１、スカラ倍点計算部２１２及びコンテンツ鍵計算部２１３ｂから構成されている（図示していない）。
つまり、鍵復号部２０４ｂは、コンテンツ鍵計算部２１３に代えて、コンテンツ鍵計算部２１３ｂを備えている点において、鍵復号部２０４と異なっている。
【０１０７】
平方根計算部２１１は、上述したように、暗号化コンテンツ鍵ＥＫＣi に含まれるｘ（ＰＣi ）に対し、ｚ＝（ｘ（ＰＣi ））3 ＋ａ×ｘ（ＰＣi ）＋ｂのＧＦ（ｐ）での平方根ｒｔを計算し、ＰＣi ’＝（ｘ（ＰＣi ），ｒｔ）とする。
スカラ倍点計算部２１２は、上述したように、秘密鍵格納部２０２に格納されている秘密鍵ｋｓi を用いて、ＰＣi ’のｋｓi 倍の点ｋｓi ＊ＰＣi ’を計算する。
【０１０８】
コンテンツ鍵計算部２１３ｂは、スカラ倍点計算部２１２から点ｋｓi ＊ＰＣi ’を受け取り、受け取ったｋｓi ＊ＰＣi ’を用いて、
ｓi   ｘｏｒ  ｘ（ｋｓi ＊ＰＣi ’）を計算し、この結果を復号コンテンツ鍵ＫＣ’とする。
復号コンテンツ鍵ＫＣ’＝ｓi   ｘｏｒ  ｘ（ｋｓi ＊ＰＣi ’）
２．３  コンテンツ配布システム１０ｂの動作
コンテンツ配布システム１０ｂの動作について説明する。
【０１０９】
なお、コンテンツ配布システム１０ｂの動作は、コンテンツ配布システム１０の動作と類似しているので、ここでは、コンテンツ配布システム１０の動作との相違点を中心として説明する。
コンテンツ配布システム１０ｂの主要な動作は、図５に示すコンテンツ配布システム１０の主要な動作と同一であるので説明を省略する。
【０１１０】
また、コンテンツ配信装置１００ｂの鍵情報生成部１０５ｂによる暗号化コンテンツ鍵情報ＥＫＣの生成の動作は、図６に示す暗号化コンテンツ鍵情報ＥＫＣの生成の動作と同一であるので説明を省略する。
（１）暗号化コンテンツ鍵ＥＫＣi の生成の動作
鍵情報生成部１０５ｂの鍵暗号化部１１１ｂによる暗号化コンテンツ鍵ＥＫＣi の生成の動作について、図１０に示すフローチャートを用いて説明する。なお、ここで説明する暗号化コンテンツ鍵ＥＫＣi の生成の動作は、図６に示すフローチャートのステップＳ１２２の詳細である。
【０１１１】
鍵暗号化部１１１ｂは、１６０ビットの乱数ｋi を生成し（ステップＳ２０１）、パラメタ記憶部１１７からベース点Ｇ、定数ａ及び素数ｐを読み出し、生成した乱数ｋi と読み出したベース点Ｇ、定数ａ及び素数ｐとを用いて、ＰＣi ＝ｋi ＊Ｇを計算し（ステップＳ２０２）、公開鍵格納部１０４から公開鍵ＫＰi を読み出し、生成した乱数ｋi、読み出した公開鍵ＫＰi 、読み出した定数ａ及び素数ｐを用いて、ｋi ＊ＫＰi を計算し（ステップＳ２０３）、コンテンツ鍵生成部１０２から受け取ったコンテンツ鍵ＫＣを用いて、計算したｋi ＊ＫＰi に対し、ｓi ＝ＫＣ  ｘｏｒ  ｘ（ｋi ＊ＫＰi ）を計算し（ステップＳ２０４）、ＰＣi のｘ座標ｘ（ＰＣi ）と、ｓi とを暗号化コンテンツ鍵ＥＫＣiとし、暗号化コンテンツ鍵ＥＫＣi を出力部１１５へ出力する（ステップＳ２０５）。
【０１１２】
（２）復号コンテンツ鍵ＫＣ’の生成の動作
コンテンツ視聴装置２００ｂi の鍵復号部２０４ｂによる復号コンテンツ鍵ＫＣ’の生成の動作について、図１１に示すフローチャートを用いて説明する。なお、ここで説明する復号コンテンツ鍵ＫＣ’の生成の動作は、図５に示すフローチャートのステップＳ１０５の詳細である。
【０１１３】
鍵復号部２０４ｂの平方根計算部２１１は、暗号化コンテンツ鍵ＥＫＣi に含まれるｘ（ＰＣi ）に対し、ｘ（ＰＣi ）3 ＋ａ×ｘ（ＰＣi ）＋ｂの平方根ｒｔ（２個）を計算し、計算により得られた平方根ｒｔのうち、（ｒｔ＜（ｐ−１）／２）を満たす方を選択し、ＰＣi ’＝（ｘ（ＰＣi ）、ｒｔ）を生成する（ステップＳ２２１）。
次に、スカラ倍点計算部２１２は、ＰＣi ’のｋｓi 倍の点ｋｓi ＊ＰＣi ’を計算する（ステップＳ２２２）。
【０１１４】
次に、コンテンツ鍵計算部２１３ｂは、スカラ倍点計算部２１２から点ｋｓi ＊ＰＣi ’を受け取り、受け取ったｋｓi ＊ＰＣi ’を用いて、ｓi   ｘｏｒ  ｘ（ｋｓi ＊ＰＣi ’）を計算し、この結果を復号コンテンツ鍵ＫＣ’とする（ステップＳ２２３）。
こうして生成された復号コンテンツ鍵ＫＣ’はコンテンツ鍵ＫＣとみなすことができる。
【０１１５】
２．４  コンテンツ鍵を正しく復号化できる理由
ここで、ｘ（ｋｓi ＊ＰＣi ’）＝ｘ（ｋｓi ＊ＰＣi ）＝ｘ（ｋｓi ＊ｋi ＊Ｇ）＝ｘ（ｋi ＊ＫＰi ）が成り立つため、ｓi   ｘｏｒ  ｘ（ｋｓi ＊ＰＣi ’）は、コンテンツ鍵ＫＣと等しい。以下で、ｘ（ｋｓi ＊ＰＣi ’）＝ｘ（ｋｓi ＊ＫＰi ）が成り立つ理由について述べる。
【０１１６】
一般に、ＧＦ（ｐ）で定義される楕円曲線では、Ｐ＝（ｘ1 ，ｙ1 ）に対する負の点−Ｐは、−Ｐ＝（ｘ1 ，−ｙ1 ）で与えられる。平方根ｒｔは、ｒｔ2 ＝（ｘ（ＰＣi ））3 ＋ａ×ｘ（ＰＣi ）＋ｂを満たす。ここで、点ＰＣi のｙ座標ｙ（ＰＣi ）もｙ（ＰＣi ）2 ＝（ｘ（ＰＣi ））3 ＋ａ×ｘ（ＰＣi ）＋ｂを満たすため、ｙ（ＰＣi）＝ｒｔまたはｙ（ＰＣi ）＝−ｒｔを満たす。ここで、ｙ（ＰＣi ）＝ｒｔであれば、ＰＣi ＝ＰＣi ’となるため、当然、ｘ（ｋｓi＊ＰＣi ’）＝ｘ（ｋｓi ＊ＰＣi ）を満たす。そこで、ｙ（ＰＣi）＝−ｒｔである場合を考える。
【０１１７】
ｙ（ＰＣi ）＝−ｒｔである場合、ＰＣi ’＝−ＰＣi を満たす。そのため、ｋｓi ＊ＰＣi ’＝−ｋｓi ＊ＰＣi である。ここで、ｘ（Ｐ）＝ｘ（−Ｐ）を満たすため、ｘ（ｋｓi ＊ＰＣi ’）＝ｘ（−ｋｓi ＊ＰＣi ）＝ｘ（ｋｓi ＊ＰＣi ）が成り立つ。
以上より、ｘ（ｋｓi ＊ＰＣi ’）＝ｘ（ｋｓi ＊ＫＰi ）が成り立ち、コンテンツ鍵を正しく復号化できる。
【０１１８】
２．５  実施の形態２の効果
コンテンツ配布システム１０ｂにおける暗号化コンテンツ鍵ＥＫＣi のデータ量について検討する。
簡単のため、楕円曲線Ｅ1 の定義体のビット数を、現在、楕円曲線暗号として推奨されている１６０とする。
【０１１９】
一台のコンテンツ視聴装置２００ｂi に対する暗号化コンテンツ鍵ＥＫＣi は、一つのスカラｓi と一つの点ＰＣi のｘ座標ｘ（ＰＣｉ）から構成される。スカラｓiは１６０ビットであり、点ＰＣi のｘ座標も同様に１６０ビットである。そのため、暗号化コンテンツ鍵ＥＫＣi は、１６０＋１６０＝３２０ビット（＝４０バイト）である。
従来技術による暗号化コンテンツ鍵情報のデータ量は、８０バイトであるため、コンテンツ配布システム１０ｂでは、従来技術の１／２に暗号化コンテンツ鍵のデータ量を削減できている。
【０１２０】
コンテンツ視聴装置の台数ｎ＝１，０００，０００としたとき、暗号化コンテンツ鍵情報のデータ量は、４０×１，０００，０００＝４０，０００，０００バイト＝４０Ｍバイトとなる。一方、従来技術によると、コンテンツ視聴装置の台数ｎ＝１，０００，０００としたとき、暗号化コンテンツ鍵情報のデータ量は、８０×１，０００，０００＝８０，０００，０００バイト＝８０Ｍバイトとなる。
【０１２１】
このように、暗号化コンテンツ鍵情報により評価する場合に、実施の形態２によると、従来技術と比較して、４０Ｍバイトの削減となる。
３．第３の実施の形態
本発明に係る別の実施の形態としてのコンテンツ配布システム１０ｃ（図示していない）について説明する。
【０１２２】
コンテンツ配布システム１０ｃは、コンテンツ配布システム１０と同様の構成を有している。ここでは、コンテンツ配布システム１０との相違点を中心として説明する。
コンテンツ配布システム１０ｃは、コンテンツ配布システム１０と同様に、１台のコンテンツ配信装置１００ｃ及びｎ台のコンテンツ視聴装置２００ｃ1 、２００ｃ2 、・・・、２００ｃi 、・・・、２００ｃn から構成されており、コンテンツ配信装置１００ｃ及びコンテンツ視聴装置２００ｃ1 、２００ｃ2 、・・・、２００ｃn は、それぞれ、インターネット２０を介して相互に接続されている。
【０１２３】
３．１  コンテンツ配信装置１００ｃの構成
コンテンツ配信装置１００ｃは、コンテンツ配信装置１００と同様の構成を有しており、送受信部１０１、コンテンツ鍵生成部１０２、コンテンツ暗号化部１０３、公開鍵格納部１０４、鍵情報生成部１０５ｃ、コンテンツ記憶部１０６及び制御部１０７から構成され、また、制御部１０７は、入力部１０８及び表示部１０９に接続されている（図示していない）。
【０１２４】
つまり、コンテンツ配信装置１００ｃは、鍵情報生成部１０５に代えて、鍵情報生成部１０５ｃを備えている点において、コンテンツ配信装置１００と異なっている。
以下において、コンテンツ配信装置１００との相違点を中心として説明する。
（１）鍵情報生成部１０５ｃ
鍵情報生成部１０５ｃは、鍵情報生成部１０５と同様の構成を有しており、図１２に示すように、カウンタ設定部１１２、カウンタ加算部１１３、カウンタ判定部１１４、出力部１１５、鍵制御部１１６、パラメタ記憶部１１７、カウンタｉ１１８及び共通暗号部１１９ｃ及び個別暗号部１２０ｃから構成されている。
【０１２５】
つまり、鍵情報生成部１０５ｃは、鍵暗号化部１１１に代えて、共通暗号部１１９ｃ及び個別暗号部１２０ｃを備える点において、鍵情報生成部１０５と異なっている。ここでは、鍵情報生成部１０５との相違点を中心として説明する。
（カウンタ設定部１１２）
カウンタ設定部１１２は、カウンタｉを「１」に設定する。
【０１２６】
（共通暗号部１１９ｃ）
共通暗号部１１９ｃは、１６０ビットの乱数ｋを生成する。また、パラメタ記憶部１１７からベース点Ｇ、定数ａ及び素数ｐを読み出し、生成した乱数ｋと読み出したベース点Ｇ、定数ａ及び素数ｐとを用いて、共通暗号文ＰＣ＝ｋ＊Ｇを計算する。次に、計算した共通暗号文ＰＣを出力部１１５へ出力する。また、生成した乱数ｋを個別暗号部１２０ｃへ出力する。
【０１２７】
（個別暗号部１２０ｃ）
個別暗号部１２０ｃは、コンテンツ視聴装置２００ｃi に対する個別暗号文ｓi を以下のように生成する。
（ａ）共通暗号部１１９ｃから乱数ｋを受け取る。
（ｂ）公開鍵格納部１０４から公開鍵ＫＰi を読み出し、パラメタ記憶部１１７から定数ａ及び素数ｐを読み出し、受け取った乱数ｋ、読み出した公開鍵ＫＰi 、読み出した定数ａ及び素数ｐを用いて、ｋ＊ＫＰiを計算する。
【０１２８】
（ｃ）コンテンツ鍵生成部１０２からコンテンツ鍵ＫＣを受け取り、受け取ったコンテンツ鍵ＫＣ及び計算したｋ＊ＫＰi を用いて、
個別暗号文ｓi ＝ＫＣ  ｘｏｒ  ｘ（ｋ＊ＫＰi ）を計算する。
ここで、ｘ（ｋ＊ＫＰi ）は、ｋ＊ＫＰi のｘ座標である。
次に、生成した個別暗号文ｓi を出力部１１５へ出力する。
【０１２９】
（カウンタ判定部１１４、カウンタ加算部１１３、出力部１１５、鍵制御部１１６）
カウンタ判定部１１４は、カウンタｉがｎであるか否かを判定する。
カウンタ判定部１１４により、カウンタｉ≠ｎであると判定される場合に、カウンタ加算部１１３は、カウンタｉに１を加算する。次に、上記を繰り返す。
カウンタ判定部１１４により、カウンタｉ＝ｎであると判定される場合に、出力部１１５は、共通暗号文ＰＣと、個別暗号文ｓ1 、ｓ2 、ｓ3、．．．．、ｓnとを、暗号化コンテンツ鍵情報ＥＫＣとして、送受信部１０１へ出力する。
【０１３０】
鍵制御部１１６は、鍵情報生成部１０５ｃを構成する各構成要素を制御する。
（２）送受信部１０１
送受信部１０１は、コンテンツ暗号化部１０３から暗号化コンテンツＥＣを受け取り、鍵情報生成部１０５ｃから暗号化コンテンツ鍵情報ＥＫＣを受け取り、受け取った暗号化コンテンツＥＣと暗号化コンテンツ鍵情報ＥＫＣとを、インターネット２０を介して、コンテンツ視聴装置２００ｃ1 、２００ｃ2 、・・・、２００ｃn へ送信する。
【０１３１】
送受信部１０１により、各コンテンツ視聴装置へ送信される送信情報３４１を図１３に示す。
この図に示すように、送信情報３４１は、暗号化コンテンツＥＣ３４２と暗号化コンテンツ鍵情報ＥＫＣ３４３から構成されている。暗号化コンテンツ鍵情報ＥＫＣ３４３は、共通暗号文ＰＣ３４４とｎ個の個別暗号文とを含む。ｉ番目の個別暗号文ｓi は、ＫＣ  ｘｏｒ  ｘ（ｋ＊ＫＰi ）により算出されたものである。
【０１３２】
３．２  コンテンツ視聴装置２００ｃ1 、２００ｃ2 、・・・、２００ｃn の構成
コンテンツ視聴装置２００ｃ1 、２００ｃ2 、・・・、２００ｃn は、それぞれ、コンテンツ視聴装置２００1 、２００2 、・・・、２００n と同様の構成を有している。
ここでは、代表して、コンテンツ視聴装置２００ｃi の構成について、コンテンツ視聴装置２００i との相違点を中心として説明する。
【０１３３】
コンテンツ視聴装置２００ｃi は、コンテンツ視聴装置２００と同様に、送受信部２０１、秘密鍵格納部２０２、コンテンツ復号部２０３、鍵復号部２０４ｃ、再生部２０５、制御部２０６、入力部２０７、モニタ２０８、スピーカ２０９及びパラメタ記憶部２１０から構成されている（図示していない）。
つまり、コンテンツ視聴装置２００ｃi は、鍵復号部２０４に代えて、鍵復号部２０４ｃを備えている点において、コンテンツ視聴装置２００i と異なっている。
【０１３４】
（１）送受信部２０１
送受信部２０１は、コンテンツ配信装置１００ｃから、インターネット２０を介して、暗号化コンテンツＥＣと暗号化コンテンツ鍵情報ＥＫＣとを受信し、受信した暗号化コンテンツＥＣをコンテンツ復号部２０３へ出力し、受信した暗号化コンテンツ鍵情報ＥＫＣを鍵復号部２０４ｃへ出力する。
【０１３５】
（２）鍵復号部２０４ｃ
鍵復号部２０４ｃは、図１４に示すように、スカラ倍点計算部２１２ｃ及びコンテンツ鍵計算部２１３ｃから構成されている。
スカラ倍点計算部２１２ｃは、秘密鍵格納部２０２から秘密鍵ｋｓi を読み出し、送受信部２０１から受け取った暗号化コンテンツ鍵情報ＥＫＣから共通暗号文ＰＣを抽出し、パラメタ記憶部２１０から定数ａ及び素数ｐを読み出し、読み出した定数ａ、素数ｐ及び読み出した秘密鍵ｋｓi を用いて、抽出した共通暗号文ＰＣのｋｓｉ倍の点ｋｓｉ＊ＰＣを計算する。次に、計算した点ｋｓｉ＊ＰＣをコンテンツ鍵計算部２１３ｃへ出力する。
【０１３６】
コンテンツ鍵計算部２１３ｃは、自身のコンテンツ視聴装置に割り当てられた装置固有番号ｉを予め記憶している。コンテンツ鍵計算部２１３ｃは、送受信部２０１から暗号化コンテンツ鍵情報ＥＫＣを受け取り、装置固有番号ｉを読み出し、読み出した装置固有番号ｉを用いて、受け取った暗号化コンテンツ鍵情報ＥＫＣから自身の装置に対応するｓi を特定し、特定したｓi を暗号化コンテンツ鍵情報ＥＫＣから抽出する。また、スカラ倍点計算部２１２ｃから点ｋｓｉ＊ＰＣを受け取る。次に、受け取った点ｋｓｉ＊ＰＣを用いて、
ｓi   ｘｏｒ  ｘ（ｋｓｉ＊ＰＣ）を計算し、この結果を復号コンテンツ鍵ＫＣ’とする。
【０１３７】
復号コンテンツ鍵ＫＣ’＝ｓi   ｘｏｒ  ｘ（ｋｓｉ＊ＰＣ）
次に、計算した復号コンテンツ鍵ＫＣ’をコンテンツ復号部２０３へ出力する。
３．３  コンテンツ配布システム１０ｃの動作
コンテンツ配布システム１０ｃの動作について説明する。
なお、コンテンツ配布システム１０ｃの動作は、コンテンツ配布システム１０の動作と類似しているので、ここでは、コンテンツ配布システム１０の動作との相違点を中心として説明する。
【０１３８】
コンテンツ配布システム１０ｃの主要な動作は、図５に示すコンテンツ配布システム１０の主要な動作と同一であるので説明を省略する。
（１）暗号化コンテンツ鍵情報ＥＫＣの生成の動作
コンテンツ配信装置１００ｃの鍵情報生成部１０５ｃによる暗号化コンテンツ鍵情報ＥＫＣの生成の動作について、図１５に示すフローチャートを用いて説明する。ここで説明する暗号化コンテンツ鍵情報ＥＫＣの生成の動作は、図５に示すフローチャートのステップＳ１０３の詳細である。
【０１３９】
カウンタ設定部１１２は、カウンタｉを「１」に設定する（ステップＳ３０１）。
次に、共通暗号部１１９ｃは、１６０ビットの乱数ｋを生成し、共通暗号文ＰＣ＝ｋ＊Ｇを計算し、計算した共通暗号文ＰＣを出力部１１５へ出力し、生成した乱数ｋを個別暗号部１２０ｃへ出力する（ステップＳ３０２）。
次に、個別暗号部１２０ｃは、コンテンツ視聴装置２００ｃi に対する個別暗号文ｓi を生成し、生成した個別暗号文ｓi を出力部１１５へ出力する（ステップＳ３０３）。
【０１４０】
次に、カウンタ判定部１１４は、カウンタｉがｎであるか否かを判定する。カウンタ判定部１１４により、カウンタｉ≠ｎであると判定される場合に（ステップＳ３０４）、カウンタ加算部１１３は、カウンタｉに１を加算し（ステップＳ３０５）、次に、ステップＳ３０３へ戻って処理を繰り返す。
カウンタ判定部１１４により、カウンタｉ＝ｎであると判定される場合に（ステップＳ３０４）、出力部１１５は、共通暗号文ＰＣと、個別暗号文ｓ1 、ｓ2、ｓ3 、．．．、ｓn とを、暗号化コンテンツ鍵情報ＥＫＣとして、送受信部１０１へ出力する（ステップＳ３０６）。
【０１４１】
（２）復号コンテンツ鍵ＫＣ’の生成の動作
コンテンツ視聴装置２００ｃi の鍵復号部２０４ｃによる復号コンテンツ鍵ＫＣ’の生成の動作について、図１６に示すフローチャートを用いて説明する。なお、ここで説明する復号コンテンツ鍵ＫＣ’の生成の動作は、図５に示すフローチャートのステップＳ１０５の詳細である。
【０１４２】
スカラ倍点計算部２１２ｃは、定数ａ、素数ｐ及び秘密鍵ｋｓi を用いて、共通暗号文ＰＣのｋｓi 倍の点ｋｓi ＊ＰＣを計算し、計算した点ｋｓi ＊ＰＣをコンテンツ鍵計算部２１３ｃへ出力する（ステップＳ３２１）。
次に、コンテンツ鍵計算部２１３ｃは、
復号コンテンツ鍵ＫＣ’＝ｓi   ｘｏｒ  ｘ（ｋｓi ＊ＰＣ）を計算し、計算した復号コンテンツ鍵ＫＣ’をコンテンツ復号部２０３へ出力する（ステップＳ３２２）。
【０１４３】
３．４  実施の形態３の効果
コンテンツ配布システム１０ｃにおける暗号化コンテンツ鍵情報ＥＫＣのデータ量について検討する。
簡単のため、楕円曲線Ｅ1 の定義体のビット数を現在、楕円曲線暗号として推奨されている１６０とする。
【０１４４】
共通暗号文ＰＣは、楕円曲線Ｅ1 の点であり、ｘ，ｙ座標から構成されるため、３２０ビット（＝４０バイト）である。個別暗号文ｓi は、１６０ビット（＝２０バイト）である。
したがって、ｎ＝１，０００，０００としたとき、暗号化コンテンツ鍵情報のデータ量は、４０＋２０×１，０００，０００＝２０，０００，０４０バイト≒２０Ｍバイトとなる。
【０１４５】
従来技術による暗号化コンテンツ鍵情報のデータ量は、８０Ｍバイトであるため、コンテンツ配布システム１０ｃでは、従来技術の１／４に暗号化コンテンツ鍵情報のデータ量を削減できている。
３．５  実施の形態３のまとめ
以上説明したように、本発明は、平文を秘密に伝達する情報伝達システムであって、１台の暗号装置と複数台の復号装置とから構成される。
【０１４６】
前記暗号装置は、以下を含む。
・記憶部、
平文を記憶している。
・共通演算部、
前記複数の復号装置に共通の共通暗号文を生成する。
・個別演算部、
前記平文に基づいて、各復号装置に個別の個別暗号文を生成する。
・出力部、
生成された前記共通暗号文と、生成された複数の個別暗号文とを出力する。
【０１４７】
各復号装置は、以下を含む。
・取得部、
前記共通暗号文及び前記複数の個別暗号文を取得する。
・特定部、
前記複数の個別暗号文から当該復号装置に割り当てられた個別暗号文を抽出する。
・復号部、
取得した前記共通暗号文及びに抽出した前記個別暗号文を用いて、復号文を生成する。
【０１４８】
また、以上説明したように、本発明は、群上の離散対数問題を安全性の根拠として、平文を秘密に伝達する情報伝達システムであって、１台の暗号装置と複数台の復号装置とから構成される。
群上のベース元をＧとする。各復号装置の群上の公開鍵は、ベース元と、当該復号装置の秘密鍵とに、前記群上のべき演算を施して算出される。
【０１４９】
前記暗号装置は、以下を含む。
・記憶部、
平文を記憶している。
・乱数生成部、
スカラ値である乱数を生成する。
・共通演算部、
群上のベース元と前記乱数とに、前記べき演算を施して、共通暗号元を算出する。
・個別演算部、
・出力部、
算出された前記共通暗号元と、算出された複数の個別暗号文とを出力する。
【０１５０】
個別演算部は、以下を含む。
・公開鍵演算部、
各復号装置に割り当てられた群上の公開鍵と前記乱数とに、前記べき演算を施して、公開鍵演算元を算出する。
・排他的論理和部、
前記平文と前記公開鍵演算元とに排他的論理和を施して、当該復号装置の個別暗号文を算出する。
【０１５１】
各復号装置は、以下を含む。
・取得部、
前記共通暗号元及び前記複数の個別暗号文を取得する。
・特定部、
前記複数の個別暗号文から当該復号装置に割り当てられた個別暗号文を抽出する。
・秘密鍵演算部、
取得した前記共通暗号元と、当該復号装置の秘密鍵とに、前記べき演算を施して、前記群上の秘密鍵復号元を算出する。
・排他的論理和部、
抽出した前記個別暗号文と、算出した秘密鍵復号元とに、排他的論理和を施して、復号文を生成する。
【０１５２】
また、以上説明したように、本発明は、楕円曲線上の離散対数問題を安全性の根拠として、平文を秘密に伝達する情報伝達システムであって、１台の暗号装置と複数台の復号装置とから構成される。
有限体ＧＦ（ｐ）上の楕円曲線をｙ2 ＝ｘ3 ＋ａ×ｘ＋ｂとし、ｐは素数である。楕円曲線上のベース点をＧとする。各復号装置の楕円曲線上の公開鍵点は、ベース点に当該復号装置の秘密鍵を乗じて算出される。
【０１５３】
前記暗号装置は、以下を含む。
・記憶部、
平文を記憶している。
・乱数生成部、
スカラ値である乱数を生成する。
・共通演算部、
楕円曲線上のベース点に、前記乱数を乗じて共通暗号点を算出する。
・個別演算部、
・出力部、
算出された前記共通暗号点と、算出された複数の個別暗号文とを出力する。
【０１５４】
個別演算部は、以下を含む。
・公開鍵演算部、
各復号装置に割り当てられた楕円曲線上の公開鍵点について、当該公開鍵点に、前記乱数を乗じて公開鍵乗算点を算出する。
・排他的論理和部、
前記公開鍵乗算点のｘ座標値を抽出し、前記平文と抽出した前記ｘ座標値とに排他的論理和を施して、当該復号装置の個別暗号文を算出する。
【０１５５】
各復号装置は、以下を含む。
・取得部、
前記共通暗号点及び前記複数の個別暗号文を取得する。
・特定部、
前記複数の個別暗号文から当該復号装置に割り当てられた個別暗号文を抽出する。
・秘密鍵演算部、
取得した前記共通暗号点に、当該復号装置の秘密鍵を乗じて、楕円曲線上の秘密鍵復号点を算出する。
・排他的論理和部、
算出した秘密鍵復号点のｘ座標値を抽出し、抽出した前記個別暗号文と、抽出した前記ｘ座標値とに排他的論理和を施して、復号文を生成する。
【０１５６】
（発明の効果）
これらの構成によると、暗号文の一部を各復号装置で共通にすることにより、伝達される暗号文のデータ量を削減することができ、その実用的価値は大きい。
４．まとめ
以上説明したように、本発明は、コンテンツ配信装置と、通信路と、複数のコンテンツ視聴装置を備え、前記コンテンツ配信装置から前記通信路を介してコンテンツを各コンテンツ視聴装置へ配信するコンテンツ配布システムである。
【０１５７】
前記コンテンツ配信装置は、前記コンテンツ視聴装置へデータを送信する送信部と、コンテンツ鍵を生成するコンテンツ鍵生成部と、前記コンテンツ鍵を用いて前記コンテンツを暗号化して、暗号化コンテンツを生成する暗号化コンテンツ生成部と、前記コンテンツ視聴装置の公開鍵を格納する公開鍵格納部と、前記コンテンツ鍵を前記公開鍵で暗号化して暗号化コンテンツ鍵情報を生成する暗号化コンテンツ鍵情報生成部からなる。
【０１５８】
各コンテンツ視聴装置は、前記コンテンツ配信装置からデータを受信する受信部と、前記コンテンツ視聴装置の秘密鍵を格納する秘密鍵格納部と、前記暗号化コンテンツ鍵情報を復号化し、コンテンツ鍵を取得する暗号化コンテンツ鍵復号部と、前記暗号化コンテンツを復号化し、コンテンツを取得する暗号化コンテンツ復号部からなり、前記暗号化コンテンツ鍵情報生成部は、楕円曲線暗号を使用し、楕円曲線暗号の暗号文に含まれる点に対し、前記点のｘ座標と前記暗号文の前記点以外の部分とを暗号化コンテンツ鍵情報として含め、前記暗号化コンテンツ鍵復号部は、前記暗号化コンテンツ鍵情報に含む前記ｘ座標ＰＣｘを持つ点のｙ座標を計算する。
【０１５９】
ここで、前記楕円曲線暗号は、定義式ｙ2 ＝ｘ3 ＋ａ×ｘ＋ｂ（ａ，ｂは整数値）で定義される楕円曲線を使用し、前記暗号化コンテンツ鍵復号部は、前記ｘ座標ＰＣｘを用いて、（ＰＣｘ）3 ＋ａ×ＰＣｘ＋ｂの平方根を計算することで、前記ｙ座標を計算するとしてよい。
また、本発明は、コンテンツ配信装置と、通信路と、複数のコンテンツ視聴装置を備え、前記コンテンツ配信装置から前記通信路を介してコンテンツを各コンテンツ視聴装置へ配信するコンテンツ配布システムである。
【０１６０】
前記コンテンツ配信装置は、各コンテンツ視聴装置へデータを送信する送信部と、コンテンツ鍵を生成するコンテンツ鍵生成部と、前記コンテンツ鍵を用いて前記コンテンツを暗号化して、暗号化コンテンツを生成する暗号化コンテンツ生成部と、前記コンテンツ視聴装置の公開鍵を格納する公開鍵格納部と、前記コンテンツ鍵を前記公開鍵で暗号化して暗号化コンテンツ鍵情報を生成する暗号化コンテンツ鍵情報生成部からなる。
【０１６１】
各コンテンツ視聴装置は、前記コンテンツ配信装置からデータを受信する受信部と、前記コンテンツ視聴装置の秘密鍵を格納する秘密鍵格納部と、前記暗号化コンテンツ鍵情報を復号化し、コンテンツ鍵を取得する暗号化コンテンツ鍵復号部と、前記暗号化コンテンツを復号化し、コンテンツを取得する暗号化コンテンツ復号部からなり、前記暗号化コンテンツ鍵情報生成部は、複数の前記コンテンツ視聴装置に共通する共通暗号文と前記コンテンツ視聴装置の各々に個別に個別暗号文を生成して、前記暗号化コンテンツ鍵情報とする。
【０１６２】
ここで、前記暗号化コンテンツ鍵情報生成部と前記暗号化コンテンツ鍵復号部は、楕円曲線暗号を使用するとしてもよい。
ここで、前記共通暗号文及び前記個別暗号文は、楕円曲線上の点であるとしてもよい。
ここで、前記共通暗号文は、楕円曲線上の点であり、前記個別暗号文は、前記楕円曲線を定義する定義体に属する元であるとしてもよい。
【０１６３】
ここで、前記暗号化コンテンツ鍵情報生成部と前記暗号化コンテンツ鍵復号部は、ＥｌＧａｍａｌ暗号を使用するとしてもよい。
また、本発明は、コンテンツ配信装置と、通信路と、複数のコンテンツ視聴装置を備え、前記コンテンツ配信装置から前記通信路を介してコンテンツを各コンテンツ視聴装置へ配信するコンテンツ配布システムにおけるコンテンツ配信装置であって、前記コンテンツ視聴装置へデータを送信する送信部と、コンテンツ鍵を生成するコンテンツ鍵生成部と、前記コンテンツ鍵を用いて前記コンテンツを暗号化して、暗号化コンテンツを生成する暗号化コンテンツ生成部と、前記コンテンツ視聴装置の公開鍵を格納する公開鍵格納部と、前記コンテンツ鍵を前記公開鍵で暗号化して暗号化コンテンツ鍵情報を生成する暗号化コンテンツ鍵情報生成部とを備え、前記暗号化コンテンツ鍵情報生成部は、楕円曲線暗号を使用し、楕円曲線暗号の暗号文に含まれる点に対し、前記点のｘ座標と前記暗号文の前記点以外の部分とを暗号化コンテンツ鍵情報として含める。
【０１６４】
また、本発明は、コンテンツ配信装置と、通信路と、複数のコンテンツ視聴装置を備え、前記コンテンツ配信装置から前記通信路を介してコンテンツを前記コンテンツ視聴装置へ配信するコンテンツ配布システムにおけるコンテンツ視聴装置であって、前記コンテンツ配信装置からデータを受信する受信部と、前記コンテンツ視聴装置の秘密鍵を格納する秘密鍵格納部と、暗号化コンテンツ鍵情報を復号化し、コンテンツ鍵を取得する暗号化コンテンツ鍵復号部と、暗号化コンテンツを復号化し、コンテンツを取得する暗号化コンテンツ復号部とを備え、前記暗号化コンテンツ鍵復号部は、前記暗号化コンテンツ鍵情報に含む前記ｘ座標ＰＣｘのみから、前記ｘ座標ＰＣｘを持つ点のｙ座標を計算する。
【０１６５】
また、本発明は、コンテンツ配信装置と、通信路と、複数のコンテンツ視聴装置を備え、前記コンテンツ配信装置から前記通信路を介してコンテンツを前記コンテンツ視聴装置へ配信するコンテンツ配布システムにおけるコンテンツ配信装置であって、前記コンテンツ視聴装置へデータを送信する送信部と、コンテンツ鍵を生成するコンテンツ鍵生成部と、前記コンテンツ鍵を用いて前記コンテンツを暗号化して、暗号化コンテンツを生成する暗号化コンテンツ生成部と、前記コンテンツ視聴装置の公開鍵を格納する公開鍵格納部と、前記コンテンツ鍵を前記公開鍵で暗号化して暗号化コンテンツ鍵情報を生成する暗号化コンテンツ鍵情報生成部とを備え、前記暗号化コンテンツ鍵情報生成部は、複数の前記コンテンツ視聴装置に共通する共通暗号文と前記コンテンツ視聴装置の各々に個別に個別暗号文を生成して、前記暗号化コンテンツ鍵情報とする。
【０１６６】
また、本発明は、コンテンツ配信装置と、通信路と、複数のコンテンツ視聴装置を備え、前記コンテンツ配信装置から前記通信路を介してコンテンツを前記コンテンツ視聴装置へ配信するコンテンツ配布システムにおけるコンテンツ視聴装置であって、前記コンテンツ配信装置からデータを受信する受信部と、前記コンテンツ視聴装置の秘密鍵を格納する秘密鍵格納部と、前記暗号化コンテンツ鍵情報を復号化し、コンテンツ鍵を取得する暗号化コンテンツ鍵復号部と、前記暗号化コンテンツを復号化し、コンテンツを取得する暗号化コンテンツ復号部からなり、前記暗号化コンテンツ鍵復号部は、複数の前記コンテンツ視聴装置に共通する共通暗号文と、前記コンテンツ視聴装置に個別の個別暗号文から、前記コンテンツ鍵を取得する。
【０１６７】
これらの構成によると、暗号文中の楕円曲線上の点のｙ座標を暗号化コンテンツ鍵に含めないことや、暗号文の一部を各コンテンツ視聴装置で共通にすることにより、暗号化コンテンツ鍵のデータ量を削減することができ、その実用的価値は大きい。
５．その他の変形例
なお、本発明を上記の実施の形態に基づいて説明してきたが、本発明は、上記の実施の形態に限定されないのはもちろんである。以下のような場合も本発明に含まれる。
【０１６８】
（１）第１の実施の形態では、コンテンツ配信装置１００が有する鍵情報生成部１０５の鍵暗号化部１１１は、点ＰＣｉのｘ座標ｘ（ＰＣi ）と点Ｃｉとから構成される暗号化コンテンツ鍵ＥＫＣi を生成するとしているが、点ＰＣｉと点Ｃｉのｘ座標ｘ（Ｃi ）とから構成される暗号化コンテンツ鍵ＥＫＣi を生成するとしてもよい。
具体的には、鍵暗号化部１１１は、コンテンツ視聴装置２００i に対する暗号化コンテンツ鍵を以下のように生成するとしてもよい。
【０１６９】
（ａ）１６０ビットの乱数ｋi を生成する。
（ｂ）パラメタ記憶部１１７からベース点Ｇ、定数ａ及び素数ｐを読み出し、生成した乱数ｋi と読み出したベース点Ｇ、定数ａ及び素数ｐとを用いて、
ｋi ＊Ｇを計算する。なお、楕円曲線上の楕円べき倍演算については、上述した通りである。
【０１７０】
（ｃ）公開鍵格納部１０４から公開鍵ＫＰi を読み出し、生成した乱数ｋi、読み出した公開鍵ＫＰi 、読み出した定数ａ及び素数ｐを用いて、ｋi ＊ＫＰi を計算する。
（ｄ）コンテンツ鍵生成部１０２からコンテンツ鍵ＫＣを受け取り、受け取ったＫＣに変換関数ｆを施して、コンテンツ鍵ＫＣを楕円曲線Ｅ1 上の点Ｐ＿ＫＣ＝ｆ（ＫＣ）に変換する。なお、変換関数ｆについては、上述した通りである。
【０１７１】
（ｅ）Ｃi ＝Ｐ＿ＫＣ＋ｋi ＊ＫＰi を計算する。
（ｆ）Ｃi のｙ座標ｙi （Ｃi）が
ｙi （Ｃi ）＜（ｐ−１）／２
を満たすか否かを判定する。
ｙi （Ｃi ）＜（ｐ−１）／２の場合、ＰＣi ＝ｋi＊Ｇとし、
ｙi （Ｃi ）≧（ｐ−１）／２の場合、ＰＣi ＝−ｋi ＊Ｇとする。
【０１７２】
（ｇ）点Ｃi のｘ座標ｘ（Ｃi ）と、点ＰＣi とを暗号化コンテンツ鍵ＥＫＣiとし、暗号化コンテンツ鍵ＥＫＣi を出力部１１５へ出力する。
このとき、コンテンツ視聴装置２００i が有する鍵復号部２０４の平方根計算部２１１は、暗号化コンテンツ鍵ＥＫＣi に含まれるｘ（Ｃi ）に対し、ｘ（Ｃi ）3 ＋ａ×ｘ（Ｃi ）＋ｂの平方根ｒｔ（２個）を計算し、計算により得られた２個の平方根ｒｔのうち、（ｒｔ＜（ｐ−１）／２）を満たす方を選択し、Ｃi ’＝（ｘ（Ｃi ）、ｒｔ）を生成する。
【０１７３】
次に、スカラ倍点計算部２１２は、ＰＣi のｋｓi 倍の点ｋｓi ＊ＰＣi を計算する（ステップＳ１６４）。
次に、コンテンツ鍵計算部２１３は、Ｐ＿ＫＣ’＝Ｃi ’−ｋｓi ＊ＰＣi を計算し、Ｐ＿ＫＣ’を整数値に変換するために、復号コンテンツ鍵ＫＣ’
＝ｆ-1（Ｐ＿ＫＣ’）を計算する。
【０１７４】
こうして生成された復号コンテンツ鍵ＫＣ’はコンテンツ鍵ＫＣとみなすことができる。
（２）第３の実施の形態では、個別暗号部１２０ｃは、スカラ値である
個別暗号文ｓi ＝ＫＣ  ｘｏｒ  ｘ（ｋ＊ＫＰi ）を計算するとしているが、スカラ値である個別暗号文ｓi の代わりに、第１の実施の形態と同様にして、楕円曲線Ｅ1 上の点である個別暗号文Ｃi を計算するとしてもよい。
【０１７５】
（３）第１〜第３の実施の形態では、ＧＦ（ｐ）で定義される楕円曲線Ｅ1 を使用しているが、ＧＦ（ｐm ）、例えばＧＦ（２m ）で定義される楕円曲線  Ｅ2 を使用するとしてもよい。具体的には、次に示す通りである。
ここで、楕円曲線Ｅ2 の定義式を
ｙ2 ＋ｘｙ＝ｘ3 ＋ａ×ｘ2 ＋ｂとし、楕円曲線上の点Ｐ（ｘ、ｙ）の負の点を、−Ｐ（ｘ、ｘ＋ｙ）とする。また、ＧＦ（２m ）の生成多項式をｆ（ｘ）とし、その根をαとする。
【０１７６】
第１の実施の形態において、コンテンツ配信装置１００の鍵情報生成部１０５は、次に示すようにして、暗号化コンテンツ鍵情報ＥＫＣを生成する。
鍵暗号化部１１１は、コンテンツ視聴装置２００i に対する暗号化コンテンツ鍵を以下のように生成する。
（ａ）１６０ビットの乱数ｋi を生成する。
【０１７７】
（ｂ）パラメタ記憶部１１７からベース点Ｇ、定数ａ及び素数ｐを読み出し、生成した乱数ｋi と読み出したベース点Ｇ、定数ａ及び素数ｐとを用いて、
ＰＣi ＝ｋi ＊Ｇを計算する。
（ｃ）公開鍵格納部１０４から公開鍵ＫＰi を読み出し、生成した乱数ｋi、読み出した公開鍵ＫＰi 、読み出した定数ａ及び素数ｐを用いて、ｋi ＊ＫＰi を計算する。
【０１７８】
（ｄ）コンテンツ鍵生成部１０２からコンテンツ鍵ＫＣを受け取り、受け取ったＫＣに変換関数ｆを施して、コンテンツ鍵ＫＣを楕円曲線Ｅ2 上の点Ｐ＿ＫＣ＝ｆ（ＫＣ）に変換する。
（ｅ）Ｐ＿ＫＣ＋ｋi ＊ＫＰi を計算する。
（ｆ）ＰＣi のｘ座標ｘi のαによる多項式において、係数が０でなく、１である項のうち、αの最も小さい次数ｓを取得する。
【０１７９】
例えば、ｘi ＝α6 ＋α5 ＋α3 の場合、α3 の係数は、０でなく、次数が最も小さいので、ｓ＝３である。
（ｇ）ＰＣi のｙ座標のｙi のαによる多項式の項αs の係数が、ｘi のαによる多項式の項αs の係数と等しい場合、
Ｃi ＝Ｐ＿ＫＣ＋ｋi ＊ＫＰi とし、
ＰＣi のｙ座標のｙi のαによる多項式の項αs の係数が、ｘi のαによる多項式の項αs の係数と等しくない場合、
Ｃi ＝−（Ｐ＿ＫＣ＋ｋi ＊ＫＰi ）とする。
【０１８０】
（ｈ）点ＰＣi のｘ座標ｘi と、点Ｃi とを暗号化コンテンツ鍵ＥＫＣiとし、暗号化コンテンツ鍵ＥＫＣi を出力部１１５へ出力する。
出力部１１５は、暗号化コンテンツ鍵ＥＫＣ1 、ＥＫＣ2 、ＥＫＣ3 、．．．、ＥＫＣn を暗号化コンテンツ鍵情報ＥＫＣとし、暗号化コンテンツ鍵情報ＥＫＣを送受信部１０１へ出力する。
【０１８１】
送受信部１０１は、暗号化コンテンツＥＣと暗号化コンテンツ鍵情報ＥＫＣとを、インターネット２０を介して、コンテンツ視聴装置２００1 、２００2 、・・・、２００n へ送信する。
コンテンツ視聴装置２００i は、コンテンツ配信装置１００から、インターネット２０を介して、暗号化コンテンツＥＣと暗号化コンテンツ鍵情報ＥＫＣとを受信する。
【０１８２】
コンテンツ視聴装置２００i が有する鍵復号部２０４は、自身のコンテンツ視聴装置に割り当てられた装置固有番号ｉを予め記憶している。
鍵復号部２０４は、送受信部２０１から暗号化コンテンツ鍵情報ＥＫＣを受け取り、装置固有番号ｉを読み出し、読み出した装置固有番号ｉを用いて、上述したように、受け取った暗号化コンテンツ鍵情報ＥＫＣから自身の装置に対応するコンテンツ鍵ＥＫＣi を特定し、特定したコンテンツ鍵ＥＫＣi を暗号化コンテンツ鍵情報ＥＫＣから抽出し、さらに、抽出したコンテンツ鍵ＥＫＣi から点ＰＣi のｘ座標ｘi と、点Ｃi とを暗号化コンテンツ鍵ＥＫＣi とを抽出する。
【０１８３】
次に、鍵復号部２０４は、ＰＣi のｘ座標ｘi のαによる多項式の項のうち、係数が０でなく、１であるαの最も小さい次数ｓを取得し、方程式ｙ2 ＋ｘi ｙ＝ｘi3＋ａ×ｘi2＋ｂを解いて、２個の解ｙi'_1及びｙi'_2 を求める。次に、２個の解ｙi'_1及びｙi'_2 のうち、それらのαの多項式の項αs の係数が、ｘi のαによる多項式の項αs の係数と等しい方を選択する。こうして１個の解ｙi'が選択される。
【０１８４】
次に、鍵復号部２０４は、選択した解ｙi'と、抽出した点ＰＣi のｘ座標ｘi とから、点ＰＣi'＝（ｘi 、ｙi'）とする。次に、
Ｐ＿ＫＣ’＝Ｃi −ｋｓi ＊ＰＣi ’を計算し、
Ｐ＿ＫＣ’を整数値に変換するために、復号コンテンツ鍵ＫＣ’＝ｆ-1（Ｐ＿ＫＣ’）を算出する。
【０１８５】
コンテンツ復号部２０３は、こうして得られた復号コンテンツ鍵ＫＣ’を用いて、暗号化コンテンツＥＣを復号して復号コンテンツを生成する。
なお、上記の変形例において、次に示すようにしてもよい。
上記において、ｓを係数が０でなく、１である最も小さい次数であるとしているが、係数が１である最も大きい次数であるとしてもよい。
【０１８６】
また、上記において、２個の解ｙi'_1、ｙi'_2 のうち、αs の係数がｘi のαs の係数と等しい方を選択するとしているが、等しくない方を選択するとしてもよい。
（４）実施の形態３では、楕円曲線上のＥｌＧａｍａｌ暗号を使用しているが、楕円曲線上のＥｌＧａｍａｌ暗号に代えて、有限体上のＥｌＧａｍａｌ暗号を使用するとしてもよい。
【０１８７】
具体的には、以下に示す通りである。
ここで、ｐを素数とし、有限体ＧＦ（ｐ）上のベース元をｇとし（ｇ∈ＧＦ（ｐ））、ベース元の位数をｑとする（ｇq ＝１  ｍｏｄ  ｐ）。
コンテンツ視聴装置２００ｃi （ｉ＝１、２、・・・、ｎ）の秘密鍵を、ｋｓi とし、公開鍵をｋｐi （ｋｐi ＝ｇksi ｍｏｄ  ｐ）とする。
【０１８８】
ここで、ａb は、ａを、ｂ乗するべき乗演算である。
コンテンツ視聴装置２００ｃi は、秘密鍵ｋｓi 、素数ｐ、ベース元ｇ及びベース元の位数ｑを記憶しており、コンテンツ配信装置１００ｃは、公開鍵ｋｐ1 、ｋｐ2 、・・・、ｋｐn 、素数ｐ、ベース元ｇ及びベース元の位数ｑを記憶している。
コンテンツ配信装置１００ｃが有する共通暗号部１１９ｃは、１６０ビットの乱数ｋを生成し、ベース元ｇ及び素数ｐを読み出し、生成した乱数ｋと読み出したベース元ｇ及び素数ｐとを用いて、
共通暗号文ｐｃ＝ｇk ｍｏｄ  ｐを計算する。次に、計算した共通暗号文ｐｃを出力部１１５へ出力する。また、生成した乱数ｋを個別暗号部１２０ｃへ出力する。
【０１８９】
個別暗号部１２０ｃは、コンテンツ視聴装置２００ｃi に対する個別暗号文ｃi を以下のように生成する。
（ａ）共通暗号部１１９ｃから乱数ｋを受け取る。
（ｂ）公開鍵ｋｐi を読み出し、素数ｐを読み出し、受け取った乱数ｋ、読み出した公開鍵ｋｐi 、読み出した素数ｐを用いて、
ｋｐik  ｍｏｄ  ｐを計算する。
【０１９０】
（ｃ）コンテンツ鍵生成部１０２からコンテンツ鍵ＫＣを受け取り、受け取ったコンテンツ鍵ＫＣを用いて、
個別暗号文ｃi ＝ＫＣ  ｘｏｒ  （ｋｐik  ｍｏｄ  ｐ）を計算する。
こうしてコンテンツ視聴装置２００ｃ1 、２００ｃ2 、・・・、２００ｃn について、個別暗号文ｃ1 、ｃ2 、・・・、ｃn が生成される。
【０１９１】
送受信部１０１は、共通暗号文ｐｃ及び個別暗号文ｃ1 、ｃ2 、・・・・、ｃn から構成される暗号化コンテンツ鍵情報ＥＫＣを、インターネット２０を介して、コンテンツ視聴装置２００ｃ1 、２００ｃ2 、・・・、２００ｃn へ送信する。
コンテンツ視聴装置２００ｃi は、コンテンツ配信装置１００ｃから、共通暗号文ｐｃ及び個別暗号文ｃ1 、ｃ2 、・・・、ｃn から構成される暗号化コンテンツ鍵情報ＥＫＣを受信する。
【０１９２】
コンテンツ視聴装置２００ｃi が有する鍵復号部２０４ｃは、図１４に示すように、スカラ倍点計算部２１２ｃ及びコンテンツ鍵計算部２１３ｃから構成されている。
スカラ倍点計算部２１２ｃは、秘密鍵ｋｓi を読み出し、送受信部２０１から受け取った暗号化コンテンツ鍵情報ＥＫＣから共通暗号文ｐｃを抽出し、素数ｐを読み出し、読み出した素数ｐ及び読み出した秘密鍵ｋｓi を用いて、
ｐｃksiｍｏｄ  ｐを計算する。次に、計算したｐｃksi ｍｏｄ  ｐをコンテンツ鍵計算部２１３ｃへ出力する。
【０１９３】
コンテンツ鍵計算部２１３ｃは、自身のコンテンツ視聴装置に割り当てられた装置固有番号ｉを予め記憶している。コンテンツ鍵計算部２１３ｃは、送受信部２０１から暗号化コンテンツ鍵情報ＥＫＣを受け取り、装置固有番号ｉを読み出し、読み出した装置固有番号ｉを用いて、受け取った暗号化コンテンツ鍵情報ＥＫＣから自身の装置に対応するｃi を特定し、特定したｃi を暗号化コンテンツ鍵情報ＥＫＣから抽出する。また、スカラ倍点計算部２１２ｃからｐｃksiｍｏｄ  ｐを受け取る。次に、受け取った点ｐｃksi ｍｏｄ  ｐを用いて、
ｃi   ｘｏｒ  （ｐｃksi ｍｏｄ  ｐ）を計算し、この結果を復号コンテンツ鍵ＫＣ’とする。
【０１９４】
復号コンテンツ鍵ＫＣ’＝ｃi   ｘｏｒ  （ｐｃksi ｍｏｄ  ｐ）
次に、計算した復号コンテンツ鍵ＫＣ’をコンテンツ復号部２０３へ出力する。
以上説明したように、本発明は、有限体上の離散対数問題を安全性の根拠として、平文を秘密に伝達する情報伝達システムであって、１台の暗号装置と複数台の復号装置とから構成される。
【０１９５】
ここで、ｐを素数とし、有限体ＧＦ（ｐ）上のベース元をｇとし（ｇ∈ＧＦ（ｐ））、ベース元の位数をｑとする（ｇq ＝１  ｍｏｄ  ｐ）。
各復号装置の公開鍵ｋｐは、当該復号装置の秘密鍵ｋｓを用いて次式により算出される。
公開鍵ｋｐ＝ｇks  ｍｏｄ  ｐ
前記暗号装置は、以下を含む。
・記憶部、
平文を記憶している。
・乱数生成部、
乱数ｋを生成する。
・共通演算部、
有限体上のベース元ｇと前記乱数ｋを用いて、次式により共通暗号元ｐｃを算出する。
【０１９６】
共通暗号元ｐｃ＝ｇk   ｍｏｄ  ｐ
・個別演算部、
・出力部、
算出された前記共通暗号元と、算出された複数の個別暗号元とを出力する。
個別演算部は、以下を含む。
【０１９７】
・公開鍵演算部、
各復号装置の公開鍵ｋｐと前記乱数ｋを用いて、次式により公開鍵暗号元を算出する。
公開鍵暗号元＝ｋｐk   ｍｏｄ  ｐ
・排他的論理和部、
前記平文と算出した前記公開鍵暗号元とに排他的論理和を施して、当該復号装置の個別暗号元を算出する。
【０１９８】
各復号装置は、以下を含む。
・取得部、
前記共通暗号元及び前記複数の個別暗号元を取得する。
・特定部、
前記複数の個別暗号元から当該復号装置に割り当てられた個別暗号元を抽出する。
・秘密鍵演算部、
取得した前記共通暗号元ｐｃと、当該復号装置の秘密鍵ｋｓとを用いて、次式により、有限体上の秘密鍵復号元を算出する。
【０１９９】
秘密鍵復号元＝ｐｃks  ｍｏｄ  ｐ
・排他的論理和部、
抽出した個別暗号元と、算出した秘密鍵復号元とに排他的論理和を施して、復号文を生成する。
（５）第１〜第３の実施の形態を任意の組合せにより組み合わせてもよい。
【０２００】
（６）上記の各実施の形態において、秘密鍵及び公開鍵が、各コンテンツ視聴装置に割り当てられているが、これには限定されない。
コンテンツをその種類によりグループに分け、例えば、コンテンツの著作者毎にグループに分け、また製作業者毎にグループに分け、コンテンツのジャンル毎にグループに分け、各グループに対して、１組の秘密鍵及び公開鍵を割り当てるとしてもよい。
【０２０１】
また、利用者に対して、１組の秘密鍵及び公開鍵を割り当てるとしてもよい。
また、利用者をグループに分け、各グループに対して、１組の秘密鍵及び公開鍵を割り当てるとしてもよい。
（７）第１〜第３の実施の形態では、暗号化コンテンツと暗号化コンテンツ鍵情報をコンテンツをインターネットを介して配信するとしているが、コンテンツ配信装置は、暗号化コンテンツ及び暗号化コンテンツ鍵情報を、ＤＶＤ、メモリカードなどの記録媒体に記録し、これらの記録媒体が配布されるとしてもよい。各コンテンツ視聴装置は、前記記録媒体から暗号化コンテンツ及び暗号化コンテンツ鍵情報を読み出し、復号コンテンツを生成する。
【０２０２】
また、コンテンツ配信装置は、暗号化コンテンツ及び暗号化コンテンツ鍵情報を、デジタル放送により放送し、各コンテンツ視聴装置は、放送波を受信し、受信した放送波から暗号化コンテンツ及び暗号化コンテンツ鍵情報を抽出し、復号コンテンツを生成するとしてもよい。
（８）上記の各実施の形態及び変形例では、コンテンツ鍵の暗号化において、楕円曲線上のＥｌＧａｍａｌ暗号又は有限体上のＥｌＧａｍａｌ暗号を用いているが、これには限定されない。コンテンツの暗号化において、楕円曲線上のＥｌＧａｍａｌ暗号又は有限体上のＥｌＧａｍａｌ暗号を用いるとしてもよい。
【０２０３】
（９）上記の各実施の形態では、コンテンツを暗号化する例を示しているが、これには限定されない。
本発明は、通信内容を盗聴者に漏らさないように、受信者に安全に伝えるあらゆる種類の秘密通信において、適用される。例えば、電子メールの送受信システム、一般の商取引における秘密通信システム、特許出願書類の出願システム、金融機関における決済システムなどにおいて適用される。
【０２０４】
（１０）本発明は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプログラムからなるデジタル信号であるとしてもよい。
また、本発明は、前記コンピュータプログラム又は前記デジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、ＣＤ―ＲＯＭ、ＭＯ、ＤＶＤ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＢＤ（Ｂｌｕ−ｒａｙ  Ｄｉｓｃ）、半導体メモリなど、に記録したものとしてもよい。また、これらの記録媒体に記録されている前記コンピュータプログラム又は前記デジタル信号であるとしてもよい。
【０２０５】
また、本発明は、前記コンピュータプログラム又は前記デジタル信号を、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。
また、本発明は、マイクロプロセッサとメモリとを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセッサは、前記コンピュータプログラムに従って動作するとしてもよい。
【０２０６】
また、前記プログラム又は前記デジタル信号を前記記録媒体に記録して移送することにより、又は前記プログラム又は前記デジタル信号を前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
（１１）上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
（１２）以上説明したように、本発明によると、暗号文中の楕円曲線上の点のｙ座標を暗号化コンテンツ鍵に含めないことや、暗号文の一部を各コンテンツ視聴装置で共通にすることにより、暗号化コンテンツ鍵情報のデータ量を削減できる。
【産業上の利用可能性】
【０２０７】
本発明を構成する各装置は、他人に漏れることがないように、情報を安全にかつ確実に扱うあらゆる産業において、経営的に、また継続的及び反復的に使用することができる。また、本発明を構成する各装置は、電器機器製造産業において、経営的に、また継続的及び反復的に、製造し、販売することができる。
【図面の簡単な説明】
【０２０８】
【図１】本発明に係る１個の実施の形態としてのコンテンツ配布システム１０の構成を示すシステム構成図である。
【図２】コンテンツ配信装置１００の構成を示すブロック図である。
【図３】送受信部１０１により、各コンテンツ視聴装置へ送信される送信情報３０１のデータ構造を示す。
【図４】コンテンツ視聴装置２００i の構成を示すブロック図である。
【図５】コンテンツ配布システム１０の主要な動作を示すフローチャートである。
【図６】コンテンツ配信装置１００の鍵情報生成部１０５による暗号化コンテンツ鍵情報ＥＫＣの生成の動作を示すフローチャートである。
【図７】鍵情報生成部１０５の鍵暗号化部１１１による暗号化コンテンツ鍵ＥＫＣi の生成の動作を示すフローチャートである。
【図８】コンテンツ視聴装置２００i の鍵復号部２０４による復号コンテンツ鍵ＫＣ’の生成の動作を示すフローチャートである。
【図９】第２の実施の形態において、送受信部１０１により、各コンテンツ視聴装置へ送信される送信情報３２１のデータ構造を示す。
【図１０】鍵情報生成部１０５ｂの鍵暗号化部１１１ｂによる暗号化コンテンツ鍵ＥＫＣi の生成の動作を示すフローチャートである。
【図１１】コンテンツ視聴装置２００ｂi の鍵復号部２０４ｂによる復号コンテンツ鍵ＫＣ’の生成の動作を示すフローチャートである。
【図１２】鍵情報生成部１０５ｃの構成を示すブロック図である。
【図１３】第３の実施の形態において、送受信部１０１により、各コンテンツ視聴装置へ送信される送信情報３４１のデータ構造を示す。
【図１４】鍵復号部２０４ｃの構成を示すブロック図である。
【図１５】コンテンツ配信装置１００ｃの鍵情報生成部１０５ｃによる暗号化コンテンツ鍵情報ＥＫＣの生成の動作を示すフローチャートである。
【図１６】コンテンツ視聴装置２００ｃi の鍵復号部２０４ｃによる復号コンテンツ鍵ＫＣ’の生成の動作を示すフローチャートである。
【図１】
2007507742.tif 000003
【図２】
2007507742.tif 000004
【図３】
2007507742.tif 000005
【図４】
2007507742.tif 000006
【図５】
2007507742.tif 000007
【図６】
2007507742.tif 000008
【図７】
2007507742.tif 000009
【図８】
2007507742.tif 000010
【図９】
2007507742.tif 000011
【図１０】
2007507742.tif 000012
【図１１】
2007507742.tif 000013
【図１２】
2007507742.tif 000014
【図１３】
2007507742.tif 000015
【図１４】
2007507742.tif 000016
【図１５】
2007507742.tif 000017
【図１６】
2007507742.tif 000018
【国際調査報告】
2007507742.tif 000019
2007507742.tif 000020