JPH08202263A - 暗号化システムでの羃乗演算方法及びその装置 - Google Patents

暗号化システムでの羃乗演算方法及びその装置

Info

Publication number
JPH08202263A
JPH08202263A JP7017333A JP1733395A JPH08202263A JP H08202263 A JPH08202263 A JP H08202263A JP 7017333 A JP7017333 A JP 7017333A JP 1733395 A JP1733395 A JP 1733395A JP H08202263 A JPH08202263 A JP H08202263A
Authority
JP
Japan
Prior art keywords
exponent
bit
blocks
block
calculating
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
JP7017333A
Other languages
English (en)
Other versions
JP3540852B2 (ja
Inventor
Hitsuchu Ri
弼 中 李
Saikun Rin
采 ▲薫▼ 林
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics 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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JPH08202263A publication Critical patent/JPH08202263A/ja
Application granted granted Critical
Publication of JP3540852B2 publication Critical patent/JP3540852B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Storage Device Security (AREA)
  • Complex Calculations (AREA)

Abstract

(57)【要約】 【目的】 暗号化システムで要求される固定した基本要
素を基にするモジュラ羃乗演算をより速く遂行するため
の羃乗演算方法及びその装置を提供する。 【構成】 指数Rのビット列を分割する指数分割過程
と、前記指数Rからビット列Ri,j を生成する過程と、
前記Ri,j を二進数形態で生成する過程と、gi を基数
gを利用して生成する過程と、gR を前記Ri,j および
i を利用して生成する過程と、整数fおよび整数jに
対してG[j][f]を計算して記憶する過程と、gR を計算
する過程を含み、非常に簡単でありながらもより良い性
能をなし得る。また、本方法は広い範囲の時間−記憶容
量のトレードオフにより多様な計算環境に融通性よく応
用可能である。特に、非常に小さい記憶部を備えるスマ
ートカードによる計算速度を根本的に向上させる。さら
に、本発明はgRE 形態の計算速度も向上させる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、暗号化システムにおい
て要求される固定した基本要素を基とするモジュラ羃乗
演算を、より速く遂行するための羃乗演算方法及びその
装置に係り、特に固定した基本要素に依存する事前計算
テーブルを利用した羃乗演算方法及びその装置に関す
る。
【0002】
【従来の技術】1976年に Diffie と Hellmanとによ
り初めて公開鍵暗号システムの概念が紹介されて以来、
大部分の暗号プロトコルが公開鍵暗号方式に基づいて開
発されてきた。公開鍵暗号システムは、数学的に非常に
難しい問題の一方向性を利用して公開鍵と秘密鍵とを計
算することにより、公開鍵が知られてもここから秘密鍵
を導くのが計算上不可能である事実を利用している。
【0003】数学的に難しい問題の代表的な例が、有限
グループでの離散的対数問題と合成数を素因数分解する
問題とである。ところが、このような問題に基づいて設
計された暗号システムは、適法な使用者にとっても、従
来の暗号システムに比べて計算量が多くて速度が遅いと
いう短所を有する。したがって、計算量を減らすための
アルゴリズムの開発が重要な研究分野となっている。
【0004】公開鍵暗号システムで要求される最も一般
的な演算が、有限グループ(代表的に多く使用されるグ
ループとしては、整数リングや有限体(Finite Field)
上の掛け算群、有限体上で定義された楕円曲線上の足し
算群などがある)での羃乗演算である。一般的に、羃乗
演算とはグループのランダムな2つの要素XとRとに対
してXR を計算することを言う。多くの暗号プロトコル
でグループの固定した基本要素gを基にランダムな指数
Rに対して羃乗gR を計算するのが必要である。その例
として、離散的対数問題の難しさを利用する大部分のプ
ロトコル、特に最も基本的な暗号プロトコルに属する識
別およびディジタル署名方式がある。
【0005】与えられたグループ(普通ZN 、ここで、
Nは大きい素数又は2つの大きい素数の積)での速い羃
乗演算の問題は、大部分の公開鍵暗号化システムの効率
的な遂行に非常に重要である。以下では、便宜上計算が
N に対して遂行されると仮定し、したがって掛け算は
“multiplication mod N”を意味する。以下の説明に
おいて、gはZN の固定した要素、Rは[0,2n )で
のnビットランダム指数として使用される。整数Sに対
するSのビット長さ又は集合Sに対するSのカージナリ
ティ(cardinality)は|S|で表記される。また、xよ
り小さくない最小整数は「x(例えば、「1.29=2)、
xより大きくない最大整数はx」(例えば、1.29」=
1)で表記される。
【0006】典型的な羃乗演算方法は、自乗と掛け算
(square-and-multiply)方法として知られる二進アルゴ
リズムを使用する。512ビットの法(modulus)と指数
に対して、該方法は平均766回の掛け算、最悪の場合
に1022回の掛け算が必要である。符号二進アルゴリ
ズムは、平均682回、最悪の場合でも768回にまで
必要な掛け算の数を減らすことができる。
【0007】一方、中間値のための適度な記憶部を使用
すると、その遂行能力をさらに相当向上させることがで
きる。D.E.Knuth“The art of computer programm
ing”,Vol. 2 : Seminumerical algorithms, second E
dition, Addison-wesley, 1981 の5ウインドウアルゴ
リズムは、16回の掛け算のオンライン事前計算を含め
て、平均およそ609回の掛け算で羃乗演算ができる。
【0008】羃乗演算について知られたもののうち最も
速いアルゴリズムは、アディションチェーン(addition
chain)に基づくウインドウ方法であり、ここで“1
0”のようにさらに大きいウインドウを使用することが
できるが、中間値のためのさらに多くの記憶部が要求さ
れる。最も短いアディションチェーンを捜すのが、NP
完全問題(complete problem)であるが、発見的な解決
法を適用して、およそ長さ605のアディションチェー
ンが計算され得ると報告されている。
【0009】このような一般的な方法は、RSA(すな
わち、R.L.Rivest, A.Shamir and L.Adleman “A metho
d for obtaining digital signatures and public-key
cryptosystems”, communication ACM, 21(2), 120-12
6, 1978 )、およびElGamal(T.ElGamal “A public
key cryptosystem and a signature scheme based on t
he discrete logarithm”, IEEE Transaction Informat
ion Theory 31(4),469-472, 1985) のように羃乗演算を
要求するいずれの暗号化システムにも使用され得る。
【0010】
【発明が解決しようとする課題】しかしながら、離散的
対数問題に基づく多くの暗号プロトコルにおいては、固
定した基数gおよびランダムに選択された指数Rに対す
るgR を計算する必要がある。固定した基本要素によ
り、要求される掛け算の数を減らすために事前計算テ−
ブルを使用できるが、勿論事前計算値のための記憶部が
必要である。
【0011】本発明の目的は、公開鍵暗号システムで固
定した基本要素に依存する事前計算テ−ブルを利用し
て、羃乗演算をより高速に行える羃乗演算方法及びその
装置を提供することである。本発明で提示した方法は、
上記いずれのグループにでも適用が可能である。
【0012】
【課題を達成するための手段】前記目的を達成するため
に、本発明による暗号化システムでの羃乗演算方法は、
暗号化システムで固定要素gとランダムに選択されたn
ビット指数Rに対して羃乗演算gR を計算するための羃
乗演算方法において、(a)前記指数Rのビット列を所
定数hのブロックに分割し、前記分割された各ブロック
のビット列を所定数vの副ブロックに分割して、前記指
数Rのビット列をv列およびh行からなるh×v配列に
分割する指数分割過程と、(b)各ブロックおよび副ブ
ロックの位置に対応する値を考慮し、前記指数Rから次
式のようにi番目行に当たるブロックのビット列Ri
よびi番目行のj番目列に該当する副ブロックのビット
列Ri,j を生成する過程と、
【0013】
【数12】
【0014】(c)前記Ri,j を0より大きくhより小
さい全ての整数i、および0と同じか大きくvより小さ
い全ての整数jに対して、次式のように二進数の形態で
生成する過程と、
【0015】
【数13】
【0016】ここで、ei,jb+kは、指数Rのi番目行の
j番目列のブロックに該当するビット列Ri,j のk番目
ビットの値、(d)0より大きくhより小さい全ての整
数iに対して、gi を次式のように前記基数gを利用し
て生成する過程と、
【0017】
【数14】
【0018】(c)gR を前記(c)過程でのRi,j
よび前記(d)過程でのgi を利用して、次式のように
生成する過程と、
【0019】
【数15】
【0020】(f)0より大きく2h より小さい全ての
整数f(ここで、fは二進数でeh- 1 ,eh-2 …e1
0 の形態で表わされる)、および0と同じか大きくv
より小さい全ての整数jに対して、次の値を計算して記
憶する過程と、
【0021】
【数16】
【0022】(g)前記記憶された計算値を利用して、
次式によりgR を計算する過程と、
【0023】
【数17】
【0024】ここで、Ij,k は、j番目の副ブロックに
該当するビット列でk番目に位置するビットの、iが0
からh−1までの全てのブロックに亙るhビットの大き
さのビット列からなる値、を含むことを特徴とする。こ
こで、前記(a)過程では、前記副ブロック内に含まれ
るビットの数がほぼ同一になるように分割する。また、
前記(a)過程では、前記副ブロック内に含まれるビッ
トの数が相異なるように分割する。また、前記(g)過
程では、vが2つの整数pとwの積(v=pw)で表わ
される場合に、p個のプロセッサを備え、i(i=0,
…,p−1)番目のプロセッサが次式による演算を遂行
して、
【0025】
【数18】
【0026】並列処理する。又、本発明による暗号化シ
ステムでの羃乗演算方法は、暗号化システムで固定要素
gとランダムに選択されたnビット指数Rに対して羃乗
演算gR を計算するための羃乗演算方法において、
(a)前記指数Rのビット列を所定数hのブロックに分
割し、前記分割された各ブロックのビット列を所定数v
の副ブロックに分割することにより、前記指数Rのビッ
ト列をv列およびh行からなるh×vの配列とする指数
分割過程と、(b)各副ブロックに含まれるビットの数
をbとした場合に、0より大きく2 h より小さい全ての
整数f(ここで、fは二進数でeh-1 ,eh-2 …e1
0の形態で表わされる)、および0と同じか大きくv
より小さい全ての整数jに対して、次の値を計算して記
憶する過程と、
【0027】
【数19】
【0028】(c)前記記憶された計算値を利用して、
次式によりgR を計算する過程と、
【0029】
【数20】
【0030】ここで、Ij,k は、j番目の副ブロックに
該当するビット列でk番目に位置するビットの、iが0
からh−1までの全てのブロックに亙るhビットの大き
さのビット列からなる値、を含むことを特徴とする。
又、本発明による暗号化システムでの羃乗演算装置は、
暗号化システムで固定要素gとランダムに選択されたn
ビット指数Rに対して羃乗演算gR を計算するための羃
乗演算装置において、(a)入力された前記指数Rのビ
ット列を、所定数hのブロックに分割し、前記分割され
た各ブロックのビット列を所定数vの副ブロックに分割
することにより、v列およびh行からなるh×vの配列
とする指数分割手段と、(b)各副ブロックに含まれる
ビットの数をbとした場合に、0より大きく2 h より小
さい全ての整数f(ここで、fは二進数でeh-1 ,e
h-2 …e1 ,e0の形態で表わされる)、および0と同
じか大きくvより小さい全ての整数jに対して、次の値
を計算する事前計算手段と、
【0031】
【数21】
【0032】(c)前記事前計算手段で計算された値
を、j及びfの値に対応して記憶する記憶手段と、
(d)前記記憶された計算値を利用して、次式によりg
R を計算する羃乗計算手段と、
【0033】
【数22】
【0034】ここで、Ij,k は、j番目の副ブロックに
該当するビット列でk番目に位置するビットの、iが0
からh−1までの全てのブロックに亙るhビットの大き
さのビット列からなる値、を含むことを特徴とする。
【0035】
【作用】かかる構成により、事前計算による速い羃乗演
算のための新しい方法が提示されたことにより、非常に
簡単でありながらもBGMW方法よりもさらに優れた演
算性能を達成し得る。
【0036】
【実施例】以下、先ず従来のBGMW(すなわち、E.F.
Brickell, D.M.Gordon, K.S.McCurley and D.Wilson
“Fast exponentiation with precomputation”, In Pr
oc.Eurocrypt'92, Balatonfured, Hungary, 1992 )方
法について簡単に調べた後、本発明の実施例を詳細に説
明し、更にこれらの方法による遂行能力を図面を利用し
て比較説明する。
【0037】<BGMW方法>先ず、Eurocrypt ′92に
おいて、Brickell,Gordon,McCurley,Wilsonにより提
案された従来の事前計算方法であるBGMW方法を簡単
に考察する。Eurocrypt ′92において、Brickellなどは
R の計算速度を向上させるための方法を提案した。か
れらの基本戦略は、指数Rを基数bで次のように表現
し、全ての羃乗
【0038】
【数23】
【0039】を事前計算する。 R=dt-1t-1 +…+d11 +d0 但し、0≦di <b(0≦i<t) すると、gR は次の式により計算される。
【0040】
【数24】
【0041】基数bに対する基本ディジットセットを使
用して、要求される記憶容量が増加する反面、計算時間
をさらに減少するように基本技法を拡張させ得る。BG
MW方法をさらに詳細に説明する。もし、ある整数が集
合Dからのディジットを使用して基数bで表わされると
すると、整数Dの集合は基数bに対する基本ディジット
集合と称される。次の式(1) が基数bに対する基本ディ
ジット集合となるように、乗数の集合Mおよびパラメー
タhが選択できると仮定する。
【0042】 D(M,h)={mk|m∈M,0≦k≦h} …(1) すると、nビット指数Rは次の式(2) のように表わされ
る。
【0043】
【数25】
【0044】このようなRの表現で、gR は式(3) によ
り計算される。
【0045】
【数26】
【0046】したがって、もし[全てのi<tおよびm
∈M]に対して、羃乗
【0047】
【数27】
【0048】を予め計算して記憶すると、gR は次のア
ルゴリズムにより約t|M|の事前計算値を利用して、
多くて(t+h−2)回の掛け算で計算され得る。
【0049】
【数28】
【0050】前記のアルゴリズムにより遂行される掛け
算の数は、最悪の場合(t+h−2)回、w=1,…,
hに対して
【0051】
【数29】
【0052】の形態の積を計算するための(t−h)回
の掛け算、およびフォーループ(for-loop)のための
(2h−2)回の掛け算、であり、平均{t(b−1)
/b+h−2}回(ランダムに選択された指数に対し
て、t/bディジットは“0”と予想される)であるこ
とが容易に分かる。Dに対する最も明らかな例は、基数
bの数系(M={1},h=b−1,t=「logb(2n
1))である。512ビット指数に対して、b=26の選
択は予想される掛け算の数を最小化する。このような基
本的な技法は、平均127.8回、最悪の場合132回
の掛け算および109個の事前計算値のための記憶部を
要求する。さらに適切な基数の選択はb=32である。
なぜならば、指数Rに対するディジットは1回に5ビッ
トを抽出することにより、基数変換(radix conversio
n)なく計算され得るからである。この基数において要
求される掛け算の数は、平均的な場合で只1つのみ増加
し、最悪の場合にも変わらず維持される。
【0053】この基本技法が、可用な記憶部が小さい場
合には明白な選択であるとしても、記憶部の数が109
以下に下がるにつれ遂行能力が相当落ちる。これによ
り、BGMW方法は、可用な記憶部が非常に小さい場合
に、その計算を遂行するための効率的な方法が提供でき
ないことが分かる。また、Brickellなどは、勿論事前計
算値のためにさらに多くの記憶部を利用するが、要求さ
れる掛け算の数を減少させるために他の数系を利用する
さまざまな技法を提供した。極端な例の1つは、集合M
を次の式のように選択する。
【0054】 M2 ={m|1≦m<b,w2(m)=0 mod 2} ここで、wp (m) はmを割れるpの最高羃乗である(例
えば、w2(40)=3。すると、1≦di <bにおい
て、あるm∈M2 に対してdi =m又はdi =2mとな
る(すなわち、h=2)。このように、|M2 |「log
b (2n −1)個の値に対する記憶部を備えると、gR は平
均t回の掛け算、最悪の場合でもt(b−1) /b回の
掛け算で計算され得る。例えば、b=256(t=6
4,|M2 |=170)を採用すると、平均10880
個の事前計算値で平均63.75回の掛け算となる。Br
ickellなどが提示した2つのテ−ブルを、本実施例の方
法による結果と比較するために、図6の(A),(B)
に示す。
【0055】<本実施例の羃乗演算方法>次いで、本実
施例による事前計算テ−ブルを利用したgR の速い計算
のための羃乗演算方法を説明する。本方法は、もしnビ
ット指数Rが2つの同一のブロック(すなわち、R=R
1×2n/2 +R0 )で割られ、
【0056】
【数30】
【0057】が事前に計算されると、gR
【0058】
【数31】
【0059】のように計算することにより、要求される
掛け算の数をほぼ半分に減らせるという簡単な観察を一
般化したものである。ここで、二進アルゴリズムについ
てより詳細に説明する。nビット指数Rを2つの同一の
ブロックに分けると仮定すると、指数Rは次のようなR
0 ,R1 で示すことができる。
【0060】
【数32】
【0061】すると、gR は次のように表わされる。
【0062】
【数33】
【0063】そして、g2 =g*g1 とすると、gR
求めるためのアルゴリズムは次の通りである。
【0064】
【数34】
【0065】前記のアルゴリズムで要求される掛け算の
回数は、最悪の場合で、2(k−1)回、平均で7/4
(k−1)回になり、単にgR を二進アルゴリズムで計
算する時の掛け算の回数(最悪:2(n−1),平均:
3/2(n−1))に比べてほぼ半分に減らせることが
分かる。後述されるように、本願で提案された方法は、
BGMW方法に比べて、可用記憶容量が非常に小さいか
あるいは大きい場合にさらに効率的であり、また広い範
囲で時間−メモリのトレ−ドオフを与えるので、さらに
融通性がよい。また、制限された記憶容量および計算能
力を有するスマ−トカ−ドへの応用では、小さい記憶部
を使用するのが非常に重要であるが、BGMW方法はこ
の場合にそれほど効率的でない。
【0066】本願で提案された方法の他の利点は、Schn
orr の識別および署名技法やその変形(例えば、Bricke
ll-McCurley 技法および Okamoto技法)の検証に必要な
RE (ここで、yは固定されず、Eの大きさはRの
大きさより一層小さい)を効率的に計算できる。このよ
うな種類の計算において、指数を非二進羃指数で表記す
るのは、オンライン計算の負荷を極めて増加させること
に注目しなければならない。
【0067】最後に、提案された方法が並列処理にも又
非常に適することを説明する。 <指数の分割>先ず、RをgR を計算するためのnビッ
ト指数とする。図1のように、指数Rをh個のブロック
i (0≦i≦h−1、ビット大きさa=「(n/
h))に分割し、各Ri はさらに小さいv個の副ブロッ
クRi,j (0≦j≦v−1、ビット大きさb=「(a/
v))に分割する。
【0068】ここで、図1は、グループの固定した基本
要素gが与えられた場合、任意のnビットランダム数R
に対して、本実施例による事前計算方法を利用して羃乗
Rを計算するために、指数Rを分割する方法を示した
ものである。 <分割ブロックによるgR の表現>
【0069】
【数35】
【0070】と定義する。すると、式(4) を利用してg
R を次のように表現できる。
【0071】
【数36】
【0072】<gR の二進表現>もし、Ri =ei,a-1
…ei,1i,0 がRi (0≦i<h)の二進表現とする
と、Ri,j (0≦j<v)は次のように二進で表記され
る。
【0073】
【数37】
【0074】よって、式 (5)は次のように書き直せる。
【0075】
【数38】
【0076】<事前計算>次いで、次の値が全ての1≦
i<2h および0≦j<vに対して事前計算されて記憶
されると仮定する。
【0077】
【数39】
【0078】ここで、fは、eh-1 …e10 の十進値
と等価である。 <羃乗計算>図2のように事前計算値に対するテ−ブル
が記憶されていると、式(6) は次のように書き直せる。
【0079】
【数40】
【0080】ここで、Ij,k =eh-1,bj+k…e1,bj+k
0,bj+k(0≦j<b)である(Ij, k は、図1のj番目
のブロック列のk番目のビットから成る行方向のhビッ
ト列に対応する)。次のような一般的な自乗と掛け算方
法により、式(8) を使用してgR を直接計算する。該ア
ルゴリズムは、事前計算テ−ブルG[j][f]を利用
して、任意のnビットランダム数Rに対してgR を計算
するものであり、ここで、Rは図1のように分割され、
アルゴリズムに使用されるIj,k は該Rの配列から読み
出して使用する。
【0081】
【数41】
【0082】<羃乗演算の具体例>以上で説明された、
本実施例による羃乗演算方法をさらに詳細に考察するた
めに、具体的な例を通じて説明する。具体例において、
指数Rは32ビットであり、二進数で表わされるRの値
は次のようであると仮定する。
【0083】 R=01100010101001111001000101011011(2) ここで、指数Rは4(=h)つのブロックRi (0≦i
≦3)に分割され、各Ri はさらに小さい3(=v)つ
の副ブロックRi,j にさらに分割される。すると、各ブ
ロックの大きさaおよび各副ブロックの大きさbは次の
通りである。 a=「(n/h)=「(32/4)=8ビット b=「(a/v)=「(8/3)=3ビット 図3は前述したように、本例で適用される32ビットの
指数Rに対する分割配置図を示すものである。図3を参
照して、指数Rは式(4) により次のように表記され得
る。
【0084】
【数42】
【0085】そして、これを具体的に表記すれば次の通
りである。 R0 =01011011(2) =01(2) *26 + 011(2) *23
011(2) *201 =10010001(2) =10(2) *26 + 010(2) *23
011(2) *202 =10100111(2) =10(2) *26 + 100(2) *23
111(2) *203 =01100010(2) =01(2) *26 + 100(2) *23
010(2) *200 =gとし、gi
【0086】
【数43】
【0087】と定義する。 g0 =g,g1 =(g256)1 ,g2 =(g256)2 ,g3
=(g256)3 すると、式(5) によりgR を次のように表現できる。
【0088】
【数44】
【0089】また、Ri =ei,7 …ei,1i,0 がRi
(i=0,1,2,3)の二進表現なので、Ri,j (j
=0,1,2)は次のように二進で表わされる。 Ri,j =ei,j3+2i,j3+1i,j3+0 したがって、gR は次のように書き直せる。
【0090】
【数45】
【0091】次いで、次の値が全ての〔1≦f<24 お
よび0≦j<3〕に対して事前計算され記憶されると仮
定する。
【0092】
【数46】
【0093】ここで、fはe3210 の十進値を
いう。すなわち、次の通りである。 G[0][1]=g3 02 01 00 1 G[0][2]=g3 02 01 10 0 G[0][3]=g3 02 01 10 1 G[0][4]=g3 02 11 10 1 ・・・・・・・・・・・ G[0][14] =g3 12 11 10 0 G[0][15] =g3 12 11 10 1 そして、式(7) により、
【0094】
【数47】
【0095】ここで、23 =8,2j3=8j である。例
えば、j=1に対して、 G[1][1]=(G[0][1])8 G[1][2]=(G[0][2])8 ・・・・・・・・・・・ G[1][15] =(G[0][15] )8 そして、j=2に対して、 G[2][1]=(G[1][1])8 =〔(G[0][1])88 =(G[0][1])64 G[2][2]=(G[1][2])8 =〔(G[0][2])88 =(G[0][2])64 ・・・・・・・・・・・ G[2][15] =(G[1][15] )8 =〔(G[0][15] )88 =(G[0][15])64 次に示した図4は、前述したような方法により求められ
た事前計算値G[j][f]をメモリに記憶する配列形態、お
よびここに記憶される値を示す。
【0096】すると、gR は式(8) により次のように書
き直せる。
【0097】
【数48】
【0098】ここで、Ij,k =e3,3j+k2,3j+k
1,3j+k0,3j+k(0≦j<3)である。全てのjおよび
kに対してIj,k を計算すると次の通りである。 I0,0 =e3,02,01,00,0 =0111(2) =7 I0,1 =e3,12,11,10,1 =1101(2) =13 I0,2 =e3,22,21,20,2 =0100(2) =4 I1,0 =e3,32,31,30,3 =0001(2) =1 I1,1 =e3,42,41,40,4 =0011(2) =3 I1,2 =e3,52,51,50,5 =1100(2) =12 I2,0 =e3,62,61,60,6 =1001(2) =9 I2,1 =e3,72,71,70,7 =0110(2) =6 式(8a)を利用してgR を前述したアルゴリズムによって
計算する。
【0099】先ずk=2に対して、
【0100】
【数49】
【0101】k=1に対して、
【0102】
【数50】
【0103】k=0に対して、
【0104】
【数51】
【0105】したがって、
【0106】
【数52】
【0107】ここで、22 =4,21 =2,20 =1で
ある。以上で具体的な例を通じて事前計算テーブルを利
用した羃乗演算方法を詳細に説明した。勿論指数Rの大
きさは説明を簡単にするために32ビットであると仮定
したが、一般に512ビット又はそれ以上のビットの大
きさを有するRに対しても、同一の方法により本実施例
の具体的例と同様に説明され得る。
【0108】<演算回数の評価>次に、前述したような
アルゴリズムにより要求される掛け算の回数を数える。
図1の(v−1)番目のブロックは、bビットで満たさ
れないこともあることに注目しなければならない。事実
上、それは(bv−a)ビットである。このように内部
のフォーループ(for-loop)で共に乗じられる項の数は、
一番目の(bv−a)ラウンドに対するv回、およびそ
の余りの(b−bv+a)ラウンドに対する(v+1)
回である。よって、要求される全体の掛け算の回数は、
最悪の場合、多くて{v(bv−a)+(v+1)(b−
bv+a)−2}=(a+b−2)回である。Ij,k
“0”である確率が1/2h であり、前記アルゴリズム
によりIj,k が平均a回発生すると仮定できるために、
平均的な掛け算の回数は{a(2h −1)/2h +b−
2}回で与えられる。もちろん、このような遂行能力
は、(2h −1)v個の事前計算値に対する記憶部を具
備して達成される。
【0109】<分割方法の考察>前述したように、指数
Rはほぼ同一の大きさの(h×v)ブロックに区分さ
れ、これらの(h×v)ブロックは(h×v)の四角形
で配列されると仮定した。大部分の場合に、このような
分割と配列とは、与えられた記憶容量に対して他のもの
よりさらに良い遂行能力を発揮するが、ある場合にはそ
うでないこともある。
【0110】例えば、図5はほぼ同一の記憶部を要求す
る2つの相異なる構成を示したものであり、図5に示し
た2つの構成、すなわち512ビット指数が2つの相異
なる方式に分割され配列された構成を考察する。1番目
の構成は(5×5)の構成で、前記において分析した場
合に該当し、155個の値に対する記憶部を具備し、平
均118.78回の掛け算(最悪の場合122回)とい
う遂行能力を示す。一方、2番目の構成は、(5×1|
6×2)の構成で157個の値に対する記憶部を使用し
て、平均117.13回の掛け算(最悪の場合119
回)で羃乗演算ができる。よって、2番目の構成の方が
さらに良い選択であることが分かる。
【0111】{h1 ×v1 |h2 ×v2 (h1 <h
2 )}型の構成で、最悪/平均の場合での遂行能力に対
する一般的な公式を容易に引き出すことができる。b1
およびb 2 をそれぞれ(h1 ×v1 )および(h2 ×v
2 )に区分されたブロックの大きさとする。さらに良い
遂行能力のために、b2 はb1 より大きいか等しくなけ
ればならないので、(h×v)構成でのbのような方法
により得られる。このように、b1 およびb2 は次のよ
うに求められる。
【0112】b2 =「(n/(h11 +h22 )) b1 =「((n−b222 )/h11 ) 該構成で要求される最悪の場合の掛け算の回数は、(h
×v)構成に対する公式からaを(h11 +h2
2 )に、そしてbをb2 にそれぞれ置換することにより
直接求められる。これは最悪の場合、{b11 +b2
(v2 +1)−2}回の掛け算という結果になる。同様
に、平均的な掛け算の回数は次の式の通りである。
【0113】
【数53】
【0114】このような遂行能力は、
【0115】
【数54】
【0116】個の事前計算値に対する記憶部を具備して
達成される。2つの構成形態である(h×v)および
{h1 ×v1 |h2 ×v2 (h2 =h 1 +1)}と異な
るいずれの構成も、与えられた記憶容量に対してより良
い遂行能力が示せないことが容易に分かる。 <BGMW方法と本方法との比較>BGMW方法と本実
施例の方法による遂行能力を比較するために、512ビ
ットの法に対する掛け算の回数および要求される記憶容
量を、160ビットおよび512ビットの指数のそれぞ
れについて、BGMW方法を図6に、本実施例を図7,
図8にそれぞれ示した。
【0117】図6はBGMW方法の遂行能力を説明する
ためのものであり、図6の(A)は160ビットの指数
について、そして、図6の(B)は512ビットの指数
について、基数b,乗数の集合M,パラメータh,事前
計算値のための記憶容量および最悪の場合と平均的な場
合の掛け算の回数を示している。図7,図8は、提案さ
れた本実施例の遂行能力を説明するためのものであり、
図7は160ビットの指数について、そして図8は51
2ビットの指数について、指数Rの構成,事前計算値の
ための記憶容量および最悪の場合と平均的な場合の掛け
算の回数を示している。
【0118】本実施例による方法は、BGMW方法に比
べて、さらに簡単であるだけでなく、さらに優れた遂行
能力を示すことに注目せねばならない。特に、広い記憶
容量の範囲に対する効率性のために、本方法は可用な記
憶容量に対応して多様なコンピュータ環境に融通性よく
応用できる。例えば、スマートカードによる計算速度を
高めるために、(4×2)構成が選択できる。すると、
512ビットの係数および指数に対して、gR の計算は
1920バイト(ここで、1つの事前計算のための記憶
容量は512ビット(64バイト)が必要である)の記
憶部により、平均182回の掛け算で行われる。反面、
比較的に大きい記憶部が使用可能なら、約32Kバイト
の記憶部で平均90.42回の掛け算を遂行する、例え
ば(7×4)構成が選択できる。
【0119】<識別及び署名検証例>次に、識別および
署名検証において、どのようにして計算速度を向上させ
得るかについて説明する。離散的対数問題に基づいて、
多くの識別およびディジタル署名技法が開発されてい
る。このような全ての技法で、些かのモジュラ掛け算と
共に、証明者(prover)(又は署名者(signer))はランダ
ムRに対するgR を計算する必要があり、これは以上説
明された方法により効率的に遂行され得る。
【0120】一方、識別又は署名を確認するために、検
証者(verifier)はgRE 形態の計算を遂行する必要
がある(ここで、yは証明者(又は署名者)の公開鍵に
該当し、よって、プロトコルの各ラン(run) で変わ
る)。Eの大きさは大体識別技法において20と40と
の間に置かれ、その対応する署名技法ではおよそ80で
ある。
【0121】次に、gRE を計算するために提案され
た方法の性能を調べる。tをEの大きさとする。もし、
t≦bなら、gRE は最悪の場合に(a+b+t−
2)回の掛け算で、平均{a(2h −1)/2h +b+
0.5t−2}回の掛け算で計算され得ることは明らかであ
る。t>bの場合には、上記のように進行したり、又は
Eをさらに小さいブロックに区分した後、計算すること
もできる。
【0122】1番目の場合は、最悪の場合に(a+2t
−2)回の掛け算で、平均{a(2 h −1)/2h +1.
5t−2}回の掛け算で計算が遂行される。しかしなが
ら、もしtがbより非常に大きいならば、Eをさらに小
さいブロックに分けることにより、その遂行能力をさら
に向上させ得る。したがって、さらに一般的な公式のた
めに、Eがほぼ同じ大きさのuブロックに区分されると
仮定する(gRE を計算するための全体構成を(u×
1|h×v)と考える)。
【0123】cを区分されたブロックのビット長さとす
る(すなわち、c=「(t/u))。すると、先ずk=
1,2,…,u−1に対する
【0124】
【数55】
【0125】およびそれらの組合可能な各掛け算を計算
しなければならず、これら全てでは{(u−1)c+2
u −u−1}回の掛け算が必要である。注目のtの範囲
(すなわち、t=80までの範囲)に対して、uは多く
て3を採る。もし、c≦bなら、最悪の場合に最大c回
の掛け算の追加で十分である(平均{c(2u −1)/
u }回)。したがって、この場合に要求される掛け算
の全体回数は次の通りである。
【0126】最悪の場合:(a+b+uc+2u −u−
3)回 平均:[a(2h-1)/2h +b+c(u2u-1)/2u
u −u−3]回 同様に、c>bの場合に対して、掛け算の数は次の通り
である。 最悪の場合:{a+(u+1)c+2u −u−3}回 平均:[a(2h-1)/2h +c{(u+1)2u −1}/2
u +2u −u−3]回 本願で提案された方法により、Schnorr のような識別お
よび/又は署名技法が、スマートカード上においてさら
に実用的に実現される。例えば、512ビットの法,1
60ビットの指数およびt=30の場合、もし1920
バイトの記憶部が使用可能なら(4×2構成)、検証状
態は平均80.5回の掛け算で検査される。同様に、t
=80の署名は、同じ記憶部を使用して、平均144.
13回の掛け算で検証される。
【0127】t=30に対して平均246.5回の掛け
算、およびt=80に対して平均259.0回の掛け算
を要求する二進方法と比べると、これは非常に小さい記
憶部で相当な速度向上となる。しかも、識別又は署名検
証は、常に大きい容量のメモリが備えられるより強力な
ターミナルで遂行される。このような環境で、例えば
(8×2)構成を採用する場合、32Kバイトの記憶部
を利用すれば、t=30に対して平均60.2回の掛け
算で識別検証を、そしてt=80に対して平均126.
6回の掛け算で署名検証が遂行できる。
【0128】<予備計算の伝送>次に、小さなコミュニ
ケーションの追加で、gRE を計算するための掛け算
の回数をさらに相当数減少させ得ることを説明する。す
なわち、yは署名者に固定した数なので、もし署名者
が、k=1,2,…,u−1に対する
【0129】
【数56】
【0130】を予め計算して記憶した後、署名と共に伝
達すれば、検証者はこれらを準備するためのオンライン
計算の負荷が節約できる。例えば、t=80の署名技法
に対して、もし署名者がメッセージに対する署名と共
に、追加的な512ビットのブロックy1 ,y2 、ここ
で、
【0131】
【数57】
【0132】を伝送すると、署名検証は(4×2)構成
により平均90.13回の掛け算で行われる。したがっ
て、単に128バイト情報の伝送の追加により54回の
掛け算が節約される。これは平均259回の掛け算を要
求する二進方法に比べて、平均しておよそ3倍の速度向
上に該当する。BGMW方法は、前記考慮したいずれの
場合でもgRE 形態の計算にそれほど効率的でないこ
とが分かる。すなわち、伝送の追加がない場合、もし指
数が非二進の羃乗基数で表記されれば、yE に対して要
求されるオンライン事前計算を遂行するのに、さらに多
くの計算が必要になる。一方、追加伝送が許容される場
合は、小さい基数の使用のために、さらに多くの事前計
算値が伝送されなければならない。
【0133】事前計算および追加伝送を結合した前記本
方法は、またアメリカのディジタル署名標準(DSS;
Digital Signature Standard)の検証の速度向上に使用
され得る。DSSでは、|R|=|E|=160のgR
E 形態の計算の遂行が必要であり、よって、追加伝送
がなければ事前計算によって何の利点も得られない。し
かしながら、もし署名者が3つの追加ブロック{y1 ,
y2 ,y3 }、ここで、
【0134】
【数58】
【0135】を送り、もし検証者が(4×2)構成を採
用すると、署名は平均124回の掛け算で検証される。
これは、512ビット法に対して平均279回の掛け算
を要求する二進方法に比べて、単に1920バイトの記
憶部および192バイトの追加伝送のみで、2倍以上の
速度向上が得られることを意味する。図9は、前述した
ように、署名者が署名と共に公開鍵に対する追加の3つ
の事前計算値を伝送するという仮定のもとで、3つの署
名技法(Schnorr ,DSSおよび Brickell-McCurley)
での署名生成および検証で要求される掛け算の回数を示
している。ここでは、他のリダクションモッド q(re
duction mod q )およびマルチプリケーティブインバー
スモッド q(multiplicative inverse mod q)(ここ
で、qは約160ビットの大きさの素数である)のよう
にそれほど重要でない演算は無視し、単に羃乗演算に必
要な掛け算の回数のみを考慮している。
【0136】(4×2)および(8×2)の2つの構成
が例として挙げられるが、これは前者はスマートカード
の応用に適合し、後者は割合に大容量の記憶装置を備え
た一般的な応用に適合するからである。比較のために、
二進方法の遂行能力を共に示した。 <並列処理例>次に、本願で提案された方法は、並列処
理にも非常に適することが分かる。すなわち、j番目の
プロセッサを(h×v)構成(図1参照)のj番目列に
割り当てることにより、BGMW方法よりさらに効率的
に多重プロセッサによる並列化が実現される。
【0137】もしv個のプロセッサが使用可能なら、j
番目のプロセッサは次の式(10)に含まれる式(9) を計算
するために割り当てることができる。ここで、各プロセ
ッサはローカルメモリ内に(2h −1)個の事前計算値
を記憶すると仮定する。
【0138】
【数59】
【0139】各プロセッサの計算は、最大2(b−1)
回の掛け算で完了する。その後、最終結果を求めるため
に追加で「(log2v )回の掛け算が必要である。よっ
て、掛け算の全体回数は、{2(b−1)+「(log2v
)}回である。図10は並列処理において、プロセッ
サの数およびプロセッサ当たり必要な記憶部により、1
60/512ビットの指数に対して要求される掛け算の
回数を示す。ここで、npはプロセッサの数(v)を、
そしてspはプロセッサ当たり記憶容量(2h −1)を
意味する。
【0140】図10に示したように、小さい数のプロセ
ッサでもその性能が非常に向上することが分かる。例え
ば、512ビットの法および指数に対しては、4つのプ
ロセッサが使用可能であり、各プロセッサは255個の
事前計算値のためのローカル記憶部(約16Kバイト)
を備える場合に、gR を32回の掛け算で計算できる。
例えば、16個のようにさらに多いプロセッサによれ
ば、羃乗演算は同じ記憶容量で10回の掛け算により行
われる。
【0141】一方、前記では便宜上(h×v)構成に対
してv個のプロセッサが使用可能な場合のみを考慮した
が、より一般的にさらに小さい数のプロセッサで(h×
v)構成を利用することもできる。もし、p個のプロセ
ッサが使用可能であり、v=pwとする場合、各プロセ
ッサがw個の列に該当するh×wを計算するように割り
当てる。この場合、各プロセッサは、ローカル記憶部に
{(2h −1)w}個の事前計算値を記憶する必要があ
る。そして、この際に要求される掛け算の回数は、
{(w+1)b+「(log2p )−2}回になることが分
かる。実際、大部分の場合、このように各プロセッサに
多数の列を割り当てるのが、図10で与えられた値より
時間−記憶容量のトレードオフにおいてさらに有利であ
る。
【0142】
【発明の効果】前述したように、本発明によると、事前
計算による速い羃乗演算のための新しい構成を提案する
ことにより、非常に簡単でありながらもBGMW方法よ
りもさらに良い遂行能力をなし得る。また、本発明の方
法は、広い範囲の時間−記憶容量のトレードオフによ
り、多様な計算環境に融通性よく応用可能である。
【0143】特に、本発明の方法を使用して、非常に小
さい記憶部を備えたスマートカードによる計算速度も相
当向上させ得る。また、本発明の方法は、gRE (y
は変数)形態の計算速度も向上させ得る。これは、Schn
orr 型の識別および署名技法をさらに実用性よく実現す
る。なぜならば、証明者(署名者)だけでなく、検証者
も適度な記憶容量により非常に大きい計算上の利点が得
られるからである。
【0144】最後に、本願で提案された本発明のアルゴ
リズムがどのように並列化され得るかを説明した。この
ような並列処理は、多重のプロセッサを備えた高性能の
サーバ(server)装置で特に有用である。
【図面の簡単な説明】
【図1】本実施例により任意のnビットランダム指数R
を分割配置する方法を示した図である。
【図2】図1に関連する事前計算値にテーブルを示した
図である。
【図3】32ビットの指数Rに対する分割配置図であ
る。
【図4】図3と関連する事前計算値に対するテーブルを
示した図である。
【図5】事前計算値テーブルでほぼ同一の記憶装置を要
求する2つの相異なる構成を示す図である。
【図6】BGMW方法の遂行能力を説明するための図で
ある。
【図7】本実施例による方法の遂行能力を説明するため
の図である。
【図8】本実施例による方法の遂行能力を説明するため
の図である。
【図9】署名者が追加情報を伝送する場合、さまざまな
署名技法での署名生成および検証で要求される掛け算の
数を示す図である。
【図10】並列処理で要求される掛け算の数を示す図で
ある。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 李 弼 中 大韓民国 慶尚北道 浦項市 芝谷洞 756番地 教授アパート6棟502号 (72)発明者 林 采 ▲薫▼ 大韓民国 慶尚南道 咸陽郡 水東面 院 坪里 595番地

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 暗号化システムで固定要素gとランダム
    に選択されたnビット指数Rに対して羃乗演算gR を計
    算するための羃乗演算方法において、 (a)前記指数Rのビット列を所定数hのブロックに分
    割し、前記分割された各ブロックのビット列を所定数v
    の副ブロックに分割して、前記指数Rのビット列をv列
    およびh行からなるh×v配列に分割する指数分割過程
    と、 (b)各ブロックおよび副ブロックの位置に対応する値
    を考慮し、前記指数Rから次式のようにi番目行に当た
    るブロックのビット列Ri およびi番目行のj番目列に
    該当する副ブロックのビット列Ri,j を生成する過程
    と、 【数1】 (c)前記Ri,j を0より大きくhより小さい全ての整
    数i、および0と同じか大きくvより小さい全ての整数
    jに対して、次式のように二進数の形態で生成する過程
    と、 【数2】 ここで、ei,jb+kは、指数Rのi番目行のj番目列のブ
    ロックに該当するビット列Ri,j のk番目ビットの値、 (d)0より大きくhより小さい全ての整数iに対し
    て、gi を次式のように前記基数gを利用して生成する
    過程と、 【数3】 (c)gR を前記(c)過程でのRi,j および前記
    (d)過程でのgi を利用して、次式のように生成する
    過程と、 【数4】 (f)0より大きく2h より小さい全ての整数f(ここ
    で、fは二進数でeh- 1 ,eh-2 …e1 ,e0 の形態で
    表わされる)、および0と同じか大きくvより小さい全
    ての整数jに対して、次の値を計算して記憶する過程
    と、 【数5】 (g)前記記憶された計算値を利用して、次式によりg
    R を計算する過程と、 【数6】 ここで、Ij,k は、j番目の副ブロックに該当するビッ
    ト列でk番目に位置するビットの、iが0からh−1ま
    での全てのブロックに亙るhビットの大きさのビット列
    からなる値、を含むことを特徴とする暗号化システムで
    の羃乗演算方法。
  2. 【請求項2】 前記(a)過程では、前記副ブロック内
    に含まれるビットの数がほぼ同一になるように分割する
    ことを特徴とする請求項1記載の暗号化システムでの羃
    乗演算方法。
  3. 【請求項3】 前記(a)過程では、前記副ブロック内
    に含まれるビットの数が相異なるように分割することを
    特徴とする請求項1記載の暗号化システムでの羃乗演算
    方法。
  4. 【請求項4】 前記(g)過程では、vが2つの整数p
    とwの積(v=pw)で表わされる場合に、p個のプロ
    セッサを備え、i(i=0,…,p−1)番目のプロセ
    ッサが次式による演算を遂行して、 【数7】 並列処理することを特徴とする請求項1記載の暗号化シ
    ステムでの羃乗演算方法。
  5. 【請求項5】 暗号化システムで固定要素gとランダム
    に選択されたnビット指数Rに対して羃乗演算gR を計
    算するための羃乗演算方法において、 (a)前記指数Rのビット列を所定数hのブロックに分
    割し、前記分割された各ブロックのビット列を所定数v
    の副ブロックに分割することにより、前記指数Rのビッ
    ト列をv列およびh行からなるh×vの配列とする指数
    分割過程と、 (b)各副ブロックに含まれるビットの数をbとした場
    合に、0より大きく2 h より小さい全ての整数f(ここ
    で、fは二進数でeh-1 ,eh-2 …e1 ,e0の形態で
    表わされる)、および0と同じか大きくvより小さい全
    ての整数jに対して、次の値を計算して記憶する過程
    と、 【数8】 (c)前記記憶された計算値を利用して、次式によりg
    R を計算する過程と、 【数9】 ここで、Ij,k は、j番目の副ブロックに該当するビッ
    ト列でk番目に位置するビットの、iが0からh−1ま
    での全てのブロックに亙るhビットの大きさのビット列
    からなる値、を含むことを特徴とする暗号化システムで
    の羃乗演算方法。
  6. 【請求項6】 暗号化システムで固定要素gとランダム
    に選択されたnビット指数Rに対して羃乗演算gR を計
    算するための羃乗演算装置において、 (a)入力された前記指数Rのビット列を、所定数hの
    ブロックに分割し、前記分割された各ブロックのビット
    列を所定数vの副ブロックに分割することにより、v列
    およびh行からなるh×vの配列とする指数分割手段
    と、 (b)各副ブロックに含まれるビットの数をbとした場
    合に、0より大きく2 h より小さい全ての整数f(ここ
    で、fは二進数でeh-1 ,eh-2 …e1 ,e0の形態で
    表わされる)、および0と同じか大きくvより小さい全
    ての整数jに対して、次の値を計算する事前計算手段
    と、 【数10】 (c)前記事前計算手段で計算された値を、j及びfの
    値に対応して記憶する記憶手段と、 (d)前記記憶された計算値を利用して、次式によりg
    R を計算する羃乗計算手段と、 【数11】 ここで、Ij,k は、j番目の副ブロックに該当するビッ
    ト列でk番目に位置するビットの、iが0からh−1ま
    での全てのブロックに亙るhビットの大きさのビット列
    からなる値、を含むことを特徴とする暗号化システムで
    の羃乗演算装置。
JP01733395A 1995-01-07 1995-02-03 暗号化システムにおける羃乗演算を含む暗号化方法及びその装置 Expired - Fee Related JP3540852B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR95-224 1995-01-07
KR1019950000224A KR0138277B1 (ko) 1995-01-07 1995-01-07 암호화시스템에서의 멱승연산방법

Publications (2)

Publication Number Publication Date
JPH08202263A true JPH08202263A (ja) 1996-08-09
JP3540852B2 JP3540852B2 (ja) 2004-07-07

Family

ID=19406503

Family Applications (1)

Application Number Title Priority Date Filing Date
JP01733395A Expired - Fee Related JP3540852B2 (ja) 1995-01-07 1995-02-03 暗号化システムにおける羃乗演算を含む暗号化方法及びその装置

Country Status (2)

Country Link
JP (1) JP3540852B2 (ja)
KR (1) KR0138277B1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6263081B1 (en) 1997-07-17 2001-07-17 Matsushita Electric Industrial Co., Ltd. Elliptic curve calculation apparatus capable of calculating multiples at high speed
JP2010078833A (ja) * 2008-09-25 2010-04-08 Toshiba Corp 計算装置、方法及びプログラム
KR101271170B1 (ko) * 2012-05-31 2013-06-04 삼성에스디에스 주식회사 비밀키 생성을 위한 고속연산 수행 방법 및 장치

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6263081B1 (en) 1997-07-17 2001-07-17 Matsushita Electric Industrial Co., Ltd. Elliptic curve calculation apparatus capable of calculating multiples at high speed
JP2010078833A (ja) * 2008-09-25 2010-04-08 Toshiba Corp 計算装置、方法及びプログラム
KR101271170B1 (ko) * 2012-05-31 2013-06-04 삼성에스디에스 주식회사 비밀키 생성을 위한 고속연산 수행 방법 및 장치

Also Published As

Publication number Publication date
JP3540852B2 (ja) 2004-07-07
KR960029510A (ko) 1996-08-17
KR0138277B1 (ko) 1998-07-01

Similar Documents

Publication Publication Date Title
Lim et al. More flexible exponentiation with precomputation
US5999627A (en) Method for exponentiation in a public-key cryptosystem
De Win et al. A fast software implementation for arithmetic operations in GF (2 n)
US5854759A (en) Methods and apparatus for efficient finite field basis conversion
Maurer Towards the equivalence of breaking the Diffie-Hellman protocol and computing discrete logarithms
Blake et al. Elliptic curves in cryptography
Harper et al. Public-key cryptosystems with very small key lengths
Gordon A survey of fast exponentiation methods
Granger et al. Hardware and software normal basis arithmetic for pairing-based cryptography in characteristic three
US6618483B1 (en) Elliptic curve encryption systems
CA2369545C (en) Method and apparatus for elliptic curve scalar multiplication
US6266688B1 (en) Scheme for arithmetic operations in finite field and group operations over elliptic curves realizing improved computational speed
JP4137385B2 (ja) 公開鍵および秘密鍵による暗号化方法
US8862651B2 (en) Method and apparatus for modulus reduction
Odlyzko Discrete logarithms and smooth polynomials
Karthikeyan Survey of elliptic curve scalar multiplication algorithms
US8755517B2 (en) Method for generic-point parallel elliptic curve scalar multiplication
Avanzi On multi-exponentiation in cryptography
US6609141B1 (en) Method of performing modular inversion
Wang et al. Efficient implementation of public key cryptosystems on MICAz and TelosB motes
JP3540852B2 (ja) 暗号化システムにおける羃乗演算を含む暗号化方法及びその装置
EP1725931B1 (en) Method for multi-exponentiation or multi-scalar multiplication
Clancy Analysis of FPGA-based hyperelliptic curve cryptosystems
Jung Implementing the RSA cryptosystem
Freking et al. Montgomery modular multiplication and exponentiation in the residue number system

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20000225

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040326

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20090402

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20100402

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20110402

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20120402

Year of fee payment: 8

LAPS Cancellation because of no payment of annual fees