JP2007507742A - 情報伝達システム、暗号装置及び復号装置 - Google Patents
情報伝達システム、暗号装置及び復号装置 Download PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/60—Methods 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/72—Methods 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/724—Finite field arithmetic
- G06F7/725—Finite field arithmetic over elliptic curves
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/08—Randomization, e.g. dummy operations or using noise
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/56—Financial 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
Description
例えば、音楽や映画などのコンテンツをDVDなどの記録媒体に格納して配布したり、ネットワークを利用して多数のユーザに配信したりする場合に、コンテンツが不正に利用されないようにするためにコンテンツに暗号化が施されて配布される。
秘密鍵暗号であるDES(Data Encryption Standard) は、平文、暗号文、鍵ともに、64ビットのサイズを持つブロック暗号である。DESでは、初期置換により、平文の隣合った各ビットがほぼ32ビットだけ離れるようにビットの入れ換えが行われた後、16段の同一の変換が繰り返し適用される。
受信者(復号する者)は、楕円ElGamal暗号の秘密鍵ksを秘密に保持している。
公開鍵KP=ks*G
ここで、Gは、楕円ElGamal暗号のベース点であり、楕円曲線上の点である。また、ks*Gは、ベース点Gを(ks−1)回加算することにより得られる楕円曲線上の点を表す。
(ステップ1)乱数kを発生させ、PC=k*Gを計算する。
(ステップ2)k*KPを計算する。
(ステップ3)平文KCを楕円曲線上の点P_KC=f(KC)に変換する。変換関数fについては後述する。
(ステップ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と同じであると期待される。
P_KC’=C−ks*PC
=P_KC+k*KP−ks*PC
=P_KCとなり、
P_KC’は、点P_KCと等しいからである。
簡単のため、楕円曲線の定義体のビット数を、現在、楕円曲線暗号として推奨されている160とする。受信者に送信される暗号文EKCは、点C及び点PCから構成される。点Ci及び点PCiはx、y座標をもつため、それぞれ、320ビットである。そのため、暗号文EKCは、320+320=640ビット(=80バイト)である。
岡本龍明、山本博資、"現代暗号"、産業図書(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
本発明は、楕円曲線暗号を用いる場合に、暗号文が従来より短くなるような情報伝達システム、暗号装置、復号装置、暗号方法、復号方法及びコンピュータプログラムを提供することを目的とする。
ここで、前記記憶手段は、スカラ値である前記平文を記憶しており、前記暗号化手段は、スカラ値である乱数を生成する乱数生成部と、楕円曲線上のベース点に、前記乱数を乗じてベース乗算点を算出する第1演算部と、楕円曲線上の公開鍵点に、前記乱数を乗じて公開鍵乗算点を算出する第2演算部と、前記平文に、楕円曲線上の点への変換関数を施して、楕円曲線上の平文点を生成する変換部と、前記平文点と前記公開鍵乗算点との加算を用いて、平文加算点を算出する第3演算部と、前記ベース乗算点からx座標値を抽出し、抽出したx座標値及び前記平文加算点から構成される前記暗号文を生成する生成部とを含む。
また、有限体GF(p)上の楕円曲線をy2 =x3 +a×x+bとし、pは素数であり、前記第3演算部は、前記ベース乗算点のy座標値が、(p−1)/2より小さいか否かを判断し、小さいと判断される場合に、前記平文点に前記公開鍵乗算点を加算して前記平文加算点を算出し、小さくないと判断される場合に、前記平文点に前記公開鍵乗算点を加算し、得られた値の負の値を前記平文加算点とする。
ここで、前記記憶手段は、スカラ値である前記平文を記憶しており、前記暗号化手段は、スカラ値である乱数を生成する乱数生成部と、楕円曲線上のベース点に、前記乱数を乗じてベース乗算点を算出する第1演算部と、楕円曲線上の公開鍵点に、前記乱数を乗じて公開鍵乗算点を算出する第2演算部と、前記平文に、楕円曲線上の点への変換関数を施して、楕円曲線上の平文点を生成する変換部と、前記平文点と前記公開鍵乗算点との加算を用いて、平文加算点を算出する第3演算部と、前記ベース乗算点からx座標値を抽出し、抽出したx座標値及び前記平文加算点から構成される前記暗号文を生成する生成部とを含む。
また、有限体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(p)上の楕円曲線をy2 =x3 +a×x+bとし、pは素数であり、前記記憶手段は、スカラ値である前記平文を記憶しており、前記暗号化手段は、スカラ値である乱数を生成する乱数生成部と、楕円曲線上の公開鍵点に、前記乱数を乗じて公開鍵乗算点を算出する第2演算部と、前記平文に、楕円曲線上の点への変換関数を施して、楕円曲線上の平文点を生成する変換部と、前記平文点と前記公開鍵乗算点とを加算して、平文加算点を算出する第3演算部と、前記平文加算点のy座標値が、(p−1)/2より小さいか否かを判断し、小さいと判断される場合に、楕円曲線上のベース点に、前記乱数を乗じてベース乗算点を算出し、小さくないと判断される場合に、楕円曲線上のベース点に、前記乱数の負の値を乗じてベース乗算点を算出する第1演算部と、前記平文加算点からx座標値を抽出し、抽出したx座標値及び前記ベース乗算点から構成される前記暗号文を生成する生成部とを含む。
ここで、有限体GF(p)上の楕円曲線をy2 =x3 +a×x+bとし、pは素数であり、前記記憶手段は、スカラ値である前記平文を記憶しており、前記暗号化手段は、スカラ値である乱数を生成する乱数生成部と、楕円曲線上のベース点に、前記乱数を乗じてベース乗算点を算出する第1演算部と、楕円曲線上の公開鍵点に、前記乱数を乗じて公開鍵乗算点を算出する第2演算部と、前記平文と、前記公開鍵乗算点のx座標値とに排他的論理和を施して、前記楕円曲線上の排他論理和値を生成する第3演算部と、第3演算部により生成された前記排他論理和値と、前記暗号点としての前記ベース乗算点のx座標値とから構成される前記暗号文を生成する生成部とを含む。
ここで、前記記憶手段に記憶されている前記平文は、コンテンツ鍵であり、前記暗号化手段は、前記コンテンツ鍵を暗号化して前記暗号文を生成し、前記暗号装置は、さらに、前記コンテンツ鍵を用いて、コンテンツに暗号化を施して暗号化コンテンツを生成するコンテンツ暗号手段と、生成した前記暗号化コンテンツを出力するコンテンツ出力手段とを含む。
以上説明したように、暗号文中の楕円曲線上の点のy座標を暗号化コンテンツ鍵に含めないことにより、伝達される暗号文のデータ量を削減することができ、その実用的価値は大きい。
本発明に係る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を介して相互に接続されている。
また、コンテンツ視聴装置に付された参照符号に含まれるサフィックスは、コンテンツ視聴装置を一意に識別する装置固有番号である。例えば、コンテンツ視聴装置200i を一意に識別する装置固有番号は、「i」である。
コンテンツ配布システム10では、前記公開鍵暗号方式において、楕円曲線暗号が使用される。楕円曲線暗号については、非特許文献1に詳しく記載されている。以下に、コンテンツ配布システム10において使用される楕円曲線暗号における楕円曲線E1 のパラメータについて簡単に述べる。
y2 =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)とする。
公開鍵暗号方式の安全性の根拠として離散対数問題が用いられる。離散対数問題には、代表的なものとして、有限体上定義されるもの及び楕円曲線上定義されるものがある。なお、離散対数問題については、ニイルコブリッツ著 ”ア コウス イン ナンバア セオリイ アンド クリプトグラヒイ”(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を求めよ、という問題である。
1.4 コンテンツ配信装置100の構成
コンテンツ配信装置100は、送受信部101、コンテンツ鍵生成部102、コンテンツ暗号化部103、公開鍵格納部104、鍵情報生成部105、コンテンツ記憶部106及び制御部107から構成され、また、制御部107は、入力部108及び表示部109に接続されている。
公開鍵格納部104は、コンテンツ視聴装置2001 、2002 、・・・、200nの公開鍵KP1 、KP2 、・・・、KPn を予め格納している。
公開鍵KP1 、KP2 、・・・、KPn は、それぞれ、次式により予め算出された楕円曲線E1 上の点である。
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 上の点を表す。なお、この演算を、楕円曲線上の楕円べき倍演算と呼ぶ。
コンテンツ記憶部106は、映画のデジタル著作物であるコンテンツCを予め記憶している。コンテンツCは、映像データ及び音声データが、動画や音声の圧縮符号化技術であるMPEG2(Moving Pictures Experts Group 2)により定まる規格により高効率に圧縮されて生成された圧縮データである。
コンテンツ鍵生成部102は、コンテンツ記憶部106に記憶されているコンテンツC毎に、160ビットの乱数を生成し、生成した乱数をコンテンツ鍵KCとする。次に、生成したコンテンツ鍵KCをコンテンツ暗号化部103及び鍵情報生成部105へ出力する。
コンテンツ暗号化部103は、コンテンツ記憶部106からコンテンツCを読み出し、コンテンツ鍵生成部102からコンテンツ鍵KCを受け取る。
次に、コンテンツ暗号化部103は、受け取ったコンテンツ鍵KCを用いて、読み出したコンテンツCに、共通鍵暗号方式の暗号化アルゴリズムEnc1 を施して、暗号化コンテンツEC=Enc1 (KC、C)を生成する。
(5)鍵情報生成部105
鍵情報生成部105は、図2に示すように、鍵暗号化部111、カウンタ設定部112、カウンタ加算部113、カウンタ判定部114、出力部115、鍵制御部116及びパラメタ記憶部117、カウンタi118から構成されている。
カウンタ設定部112は、カウンタiを「1」に設定する。
鍵暗号化部111は、コンテンツ視聴装置200i に対する暗号化コンテンツ鍵を以下のように生成する。
(a)160ビットの乱数ki を生成する。
PCi =ki *Gを計算する。
ここで、楕円曲線上の楕円べき倍演算について、以下に簡単に説明する。
一例として、100*Pを計算する。
このように、楕円べき倍演算は、2倍算及び加算による演算に帰着する。
ここで、楕円曲線E1 の方程式を y2 = x3 +a×x+b とし、
楕円曲線E1 上の任意の点Pの座標を(x1,y1 )とし、任意の点Qの座標を(x2 ,y2 )とする。ここで、R=P+Qで定まる点Rの座標を(x3 ,y3 )とする。
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倍算の公式を以下に示す。
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.)に詳しく説明されている。
なお、楕円曲線上の楕円べき倍演算については、上述した通りである。
(d)コンテンツ鍵生成部102からコンテンツ鍵KCを受け取り、受け取ったKCに変換関数fを施して、コンテンツ鍵KCを楕円曲線E1 上の点P_KC=f(KC)に変換する。なお、変換関数fについては後述する。
(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 )とする。
カウンタ判定部114は、カウンタiがnであるか否かを判定する。
カウンタ判定部114により、カウンタi≠nであると判定される場合に、カウンタ加算部113は、カウンタiに1を加算する。次に、上記を繰り返す。
鍵制御部116は、鍵情報生成部105を構成する各構成要素を制御する。
PCi 及びCi ではなく、PCi のx座標及びCi としている点である。PCi のy座標の情報を全く(1ビットも)暗号化コンテンツ鍵情報EKCに含めていないことが、実施の形態1の特徴である。
送受信部101は、コンテンツ暗号化部103から暗号化コンテンツECを受け取り、鍵情報生成部105から暗号化コンテンツ鍵情報EKCを受け取り、受け取った暗号化コンテンツECと暗号化コンテンツ鍵情報EKCとを、インターネット20を介して、コンテンツ視聴装置2001 、2002 、・・・、200n へ送信する。
一般的に、装置固有番号「i」が割り当てられたコンテンツ視聴装置200i については、暗号化コンテンツ鍵情報EKCの先頭から数えて(1+(i−1)×480)ビット目から、480ビット分を抽出すれば、PCi のx座標x(PCi )と、Ci とが得られる。
制御部107は、コンテンツ配信装置100を構成する各構成要素を制御する。
入力部108は、コンテンツ配信装置100の操作者から情報の入力、又は操作指示の入力を受け付け、受け付けた情報又は操作指示を制御部107へ出力する。
表示部109は、制御部107の制御により、各種の情報を表示する。
コンテンツ視聴装置2001 、2002 、・・・、200n は、同様の構成を有している。ここでは、代表して、コンテンツ視聴装置200i の構成について説明する。
コンテンツ視聴装置200i は、図4に示すように、送受信部201、秘密鍵格納部202、コンテンツ復号部203、鍵復号部204、再生部205、制御部206、入力部207、モニタ208、スピーカ209及びパラメタ記憶部210から構成されている。
(1)秘密鍵格納部202及びパラメタ記憶部210
秘密鍵格納部202は、160ビットの秘密鍵ksi を予め秘密に格納している。秘密鍵格納部202は、鍵復号部204によってのみアクセス可能である。
公開鍵KPi =ksi *G
パラメタ記憶部210は、ベース点G、定数a、定数b、素数pを予め記憶している。
(2)送受信部201
送受信部201は、インターネット20を介して、コンテンツ配信装置100から暗号化コンテンツEC及び暗号化コンテンツ鍵情報EKCを受信し、受信した暗号化コンテンツECをコンテンツ復号部203へ出力し、受信した暗号化コンテンツ鍵情報EKCを鍵復号部204へ出力する。
鍵復号部204は、図4に示すように、平方根計算部211、スカラ倍点計算部212及びコンテンツ鍵計算部213から構成されている。
(平方根計算部211)
平方根計算部211は、自身のコンテンツ視聴装置に割り当てられた装置固有番号iを予め記憶している。
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へ出力する。
以下において、p=3 mod 4の場合のGF(p)での平方根の計算方法を示す。その他の平方根の計算方法は、非特許文献2を参照。
なお、「d mod e」は、dをeで割ったときの余りを示す。
zの平方根は、
z^((p+1)/4)又は、−z^((p+1)/4)である。
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は、秘密鍵格納部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へ出力する。
コンテンツ復号部203は、送受信部201から暗号化コンテンツECを受け取り、鍵復号部204から復号コンテンツ鍵KC’を受け取る。次に、受け取った復号コンテンツ鍵KC’を用いて、受け取った暗号化コンテンツECに、共通鍵暗号方式の復号アルゴリズムDec1 を施して、復号コンテンツC’=Dec1 (KC’、EC)を生成する。
次に、コンテンツ復号部203は、生成した復号コンテンツC’を再生部205へ出力する。
(5)再生部205、制御部206、入力部207、モニタ208及びスピーカ209
再生部205は、コンテンツ復号部203から復号コンテンツC’を受け取り、受け取った復号コンテンツC’から映像データ及び音声データを生成し、生成した映像データ及び音声データをアナログの映像信号及び音声信号に変換し、アナログの映像信号及び音声信号を、それぞれ、モニタ208及びスピーカ209へ出力する。
制御部206は、コンテンツ視聴装置200i を構成する各構成要素を制御する。
また、入力部207は、コンテンツ視聴装置200i の利用者からの操作指示を受け取り、受け取った操作指示を制御部206へ出力する。
ここで、変換関数f及び逆変換関数f-1について説明する。
変換関数fは、定義体GF(p)のビットサイズより小さいビットサイズをもつ整数値から楕円曲線E1 上の点への変換を行う関数である。また、逆変換関数f-1は、楕円曲線E1上の点から定義体のビットサイズより小さいビットサイズをもつ整数値への変換を行う関数である。変換関数fは、単射であり、整数値をvとするとき、
f-1(f(v))=vが成り立ち、さらに楕円曲線上の点Pに対して、
f-1(−P)=f-1(P)を満たす関数であれば何でもよい。変換方法については、非特許文献4に詳しく説明されている。
(1)定義体のビットサイズlenpに対し、vのビットサイズをlenp−10、すなわち、整数値vのビットサイズが定義体より10ビット小さいとする。c=0とし、x_fv=c||vとし、((x_fv)3 +a×x_fv+b)がGF(p)上で平方剰余であるかを判定する。
(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)で平方剰余になるまで繰り返す。
P_fv=(x_fv,y_fv)とするとき、f-1(P_fv)を、x_fvの下位lenp−10ビットの数とする。この変換方法を用いた場合、
f-1(f(v))=vになることは容易に分かる。また、f-1(P_fv)は、x座標の下位を取るため、
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)が成り立つ理由について述べる。
1.8 コンテンツ配布システム10の動作
コンテンツ配布システム10の動作について説明する。
(1)コンテンツ配布システム10の主要な動作
コンテンツ配布システム10の主要な動作について、図5に示すフローチャートを用いて説明する。
コンテンツ配信装置100の鍵情報生成部105による暗号化コンテンツ鍵情報EKCの生成の動作について、図6に示すフローチャートを用いて説明する。なお、ここで説明する暗号化コンテンツ鍵情報EKCの生成の動作は、図5に示すフローチャートのステップS103の詳細である。
次に、鍵暗号化部111は、コンテンツ視聴装置200i に対する暗号化コンテンツ鍵EKCi を生成し(ステップS122)、カウンタ判定部114は、カウンタiがnであるか否かを判定する。i=nでないと判定する場合は(ステップS123)、カウンタ加算部113は、カウンタiに「1」を加算し(ステップS124)、ステップS122へ戻って処理を繰り返す。
(3)暗号化コンテンツ鍵EKCi の生成の動作
鍵情報生成部105の鍵暗号化部111による暗号化コンテンツ鍵EKCi の生成の動作について、図7に示すフローチャートを用いて説明する。なお、ここで説明する暗号化コンテンツ鍵EKCi の生成の動作は、図6に示すフローチャートのステップS122の詳細である。
次に、鍵暗号化部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)。
(4)復号コンテンツ鍵KC’の生成の動作
コンテンツ視聴装置200i の鍵復号部204による復号コンテンツ鍵KC’の生成の動作について、図8に示すフローチャートを用いて説明する。なお、ここで説明する復号コンテンツ鍵KC’の生成の動作は、図5に示すフローチャートのステップS105の詳細である。
次に、コンテンツ鍵計算部213は、P_KC’=Ci −ksi *PCi ’を計算し(ステップS165)、P_KC’を整数値に変換するために、復号コンテンツ鍵KC’=f-1(P_KC’)を計算する(ステップS166)。
1.9 実施の形態1の効果
コンテンツ配布システム10における暗号化コンテンツ鍵EKCi のデータ量について検討する。
一台のコンテンツ視聴装置200i に対する暗号化コンテンツ鍵EKCi は、一つの点Ci と一つの点PCi のx座標x(PCi )から構成される。Ci は160ビットのx,y座標からなるため320ビットであり、点PCi のx座標も同様に160ビットである。そのため、暗号化コンテンツ鍵EKCi は、320+160=480ビット(=60バイト)である。
コンテンツ視聴装置の台数n=1,000,000としたとき、暗号化コンテンツ鍵情報のデータ量は、60×1,000,000=60,000,000バイト=60Mバイトとなる。一方、従来技術によると、コンテンツ視聴装置の台数n=1,000,000としたとき、暗号化コンテンツ鍵情報のデータ量は、80×1,000,000=80,000,000バイト=80Mバイトとなる。
2.第2の実施の形態
本発明に係る別の実施の形態としてのコンテンツ配布システム10b(図示していない)について説明する。
コンテンツ配布システム10bは、コンテンツ配布システム10と同様に、1台のコンテンツ配信装置100b及びn台のコンテンツ視聴装置200b1 、200b2 、・・・、200bi 、・・・、200bn から構成されており、コンテンツ配信装置100b及びコンテンツ視聴装置200b1 、200b2 、・・・、200bn は、それぞれ、インターネット20を介して相互に接続されている。
コンテンツ配信装置100bは、コンテンツ配信装置100と同様の構成を有しており、送受信部101、コンテンツ鍵生成部102、コンテンツ暗号化部103、公開鍵格納部104、鍵情報生成部105b、コンテンツ記憶部106及び制御部107から構成され、また、制御部107は、入力部108及び表示部109に接続されている(図示していない)。
以下において、コンテンツ配信装置100との相違点を中心として説明する。
(1)鍵情報生成部105b
鍵情報生成部105bは、鍵情報生成部105と同様の構成を有しており、鍵暗号化部111b、カウンタ設定部112、カウンタ加算部113、カウンタ判定部114、出力部115、鍵制御部116及びパラメタ記憶部117、カウンタi118から構成されている(図示していない)。
鍵暗号化部111bは、コンテンツ視聴装置200bi に対する暗号化コンテンツ鍵を以下のように生成する。
(b)パラメタ記憶部117からベース点G、定数a及び素数pを読み出し、生成した乱数ki と読み出したベース点G、定数a及び素数pとを用いて、
PCi =ki *Gを計算する。
(c)公開鍵格納部104から公開鍵KPi を読み出し、生成した乱数ki、読み出した公開鍵KPi 、読み出した定数a及び素数pを用いて、
ki *KPi を計算する。
si =KC xor x(ki *KPi )を計算する。ここで、x(ki*KPi )は、ki *KPi のx座標であり、xorは排他的論理和を示す演算子である。また、si は、スカラ値である。
(2)出力部115
出力部115は、暗号化コンテンツ鍵EKC1 、EKC2 、EKC3 、...、EKCn を暗号化コンテンツ鍵情報EKCとして送受信部101へ出力する。
送受信部101は、コンテンツ暗号化部103から暗号化コンテンツECを受け取り、鍵情報生成部105bから暗号化コンテンツ鍵情報EKCを受け取り、受け取った暗号化コンテンツECと暗号化コンテンツ鍵情報EKCとを、インターネット20を介して、コンテンツ視聴装置200b1 、200b2 、・・・、200bn へ送信する。
この図に示すように、送信情報321は、暗号化コンテンツEC322と暗号化コンテンツ鍵情報EKC323から構成されている。暗号化コンテンツ鍵情報EKC323は、n個の暗号化コンテンツ鍵331、332、・・・、333を含む。i番目の暗号化コンテンツ鍵は、PCi のx座標x(PCi )と、si とを含む。
第1の実施の形態と異なる点は、点PCi のx座標PCi と点Ci とを暗号文とするのではなく、点PCiのx座標とスカラsi とを暗号文としている点である。この第2の実施の形態においても、第1の実施の形態と同様に、PCi のy座標の情報を1ビットも暗号化コンテンツ鍵情報EKCに含めていない。
コンテンツ視聴装置200b1 、200b2 、・・・、200bn は、それぞれ、コンテンツ視聴装置2001 、2002 、・・・、200n と同様の構成を有している。
ここでは、代表して、コンテンツ視聴装置200bi の構成について、コンテンツ視聴装置200i との相違点を中心として説明する。
つまり、コンテンツ視聴装置200bi は、鍵復号部204に代えて、鍵復号部204bを備えている点において、コンテンツ視聴装置200i と異なっている。
鍵復号部204bは、平方根計算部211、スカラ倍点計算部212及びコンテンツ鍵計算部213bから構成されている(図示していない)。
つまり、鍵復号部204bは、コンテンツ鍵計算部213に代えて、コンテンツ鍵計算部213bを備えている点において、鍵復号部204と異なっている。
スカラ倍点計算部212は、上述したように、秘密鍵格納部202に格納されている秘密鍵ksi を用いて、PCi ’のksi 倍の点ksi *PCi ’を計算する。
si xor x(ksi *PCi ’)を計算し、この結果を復号コンテンツ鍵KC’とする。
復号コンテンツ鍵KC’=si xor x(ksi *PCi ’)
2.3 コンテンツ配布システム10bの動作
コンテンツ配布システム10bの動作について説明する。
コンテンツ配布システム10bの主要な動作は、図5に示すコンテンツ配布システム10の主要な動作と同一であるので説明を省略する。
(1)暗号化コンテンツ鍵EKCi の生成の動作
鍵情報生成部105bの鍵暗号化部111bによる暗号化コンテンツ鍵EKCi の生成の動作について、図10に示すフローチャートを用いて説明する。なお、ここで説明する暗号化コンテンツ鍵EKCi の生成の動作は、図6に示すフローチャートのステップS122の詳細である。
コンテンツ視聴装置200bi の鍵復号部204bによる復号コンテンツ鍵KC’の生成の動作について、図11に示すフローチャートを用いて説明する。なお、ここで説明する復号コンテンツ鍵KC’の生成の動作は、図5に示すフローチャートのステップS105の詳細である。
次に、スカラ倍点計算部212は、PCi ’のksi 倍の点ksi *PCi ’を計算する(ステップS222)。
こうして生成された復号コンテンツ鍵KC’はコンテンツ鍵KCとみなすことができる。
ここで、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 )が成り立つ理由について述べる。
以上より、x(ksi *PCi ’)=x(ksi *KPi )が成り立ち、コンテンツ鍵を正しく復号化できる。
コンテンツ配布システム10bにおける暗号化コンテンツ鍵EKCi のデータ量について検討する。
簡単のため、楕円曲線E1 の定義体のビット数を、現在、楕円曲線暗号として推奨されている160とする。
従来技術による暗号化コンテンツ鍵情報のデータ量は、80バイトであるため、コンテンツ配布システム10bでは、従来技術の1/2に暗号化コンテンツ鍵のデータ量を削減できている。
3.第3の実施の形態
本発明に係る別の実施の形態としてのコンテンツ配布システム10c(図示していない)について説明する。
コンテンツ配布システム10cは、コンテンツ配布システム10と同様に、1台のコンテンツ配信装置100c及びn台のコンテンツ視聴装置200c1 、200c2 、・・・、200ci 、・・・、200cn から構成されており、コンテンツ配信装置100c及びコンテンツ視聴装置200c1 、200c2 、・・・、200cn は、それぞれ、インターネット20を介して相互に接続されている。
コンテンツ配信装置100cは、コンテンツ配信装置100と同様の構成を有しており、送受信部101、コンテンツ鍵生成部102、コンテンツ暗号化部103、公開鍵格納部104、鍵情報生成部105c、コンテンツ記憶部106及び制御部107から構成され、また、制御部107は、入力部108及び表示部109に接続されている(図示していない)。
以下において、コンテンツ配信装置100との相違点を中心として説明する。
(1)鍵情報生成部105c
鍵情報生成部105cは、鍵情報生成部105と同様の構成を有しており、図12に示すように、カウンタ設定部112、カウンタ加算部113、カウンタ判定部114、出力部115、鍵制御部116、パラメタ記憶部117、カウンタi118及び共通暗号部119c及び個別暗号部120cから構成されている。
(カウンタ設定部112)
カウンタ設定部112は、カウンタiを「1」に設定する。
共通暗号部119cは、160ビットの乱数kを生成する。また、パラメタ記憶部117からベース点G、定数a及び素数pを読み出し、生成した乱数kと読み出したベース点G、定数a及び素数pとを用いて、共通暗号文PC=k*Gを計算する。次に、計算した共通暗号文PCを出力部115へ出力する。また、生成した乱数kを個別暗号部120cへ出力する。
個別暗号部120cは、コンテンツ視聴装置200ci に対する個別暗号文si を以下のように生成する。
(a)共通暗号部119cから乱数kを受け取る。
(b)公開鍵格納部104から公開鍵KPi を読み出し、パラメタ記憶部117から定数a及び素数pを読み出し、受け取った乱数k、読み出した公開鍵KPi 、読み出した定数a及び素数pを用いて、k*KPiを計算する。
個別暗号文si =KC xor x(k*KPi )を計算する。
ここで、x(k*KPi )は、k*KPi のx座標である。
次に、生成した個別暗号文si を出力部115へ出力する。
カウンタ判定部114は、カウンタiがnであるか否かを判定する。
カウンタ判定部114により、カウンタi≠nであると判定される場合に、カウンタ加算部113は、カウンタiに1を加算する。次に、上記を繰り返す。
カウンタ判定部114により、カウンタi=nであると判定される場合に、出力部115は、共通暗号文PCと、個別暗号文s1 、s2 、s3、....、snとを、暗号化コンテンツ鍵情報EKCとして、送受信部101へ出力する。
(2)送受信部101
送受信部101は、コンテンツ暗号化部103から暗号化コンテンツECを受け取り、鍵情報生成部105cから暗号化コンテンツ鍵情報EKCを受け取り、受け取った暗号化コンテンツECと暗号化コンテンツ鍵情報EKCとを、インターネット20を介して、コンテンツ視聴装置200c1 、200c2 、・・・、200cn へ送信する。
この図に示すように、送信情報341は、暗号化コンテンツEC342と暗号化コンテンツ鍵情報EKC343から構成されている。暗号化コンテンツ鍵情報EKC343は、共通暗号文PC344とn個の個別暗号文とを含む。i番目の個別暗号文si は、KC xor x(k*KPi )により算出されたものである。
コンテンツ視聴装置200c1 、200c2 、・・・、200cn は、それぞれ、コンテンツ視聴装置2001 、2002 、・・・、200n と同様の構成を有している。
ここでは、代表して、コンテンツ視聴装置200ci の構成について、コンテンツ視聴装置200i との相違点を中心として説明する。
つまり、コンテンツ視聴装置200ci は、鍵復号部204に代えて、鍵復号部204cを備えている点において、コンテンツ視聴装置200i と異なっている。
送受信部201は、コンテンツ配信装置100cから、インターネット20を介して、暗号化コンテンツECと暗号化コンテンツ鍵情報EKCとを受信し、受信した暗号化コンテンツECをコンテンツ復号部203へ出力し、受信した暗号化コンテンツ鍵情報EKCを鍵復号部204cへ出力する。
鍵復号部204cは、図14に示すように、スカラ倍点計算部212c及びコンテンツ鍵計算部213cから構成されている。
スカラ倍点計算部212cは、秘密鍵格納部202から秘密鍵ksi を読み出し、送受信部201から受け取った暗号化コンテンツ鍵情報EKCから共通暗号文PCを抽出し、パラメタ記憶部210から定数a及び素数pを読み出し、読み出した定数a、素数p及び読み出した秘密鍵ksi を用いて、抽出した共通暗号文PCのksi倍の点ksi*PCを計算する。次に、計算した点ksi*PCをコンテンツ鍵計算部213cへ出力する。
si xor x(ksi*PC)を計算し、この結果を復号コンテンツ鍵KC’とする。
次に、計算した復号コンテンツ鍵KC’をコンテンツ復号部203へ出力する。
3.3 コンテンツ配布システム10cの動作
コンテンツ配布システム10cの動作について説明する。
なお、コンテンツ配布システム10cの動作は、コンテンツ配布システム10の動作と類似しているので、ここでは、コンテンツ配布システム10の動作との相違点を中心として説明する。
(1)暗号化コンテンツ鍵情報EKCの生成の動作
コンテンツ配信装置100cの鍵情報生成部105cによる暗号化コンテンツ鍵情報EKCの生成の動作について、図15に示すフローチャートを用いて説明する。ここで説明する暗号化コンテンツ鍵情報EKCの生成の動作は、図5に示すフローチャートのステップS103の詳細である。
次に、共通暗号部119cは、160ビットの乱数kを生成し、共通暗号文PC=k*Gを計算し、計算した共通暗号文PCを出力部115へ出力し、生成した乱数kを個別暗号部120cへ出力する(ステップS302)。
次に、個別暗号部120cは、コンテンツ視聴装置200ci に対する個別暗号文si を生成し、生成した個別暗号文si を出力部115へ出力する(ステップS303)。
カウンタ判定部114により、カウンタi=nであると判定される場合に(ステップS304)、出力部115は、共通暗号文PCと、個別暗号文s1 、s2、s3 、...、sn とを、暗号化コンテンツ鍵情報EKCとして、送受信部101へ出力する(ステップS306)。
コンテンツ視聴装置200ci の鍵復号部204cによる復号コンテンツ鍵KC’の生成の動作について、図16に示すフローチャートを用いて説明する。なお、ここで説明する復号コンテンツ鍵KC’の生成の動作は、図5に示すフローチャートのステップS105の詳細である。
次に、コンテンツ鍵計算部213cは、
復号コンテンツ鍵KC’=si xor x(ksi *PC)を計算し、計算した復号コンテンツ鍵KC’をコンテンツ復号部203へ出力する(ステップS322)。
コンテンツ配布システム10cにおける暗号化コンテンツ鍵情報EKCのデータ量について検討する。
簡単のため、楕円曲線E1 の定義体のビット数を現在、楕円曲線暗号として推奨されている160とする。
したがって、n=1,000,000としたとき、暗号化コンテンツ鍵情報のデータ量は、40+20×1,000,000=20,000,040バイト≒20Mバイトとなる。
3.5 実施の形態3のまとめ
以上説明したように、本発明は、平文を秘密に伝達する情報伝達システムであって、1台の暗号装置と複数台の復号装置とから構成される。
・記憶部、
平文を記憶している。
・共通演算部、
前記複数の復号装置に共通の共通暗号文を生成する。
・個別演算部、
前記平文に基づいて、各復号装置に個別の個別暗号文を生成する。
・出力部、
生成された前記共通暗号文と、生成された複数の個別暗号文とを出力する。
・取得部、
前記共通暗号文及び前記複数の個別暗号文を取得する。
・特定部、
前記複数の個別暗号文から当該復号装置に割り当てられた個別暗号文を抽出する。
・復号部、
取得した前記共通暗号文及びに抽出した前記個別暗号文を用いて、復号文を生成する。
群上のベース元をGとする。各復号装置の群上の公開鍵は、ベース元と、当該復号装置の秘密鍵とに、前記群上のべき演算を施して算出される。
・記憶部、
平文を記憶している。
・乱数生成部、
スカラ値である乱数を生成する。
・共通演算部、
群上のベース元と前記乱数とに、前記べき演算を施して、共通暗号元を算出する。
・個別演算部、
・出力部、
算出された前記共通暗号元と、算出された複数の個別暗号文とを出力する。
・公開鍵演算部、
各復号装置に割り当てられた群上の公開鍵と前記乱数とに、前記べき演算を施して、公開鍵演算元を算出する。
・排他的論理和部、
前記平文と前記公開鍵演算元とに排他的論理和を施して、当該復号装置の個別暗号文を算出する。
・取得部、
前記共通暗号元及び前記複数の個別暗号文を取得する。
・特定部、
前記複数の個別暗号文から当該復号装置に割り当てられた個別暗号文を抽出する。
・秘密鍵演算部、
取得した前記共通暗号元と、当該復号装置の秘密鍵とに、前記べき演算を施して、前記群上の秘密鍵復号元を算出する。
・排他的論理和部、
抽出した前記個別暗号文と、算出した秘密鍵復号元とに、排他的論理和を施して、復号文を生成する。
有限体GF(p)上の楕円曲線をy2 =x3 +a×x+bとし、pは素数である。楕円曲線上のベース点をGとする。各復号装置の楕円曲線上の公開鍵点は、ベース点に当該復号装置の秘密鍵を乗じて算出される。
・記憶部、
平文を記憶している。
・乱数生成部、
スカラ値である乱数を生成する。
・共通演算部、
楕円曲線上のベース点に、前記乱数を乗じて共通暗号点を算出する。
・個別演算部、
・出力部、
算出された前記共通暗号点と、算出された複数の個別暗号文とを出力する。
・公開鍵演算部、
各復号装置に割り当てられた楕円曲線上の公開鍵点について、当該公開鍵点に、前記乱数を乗じて公開鍵乗算点を算出する。
・排他的論理和部、
前記公開鍵乗算点のx座標値を抽出し、前記平文と抽出した前記x座標値とに排他的論理和を施して、当該復号装置の個別暗号文を算出する。
・取得部、
前記共通暗号点及び前記複数の個別暗号文を取得する。
・特定部、
前記複数の個別暗号文から当該復号装置に割り当てられた個別暗号文を抽出する。
・秘密鍵演算部、
取得した前記共通暗号点に、当該復号装置の秘密鍵を乗じて、楕円曲線上の秘密鍵復号点を算出する。
・排他的論理和部、
算出した秘密鍵復号点のx座標値を抽出し、抽出した前記個別暗号文と、抽出した前記x座標値とに排他的論理和を施して、復号文を生成する。
これらの構成によると、暗号文の一部を各復号装置で共通にすることにより、伝達される暗号文のデータ量を削減することができ、その実用的価値は大きい。
4.まとめ
以上説明したように、本発明は、コンテンツ配信装置と、通信路と、複数のコンテンツ視聴装置を備え、前記コンテンツ配信装置から前記通信路を介してコンテンツを各コンテンツ視聴装置へ配信するコンテンツ配布システムである。
また、本発明は、コンテンツ配信装置と、通信路と、複数のコンテンツ視聴装置を備え、前記コンテンツ配信装置から前記通信路を介してコンテンツを各コンテンツ視聴装置へ配信するコンテンツ配布システムである。
ここで、前記共通暗号文及び前記個別暗号文は、楕円曲線上の点であるとしてもよい。
ここで、前記共通暗号文は、楕円曲線上の点であり、前記個別暗号文は、前記楕円曲線を定義する定義体に属する元であるとしてもよい。
また、本発明は、コンテンツ配信装置と、通信路と、複数のコンテンツ視聴装置を備え、前記コンテンツ配信装置から前記通信路を介してコンテンツを各コンテンツ視聴装置へ配信するコンテンツ配布システムにおけるコンテンツ配信装置であって、前記コンテンツ視聴装置へデータを送信する送信部と、コンテンツ鍵を生成するコンテンツ鍵生成部と、前記コンテンツ鍵を用いて前記コンテンツを暗号化して、暗号化コンテンツを生成する暗号化コンテンツ生成部と、前記コンテンツ視聴装置の公開鍵を格納する公開鍵格納部と、前記コンテンツ鍵を前記公開鍵で暗号化して暗号化コンテンツ鍵情報を生成する暗号化コンテンツ鍵情報生成部とを備え、前記暗号化コンテンツ鍵情報生成部は、楕円曲線暗号を使用し、楕円曲線暗号の暗号文に含まれる点に対し、前記点のx座標と前記暗号文の前記点以外の部分とを暗号化コンテンツ鍵情報として含める。
5.その他の変形例
なお、本発明を上記の実施の形態に基づいて説明してきたが、本発明は、上記の実施の形態に限定されないのはもちろんである。以下のような場合も本発明に含まれる。
具体的には、鍵暗号化部111は、コンテンツ視聴装置200i に対する暗号化コンテンツ鍵を以下のように生成するとしてもよい。
(b)パラメタ記憶部117からベース点G、定数a及び素数pを読み出し、生成した乱数ki と読み出したベース点G、定数a及び素数pとを用いて、
ki *Gを計算する。なお、楕円曲線上の楕円べき倍演算については、上述した通りである。
(d)コンテンツ鍵生成部102からコンテンツ鍵KCを受け取り、受け取ったKCに変換関数fを施して、コンテンツ鍵KCを楕円曲線E1 上の点P_KC=f(KC)に変換する。なお、変換関数fについては、上述した通りである。
(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とする。
このとき、コンテンツ視聴装置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)を生成する。
次に、コンテンツ鍵計算部213は、P_KC’=Ci ’−ksi *PCi を計算し、P_KC’を整数値に変換するために、復号コンテンツ鍵KC’
=f-1(P_KC’)を計算する。
(2)第3の実施の形態では、個別暗号部120cは、スカラ値である
個別暗号文si =KC xor x(k*KPi )を計算するとしているが、スカラ値である個別暗号文si の代わりに、第1の実施の形態と同様にして、楕円曲線E1 上の点である個別暗号文Ci を計算するとしてもよい。
ここで、楕円曲線E2 の定義式を
y2 +xy=x3 +a×x2 +bとし、楕円曲線上の点P(x、y)の負の点を、−P(x、x+y)とする。また、GF(2m )の生成多項式をf(x)とし、その根をαとする。
鍵暗号化部111は、コンテンツ視聴装置200i に対する暗号化コンテンツ鍵を以下のように生成する。
(a)160ビットの乱数ki を生成する。
PCi =ki *Gを計算する。
(c)公開鍵格納部104から公開鍵KPi を読み出し、生成した乱数ki、読み出した公開鍵KPi 、読み出した定数a及び素数pを用いて、ki *KPi を計算する。
(e)P_KC+ki *KPi を計算する。
(f)PCi のx座標xi のαによる多項式において、係数が0でなく、1である項のうち、αの最も小さい次数sを取得する。
(g)PCi のy座標のyi のαによる多項式の項αs の係数が、xi のαによる多項式の項αs の係数と等しい場合、
Ci =P_KC+ki *KPi とし、
PCi のy座標のyi のαによる多項式の項αs の係数が、xi のαによる多項式の項αs の係数と等しくない場合、
Ci =−(P_KC+ki *KPi )とする。
出力部115は、暗号化コンテンツ鍵EKC1 、EKC2 、EKC3 、...、EKCn を暗号化コンテンツ鍵情報EKCとし、暗号化コンテンツ鍵情報EKCを送受信部101へ出力する。
コンテンツ視聴装置200i は、コンテンツ配信装置100から、インターネット20を介して、暗号化コンテンツECと暗号化コンテンツ鍵情報EKCとを受信する。
鍵復号部204は、送受信部201から暗号化コンテンツ鍵情報EKCを受け取り、装置固有番号iを読み出し、読み出した装置固有番号iを用いて、上述したように、受け取った暗号化コンテンツ鍵情報EKCから自身の装置に対応するコンテンツ鍵EKCi を特定し、特定したコンテンツ鍵EKCi を暗号化コンテンツ鍵情報EKCから抽出し、さらに、抽出したコンテンツ鍵EKCi から点PCi のx座標xi と、点Ci とを暗号化コンテンツ鍵EKCi とを抽出する。
P_KC’=Ci −ksi *PCi ’を計算し、
P_KC’を整数値に変換するために、復号コンテンツ鍵KC’=f-1(P_KC’)を算出する。
なお、上記の変形例において、次に示すようにしてもよい。
上記において、sを係数が0でなく、1である最も小さい次数であるとしているが、係数が1である最も大きい次数であるとしてもよい。
(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)とする。
コンテンツ視聴装置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へ出力する。
(a)共通暗号部119cから乱数kを受け取る。
(b)公開鍵kpi を読み出し、素数pを読み出し、受け取った乱数k、読み出した公開鍵kpi 、読み出した素数pを用いて、
kpik mod pを計算する。
個別暗号文ci =KC xor (kpik mod p)を計算する。
こうしてコンテンツ視聴装置200c1 、200c2 、・・・、200cn について、個別暗号文c1 、c2 、・・・、cn が生成される。
コンテンツ視聴装置200ci は、コンテンツ配信装置100cから、共通暗号文pc及び個別暗号文c1 、c2 、・・・、cn から構成される暗号化コンテンツ鍵情報EKCを受信する。
スカラ倍点計算部212cは、秘密鍵ksi を読み出し、送受信部201から受け取った暗号化コンテンツ鍵情報EKCから共通暗号文pcを抽出し、素数pを読み出し、読み出した素数p及び読み出した秘密鍵ksi を用いて、
pcksimod pを計算する。次に、計算したpcksi mod pをコンテンツ鍵計算部213cへ出力する。
ci xor (pcksi mod p)を計算し、この結果を復号コンテンツ鍵KC’とする。
次に、計算した復号コンテンツ鍵KC’をコンテンツ復号部203へ出力する。
以上説明したように、本発明は、有限体上の離散対数問題を安全性の根拠として、平文を秘密に伝達する情報伝達システムであって、1台の暗号装置と複数台の復号装置とから構成される。
各復号装置の公開鍵kpは、当該復号装置の秘密鍵ksを用いて次式により算出される。
公開鍵kp=gks mod p
前記暗号装置は、以下を含む。
・記憶部、
平文を記憶している。
・乱数生成部、
乱数kを生成する。
・共通演算部、
有限体上のベース元gと前記乱数kを用いて、次式により共通暗号元pcを算出する。
・個別演算部、
・出力部、
算出された前記共通暗号元と、算出された複数の個別暗号元とを出力する。
個別演算部は、以下を含む。
各復号装置の公開鍵kpと前記乱数kを用いて、次式により公開鍵暗号元を算出する。
公開鍵暗号元=kpk mod p
・排他的論理和部、
前記平文と算出した前記公開鍵暗号元とに排他的論理和を施して、当該復号装置の個別暗号元を算出する。
・取得部、
前記共通暗号元及び前記複数の個別暗号元を取得する。
・特定部、
前記複数の個別暗号元から当該復号装置に割り当てられた個別暗号元を抽出する。
・秘密鍵演算部、
取得した前記共通暗号元pcと、当該復号装置の秘密鍵ksとを用いて、次式により、有限体上の秘密鍵復号元を算出する。
・排他的論理和部、
抽出した個別暗号元と、算出した秘密鍵復号元とに排他的論理和を施して、復号文を生成する。
(5)第1〜第3の実施の形態を任意の組合せにより組み合わせてもよい。
コンテンツをその種類によりグループに分け、例えば、コンテンツの著作者毎にグループに分け、また製作業者毎にグループに分け、コンテンツのジャンル毎にグループに分け、各グループに対して、1組の秘密鍵及び公開鍵を割り当てるとしてもよい。
また、利用者をグループに分け、各グループに対して、1組の秘密鍵及び公開鍵を割り当てるとしてもよい。
(7)第1〜第3の実施の形態では、暗号化コンテンツと暗号化コンテンツ鍵情報をコンテンツをインターネットを介して配信するとしているが、コンテンツ配信装置は、暗号化コンテンツ及び暗号化コンテンツ鍵情報を、DVD、メモリカードなどの記録媒体に記録し、これらの記録媒体が配布されるとしてもよい。各コンテンツ視聴装置は、前記記録媒体から暗号化コンテンツ及び暗号化コンテンツ鍵情報を読み出し、復号コンテンツを生成する。
(8)上記の各実施の形態及び変形例では、コンテンツ鍵の暗号化において、楕円曲線上のElGamal暗号又は有限体上のElGamal暗号を用いているが、これには限定されない。コンテンツの暗号化において、楕円曲線上のElGamal暗号又は有限体上のElGamal暗号を用いるとしてもよい。
本発明は、通信内容を盗聴者に漏らさないように、受信者に安全に伝えるあらゆる種類の秘密通信において、適用される。例えば、電子メールの送受信システム、一般の商取引における秘密通信システム、特許出願書類の出願システム、金融機関における決済システムなどにおいて適用される。
また、本発明は、前記コンピュータプログラム又は前記デジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD―ROM、MO、DVD、DVD−ROM、DVD−RAM、BD(Blu−ray Disc)、半導体メモリなど、に記録したものとしてもよい。また、これらの記録媒体に記録されている前記コンピュータプログラム又は前記デジタル信号であるとしてもよい。
また、本発明は、マイクロプロセッサとメモリとを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセッサは、前記コンピュータプログラムに従って動作するとしてもよい。
(11)上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
(12)以上説明したように、本発明によると、暗号文中の楕円曲線上の点のy座標を暗号化コンテンツ鍵に含めないことや、暗号文の一部を各コンテンツ視聴装置で共通にすることにより、暗号化コンテンツ鍵情報のデータ量を削減できる。
Claims (21)
- 楕円曲線上の離散対数問題を安全性の根拠として、平文を秘密に伝達する情報伝達システムであって、暗号装置と復号装置とから構成され、
前記暗号装置は、
平文を記憶している記憶手段と、
前記平文について、楕円曲線上の暗号演算を行って楕円曲線上の暗号点のx座標値を生成し、生成した前記x座標値を含む暗号文を生成する暗号化手段と、
生成した暗号文を出力する出力手段とを含み、
前記復号装置は、
前記暗号文を取得する取得手段と、
取得した前記暗号文に含まれる前記x座標値を持つ楕円曲線上の前記暗号点のy座標値を算出し、前記x座標値と前記y座標値からなる楕円曲線上の暗号点と、前記暗号文の他の部分とを用いて、楕円曲線上の復号演算を行って、復号文を生成する復号手段とを含む
ことを特徴とする情報伝達システム。 - 楕円曲線上の離散対数問題を安全性の根拠として、平文を秘密に出力する暗号装置であって、
平文を記憶している記憶手段と、
前記平文について、楕円曲線上の暗号演算を行って楕円曲線上の暗号点のx座標値を生成し、生成した前記x座標値を含む暗号文を生成する暗号化手段と、
生成した暗号文を出力する出力手段と
を備えることを特徴とする暗号装置。 - 前記記憶手段は、スカラ値である前記平文を記憶しており、
前記暗号化手段は、
スカラ値である乱数を生成する乱数生成部と、
楕円曲線上のベース点に、前記乱数を乗じてベース乗算点を算出する第1演算部と、
楕円曲線上の公開鍵点に、前記乱数を乗じて公開鍵乗算点を算出する第2演算部と、
前記平文に、楕円曲線上の点への変換関数を施して、楕円曲線上の平文点を生成する変換部と、
前記平文点と前記公開鍵乗算点との加算を用いて、平文加算点を算出する第3演算部と、
前記ベース乗算点からx座標値を抽出し、抽出したx座標値及び前記平文加算点から構成される前記暗号文を生成する生成部と
を含むことを特徴とする請求項2に記載の暗号装置。 - 前記第3演算部は、所定の条件を満たすか否かを判断し、満たすと判断する場合に、前記平文点に前記公開鍵乗算点を加算して前記平文加算点を算出し、満たさないと判断される場合に、前記平文点に前記公開鍵乗算点を加算し、得られた値の負の値を前記平文加算点とする
ことを特徴とする請求項3に記載の暗号装置。 - 有限体GF(p)上の楕円曲線をy2 =x3 +a×x+bとし、pは素数であり、
前記第3演算部は、前記ベース乗算点のy座標値が、(p−1)/2より小さいか否かを判断し、小さいと判断される場合に、前記平文点に前記公開鍵乗算点を加算して前記平文加算点を算出し、小さくないと判断される場合に、前記平文点に前記公開鍵乗算点を加算し、得られた値の負の値を前記平文加算点とする
ことを特徴とする請求項4に記載の暗号装置。 - 有限体GF(2m )上の楕円曲線をy2 +xy=x3 +ax2 +bとし、mは自然数であり、GF(2m )の生成多項式をf(x)とし、その根をαとし、
前記第3演算部は、前記ベース乗算点のx座標値のαの生成多項式の係数が0でない項のうち、最も小さい次数をsとし、
前記ベース乗算点のy座標値のαの生成多項式の項αs の係数が、x座標値のαの生成多項式の項αs の係数と等しいか否かを判断し、等しいと判断される場合、前記平文点に前記公開鍵乗算点を加算して前記平文加算点を算出し、等しくないと判断される場合に、前記平文点に前記公開鍵乗算点を加算し、得られた値の負の値を前記平文加算点とする
ことを特徴とする請求項4に記載の暗号装置。 - 有限体GF(p)上の楕円曲線をy2 =x3 +a×x+bとし、pは素数であり、
前記記憶手段は、スカラ値である前記平文を記憶しており、
前記暗号化手段は、
スカラ値である乱数を生成する乱数生成部と、
楕円曲線上の公開鍵点に、前記乱数を乗じて公開鍵乗算点を算出する第2演算部と、
前記平文に、楕円曲線上の点への変換関数を施して、楕円曲線上の平文点を生成する変換部と、
前記平文点と前記公開鍵乗算点とを加算して、平文加算点を算出する第3演算部と、
前記平文加算点のy座標値が、(p−1)/2より小さいか否かを判断し、小さいと判断される場合に、楕円曲線上のベース点に、前記乱数を乗じてベース乗算点を算出し、小さくないと判断される場合に、楕円曲線上のベース点に、前記乱数の負の値を乗じてベース乗算点を算出する第1演算部と、
前記平文加算点からx座標値を抽出し、抽出したx座標値及び前記ベース乗算点から構成される前記暗号文を生成する生成部と
を含むことを特徴とする請求項2に記載の暗号装置。 - 有限体GF(p)上の楕円曲線をy2 =x3 +a×x+bとし、pは素数であり、
前記記憶手段は、スカラ値である前記平文を記憶しており、
前記暗号化手段は、
スカラ値である乱数を生成する乱数生成部と、
楕円曲線上のベース点に、前記乱数を乗じてベース乗算点を算出する第1演算部と、
楕円曲線上の公開鍵点に、前記乱数を乗じて公開鍵乗算点を算出する第2演算部と、
前記平文と、前記公開鍵乗算点のx座標値とに排他的論理和を施して、前記楕円曲線上の排他論理和値を生成する第3演算部と、
第3演算部により生成された前記排他論理和値と、前記暗号点としての前記ベース乗算点のx座標値とから構成される前記暗号文を生成する生成部と
を含むことを特徴とする請求項2に記載の暗号装置。 - 前記記憶手段に記憶されている前記平文は、コンテンツ鍵であり、
前記暗号化手段は、前記コンテンツ鍵を暗号化して前記暗号文を生成し、
前記暗号装置は、さらに、
前記コンテンツ鍵を用いて、コンテンツに暗号化を施して暗号化コンテンツを生成するコンテンツ暗号手段と、
生成した前記暗号化コンテンツを出力するコンテンツ出力手段と
を含むことを特徴とする請求項2に記載の暗号装置。 - 楕円曲線上の離散対数問題を安全性の根拠として、伝達された暗号文を復号する復号装置であって、
前記暗号文は、平文について、楕円曲線上の暗号演算を行って生成された楕円曲線上の暗号点のx座標値を含み、
前記復号装置は、
前記暗号文を取得する取得手段と、
取得した前記暗号文に含まれる前記x座標を持つ楕円曲線上の前記暗号点のy座標値を算出し、前記x座標値と前記y座標値からなる楕円曲線上の前記暗号点と、前記暗号文の他の部分とを用いて、楕円曲線上の復号演算を行って、復号文を生成する復号手段と
を備えることを特徴とする復号装置。 - 有限体GF(p)上の楕円曲線をy2 =x3 +a×x+bとし、pは素数であり、
前記取得手段は、請求項5の暗号装置から、前記暗号文を取得し、
前記復号手段は、
楕円曲線の定義式y2 =x3 +a×x+bに、取得した前記暗号文に含まれる前記x座標値を代入し、その2個の平方根を算出し、算出された2個の平方根のうち、(p−1)/2より小さい方を選択し、前記暗号文に含まれる前記x座標値と選択された前記平方根とからなる楕円曲線上の第1復号点を生成する平方根計算部と、
生成された第1復号点に、スカラ値である秘密鍵を乗じて、秘密鍵復号点を算出し、前記公開鍵点は、前記ベース点に前記秘密鍵を乗じて得られた楕円曲線上の点であるスカラ倍点計算部と、
取得した前記暗号文に含まれる平文加算点から前記秘密鍵復号点を減じ、得られた値にスカラ値への逆変換関数を施して、スカラ値である復号文を生成する復号文計算部と
を含むことを特徴とする請求項10に記載の復号装置。 - 有限体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に記載の復号装置。 - 有限体GF(p)上の楕円曲線をy2 =x3 +a×x+bとし、pは素数であり、
前記取得手段は、請求項7の暗号装置から、前記暗号文を取得し、
前記復号手段は、
楕円曲線の定義式y2 =x3 +a×x+bに、取得した前記暗号文に含まれる前記x座標値を代入し、その2個の平方根を算出し、算出された2個の平方根のうち(p−1)/2より小さい方を選択し、前記暗号文に含まれる前記x座標値と選択された前記平方根とからなる楕円曲線上の第2復号点を生成する平方根計算部と、
取得した前記暗号文に含まれるベース乗算点に、スカラ値である秘密鍵を乗じて、秘密鍵復号点を算出し、前記公開鍵点は、前記ベース点に前記秘密鍵を乗じて得られた楕円曲線上の点であるスカラ倍点計算部と、
生成した第2復号点から前記秘密鍵復号点を減じ、得られた値にスカラ値への逆変換関数を施して、スカラ値である復号文を生成する復号文計算部と
を含むことを特徴とする請求項10に記載の復号装置。 - 前記取得手段は、請求項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に記載の復号装置。 - 前記取得手段は、請求項9の暗号装置から、前記暗号文を取得し、さらに、暗号化コンテンツを取得し、
前記復号手段は、前記暗号文を復号して、前記復号文として、復号コンテンツ鍵を生成し、
前記復号装置は、さらに、
前記復号コンテンツ鍵を用いて、取得した前記暗号化コンテンツに復号を施して復号コンテンツを生成するコンテンツ復号手段と、
生成した復号コンテンツを再生するコンテンツ再生手段と
を含むことを特徴とする請求項10に記載の復号装置。 - 楕円曲線上の離散対数問題を安全性の根拠として、平文を秘密に出力する暗号装置で用いられる暗号方法であって、
前記平文について、楕円曲線上の暗号演算を行って楕円曲線上の暗号点のx座標値を生成し、生成した前記x座標値を含む暗号文を生成する暗号化ステップと、
生成した暗号文を出力する出力ステップと
を含むことを特徴とする暗号方法。 - 楕円曲線上の離散対数問題を安全性の根拠として、平文を秘密に出力する暗号装置で用いられる暗号プログラムであって、
前記平文について、楕円曲線上の暗号演算を行って楕円曲線上の暗号点のx座標値を生成し、生成した前記x座標値を含む暗号文を生成する暗号化ステップと、
生成した暗号文を出力する出力ステップと
を含むことを特徴とする暗号プログラム。 - 前記暗号プログラムは、コンピュータ読み取り可能な記録媒体に記録されている
を含むことを特徴とする請求項17に記載の暗号プログラム。 - 楕円曲線上の離散対数問題を安全性の根拠として、伝達された暗号文を復号する復号装置で用いられる復号方法であって、
前記暗号文は、平文について、楕円曲線上の暗号演算を行って生成された楕円曲線上の暗号点のx座標値を含み、
前記復号方法は、
前記暗号文を取得する取得ステップと、
取得した前記暗号文に含まれる前記x座標を持つ楕円曲線上の前記暗号点のy座標値を算出し、前記x座標値と前記y座標値からなる楕円曲線上の前記暗号点と、前記暗号文の他の部分とを用いて、楕円曲線上の復号演算を行って、復号文を生成する復号ステップと
を含むことを特徴とする復号方法。 - 楕円曲線上の離散対数問題を安全性の根拠として、伝達された暗号文を復号する復号装置で用いられる復号プログラムであって、
前記暗号文は、平文について、楕円曲線上の暗号演算を行って生成された楕円曲線上の暗号点のx座標値を含み、
前記復号プログラムは、
前記暗号文を取得する取得ステップと、
取得した前記暗号文に含まれる前記x座標を持つ楕円曲線上の前記暗号点のy座標値を算出し、前記x座標値と前記y座標値からなる楕円曲線上の前記暗号点と、前記暗号文の他の部分とを用いて、楕円曲線上の復号演算を行って、復号文を生成する復号ステップと
を含むことを特徴とする復号プログラム。 - 前記復号プログラムは、コンピュータ読み取り可能な記録媒体に記録されている
ことを特徴とする請求項20に記載の復号プログラム。
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)
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)
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)
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 |
-
2004
- 2004-10-01 WO PCT/JP2004/014887 patent/WO2005034421A2/en active Application Filing
- 2004-10-01 US US10/572,457 patent/US7936874B2/en not_active Expired - Fee Related
- 2004-10-01 EP EP04792175A patent/EP1668818A2/en not_active Withdrawn
- 2004-10-01 JP JP2006531233A patent/JP4611305B2/ja not_active Expired - Fee Related
Patent Citations (4)
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 |