JP3123820B2 - 有限可換群における演算器 - Google Patents

有限可換群における演算器

Info

Publication number
JP3123820B2
JP3123820B2 JP04199415A JP19941592A JP3123820B2 JP 3123820 B2 JP3123820 B2 JP 3123820B2 JP 04199415 A JP04199415 A JP 04199415A JP 19941592 A JP19941592 A JP 19941592A JP 3123820 B2 JP3123820 B2 JP 3123820B2
Authority
JP
Japan
Prior art keywords
unit
random number
finite
equation
finite field
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.)
Expired - Fee Related
Application number
JP04199415A
Other languages
English (en)
Other versions
JPH0643808A (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
Priority to JP04199415A priority Critical patent/JP3123820B2/ja
Publication of JPH0643808A publication Critical patent/JPH0643808A/ja
Application granted granted Critical
Publication of JP3123820B2 publication Critical patent/JP3123820B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は情報セキュリテイ技術と
しての暗号系技術に関するものであり、特に、ICカー
ドのような計算能力が貧しい計算機を用いて離散対数暗
号系を実現する有限可換群における演算器に関するもの
である。
【0002】
【従来の技術】有限可換群の特定元に複数の異なる乱数
を作用させる理由についてまず述べることにする。
【0003】有限体上の対数を計算する問題である離散
対数問題が大きな有限体では難しいことを安全性の根拠
にする公開鍵暗号系すなわち離散対数暗号系が数多く提
案されている。しかしその根拠となる有限体上の離散対
数問題は古くから研究され、その結果数々の解法の試み
がなされ、次第にその解法にかかる時間が短くなってい
る。したがって充分な安全性を保つためには、その離散
対数暗号系が定義される有限体の基数は512ビット程
度の数である必要がある。また有限体上だけでなく近年
楕円曲線上の離散対数暗号系も提案されていている。楕
円曲線上定義された暗号方式は、その安全性の根拠とな
る楕円曲線上の離散対数問題に現時点では決定的な解法
がない上に、有限体上の離散対数問題に有力に作用する
解法が構造上作用しない。そのため同程度の安全性なら
ば有限体上定義された暗号方式より、高速に実現できる
だろうと考えられている。基数が512ビットの数であ
る有限体上での離散対数暗号系と同等の安全性を保つた
めには、楕円曲線を定義する有限体の基数は96ビット
の数でよい。また離散対数暗号系の代表例であるエルガ
マル暗号ならびにエルガマル署名では通信文ごとに乱数
を変えて暗号文ならびに署名文を生成しなければならな
い。なお有限体上のエルガマル暗号ならびに楕円曲線に
よるエルガマル暗号に関しては、ニイル コブリッツ著
”ア コウス イン ナンバア セオリイ アンド
クリプトグラヒイ”(Neal koblitz ," A Course in Nu
mber Theory and Cryptography ",Springer-Verlag,198
7)に詳しく述べられている。また有限体上のエルガマ
ル署名ならびに離散対数問題の難しさに関しては、「現
代暗号理論」池野信一・小山謙二著(電子通信学会)に
詳しく述べられている。
【0004】以下有限体上のエルガマル暗号、楕円曲線
によるエルガマル暗号、そして有限体上のエルガマル署
名の手順について説明し、次いでエルガマル暗号・エル
ガマル署名において作用させる乱数を通信文ごとに変え
なければならない理由について述べる。 1)有限体上のエルガマル暗号について (1)鍵生成 システム管理者は有限体GF(q)を選ぶ。ここで、q
は素数pのr乗 prである。gを有限体GF(q)の位
数の大きな元とする。システム管理者はgとGF(q)を
この暗号方式の公開情報としてシステムユーザに公開す
る。このシステムの任意ユーザBは、任意の整数xB
選び、GF(q)上で、
【0005】
【数1】
【0006】を計算する。そこでユーザBは、xBを秘
密鍵として保持し、yBを公開鍵として全ユーザに知ら
せる。
【0007】(2)暗号化 AからBへ平文mを秘密通信する場合を考える。Aは秘
密に整数である乱数kを選び、自分だけが知るこの乱数
kとBの公開鍵yBを用いて次の二つの暗号文C1、C2
を作成する。
【0008】
【数2】
【0009】
【数3】
【0010】AはBにC1とC2を送る。このとき(数
2)で定まるC1を第一の暗号文、(数3)で定まるC2
を第二の暗号文と呼ぶ。
【0011】(3)復号化 Bは自分だけが知っている秘密鍵xBを用いて次式を計
算してMを得る。
【0012】
【数4】
【0013】(数1)(数2)(数3)(数4)のいず
れの計算もGF(q)上で行なわれるとし、平文MはGF
(q)上の元とする。 2)楕円曲線によるエルガマル暗号について (1)鍵生成 システム管理者は有限体GF(q)上定義された楕円曲線
Eを選ぶ。ここで、qは素数pのr乗 pr である。
また、楕円曲線Eの有限体GF(q)の元で構成される群
をE(GF(q))と表わすことにする。GをE(GF(q))
上の位数の大きな元とする。システム管理者は、GとE
(GF(q))をこの暗号方式の公開情報としてシステムユ
ーザに公開する。このシステムの任意ユーザBは、任意
の整数x Bを選び、E(GF(q))上で
【0014】
【数5】
【0015】を計算する。そこで、ユーザBはxBを秘
密鍵として保持し、YBを公開鍵として全ユーザに知ら
せる。
【0016】(2)暗号化 AからBへ平文Mを秘密通信する場合を考える。Aは秘
密に整数である乱数kを選び、自分だけが知っているこ
の乱数kとBの公開鍵YBを用いて次の2つの暗号文
1,C2を作成する。
【0017】
【数6】
【0018】
【数7】
【0019】AはBにC1,C2を送る。このとき(数
6)で定まるC1を第一の暗号文、(数7)で定まるC2
を第二の暗号文と呼ぶ。
【0020】(3)復号化 Bは自分だけが知っているxBを用いて次式を計算して
Mを得る。
【0021】
【数8】
【0022】(数5)(数6)(数7)(数8)のいず
れの演算もE(GF(q))上で行なわれ、平文M、
B、Gは楕円曲線E(GF(q))上の元とする。 3)有限体上のエルガマル署名について (1)鍵生成 システム管理者は有限体GF(p)を選ぶ。ここでpは、
素数である。gをGF(p)上の原始根とする。システム
管理者は、gとGF(p)をこの暗号方式の公開情報とし
てシステムユーザに公開する。このシステムの任意のユ
ーザAは、0<xA<pなる任意の整数を選び、GF
(p)上で、
【0023】
【数9】
【0024】を計算する。そこで、ユーザAはxAを秘
密鍵として保持し、yAを公開鍵として全ユーザに知ら
せる。
【0025】(2)署名の生成 ユーザAからユーザBへ平文mの署名を通信する場合を
考える。ここで平文mは整数とする。Aは秘密に整数で
ある乱数kを発生させ、自分だけが知るこの乱数kを用
いて次のRを計算する。
【0026】
【数10】
【0027】次に、Aは自分だけが知る秘密鍵xAとR
と前記乱数kとを用いて次の式を満たすsを計算する。
【0028】
【数11】
【0029】そして、AはBに平文mと署名R、sを送
る。 (3)署名の検証 BはAの公開鍵yAをもちいて、次式が成立するかどう
かを検査する。
【0030】
【数12】
【0031】もし成立すれば、mがAから送られてきた
ことを認証する。ここで、(数11)の右辺の (p−
1) は、有限体上の元gの位数であり、(数9)(数1
0)(数12)の演算はGF(p)上でおこなわれるもの
とし、(数11)は(p−1)で割った余りが同じ整数を
同一とみなして演算を0以上p−1以下でおこなうもの
とし、平文mは整数とする。 4)エルガマル暗号ならびにエルガマル署名で作用させる
乱数を通信文ごとに変えなければならない理由 (i)エルガマル暗号の場合 有限体上の場合でも楕円曲線のよる場合でも原理は変わ
らないので、有限体上のエルガマル暗号について述べる
ことにする。
【0032】もし同一の乱数kで通信文Ma,Mbをそれ
ぞれ暗号化して2組の暗号文(C1a,C2a),(C1b,C
2b)を作成したとき、 C1a = C1b, Ma/Mb = C2a/C2b という関係が成り立ち、1組のMとC2 が分かると、他
のすべてのMはC2 から分かってしまう。
【0033】(ii)エルガマル署名の場合 もし同一の乱数kで通信文ma,mbをそれぞれ署名して
2組の署名文(Ra,sa),(Rb,sb)を作成したと
き、 sa*k ≡ (ma−xA*Ra) (mod p−1) sb*k ≡ (mb−xA*Rb) (mod p−1) という関係が成り立ち、2組のRとsおよびmは公開の
値であるからこの2式からkとxAが解ける。Aの秘密
Aがわかると他のすべてのmに対する署名の偽造がで
きてしまう。
【0034】上記の乱数についての制限は、常に同じ乱
数kでなくても2つの乱数k1,k2の間に、 k2 = a*k1+b (a,b:定数) という関係があったとしても、同様な手法で暗号文の解
読ならびに署名の偽造が行なわれる。
【0035】以上のような理由から、多くの異なる乱数
を有限可換群上の特定元に作用させた新たな有限可換群
の元を求める必要がある。
【0036】また以上に述べた暗号法および署名法を安
全性を高く保ちつつ実用的な時間で実現するには、従来
専用のハードウェアや高性能な計算機が必要とされてき
た。しかしながら、社会における情報セキュリティの必
要性が高まるにつれ、従来より低い計算能力しか有さな
いICカード上で公開鍵暗号ならびにディジタル署名を
実現することが望まれてきている。
【0037】しかし上述のように離散対数暗号系を定義
する有限体の基数は充分な安全性を保つためには大きく
ある必要があり、さらにエルガマル暗号ならびにエルガ
マル署名においては通信文もしくは署名文毎に作用させ
る乱数を変えないといけないので、離散対数暗号系をI
Cカードのような計算能力の低い計算機で処理するに
は、多大な時間を要する。したがって短時間の間に多く
の通信文にたいして暗号化したり署名を施したりするに
は、通信文書ならびに署名される文書に関係しない部分
(例えば(数2)の計算や(数3)におけるyB kを計算
する部分など)を、直接暗号化したり署名しない時間す
なわち空き時間に予備計算しておくことにより実際に通
信文書ならびに署名される文書が入力されてから暗号化
や署名生成をする時間を短縮するという考え方が必要と
なる。この種の考え方は、ドナルドデービーズ編“ユー
ロクリプト’91”(1991年)第446頁から第457頁 フジ
オカアツシ、オカモト タツアキ、ミヤグチ ショウジ
著“イーエスアイジーエヌ:アン エフィシェント デ
ジタル シグネチャ インプリメンテーション フォー
スマートカード”(A.Fujioka,T.Okamoto,S.Miyagut
i,“ESIGN:An Efficient Digital Signature Implement
ation for Smart Cards”,Advances in Cryptology-Eur
ocrypt'91,pp.446-pp.457,Springer-Verlag,1991)に見
られるものである。エルガマル暗号ならびにエルガマル
署名においては予備計算できる部分が多いけれどもその
予備計算の処理時間が大きいため、前記空き時間に処理
できる数はそう多くならない。短時間の間にできるだけ
多くの予備処理を行なうことができれば、暗号化または
署名する通信文の数が増えた場合、一部の通信文に対し
て予備計算ができていなくて実際に通信文書ならびに署
名される文書が入力されてから暗号化や署名生成を始め
ることになり、大変時間がかかるということも回避で
き、暗号化または署名する通信文の数が増えない場合で
も予備処理を行なう回数を減らすことができる。
【0038】以上の様な理由により、ICカードのよう
な計算能力の低い計算機でも短時間の間にできるだけ多
くの予備計算処理ができる計算方法の開発が望まれてい
る。
【0039】以下では、できるだけ多くの予備計算処理
ができる計算方法の従来の技術について述べる。
【0040】これから述べる計算処理法は、1)有限体上
のエルガマル暗号 の場合であれば(数2)の計算なら
びに(数3)の yB k の計算、2)楕円曲線によるエルガ
マル暗号の場合であれば(数6)の計算ならびに(数
7)の k*YB の計算、3)有限体上のエルガマル署名
の場合では式(数10)の計算 という各通信文ごとに
変わる乱数が作用する計算に関しての処理方法について
述べる。
【0041】また先に挙げた各計算は有限体上の話では
gまたはyB をk乗するということであり、楕円曲線上
の話ではGまたはYB をk倍するということで計算方法
としても本質的には変わらない。したがって従来例で述
べる計算法はすべて楕円曲線上で G をk倍するという
場合に限って述べることにする。なお(数2)の計算で
はGをg,k倍をk乗に、(数3)の yB k の計算では
GをyB に,k倍をk乗に、式(数7)の計算ではGを
Yに、それぞれ変更すればよい。また有限体上での g
,楕円曲線上の G はそれぞれその暗号システムおよ
び署名システムを使用する全てのユーザー共通と考えて
よい。
【0042】以下、(発明の詳細な説明)においては、
特に断わらない限り「乱数kはすべてnビットであ
る。」と仮定して話を進める。
【0043】[従来例1]この計算処理法は、乱数kを
2進数展開して処理するというもので、次のような処理
を行なう。なお2進数展開法に関しては,ドナルド ク
ヌース著ジ アートオブ コンピュータ プログラミン
グ 第2巻(Donald E.Knuth,“The ArtComputer Progr
amming Vol.2”,Addison-Wesley)に詳しく述べられて
いる。
【0044】乱数k1 の2進数展開を、(an-1,… ,
0)とする。( ai ∈ {0,1})すなわち、
【0045】
【数13】
【0046】が成り立つ。このとき、
【0047】
【数14】
【0048】となるから、初めに2i*G(i=0,1,…
,n-1)を計算しておき、その後ai = 1 なるiについ
てのみ、加法演算する。以下同様なことを乱数k2
3,… について行なう。
【0049】計算量については、2i*G(i=0,1,…
,n-1)をすべて計算するのに(n−1)回の楕円曲線上の
加法演算を行なう必要がある。
【0050】またai = 1 なる確率は1/2 であるか
ら、ai = 1 なるiは 1/2*nあると考えられる。よ
ってai = 1 なるiについての楕円曲線上の加法演算
回数は、(n/2−1)回である。よってk1*Gを計算する
のに、(3/2*n−2)回の楕円曲線上の加法演算が必要で
ある。
【0051】k1*G,k2*G,… ,kt*Gを計算す
るのに必要な楕円曲線上の加法演算の回数は、t(3/2*
n−2) 回である。
【0052】楕円曲線上での場合では、n = 96 と
してよいので、計算量は
【0053】
【数15】
【0054】となる。 [従来例2]この計算処理法は、前記従来例1から容易
に改良できるものである。k1*G,k2*G,… ,kt
*Gの計算を同時に処理するというもので、次のような
処理を行なう。なお2進数展開法に関しては,ドナルド
クヌース著ジ アート オブ コンピュータ プログ
ラミング 第2巻(Donald E.Knuth,“The Art Compute
r Programming Vol.2”,Addison-Wesley)に詳しく述べ
られている。
【0055】この方法は、k1*Gを計算するときは、
前記従来例1と同じであるが、k2*G,… ,kt*Gを
計算するときに、k1*Gの計算過程で生まれる2i*G
(i=0,1,… ,n-1) をテーブルに保管しておき利用す
るというものである。
【0056】したがってk2*G,… ,kt*Gの計算に
おいては、ai = 1 なるiについての楕円曲線上の加
法演算のみが必要である。
【0057】よって計算量は、 k1*G : (3/2*n−2) k2*G,… ,kt*G : 各 (1/2*n−2)
となるので、 k1*G,k2*G,… ,kt*Gを計算するのに必要な
楕円曲線上の加法演算の回数は、 (3/2*n−2)+(t−1)*(1/2*n−2)
回である。
【0058】楕円曲線上での場合では、n = 96 と
してよいので、計算量は
【0059】
【数16】
【0060】となる。(従来例1)における計算量の式
(数15)と比較した場合t = 28として、(従来例
1)で必要な楕円曲線上の加法演算の回数は3976回に対
して、(従来例2)で必要な楕円曲線上の加法演算の回
数は1411回となり、計算量は約35.5%にまで削減でき
る。
【0061】[従来例3]この方法は、k1*G,k2
Gを1つのペアにして、k1,k2の両方を2進数展開し
たとき、ともに1となるiは一括に処理するというもの
である。次のような処理をする。なおこの方法について
は、ギリース ブラサード編“クリプト’89”(1990
年)第175頁から第185頁(A.Fiat,“Batch RSA”,Advanc
es inCryptology-CRYPTO'89,pp.175-pp.185,Springer-V
erlag,1990)に詳しく述べられている。
【0062】乱数k1,k2を2進数展開したものをそれ
ぞれ(a[1]n-1,… ,a[1]0)(a[2]n-1,… ,a
[2]0)とする。
【0063】このとき、k1,k2に対して、 Γ(1,2)[2] = { 0≦i≦n-1|(a[1]i,a[2]i) = (1,1)} Γ(1)[2] = { 0≦i≦n-1|(a[1]i,a[2]i) = (1,0)} Γ(2)[2] = { 0≦i≦n-1|(a[1]i,a[2]i) = (0,1)} と定める。
【0064】ここで Γ(1,2)[2],Γ(1)[2],Γ(2)
[2]に対して
【0065】
【数17】
【0066】
【数18】
【0067】
【数19】
【0068】を定義する。このとき、 k1*G = U(1,2)[2]+ U(1)[2]2*G = U(1,2)[2]+ U(2)[2] が成り立つ。
【0069】以下、 (k3,k4),(k5,k6),… (kt-1,kt) <t≡0(mod2)> とペアにして処理する。
【0070】よって計算量は、まず初めに2i*G(i=
0,1,… ,n-1)を計算してテーブルに保管してするの
で、この計算に必要な楕円曲線上の加法演算は(n−1)
回。
【0071】次に、#Γ(1,2) = #Γ(1) = #Γ
(2) = 1/4*n (ただし #A = 集合Aの元の個数) と考えられるので、U(1,2)[2],U(1)[2],U(2)
[2]を計算するのにそれぞれ(1/4*n−1)回の楕円曲線
上の加法演算が必要となる。またU(1,2)[2],U(1)
[2],U(2)[2]から、k1*G,k2*Gを生成するの
に、それぞれ1回の楕円曲線上の加法演算が必要である
から、初めの2i*G(i=0,1,… ,n-1)のテーブルを
作成するのを除いた計算回数は、 (1/4*n−1)*3+1*2 = (3/4*n−1) となる。
【0072】k1*G,k2*G,… ,kt*Gを計算す
るのに必要な楕円曲線上の加法演算の回数は、 (n−1)+t/2*(3/4*n−1) となる。
【0073】楕円曲線上での場合では、n = 96 と
してよいので、計算量は
【0074】
【数20】
【0075】となる。(従来例3)はt≧1で(従来例
1)(従来例2)に比べて一番計算回数が少なくなる。
(従来例2)における計算量の式(数16)と比較した
場合t = 28として、(従来例2)で必要な楕円曲線
上の加法演算の回数は1411回に対して、(従来例3)で
必要な楕円曲線上の加法演算の回数は1089回となり、計
算量は約77.1%にまで削減できる。
【0076】[従来法4]この方法は前記従来法3を一
般化したもので、k1*G,… , kL*Gを1つの組と
して処理する方法で、次のような処理である。なおこの
方法については、ギリース ブラサード編“クリプト’
89”(1990年)第175頁から第185頁(A.Fiat,“Batch R
SA”,Advances in Cryptology-CRYPTO'89,pp.175-pp.18
5,Springer-Verlag,1990)に詳しく述べられている。
【0077】乱数kl (l = 1,2,… ,L)の2進数展開を
(a[l]n-1,… ,a[l]0)(l = 1,2,… ,L)とする。
【0078】次に Z(L) = { 0,1,… ,L }の
部分集合T(≠φ(空集合))に対して、 Γ(T)[L] ={ 0≦i≦n-1|a[l]i=1(l∈T),a[l]
i=0(l∈Z(L)−T)} を定義する。また T = { x1,… ,xt }に対して Γ(T)[L] = Γ(x1,… ,xt)[L] と略記することにすれば、前記従来法3で定義したΓ
(1,2)[2],Γ(1)[2],Γ(2)[2]と矛盾のない記号の定
義になる。
【0079】また前記従来法3のときと同様に、
【0080】
【数21】
【0081】で、U(T)[L]を定義する。このとき、
【0082】
【数22】
【0083】が成り立つ。計算量は、次のようになる。
【0084】まず初めに2i*G(i=0,1,… ,n-1)を
計算してテーブルに保管してするので、この計算に必要
な楕円曲線上の加法演算は(n−1)回。
【0085】また #Γ(T)[L] = (1/2L)*n ( T
∈ P(Z(L))−φ)である。ただし P(A) =
集合Aの部分集合の全体と考えられるから、U(T)[L]
( T ∈ P(Z(L))−φ)を計算するのにそれぞれ
((1/2L)*n−1)回の楕円曲線上の加法演算が必要で
あり、U(T)[L]の総数は、2L−1個である。
【0086】T ∋ kl なるTの総数は、そのkl以外
の乱数(L−1)個がTに入るかどうかの組合せだけあ
り、2L-1 個となる。
【0087】よって、U(T)[L]( T ∈ P(Z(L))
−φ)をすべてを計算するのに、((1/2L)*n−1)*
(2L−1)回の楕円曲線上の加法演算が必要である。
【0088】またU(T)[L]( T ∈ P(Z(L))−
φ)からk1*G,… , kL*Gを生成するのにそれぞ
れ、(2L-1−1)回の楕円曲線上の加法演算が必要と
なるので、初めの2i*G(i=0,1,… ,n-1)のテーブ
ルを作成するのを除いた計算回数は、 ((1/2L)*n−1)*(2L−1)+L*(2L-1−1) となる。
【0089】k1*G,k2*G,… ,kt*Gを計算す
るのに必要な楕円曲線上の加法演算の回数は、 <t≡
0(mod l)> (n−1)+t/L*{((1/2L)*n−1)*(2L−1)+
L*(2L-1−1)} となる。
【0090】楕円曲線上での場合では、n = 96 と
してよいので、計算量は
【0091】
【数23】
【0092】となる。ここで f(L) = 1/L*{((96/2L)-1)*(2L-1)+L*(2L-1-
1)} とおくと、f(L)の値が最小のLが、計算回数が最小と
なる一括に処理する個数Lであることは明らかである。
【0093】各Lに対するf(L)の値を(表1)に示
す。これから分かるように、L = 4のときf(L)は最
小すなわち4個の乱数を一括に処理するのがいちばん計
算量が少なくて済む。
【0094】
【表1】
【0095】またこれまでの話は楕円曲線上における場
合だったので、n = 96としたが有限体上の場合n
= 512としなければならない。この場合もn = 9
6の場合と同じように処理してf(L)を定義すると、L
= 6のときf(L)は最小すなわち6個の乱数を一括に
処理するのがいちばん計算量が少なくて済む。n = 5
12の場合のf(L)の値は(表2)に示す。
【0096】
【表2】
【0097】よって楕円曲線上の場合だと4個の乱数を
一括に処理する方法が一番計算量が少なく、k1*G,
2*G,… ,kt*Gを計算するのに必要な楕円曲線上
の加法演算の回数は、 <t≡0(mod 4)>
【0098】
【数24】
【0099】となる。(従来例4)のL = 4とした方
法はt≧1で(従来例1)(従来例2)(従来例3)に
比べて一番計算回数が少なくなる。(従来例3)におけ
る計算量の式(数20)と比較した場合t = 28とし
て、(従来例3)で必要な楕円曲線上の加法演算の回数
は1089回に対して、(従来例4)のL = 4とした方法
で必要な楕円曲線上の加法演算の回数は816回となり、
計算量は約74.9%にまで削減できる。
【0100】また有限体上の場合だと6個の乱数を一括
に処理する方法が一番計算量が少なく、k1*G,k2
G,… ,kt*Gを計算するのに必要な楕円曲線上の加
法演算の回数は、 <t≡0(mod 6)>
【0101】
【数25】
【0102】となる。この場合も先の楕円曲線上の場合
と同じだけの計算量削減ができる。
【0103】
【発明が解決しようとする課題】前記のどの従来例も、
ICカードのような計算能力の低い計算機で離散対数暗
号系を実現しようとすると時間が掛かるという問題に対
する計算方法であったが、まだまだ十分実用的な時間で
実現できるとは言えない。本発明はICカードのような
計算能力の低い計算機でも十分短い時間で離散対数暗号
系を実現できるようにすることを目的とする。
【0104】
【課題を解決するための手段】本発明は、前記目的を達
成するために、2個以上の乱数の少なくとも1個以上の
乱数を2個以上の部分乱数に分割する乱数分割部、前記
部分乱数を前記有限可換群の特定元に作用させた構成元
を出力する整数作用部と、前記整数作用部から出力され
た前記構成元に対して前記有限可換群の定義演算とその
逆元演算の両方またはその一方の演算を行い組み合わせ
る作用元生成装置とを備えたものである。
【0105】
【作用】本発明は前記手段を備えることによって、乱数
分割部は基となる2個以上の乱数の少なくとも1個以上
の乱数を2個以上の部分乱数に分割し前記部分乱数を整
数作用部に供給し、前記整数作用装置は前記部分乱数を
有限可換群の特定元に作用させて構成元を作成し作用元
生成部に供給し、前記作用元生成装置は前記構成元を前
記有限可換群の定義演算とその逆元演算の両方またはそ
の一方の演算を行い組み合わせて新たな有限可換群の元
を作成する。
【0106】さらに前記新たな有限可換群の元の個数
は、前記部分乱数の総数よりも低くすることにより、前
記新しい有限可換群の元から構成元と構成元の組み合わ
せ方を知ることはできない。
【0107】
【実施例】
(第一の実施例) ・楕円曲線上のエルガマル暗号における演算器 図1は本発明の第一の実施例における楕円曲線上のエル
ガマル暗号における演算器の構成を示すものである。同
図において1は乱数生成部、2は前記1の乱数生成部か
ら供給される2個以上の乱数の少なくとも1個以上の乱
数を2個以上の部分乱数に分割する乱数分割部、3はビ
ット指定部、4は前記2の乱数分割部から出力される前
記部分乱数を楕円曲線上の特定元に作用させた構成元を
作成する第一の楕円曲線上の整数作用部、5は前記4の
第一の楕円曲線上の整数作用部から出力される2個以上
の前記構成元に対して前記楕円曲線上の加法演算または
減法演算を組み合わせて楕円曲線上の元を作成する第一
の暗号文生成部、6は組合せ指定部、7は保管部、8は
前記2の乱数分割部から出力される前記部分乱数を楕円
曲線上の特定元に作用させた構成元を作成する第二の楕
円曲線上の整数作用部、9は前記8の第二の楕円曲線上
の整数作用部から出力される2個以上の前記構成元に対
して前記楕円曲線上の加法演算または減法演算を組み合
わせて楕円曲線上の元を作成する第二の暗号文生成部、
10は楕円曲線上の加法演算部である。
【0108】以下同図を参照しながら実施例の手順を説
明する。この例は初めに4個の乱数が入力された後、7
個のエルガマル暗号の第一の暗号文あるいは第二の暗号
文の一部を出力するという例である。 (1)乱数分割 乱数生成部1から乱数k1,k2,k3,k4 が4個供給され
て、乱数分割部2に入力される。もう一方、ビット指定
部3からビット分割情報T1,T2,T3,T4 が乱数分割部
2に入力される。ここでZ0(n-1) = { 0,1,… ,n-1
}とすると、ビット分割情報T1,T2,T3,T4はZ0(n-
1)の部分集合である。乱数分割部2は、乱数ki(i=1,
2,3,4)をビット分割情報Ti(i=1,2,3,4)により次のよ
うに部分乱数ki [1],ki [2](i=1,2,3,4)に分割する。
すなわち、乱数ki(i=1,2,3,4)の2進数展開を(a
[i]n-1,… ,a[i]0)(i=1,2,3,4)とし、部分乱数ki
[1],ki [2](i=1,2,3,4)の2進数展開をそれぞれ(b
[i]n-1,… ,b[i]0),(c[i]n-1,… ,c[i]0)とす
るとき、b[i]j,c[i]j (i=1,2,3,4 j=0,1, … ,
n-1)を次の(数26)(数27)の規則により定める。
【0109】
【数26】
【0110】
【数27】
【0111】このとき ki = ki [1]+ki [2] (i=1,2,3,4) が成り立つ。 (2)エルガマル暗号の第一の暗号文の構成元の作成 乱数分割部2から出力される部分乱数ki [1],ki [2](i
=1,2,3,4)は、第一の楕円曲線上の整数作用部4に供給
される。第一の楕円曲線上の整数作用部4は次の(数2
8)のような操作で楕円曲線上の点Ki [1],Ki [2](i
=1,2,3,4)を求める。
【0112】Gをシステムの公開鍵である楕円曲線上の
点とすると、
【0113】
【数28】
【0114】ここでki [j]*Gの計算は(従来例4)に
述べた方法で4個のki [j]*Gを一括に処理して計算す
ることもできる。
【0115】このようにして8個の楕円曲線上の点であ
る第一の暗号文の構成元が作成される。 (3)エルガマル暗号の第一の暗号文の作成 第一の楕円曲線上の整数作用部4から出力された楕円曲
線上の点Ki [1],Ki [ 2](i=1,2,3,4)は、第一の暗号
文生成部5に入力される。また組合せ指定部6から組み
合わせ指定情報Qj(j=1,2,3,4,5,6,7)が第一の暗号文
生成部5に入力される。
【0116】組み合わせ指定情報Qj(j=1,2,3,4,5,6,
7)は楕円曲線上の点Ki [1],Ki [2](i=1,2,3,4) の中
から2個の点を選び、その2点を楕円曲線上の加法で作
用させるか減法で作用させるか定める情報である。よっ
て第一の暗号文生成部5はQj(j=1,2,3,4,5,6,7)に基
づき、エルガマル暗号の第一の暗号文C[j]1(j=1,2,
3,4,5,6,7)を作成する。その作成方法は例えばQ1が、
2 [1]を加法でK4 [2]を減法で作用させるという情報で
あったならば、C[1]1は次の(数29)で定まるという
ものである。
【0117】
【数29】
【0118】このようにして、第一の暗号文生成部5は
組み合わせ指定情報Qj(j=1,2,3,4,5,6,7)に基づきエ
ルガマル暗号の第一の暗号文C[j]1(j=1,2,3,4,5,6,
7)を作成し、保管部7に保管する。 (4)エルガマル暗号の第二の暗号文の構成元の作成 乱数分割部2から出力される部分乱数前記(2)と同じki
[1],ki [2](i=1,2,3,4)は、第二の楕円曲線上の整数
作用部8に供給される。第二の楕円曲線上の整数作用部
8は次の(数30)のような操作で楕円曲線上の点Xi
[1],Xi [2](i=1,2,3,4)を求める。
【0119】YBをある特定の受信者Bの公開鍵である
楕円曲線上の点とすると、
【0120】
【数30】
【0121】ここでki [j]*YBの計算は(従来例4)
に述べた方法で4個のki [j]*YBを一括に処理して計
算することもできる。
【0122】このようにして8個の楕円曲線上の点であ
る第二の暗号文の構成元が作成される。 (5)エルガマル暗号の第二の暗号文の一部の作成 楕円曲線上の整数作用部8から出力された楕円曲線上の
点Xi [1],Xi [2](i=1,2,3,4)は、第二の暗号文生成
部9に入力される。また組合せ指定部6から前記(3)と
同じ組み合わせ指定情報Qj(j=1,2,3,4,5,6,7)が第二
の暗号文生成部9に入力される。 組み合わせ指定情報
j(j=1,2,3,4,5,6,7)は楕円曲線上の点Ki [1],Ki
[2](i=1,2,3,4) の中から2個の点を選び、その2点
を楕円曲線上の加法で作用させるか減法で作用させるか
定める情報である。第二の暗号文生成部9はQj(j=1,
2,3,4,5,6,7)に基づき、エルガマル暗号の第二の暗号文
の平文M以外の部分V[j](j=1,2,3,4,5,6,7)を作成す
る。その作成方法は例えばQ2が、X3 [2]を減法でX4
[1]を加法で作用させるという情報であったならば、V
[2]は次の(数31)で定まるというものである。
【0123】
【数31】
【0124】このようにして、第二の暗号文生成部9は
組み合わせ指定情報Qj(j=1,2,3,4,5,6,7)に基づきエ
ルガマル暗号の第二の暗号文の平文M以外の部分V[j]
(j=1,2,3,4,5,6,7)を作成し、保管部7に保管する。
ただし保管部7ではC[j]1とV[j](j=1,2,3,4,5,6,7)
を組にして保管しておく。 (6)エルガマル暗号の第二の暗号文の作成 特定の受信者Bに秘密通信する平文M[j]が楕円曲線上
の加法演算部10に入力されると保管部7から保管され
ているV[j]楕円曲線上の加法演算部10に入力され、
楕円曲線上の加法演算部10はエルガマル暗号の第二の
暗号文C[j]2を次の(数32)のように作成する。
【0125】
【数32】
【0126】そしてV[j]と組として保管部7に保管さ
れているC[j]1とこのC[j]2を暗号文としてBに送信す
る。
【0127】そして一度使われたC[j]1,V[j]は保管
部7に保管しておく必要はない。 (7)計算量について 従来例との比較から、前記(2)(3)でエルガマル暗号の第
一の暗号文C[j]1(j=1,2,3,4,5,6,7)を作成するのに
必要な計算量について述べる。第二の暗号文の一部を作
成する計算量についても同様な効果が得られる。
【0128】(従来例2)と同様にまず初めに、2i
G(i=0,1,… ,n-1)を計算しておきそのあとで、Ki
[j] = ki [j]*G(i=1,2,3,4 j=1,2)を計算す
る。
【0129】2i*G(i=0,1,… ,n-1)をすべて計算
するのに(n−1)回の楕円曲線上の加法演算を行なう必
要がある。
【0130】つぎに、&ki [j] = 平均(1/4)*nと考え
られるので、ただし、&r = rを2進数展開したとき
に1の立っているビット数。Ki [j] = ki [j]*Gを計
算するのにそれぞれ(1/4)*n−1回の楕円曲線上の加法
演算が必要である。
【0131】またKi [j](i=1,2,3,4 j=1,2)からC
[s]1(s=1,2,3,4,5,6,7)を作成するのにそれぞれ1回
の楕円曲線上の加法演算あるいは減法演算が必要であ
る。ただし楕円曲線上の楕円曲線上の加法演算と減法演
算は同等の時間で処理できることから、減法演算の場合
でも加法演算と区別せずに計算回数を数える。よって合
計7回の楕円曲線上の加法演算が必要である。
【0132】したがってC[1]1,C[2]1,… ,C[t]1
作成するのに必要な楕円曲線上の加法演算は (n−1)+t/7*{((1/4)*n−1)*8+7} となる。
【0133】楕円曲線上での場合では、n = 96 と
してよいので、計算量は
【0134】
【数33】
【0135】となる。(従来例)の中で計算量が最小な
のは、(従来例4)の4個の乱数を一括に処理する方法
で、その計算量はC[1]1,C[2]1,… ,C[t]1を作成す
る場合で、(数24)より H4(t) = (103/4)t+95 であった。
【0136】 103/4 = 25 3/4 < 191/7 = 27 2/7 であるから、本発明の計算量のほうが僅かに多くなるこ
とがわかる。
【0137】しかし前述のようにKi [j](i=1,2,3,4
j=1,2)を計算するときに(従来例4)の4個の乱数を
一括に処理する方法で行なえば、計算量は次のようにな
る。
【0138】K1 [1],K2 [1],K3 [1],K4 [1]を一括で
処理する場合、 #Γ(T)[4] = (1/32)*n T ∈ P(Z(4))− φ と考えられるので、各U(T)[4] (T ∈ P(Z(4))
− φ)を計算するのに、それぞれ(1/32)*n−1回の楕
円曲線上の加法演算が必要である。
【0139】またU(T)[4] (T ∈ P(Z(4))−
φ)からK1 [1],K2 [1],K3 [1],K4 [1]を作成するの
に各7回の楕円曲線上の加法演算が必要である。
【0140】#(P(Z(4))− φ) = 15である
から、K1 [1],K2 [1],K3 [1],K4 [1]を一括で処理し
て計算する場合必要な楕円曲線上の加法演算は ((1/32)*n−1)*15+7*4 = (15/32)*n+1
3 となる。
【0141】同様にK1 [2],K2 [2],K3 [2],K4 [2]
計算するのに(15/32)*n+13回の楕円曲線上の加法演
算が必要であるから、Ki [j] = ki [j]*Gを計算する
のに合計で、(15/16)*n+26回の楕円曲線上の加法演
算が必要である。
【0142】したがってC[1]1,C[2]1,… ,C[7]1
作成するのに必要な楕円曲線上の加法演算は ((15/16)*n+26)+7 = (15/16)*n+33 となる。
【0143】よってC[1]1,C[2]1,… ,C[t]1を作成
するのに必要な楕円曲線上の加法演算は (n−1)+t/7*((15/16)*n+33) となる。
【0144】楕円曲線上での場合は、n = 96 とし
てよいので、計算量は
【0145】
【数34】
【0146】となる。 123/7 = 17 4/7 < 103/4 = 25 3/4 であるから計算量はt = 28とした場合で、従来例の
最小計算法である4個の乱数を一括に処理する方法が、
816回の楕円曲線上の加法演算が必要なのに対し、本
発明と4個の乱数を一括に処理する方法を組み合わせた
方法は587回の楕円曲線上の加法演算しか必要としな
く、約71.9%にまで計算量を作減できる。
【0147】また上記の説明では従来例4との組合せに
よる計算量について述べたが、従来例3と組み合わせて
も同様の効果が得られる。
【0148】なお、この第一の実施例では4個の乱数を
2個ずつに排他的に分割して7個のエルガマル暗号の第
一の暗号文ならびに第二の暗号文の一部を作成したが、
この実施例を一般化できる。一般にL個の乱数kl(l=
1,2, … ,L)をそれぞれm(kl)個ずつに分割して、M個
以下のをエルガマル暗号の第一の暗号文ならびに第二の
暗号文の一部を作成しても同様な効果が得られる。ただ
しMは次の(数34)で与えられる。
【0149】
【数35】
【0150】またこの第一の実施例では、乱数を排他的
に分割したが、その乱数よりも小さい正の整数の和に分
割してもまた負の整数が入る分割方法でも同様な効果が
得られる。
【0151】(第二の実施例) ・有限体上のエルガマル暗号における演算器 また図2は本発明の第二の実施例における有限体上のエ
ルガマル暗号における演算器の構成を示すものである。
同図において11は乱数生成部、12は前記11の乱数
生成部から供給される2個以上の乱数の少なくとも1個
以上の乱数を2個以上の部分乱数に分割する乱数分割
部、13はビット指定部、14は前記12の乱数分割部
から出力される前記部分乱数を有限体上の特定元に作用
させた構成元を作成する第一の有限体上のべき乗計算
部、15は前記14の第一の有限体上のべき乗計算部か
ら出力される2個以上の前記構成元に対して前記有限体
上の乗法演算を組み合わせて有限体上の元を作成する第
一の暗号文生成部、16は組合せ指定部、17は保管
部、18は前記12の乱数分割部から出力される前記部
分乱数を有限体上の特定元に作用させた構成元を作成す
る第二の有限体上のべき乗計算部、19は前記18の第
二の有限体上のべき乗計算部から出力される2個以上の
前記構成元に対して前記有限体上の乗法演算を組み合わ
せて有限体上の元を作成する第二の暗号文生成部、20
は有限体上の乗法計算部である。
【0152】以下同図を参照しながら実施例の手順を説
明する。この例は初めに6個の乱数が入力された後、1
1個の乱数をシステムの公開鍵あるいは受信者の公開鍵
に作用させた値を出力するという例である。 (8)乱数分割 乱数生成部11から乱数k1,k2,k3,k4,k5,k6 が6
個供給されて、乱数分割部12に入力される。もう一
方、ビット指定部13からビット分割情報T1,T 2,T3,
4,T5,T6 が乱数分割部12に入力される。ここでZ
0(n-1) = { 0,1,… ,n-1 }とすると、ビット分割情
報T1,T2,T3,T4はZ0(n-1)の部分集合である。乱数
分割部12は乱数ki(i=1,2,3,4,5,6)をビット分割情
報Ti(i=1,2,3,4,5,6)により次のように部分乱数ki
[1],ki [2](i=1,2,3,4,5,6)に分割する。すなわち乱
数ki(i=1,2,3,4,5,6)の2進数展開を(a[i]n-1,…
,a[i]0)(i=1,2,3,4,5,6)とし、部分乱数ki [1],k
i [2](i=1,2,3,4,5,6)の2進数展開をそれぞれ(b[i]
n-1,… ,b[i]0),(c[i]n-1,… ,c[i]0)とする
とき、b[i]j,c[i]j (i=1,2,3,4,5,6 j=0,1, …
,n-1)は次の(数36)(数37)で定める。
【0153】
【数36】
【0154】
【数37】
【0155】このとき ki = ki [1]+ki [2] (i=1,2,3,4,5,6) が成り立つ。 (9)エルガマル暗号の第一の暗号文の構成元の作成 乱数分割部12から出力される部分乱数ki [1],k
i [2](i=1,2,3,4,5,6)は、第一の有限体上のべき乗計
算部14に供給される。第一の有限体上のべき乗計算部
14は次の(数38)のような操作で有限体の値
i [1],Ki [2](i=1,2,3,4,5,6)を求める。
【0156】gをシステムの公開鍵である有限体の値と
すると、
【0157】
【数38】
【0158】ここでg^ki [j]は(従来例4)に述べた
方法で6個のg^ki [j]を一括に処理して計算すること
もできる。
【0159】このようにして12個の有限体の値である
第一の暗号文の構成元が作成される。
【0160】(10)エルガマル暗号の第一の暗号文の作成 第一の有限体上のべき乗計算部14から出力された有限
体の値Ki [1],Ki [2](i=1,2,3,4,5,6)は、第一の暗
号文生成部15に入力される。また組合せ指定部16か
ら組み合わせ指定情報Qj(j=1,2, … ,11)が暗号文生
成部15に入力される。
【0161】組み合わせ指定情報Qj(j=1,2, … ,11)
は有限体の値Ki [1],Ki [2](i=1,2,3,4,5,6) の中か
らどの2個の値を選びかということを定める情報であ
る。第一の暗号文生成部15はQj(j=1,2, … ,11)に
基づき、エルガマル暗号の第一の暗号文C[j]1(j=1,
2, … ,11)を作成する。その作成方法は例えばQ1が、
2 [1]とK4 [2]の2個を選ぶという情報であったなら
ば、C[1]1は次の(数39)で定まるというものであ
る。
【0162】
【数39】
【0163】このようにして、第一の暗号文生成部15
は組み合わせ指定情報Qj(j=1,2,… ,11)からエルガ
マル暗号の第一の暗号文C[j]1(j=1,2, … ,11)を作
成し、保管部17に保管する。 (11)エルガマル暗号の第二の暗号文の構成元の作成 乱数分割部12から出力される部分乱数前記(9)と同じ
i [1],ki [2](i=1,2,3,4,5,6)は、第二の有限体上の
べき乗計算部18に供給される。ここでは次の(数4
0)のような操作で有限体の値Xi [1],Xi [2](i=1,
2,3,4,5,6)を求められる。
【0164】yBをある特定の受信者Bの公開鍵である
楕円曲線上の点とすると、
【0165】
【数40】
【0166】ここでyB^ki [j]の計算は(従来例4)
に述べた方法で6個のyB^ki [j]を一括に処理して計
算することもできる。
【0167】このようにして12個の有限体上の値であ
る第二の暗号文の構成元が作成される。 (12)エルガマル暗号の第二の暗号文の一部の作成 第二の有限体上のべき乗計算部18から出力された有限
体の値Xi [1],Xi [2](i=1,2,3,4,5,6)は、第二の暗
号文生成部19に入力される。また組合せ指定部16か
ら前記(10)と同じ組み合わせ指定情報Qj(j=1,2, …
,11)が第二の暗号文生成部19に入力される。 組み合
わせ指定情報Qj(j=1,2, … ,11)は有限体の値
i [1],Ki [2](i=1,2,3,4,5,6) の中からどの2個の
値を選びかという情報である。第二の暗号文生成部19
はQj(j=1,2, … ,11)に基づき、エルガマル暗号の第
二の暗号文の平文M以外の部分V[j](j=1,2, … ,11)
を作成する。その作成方法は例えばQ3が、X3 [2]とX4
[1]を選ぶという情報であったならば、V[3]は次の(数
41)で定まるというものである。
【0168】
【数41】
【0169】このようにして、第二の暗号文生成部19
は組み合わせ指定情報Qj(j=1,2,… ,11)からエルガ
マル暗号の第二の暗号文の平文M以外の部分V[j](j=
1,2,… ,11)を作成し、保管部17に保管される。ただ
し保管部17ではC[j]1とV[j](j=1,2, … ,11)を組
にして保管しておく。 (13)エルガマル暗号の第二の暗号文の作成 特定の受信者Bに秘密通信する平文M[j]が有限体上の
乗法計算部20に入力されると保管部17から保管され
ているV[j]が入力され、有限体上の乗法計算部20は
第二の暗号文C[j]2を次の(数42)のように作成す
る。
【0170】
【数42】
【0171】そしてV[j]と組として保管部17に保管
されているC[j]1とこのC[j]2を暗号文としてBに送信
する。
【0172】そして一度使われたC[j]1,V[j]は保管
部17に保管しておく必要はない。 (14)計算量について 従来例との比較から、前記(9)(10)でエルガマル暗号の
第一の暗号文C[j]1(j=1,2, … ,11)を作成するのに
必要な計算量について述べる。第二の暗号文の一部を作
成する計算量についても同様な効果が得られる。
【0173】(従来例2)と同様にまず初めに、g^2
i(i=0,1,…,n-1)を計算しておきそのあとで、Ki [j]
= g^ki [j](i=1,2, … ,11 j=1,2)を計算す
る。
【0174】g^2i(i=0,1,… ,n-1)をすべて計算
するのに(n−1)回の有限体上の乗法演算を行なう必要
がある。
【0175】つぎに、&ki [j] = 平均(1/4)*nと考え
られるので、ただし、&r = rを2進数展開したとき
に1の立っているビット数。Ki [j] = g^ki [j]を計
算するのにそれぞれ(1/4)*n−1回の有限体上の乗法演
算が必要である。
【0176】またKi [j](i=1,2,3,4,5,6 j=1,2)か
らC[s]1(s=1,2, … ,11)を作成するのにそれぞれ1
回の有限体上の乗法演算が必要である。よって合計7回
の有限体上の乗法演算が必要である。
【0177】したがってC[1]1,C[2]1,… ,C[t]1
作成するのに必要な有限体上の乗法演算は (n−1)+t/7*{((1/4)*n−1)*8+7} となる。
【0178】有限体上での話では、n = 512 とし
てよいので、計算量は
【0179】
【数43】
【0180】となる。(従来例)の中で計算量が最小な
のは、(従来例4)の6個の乱数を一括に処理する方法
で、その計算量はC[1]1,C[2]1,… ,C[t]1を作成す
る場合で、(数25)より h6(t) = (209/2)t+511 であった。
【0181】 209/2 = 104 1/2 < 139 6/11 = 1535/11 であるから、本発明の計算量のほうが僅かに多くなるこ
とがわかる。
【0182】しかし前述のようにKi [j](i=1,2,3,4,
5,6 j=1,2)を計算するときに(従来例4)の6個の
乱数を一括に処理する方法で行なえば、計算量は次のよ
うになる。
【0183】K1 [1],K2 [1],K3 [1],K4 [1]
5 [1],K6 [1]を一括で処理する場合、 #Γ(T)[6] = (1/128)*n T ∈ P(Z(6))− φ と考えられるので、各U(T)[6] (T ∈ P(Z(6))
− φ)を計算するのに、それぞれ(1/128)*n−1回の
有限体上の乗法演算が必要である。
【0184】またU(T)[6] (T ∈ P(Z(4))−
φ)からK1 [1],K2 [1],K3 [1],K4 [1],K5 [1],K
6 [1]を作成するのに各31回の有限体上の乗法演算が必
要である。
【0185】#(P(Z(6))− φ) = 63である
から、K1 [1],K2 [1],K3 [1],K4 [1],K5 [1],K6
[1]を一括で処理して計算する場合必要な有限体上の乗
法演算は ((1/128)*n−1)*63+31*6 = (63/128)*n+123 となる。
【0186】同様にK1 [2],K2 [2],K3 [2],K4 [2]
5 [2],K6 [2]を計算するのに(63/128)*n+123回
の有限体上の乗法演算が必要であるから、Ki [j] = g
^ki [j]を計算するのに合計で、(63/64)*n+246回
の有限体上の乗法演算が必要である。
【0187】したがってC[1]1,C[2]1,… ,C[11]1
を作成するのに必要な有限体上の乗法演算は ((63/64)*n+246)+11 = (63/64)*n+257 となる。
【0188】よってC[1]1,C[2]1,… ,C[t]1を作成
するのに必要な有限体上の乗法演算は (n−1)+t/11*((63/64)*n+257) となる。
【0189】有限体上での話では、n = 512 とし
てよいので、計算量は
【0190】
【数44】
【0191】となる。 761/11 = 69 2/11 < 209/2 = 104 1/2 であるから計算量はt = 22とした場合で、従来例の
最小計算法である6個の乱数を一括に処理する方法が、
2810回の有限体上の乗法演算が必要なのに対し、本
発明と6個の乱数を一括に処理する方法を組み合わせた
方法は2033回の有限体上の乗法演算しか必要としな
く、約72.3%にまで計算量を作減できる。
【0192】また上記の説明では従来例4との組合せに
よる計算量について述べたが、従来例3と組み合わせて
も同様の効果が得られる。
【0193】なお、この第二の実施例では6個の乱数を
2個ずつに排他的に分割して11個のエルガマル暗号の
第一の暗号文ならびに第二の暗号文の一部を作成した
が、一般化できる。一般にL個の乱数kl(l=1,2, …
,L)をそれぞれm(kl)個ずつに分割して、M個以下の
をエルガマル暗号の第一の暗号文ならびに第二の暗号文
の一部を作成しても同様な効果が得られる。ただしMは
(数45)で与えられる。
【0194】
【数45】
【0195】またこの第二の実施例では、乱数を排他的
に分割したが、その乱数よりも小さい正の整数の和に分
割しても同様な効果が得られる。
【0196】(第三の実施例) ・有限体上のエルガマル署名における演算器 図3は本発明の第三の実施例における有限体上のエルガ
マル署名における演算器の構成を示すものである。同図
において21は乱数生成部、22は前記21の乱数生成
部から供給される2個以上の乱数の少なくとも1個以上
の乱数を2個以上の部分乱数に分割する乱数分割部、2
3はビット指定部、24は前記22の乱数分割部から出
力される前記部分乱数を有限体上の特定元に作用させた
構成元を作成する有限体上のべき乗計算部、25は前記
24の有限体上のべき乗計算部から出力される2個以上
の前記構成元に対して前記有限体上の乗法演算を組み合
わせて有限体上の元を作成する第一の署名文生成部、2
6は組合せ指定部、27は保管部、28は有限体上の乗
法計算部、29は第二の署名文生成部である。
【0197】以下同図を参照しながら実施例の手順を説
明する。この例は初めに6個の乱数が入力された後、1
1個の乱数をシステムの公開鍵に作用させた値を出力す
るという例である。 (15)乱数分割 乱数生成部21から乱数k1,k2,k3,k4,k5,k6 が6
個供給されて、乱数分割部22に入力される。もう一
方、ビット指定部23からビット分割情報T1,T 2,T3,
4,T5,T6 が乱数分割部22に入力される。ここでZ
0(n-1) = { 0,1,… ,n-1 }とすると、ビット分割情
報T1,T2,T3,T4はZ0(n-1)の部分集合である。乱数
分割部22は、乱数ki(i=1,2,3,4,5,6)をビット分割
情報Ti(i=1,2,3,4,5,6)により次のように部分乱数k
i [1],ki [2](i=1,2,3,4,5,6)に分割する。すなわち、
乱数ki(i=1,2,3,4,5,6)の2進数展開を(a[i]n-1
… ,a[i]0)(i=1,2,3,4,5,6)とし、部分乱数ki [1],
i [2](i=1,2,3,4,5,6)の2進数展開をそれぞれ(b
[i]n-1,… ,b[i]0),(c[i]n-1,… ,c[i]0)とす
るとき、b[i]j,c[i]j (i=1,2,3,4,5,6 j=0,1,
… ,n-1)を次の(数46)(数47)の規則によって定
める。
【0198】
【数46】
【0199】
【数47】
【0200】このとき ki = ki [1]+ki [2] (i=1,2,3,4,5,6) が成り立つ。 (16)エルガマル署名の第一の署名文の構成元の作成 乱数分割部22から出力される部分乱数ki [1],k
i [2](i=1,2,3,4,5,6)は、有限体上のべき乗計算部2
4に供給される。有限体上のべき乗計算部24は次の
(数48)のような操作で有限体の値Ki [1],Ki [2](i
=1,2,3,4,5,6)を求める。
【0201】gをシステムの公開鍵である有限体の値と
すると、
【0202】
【数48】
【0203】ここでg^ki [j]は(従来例4)に述べた
方法で6個のg^ki [j]を一括に処理して計算すること
もできる。
【0204】このようにして12個の有限体の値である
第一の署名文の構成元が作成される。 (17)エルガマル署名の第一の署名文の作成 有限体上のべき乗計算部24から出力された有限体の値
i [1],Ki [2](i=1,2,3,4,5,6)は、乱数分割部22
から出力された部分乱数ki [1],ki [2](i=1,2,3,4,5,
6)とともに第一の署名文生成部25に入力される。また
組合せ指定部26から組み合わせ指定情報Qj(j=1,2,
… ,11)が第一の署名文生成部25に入力される。
【0205】組み合わせ指定情報Qj(j=1,2, … ,11)
は有限体の値Ki [1],Ki [2](i=1,2,3,4,5,6) の中か
らどの2個の値を選びかということを定める情報であ
る。第一の署名文生成部25はQj(j=1,2, … ,11)に
基づき、部分乱数を組み合わせた疑似乱数r[j](j=1,
2, … ,11),エルガマル署名の第一の署名文R[j](j=
1,2, … ,11)を作成する。その作成方法は例えばQ
1が、K2 [1]とK4 [2]の2個を選ぶという情報であった
ならば、r[1],R[1]は次の(数49)ならびに(数5
0)で定まるというものである。
【0206】
【数49】
【0207】
【数50】
【0208】このようにして、第一の署名文生成部25
は組み合わせ指定情報Qj(j=1,2,… ,11)に基づき、
部分乱数を組み合わせた疑似乱数r[j](j=1,2, … ,1
1),エルガマル署名の第一の署名文R[j](j=1,2, …
,11)を作成し、保管部27に保管する。 (18)エルガマル署名の第二の署名文の構成元の作成 第一の署名文生成部25から出力されるエルガマル署名
の第一の署名文R[j](j=1,2, … ,11)は、有限体上の
乗法計算部28に供給される。有限体上の乗法計算部2
8は次の(数51)のような操作で有限体の値X[j](j
=1,2, … ,11)を求める。
【0209】xAを自分自身の公開鍵である有限体上の
値とすると、
【0210】
【数51】
【0211】このようにして有限体上の乗法計算部28
は12個の有限体上の値であるエルガマル署名の第二の
署名文の構成元X[j](j=1,2, … ,11)を作成し、r
[j],R[j](j=1,2, … ,11)と組にして保管部27に
保管する。 (19)エルガマル署名の第二の署名文の作成 署名したいメッセージm[j]が第二の署名文生成部29
に入力されると、保管部27から組として保管されてい
るr[j],R[j],X[j]が第二の署名文生成部29に入
力される。第二の署名文生成部29は次の(数52)を
満たすs[j]を計算する。
【0212】
【数52】
【0213】このようにして求まったs[j]とm[j]なら
びにR[j]を受信者に送信する。そして一度使われたr
[j],R[j],X[j]は保管部27に保管しておく必要は
ない。 (20)計算量について 計算量については、第二の従来例とほとんど同じ計算し
かしていないので前記(14)と全く同じ内容になる。(従
来例4)で述べている6個の乱数に対する処理を同時に
行なう方法と組み合わせれば、従来例の最小計算法に対
し約72.3%にまで計算量を削減できる。
【0214】また上記の説明では従来例4との組合せに
よる計算量について述べたが、従来例3と組み合わせて
も同様の効果が得られる。
【0215】なお、この第三の実施例では6個の乱数を
2個ずつに排他的に分割して11個のエルガマル署名の
第一の署名文ならびに第二の署名文の一部を作成した
が、一般化できる。一般にL個の乱数kl(l=1,2, …
,L)をそれぞれm(kl)個ずつに分割して、M個以下の
をエルガマル暗号の第一の署名文ならびに第二の署名文
の一部を作成しても同様な効果が得られる。ただしMは
(数53)で与えられる。
【0216】
【数53】
【0217】またこの第三の実施例では、乱数を排他的
に分割したが、その乱数よりも小さい正の整数の和に分
割しても同様な効果が得られる。
【0218】
【発明の効果】以上に説明したように本発明は、従来の
技術以上の速さで有限可換群上の特定元に乱数を作用さ
せた有限可換群の元を作成できる。従来例と組み合わせ
ることにより、従来の技術で最小の計算量である方法に
比べて計算量が約72%になる、すなわち同じ時間内で
処理できる予備処理量は従来の技術に比べ1.39倍にな
る。よって予備計算をする回数が減り、その実用的価値
は大きい。
【図面の簡単な説明】
【図1】第一の実施例の楕円曲線を用いたエルガマル暗
号における演算器の構成図
【図2】第二の実施例の有限体上のエルガマル暗号にお
ける演算器の構成図
【図3】第三の実施例の有限体上のエルガマル署名にお
ける演算器の構成図
【符号の説明】
1,11,21 乱数生成部 2,12,22 乱数分割部 3,13,23 ビット指定部 4,8 楕円曲線上の整数作用部 5,9,15,19 暗号文生成部 6,16,26 組合せ指定部 7,17,27 保管部 10 楕円曲線上の楕円曲線上の加法演算部 14,18,24 有限体上のべき乗計算部 20,28 有限体上の乗法計算部 25,29 署名文生成部
フロントページの続き (58)調査した分野(Int.Cl.7,DB名) G09C 1/00 - 5/00 H04K 1/00 - 3/00 H04L 9/00 G06F 7/58 INSPEC(DIALOG) JICSTファイル(JOIS) WPI(DIALOG)

Claims (4)

    (57)【特許請求の範囲】
  1. 【請求項1】有限可換群を定義する演算により、前記有
    限可換群の特定元に異なる乱数を作用させ前記有限可換
    群の別の元を作成する演算器であって、 2個以上の乱数の少なくとも1個以上の乱数を2個以上
    の部分乱数に分割する乱数分割部と、 前記乱数分割部から出力される前記部分乱数を前記有限
    可換群の前記特定元に作用させた構成元を作成する整数
    作用部と、 前記整数作用部から出力される2個以上の前記構成元に
    対して前記有限可換群の定義演算とその逆元演算の両方
    またはその一方の演算を組み合わせて前記有限可換群の
    元を作成する作用元生成部とを備えたことを特徴とする
    有限可換群における演算器。
  2. 【請求項2】有限体上定義された楕円曲線E上の元で構
    成される有限可換群をE(G)とするとき、E(G)を定義
    する演算により、前記E(G)の特定元に異なる乱数を作
    用させ前記E(G)の別の元を作成する演算器であって、 2個以上の乱数の少なくとも1個以上の乱数を2個以上
    の部分乱数に分割する乱数分割部と、 前記乱数分割部から出力される前記部分乱数を前記有限
    可換群の前記特定元に作用させた構成元を作成する整数
    作用部と、 前記整数作用部から出力される2個以上の前記構成元に
    対して前記楕円曲線E上の加法演算または減法演算組み
    合わせて前記E(G)の元を作成する作用元生成部とを備
    えたことを特徴とする請求項1記載の有限可換群におけ
    る演算器。
  3. 【請求項3】有限体上を定義する演算により、前記有限
    体の特定元に異なる乱数を作用させ前記有限体の別の元
    を作成する演算器であって、 2個以上の乱数の少なくとも1個以上の乱数を2個以上
    の部分乱数に分割する乱数分割部と、 前記乱数分割部から出力される前記部分乱数を前記有限
    体の前記特定元に作用させた構成元を作成する整数作用
    部と、 前記整数作用部から出力される2個以上の前記構成元に
    対して前記有限体上の乗法演算を組み合わせて前記有限
    体の元を作成する作用元生成部とを備えたことを特徴と
    する請求項1記載の有限可換群における演算器。
  4. 【請求項4】生成する有限可換群の元の個数を部分乱数
    の総数よりも少なくする組合せ指定部を備えたことを特
    徴とする請求項1か請求項2か請求項3のいずれかに記
    載の有限可換群における演算器。
JP04199415A 1992-07-27 1992-07-27 有限可換群における演算器 Expired - Fee Related JP3123820B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP04199415A JP3123820B2 (ja) 1992-07-27 1992-07-27 有限可換群における演算器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP04199415A JP3123820B2 (ja) 1992-07-27 1992-07-27 有限可換群における演算器

Publications (2)

Publication Number Publication Date
JPH0643808A JPH0643808A (ja) 1994-02-18
JP3123820B2 true JP3123820B2 (ja) 2001-01-15

Family

ID=16407429

Family Applications (1)

Application Number Title Priority Date Filing Date
JP04199415A Expired - Fee Related JP3123820B2 (ja) 1992-07-27 1992-07-27 有限可換群における演算器

Country Status (1)

Country Link
JP (1) JP3123820B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0639721U (ja) * 1990-11-13 1994-05-27 能臣 山田 ストロー入容器

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7567669B2 (en) 1996-05-17 2009-07-28 Certicom Corp. Strengthened public key protocol
GB9713138D0 (en) * 1997-06-20 1997-08-27 Certicom Corp Accelerated finite field operations on an elliptic curve
WO1999020020A1 (en) * 1997-10-14 1999-04-22 Certicom Corp. Key validation scheme
US7215773B1 (en) 1998-10-14 2007-05-08 Certicom.Corp. Key validation scheme
JP6894979B2 (ja) * 2017-02-24 2021-06-30 エヌイーシー ラボラトリーズ ヨーロッパ ゲーエムベーハー 分散型ブロックチェーンコンセンサスネットワークにおいて新しいブロックに署名する方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Amos Fiat,"Batch RSA,"Lecture Notes in Computer Science,Vol.425,(1990),pp.175−185

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0639721U (ja) * 1990-11-13 1994-05-27 能臣 山田 ストロー入容器

Also Published As

Publication number Publication date
JPH0643808A (ja) 1994-02-18

Similar Documents

Publication Publication Date Title
AU677269B2 (en) A cryptographic method
Harn Public-key cryptosystem design based on factoring and discrete logarithms
US8184803B2 (en) Hash functions using elliptic curve cryptography
Almaiah et al. A new hybrid text encryption approach over mobile ad hoc network
US6243467B1 (en) Method of elliptic curve cryptographic digital signature generation and verification using reduced base tau expansion in non-adjacent form
CN109039640B (zh) 一种基于rsa密码算法的加解密硬件系统及方法
JP4137385B2 (ja) 公開鍵および秘密鍵による暗号化方法
US20120221858A1 (en) Accelerated Key Agreement With Assisted Computations
US6898284B2 (en) Cryptographic identification and digital signature method using efficient elliptic curve
KR20000071078A (ko) 유한 필드상의 이산 대수 암호시스템의 원분 다항식 구조
Zheng et al. Practical approaches to attaining security against adaptively chosen ciphertext attacks
CN109450640B (zh) 基于sm2的两方签名方法及系统
Vanstone et al. Elliptic curve cryptosystems using curves of smooth order over the ring Z/sub n
US6769062B1 (en) Method and system of using an insecure crypto-accelerator
US6993136B2 (en) Cryptographic key exchange method using efficient elliptic curve
US6480606B1 (en) Elliptic curve encryption method and system
Lim et al. A generalized Takagi-cryptosystem with a modulus of the form prqs
CN114172651B (zh) 一种sm9公钥加密算法、解密算法的gpu加速实现方法
JP3123820B2 (ja) 有限可換群における演算器
EP2493112B1 (en) Accelerated key agreement with assisted computations
EP2395698A1 (en) Implicit certificate generation in the case of weak pseudo-random number generators
US20020025034A1 (en) Cryptographic encryption method using efficient elliptic curve
US7505585B2 (en) Method of generating cryptographic key using elliptic curve and expansion in joint sparse form and using same
KR20010000048A (ko) m진법 방식을 이용한 타원곡선상 다중 점의 상수고속연산 방법
Scheidler Cryptography in quadratic function fields

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees