JPH09204296A - べき乗剰余演算方法及び装置 - Google Patents

べき乗剰余演算方法及び装置

Info

Publication number
JPH09204296A
JPH09204296A JP8011938A JP1193896A JPH09204296A JP H09204296 A JPH09204296 A JP H09204296A JP 8011938 A JP8011938 A JP 8011938A JP 1193896 A JP1193896 A JP 1193896A JP H09204296 A JPH09204296 A JP H09204296A
Authority
JP
Japan
Prior art keywords
modn
calculation
modular exponentiation
exponent
digit
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
JP8011938A
Other languages
English (en)
Other versions
JP3504050B2 (ja
Inventor
Shinichi Kawamura
信一 川村
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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP01193896A priority Critical patent/JP3504050B2/ja
Priority to US08/785,845 priority patent/US5870478A/en
Publication of JPH09204296A publication Critical patent/JPH09204296A/ja
Application granted granted Critical
Publication of JP3504050B2 publication Critical patent/JP3504050B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/723Modular exponentiation

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)

Abstract

(57)【要約】 【課題】m(>2)進のべき乗アルゴリズムに対して、
べき乗剰余演算を高速に行なうことができるべき乗剰余
演算方法及び装置を提供すること。 【解決手段】 整数M,N及びべき指数Eが与えられた
ときに、C=ME modNで表されるべき乗剰余演算を
行なう方法であって、まず、整数M,N,及び所定の定
数b,n,mを用いて、Mj ・bi modNの値を、j
=1,2,…,m−1かつi=0,1,2,…,n−1
について計算し、この計算によって得られた計算値の一
部又は全部をテーブル要素とするテーブルを作成する工
程と、べき指数Eをm進数表現するとともに、Cをb進
数表現し、このときのべき指数Eの各桁ej を最上位桁
から最下位桁まで走査しながら、Cの各桁Ci の値とテ
ーブル要素との積和をCの新たな計算結果として最下位
桁まで計算して最終結果を得る工程とを具備する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はべき乗剰余演算方法
及び装置に関し、特に、情報通信、情報処理の分野にお
いて、べき乗剰余演算を高速に行なうための演算方法及
び装置に関する。
【0002】
【従来の技術】例えば情報を送信するにあたって、その
セキュリティを確保するために何らかの暗号化を施すこ
とが必要になる場合がある。以下で定義される、べき乗
剰余演算は公開鍵を用いた暗号化手法としてよく用いら
れている。
【0003】C=ME modN ここで、Mは暗号化すべき平文、E、Nは暗号化鍵、C
は暗号化した結果であり、M、E、Nには整数が用いら
れる。
【0004】また、平文Mの秘匿性を保証するためにN
のビット数は十分大きくする必要があり、例えば、商用
暗号でも512ビットまたは1024ビット、あるいは
それ以上の長さのNが使用される。この結果、べき乗剰
余演算の演算量は非常に大きくなるので、演算を高速に
行なう方法が必要となっている。
【0005】べき乗剰余演算を行なうには、まず、べき
乗剰余演算を剰余乗算の繰り返しに展開する。種々の展
開方法のうち優れた方式であると考えられているものに
m進計算法と呼ばれる展開方法がある(Knuth 著、「準
数値算法/算術演算」、「サイエンス社出版」、p29
1)。
【0006】図5に示すステップS51〜S59はm進
べき乗剰余演算の処理の流れを示すフローチャートであ
る。ここでは、べき指数Eは次のようにm進数展開され
るものとする。
【0007】
【数2】 ここで、ej は各桁を表し、1〜m−1に対応してい
る。
【0008】まず、ステップS51でM、E、Nを入力
した後、M、M2 modN、M3 modN、…、Mm-1
modNの値を計算して記憶部A1 、A2 、A3 、…、
m- 1 に記憶するとともに(ステップS52)、パラメ
ータjをl−1に、変数Cを1に初期化しておく(ステ
ップS53)。
【0009】そして、べき指数Eを最上位桁から最下位
桁に向けて順次走査して、各桁ejの値に応じて、
(1) M、M2 modN、M3 modN、…、Mm-1
modNの値を、途中結果CにmodNをとりながら掛
け(ステップS55)、(2) 途中結果CをmodN
をとりながらm乗する(ステップS57)、という演算
を繰り返す。
【0010】ここで、最下位桁eo を走査したときは
(2)の処理は行われない。なお、(2)で、Cのm乗
を求める場合は適当な剰余乗算に展開して行なう。例え
ば、m=2k に選ぶと、(2)はk回の剰余乗算で計算
できる。
【0011】上記した(1)、(2)に現れる剰余乗算
は、基本的に乗算と除算とからなっており、仮に乗算と
除算との処理量が同程度であるとした場合、乗算2回程
度の処理量が(1)の乗算を行なうために必要となる。
【0012】ここで、図5のフローチャートの繰り返し
ループに着目すると、M及びNは定数であってループ内
では変化しない。したがって、 M、M2 modN、M
3 modN、…、Mm-1 modNの値も定数となる。こ
れにより、上記(1)の剰余乗算は変数Cに定数を掛け
て剰余をとる演算となって、定数倍剰余演算と呼ばれる
特殊な形をしている。
【0013】そのため、何らかの工夫を施すことによっ
て、従来のように通常の乗算と除算とを用いて結果を得
るのに比べて処理時間を短縮するための方法が論じられ
ていた。
【0014】例えば上記した剰余乗算において、m=2
の場合は最小のメモリーで実現することができ、「2進
法」と呼ばれているが、この2進法に対して上記した定
数倍剰余演算を乗算1回程度の演算で実現する方法が、
文献(Shin-ichi Kawamura,Kyoko Takabayashi, and At
sushi Shimbo:"A fast modulara exponentiation algor
ithm", IEICE Trans.,Vol.E74,No.8,pp.2136-2143,Augu
st 1991 )に開示されている。
【0015】
【発明が解決しようとする課題】上記したように、
(1)、(2)で行われる剰余乗算は、基本的に乗算と
除算とからなっており、仮に乗算と除算との処理量が同
程度であるとした場合、乗算2回程度の処理量が(1)
の乗算を行なうために必要となる。
【0016】また、上記文献はm=2であれば定数倍剰
余演算を乗算1回程度で行なう方法を開示しているが、
m=2以外の場合の定数倍剰余演算については課題とし
て述べているだけで、具体的な手法については開示して
いない。
【0017】本発明はこのような課題に着目してなされ
たものであり、その目的とするところは、m(>2)進
のべき乗アルゴリズムに対して、定数倍剰余演算の考え
方を適用して、べき乗剰余演算を高速に行なうことがで
きるべき乗剰余演算方法及び装置を提供することにあ
る。
【0018】
【課題を解決するための手段】上記の目的を達成するた
めに、第1の発明に係るべき乗剰余演算方法は、整数
M,N及びべき指数Eが与えられたときに、C=ME
odNで表されるべき乗剰余演算を行なう方法であっ
て、まず、整数M,N,及び所定の定数b,n,mを用
いて、Mj ・bi modNの値を、j=1,2,…,m
−1かつi=0,1,2,…,n−1について計算し、
この計算によって得られた計算値の一部又は全部をテー
ブル要素とするテーブルを作成する工程と、前記べき指
数Eをm進数表現するとともに、演算結果Cをb進数表
現し、このときの前記べき指数Eの各桁ej を最上位桁
から最下位桁まで走査しながら、演算結果Cの各桁Ci
の値と前記テーブル要素との積和
【0019】
【数3】 をCの新たな計算結果として最下位桁まで計算して最終
結果を得る工程とを具備する。また、第2の発明に係る
べき乗剰余演算装置は、第1の発明におけるべき乗剰余
演算を用いてべき乗剰余演算を行なう。
【0020】
【発明の実施の形態】以下、図面を参照して本発明の一
実施形態を詳細に説明する。図1は本発明が適用される
べき乗剰余演算装置の構成を示す図であり、図2は図1
に示すべき乗剰余演算装置によるべき乗剰余演算処理の
概略を説明するためのフローチャートである。図1の制
御部100は以下に述べる各部の動作を制御するもので
ある。
【0021】図1、図2において、まず、入力部1を介
して平文Mと、暗号化鍵N、Eが入力されてメモリ
(M)2a、メモリ(N)2b、メモリ(E)2cに各
々記憶される(ステップS1)。テーブル作成部3は入
力されたM、Nを用いてn行(m−1)列の参照テーブ
ル4を作成する(ステップS2)。
【0022】参照テーブル4へのエントリの第1列は上
から下へ向かって、M、M・bmodN、M・b2 mo
dN、…、M・bn-1 modNである。ここで、bは定
数倍剰余演算の処理単位(処理ブロック)であり、これ
については後述する。bは通常、2のべきにとると計算
機との整合が良い。Nを1ビットとするとき1=n・l
og2 (b)としている。
【0023】参照テーブル4の第2列はM2 modN、
2 ・bmodN、…、M2 ・bn-1 modNであり、
第1列とはM倍の関係(ただしmodN)にある。さら
に、第3列は第2列とM倍の関係にあり、最後の第(n
−1)列は第1列とはMm-2倍の関係にある。
【0024】前記した文献 (Shin-ichi Kawamura,Kyo
ko Takabayashi, and Atsushi Shimbo:"A fast modular
a exponentiation algorithm", IEICE Trans.,Vol.E74,
No.8,pp.2136-2143,August 1991 )に開示されているテ
ーブル参照方式は上記した参照テーブル4の第1列のみ
を用いているが、本実施形態では第1列のみのテーブル
を横方向に展開することによって一般化し、このテーブ
ルを参照するようにすることによって、高次のべき乗ア
ルゴリズムを高速化することを意図している。
【0025】図3は上記した参照テーブル4の作成手順
を示すフローチャートである。ここでは、まず参照テー
ブル4の第1列を作成し、このデータを第2列目以降の
テーブル要素(エントリ)の作成に利用することによっ
てテーブル作成を効率化している。第1列は与えられた
値をM倍してmodNを取った値を多倍長乗算1回程度
の時間で計算するのに使用できるので、従来のように乗
算と除算とを用いて同じ計算を行なうのに比較して計算
の効率が良い。
【0026】まず、ステップS21でM、Nを用いて第
1列を作成する。次に、この第1列のエントリを用いて
第2列第1行の要素である、M2 modNを演算する
(ステップS22)。次に求めたM2 modNとNとか
ら第2列を作成する(ステップS23)。次に、第1列
のエントリとM2 modNとを用いて、第3列第1行の
要素である、M3 modNを演算し(ステップS2
4)、このM3 modNとNとから第3列を作成する
(ステップS25)。そして、最後にMm-1 modNと
Nから第m−1列を作成する(ステップS26)。
【0027】このように、1列前の第1行要素と、第1
列の要素とを用いて現在着目している列の第1行要素を
演算し、その要素を出発点として同じ列の要素を展開す
ることを繰り返しながらテーブル要素を作成することに
よって参照テーブル4を完成する。
【0028】図1、図2に戻って、参照テーブル4が完
成したら次はパラメータjをl−1に、変数Cを1に初
期化した後(ステップS3)、ステップS4に移行す
る。ここで、べき指数Eは前記したようにm進数に展開
されており、ステップS4ではMSB側から順次、各桁
j (1〜m−1に対応)が0か否かを判定する。ここ
で0の場合は次のステップS5をスキップするが、それ
以外の場合はステップS5を実行する。ステップS5で
はC×AejmodN計算部5が参照テーブル4を用いて
C×AejmodNを計算する。これは定数倍剰余演算と
呼ばれている。また、Cm modN計算部7はCm mo
dNを計算する(ステップS7)。C×AejmodNと
m modNの演算は概ね交互に行なわれる形で処理を
進められ、その時点で得られた演算結果はメモリ(C)
6に記憶される。このようにして、べき乗剰余演算処理
が効率よく行われる。
【0029】ここで、ステップS5における定数倍剰余
演算の手続きを図4を参照して説明する。ここで変数C
は以下のようにb進数表現されており、(n−1)の桁
である。
【0030】
【数4】 図4では変数Cが入力されたとき、変数Cの各桁Ci
値と参照テーブル4の第ej 列要素であるMeji mo
dNとの積
【0031】
【数5】 を計算し、新たな演算結果をCとする手順を示してい
る。
【0032】変数Cの各桁Ci の値は最下位ブロックか
ら順に乗算器Qo 、Q1 、Q2 、Qn-1 で第ej 列要素
の第1行目、第2行目、…、第n行目と順に掛け合わさ
れ、その結果が加算部20で総和されてC′作成部21
でC′が作成される。このC′と最終結果CはmodN
で等価な値であるが、Nの倍数の誤差を含んでいる。そ
こで、補正部22でC′からNの倍数を引いて値の補正
を行い、C収得部23で最終結果C(C<N)を得る。
【0033】以上の手続きに要する処理時間の大部分は
Cの各桁の値と、テーブルエントリとの積を演算するの
に要する時間であり、それはほぼ2つの多倍長整数を掛
け合わせるのに要する時間に等しい。
【0034】従来はCとMejmodNとの積を演算し、
その後で除算を行なうという手続きを用いていたので、
本実施形態の2倍程度の時間を要していた。図6はmo
dNが512ビット、2進数展開した変数Cにおいてb
=216としたときに、従来の演算方法とテーブルを使用
した本発明の演算方法とについて、相対的処理時間を比
較したものである。
【0035】ここで、再び図2のフローチャートに戻
る。このようにして定数倍剰余演算が終わると、次のス
テップ6においてパラメータjが0か否かの判定を行な
う。ここで0でなければ、ステップS7で変数Cをm乗
してmodNをとる処理を行なう。0ならばべき指数の
全桁を処理し終えているので最終結果Cを出力して(ス
テップS9)、処理を終了する。
【0036】なお、上記した実施形態ではm進べき乗ア
ルゴリズムに対するテーブル参照について述べたが、類
似の高次べき乗アルゴリズムとして知られているm−a
rray法(Knuthの方法)にも適用できることは
勿論である。
【0037】
【発明の効果】本発明によれば、m(>2)進のべき乗
アルゴリズムに対して、べき乗剰余演算を高速に行なう
ことができるようになる。
【図面の簡単な説明】
【図1】本発明が適用されるべき乗剰余演算装置の構成
を示す図である。
【図2】図1に示すべき乗剰余演算装置によるべき乗剰
余演算処理の概略を示すフローチャートである。
【図3】参照テーブルの作成手順を示すフローチャート
である。
【図4】定数倍剰余演算の手続きを説明するための図で
ある。
【図5】m進べき乗剰余演算の処理の流れを示すフロー
チャートである。
【図6】従来の演算方法とテーブルを使用した本発明の
演算方法とについて、相対的処理時間を比較した結果を
示す図である。
【符号の説明】
1…入力部、2a…メモリ(M)、2b…メモリ
(N)、2c…メモリ(E)、3…テーブル作成部、4
…参照テーブル、5…C×AejmodN計算部、6…メ
モリ(C)、7…Cm modN計算部、8…出力部、1
00…制御部。

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 整数M,N及びべき指数Eが与えられた
    ときに、C=ME modNで表されるべき乗剰余演算を
    行なう方法であって、 まず、整数M,N,及び所定の定数b,n,mを用い
    て、Mj ・bi modNの値を、j=1,2,…,m−
    1かつi=0,1,2,…,n−1について計算し、こ
    の計算によって得られた計算値の一部又は全部をテーブ
    ル要素とするテーブルを作成する工程と、 前記べき指数Eをm進数表現するとともに、演算結果C
    をb進数表現し、このときのべき指数Eの各桁ej を最
    上位桁から最下位桁まで走査しながら、演算結果Cの各
    桁Ci の値と前記テーブル要素との積和 【数1】 をCの新たな計算結果として最下位桁まで計算して最終
    結果を得る工程と、 を具備することを特徴とするべき乗剰余演算方法。
  2. 【請求項2】 請求項1に記載のべき乗剰余演算方法に
    よってべき乗剰余演算を行なうことを特徴とするべき乗
    剰余演算装置。
JP01193896A 1996-01-26 1996-01-26 べき乗剰余演算方法及び装置 Expired - Fee Related JP3504050B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP01193896A JP3504050B2 (ja) 1996-01-26 1996-01-26 べき乗剰余演算方法及び装置
US08/785,845 US5870478A (en) 1996-01-26 1997-01-24 Modular exponentiation calculation apparatus and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP01193896A JP3504050B2 (ja) 1996-01-26 1996-01-26 べき乗剰余演算方法及び装置

Publications (2)

Publication Number Publication Date
JPH09204296A true JPH09204296A (ja) 1997-08-05
JP3504050B2 JP3504050B2 (ja) 2004-03-08

Family

ID=11791602

Family Applications (1)

Application Number Title Priority Date Filing Date
JP01193896A Expired - Fee Related JP3504050B2 (ja) 1996-01-26 1996-01-26 べき乗剰余演算方法及び装置

Country Status (2)

Country Link
US (1) US5870478A (ja)
JP (1) JP3504050B2 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5999627A (en) * 1995-01-07 1999-12-07 Samsung Electronics Co., Ltd. Method for exponentiation in a public-key cryptosystem
US6064740A (en) * 1997-11-12 2000-05-16 Curiger; Andreas Method and apparatus for masking modulo exponentiation calculations in an integrated circuit
US7587044B2 (en) * 1998-01-02 2009-09-08 Cryptography Research, Inc. Differential power analysis method and apparatus
WO1999035782A1 (en) * 1998-01-02 1999-07-15 Cryptography Research, Inc. Leak-resistant cryptographic method and apparatus
EP1090480B1 (en) * 1998-06-03 2019-01-09 Cryptography Research, Inc. Improved des and other cryptographic processes with leak minimization for smartcards and other cryptosystems
AU5458199A (en) * 1998-07-02 2000-01-24 Cryptography Research, Inc. Leak-resistant cryptographic indexed key update
US6182104B1 (en) * 1998-07-22 2001-01-30 Motorola, Inc. Circuit and method of modulo multiplication
US20030065696A1 (en) * 2001-09-28 2003-04-03 Ruehle Michael D. Method and apparatus for performing modular exponentiation
US6922717B2 (en) 2001-09-28 2005-07-26 Intel Corporation Method and apparatus for performing modular multiplication
FR2862454A1 (fr) * 2003-11-18 2005-05-20 Atmel Corp Methode de reduction modulaire aleatoire et equipement associe
FR2885711B1 (fr) * 2005-05-12 2007-07-06 Atmel Corp Procede et materiel modulaire et aleatoire pour la reduction polynomiale
US20100088526A1 (en) * 2008-10-02 2010-04-08 Mcm Portfolio Llc System and Method for Modular Exponentiation

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04362988A (ja) * 1990-01-12 1992-12-15 Toshiba Corp 剰余乗算計算装置
DE69231110T2 (de) * 1991-03-05 2000-11-16 Canon Kk Rechengerät und Verfahren zum Verschlüsseln/Entschlüsseln von Kommunikationsdaten unter Verwendung desselben
EP0531158B1 (en) * 1991-09-05 1999-08-11 Canon Kabushiki Kaisha Method of and apparatus for encryption and decryption of communication data
US5274707A (en) * 1991-12-06 1993-12-28 Roger Schlafly Modular exponentiation and reduction device and method
US5299262A (en) * 1992-08-13 1994-03-29 The United States Of America As Represented By The United States Department Of Energy Method for exponentiating in cryptographic systems
JPH0720778A (ja) * 1993-07-02 1995-01-24 Fujitsu Ltd 剰余計算装置、テーブル作成装置および乗算剰余計算装置
US5349551A (en) * 1993-07-30 1994-09-20 The United States Of America As Represented By The Director Of National Security Agency Device for and method of preforming an N-bit modular multiplication in approximately N/2 steps

Also Published As

Publication number Publication date
JP3504050B2 (ja) 2004-03-08
US5870478A (en) 1999-02-09

Similar Documents

Publication Publication Date Title
JP3784156B2 (ja) モジュラ掛け算方法
KR101062558B1 (ko) 암호화 기법 연산을 위한 컴퓨터 판독 가능한 저장 매체, 시스템 및 방법
JP3504050B2 (ja) べき乗剰余演算方法及び装置
JPH1195661A (ja) 指数剰余演算装置および指数剰余演算処理をコンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体
JPH0720778A (ja) 剰余計算装置、テーブル作成装置および乗算剰余計算装置
JP2002207429A (ja) 効率的な冪乗法および装置
JP3532860B2 (ja) 剰余系表現を利用した演算装置及び方法及びプログラム
JP2001505325A (ja) タイミング攻撃を阻止する標準化されたモジュラべき乗を計算することにより復号メカニズムを実行する方法と装置
JP3542278B2 (ja) モンゴメリ・リダクション装置及び記録媒体
US6763366B2 (en) Method for calculating arithmetic inverse over finite fields for use in cryptography
JP2001051832A (ja) 乗算剰余演算方法および乗算剰余回路
EP1455270B1 (en) Method and apparatus for basis conversion in finite field and a multiplier
JP2000132096A (ja) スカラー倍算方法およびその装置
KR100902847B1 (ko) 분할 테이블을 이용한 유한체 곱셈 장치, 그 방법 및기록매체
KR20060037941A (ko) 유한체 GF(2^m)에서의 하이브리드 곱셈 연산 장치및 연산 방법
JP3145368B2 (ja) 楕円曲線演算装置、演算方法及びその方法を実施するプログラムを記録した記録媒体
JP3434220B2 (ja) 逆元演算装置、及びそのプログラム記録媒体
KR100742093B1 (ko) 엔티알유 암호화 및 복호화를 위한 다항식 컨볼루션 연산방법
KR100257123B1 (ko) 변형된 몽고메리 모듈라 곱셈을 적용한 고속 멱승 방법
JP4541485B2 (ja) べき乗演算装置、べき乗剰余演算装置、楕円べき倍点演算装置、並びのそれらの方法、記録媒体
JP3332270B2 (ja) べき乗演算装置
JP4293665B2 (ja) 剰余乗算装置
KR20100026358A (ko) 센서 모트에서의 블록 인덱싱 기반의 타원 곡선 암호 연산 방법, 그 장치 및 이를 기록한 기록 매체
JP2003084667A (ja) 同一基底に対する複数の冪乗剰余演算を行う方法と装置並びにプログラム
JPH11212951A (ja) 乗算剰余演算回路

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20031202

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20031209

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

Free format text: PAYMENT UNTIL: 20071219

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20081219

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20091219

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees