JP2007507742A - 情報伝達システム、暗号装置及び復号装置 - Google Patents

情報伝達システム、暗号装置及び復号装置 Download PDF

Info

Publication number
JP2007507742A
JP2007507742A JP2006531233A JP2006531233A JP2007507742A JP 2007507742 A JP2007507742 A JP 2007507742A JP 2006531233 A JP2006531233 A JP 2006531233A JP 2006531233 A JP2006531233 A JP 2006531233A JP 2007507742 A JP2007507742 A JP 2007507742A
Authority
JP
Japan
Prior art keywords
point
elliptic curve
encryption
content
ciphertext
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2006531233A
Other languages
English (en)
Other versions
JP4611305B2 (ja
Inventor
裕一 布田
基司 大森
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Publication of JP2007507742A publication Critical patent/JP2007507742A/ja
Application granted granted Critical
Publication of JP4611305B2 publication Critical patent/JP4611305B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/724Finite field arithmetic
    • G06F7/725Finite field arithmetic over elliptic curves
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/08Randomization, e.g. dummy operations or using noise
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/56Financial cryptography, e.g. electronic payment or e-cash

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Algebra (AREA)
  • Computing Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

ElGamal暗号を用いる場合に、暗号文が従来より短くなるようなコンテンツ配信システムを提供する。コンテンツ配信装置は、コンテンツ鍵について、楕円曲線上の暗号演算を行って楕円曲線上の点のx座標値を生成し、生成した前記x座標値を含む暗号化コンテンツ鍵を生成し、生成した暗号化コンテンツ鍵を出力する。コンテンツ視聴装置は、暗号化コンテンツ鍵を取得し、取得した前記暗号化コンテンツ鍵に含まれる前記x座標値を持つ楕円曲線上の点のy座標値を算出し、前記x座標値と前記y座標値からなる楕円曲線上の点と、前記暗号化コンテンツ鍵の他の部分とを用いて、楕円曲線上の復号演算を行って、復号コンテンツ鍵を生成する。

Description

本発明は、情報セキュリティ技術としての暗号技術を利用した秘密情報伝達技術に関する。
近年、通信内容を盗聴者に漏らさないように、受信者に安全に伝える暗号技術が様々な分野で利用されるようになってきている。
例えば、音楽や映画などのコンテンツをDVDなどの記録媒体に格納して配布したり、ネットワークを利用して多数のユーザに配信したりする場合に、コンテンツが不正に利用されないようにするためにコンテンツに暗号化が施されて配布される。
暗号化の技術は、暗号化鍵と復号鍵とが等しい秘密鍵暗号と、暗号化鍵と復号鍵とが異なる公開鍵暗号に分類される。秘密鍵暗号では、何らかの方法で、送信者(暗号化する者)と受信者(復号する者)との間で鍵を共有する必要がある。一方、公開鍵暗号では、暗号化鍵を公開しておき、復号鍵を秘密にしておく。
秘密鍵暗号であるDES(Data Encryption Standard) は、平文、暗号文、鍵ともに、64ビットのサイズを持つブロック暗号である。DESでは、初期置換により、平文の隣合った各ビットがほぼ32ビットだけ離れるようにビットの入れ換えが行われた後、16段の同一の変換が繰り返し適用される。
また、公開鍵暗号である楕円ElGamal暗号は、ElGamal暗号における有限体上の乗法演算を楕円曲線上の加法演算に対応させることにより構成されたものである。以下において、楕円ElGamal暗号について説明する。
受信者(復号する者)は、楕円ElGamal暗号の秘密鍵ksを秘密に保持している。
送信者(暗号化する者)は、秘密鍵ksに対応する公開鍵KPを保持している。
公開鍵KP=ks*G
ここで、Gは、楕円ElGamal暗号のベース点であり、楕円曲線上の点である。また、ks*Gは、ベース点Gを(ks−1)回加算することにより得られる楕円曲線上の点を表す。
送信者は、平文KCに対して、次のようにして暗号文EKCを生成する。
(ステップ1)乱数kを発生させ、PC=k*Gを計算する。
(ステップ2)k*KPを計算する。
(ステップ3)平文KCを楕円曲線上の点P_KC=f(KC)に変換する。変換関数fについては後述する。
(ステップ4)C=P_KC+k*KPを計算する。
(ステップ5)PCとCとを暗号文EKCとして送信する。
受信者(復号する者)は、次のようにして復号文KC’を生成する。
(ステップ1)暗号文EKCに含まれるPCに対し、ks*PCを計算する。
(ステップ2)P_KC’=C−ks*PCを計算し、P_KC’を整数値に変換するために、復号文KC’=f-1(P_KC’)とする。ここで、f-1は変換関数fの逆関数である。生成された復号文KC’は、平文KCと同じであると期待される。
これは、ks*PC=ks*k*G=k*KPが成り立つため、
P_KC’=C−ks*PC
=P_KC+k*KP−ks*PC
=P_KCとなり、
P_KC’は、点P_KCと等しいからである。
ここで、変換関数fは、定義体より小さいビットサイズをもつ整数値から楕円曲線上の点への変換を行う関数である。また、逆変換関数f-1は、楕円曲線上の点から定義体より小さいビットサイズをもつ整数値への変換を行う関数である。関数fは、単射であり、整数値をvとするとき、f-1(f(v))=vが成り立つ関数であれば何でもよい。なお、変換関数については、非特許文献4に詳しく説明されている。
次に、楕円ElGamal暗号における暗号文のデータ量について検討する。
簡単のため、楕円曲線の定義体のビット数を、現在、楕円曲線暗号として推奨されている160とする。受信者に送信される暗号文EKCは、点C及び点PCから構成される。点Ci及び点PCiはx、y座標をもつため、それぞれ、320ビットである。そのため、暗号文EKCは、320+320=640ビット(=80バイト)である。
以上説明したように、DESによると、所定長の平文に対して、同一サイズの暗号文が生成されるが、楕円ElGamal暗号によると、所定長の平文に対して、その4倍の長さの暗号文が生成される。
岡本龍明、山本博資、"現代暗号"、産業図書(1997年) 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 米国特許番号 6、199、086
このように、楕円ElGamal暗号を用いると、同一長の鍵を使用する場合において、他の暗号技術、例えば、DESと比較すると、より高い安全性が得られるものの、例えば、DESと比較すると、暗号文が長くなるという問題点がある。
本発明は、楕円曲線暗号を用いる場合に、暗号文が従来より短くなるような情報伝達システム、暗号装置、復号装置、暗号方法、復号方法及びコンピュータプログラムを提供することを目的とする。
上記目的を達成するために、本発明は、楕円曲線上の離散対数問題を安全性の根拠として、平文を秘密に伝達する情報伝達システムであって、暗号装置と復号装置とから構成され、前記暗号装置は、平文を記憶している記憶手段と、前記平文について、楕円曲線上の暗号演算を行って楕円曲線上の暗号点のx座標値を生成し、生成した前記x座標値を含む暗号文を生成する暗号化手段と、生成した暗号文を出力する出力手段とを含み、前記復号装置は、前記暗号文を取得する取得手段と、取得した前記暗号文に含まれる前記x座標値を持つ楕円曲線上の前記暗号点のy座標値を算出し、前記x座標値と前記y座標値からなる楕円曲線上の暗号点と、前記暗号文の他の部分とを用いて、楕円曲線上の復号演算を行って、復号文を生成する復号手段とを含むことを特徴とする。
この構成によると、楕円曲線上の点を出力することなく、暗号文として楕円曲線の点のx座標値を出力し、受け取ったx座標値から楕円曲線上の前記点を算出し、算出した前記点を用いて、復号するので、伝達される暗号文のデータ量を従来より短くすることができる。
ここで、前記記憶手段は、スカラ値である前記平文を記憶しており、前記暗号化手段は、スカラ値である乱数を生成する乱数生成部と、楕円曲線上のベース点に、前記乱数を乗じてベース乗算点を算出する第1演算部と、楕円曲線上の公開鍵点に、前記乱数を乗じて公開鍵乗算点を算出する第2演算部と、前記平文に、楕円曲線上の点への変換関数を施して、楕円曲線上の平文点を生成する変換部と、前記平文点と前記公開鍵乗算点との加算を用いて、平文加算点を算出する第3演算部と、前記ベース乗算点からx座標値を抽出し、抽出したx座標値及び前記平文加算点から構成される前記暗号文を生成する生成部とを含む。
また、前記第3演算部は、所定の条件を満たすか否かを判断し、満たすと判断する場合に、前記平文点に前記公開鍵乗算点を加算して前記平文加算点を算出し、満たさないと判断される場合に、前記平文点に前記公開鍵乗算点を加算し、得られた値の負の値を前記平文加算点とする。
また、有限体GF(p)上の楕円曲線をy2 =x3 +a×x+bとし、pは素数であり、前記第3演算部は、前記ベース乗算点のy座標値が、(p−1)/2より小さいか否かを判断し、小さいと判断される場合に、前記平文点に前記公開鍵乗算点を加算して前記平文加算点を算出し、小さくないと判断される場合に、前記平文点に前記公開鍵乗算点を加算し、得られた値の負の値を前記平文加算点とする。
また、有限体GF(p)上の楕円曲線をy2 =x3 +a×x+bとし、pは素数であり、前記取得手段は、前記暗号装置から、前記暗号文を取得し、前記復号手段は、楕円曲線の定義式y2 =x3 +a×x+bに、取得した前記暗号文に含まれる前記x座標値を代入し、その2個の平方根を算出し、算出された2個の平方根のうち、(p−1)/2より小さい方を選択し、前記暗号文に含まれる前記x座標値と選択された前記平方根とからなる楕円曲線上の第1復号点を生成する平方根計算部と、生成された第1復号点に、スカラ値である秘密鍵を乗じて、秘密鍵復号点を算出し、前記公開鍵点は、前記ベース点に前記秘密鍵を乗じて得られた楕円曲線上の点であるスカラ倍点計算部と、取得した前記暗号文に含まれる平文加算点から前記秘密鍵復号点を減じ、得られた値にスカラ値への逆変換関数を施して、スカラ値である復号文を生成する復号文計算部とを含む。
これらの構成によると、GF(p)上の楕円曲線に適用できる。
ここで、前記記憶手段は、スカラ値である前記平文を記憶しており、前記暗号化手段は、スカラ値である乱数を生成する乱数生成部と、楕円曲線上のベース点に、前記乱数を乗じてベース乗算点を算出する第1演算部と、楕円曲線上の公開鍵点に、前記乱数を乗じて公開鍵乗算点を算出する第2演算部と、前記平文に、楕円曲線上の点への変換関数を施して、楕円曲線上の平文点を生成する変換部と、前記平文点と前記公開鍵乗算点との加算を用いて、平文加算点を算出する第3演算部と、前記ベース乗算点からx座標値を抽出し、抽出したx座標値及び前記平文加算点から構成される前記暗号文を生成する生成部とを含む。
また、前記第3演算部は、所定の条件を満たすか否かを判断し、満たすと判断する場合に、前記平文点に前記公開鍵乗算点を加算して前記平文加算点を算出し、満たさないと判断される場合に、前記平文点に前記公開鍵乗算点を加算し、得られた値の負の値を前記平文加算点とする。
また、有限体GF(2m )上の楕円曲線をy2 +xy=x3 +ax2 +bとし、mは自然数であり、GF(2m )の生成多項式をf(x)とし、その根をαとし、
前記第3演算部は、前記ベース乗算点のx座標値のαの生成多項式の係数が0でない項のうち、最も小さい次数をsとし、前記ベース乗算点のy座標値のαの生成多項式の項αs の係数が、x座標値のαの生成多項式の項αs の係数と等しいか否かを判断し、等しいと判断される場合、前記平文点に前記公開鍵乗算点を加算して前記平文加算点を算出し、等しくないと判断される場合に、前記平文点に前記公開鍵乗算点を加算し、得られた値の負の値を前記平文加算点とする
また、有限体GF(2m )上の楕円曲線をy2 +xy=x3 +ax2 +bとし、mは自然数であり、GF(2m )の生成多項式をf(x)とし、その根をαとし、
前記取得手段は、前記暗号装置から、前記暗号文を取得し、前記復号手段は、取得した前記暗号文に含まれる前記x座標値のαの生成多項式の係数が0でない項のうち、最も小さい次数をsとする第1演算部と、楕円曲線の定義式y2 +xy=x3 +ax2 +bに、取得した前記暗号文に含まれる前記x座標値を代入し、その2個の解を算出し、算出された2個の解から、解のαの生成多項式の項αs の係数が前記x座標値のαの生成多項式の項αs の係数と等しい方を選択し、前記x座標値と選択された解とからなる第1復号点を生成する解計算部と、生成された第1復号点に、スカラ値である秘密鍵を乗じて、秘密鍵復号点を算出し、前記公開鍵点は、前記ベース点に前記秘密鍵を乗じて得られる楕円曲線上の点であるスカラ倍点計算部と、取得した前記暗号文に含まれる前記平文加算点から前記秘密鍵復号点を減じ、得られた値にスカラ値への逆変換関数を施して、スカラ値である復号文を生成する復号文計算部とを含む。
これらの構成によると、GF(2m )上の楕円曲線に適用できる。
ここで、有限体GF(p)上の楕円曲線をy2 =x3 +a×x+bとし、pは素数であり、前記記憶手段は、スカラ値である前記平文を記憶しており、前記暗号化手段は、スカラ値である乱数を生成する乱数生成部と、楕円曲線上の公開鍵点に、前記乱数を乗じて公開鍵乗算点を算出する第2演算部と、前記平文に、楕円曲線上の点への変換関数を施して、楕円曲線上の平文点を生成する変換部と、前記平文点と前記公開鍵乗算点とを加算して、平文加算点を算出する第3演算部と、前記平文加算点のy座標値が、(p−1)/2より小さいか否かを判断し、小さいと判断される場合に、楕円曲線上のベース点に、前記乱数を乗じてベース乗算点を算出し、小さくないと判断される場合に、楕円曲線上のベース点に、前記乱数の負の値を乗じてベース乗算点を算出する第1演算部と、前記平文加算点からx座標値を抽出し、抽出したx座標値及び前記ベース乗算点から構成される前記暗号文を生成する生成部とを含む。
また、有限体GF(p)上の楕円曲線をy2 =x3 +a×x+bとし、pは素数であり、前記取得手段は、前記暗号装置から、前記暗号文を取得し、前記復号手段は、楕円曲線の定義式y2 =x3 +a×x+bに、取得した前記暗号文に含まれる前記x座標値を代入し、その2個の平方根を算出し、算出された2個の平方根のうち(p−1)/2より小さい方を選択し、前記暗号文に含まれる前記x座標値と選択された前記平方根とからなる楕円曲線上の第2復号点を生成する平方根計算部と、取得した前記暗号文に含まれるベース乗算点に、スカラ値である秘密鍵を乗じて、秘密鍵復号点を算出し、前記公開鍵点は、前記ベース点に前記秘密鍵を乗じて得られた楕円曲線上の点であるスカラ倍点計算部と、生成した第2復号点から前記秘密鍵復号点を減じ、得られた値にスカラ値への逆変換関数を施して、スカラ値である復号文を生成する復号文計算部とを含む。
これらの構成によると、GF(p)上の楕円曲線に適用できる。
ここで、有限体GF(p)上の楕円曲線をy2 =x3 +a×x+bとし、pは素数であり、前記記憶手段は、スカラ値である前記平文を記憶しており、前記暗号化手段は、スカラ値である乱数を生成する乱数生成部と、楕円曲線上のベース点に、前記乱数を乗じてベース乗算点を算出する第1演算部と、楕円曲線上の公開鍵点に、前記乱数を乗じて公開鍵乗算点を算出する第2演算部と、前記平文と、前記公開鍵乗算点のx座標値とに排他的論理和を施して、前記楕円曲線上の排他論理和値を生成する第3演算部と、第3演算部により生成された前記排他論理和値と、前記暗号点としての前記ベース乗算点のx座標値とから構成される前記暗号文を生成する生成部とを含む。
また、前記取得手段は、前記暗号装置から、前記暗号文を取得し、有限体GF(p)上の楕円曲線をy2 =x3 +a×x+bとし、pは素数であり、前記復号手段は、楕円曲線の定義式y2 =x3 +a×x+bに、取得した前記暗号文に含まれる前記暗号点の前記x座標値を代入し、その2個の平方根を算出し、算出された2個の平方根のうち、(p−1)/2より小さい方を選択し、前記暗号点の前記x座標値と選択された前記平方根とからなる楕円曲線上の第1復号点を生成する平方根計算部と、生成された第1復号点に、スカラ値である秘密鍵を乗じて、秘密鍵復号点を算出するスカラ倍点計算部と、取得した前記排他論理和値と、前記秘密鍵復号点のx座標値に排他的論理和を施して、復号文を生成する復号文計算部とを含む。
これらの構成によると、伝達される暗号文のデータ量をさらに短くすることができる。
ここで、前記記憶手段に記憶されている前記平文は、コンテンツ鍵であり、前記暗号化手段は、前記コンテンツ鍵を暗号化して前記暗号文を生成し、前記暗号装置は、さらに、前記コンテンツ鍵を用いて、コンテンツに暗号化を施して暗号化コンテンツを生成するコンテンツ暗号手段と、生成した前記暗号化コンテンツを出力するコンテンツ出力手段とを含む。
また、前記取得手段は、前記暗号装置から、前記暗号文を取得し、さらに、暗号化コンテンツを取得し、前記復号手段は、前記暗号文を復号して、前記復号文として、復号コンテンツ鍵を生成し、前記復号装置は、さらに、前記復号コンテンツ鍵を用いて、取得した前記暗号化コンテンツに復号を施して復号コンテンツを生成するコンテンツ復号手段と、生成した復号コンテンツを再生するコンテンツ再生手段とを含む。
これらの構成によると、コンテンツ鍵を用いてコンテンツを暗号化し、同じコンテンツ鍵を用いて暗号化コンテンツを復号する際に、伝達される前記暗号文としての暗号化コンテンツ鍵のデータ量を従来より小さくすることができる。
以上説明したように、暗号文中の楕円曲線上の点のy座標を暗号化コンテンツ鍵に含めないことにより、伝達される暗号文のデータ量を削減することができ、その実用的価値は大きい。
1.第1の実施の形態
本発明に係る1の実施の形態としてのコンテンツ配布システム10について説明する。
1.1 コンテンツ配布システム10の構成
コンテンツ配布システム10は、図1に示すように、1台のコンテンツ配信装置100及びn台のコンテンツ視聴装置2001 、2002 、・・・、200i 、・・・、200n から構成されている。ここで、nは自然数であり、例えば、n=1,000,000である。このとき、コンテンツ視聴装置は、1,000,000台存在することになる。コンテンツ配信装置100及びコンテンツ視聴装置2001 、2002 、・・・、200n は、それぞれ、インターネット20を介して相互に接続されている。
コンテンツ配信装置100は、映画のデジタル著作物であるコンテンツCに対して、コンテンツ鍵KCを生成し、生成したコンテンツ鍵KCを用いてコンテンツCに共通鍵暗号方式の暗号化アルゴリズムEnc1 を施して暗号化コンテンツECを生成し、コンテンツ鍵KCに公開鍵暗号方式の暗号化アルゴリズムEnc2 を施して暗号化コンテンツ鍵情報EKCを生成し、生成した暗号化コンテンツECと暗号化コンテンツ鍵情報EKCとを、インターネット20を介して、コンテンツ視聴装置2001 、2002 、・・・、200n へ送信する。
コンテンツ視聴装置2001 は、インターネット20を介して、暗号化コンテンツECと暗号化コンテンツ鍵情報EKCとを受け取り、受け取った暗号化コンテンツ鍵情報EKCに公開鍵暗号方式の復号アルゴリズムDec2 を施して復号コンテンツ鍵KC’を生成し、生成した復号コンテンツ鍵KC’を用いて、受け取った暗号化コンテンツECに共通鍵暗号方式の復号アルゴリズムDec1 を施して復号コンテンツを生成し、生成した復号コンテンツを再生して出力する。他のコンテンツ視聴装置2002 、・・・、200n についても、コンテンツ視聴装置2001 と同様である。
ここで、復号アルゴリズムDec1 は、暗号化アルゴリズムEnc1 により生成された暗号文を復号するアルゴリズムであり、復号アルゴリズムDec2 は、暗号化アルゴリズムEnc2 により生成された暗号文を復号するアルゴリズムである。
また、コンテンツ視聴装置に付された参照符号に含まれるサフィックスは、コンテンツ視聴装置を一意に識別する装置固有番号である。例えば、コンテンツ視聴装置200i を一意に識別する装置固有番号は、「i」である。
1.2 楕円曲線暗号と楕円曲線のパラメータ
コンテンツ配布システム10では、前記公開鍵暗号方式において、楕円曲線暗号が使用される。楕円曲線暗号については、非特許文献1に詳しく記載されている。以下に、コンテンツ配布システム10において使用される楕円曲線暗号における楕円曲線E1 のパラメータについて簡単に述べる。
楕円曲線E1 の定義式を
2 =x3 +a×x+bとする。
ここで、x及びyは、変数であり、a及びbは、定数である。また、a×xはaとxの掛け算を示す。定数a及び定数bは、自然数であり、定数a及び定数bが定まることにより、1個の楕円曲線E1 が決定する。また、楕円曲線E1 は、一般に、有限体である定義体GF(pm )上において、定義される。ここで、pは素数であり、mは自然数である。また、簡単のため、m=1とし、定義体をGF(p)とする。
1.3 楕円曲線上の離散対数問題
公開鍵暗号方式の安全性の根拠として離散対数問題が用いられる。離散対数問題には、代表的なものとして、有限体上定義されるもの及び楕円曲線上定義されるものがある。なお、離散対数問題については、ニイルコブリッツ著 ”ア コウス イン ナンバア セオリイ アンド クリプトグラヒイ”(Neal Koblitz , " A Course in Number theory and Cryptography", Springer-Verlag,1987)に詳しく述べられている。
楕円曲線上の離散対数問題とは、
E(GF(p))を有限体GF(p)上で定義された楕円曲線とし、楕円曲線Eの位数が大きな素数で割り切れる場合に、楕円曲線Eに含まれる元Gをベースポイントとする。このとき、楕円曲線Eに含まれる与えられた元Yに対して、
(式1) Y=x*G
となる整数xが存在するならば、xを求めよ、という問題である。
離散対数問題を公開鍵暗号の安全性の根拠とするのは、多くの元を有する有限体GF(p)に対して、上記問題は極めて難しいからである。
1.4 コンテンツ配信装置100の構成
コンテンツ配信装置100は、送受信部101、コンテンツ鍵生成部102、コンテンツ暗号化部103、公開鍵格納部104、鍵情報生成部105、コンテンツ記憶部106及び制御部107から構成され、また、制御部107は、入力部108及び表示部109に接続されている。
コンテンツ配信装置100は、具体的には、マイクロプロセッサ、ROM、RAM、ハードディスクユニット、通信ユニットなどから構成されるコンピュータシステムである。前記RAM又は前記ハードディスクユニットには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムに従って動作することにより、コンテンツ配信装置100は、その一部の機能を達成する。
(1)公開鍵格納部104
公開鍵格納部104は、コンテンツ視聴装置2001 、2002 、・・・、200nの公開鍵KP1 、KP2 、・・・、KPn を予め格納している。
公開鍵KP1 、KP2 、・・・、KPn は、それぞれ、次式により予め算出された楕円曲線E1 上の点である。
KP1 =ks1 *G、
KP2 =ks2 *G、
・・・
KPn =ksn *G
ここで、ks1 、ks2 、・・・、ksn は、それぞれ、コンテンツ視聴装置2001 、2002 、・・・、200nに割り当てられた秘密鍵である。また、Gは、楕円曲線E1 上におけるElGamal 暗号のベース点であり、楕円曲線E1 上の点である。また、本明細書において、a*Bは、楕円曲線上の点Bをa回加算することにより得られる楕円曲線上の点を表す。例えば、ks1 *Gは、ベース点Gをks1 回加算することにより得られる楕円曲線E1 上の点を表す。なお、この演算を、楕円曲線上の楕円べき倍演算と呼ぶ。
(2)コンテンツ記憶部106
コンテンツ記憶部106は、映画のデジタル著作物であるコンテンツCを予め記憶している。コンテンツCは、映像データ及び音声データが、動画や音声の圧縮符号化技術であるMPEG2(Moving Pictures Experts Group 2)により定まる規格により高効率に圧縮されて生成された圧縮データである。
(3)コンテンツ鍵生成部102
コンテンツ鍵生成部102は、コンテンツ記憶部106に記憶されているコンテンツC毎に、160ビットの乱数を生成し、生成した乱数をコンテンツ鍵KCとする。次に、生成したコンテンツ鍵KCをコンテンツ暗号化部103及び鍵情報生成部105へ出力する。
(4)コンテンツ暗号化部103
コンテンツ暗号化部103は、コンテンツ記憶部106からコンテンツCを読み出し、コンテンツ鍵生成部102からコンテンツ鍵KCを受け取る。
次に、コンテンツ暗号化部103は、受け取ったコンテンツ鍵KCを用いて、読み出したコンテンツCに、共通鍵暗号方式の暗号化アルゴリズムEnc1 を施して、暗号化コンテンツEC=Enc1 (KC、C)を生成する。
ここで、Enc1 (KC、C)は、鍵KCを用いて、コンテンツCに暗号化アルゴリズムEnc1 を施して生成された暗号文である。共通鍵暗号方式の暗号化アルゴリズムEnc1 は、例えば、DES(Data Encryption Standard )暗号である。また、他の共通鍵暗号方式、例えば、AES(Advanced Encryption Standard)暗号であるとしてもよい。共有鍵暗号について、非特許文献1に詳しく説明されている。
コンテンツ暗号化部103は、生成した暗号化コンテンツECを送受信部101へ出力する。
(5)鍵情報生成部105
鍵情報生成部105は、図2に示すように、鍵暗号化部111、カウンタ設定部112、カウンタ加算部113、カウンタ判定部114、出力部115、鍵制御部116及びパラメタ記憶部117、カウンタi118から構成されている。
パラメタ記憶部117は、ベース点G、定数a、定数b、素数pを予め記憶している。
カウンタ設定部112は、カウンタiを「1」に設定する。
鍵暗号化部111は、コンテンツ視聴装置200i に対する暗号化コンテンツ鍵を以下のように生成する。
(a)160ビットの乱数ki を生成する。
(b)パラメタ記憶部117からベース点G、定数a及び素数pを読み出し、生成した乱数ki と読み出したベース点G、定数a及び素数pとを用いて、
PCi =ki *Gを計算する。
ここで、楕円曲線上の楕円べき倍演算について、以下に簡単に説明する。
一例として、100*Pを計算する。
100*P=2(2(P+2(2(2(P+2P)))))と表すと、100*Pは、楕円曲線上の点による6回の2倍算と2回の加算により計算される。
このように、楕円べき倍演算は、2倍算及び加算による演算に帰着する。
ここで、楕円曲線E1 の方程式を y2 = x3 +a×x+b とし、
楕円曲線E1 上の任意の点Pの座標を(x1,y1 )とし、任意の点Qの座標を(x2 ,y2 )とする。ここで、R=P+Qで定まる点Rの座標を(x3 ,y3 )とする。
P≠Qの場合、R=P+Qは、加算の演算となる。加算の公式を以下に示す。
x3 ={(y2 −y1)/(x2 −x1 )}2 −x1 −x2
y3 ={(y2 −y1)/(x2 −x1 )}(x1 −x3 )−y1
P=Qの場合、R=P+Q=P+P=2×Pとなり、R=P+Qは、2倍算の演算となる。2倍算の公式を以下に示す。
x3 ={(3x1 2 +a)/2y1 }2 −2x1
y3 ={(3x1 2 +a)/2y1 }(x1 −x3 )−y1
ここで、上記演算は、楕円曲線E1 が定義される有限体GF(p)上での演算である。
なお、楕円曲線の演算公式については、"Efficientelliptic curve
exponentiation"(Miyaji, Ono, and Cohen著、 Advances in
cryptology-proceedings of ICICS'97, Lecture notes in computer science, 1997, Springer-verlag, 282-290.)に詳しく説明されている。
(c)公開鍵格納部104から公開鍵KPi を読み出し、生成した乱数ki、読み出した公開鍵KPi 、読み出した定数a及び素数pを用いて、ki *KPi を計算する。
なお、楕円曲線上の楕円べき倍演算については、上述した通りである。
(d)コンテンツ鍵生成部102からコンテンツ鍵KCを受け取り、受け取ったKCに変換関数fを施して、コンテンツ鍵KCを楕円曲線E1 上の点P_KC=f(KC)に変換する。なお、変換関数fについては後述する。
(e)P_KC+ki *KPi を計算する。
(f)パラメタ記憶部117から素数pを読み出し、PCi のy座標yi (PCi )が
yi (PCi )<(p−1)/2
を満たすか否かを判定する。
yi (PCi )<(p−1)/2の場合、
Ci =P_KC+ki *KPiとし、
yi (PCi )≧(p−1)/2の場合、
Ci =−(P_KC+ki *KPi )とする。
(g)点PCi のx座標x(PCi )と、点Ci とを暗号化コンテンツ鍵EKCiとし、暗号化コンテンツ鍵EKCi を出力部115へ出力する。
カウンタ判定部114は、カウンタiがnであるか否かを判定する。
カウンタ判定部114により、カウンタi≠nであると判定される場合に、カウンタ加算部113は、カウンタiに1を加算する。次に、上記を繰り返す。
カウンタ判定部114により、カウンタi=nであると判定される場合に、出力部115は、暗号化コンテンツ鍵EKC1 、EKC2 、EKC3 、...、EKCn を暗号化コンテンツ鍵情報EKCとし、暗号化コンテンツ鍵情報EKCを送受信部101へ出力する。
鍵制御部116は、鍵情報生成部105を構成する各構成要素を制御する。
ここで、上記の(a)〜(g)では、楕円ElGamal暗号を変形したものを使用している。通常の楕円ElGamal暗号と異なる点は、暗号文を、
PCi 及びCi ではなく、PCi のx座標及びCi としている点である。PCi のy座標の情報を全く(1ビットも)暗号化コンテンツ鍵情報EKCに含めていないことが、実施の形態1の特徴である。
(6)送受信部101
送受信部101は、コンテンツ暗号化部103から暗号化コンテンツECを受け取り、鍵情報生成部105から暗号化コンテンツ鍵情報EKCを受け取り、受け取った暗号化コンテンツECと暗号化コンテンツ鍵情報EKCとを、インターネット20を介して、コンテンツ視聴装置2001 、2002 、・・・、200n へ送信する。
送受信部101により、各コンテンツ視聴装置へ送信される送信情報301を図3に示す。この図に示すように、送信情報301は、暗号化コンテンツEC302と暗号化コンテンツ鍵情報EKC303から構成されている。暗号化コンテンツ鍵情報EKC303は、n個の暗号化コンテンツ鍵311、312、・・・、313を含む。i番目の暗号化コンテンツ鍵は、PCi のx座標x(PCi )と、Ci とを含む。
各暗号化コンテンツ鍵に含まれるPCi のx座標x(PCi )と、Ci とは、それぞれ、固定長であり、具体的には、160ビット及び320ビットである。暗号化コンテンツ鍵情報EKC303内において、n個の暗号化コンテンツ鍵は、各コンテンツ視聴装置に対応するように、コンテンツ視聴装置に割り当てられた装置固有番号に従って配列されている。従って、各コンテンツ視聴装置に割り当てられた装置固有番号が特定できれば、前記コンテンツ視聴装置に対応する暗号化コンテンツ鍵の特定ができる。
例えば、装置固有番号「1」が割り当てられたコンテンツ視聴装置2001 については、暗号化コンテンツ鍵情報EKCの先頭から480ビット(=160ビット+320ビット)を抽出すれば、PC1 のx座標x(PC1 )と、C1 とが得られる。
一般的に、装置固有番号「i」が割り当てられたコンテンツ視聴装置200i については、暗号化コンテンツ鍵情報EKCの先頭から数えて(1+(i−1)×480)ビット目から、480ビット分を抽出すれば、PCi のx座標x(PCi )と、Ci とが得られる。
(7)制御部107、入力部108及び表示部109
制御部107は、コンテンツ配信装置100を構成する各構成要素を制御する。
入力部108は、コンテンツ配信装置100の操作者から情報の入力、又は操作指示の入力を受け付け、受け付けた情報又は操作指示を制御部107へ出力する。
表示部109は、制御部107の制御により、各種の情報を表示する。
1.5 コンテンツ視聴装置2001 、2002 、・・・、200n の構成
コンテンツ視聴装置2001 、2002 、・・・、200n は、同様の構成を有している。ここでは、代表して、コンテンツ視聴装置200i の構成について説明する。
コンテンツ視聴装置200i は、図4に示すように、送受信部201、秘密鍵格納部202、コンテンツ復号部203、鍵復号部204、再生部205、制御部206、入力部207、モニタ208、スピーカ209及びパラメタ記憶部210から構成されている。
コンテンツ視聴装置200i は、具体的には、コンテンツ配信装置100と同様に、マイクロプロセッサ、ROM、RAMを含んで構成されるコンピュータシステムである。前記RAMには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムに従って動作することにより、コンテンツ視聴装置200i は、その一部の機能を達成する。
ここで、参照符号に付されたサフィックスiは、コンテンツ視聴装置200i を一意に識別する装置固有番号である。
(1)秘密鍵格納部202及びパラメタ記憶部210
秘密鍵格納部202は、160ビットの秘密鍵ksi を予め秘密に格納している。秘密鍵格納部202は、鍵復号部204によってのみアクセス可能である。
秘密鍵ksi は、公開鍵KPi に対応しており、上述したように、公開鍵KPi は、次式により算出されたものである。
公開鍵KPi =ksi *G
パラメタ記憶部210は、ベース点G、定数a、定数b、素数pを予め記憶している。
(2)送受信部201
送受信部201は、インターネット20を介して、コンテンツ配信装置100から暗号化コンテンツEC及び暗号化コンテンツ鍵情報EKCを受信し、受信した暗号化コンテンツECをコンテンツ復号部203へ出力し、受信した暗号化コンテンツ鍵情報EKCを鍵復号部204へ出力する。
(3)鍵復号部204
鍵復号部204は、図4に示すように、平方根計算部211、スカラ倍点計算部212及びコンテンツ鍵計算部213から構成されている。
(平方根計算部211)
平方根計算部211は、自身のコンテンツ視聴装置に割り当てられた装置固有番号iを予め記憶している。
平方根計算部211は、送受信部201から暗号化コンテンツ鍵情報EKCを受け取り、装置固有番号iを読み出し、読み出した装置固有番号iを用いて、上述したように、受け取った暗号化コンテンツ鍵情報EKCから自身の装置に対応するPCi のx座標x(PCi )を特定し、特定したx座標x(PCi )を暗号化コンテンツ鍵情報EKCから抽出する。
次に、平方根計算部211は、抽出したx座標x(PCi)に対し、
z=x(PCi)3 +a×x(PCi)+bのGF(p)上での平方根rt(2個)を計算する。
ここで、平方根は(p−1)/2より小さいものと、(p−1)/2以上のものの二つあるが、平方根計算部211は、(p−1)/2より小さい方の平方根を選択する。次に、抽出したx座標x(PCi )と、選択した平方根rtとの組により、PCi’=(x(PCi),rt)とする。次に、PCi’をスカラ倍点計算部212へ出力する。
平方根の計算方法については、非特許文献2に詳しく述べられている。
以下において、p=3 mod 4の場合のGF(p)での平方根の計算方法を示す。その他の平方根の計算方法は、非特許文献2を参照。
なお、「d mod e」は、dをeで割ったときの余りを示す。
zの平方根は、
z^((p+1)/4)又は、−z^((p+1)/4)である。
一般に、z^(p−1)=1 mod pが成り立つため、
z^(p+1)=z^2 mod pとなり、
z^((p+1)/4)=(z^2)^(1/4)=z^(1/2)となるため、zの平方根が得られることがわかる。
ここで、「A^B」は、AのB乗、つまり、AB を示す。本明細書では、
A^Bの表記及びAB の表記の両方を、場合によって使い分けている。
(スカラ倍点計算部212)
スカラ倍点計算部212は、秘密鍵格納部202から秘密鍵ksi を読み出し、平方根計算部211からPCi ’を受け取る。次に、パラメタ記憶部210から定数a及び素数pを読み出し、読み出した定数a、素数p及び秘密鍵ksiを用いて、PCi ’のksi 倍の点ksi *PCi ’を計算する。
なお、楕円曲線上の楕円べき倍演算については、上述した通りである。
次に、計算した点ksi *PCi ’をコンテンツ鍵計算部213へ出力する。
(コンテンツ鍵計算部213)
コンテンツ鍵計算部213は、スカラ倍点計算部212から
点ksi *PCi ’を受け取る。次に、
P_KC’=Ci −ksi *PCi ’を計算し、
P_KC’を整数値に変換するために、復号コンテンツ鍵KC’=f-1(P_KC’)を算出する。ここで、f-1は、変換関数fの逆関数である。ここで、算出された復号コンテンツ鍵KC’は、コンテンツ鍵KCと同じ値であると期待される。次に、算出した復号コンテンツ鍵KC’をコンテンツ復号部203へ出力する。
(4)コンテンツ復号部203
コンテンツ復号部203は、送受信部201から暗号化コンテンツECを受け取り、鍵復号部204から復号コンテンツ鍵KC’を受け取る。次に、受け取った復号コンテンツ鍵KC’を用いて、受け取った暗号化コンテンツECに、共通鍵暗号方式の復号アルゴリズムDec1 を施して、復号コンテンツC’=Dec1 (KC’、EC)を生成する。
ここで、Dec1 (KC’、EC)は、復号コンテンツ鍵KC’を用いて、暗号化コンテンツECに復号アルゴリズムDec1 を施して生成された復号文である。
次に、コンテンツ復号部203は、生成した復号コンテンツC’を再生部205へ出力する。
(5)再生部205、制御部206、入力部207、モニタ208及びスピーカ209
再生部205は、コンテンツ復号部203から復号コンテンツC’を受け取り、受け取った復号コンテンツC’から映像データ及び音声データを生成し、生成した映像データ及び音声データをアナログの映像信号及び音声信号に変換し、アナログの映像信号及び音声信号を、それぞれ、モニタ208及びスピーカ209へ出力する。
モニタ208及びスピーカ209は、それぞれ、再生部205からアナログの映像信号及び音声信号を受け取り、映像を表示し、音声を出力する。
制御部206は、コンテンツ視聴装置200i を構成する各構成要素を制御する。
また、入力部207は、コンテンツ視聴装置200i の利用者からの操作指示を受け取り、受け取った操作指示を制御部206へ出力する。
1.6 変換関数f及び逆変換関数f-1について
ここで、変換関数f及び逆変換関数f-1について説明する。
変換関数fは、定義体GF(p)のビットサイズより小さいビットサイズをもつ整数値から楕円曲線E1 上の点への変換を行う関数である。また、逆変換関数f-1は、楕円曲線E1上の点から定義体のビットサイズより小さいビットサイズをもつ整数値への変換を行う関数である。変換関数fは、単射であり、整数値をvとするとき、
-1(f(v))=vが成り立ち、さらに楕円曲線上の点Pに対して、
-1(−P)=f-1(P)を満たす関数であれば何でもよい。変換方法については、非特許文献4に詳しく説明されている。
以下に、この非特許文献4に記述されている方法を述べる。
(1)定義体のビットサイズlenpに対し、vのビットサイズをlenp−10、すなわち、整数値vのビットサイズが定義体より10ビット小さいとする。c=0とし、x_fv=c||vとし、((x_fv)3 +a×x_fv+b)がGF(p)上で平方剰余であるかを判定する。
(2)平方剰余であれば、((x_fv)3 +a×x_fv+b)の平方根y_fvを計算し、f(v)=(x_fv,y_fv)とする。
(3)平方剰余でなければ、cに1を加算し、x_fv=c||vとし、((x_fv)3 +a×x_fv+b)がGF(p)で平方剰余であるかを判定する。平方剰余であれば、((x_fv)3 +a×x_fv+b)の平方根y_fvを計算し、f(v)=(x_fv,y_fv)とする。平方剰余でなければ、cに1を加算し、同様の判定を行い、((x_fv)3 +a×x_fv+b)がGF(p)で平方剰余になるまで繰り返す。
次に、f-1(P_fv)の変換方法について述べる。
P_fv=(x_fv,y_fv)とするとき、f-1(P_fv)を、x_fvの下位lenp−10ビットの数とする。この変換方法を用いた場合、
-1(f(v))=vになることは容易に分かる。また、f-1(P_fv)は、x座標の下位を取るため、
-1(−P)=f-1(P)を満たすことも容易に分かる。
なお、上でも述べたが、変換関数fとf-1の組は、上記文献に記述の方法に限らず、関数fが、単射であり、整数値をvとするとき、f-1(f(v))=vが成り立ち、さらに楕円曲線上の点Pに対して、f-1(−P)=f-1(P)を満たす関数であれば何でもよい。
1.7 コンテンツ鍵を正しく復号化できる理由
ここで、f-1(P_KC’)=f-1(P_KC)が成り立つため、KC’は、コンテンツ鍵KCと等しい。以下で、f-1(P_KC’)=f-1(P_KC)が成り立つ理由について述べる。
一般に、GF(p)で定義される楕円曲線では、P=(x1,y1)に対する負の点−Pは、−P=(x1,−y1)で与えられる。平方根rtは、rt2 =x(PCi )3 +a×x(PCi )+bを満たす。ここで、点PCi のy座標y(PCi )もy(PCi )2 =x(PCi )3 +a×x(PCi )+bを満たすため、y(PCi)=rtまたはy(PCi )=−rtを満たす。
ここで、y(PCi )=rt、すなわち、y(PCi )<(p−1)/2であれば、PCi =PCi ’となり、Ci =P_KC+ki *KPi より、P_KC’=Ci −ksi *PCi ’=P_KC+ki *KPi −ksi *PCi である。ki *KPi =ki*ksi *G=ksi *PCi より、P_KC’=P_KCであり、f-1(P_KC’)=f-1(P_KC)が成り立つ。
y(PCi )=−rtである場合、すなわち、y(PCi )≧(p−1)/2であれば、PCi ’=−PCi を満たす。Ci =−(P_KC+ki *KPi )であるため、P_KC’=Ci −ksi *PCi ’=−(P_KC+ki *KPi)−ksi *(−PCi ’)=―P_KCであり、f-1(−P_KC)=f-1(P_KC)より、f-1(P_KC’)=f-1(P_KC)が成り立つ。
以上より、f-1(P_KC’)=f-1(P_KC)が成り立ち、コンテンツ鍵KCが正しく復号化できる。
1.8 コンテンツ配布システム10の動作
コンテンツ配布システム10の動作について説明する。
(1)コンテンツ配布システム10の主要な動作
コンテンツ配布システム10の主要な動作について、図5に示すフローチャートを用いて説明する。
コンテンツ配信装置100のコンテンツ鍵生成部102は、コンテンツ鍵KCを生成し(ステップS101)、コンテンツ暗号化部103は、コンテンツ鍵KCを用いて、コンテンツCを暗号化して、暗号化コンテンツECを生成し(ステップS102)、鍵情報生成部105は、暗号化コンテンツ鍵情報EKCを生成し(ステップS103)、送受信部101は、インターネット20を介して、生成した暗号化コンテンツEC及び暗号化コンテンツ鍵情報EKCを各コンテンツ視聴装置へ送信する(ステップS104)。
各コンテンツ視聴装置、例えばコンテンツ視聴装置200i の送受信部201は、コンテンツ配信装置100から、インターネット20を介して、暗号化コンテンツEC及び暗号化コンテンツ鍵情報EKCを受信し(ステップS104)、鍵復号部204は、秘密鍵格納部202に格納されている秘密鍵ksi を用いて、暗号化コンテンツ鍵情報EKCに含まれる暗号化コンテンツ鍵EKCi を復号化して、復号コンテンツ鍵KC’を生成し(ステップS105)、コンテンツ復号部203は、生成された復号コンテンツ鍵KC’を用いて、暗号化コンテンツECを復号化して、復号コンテンツC’を生成し(ステップS106)、再生部205は、復号コンテンツC’を再生する(ステップS107)。
(2)暗号化コンテンツ鍵情報EKCの生成の動作
コンテンツ配信装置100の鍵情報生成部105による暗号化コンテンツ鍵情報EKCの生成の動作について、図6に示すフローチャートを用いて説明する。なお、ここで説明する暗号化コンテンツ鍵情報EKCの生成の動作は、図5に示すフローチャートのステップS103の詳細である。
鍵情報生成部105のカウンタ設定部112はカウンタiを「1」に設定する(ステップS121)。
次に、鍵暗号化部111は、コンテンツ視聴装置200i に対する暗号化コンテンツ鍵EKCi を生成し(ステップS122)、カウンタ判定部114は、カウンタiがnであるか否かを判定する。i=nでないと判定する場合は(ステップS123)、カウンタ加算部113は、カウンタiに「1」を加算し(ステップS124)、ステップS122へ戻って処理を繰り返す。
i=nであると判定する場合は(ステップS123)、出力部115は、暗号化コンテンツ鍵EKC1 、EKC2 、EKC3 、...、EKCn を暗号化コンテンツ鍵情報EKCとして送受信部101へ出力する(ステップS125)。
(3)暗号化コンテンツ鍵EKCi の生成の動作
鍵情報生成部105の鍵暗号化部111による暗号化コンテンツ鍵EKCi の生成の動作について、図7に示すフローチャートを用いて説明する。なお、ここで説明する暗号化コンテンツ鍵EKCi の生成の動作は、図6に示すフローチャートのステップS122の詳細である。
鍵暗号化部111は、乱数ki を生成し(ステップS141)、PCi =ki *Gを計算し(ステップS142)、ki *KPi を計算し(ステップS143)、コンテンツ鍵KCを楕円曲線E1 上の点P_KC=f(KC)に変換して点P_KCを生成し(ステップS144)、P_KC+ki *KPi を計算する(ステップS145)。
次に、鍵暗号化部111は、PCi のy座標yi (PCi )が、
yi (PCi )<(p−1)/2を満たすか否かを判定する。yi (PCi )<(p−1)/2の場合(ステップS146)、Ci=P_KC+ki *KPi とし(ステップS148)、それ以外のとき(ステップS146)、Ci =−(P_KC+ki *KPi )とする(ステップS147)。
次に、鍵暗号化部111は、PCi のx座標x(PCi )とCi とを暗号化コンテンツ鍵EKCiとして出力する(ステップS149)。
(4)復号コンテンツ鍵KC’の生成の動作
コンテンツ視聴装置200i の鍵復号部204による復号コンテンツ鍵KC’の生成の動作について、図8に示すフローチャートを用いて説明する。なお、ここで説明する復号コンテンツ鍵KC’の生成の動作は、図5に示すフローチャートのステップS105の詳細である。
鍵復号部204の平方根計算部211は、暗号化コンテンツ鍵EKCi に含まれるx(PCi )に対し、x(PCi )3 +a×x(PCi )+bの平方根rt(2個)を計算し(ステップS161)、計算により得られた2個の平方根rtのうち、(rt<(p−1)/2)を満たす方を選択し(ステップS162)、PCi ’=(x(PCi )、rt)を生成する(ステップS163)。
次に、スカラ倍点計算部212は、PCi ’のksi 倍の点ksi *PCi ’を計算する(ステップS164)。
次に、コンテンツ鍵計算部213は、P_KC’=Ci −ksi *PCi ’を計算し(ステップS165)、P_KC’を整数値に変換するために、復号コンテンツ鍵KC’=f-1(P_KC’)を計算する(ステップS166)。
こうして生成された復号コンテンツ鍵KC’はコンテンツ鍵KCとみなすことができる。
1.9 実施の形態1の効果
コンテンツ配布システム10における暗号化コンテンツ鍵EKCi のデータ量について検討する。
簡単のため、楕円曲線E1 の定義体のビット数を、現在、楕円曲線暗号として推奨されている160とする。
一台のコンテンツ視聴装置200i に対する暗号化コンテンツ鍵EKCi は、一つの点Ci と一つの点PCi のx座標x(PCi )から構成される。Ci は160ビットのx,y座標からなるため320ビットであり、点PCi のx座標も同様に160ビットである。そのため、暗号化コンテンツ鍵EKCi は、320+160=480ビット(=60バイト)である。
従来技術による暗号化コンテンツ鍵情報のデータ量は、80バイトであるため、コンテンツ配布システム10では、従来技術の3/4に暗号化コンテンツ鍵のデータ量を削減できている。
コンテンツ視聴装置の台数n=1,000,000としたとき、暗号化コンテンツ鍵情報のデータ量は、60×1,000,000=60,000,000バイト=60Mバイトとなる。一方、従来技術によると、コンテンツ視聴装置の台数n=1,000,000としたとき、暗号化コンテンツ鍵情報のデータ量は、80×1,000,000=80,000,000バイト=80Mバイトとなる。
このように、暗号化コンテンツ鍵情報により評価する場合に、実施の形態1によると、従来技術と比較して、20Mバイトの削減となる。
2.第2の実施の形態
本発明に係る別の実施の形態としてのコンテンツ配布システム10b(図示していない)について説明する。
コンテンツ配布システム10bは、コンテンツ配布システム10と同様の構成を有している。ここでは、コンテンツ配布システム10との相違点を中心として説明する。
コンテンツ配布システム10bは、コンテンツ配布システム10と同様に、1台のコンテンツ配信装置100b及びn台のコンテンツ視聴装置200b1 、200b2 、・・・、200bi 、・・・、200bn から構成されており、コンテンツ配信装置100b及びコンテンツ視聴装置200b1 、200b2 、・・・、200bn は、それぞれ、インターネット20を介して相互に接続されている。
2.1 コンテンツ配信装置100bの構成
コンテンツ配信装置100bは、コンテンツ配信装置100と同様の構成を有しており、送受信部101、コンテンツ鍵生成部102、コンテンツ暗号化部103、公開鍵格納部104、鍵情報生成部105b、コンテンツ記憶部106及び制御部107から構成され、また、制御部107は、入力部108及び表示部109に接続されている(図示していない)。
つまり、コンテンツ配信装置100bは、鍵情報生成部105に代えて、鍵情報生成部105bを備えている点において、コンテンツ配信装置100と異なっている。
以下において、コンテンツ配信装置100との相違点を中心として説明する。
(1)鍵情報生成部105b
鍵情報生成部105bは、鍵情報生成部105と同様の構成を有しており、鍵暗号化部111b、カウンタ設定部112、カウンタ加算部113、カウンタ判定部114、出力部115、鍵制御部116及びパラメタ記憶部117、カウンタi118から構成されている(図示していない)。
つまり、鍵情報生成部105bは、鍵暗号化部111に代えて、鍵暗号化部111bを備える点において、鍵情報生成部105と異なっている。ここでは、鍵情報生成部105との相違点を中心として説明する。
鍵暗号化部111bは、コンテンツ視聴装置200bi に対する暗号化コンテンツ鍵を以下のように生成する。
(a)160ビットの乱数ki を生成する。
(b)パラメタ記憶部117からベース点G、定数a及び素数pを読み出し、生成した乱数ki と読み出したベース点G、定数a及び素数pとを用いて、
PCi =ki *Gを計算する。
(c)公開鍵格納部104から公開鍵KPi を読み出し、生成した乱数ki、読み出した公開鍵KPi 、読み出した定数a及び素数pを用いて、
ki *KPi を計算する。
(d)コンテンツ鍵生成部102からコンテンツ鍵KCを受け取り、受け取ったコンテンツ鍵KCを用いて、計算したki *KPi に対し、
si =KC xor x(ki *KPi )を計算する。ここで、x(ki*KPi )は、ki *KPi のx座標であり、xorは排他的論理和を示す演算子である。また、si は、スカラ値である。
(e)PCi のx座標x(PCi )と、si とを暗号化コンテンツ鍵EKCiとし、暗号化コンテンツ鍵EKCi を出力部115へ出力する。
(2)出力部115
出力部115は、暗号化コンテンツ鍵EKC1 、EKC2 、EKC3 、...、EKCn を暗号化コンテンツ鍵情報EKCとして送受信部101へ出力する。
(3)送受信部101
送受信部101は、コンテンツ暗号化部103から暗号化コンテンツECを受け取り、鍵情報生成部105bから暗号化コンテンツ鍵情報EKCを受け取り、受け取った暗号化コンテンツECと暗号化コンテンツ鍵情報EKCとを、インターネット20を介して、コンテンツ視聴装置200b1 、200b2 、・・・、200bn へ送信する。
送受信部101により、各コンテンツ視聴装置へ送信される送信情報321を図9に示す。
この図に示すように、送信情報321は、暗号化コンテンツEC322と暗号化コンテンツ鍵情報EKC323から構成されている。暗号化コンテンツ鍵情報EKC323は、n個の暗号化コンテンツ鍵331、332、・・・、333を含む。i番目の暗号化コンテンツ鍵は、PCi のx座標x(PCi )と、si とを含む。
(4)第1の実施の形態との相違点
第1の実施の形態と異なる点は、点PCi のx座標PCi と点Ci とを暗号文とするのではなく、点PCiのx座標とスカラsi とを暗号文としている点である。この第2の実施の形態においても、第1の実施の形態と同様に、PCi のy座標の情報を1ビットも暗号化コンテンツ鍵情報EKCに含めていない。
2.2 コンテンツ視聴装置200b1 、200b2 、・・・、200bn の構成
コンテンツ視聴装置200b1 、200b2 、・・・、200bn は、それぞれ、コンテンツ視聴装置2001 、2002 、・・・、200n と同様の構成を有している。
ここでは、代表して、コンテンツ視聴装置200bi の構成について、コンテンツ視聴装置200i との相違点を中心として説明する。
コンテンツ視聴装置200bi は、コンテンツ視聴装置200と同様に、送受信部201、秘密鍵格納部202、コンテンツ復号部203、鍵復号部204b、再生部205、制御部206、入力部207、モニタ208、スピーカ209及びパラメタ記憶部210から構成されている。
つまり、コンテンツ視聴装置200bi は、鍵復号部204に代えて、鍵復号部204bを備えている点において、コンテンツ視聴装置200i と異なっている。
(1)鍵復号部204b
鍵復号部204bは、平方根計算部211、スカラ倍点計算部212及びコンテンツ鍵計算部213bから構成されている(図示していない)。
つまり、鍵復号部204bは、コンテンツ鍵計算部213に代えて、コンテンツ鍵計算部213bを備えている点において、鍵復号部204と異なっている。
平方根計算部211は、上述したように、暗号化コンテンツ鍵EKCi に含まれるx(PCi )に対し、z=(x(PCi ))3 +a×x(PCi )+bのGF(p)での平方根rtを計算し、PCi ’=(x(PCi ),rt)とする。
スカラ倍点計算部212は、上述したように、秘密鍵格納部202に格納されている秘密鍵ksi を用いて、PCi ’のksi 倍の点ksi *PCi ’を計算する。
コンテンツ鍵計算部213bは、スカラ倍点計算部212から点ksi *PCi ’を受け取り、受け取ったksi *PCi ’を用いて、
si xor x(ksi *PCi ’)を計算し、この結果を復号コンテンツ鍵KC’とする。
復号コンテンツ鍵KC’=si xor x(ksi *PCi ’)
2.3 コンテンツ配布システム10bの動作
コンテンツ配布システム10bの動作について説明する。
なお、コンテンツ配布システム10bの動作は、コンテンツ配布システム10の動作と類似しているので、ここでは、コンテンツ配布システム10の動作との相違点を中心として説明する。
コンテンツ配布システム10bの主要な動作は、図5に示すコンテンツ配布システム10の主要な動作と同一であるので説明を省略する。
また、コンテンツ配信装置100bの鍵情報生成部105bによる暗号化コンテンツ鍵情報EKCの生成の動作は、図6に示す暗号化コンテンツ鍵情報EKCの生成の動作と同一であるので説明を省略する。
(1)暗号化コンテンツ鍵EKCi の生成の動作
鍵情報生成部105bの鍵暗号化部111bによる暗号化コンテンツ鍵EKCi の生成の動作について、図10に示すフローチャートを用いて説明する。なお、ここで説明する暗号化コンテンツ鍵EKCi の生成の動作は、図6に示すフローチャートのステップS122の詳細である。
鍵暗号化部111bは、160ビットの乱数ki を生成し(ステップS201)、パラメタ記憶部117からベース点G、定数a及び素数pを読み出し、生成した乱数ki と読み出したベース点G、定数a及び素数pとを用いて、PCi =ki *Gを計算し(ステップS202)、公開鍵格納部104から公開鍵KPi を読み出し、生成した乱数ki、読み出した公開鍵KPi 、読み出した定数a及び素数pを用いて、ki *KPi を計算し(ステップS203)、コンテンツ鍵生成部102から受け取ったコンテンツ鍵KCを用いて、計算したki *KPi に対し、si =KC xor x(ki *KPi )を計算し(ステップS204)、PCi のx座標x(PCi )と、si とを暗号化コンテンツ鍵EKCiとし、暗号化コンテンツ鍵EKCi を出力部115へ出力する(ステップS205)。
(2)復号コンテンツ鍵KC’の生成の動作
コンテンツ視聴装置200bi の鍵復号部204bによる復号コンテンツ鍵KC’の生成の動作について、図11に示すフローチャートを用いて説明する。なお、ここで説明する復号コンテンツ鍵KC’の生成の動作は、図5に示すフローチャートのステップS105の詳細である。
鍵復号部204bの平方根計算部211は、暗号化コンテンツ鍵EKCi に含まれるx(PCi )に対し、x(PCi )3 +a×x(PCi )+bの平方根rt(2個)を計算し、計算により得られた平方根rtのうち、(rt<(p−1)/2)を満たす方を選択し、PCi ’=(x(PCi )、rt)を生成する(ステップS221)。
次に、スカラ倍点計算部212は、PCi ’のksi 倍の点ksi *PCi ’を計算する(ステップS222)。
次に、コンテンツ鍵計算部213bは、スカラ倍点計算部212から点ksi *PCi ’を受け取り、受け取ったksi *PCi ’を用いて、si xor x(ksi *PCi ’)を計算し、この結果を復号コンテンツ鍵KC’とする(ステップS223)。
こうして生成された復号コンテンツ鍵KC’はコンテンツ鍵KCとみなすことができる。
2.4 コンテンツ鍵を正しく復号化できる理由
ここで、x(ksi *PCi ’)=x(ksi *PCi )=x(ksi *ki *G)=x(ki *KPi )が成り立つため、si xor x(ksi *PCi ’)は、コンテンツ鍵KCと等しい。以下で、x(ksi *PCi ’)=x(ksi *KPi )が成り立つ理由について述べる。
一般に、GF(p)で定義される楕円曲線では、P=(x1 ,y1 )に対する負の点−Pは、−P=(x1 ,−y1 )で与えられる。平方根rtは、rt2 =(x(PCi ))3 +a×x(PCi )+bを満たす。ここで、点PCi のy座標y(PCi )もy(PCi )2 =(x(PCi ))3 +a×x(PCi )+bを満たすため、y(PCi)=rtまたはy(PCi )=−rtを満たす。ここで、y(PCi )=rtであれば、PCi =PCi ’となるため、当然、x(ksi*PCi ’)=x(ksi *PCi )を満たす。そこで、y(PCi)=−rtである場合を考える。
y(PCi )=−rtである場合、PCi ’=−PCi を満たす。そのため、ksi *PCi ’=−ksi *PCi である。ここで、x(P)=x(−P)を満たすため、x(ksi *PCi ’)=x(−ksi *PCi )=x(ksi *PCi )が成り立つ。
以上より、x(ksi *PCi ’)=x(ksi *KPi )が成り立ち、コンテンツ鍵を正しく復号化できる。
2.5 実施の形態2の効果
コンテンツ配布システム10bにおける暗号化コンテンツ鍵EKCi のデータ量について検討する。
簡単のため、楕円曲線E1 の定義体のビット数を、現在、楕円曲線暗号として推奨されている160とする。
一台のコンテンツ視聴装置200bi に対する暗号化コンテンツ鍵EKCi は、一つのスカラsi と一つの点PCi のx座標x(PCi)から構成される。スカラsiは160ビットであり、点PCi のx座標も同様に160ビットである。そのため、暗号化コンテンツ鍵EKCi は、160+160=320ビット(=40バイト)である。
従来技術による暗号化コンテンツ鍵情報のデータ量は、80バイトであるため、コンテンツ配布システム10bでは、従来技術の1/2に暗号化コンテンツ鍵のデータ量を削減できている。
コンテンツ視聴装置の台数n=1,000,000としたとき、暗号化コンテンツ鍵情報のデータ量は、40×1,000,000=40,000,000バイト=40Mバイトとなる。一方、従来技術によると、コンテンツ視聴装置の台数n=1,000,000としたとき、暗号化コンテンツ鍵情報のデータ量は、80×1,000,000=80,000,000バイト=80Mバイトとなる。
このように、暗号化コンテンツ鍵情報により評価する場合に、実施の形態2によると、従来技術と比較して、40Mバイトの削減となる。
3.第3の実施の形態
本発明に係る別の実施の形態としてのコンテンツ配布システム10c(図示していない)について説明する。
コンテンツ配布システム10cは、コンテンツ配布システム10と同様の構成を有している。ここでは、コンテンツ配布システム10との相違点を中心として説明する。
コンテンツ配布システム10cは、コンテンツ配布システム10と同様に、1台のコンテンツ配信装置100c及びn台のコンテンツ視聴装置200c1 、200c2 、・・・、200ci 、・・・、200cn から構成されており、コンテンツ配信装置100c及びコンテンツ視聴装置200c1 、200c2 、・・・、200cn は、それぞれ、インターネット20を介して相互に接続されている。
3.1 コンテンツ配信装置100cの構成
コンテンツ配信装置100cは、コンテンツ配信装置100と同様の構成を有しており、送受信部101、コンテンツ鍵生成部102、コンテンツ暗号化部103、公開鍵格納部104、鍵情報生成部105c、コンテンツ記憶部106及び制御部107から構成され、また、制御部107は、入力部108及び表示部109に接続されている(図示していない)。
つまり、コンテンツ配信装置100cは、鍵情報生成部105に代えて、鍵情報生成部105cを備えている点において、コンテンツ配信装置100と異なっている。
以下において、コンテンツ配信装置100との相違点を中心として説明する。
(1)鍵情報生成部105c
鍵情報生成部105cは、鍵情報生成部105と同様の構成を有しており、図12に示すように、カウンタ設定部112、カウンタ加算部113、カウンタ判定部114、出力部115、鍵制御部116、パラメタ記憶部117、カウンタi118及び共通暗号部119c及び個別暗号部120cから構成されている。
つまり、鍵情報生成部105cは、鍵暗号化部111に代えて、共通暗号部119c及び個別暗号部120cを備える点において、鍵情報生成部105と異なっている。ここでは、鍵情報生成部105との相違点を中心として説明する。
(カウンタ設定部112)
カウンタ設定部112は、カウンタiを「1」に設定する。
(共通暗号部119c)
共通暗号部119cは、160ビットの乱数kを生成する。また、パラメタ記憶部117からベース点G、定数a及び素数pを読み出し、生成した乱数kと読み出したベース点G、定数a及び素数pとを用いて、共通暗号文PC=k*Gを計算する。次に、計算した共通暗号文PCを出力部115へ出力する。また、生成した乱数kを個別暗号部120cへ出力する。
(個別暗号部120c)
個別暗号部120cは、コンテンツ視聴装置200ci に対する個別暗号文si を以下のように生成する。
(a)共通暗号部119cから乱数kを受け取る。
(b)公開鍵格納部104から公開鍵KPi を読み出し、パラメタ記憶部117から定数a及び素数pを読み出し、受け取った乱数k、読み出した公開鍵KPi 、読み出した定数a及び素数pを用いて、k*KPiを計算する。
(c)コンテンツ鍵生成部102からコンテンツ鍵KCを受け取り、受け取ったコンテンツ鍵KC及び計算したk*KPi を用いて、
個別暗号文si =KC xor x(k*KPi )を計算する。
ここで、x(k*KPi )は、k*KPi のx座標である。
次に、生成した個別暗号文si を出力部115へ出力する。
(カウンタ判定部114、カウンタ加算部113、出力部115、鍵制御部116)
カウンタ判定部114は、カウンタiがnであるか否かを判定する。
カウンタ判定部114により、カウンタi≠nであると判定される場合に、カウンタ加算部113は、カウンタiに1を加算する。次に、上記を繰り返す。
カウンタ判定部114により、カウンタi=nであると判定される場合に、出力部115は、共通暗号文PCと、個別暗号文s1 、s2 、s3、....、snとを、暗号化コンテンツ鍵情報EKCとして、送受信部101へ出力する。
鍵制御部116は、鍵情報生成部105cを構成する各構成要素を制御する。
(2)送受信部101
送受信部101は、コンテンツ暗号化部103から暗号化コンテンツECを受け取り、鍵情報生成部105cから暗号化コンテンツ鍵情報EKCを受け取り、受け取った暗号化コンテンツECと暗号化コンテンツ鍵情報EKCとを、インターネット20を介して、コンテンツ視聴装置200c1 、200c2 、・・・、200cn へ送信する。
送受信部101により、各コンテンツ視聴装置へ送信される送信情報341を図13に示す。
この図に示すように、送信情報341は、暗号化コンテンツEC342と暗号化コンテンツ鍵情報EKC343から構成されている。暗号化コンテンツ鍵情報EKC343は、共通暗号文PC344とn個の個別暗号文とを含む。i番目の個別暗号文si は、KC xor x(k*KPi )により算出されたものである。
3.2 コンテンツ視聴装置200c1 、200c2 、・・・、200cn の構成
コンテンツ視聴装置200c1 、200c2 、・・・、200cn は、それぞれ、コンテンツ視聴装置2001 、2002 、・・・、200n と同様の構成を有している。
ここでは、代表して、コンテンツ視聴装置200ci の構成について、コンテンツ視聴装置200i との相違点を中心として説明する。
コンテンツ視聴装置200ci は、コンテンツ視聴装置200と同様に、送受信部201、秘密鍵格納部202、コンテンツ復号部203、鍵復号部204c、再生部205、制御部206、入力部207、モニタ208、スピーカ209及びパラメタ記憶部210から構成されている(図示していない)。
つまり、コンテンツ視聴装置200ci は、鍵復号部204に代えて、鍵復号部204cを備えている点において、コンテンツ視聴装置200i と異なっている。
(1)送受信部201
送受信部201は、コンテンツ配信装置100cから、インターネット20を介して、暗号化コンテンツECと暗号化コンテンツ鍵情報EKCとを受信し、受信した暗号化コンテンツECをコンテンツ復号部203へ出力し、受信した暗号化コンテンツ鍵情報EKCを鍵復号部204cへ出力する。
(2)鍵復号部204c
鍵復号部204cは、図14に示すように、スカラ倍点計算部212c及びコンテンツ鍵計算部213cから構成されている。
スカラ倍点計算部212cは、秘密鍵格納部202から秘密鍵ksi を読み出し、送受信部201から受け取った暗号化コンテンツ鍵情報EKCから共通暗号文PCを抽出し、パラメタ記憶部210から定数a及び素数pを読み出し、読み出した定数a、素数p及び読み出した秘密鍵ksi を用いて、抽出した共通暗号文PCのksi倍の点ksi*PCを計算する。次に、計算した点ksi*PCをコンテンツ鍵計算部213cへ出力する。
コンテンツ鍵計算部213cは、自身のコンテンツ視聴装置に割り当てられた装置固有番号iを予め記憶している。コンテンツ鍵計算部213cは、送受信部201から暗号化コンテンツ鍵情報EKCを受け取り、装置固有番号iを読み出し、読み出した装置固有番号iを用いて、受け取った暗号化コンテンツ鍵情報EKCから自身の装置に対応するsi を特定し、特定したsi を暗号化コンテンツ鍵情報EKCから抽出する。また、スカラ倍点計算部212cから点ksi*PCを受け取る。次に、受け取った点ksi*PCを用いて、
si xor x(ksi*PC)を計算し、この結果を復号コンテンツ鍵KC’とする。
復号コンテンツ鍵KC’=si xor x(ksi*PC)
次に、計算した復号コンテンツ鍵KC’をコンテンツ復号部203へ出力する。
3.3 コンテンツ配布システム10cの動作
コンテンツ配布システム10cの動作について説明する。
なお、コンテンツ配布システム10cの動作は、コンテンツ配布システム10の動作と類似しているので、ここでは、コンテンツ配布システム10の動作との相違点を中心として説明する。
コンテンツ配布システム10cの主要な動作は、図5に示すコンテンツ配布システム10の主要な動作と同一であるので説明を省略する。
(1)暗号化コンテンツ鍵情報EKCの生成の動作
コンテンツ配信装置100cの鍵情報生成部105cによる暗号化コンテンツ鍵情報EKCの生成の動作について、図15に示すフローチャートを用いて説明する。ここで説明する暗号化コンテンツ鍵情報EKCの生成の動作は、図5に示すフローチャートのステップS103の詳細である。
カウンタ設定部112は、カウンタiを「1」に設定する(ステップS301)。
次に、共通暗号部119cは、160ビットの乱数kを生成し、共通暗号文PC=k*Gを計算し、計算した共通暗号文PCを出力部115へ出力し、生成した乱数kを個別暗号部120cへ出力する(ステップS302)。
次に、個別暗号部120cは、コンテンツ視聴装置200ci に対する個別暗号文si を生成し、生成した個別暗号文si を出力部115へ出力する(ステップS303)。
次に、カウンタ判定部114は、カウンタiがnであるか否かを判定する。カウンタ判定部114により、カウンタi≠nであると判定される場合に(ステップS304)、カウンタ加算部113は、カウンタiに1を加算し(ステップS305)、次に、ステップS303へ戻って処理を繰り返す。
カウンタ判定部114により、カウンタi=nであると判定される場合に(ステップS304)、出力部115は、共通暗号文PCと、個別暗号文s1 、s2、s3 、...、sn とを、暗号化コンテンツ鍵情報EKCとして、送受信部101へ出力する(ステップS306)。
(2)復号コンテンツ鍵KC’の生成の動作
コンテンツ視聴装置200ci の鍵復号部204cによる復号コンテンツ鍵KC’の生成の動作について、図16に示すフローチャートを用いて説明する。なお、ここで説明する復号コンテンツ鍵KC’の生成の動作は、図5に示すフローチャートのステップS105の詳細である。
スカラ倍点計算部212cは、定数a、素数p及び秘密鍵ksi を用いて、共通暗号文PCのksi 倍の点ksi *PCを計算し、計算した点ksi *PCをコンテンツ鍵計算部213cへ出力する(ステップS321)。
次に、コンテンツ鍵計算部213cは、
復号コンテンツ鍵KC’=si xor x(ksi *PC)を計算し、計算した復号コンテンツ鍵KC’をコンテンツ復号部203へ出力する(ステップS322)。
3.4 実施の形態3の効果
コンテンツ配布システム10cにおける暗号化コンテンツ鍵情報EKCのデータ量について検討する。
簡単のため、楕円曲線E1 の定義体のビット数を現在、楕円曲線暗号として推奨されている160とする。
共通暗号文PCは、楕円曲線E1 の点であり、x,y座標から構成されるため、320ビット(=40バイト)である。個別暗号文si は、160ビット(=20バイト)である。
したがって、n=1,000,000としたとき、暗号化コンテンツ鍵情報のデータ量は、40+20×1,000,000=20,000,040バイト≒20Mバイトとなる。
従来技術による暗号化コンテンツ鍵情報のデータ量は、80Mバイトであるため、コンテンツ配布システム10cでは、従来技術の1/4に暗号化コンテンツ鍵情報のデータ量を削減できている。
3.5 実施の形態3のまとめ
以上説明したように、本発明は、平文を秘密に伝達する情報伝達システムであって、1台の暗号装置と複数台の復号装置とから構成される。
前記暗号装置は、以下を含む。
・記憶部、
平文を記憶している。
・共通演算部、
前記複数の復号装置に共通の共通暗号文を生成する。
・個別演算部、
前記平文に基づいて、各復号装置に個別の個別暗号文を生成する。
・出力部、
生成された前記共通暗号文と、生成された複数の個別暗号文とを出力する。
各復号装置は、以下を含む。
・取得部、
前記共通暗号文及び前記複数の個別暗号文を取得する。
・特定部、
前記複数の個別暗号文から当該復号装置に割り当てられた個別暗号文を抽出する。
・復号部、
取得した前記共通暗号文及びに抽出した前記個別暗号文を用いて、復号文を生成する。
また、以上説明したように、本発明は、群上の離散対数問題を安全性の根拠として、平文を秘密に伝達する情報伝達システムであって、1台の暗号装置と複数台の復号装置とから構成される。
群上のベース元をGとする。各復号装置の群上の公開鍵は、ベース元と、当該復号装置の秘密鍵とに、前記群上のべき演算を施して算出される。
前記暗号装置は、以下を含む。
・記憶部、
平文を記憶している。
・乱数生成部、
スカラ値である乱数を生成する。
・共通演算部、
群上のベース元と前記乱数とに、前記べき演算を施して、共通暗号元を算出する。
・個別演算部、
・出力部、
算出された前記共通暗号元と、算出された複数の個別暗号文とを出力する。
個別演算部は、以下を含む。
・公開鍵演算部、
各復号装置に割り当てられた群上の公開鍵と前記乱数とに、前記べき演算を施して、公開鍵演算元を算出する。
・排他的論理和部、
前記平文と前記公開鍵演算元とに排他的論理和を施して、当該復号装置の個別暗号文を算出する。
各復号装置は、以下を含む。
・取得部、
前記共通暗号元及び前記複数の個別暗号文を取得する。
・特定部、
前記複数の個別暗号文から当該復号装置に割り当てられた個別暗号文を抽出する。
・秘密鍵演算部、
取得した前記共通暗号元と、当該復号装置の秘密鍵とに、前記べき演算を施して、前記群上の秘密鍵復号元を算出する。
・排他的論理和部、
抽出した前記個別暗号文と、算出した秘密鍵復号元とに、排他的論理和を施して、復号文を生成する。
また、以上説明したように、本発明は、楕円曲線上の離散対数問題を安全性の根拠として、平文を秘密に伝達する情報伝達システムであって、1台の暗号装置と複数台の復号装置とから構成される。
有限体GF(p)上の楕円曲線をy2 =x3 +a×x+bとし、pは素数である。楕円曲線上のベース点をGとする。各復号装置の楕円曲線上の公開鍵点は、ベース点に当該復号装置の秘密鍵を乗じて算出される。
前記暗号装置は、以下を含む。
・記憶部、
平文を記憶している。
・乱数生成部、
スカラ値である乱数を生成する。
・共通演算部、
楕円曲線上のベース点に、前記乱数を乗じて共通暗号点を算出する。
・個別演算部、
・出力部、
算出された前記共通暗号点と、算出された複数の個別暗号文とを出力する。
個別演算部は、以下を含む。
・公開鍵演算部、
各復号装置に割り当てられた楕円曲線上の公開鍵点について、当該公開鍵点に、前記乱数を乗じて公開鍵乗算点を算出する。
・排他的論理和部、
前記公開鍵乗算点のx座標値を抽出し、前記平文と抽出した前記x座標値とに排他的論理和を施して、当該復号装置の個別暗号文を算出する。
各復号装置は、以下を含む。
・取得部、
前記共通暗号点及び前記複数の個別暗号文を取得する。
・特定部、
前記複数の個別暗号文から当該復号装置に割り当てられた個別暗号文を抽出する。
・秘密鍵演算部、
取得した前記共通暗号点に、当該復号装置の秘密鍵を乗じて、楕円曲線上の秘密鍵復号点を算出する。
・排他的論理和部、
算出した秘密鍵復号点のx座標値を抽出し、抽出した前記個別暗号文と、抽出した前記x座標値とに排他的論理和を施して、復号文を生成する。
(発明の効果)
これらの構成によると、暗号文の一部を各復号装置で共通にすることにより、伝達される暗号文のデータ量を削減することができ、その実用的価値は大きい。
4.まとめ
以上説明したように、本発明は、コンテンツ配信装置と、通信路と、複数のコンテンツ視聴装置を備え、前記コンテンツ配信装置から前記通信路を介してコンテンツを各コンテンツ視聴装置へ配信するコンテンツ配布システムである。
前記コンテンツ配信装置は、前記コンテンツ視聴装置へデータを送信する送信部と、コンテンツ鍵を生成するコンテンツ鍵生成部と、前記コンテンツ鍵を用いて前記コンテンツを暗号化して、暗号化コンテンツを生成する暗号化コンテンツ生成部と、前記コンテンツ視聴装置の公開鍵を格納する公開鍵格納部と、前記コンテンツ鍵を前記公開鍵で暗号化して暗号化コンテンツ鍵情報を生成する暗号化コンテンツ鍵情報生成部からなる。
各コンテンツ視聴装置は、前記コンテンツ配信装置からデータを受信する受信部と、前記コンテンツ視聴装置の秘密鍵を格納する秘密鍵格納部と、前記暗号化コンテンツ鍵情報を復号化し、コンテンツ鍵を取得する暗号化コンテンツ鍵復号部と、前記暗号化コンテンツを復号化し、コンテンツを取得する暗号化コンテンツ復号部からなり、前記暗号化コンテンツ鍵情報生成部は、楕円曲線暗号を使用し、楕円曲線暗号の暗号文に含まれる点に対し、前記点のx座標と前記暗号文の前記点以外の部分とを暗号化コンテンツ鍵情報として含め、前記暗号化コンテンツ鍵復号部は、前記暗号化コンテンツ鍵情報に含む前記x座標PCxを持つ点のy座標を計算する。
ここで、前記楕円曲線暗号は、定義式y2 =x3 +a×x+b(a,bは整数値)で定義される楕円曲線を使用し、前記暗号化コンテンツ鍵復号部は、前記x座標PCxを用いて、(PCx)3 +a×PCx+bの平方根を計算することで、前記y座標を計算するとしてよい。
また、本発明は、コンテンツ配信装置と、通信路と、複数のコンテンツ視聴装置を備え、前記コンテンツ配信装置から前記通信路を介してコンテンツを各コンテンツ視聴装置へ配信するコンテンツ配布システムである。
前記コンテンツ配信装置は、各コンテンツ視聴装置へデータを送信する送信部と、コンテンツ鍵を生成するコンテンツ鍵生成部と、前記コンテンツ鍵を用いて前記コンテンツを暗号化して、暗号化コンテンツを生成する暗号化コンテンツ生成部と、前記コンテンツ視聴装置の公開鍵を格納する公開鍵格納部と、前記コンテンツ鍵を前記公開鍵で暗号化して暗号化コンテンツ鍵情報を生成する暗号化コンテンツ鍵情報生成部からなる。
各コンテンツ視聴装置は、前記コンテンツ配信装置からデータを受信する受信部と、前記コンテンツ視聴装置の秘密鍵を格納する秘密鍵格納部と、前記暗号化コンテンツ鍵情報を復号化し、コンテンツ鍵を取得する暗号化コンテンツ鍵復号部と、前記暗号化コンテンツを復号化し、コンテンツを取得する暗号化コンテンツ復号部からなり、前記暗号化コンテンツ鍵情報生成部は、複数の前記コンテンツ視聴装置に共通する共通暗号文と前記コンテンツ視聴装置の各々に個別に個別暗号文を生成して、前記暗号化コンテンツ鍵情報とする。
ここで、前記暗号化コンテンツ鍵情報生成部と前記暗号化コンテンツ鍵復号部は、楕円曲線暗号を使用するとしてもよい。
ここで、前記共通暗号文及び前記個別暗号文は、楕円曲線上の点であるとしてもよい。
ここで、前記共通暗号文は、楕円曲線上の点であり、前記個別暗号文は、前記楕円曲線を定義する定義体に属する元であるとしてもよい。
ここで、前記暗号化コンテンツ鍵情報生成部と前記暗号化コンテンツ鍵復号部は、ElGamal暗号を使用するとしてもよい。
また、本発明は、コンテンツ配信装置と、通信路と、複数のコンテンツ視聴装置を備え、前記コンテンツ配信装置から前記通信路を介してコンテンツを各コンテンツ視聴装置へ配信するコンテンツ配布システムにおけるコンテンツ配信装置であって、前記コンテンツ視聴装置へデータを送信する送信部と、コンテンツ鍵を生成するコンテンツ鍵生成部と、前記コンテンツ鍵を用いて前記コンテンツを暗号化して、暗号化コンテンツを生成する暗号化コンテンツ生成部と、前記コンテンツ視聴装置の公開鍵を格納する公開鍵格納部と、前記コンテンツ鍵を前記公開鍵で暗号化して暗号化コンテンツ鍵情報を生成する暗号化コンテンツ鍵情報生成部とを備え、前記暗号化コンテンツ鍵情報生成部は、楕円曲線暗号を使用し、楕円曲線暗号の暗号文に含まれる点に対し、前記点のx座標と前記暗号文の前記点以外の部分とを暗号化コンテンツ鍵情報として含める。
また、本発明は、コンテンツ配信装置と、通信路と、複数のコンテンツ視聴装置を備え、前記コンテンツ配信装置から前記通信路を介してコンテンツを前記コンテンツ視聴装置へ配信するコンテンツ配布システムにおけるコンテンツ視聴装置であって、前記コンテンツ配信装置からデータを受信する受信部と、前記コンテンツ視聴装置の秘密鍵を格納する秘密鍵格納部と、暗号化コンテンツ鍵情報を復号化し、コンテンツ鍵を取得する暗号化コンテンツ鍵復号部と、暗号化コンテンツを復号化し、コンテンツを取得する暗号化コンテンツ復号部とを備え、前記暗号化コンテンツ鍵復号部は、前記暗号化コンテンツ鍵情報に含む前記x座標PCxのみから、前記x座標PCxを持つ点のy座標を計算する。
また、本発明は、コンテンツ配信装置と、通信路と、複数のコンテンツ視聴装置を備え、前記コンテンツ配信装置から前記通信路を介してコンテンツを前記コンテンツ視聴装置へ配信するコンテンツ配布システムにおけるコンテンツ配信装置であって、前記コンテンツ視聴装置へデータを送信する送信部と、コンテンツ鍵を生成するコンテンツ鍵生成部と、前記コンテンツ鍵を用いて前記コンテンツを暗号化して、暗号化コンテンツを生成する暗号化コンテンツ生成部と、前記コンテンツ視聴装置の公開鍵を格納する公開鍵格納部と、前記コンテンツ鍵を前記公開鍵で暗号化して暗号化コンテンツ鍵情報を生成する暗号化コンテンツ鍵情報生成部とを備え、前記暗号化コンテンツ鍵情報生成部は、複数の前記コンテンツ視聴装置に共通する共通暗号文と前記コンテンツ視聴装置の各々に個別に個別暗号文を生成して、前記暗号化コンテンツ鍵情報とする。
また、本発明は、コンテンツ配信装置と、通信路と、複数のコンテンツ視聴装置を備え、前記コンテンツ配信装置から前記通信路を介してコンテンツを前記コンテンツ視聴装置へ配信するコンテンツ配布システムにおけるコンテンツ視聴装置であって、前記コンテンツ配信装置からデータを受信する受信部と、前記コンテンツ視聴装置の秘密鍵を格納する秘密鍵格納部と、前記暗号化コンテンツ鍵情報を復号化し、コンテンツ鍵を取得する暗号化コンテンツ鍵復号部と、前記暗号化コンテンツを復号化し、コンテンツを取得する暗号化コンテンツ復号部からなり、前記暗号化コンテンツ鍵復号部は、複数の前記コンテンツ視聴装置に共通する共通暗号文と、前記コンテンツ視聴装置に個別の個別暗号文から、前記コンテンツ鍵を取得する。
これらの構成によると、暗号文中の楕円曲線上の点のy座標を暗号化コンテンツ鍵に含めないことや、暗号文の一部を各コンテンツ視聴装置で共通にすることにより、暗号化コンテンツ鍵のデータ量を削減することができ、その実用的価値は大きい。
5.その他の変形例
なお、本発明を上記の実施の形態に基づいて説明してきたが、本発明は、上記の実施の形態に限定されないのはもちろんである。以下のような場合も本発明に含まれる。
(1)第1の実施の形態では、コンテンツ配信装置100が有する鍵情報生成部105の鍵暗号化部111は、点PCiのx座標x(PCi )と点Ciとから構成される暗号化コンテンツ鍵EKCi を生成するとしているが、点PCiと点Ciのx座標x(Ci )とから構成される暗号化コンテンツ鍵EKCi を生成するとしてもよい。
具体的には、鍵暗号化部111は、コンテンツ視聴装置200i に対する暗号化コンテンツ鍵を以下のように生成するとしてもよい。
(a)160ビットの乱数ki を生成する。
(b)パラメタ記憶部117からベース点G、定数a及び素数pを読み出し、生成した乱数ki と読み出したベース点G、定数a及び素数pとを用いて、
ki *Gを計算する。なお、楕円曲線上の楕円べき倍演算については、上述した通りである。
(c)公開鍵格納部104から公開鍵KPi を読み出し、生成した乱数ki、読み出した公開鍵KPi 、読み出した定数a及び素数pを用いて、ki *KPi を計算する。
(d)コンテンツ鍵生成部102からコンテンツ鍵KCを受け取り、受け取ったKCに変換関数fを施して、コンテンツ鍵KCを楕円曲線E1 上の点P_KC=f(KC)に変換する。なお、変換関数fについては、上述した通りである。
(e)Ci =P_KC+ki *KPi を計算する。
(f)Ci のy座標yi (Ci)が
yi (Ci )<(p−1)/2
を満たすか否かを判定する。
yi (Ci )<(p−1)/2の場合、PCi =ki*Gとし、
yi (Ci )≧(p−1)/2の場合、PCi =−ki *Gとする。
(g)点Ci のx座標x(Ci )と、点PCi とを暗号化コンテンツ鍵EKCiとし、暗号化コンテンツ鍵EKCi を出力部115へ出力する。
このとき、コンテンツ視聴装置200i が有する鍵復号部204の平方根計算部211は、暗号化コンテンツ鍵EKCi に含まれるx(Ci )に対し、x(Ci )3 +a×x(Ci )+bの平方根rt(2個)を計算し、計算により得られた2個の平方根rtのうち、(rt<(p−1)/2)を満たす方を選択し、Ci ’=(x(Ci )、rt)を生成する。
次に、スカラ倍点計算部212は、PCi のksi 倍の点ksi *PCi を計算する(ステップS164)。
次に、コンテンツ鍵計算部213は、P_KC’=Ci ’−ksi *PCi を計算し、P_KC’を整数値に変換するために、復号コンテンツ鍵KC’
=f-1(P_KC’)を計算する。
こうして生成された復号コンテンツ鍵KC’はコンテンツ鍵KCとみなすことができる。
(2)第3の実施の形態では、個別暗号部120cは、スカラ値である
個別暗号文si =KC xor x(k*KPi )を計算するとしているが、スカラ値である個別暗号文si の代わりに、第1の実施の形態と同様にして、楕円曲線E1 上の点である個別暗号文Ci を計算するとしてもよい。
(3)第1〜第3の実施の形態では、GF(p)で定義される楕円曲線E1 を使用しているが、GF(pm )、例えばGF(2m )で定義される楕円曲線 E2 を使用するとしてもよい。具体的には、次に示す通りである。
ここで、楕円曲線E2 の定義式を
2 +xy=x3 +a×x2 +bとし、楕円曲線上の点P(x、y)の負の点を、−P(x、x+y)とする。また、GF(2m )の生成多項式をf(x)とし、その根をαとする。
第1の実施の形態において、コンテンツ配信装置100の鍵情報生成部105は、次に示すようにして、暗号化コンテンツ鍵情報EKCを生成する。
鍵暗号化部111は、コンテンツ視聴装置200i に対する暗号化コンテンツ鍵を以下のように生成する。
(a)160ビットの乱数ki を生成する。
(b)パラメタ記憶部117からベース点G、定数a及び素数pを読み出し、生成した乱数ki と読み出したベース点G、定数a及び素数pとを用いて、
PCi =ki *Gを計算する。
(c)公開鍵格納部104から公開鍵KPi を読み出し、生成した乱数ki、読み出した公開鍵KPi 、読み出した定数a及び素数pを用いて、ki *KPi を計算する。
(d)コンテンツ鍵生成部102からコンテンツ鍵KCを受け取り、受け取ったKCに変換関数fを施して、コンテンツ鍵KCを楕円曲線E2 上の点P_KC=f(KC)に変換する。
(e)P_KC+ki *KPi を計算する。
(f)PCi のx座標xi のαによる多項式において、係数が0でなく、1である項のうち、αの最も小さい次数sを取得する。
例えば、xi =α6 +α5 +α3 の場合、α3 の係数は、0でなく、次数が最も小さいので、s=3である。
(g)PCi のy座標のyi のαによる多項式の項αs の係数が、xi のαによる多項式の項αs の係数と等しい場合、
Ci =P_KC+ki *KPi とし、
PCi のy座標のyi のαによる多項式の項αs の係数が、xi のαによる多項式の項αs の係数と等しくない場合、
Ci =−(P_KC+ki *KPi )とする。
(h)点PCi のx座標xi と、点Ci とを暗号化コンテンツ鍵EKCiとし、暗号化コンテンツ鍵EKCi を出力部115へ出力する。
出力部115は、暗号化コンテンツ鍵EKC1 、EKC2 、EKC3 、...、EKCn を暗号化コンテンツ鍵情報EKCとし、暗号化コンテンツ鍵情報EKCを送受信部101へ出力する。
送受信部101は、暗号化コンテンツECと暗号化コンテンツ鍵情報EKCとを、インターネット20を介して、コンテンツ視聴装置2001 、2002 、・・・、200n へ送信する。
コンテンツ視聴装置200i は、コンテンツ配信装置100から、インターネット20を介して、暗号化コンテンツECと暗号化コンテンツ鍵情報EKCとを受信する。
コンテンツ視聴装置200i が有する鍵復号部204は、自身のコンテンツ視聴装置に割り当てられた装置固有番号iを予め記憶している。
鍵復号部204は、送受信部201から暗号化コンテンツ鍵情報EKCを受け取り、装置固有番号iを読み出し、読み出した装置固有番号iを用いて、上述したように、受け取った暗号化コンテンツ鍵情報EKCから自身の装置に対応するコンテンツ鍵EKCi を特定し、特定したコンテンツ鍵EKCi を暗号化コンテンツ鍵情報EKCから抽出し、さらに、抽出したコンテンツ鍵EKCi から点PCi のx座標xi と、点Ci とを暗号化コンテンツ鍵EKCi とを抽出する。
次に、鍵復号部204は、PCi のx座標xi のαによる多項式の項のうち、係数が0でなく、1であるαの最も小さい次数sを取得し、方程式y2 +xi y=xi3+a×xi2+bを解いて、2個の解yi'_1及びyi'_2 を求める。次に、2個の解yi'_1及びyi'_2 のうち、それらのαの多項式の項αs の係数が、xi のαによる多項式の項αs の係数と等しい方を選択する。こうして1個の解yi'が選択される。
次に、鍵復号部204は、選択した解yi'と、抽出した点PCi のx座標xi とから、点PCi'=(xi 、yi')とする。次に、
P_KC’=Ci −ksi *PCi ’を計算し、
P_KC’を整数値に変換するために、復号コンテンツ鍵KC’=f-1(P_KC’)を算出する。
コンテンツ復号部203は、こうして得られた復号コンテンツ鍵KC’を用いて、暗号化コンテンツECを復号して復号コンテンツを生成する。
なお、上記の変形例において、次に示すようにしてもよい。
上記において、sを係数が0でなく、1である最も小さい次数であるとしているが、係数が1である最も大きい次数であるとしてもよい。
また、上記において、2個の解yi'_1、yi'_2 のうち、αs の係数がxi のαs の係数と等しい方を選択するとしているが、等しくない方を選択するとしてもよい。
(4)実施の形態3では、楕円曲線上のElGamal暗号を使用しているが、楕円曲線上のElGamal暗号に代えて、有限体上のElGamal暗号を使用するとしてもよい。
具体的には、以下に示す通りである。
ここで、pを素数とし、有限体GF(p)上のベース元をgとし(g∈GF(p))、ベース元の位数をqとする(gq =1 mod p)。
コンテンツ視聴装置200ci (i=1、2、・・・、n)の秘密鍵を、ksi とし、公開鍵をkpi (kpi =gksi mod p)とする。
ここで、ab は、aを、b乗するべき乗演算である。
コンテンツ視聴装置200ci は、秘密鍵ksi 、素数p、ベース元g及びベース元の位数qを記憶しており、コンテンツ配信装置100cは、公開鍵kp1 、kp2 、・・・、kpn 、素数p、ベース元g及びベース元の位数qを記憶している。
コンテンツ配信装置100cが有する共通暗号部119cは、160ビットの乱数kを生成し、ベース元g及び素数pを読み出し、生成した乱数kと読み出したベース元g及び素数pとを用いて、
共通暗号文pc=gk mod pを計算する。次に、計算した共通暗号文pcを出力部115へ出力する。また、生成した乱数kを個別暗号部120cへ出力する。
個別暗号部120cは、コンテンツ視聴装置200ci に対する個別暗号文ci を以下のように生成する。
(a)共通暗号部119cから乱数kを受け取る。
(b)公開鍵kpi を読み出し、素数pを読み出し、受け取った乱数k、読み出した公開鍵kpi 、読み出した素数pを用いて、
kpik mod pを計算する。
(c)コンテンツ鍵生成部102からコンテンツ鍵KCを受け取り、受け取ったコンテンツ鍵KCを用いて、
個別暗号文ci =KC xor (kpik mod p)を計算する。
こうしてコンテンツ視聴装置200c1 、200c2 、・・・、200cn について、個別暗号文c1 、c2 、・・・、cn が生成される。
送受信部101は、共通暗号文pc及び個別暗号文c1 、c2 、・・・・、cn から構成される暗号化コンテンツ鍵情報EKCを、インターネット20を介して、コンテンツ視聴装置200c1 、200c2 、・・・、200cn へ送信する。
コンテンツ視聴装置200ci は、コンテンツ配信装置100cから、共通暗号文pc及び個別暗号文c1 、c2 、・・・、cn から構成される暗号化コンテンツ鍵情報EKCを受信する。
コンテンツ視聴装置200ci が有する鍵復号部204cは、図14に示すように、スカラ倍点計算部212c及びコンテンツ鍵計算部213cから構成されている。
スカラ倍点計算部212cは、秘密鍵ksi を読み出し、送受信部201から受け取った暗号化コンテンツ鍵情報EKCから共通暗号文pcを抽出し、素数pを読み出し、読み出した素数p及び読み出した秘密鍵ksi を用いて、
pcksimod pを計算する。次に、計算したpcksi mod pをコンテンツ鍵計算部213cへ出力する。
コンテンツ鍵計算部213cは、自身のコンテンツ視聴装置に割り当てられた装置固有番号iを予め記憶している。コンテンツ鍵計算部213cは、送受信部201から暗号化コンテンツ鍵情報EKCを受け取り、装置固有番号iを読み出し、読み出した装置固有番号iを用いて、受け取った暗号化コンテンツ鍵情報EKCから自身の装置に対応するci を特定し、特定したci を暗号化コンテンツ鍵情報EKCから抽出する。また、スカラ倍点計算部212cからpcksimod pを受け取る。次に、受け取った点pcksi mod pを用いて、
ci xor (pcksi mod p)を計算し、この結果を復号コンテンツ鍵KC’とする。
復号コンテンツ鍵KC’=ci xor (pcksi mod p)
次に、計算した復号コンテンツ鍵KC’をコンテンツ復号部203へ出力する。
以上説明したように、本発明は、有限体上の離散対数問題を安全性の根拠として、平文を秘密に伝達する情報伝達システムであって、1台の暗号装置と複数台の復号装置とから構成される。
ここで、pを素数とし、有限体GF(p)上のベース元をgとし(g∈GF(p))、ベース元の位数をqとする(gq =1 mod p)。
各復号装置の公開鍵kpは、当該復号装置の秘密鍵ksを用いて次式により算出される。
公開鍵kp=gks mod p
前記暗号装置は、以下を含む。
・記憶部、
平文を記憶している。
・乱数生成部、
乱数kを生成する。
・共通演算部、
有限体上のベース元gと前記乱数kを用いて、次式により共通暗号元pcを算出する。
共通暗号元pc=gk mod p
・個別演算部、
・出力部、
算出された前記共通暗号元と、算出された複数の個別暗号元とを出力する。
個別演算部は、以下を含む。
・公開鍵演算部、
各復号装置の公開鍵kpと前記乱数kを用いて、次式により公開鍵暗号元を算出する。
公開鍵暗号元=kpk mod p
・排他的論理和部、
前記平文と算出した前記公開鍵暗号元とに排他的論理和を施して、当該復号装置の個別暗号元を算出する。
各復号装置は、以下を含む。
・取得部、
前記共通暗号元及び前記複数の個別暗号元を取得する。
・特定部、
前記複数の個別暗号元から当該復号装置に割り当てられた個別暗号元を抽出する。
・秘密鍵演算部、
取得した前記共通暗号元pcと、当該復号装置の秘密鍵ksとを用いて、次式により、有限体上の秘密鍵復号元を算出する。
秘密鍵復号元=pcks mod p
・排他的論理和部、
抽出した個別暗号元と、算出した秘密鍵復号元とに排他的論理和を施して、復号文を生成する。
(5)第1〜第3の実施の形態を任意の組合せにより組み合わせてもよい。
(6)上記の各実施の形態において、秘密鍵及び公開鍵が、各コンテンツ視聴装置に割り当てられているが、これには限定されない。
コンテンツをその種類によりグループに分け、例えば、コンテンツの著作者毎にグループに分け、また製作業者毎にグループに分け、コンテンツのジャンル毎にグループに分け、各グループに対して、1組の秘密鍵及び公開鍵を割り当てるとしてもよい。
また、利用者に対して、1組の秘密鍵及び公開鍵を割り当てるとしてもよい。
また、利用者をグループに分け、各グループに対して、1組の秘密鍵及び公開鍵を割り当てるとしてもよい。
(7)第1〜第3の実施の形態では、暗号化コンテンツと暗号化コンテンツ鍵情報をコンテンツをインターネットを介して配信するとしているが、コンテンツ配信装置は、暗号化コンテンツ及び暗号化コンテンツ鍵情報を、DVD、メモリカードなどの記録媒体に記録し、これらの記録媒体が配布されるとしてもよい。各コンテンツ視聴装置は、前記記録媒体から暗号化コンテンツ及び暗号化コンテンツ鍵情報を読み出し、復号コンテンツを生成する。
また、コンテンツ配信装置は、暗号化コンテンツ及び暗号化コンテンツ鍵情報を、デジタル放送により放送し、各コンテンツ視聴装置は、放送波を受信し、受信した放送波から暗号化コンテンツ及び暗号化コンテンツ鍵情報を抽出し、復号コンテンツを生成するとしてもよい。
(8)上記の各実施の形態及び変形例では、コンテンツ鍵の暗号化において、楕円曲線上のElGamal暗号又は有限体上のElGamal暗号を用いているが、これには限定されない。コンテンツの暗号化において、楕円曲線上のElGamal暗号又は有限体上のElGamal暗号を用いるとしてもよい。
(9)上記の各実施の形態では、コンテンツを暗号化する例を示しているが、これには限定されない。
本発明は、通信内容を盗聴者に漏らさないように、受信者に安全に伝えるあらゆる種類の秘密通信において、適用される。例えば、電子メールの送受信システム、一般の商取引における秘密通信システム、特許出願書類の出願システム、金融機関における決済システムなどにおいて適用される。
(10)本発明は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプログラムからなるデジタル信号であるとしてもよい。
また、本発明は、前記コンピュータプログラム又は前記デジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD―ROM、MO、DVD、DVD−ROM、DVD−RAM、BD(Blu−ray Disc)、半導体メモリなど、に記録したものとしてもよい。また、これらの記録媒体に記録されている前記コンピュータプログラム又は前記デジタル信号であるとしてもよい。
また、本発明は、前記コンピュータプログラム又は前記デジタル信号を、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。
また、本発明は、マイクロプロセッサとメモリとを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセッサは、前記コンピュータプログラムに従って動作するとしてもよい。
また、前記プログラム又は前記デジタル信号を前記記録媒体に記録して移送することにより、又は前記プログラム又は前記デジタル信号を前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
(11)上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
(12)以上説明したように、本発明によると、暗号文中の楕円曲線上の点のy座標を暗号化コンテンツ鍵に含めないことや、暗号文の一部を各コンテンツ視聴装置で共通にすることにより、暗号化コンテンツ鍵情報のデータ量を削減できる。
本発明を構成する各装置は、他人に漏れることがないように、情報を安全にかつ確実に扱うあらゆる産業において、経営的に、また継続的及び反復的に使用することができる。また、本発明を構成する各装置は、電器機器製造産業において、経営的に、また継続的及び反復的に、製造し、販売することができる。
本発明に係る1個の実施の形態としてのコンテンツ配布システム10の構成を示すシステム構成図である。 コンテンツ配信装置100の構成を示すブロック図である。 送受信部101により、各コンテンツ視聴装置へ送信される送信情報301のデータ構造を示す。 コンテンツ視聴装置200i の構成を示すブロック図である。 コンテンツ配布システム10の主要な動作を示すフローチャートである。 コンテンツ配信装置100の鍵情報生成部105による暗号化コンテンツ鍵情報EKCの生成の動作を示すフローチャートである。 鍵情報生成部105の鍵暗号化部111による暗号化コンテンツ鍵EKCi の生成の動作を示すフローチャートである。 コンテンツ視聴装置200i の鍵復号部204による復号コンテンツ鍵KC’の生成の動作を示すフローチャートである。 第2の実施の形態において、送受信部101により、各コンテンツ視聴装置へ送信される送信情報321のデータ構造を示す。 鍵情報生成部105bの鍵暗号化部111bによる暗号化コンテンツ鍵EKCi の生成の動作を示すフローチャートである。 コンテンツ視聴装置200bi の鍵復号部204bによる復号コンテンツ鍵KC’の生成の動作を示すフローチャートである。 鍵情報生成部105cの構成を示すブロック図である。 第3の実施の形態において、送受信部101により、各コンテンツ視聴装置へ送信される送信情報341のデータ構造を示す。 鍵復号部204cの構成を示すブロック図である。 コンテンツ配信装置100cの鍵情報生成部105cによる暗号化コンテンツ鍵情報EKCの生成の動作を示すフローチャートである。 コンテンツ視聴装置200ci の鍵復号部204cによる復号コンテンツ鍵KC’の生成の動作を示すフローチャートである。

Claims (21)

  1. 楕円曲線上の離散対数問題を安全性の根拠として、平文を秘密に伝達する情報伝達システムであって、暗号装置と復号装置とから構成され、
    前記暗号装置は、
    平文を記憶している記憶手段と、
    前記平文について、楕円曲線上の暗号演算を行って楕円曲線上の暗号点のx座標値を生成し、生成した前記x座標値を含む暗号文を生成する暗号化手段と、
    生成した暗号文を出力する出力手段とを含み、
    前記復号装置は、
    前記暗号文を取得する取得手段と、
    取得した前記暗号文に含まれる前記x座標値を持つ楕円曲線上の前記暗号点のy座標値を算出し、前記x座標値と前記y座標値からなる楕円曲線上の暗号点と、前記暗号文の他の部分とを用いて、楕円曲線上の復号演算を行って、復号文を生成する復号手段とを含む
    ことを特徴とする情報伝達システム。
  2. 楕円曲線上の離散対数問題を安全性の根拠として、平文を秘密に出力する暗号装置であって、
    平文を記憶している記憶手段と、
    前記平文について、楕円曲線上の暗号演算を行って楕円曲線上の暗号点のx座標値を生成し、生成した前記x座標値を含む暗号文を生成する暗号化手段と、
    生成した暗号文を出力する出力手段と
    を備えることを特徴とする暗号装置。
  3. 前記記憶手段は、スカラ値である前記平文を記憶しており、
    前記暗号化手段は、
    スカラ値である乱数を生成する乱数生成部と、
    楕円曲線上のベース点に、前記乱数を乗じてベース乗算点を算出する第1演算部と、
    楕円曲線上の公開鍵点に、前記乱数を乗じて公開鍵乗算点を算出する第2演算部と、
    前記平文に、楕円曲線上の点への変換関数を施して、楕円曲線上の平文点を生成する変換部と、
    前記平文点と前記公開鍵乗算点との加算を用いて、平文加算点を算出する第3演算部と、
    前記ベース乗算点からx座標値を抽出し、抽出したx座標値及び前記平文加算点から構成される前記暗号文を生成する生成部と
    を含むことを特徴とする請求項2に記載の暗号装置。
  4. 前記第3演算部は、所定の条件を満たすか否かを判断し、満たすと判断する場合に、前記平文点に前記公開鍵乗算点を加算して前記平文加算点を算出し、満たさないと判断される場合に、前記平文点に前記公開鍵乗算点を加算し、得られた値の負の値を前記平文加算点とする
    ことを特徴とする請求項3に記載の暗号装置。
  5. 有限体GF(p)上の楕円曲線をy2 =x3 +a×x+bとし、pは素数であり、
    前記第3演算部は、前記ベース乗算点のy座標値が、(p−1)/2より小さいか否かを判断し、小さいと判断される場合に、前記平文点に前記公開鍵乗算点を加算して前記平文加算点を算出し、小さくないと判断される場合に、前記平文点に前記公開鍵乗算点を加算し、得られた値の負の値を前記平文加算点とする
    ことを特徴とする請求項4に記載の暗号装置。
  6. 有限体GF(2m )上の楕円曲線をy2 +xy=x3 +ax2 +bとし、mは自然数であり、GF(2m )の生成多項式をf(x)とし、その根をαとし、
    前記第3演算部は、前記ベース乗算点のx座標値のαの生成多項式の係数が0でない項のうち、最も小さい次数をsとし、
    前記ベース乗算点のy座標値のαの生成多項式の項αs の係数が、x座標値のαの生成多項式の項αs の係数と等しいか否かを判断し、等しいと判断される場合、前記平文点に前記公開鍵乗算点を加算して前記平文加算点を算出し、等しくないと判断される場合に、前記平文点に前記公開鍵乗算点を加算し、得られた値の負の値を前記平文加算点とする
    ことを特徴とする請求項4に記載の暗号装置。
  7. 有限体GF(p)上の楕円曲線をy2 =x3 +a×x+bとし、pは素数であり、
    前記記憶手段は、スカラ値である前記平文を記憶しており、
    前記暗号化手段は、
    スカラ値である乱数を生成する乱数生成部と、
    楕円曲線上の公開鍵点に、前記乱数を乗じて公開鍵乗算点を算出する第2演算部と、
    前記平文に、楕円曲線上の点への変換関数を施して、楕円曲線上の平文点を生成する変換部と、
    前記平文点と前記公開鍵乗算点とを加算して、平文加算点を算出する第3演算部と、
    前記平文加算点のy座標値が、(p−1)/2より小さいか否かを判断し、小さいと判断される場合に、楕円曲線上のベース点に、前記乱数を乗じてベース乗算点を算出し、小さくないと判断される場合に、楕円曲線上のベース点に、前記乱数の負の値を乗じてベース乗算点を算出する第1演算部と、
    前記平文加算点からx座標値を抽出し、抽出したx座標値及び前記ベース乗算点から構成される前記暗号文を生成する生成部と
    を含むことを特徴とする請求項2に記載の暗号装置。
  8. 有限体GF(p)上の楕円曲線をy2 =x3 +a×x+bとし、pは素数であり、
    前記記憶手段は、スカラ値である前記平文を記憶しており、
    前記暗号化手段は、
    スカラ値である乱数を生成する乱数生成部と、
    楕円曲線上のベース点に、前記乱数を乗じてベース乗算点を算出する第1演算部と、
    楕円曲線上の公開鍵点に、前記乱数を乗じて公開鍵乗算点を算出する第2演算部と、
    前記平文と、前記公開鍵乗算点のx座標値とに排他的論理和を施して、前記楕円曲線上の排他論理和値を生成する第3演算部と、
    第3演算部により生成された前記排他論理和値と、前記暗号点としての前記ベース乗算点のx座標値とから構成される前記暗号文を生成する生成部と
    を含むことを特徴とする請求項2に記載の暗号装置。
  9. 前記記憶手段に記憶されている前記平文は、コンテンツ鍵であり、
    前記暗号化手段は、前記コンテンツ鍵を暗号化して前記暗号文を生成し、
    前記暗号装置は、さらに、
    前記コンテンツ鍵を用いて、コンテンツに暗号化を施して暗号化コンテンツを生成するコンテンツ暗号手段と、
    生成した前記暗号化コンテンツを出力するコンテンツ出力手段と
    を含むことを特徴とする請求項2に記載の暗号装置。
  10. 楕円曲線上の離散対数問題を安全性の根拠として、伝達された暗号文を復号する復号装置であって、
    前記暗号文は、平文について、楕円曲線上の暗号演算を行って生成された楕円曲線上の暗号点のx座標値を含み、
    前記復号装置は、
    前記暗号文を取得する取得手段と、
    取得した前記暗号文に含まれる前記x座標を持つ楕円曲線上の前記暗号点のy座標値を算出し、前記x座標値と前記y座標値からなる楕円曲線上の前記暗号点と、前記暗号文の他の部分とを用いて、楕円曲線上の復号演算を行って、復号文を生成する復号手段と
    を備えることを特徴とする復号装置。
  11. 有限体GF(p)上の楕円曲線をy2 =x3 +a×x+bとし、pは素数であり、
    前記取得手段は、請求項5の暗号装置から、前記暗号文を取得し、
    前記復号手段は、
    楕円曲線の定義式y2 =x3 +a×x+bに、取得した前記暗号文に含まれる前記x座標値を代入し、その2個の平方根を算出し、算出された2個の平方根のうち、(p−1)/2より小さい方を選択し、前記暗号文に含まれる前記x座標値と選択された前記平方根とからなる楕円曲線上の第1復号点を生成する平方根計算部と、
    生成された第1復号点に、スカラ値である秘密鍵を乗じて、秘密鍵復号点を算出し、前記公開鍵点は、前記ベース点に前記秘密鍵を乗じて得られた楕円曲線上の点であるスカラ倍点計算部と、
    取得した前記暗号文に含まれる平文加算点から前記秘密鍵復号点を減じ、得られた値にスカラ値への逆変換関数を施して、スカラ値である復号文を生成する復号文計算部と
    を含むことを特徴とする請求項10に記載の復号装置。
  12. 有限体GF(2m )上の楕円曲線をy2 +xy=x3 +ax2 +bとし、mは自然数であり、GF(2m )の生成多項式をf(x)とし、その根をαとし、
    前記取得手段は、請求項6の暗号装置から、前記暗号文を取得し、
    前記復号手段は、
    取得した前記暗号文に含まれる前記x座標値のαの生成多項式の係数が0でない項のうち、最も小さい次数をsとする第1演算部と、
    楕円曲線の定義式y2 +xy=x3 +ax2 +bに、取得した前記暗号文に含まれる前記x座標値を代入し、その2個の解を算出し、算出された2個の解から、解のαの生成多項式の項αs の係数が前記x座標値のαの生成多項式の項αs の係数と等しい方を選択し、前記x座標値と選択された解とからなる第1復号点を生成する解計算部と、
    生成された第1復号点に、スカラ値である秘密鍵を乗じて、秘密鍵復号点を算出し、前記公開鍵点は、前記ベース点に前記秘密鍵を乗じて得られる楕円曲線上の点であるスカラ倍点計算部と、
    取得した前記暗号文に含まれる前記平文加算点から前記秘密鍵復号点を減じ、得られた値にスカラ値への逆変換関数を施して、スカラ値である復号文を生成する復号文計算部と
    を含むことを特徴とする請求項10に記載の復号装置。
  13. 有限体GF(p)上の楕円曲線をy2 =x3 +a×x+bとし、pは素数であり、
    前記取得手段は、請求項7の暗号装置から、前記暗号文を取得し、
    前記復号手段は、
    楕円曲線の定義式y2 =x3 +a×x+bに、取得した前記暗号文に含まれる前記x座標値を代入し、その2個の平方根を算出し、算出された2個の平方根のうち(p−1)/2より小さい方を選択し、前記暗号文に含まれる前記x座標値と選択された前記平方根とからなる楕円曲線上の第2復号点を生成する平方根計算部と、
    取得した前記暗号文に含まれるベース乗算点に、スカラ値である秘密鍵を乗じて、秘密鍵復号点を算出し、前記公開鍵点は、前記ベース点に前記秘密鍵を乗じて得られた楕円曲線上の点であるスカラ倍点計算部と、
    生成した第2復号点から前記秘密鍵復号点を減じ、得られた値にスカラ値への逆変換関数を施して、スカラ値である復号文を生成する復号文計算部と
    を含むことを特徴とする請求項10に記載の復号装置。
  14. 前記取得手段は、請求項8の暗号装置から、前記暗号文を取得し、
    有限体GF(p)上の楕円曲線をy2 =x3 +a×x+bとし、pは素数であり、
    前記復号手段は、
    楕円曲線の定義式y2 =x3 +a×x+bに、取得した前記暗号文に含まれる前記暗号点の前記x座標値を代入し、その2個の平方根を算出し、算出された2個の平方根のうち、(p−1)/2より小さい方を選択し、前記暗号点の前記x座標値と選択された前記平方根とからなる楕円曲線上の第1復号点を生成する平方根計算部と、
    生成された第1復号点に、スカラ値である秘密鍵を乗じて、秘密鍵復号点を算出するスカラ倍点計算部と、
    取得した前記排他論理和値と、前記秘密鍵復号点のx座標値に排他的論理和を施して、復号文を生成する復号文計算部と
    を含むことを特徴とする請求項10に記載の復号装置。
  15. 前記取得手段は、請求項9の暗号装置から、前記暗号文を取得し、さらに、暗号化コンテンツを取得し、
    前記復号手段は、前記暗号文を復号して、前記復号文として、復号コンテンツ鍵を生成し、
    前記復号装置は、さらに、
    前記復号コンテンツ鍵を用いて、取得した前記暗号化コンテンツに復号を施して復号コンテンツを生成するコンテンツ復号手段と、
    生成した復号コンテンツを再生するコンテンツ再生手段と
    を含むことを特徴とする請求項10に記載の復号装置。
  16. 楕円曲線上の離散対数問題を安全性の根拠として、平文を秘密に出力する暗号装置で用いられる暗号方法であって、
    前記平文について、楕円曲線上の暗号演算を行って楕円曲線上の暗号点のx座標値を生成し、生成した前記x座標値を含む暗号文を生成する暗号化ステップと、
    生成した暗号文を出力する出力ステップと
    を含むことを特徴とする暗号方法。
  17. 楕円曲線上の離散対数問題を安全性の根拠として、平文を秘密に出力する暗号装置で用いられる暗号プログラムであって、
    前記平文について、楕円曲線上の暗号演算を行って楕円曲線上の暗号点のx座標値を生成し、生成した前記x座標値を含む暗号文を生成する暗号化ステップと、
    生成した暗号文を出力する出力ステップと
    を含むことを特徴とする暗号プログラム。
  18. 前記暗号プログラムは、コンピュータ読み取り可能な記録媒体に記録されている
    を含むことを特徴とする請求項17に記載の暗号プログラム。
  19. 楕円曲線上の離散対数問題を安全性の根拠として、伝達された暗号文を復号する復号装置で用いられる復号方法であって、
    前記暗号文は、平文について、楕円曲線上の暗号演算を行って生成された楕円曲線上の暗号点のx座標値を含み、
    前記復号方法は、
    前記暗号文を取得する取得ステップと、
    取得した前記暗号文に含まれる前記x座標を持つ楕円曲線上の前記暗号点のy座標値を算出し、前記x座標値と前記y座標値からなる楕円曲線上の前記暗号点と、前記暗号文の他の部分とを用いて、楕円曲線上の復号演算を行って、復号文を生成する復号ステップと
    を含むことを特徴とする復号方法。
  20. 楕円曲線上の離散対数問題を安全性の根拠として、伝達された暗号文を復号する復号装置で用いられる復号プログラムであって、
    前記暗号文は、平文について、楕円曲線上の暗号演算を行って生成された楕円曲線上の暗号点のx座標値を含み、
    前記復号プログラムは、
    前記暗号文を取得する取得ステップと、
    取得した前記暗号文に含まれる前記x座標を持つ楕円曲線上の前記暗号点のy座標値を算出し、前記x座標値と前記y座標値からなる楕円曲線上の前記暗号点と、前記暗号文の他の部分とを用いて、楕円曲線上の復号演算を行って、復号文を生成する復号ステップと
    を含むことを特徴とする復号プログラム。
  21. 前記復号プログラムは、コンピュータ読み取り可能な記録媒体に記録されている
    ことを特徴とする請求項20に記載の復号プログラム。
JP2006531233A 2003-10-03 2004-10-01 情報伝達システム、暗号装置及び復号装置 Expired - Fee Related JP4611305B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2003346172 2003-10-03
JP2003421116 2003-12-18
PCT/JP2004/014887 WO2005034421A2 (en) 2003-10-03 2004-10-01 Information transfer system, encryption device, and decryption device using elliptic curve

Publications (2)

Publication Number Publication Date
JP2007507742A true JP2007507742A (ja) 2007-03-29
JP4611305B2 JP4611305B2 (ja) 2011-01-12

Family

ID=34425351

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006531233A Expired - Fee Related JP4611305B2 (ja) 2003-10-03 2004-10-01 情報伝達システム、暗号装置及び復号装置

Country Status (4)

Country Link
US (1) US7936874B2 (ja)
EP (1) EP1668818A2 (ja)
JP (1) JP4611305B2 (ja)
WO (1) WO2005034421A2 (ja)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7308096B2 (en) * 2000-05-30 2007-12-11 Hitachi, Ltd. Elliptic scalar multiplication system
US7392396B2 (en) * 2002-03-07 2008-06-24 Symbol Technologies, Inc. Transaction device with noise signal encryption
US7860247B2 (en) * 2004-11-12 2010-12-28 Dublin City University Identity based encryption
JP5068176B2 (ja) * 2005-01-18 2012-11-07 サーティコム コーポレーション デジタル署名と公開鍵の促進された検証
JP5147412B2 (ja) * 2005-01-21 2013-02-20 サーティコム コーポレーション 楕円曲線乱数生成
DE102006013515A1 (de) * 2006-03-23 2007-10-04 Siemens Ag Kryptographisches Verfahren mit elliptischen Kurven
US7885406B2 (en) 2006-10-10 2011-02-08 Microsoft Corporation Computing endomorphism rings of Abelian surfaces over finite fields
WO2008071222A1 (en) * 2006-12-15 2008-06-19 Agere Systems Inc. Protecting a programmable memory against unauthorized modification
KR101405321B1 (ko) * 2007-03-16 2014-06-27 재단법인서울대학교산학협력재단 키 연산 방법 및 이를 이용한 공유 키 생성 방법
WO2009035224A2 (en) * 2007-09-10 2009-03-19 Electronics And Telecommunications Research Institute Appatatus and method of calculating square root in finite extension field
US20170207918A1 (en) * 2009-06-16 2017-07-20 Morpho Cryptography on an elliptical curve
US20140314229A1 (en) * 2011-12-09 2014-10-23 Morpho Cryptography on a simplified elliptical curve
JP5539024B2 (ja) * 2010-05-27 2014-07-02 キヤノン株式会社 データ暗号化装置およびその制御方法
WO2018102382A1 (en) * 2016-11-29 2018-06-07 ZeroDB, Inc. Method and system for switching public keys in ciphertexts
US11146397B2 (en) * 2017-10-31 2021-10-12 Micro Focus Llc Encoding abelian variety-based ciphertext with metadata
WO2019180589A1 (en) 2018-03-23 2019-09-26 nChain Holdings Limited Computer-implemented system and method for trustless zero-knowledge contingent payment
CN112202757B (zh) * 2020-09-27 2023-02-14 贵州航天计量测试技术研究所 一种地理坐标保型加密方法
CN112131593A (zh) * 2020-09-29 2020-12-25 深圳壹账通智能科技有限公司 基于信息的特征的加密方法、装置、设备及储存介质
CN114205809A (zh) * 2021-11-12 2022-03-18 天津大学 基于区块链的无人艇自组网方法
CN114401084B (zh) * 2021-12-10 2023-12-29 北京理工大学 一种基于密文变换的第三方随机数传递方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6199086B1 (en) * 1997-12-24 2001-03-06 Motorola, Inc. Circuit and method for decompressing compressed elliptic curve points
JP2002141895A (ja) * 2000-11-01 2002-05-17 Sony Corp コンテンツ配信システムおよびコンテンツ配信方法
JP2003124919A (ja) * 2001-10-10 2003-04-25 Sharp Corp 暗号通信装置
DE10161137A1 (de) * 2001-12-12 2003-10-02 Siemens Ag Verfahren und System zum kryptographischen Bearbeiten von Daten

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1996004602A1 (en) * 1994-07-29 1996-02-15 Certicom Corp. Elliptic curve encryption systems
JPH11242434A (ja) * 1998-02-26 1999-09-07 Hitachi Ltd 楕円曲線暗号実行方法及び暗号処理システム
US6611597B1 (en) * 1999-01-25 2003-08-26 Matsushita Electric Industrial Co., Ltd. Method and device for constructing elliptic curves

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6199086B1 (en) * 1997-12-24 2001-03-06 Motorola, Inc. Circuit and method for decompressing compressed elliptic curve points
JP2002141895A (ja) * 2000-11-01 2002-05-17 Sony Corp コンテンツ配信システムおよびコンテンツ配信方法
JP2003124919A (ja) * 2001-10-10 2003-04-25 Sharp Corp 暗号通信装置
DE10161137A1 (de) * 2001-12-12 2003-10-02 Siemens Ag Verfahren und System zum kryptographischen Bearbeiten von Daten

Also Published As

Publication number Publication date
WO2005034421A2 (en) 2005-04-14
JP4611305B2 (ja) 2011-01-12
US7936874B2 (en) 2011-05-03
US20070121933A1 (en) 2007-05-31
EP1668818A2 (en) 2006-06-14
WO2005034421A3 (en) 2005-06-16

Similar Documents

Publication Publication Date Title
JP4611305B2 (ja) 情報伝達システム、暗号装置及び復号装置
KR101027199B1 (ko) 키공유 시스템, 공유키 생성장치 및 공유키 복원장치
JP4786531B2 (ja) 暗号システム、暗号装置、復号装置、プログラムおよび集積回路
JP5257357B2 (ja) 鍵生成装置、暗号化装置及び復号装置
US7434898B2 (en) Computer system, computer program, and addition method
EP1914924A1 (en) Time apparatus, encrypting apparatus, decrypting apparatus, and encrypting/decrypting system
KR101059344B1 (ko) 암호화 통신 시스템
JP2013243441A (ja) 秘密分散システム、データ分散装置、データ復元装置、秘密分散方法、およびプログラム
JP2010049212A (ja) 復号装置、復号方法、復号プログラム、暗号化装置、暗号化方法および暗号化プログラム
KR101533950B1 (ko) 브로드캐스트 암호화 방법 및 시스템
JP4748206B2 (ja) 情報処理装置、情報処理方法およびプログラム
CN1745537B (zh) 密钥共享系统、共享密钥生成装置及共享密钥复原装置
JP4685621B2 (ja) 鍵生成装置、暗号化装置、復号化装置、乗法型ナップザック暗号システム、乗法型ナップザック暗号復号方法およびプログラム
JP4485175B2 (ja) 鍵共有システム、共有鍵生成装置及び共有鍵復元装置
JP2010049217A (ja) 表現変換装置、演算装置、表現変換方法及びプログラム
JPH06282227A (ja) 公開鍵暗号化装置及び公開鍵復号装置
JP7486688B2 (ja) 暗号文変換システム、暗号文変換方法、及び暗号文変換プログラム
JP7486693B2 (ja) 暗号文変換システム、暗号文変換方法、及び暗号文変換プログラム
JP2004201293A (ja) 鍵共有システム、共有鍵生成装置及び共有鍵復元装置
JP2001282104A (ja) 暗号化方法,復号方法,暗号通信方法,暗号化・復号装置,暗号通信システム及び記録媒体
JP2001156764A (ja) 匿名通信路装置,匿名通信方法および匿名通信制御用プログラム記録媒体
JP2013145410A (ja) 表現変換装置、演算装置、表現変換方法及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070605

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100803

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100830

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100921

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20101013

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131022

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees