JP4105803B2 - 楕円曲線演算装置 - Google Patents

楕円曲線演算装置 Download PDF

Info

Publication number
JP4105803B2
JP4105803B2 JP20072598A JP20072598A JP4105803B2 JP 4105803 B2 JP4105803 B2 JP 4105803B2 JP 20072598 A JP20072598 A JP 20072598A JP 20072598 A JP20072598 A JP 20072598A JP 4105803 B2 JP4105803 B2 JP 4105803B2
Authority
JP
Japan
Prior art keywords
value
bit
window
bits
same value
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
JP20072598A
Other languages
English (en)
Other versions
JPH11102158A (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 JP20072598A priority Critical patent/JP4105803B2/ja
Publication of JPH11102158A publication Critical patent/JPH11102158A/ja
Application granted granted Critical
Publication of JP4105803B2 publication Critical patent/JP4105803B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

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/724Finite field arithmetic
    • G06F7/725Finite field arithmetic over elliptic curves

Landscapes

  • Complex Calculations (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は情報セキュリテイ技術としての暗号技術に関するものであり、特に、楕円曲線を用いて実現する暗号及びデジタル署名技術において必要な演算を行うべき倍演算装置に関する。
【0002】
【従来の技術】
秘密通信方式とは、特定の通信相手以外に通信内容を漏らすことなく通信を行なう方式である。またデジタル署名方式とは、通信相手に通信内容の正当性を示したり、本人であることを証明する通信方式である。この署名方式には公開鍵暗号とよばれる暗号方式を用いる。公開鍵暗号は通信相手が多数の時、通信相手ごとに異なる暗号鍵を容易に管理するための方式であり、多数の通信相手と通信を行なうのに不可欠な基盤技術である。簡単に説明すると、これは暗号化鍵と復号化鍵が異なり、復号化鍵は秘密にするが、暗号化鍵を公開する方式である。この公開鍵暗号の安全性の根拠に用いられるものに離散対数問題がある。離散対数問題には代表的に、有限体上定義されるもの及び楕円曲線上定義されるものがある。これはニイルコブリッツ著 ”ア コウス イン ナンバア セオリイ アンド クリプトグラヒイ”(Neal Koblitz , " A Course in Number theory and Cryptography", Spinger-Verlag,1987)に詳しく述べられている。楕円曲線上の離 散対数問題を以下に述べる。
【0003】
楕円曲線上の離散対数問題とは、
E(GF(p))を有限体GF(p)上定義された楕円曲線Eとし、Eの位数が大きな素数で割れる元Gをベースポイントとする。このとき、Eの与えられた元Yに対して、
Y=xG
となる整数xが存在するならばxを求めよという問題である。
公開鍵暗号の安全性の根拠に離散対数問題がおかれるのは、大きな有限体GF(p)に対して上記計算は極めて難しく、いわば一方向関数の逆関数を計算することに相当するからである。
【0004】
次に上記楕円曲線上の離散対数問題を応用したエルガマル署名をまず述べる。
図13は従来例である楕円曲線上のエルガマル署名方式の構成を示すものである。以下同図を参照しながら手順を説明する。
(1)センタの設定
pを素数、GF(p)上の楕円曲線をEとし、その素数位数qの元をGとする。ユーザ Aの公開鍵をYa=xaGとし、秘密鍵をxaとする。センターは素数p及び楕円曲線E及びベースポイントGをシステムパラメータとして公開するとともに、Aの公開鍵Yaを公開する。
【0005】
(2)署名生成
1 乱数kを生成する、
2 R1=kG=(rx,ry)
ここで、mはメッセージである。
s = m + rx・xa/k (mod q)を計算する、
3 (R1、s)を署名としてmとともに送信する。
【0006】
(3)署名検証
sR1 = mG + rxYa
が成り立つかチェックする。
上記例でわかるように、楕円曲線を用いた署名方式では、固定点Gの冪倍の演算 kG 及び 任意点 P(従来例では公開鍵Yaに相当)の冪倍の演算rxYaの計算が必要である。この演算を実現する従来例として以下の2つが知られている。第一は固定点Gの冪倍の計算方法であるが、これは以下の文献が詳しい。
【0007】
E. F. Brickell, D.M. Gordon, K. S. McCurley and D.B. Wilson, "Fast exponentiation with precomputation", Advances in cryptology-proceedings of Eurocrypt'92, Lecture notes in computer science, 1993, Springer-Verlag, 200-207。
(従来例1)
ここで簡単にこの従来例について説明する。以下従来例の手順を説明する。
【0008】
p を 160ビットの素数とし、有限体GF(p)上の楕円曲線を E とし、E(GF(p)) の元を G , kGの計算をする。
step1. 予備計算テーブル作成
Gi=(16^i)G (i=1,・・・,40)
を予備計算テーブルとして計算する。
【0009】
step2. k・Gの計算
任意の160ビットの正整数kを、
k = k0 + k1・16 + k2・16^2 + ・・・ + k40・16^40
( -7 ≦k0,・・・,k40 ≦8)
表し、k・Gの計算を、
step2-1. B=A=Σsign(ki) Gi (ki=8 となる i に対する和)
step2-2. d=7
step2-3. d ≧ 1 の間、以下の操作をする
A = A + Σsign(ki) Gi (ki=±d となる i に対する和)
B = B+A
d = d-1
step2-3 に戻る
このとき、B = k・G となり k・G が求められる。
【0010】
この方法では、楕円の2倍点の演算は不要で、加算の演算のみですむが、反面その演算が44回も必要になる。楕円曲線によっては、加算の演算の方が2倍点の演算より時間がかかる場合があるため、上記方法はあまり効率的な演算ではないといえる。
次に、任意点Yaの冪倍を計算する方法であるが、これは以下の文献が詳しい。Koyama, Tsuruoka, "Speeding up elliptic cryptosystems by using a signed binary window method", Advances in cryptology-proceedings of Crypto'92, Lecture notes in computer science, 1993, Springer-Verlag, 345-357。
【0011】
ここで簡単に、この従来例について説明する。
(従来例2)
p を 160ビットの素数とし、有限体GF(p)上の楕円曲線を E とし、E(GF(p)) の任意の元を P , k・P の計算をする。
ここで、kの2進表現を、
k = k0 + k1・2+ k2・2^2 + ・・・ + k159・2^159=[k159....k2k1k0]
(k0,・・・,k159 = 0,1)
step1. addition-subtraction 表現への変換
kiの下位ビットから検索し、kの部分ビット列B、
B=[1,..,bi,..,1]
が、
#B1 -#B0 ≧ 3
の時、T(B)、
T(B)=[1,0,..,ti,..,-1], ti=bi-1
に変換をする。ここで、#B1 及び #B0 はそれぞれ部分ビット列Bに含まれる 1 及び 0 の数を表す。kの変換後をTとする。
【0012】
step2. ウインドウに分割する
T=[t160,....,t2,t1,t0] と表し、Tを上位ビットから探索する。
初めて1が出てくるビットから、順に下位に探索し、4ビット以下までで0となるビットの直前で区切り、これを一つのウインドウとする。
4ビットまでで0にならない場合は、4ビットを一つのウインドウとする。
【0013】
step3. 予備計算テーブルの作成
sP(s=3,5,..,15)を計算し予備計算テーブルとする。
step4. kP の計算
Tを上位ビットより探索し、ウインドウがある毎に、予備計算テーブルの値を 加えて、その結果を2冪倍することを繰り返す。
【0014】
ところで、この従来例では、ウィンドウの数が多いことから、step4の加算の回数が増える、上述した固定点のべき倍方法と同様に演算の効率面での課題がある。
【0015】
【発明が解決しようとする課題】
従って、この発明は楕円曲線を用いた暗号方式や署名方式で必須の固定点のべき倍や任意点のべき倍を求める演算を効率的に行うことのできる演算装置を提供することを主たる目的としている。
【0016】
【課題を解決するための手段】
上記目的はp,qを素数とし有限体GF(p)上の楕円曲線をEとし、E(GF(p))の位数qの元をGとし、pをtワードとし、E(GF(p))及びGをベースポイントとし、kをnワード以上の桁数をもった正の整数とした場合(但しn≧1)ベースポイントGのべき倍kGの計算を行う楕円曲線演算装置であって、ワード単位の桁数離れた数値の組とベースポイントGとの積を求めて記憶している第1テーブルと、ワード単位の桁数離れた数値の組であって第1テーブルにおける数値の組とは各数値とも桁数が異なっている数値の組とベースポイントGとの積を求めて記憶している第2テーブルと、両テーブルに格納されている数値の加算と2倍点の演算を繰り返してベースポイントGのべき倍kGの計算を行う演算手段とを備えていることによって達成できる。
【0017】
ここで、第1テーブルの各数値と第2テーブルの各数値との桁数の差は1/2ワードに相当する桁数であることとしてもよい。
また、演算手段は、第1アドレス生成部と第2アドレス生成部を有し、第1、第2アドレス生成部は、演算手段に新たな正の整数kが入力されると、その整数の桁順の数列を参照して第1テーブル、第2テーブルを検索するアドレスを生成することとしてもよい。
【0018】
また、第1、第2アドレス生成部は、正の整数kからワード単位の桁数とびの係数を検出し、その係数の組からなるアドレスを生成する構成であり、 第1のアドレス生成部と第2のアドレス生成部が整数kから検出する係数の桁位置は1/2ワードに相当する桁数分異なっていることとしてもよい。
また、第1アドレス生成部は、整数kを下位桁からワード単位で区切った場合の各区分における最上位桁の係数の組み合わせを最初検出し、以後1桁ずつ下位桁の係数の組み合わせを順に検出し、各区分における1/2ワード相当の桁位置より1桁上位の係数の組み合わせを検出するまで続行する構成であり、第2アドレス生成部は、前記各区分における下位から1/2ワード相当の桁位置の係数の組み合わせを最初検出し、以後1桁ずつ下位桁の係数の組み合わせを順に検出し各区分の最下位桁の係数の組み合わせを検出するまで続行する構成であり、第1テーブルの各数値は第2テーブルの各数値よりも1/2ワード相当桁数分、桁が高いこととしてもよい。
【0019】
また、演算手段は、更に読み出し部と演算部を含み、読み出し部は第1、第2アドレス生成部が生成するアドレスを用いて第1テーブル、第2テーブルを検索し、該当するアドレスに格納している数値を読み出す構成であり、演算部は、読み出し部が読み出す第1テーブルの格納値と第2テーブルの格納値の和をとる第1演算と、第1演算によって求めた値を2のべき倍する第2演算と、続いて読み出し部が第1、第2テーブルから格納値を読み出した際にその読み出した2つの格納値の第1の演算の結果と第2の演算の結果との和を求める第3の演算とを繰り返す構成であり、各テーブルに格納されている数値及び正の整数k及びベースポイントGは全て2進数で表現されていることとしてもよい。
【0020】
また、上記目的はネットワークを介してセンターと接続され、センターからシステムパラメータとして素数p、有限体GF(p)上の楕円曲線をE、E(GF(p))の位数qの元G、公開鍵Yaを入手し、内部に乱数kを発生する乱数発生手段、前記元Gのべき倍kGを求める楕円曲線演算装置を含み、他の通信端末との間で公開鍵暗号通信を行う通信端末であって、前記楕円曲線演算装置は、ワード単位の桁数離れた数値の組とベースポイントGとの積を求めて記憶している第1テーブルと、ワード単位の桁数離れた数値の組であって第1テーブルにおける数値の組とは各数値とも桁数が異なっている数値の組とベースポイントGとの積を求めて記憶している第2テーブルと、両テーブルに格納されている積和値の加算と2倍点の演算を繰り返してベースポイントGのべき倍kGの計算を行う演算手段とを備えることによっても達成できる。
【0021】
また、上記目的はp,qを素数とし有限体GF(p)上の楕円曲線をEとし、E(GF(p))の位数qの元をGとし、pをtワードとし、E(GF(p))及びGをベースポイントとし、kをnワード以上の桁数をもった正の整数とした場合(但しn≧1)ベースポイントGのべき倍kGの計算を行う楕円曲線演算装置であって、ワード単位の桁数離れた数値の組とベースポイントGとの積を求めて記憶しているテーブルと、正の整数kを参照して前記テーブルを索引するアドレスを生成する検索手段と、検索手段の生成するアドレスによってテーブルから読み出した第1の値を2のべき倍する、べき倍数は1/2ワードの桁数に相当する第1演算手段と、第1演算手段の演算によって得た第2の値と、検索手段の生成する新たなアドレスによってテーブル索引して得た第3の値との和を求める第2演算手段第2演算手段と、第2の演算手段の演算結果を2のべき乗倍する、このべき乗数は正の整数kを参照する桁位置に応じて異なっている第3演算手段と、正の整数kの全ての桁を参照し終えるまで、上記第1〜第3演算手段の演算を繰り返させる繰り返し手段とを備えていると共に、前記整数k、元Gはいずれも2進数で表現されていることによっても達成できる。
【0022】
また、上記目的はp,qを素数とし有限体GF(p)上の楕円曲線をEとし、E(GF(p))の位数qの元をGとし、pをnビット、E(GF(p))及びGをベースポイントとし、kを桁数の多い正の整数とするとき、楕円曲線E上の任意の点pのべき乗倍kpの演算を加算―減算変換法とウィンドウ法を組み合わせて行う楕円曲線演算装置であって、
正の整数kの2進表現を、
k=k0+k1・2+k2・2^2+・・・・・ kn-1・2^(n-1)
(但し、k0・・・・・ kn-1は各ビットの係数で0又は1である)
とするとき、kの下位ビットから係数を検索し、ki=1となるビットを検出する係数検出手段と、ki=1となるビットが検出された場合に、(i+m)ビットの係数k(i+m)が1なら、i+m+1ビットから上位の係数を検索し、ks=0になるビットsを見つけ、係数k(i+m+1)〜ks を反転した変換値ts=1, ts-1=0,・・・・・ t(i+m+1)=0を生成する係数変換手段と、係数変換手段によってs〜i+m+1ビット間の係数が変換された場合、ki〜k(i+m)は(i+m+1)〜sビットの部分の変換時に付加した余剰値を調整した係数ti〜t(i+m)に変換する余剰調整手段と、係数検出手段がki=1となるビットを検出した場合において、k(i+m)が0なら、ki〜ki+m=Ti〜Ti+mとする無変換手段と、余剰調整手段が余剰調整を行った場合はs+1ビットから上位ビットに対し、無変換手段がki〜ki+m=Ti〜Ti+mとした場合は、i+m+1ビットから上位ビットに対し、係数検出手段に検出動作を行わせ、前記各手段による処理を繰り返させる繰り返し指示手段とを備えることによっても達成できる。
【0023】
ここで、mはウィンドウ法で分割する1ウィンドウ内のビット数と一致していることとしてもよい。
また、m=4であることとしてもよい。
また、上記目的はp,qを素数とし有限体GF(p)上の楕円曲線をEとし、E(GF(p))の位数qの元をGとし、pをnビット、E(GF(p))及びGをベースポイントとし、kを桁数の多い正の整数とするとき、楕円曲線E上の任意の点pのべき倍kpの演算を行う楕円曲線演算装置であって、
正の整数kの2進表現を、
k=k0+k1・2+k2・2^2+・・・・・ +kn-1・2^(n-1)
(但し、k0・・・・・ kn-1は係数で0又は1である)
とするとき、kを下位ビットから検索してki=1となるビットがあったとき、k(i+m)=1ならば(但しmは整数)、i+m+1ビット目から上位ビットの係数を検索し、初めてks=0になるビットsが見つかると、k(i+m+1)〜ksの係数を反転した変換値ts=1,ts-1〜ti+m+1=0を生成し、一方ki〜k(i+m)は、(i+m+1)〜sビットの範囲の変換時に付加した余剰分を調整した係数ti〜t(i+m)に変換する加減算変換手段と、前記変換手段によって全ビットの変換が行われた後、変換後の数列を対象としてウィンドウ法によってmビットのウィンドウに分割するウィンドウ分割手段と、s=3,5,・・・・・ (2m−1)とするとき、任意点pと上記各sの値との積を予め求めて格納している予備計算テーブルと、ウィンドウ毎にその中の2進数の値を用いて予備計算テーブルを検索し、得られたsp値をべき倍し、次のウィンドウに関して同様にして得たsp値を加算するべき倍手段とを備えると共に、べき倍、加算を繰り返して任意点のべき乗倍kpを得ることによっても達成できる。
【0024】
ここで、m=4であることとしてもよい。
【0025】
【発明の実施の形態】
図1は、本発明が適用される通信環境を示している。例えばリング型のネットワーク上に署名通信を行うA装置とB装置、それにセンターが接続されている。図2は、A装置のエルガマル署名通信を行うための構成を示すブロック図であり、同図にみられるようにA装置は、乱数生成部1、署名生成検証部2,送信部3,受信部4,固定点べき倍演算装置5並びに秘密鍵保持部6から構成されている。エルガマル署名方式は、従来技術の項で既に述べたように概ね以下の手順で行われる。先ず、センターが素数p、楕円曲線E、ベースポイントGをシステムパラメータとして公開すると共に、Aの公開鍵Yaを公開する。次いで、署名通信を行おうとする送信者Aが自装置で発生した乱数とセンターから入手した上記システムパラメータを用いて署名を生成し、受信者Bに対してメッセージと共に送信する。受信者Bは受信した署名とメッセージを用いて所定の演算を行い、署名の正当性を検証する。署名が正当であれば、受け取ったメッセージは確かにAが送信したものであることが認証できる。
【0026】
A装置の乱数生成部1は署名通信を行うに際して、一の乱数kを発生する。乱数の桁数は任意であるが、例えばシステムパラメータとしてセンターから入手するpの桁数と同程度とされる。即ち、pが160桁であれば乱数も160桁程度とされる。乱数生成器の構成は各種知られているので省略する。
固定点べき倍演算装置5は前記乱数生成部1が生成した乱数kと、受信部4を通じてセンターから入手したシステムパラメータのうちベースポイントGとを用いて
R=kG =(rx,ry)
の演算を行う。この式において、Gは固定点であるので、演算式を固定点のべき倍を求める式と呼ぶ。この演算装置5の詳細は後述する。
【0027】
署名生成検証部2は、A装置が署名通信の送信側である場合には署名生成を行い、受信者である場合には署名検証を行う部分である。署名生成を行う場合は固定点べき倍演算装置5の生成した演算結果R1と秘密鍵保持部6の保持する秘密鍵Xa、メッセージm及び素数位数qを用いて、次式の演算を行う。
【0028】
【数1】
Figure 0004105803
【0029】
一方、署名検証を行う場合は、送信部3を通じて他装置から入手した署名(R1,s)とメッセージm、センターから入手したシステムパラメータを用いて次式の演算が成り立つかチェックする。
【0030】
【数2】
Figure 0004105803
【0031】
署名生成検証部2の行う上記各演算は乗除算及び加算であり、ハードウェア又はソフトウェアで実現できる。但し、上記演算中(rxYa)なる乗算は通信相手によって異なる公開鍵Yaを用いており、いわゆる任意点のべき倍に相当する演算であり、従来に比して一段と効率的に行うよう工夫されている。その詳細は図4に示されており、後述する。
[固定点のべき倍の演算]
図3は固定点べき倍演算装置5の詳細な構成を示すブロック図であり、該装置5はテーブル記憶部51,テーブル索引生成部52,読み出し部53、第1演算部54,出力部55及び制御部56から構成されている。
【0032】
各部の構成を説明するに先だってこの装置5の演算原理について概説する。この装置5は既述したように固定点のべき倍kGを求める方法である。例えば乱数kを160桁の2進数とすると、次のような一般式で表わされる。
【0033】
【数3】
Figure 0004105803
【0034】
固定点のべき倍は上式の各桁にGを掛けたものの総和を求めればよいが、演算数が多く時間がかかるので、そのような方法は避け、代わりに32ビットおきの係数kiの組み合わせと、32ビットおきの2進数の値の和にGを乗算した値との対応表を準備しておき、入力されてくる乱数の32ビットおきの係数kiの組み合わせを検出し、その組み合わせを用いて前記対応表を検索してその組み合わせに対応する乗算値を求める。そして、この手法を1桁ずつシフトしながら係数kiの組み合わせで選択しないものがなくなるまで繰り返し、その総和を求めるのである。この場合、対応表が一種類だけであると、対応表の検索、乗算の繰り返し回数は32回必要となるが、二種類準備しておくと、その半分の16回で足り、より効率的になる。これが本実施例で行う固定点のべき倍方法の原理である。
【0035】
次に、上記原理を踏まえ固定点べき倍演算装置の各部の構成を説明する。
[テーブル記憶部の構成]
図5にテーブル記憶部51の記憶内容を示す、図中、sは32ビットおきの係数kiの組み合わせを示す数列である。乱数が160ビットであるので、この乱数から32ビットおきに取り出した係数の個数は5であり、従って、sが5ビットであることは理解できる。尚、sの上位の係数は乱数の上位の係数となるようsの係数の並び順は乱数のそれと一致させてある。また、各係数kiは0か1であるので5個の係数列がとり得る値は”00000”〜”11111”の2^5(=32)通り存在する。勿論乱数kが発生された後は各kiは一義的に定まるが、テーブルは乱数としてどんな値が発生されたとしてもその乱数の32ビットおきの係数の組み合わせをもっている必要があるので、sとしては上記のように”00000”〜”11111”の2^5通りの値を用意せねばならないのである。図5中にsが”00000”〜”11111”まで32通り記載されているのは上記理由による。尚、sは以上の説明から明かなように乱数kの係数kiの組み合わせとして、採る可能性のある全ての数列であり、乱数kの係数kiそのものではないので、次の式で示す。
【0036】
【数4】
Figure 0004105803
【0037】
ここで、[a4a3a2a1a0]は単に0.1の数字の並びを意味している。
次に、A(s)は乱数kの最下位ビットk0・2^0と、そこから32ビットずつ上位のビットの値(k32・2^32,k64・2^64,k96・2^96,k128・2^128)にベースポイントGを掛けた値に相当している。この場合、A(s)はsのとり得る32通りの全ての値[a4a3a2a1a0]に対して準備されている。例えばsが”00001”の場合には、最下位ビットの係数k0のみ1であるのでA(s)はGである。sが”00010”に場合には、最下位ビットから32ビット上位の係数k32のみが1であるのでA(s)はs2^32・Gとなる。sが”00011”の場合にはk0とk32が1なので、A(s)は2^32・G+Gとなる。次の(5)式にA(s)の一般式を示す。
【0038】
【数5】
Figure 0004105803
【0039】
一方、B(s)は乱数kの最下位から16ビット上位の値k16・2^16と、そこから32ビットずつ上位のビットの値{k(16+32)・2^(16+32), k(16+64)・2^(16+654), k(16+96)・2^(16+96), k(16+128)・2^(16+128)}にベースポイントGを掛けた値に相当している。言うなれば同一のsにおけるA(s)の値を16ビット上位へシフトした値である。シフト数を16ビットとしたのは、sが32ビットおきのkiの組み合わせであることと関係している。すなわち、32ビットの丁度半分が16ビットであるので、固定点のべき倍k・Gの演算のために繰り返す回数が16回で済むこととなるためである。次の(6)式にB(s)の一般式を示す。
【0040】
【数6】
Figure 0004105803
【0041】
[テーブル索引生成部]
テーブル索引生成部52は、乱数kが発される度に乱数を一時的に記憶し、乱数k中の32ビットおきの係数を検出する。乱数が(3)式に示した160ビットの値であるので、32ビットおきの係数の組み合わせは次の32通りである。
Figure 0004105803
テーブル索引生成部52は一回につき、A(s)とB(s)の夫々の索引をするために2つの索引アドレス(上記した係数の組み合わせ)を生成する。生成の順序は制御部56から指示される係数j(0≦j≦15)によって決定される。1回目は上記32通りの組み合わせのうち(15)と(31)のkiの組み合わせを出力するよう指示され、以後(0)(16)に至るまで降順に指示される。
【0042】
ここで、テーブル索引生成部52がA(s)検索用に生成すつ索引アドレスをUj, B(s)検索用に生成する索引アドレスをVjとすると、それらは次式(7)(8)によって求められる。
【0043】
【数7】
Figure 0004105803
【0044】
【数8】
Figure 0004105803
【0045】
例えば上式においてj=15であると、
【0046】
【数9】
Figure 0004105803
【0047】
【数10】
Figure 0004105803
【0048】
となる。上式(9)(10)の値は既述した係数の組み合わせのうち(15)(31)に相当することが理解される。同様にj=0の場合、
U0=k128・2^4+k96・2^3+k64・2^2+k32・2+k0
Vo=k144・2^4+k112・2^3+k80・2^2+k48・2+k16
となり、夫々既述した係数の組み合わせの(0)(16)に相当することが理解される。尚、テーブル索引生成部52の構成は図示していないが、式(7)及び式(8)の演算を実現するハードウェア又はソフトウェアを用いる。そのようなハードウェア、ソフトウェアは当業者であれば極めて簡単に実現できる。
[読み出し部]
読み出し部53は、前記テーブル索引生成部52から得るUj, Vjを用いてテーブル記憶部51を検索し、対応するA(Uj),B(Vj)を読み出し第1演算部54に出力する。
[第1演算部]
第1演算部54は新たな乱数が発生される度に、テーブル記録部51から読み出されるA(Uj),B(Vj)を用いて固定点のべき倍kGの値を求めるもので、その手順は図6のフローチャートに示されている。フローチャートの説明に先だって演算方法を説明する。固定点のべき倍kGの演算は、基本的には乱数kの各桁にベースポイントGを掛け、各々の桁の乗算値の和を求めることにあり、式で示せば次式の通りである。
【0049】
【数11】
Figure 0004105803
【0050】
一方、テーブル記憶部51から順次読み出されるA(Uj),B(Vj)は以下に列挙する式の通りである。
【0051】
【数12】
Figure 0004105803
【0052】
【数13】
Figure 0004105803
【0053】
以上のA(Uj),B(Vj)を用いて、kGを求めるためには、桁の違いを考慮すると次の(14)式で示す漸化式を用いて求めることができる。
【0054】
【数14】
Figure 0004105803
【0055】
図16のフローチャートにおいて、ステップS2ではTを零元(=∞)にする処理を行う。ステップS5のA(Uj),B(Vj)の獲得は、テーブル索引生成部52からUj,Vjを得てテーブル記憶部51を検索し、A(Uj),B(Vj)を読み出す処理である。ステップS3→S4→・・・→S8→S4→・・→S8の繰り返し処理が上記漸化式の実行である。ステップS4でj<0と判断されたときの下の値がkGであり、出力部55を通じて署名生成検証部2へ出力される(S9)。尚、ステップS3,S4,S8のjのデクリメント処理は制御部56によって実行される。
[任意点のべき倍演算]
次に署名生成検証部2の行う任意点のべき倍rxYa処理について説明する。図4がその構成を示したブロック図であり、変換部21,ウィンドウ分割部22,テーブル生成部23,第2演算部24,出力部25からなる。ここで、rxはエルガマル署名通信に際してメッセージmと共に通信相手に送られるデータR1のx成分である。このrxは乱数であり、また暗号通信においては乱数kと公開鍵Yaの乗算を行うので、ここでは便宜上rxを乱数kとみなして、乱数と公開鍵の乗算kYaを署名生成検証部2が行うとして説明する。乱数kは例えば160桁の2進数で式(3)で表現されるものとする。
[変換部]
変換部21は乱数kに対して、いわゆるaddition-subtraction変換を行う。
addition-subtraction変換は図7,8のフローチャートにその手順が詳細に示されているが、端的に云えば、乱数kの係数列[kn, kn-1, kn-2,・・・k2 k1k0]を係数列T=[tn+1, tn, tn-1. ・・・t2t1t0]に変換することである。その変換方法は次の通りである。
(1)乱数kを下位ビットから検索し、係数ki=1となるビットを検索する。(2)ki=1となるビットが見つかると、そのビットより4ビット上位のk(i+4)を参照し、k(i+4)=0ならば、ki〜k(i+4)の係数をそのままti〜t(i+4)の係数とする、即ち、式で示せば、
【0056】
【数15】
Figure 0004105803
【0057】
である。
そして、次の(i+5)ビットから上位に同様な操作を行う。
(3)一方、k(i+4)=1ならば、k(i+3)〜kiの処理は後回しにして更に(i+5)ビット目から上位を検索してゆき、初めて係数が0となるビットsに対して、ts=1とし、(s−1)ビットから(i+4)ビットの係数を全て零とする。
t(s-1) =t(s-2)・・・=t(i+4)=0
そして、係数k(i+3)〜kiについては、2進数[k(i+3), k(i+2), k(i+1), ki]の2の補数をとり、
【0058】
【数16】
Figure 0004105803
【0059】
各係数を負数にしたものをt係数とする。
【0060】
【数17】
Figure 0004105803
【0061】
この後、(s+1)ビットから同じ操作に戻る。
以上の処理を最上位ビットまで行うと、変換後の係数列Tを得る。
次に、この変換処理を図9の具体例に基づき説明する。図9では乱数kとして28桁の2進数が示されている。この乱数kに対して下位ビットから変換処理を行うのであるが、この例では最下位ビットの係数が1であるので、この係数をkiとおき、このビットから上位4ビット目(i+4)の係数を検索する、すると、k(i+4)=0であるので、ki〜k(i+4)をそのまま係数ti〜t(i+4)とする、図中、T1がこの部分の変換後の係数列を示している。
【0062】
次に、(i+5)ビットに進み、再び係数が1か0かの検出を行う。(i+5)ビット目の係数は1なので、そのビットを新たにiとして、ビット位置iから4ビット上位の係数k(i+4)を参照する。ここではk(i+4)=1であるので、更に上位ビットを参照し、初めて係数が0になるビットsを検出する。図示例では(i+4)ビットよりも3ビット上位のビットがks=0となっていることがわかる。そこで、Sビット目の係数を1,(s-1)〜(i+4)ビットまでを零に変換したものを変換後の係数ts〜t(i+4)とする。そして、更にk(i+3)〜kiにたいしては、式(13)、式(14)の処理を行い、”1101”を得る。かくして、s〜iビット(乱数中13〜6ビット)の間の変換を完了する、図中T2がこの部分(13〜6ビット間)の係数列を示している。
【0063】
以後、同様にして上位ビットの変換処理T3を行い、最上位のビットまで完了すると、各部分変換係数T1T2T3・・・を順に並べて最終的な変換係数列Tを得る。
図7のフローチャートは、160ビットの乱数kの係数列を変換する処理を示している。ステップS72,S76等に示されるiは乱数kのビット位置を示す変数である。ステップS75,S78等で出てくるTメモリは変換後の係数tを格納するメモリである、S73でi>159と判定された時点におけるTメモリの格納値が変換後の係数列T=[t160,t159,・・・t1,t0]である。S73→S74→S75→S76→S73で示すように乱数kの最下位ビットから0が続く限りそのままTメモリの対応するビット位置に0が書き込まれる。一方、係数が1になると(S74)、そのビット位置から4ビット上位の係数が1であるかどうかをS77で判定し、Noであれば、S78→S79により、そのままTメモリに格納されるし、S77でYesであれば図8に示すサブルーチンに進み、式(13)(14)を含む演算処理を行う。図8のステップS84が(i+4)ビットより上位sビットまでの変換処理、ステップS85,S86がi〜(i+3)までの変換処理を示している。図7、8の処理は既述した変換操作から理解されるので、これ以上の説明は省略する。
【0064】
但し、このaddition-subtraction変換はステップS84の処理から理解されるように、乱数に係数1が多く含まれていると0に変更され、その分係数1の数が減少することに留意すべきである。
[ウィンドウ分割部]
ウィンドウ分割部22は、図10に示すように、変換部21にて得られた係数列T(S101)を上位ビットから検索し(S102→S103→S104→S105→S103)、初めて1が出てくるビットから順に下位に検索し4ビットで1つのウィンドウとする(S106)。この処理を最下位ビットまで繰り返す(S107)。この処理では係数0のビットが多いとウィンドウの数が極めて少なくなることが理解される。しかも、addition-subtraction変換によって係数1の数が減少しているので、addition-subtraction変換後にウィンドウ分割する処理を行う本方法では、ウィンドウの数がより一層少ないことが理解される。
【0065】
図9の最下段に、addition-subtraction変換後の係数列Tをウィンドウに分割した例を示す。この例からもウィンドウの数が少なくなっていることが理解される。
[テーブル作成部]
テーブル作成部23は公開鍵Yaを受け取ると、それを奇数倍する演算を行う。ウィンドウの大きさが4ビット(=15(10))であるので、奇数倍は15倍を上限としている。作成されたテーブルを図11に示す。
[第2演算部]
第2演算部24は変換係数列Tを上位から検索し、ウィンドウがある毎に、テーブルの値を加えて、その結果を2べき倍することを繰り返す。詳しい手順は図12に示されている。先ず、1番目のウィンドウから(S121)、ウィンドウ内の4ビットを参照し(S122)、その4ビットの上位から係数1が存在するビットまでを抽出する(S123)。例えば、4ビットが”1100”であった場合には”11”が抽出される。同様に”1010”であった場合には”101”が抽出される。抽出したビット列の値は必ず奇数であり、しかも10進数で15以下の数である。続いて抽出したビット列の値を用いてテーブルを検索し、sYaを取り出し(S124)、S125に進む。1番目のウィンドウの処理ではZ=0に設定(S121)されているので、S125においては、ZメモリにsYaが格納されることになる。この後、抽出したビット列の最下位ビットから2番目のウィンドウの最上位ビットまでの係数0の個数mを検出する(S127)。
【0066】
次に、2番目のウィンドウに移って(S128)、同様にウィンドウ内の4ビットの上位から係数1が存在するビットまでを抽出し、テーブルを検索し該当するsYaを読み出す(S124)。そして、S125に進み演算を行う。この場合、Zメモリにはウィンドウ1においてした演算結果sYaが格納されているし、mの値も直前のS127において検出されているので、Zメモリは
Z=(sYa)w1・2^m+(sYa)w2
と書き換えられる。但し、(sYa)w1はウィンドウ1の処理でテーブルから得た値、(sYa)w2はウィンドウ2の処理でテーブルから得た値である。
【0067】
以下、3番目、4番目のウィンドウについてS122〜S128の処理を進め、全てのウィンドウについて処理を終えると(S126)、S130に進み、最後のウインドウWmax内の抽出したビット別の最下位ビットから下位に存在する0の数nを検出し、その時のZメモリに格納された値に2nを掛け、これを最終的なZメモリの値とする。かくして最終的にZメモリに格納された値が任意点のべき倍kYkである。
【0068】
上記実施例は本発明の一例を示したもので、本発明はそのような例に限定されるものでないことは勿論である。上記実施例以外に変更実施できる点を以下に列挙する。
▲1▼固定点のべき倍の演算において、テーブル記憶部に記憶しているA(s)、B(s)は、32ビットを1ワードとする1ワードおきのべき倍値の和であるし、テーブル索引生成部は乱数から1ワード(=32ビット)おきの係数を検出するようにしているが、1ワードが64ビットであっても或いは16ビットであってもよく、32ビットに限られない。但し、対象とする乱数が160ビットの場合は、1ワードを32ビットとするのが索引アドレスのビット数の点、べき倍の和の値の点からも適切である。
▲2▼実施例ではA(s)とB(s)という2種類のべき倍値の和を用いて固定点のべき倍演算を行うようにしているが、べき倍値の和としては3種類以上準備し、各々用いるようにすることもできる。その場合は1ワードのビット数をべき倍値の和の種類数で等分し、他のべき倍値の和は、基準となるべき倍値の和に対して等分されたビット数分ズレたビットに相当するものとすればよい。
▲3▼更にべき倍値の和はA(s)のみの一種類でも足りる。その場合はA(s)を16ビットシフトした2^16・A(s)を演算し、これをB(s)の代用として(12)式の演算を行うようにすればよい。
▲4▼任意点のべき倍の演算でウィンドウに分割する際、ウィンドウは4ビットの大きさとしたが、ビット数にはこだわらない。5ビットでも6ビットでもよいことは勿論である。
▲5▼実施例ではエルガマル署名通信を行う装置に本発明を適用しているが、暗号通信や認証、特に楕円曲線を用いた暗号通信や認証を行う装置に適用できる。
▲6▼ベースポイントGは実施例では楕円曲線E(GF(p))の位数qの元に相当するが、楕円曲線の拡大体E(GF(p^r))の元をGとして用いることもできる。但し、rは正整数である。同様に任意点のべき倍の演算においても楕円曲線E(GF(p))に代えてその拡大体E(GF(p^r))を適用することもできる。
▲7▼任意点のべき倍の演算においては、実施例では2のべき乗倍と加算を組み合わせを用いて行っているが、加算、2倍算、4倍算を組み合わせて行うこともできる。その場合において4倍算の演算は射影座標を用いて多項式で求めることができる。
【0069】
【発明の効果】
以上説明したように、本発明に係る楕円曲線演算装置によれば、2つのテーブルに格納されている数値の加算と2倍点の演算を繰り返してベースポイントGのべき倍の計算を行うので、従来のように加算のみ行う方法に比べて演算回数が少なく、効率の良い計算が可能となって、暗号通信システムにとって大変利用価値が高いものである。
【0070】
更に、本発明に係る任意点のべき倍を求める楕円曲線演算装置によれば、従来の手法に比べて分割するウインドウの数が本質的に少なくなり、演算の効率が高まるものである。
【図面の簡単な説明】
【図1】本発明装置が適用される通信環境の一例を示す図である。
【図2】エルガマル署名方式を実行する通信装置を示すブロック図である。
【図3】本発明の一例としての固定点のべき倍演算を行う固定点べき倍演算装置を示すブロック図である。
【図4】本発明の他の一例として任意点のべき倍演算を行う演算装置を示す図である。
【図5】図3中のテーブル記憶部の中の構成を詳細に示す図である。
【図6】図3中の第1演算部の行う動作を説明するフローチャートである。
【図7】図4中の第2演算部の動作を示すフローチャートである。
【図8】図4中の第2演算部の動作を示すフローチャートである。
【図9】加減算変換動作を説明する図である。
【図10】図4中のウィンドウ分割部の処理を示すフローチャートである。
【図11】図4中のテーブル作成部が作成するテーブルを示す図である。
【図12】図4中の第2演算部の演算動作を説明するフローチャートである。
【図13】エルガマル署名通信の手法を説明する図である。
【符号の説明】
1, 乱数生成部
2, 署名生成検証部
3, 送信部
4, 受信部
5, 固定点べき倍演算装置
6, 秘密鍵保持部
21, 変換部
22, ウインドウ分割部
23, テーブル作成部
24, 第2演算部
51, テーブル記憶部
52, テーブル索引生成部
53, 読出部
54, 第1演算部
55, 制御部

Claims (5)

  1. ウィンドウ法を用いて楕円曲線E上の点Pのべき乗倍値kP(kは桁数の多い正の整数)の演算を行うことにより、秘密の通信又は認証を行う情報セキュリティ装置であって、
    整数kを変換ビット列に変換する変換手段と、
    前記変換ビット列を、1個以上のfビットのウィンドウと、値0のみを含む1個以上の零値列とに分割するウィンドウ分割手段と、
    ウィンドウ毎に、そのウィンドウ値wを用いてべき乗倍値wPを算出し、全てのウィンドウについて算出されたべき乗倍値を当該ウィンドウの位置に応じて加算し、これによりべき乗倍値kPを得るべき倍手段と、
    得られたべき乗倍値kPを用いて、情報を暗号化し、情報を復号し、情報にデジタル署名を施し、又は情報にデジタル署名の検証を施すセキュリティ処理手段とを備え、
    前記正の整数kは、複数のビットからなり、
    前記変換手段により生成される前記変換ビット列は、整数kが有するビット数より多い複数のビットからなり、各ビット値は、符号(sign)を有し、
    前記変換手段は、
    整数kの1個のfビットのウィンドウの上位側に隣接するビットから、連続する複数の値1からなる同一値列を検索し、
    同一値列が存在する場合に、当該同一値列の最下位ビットにおいて、当該同一値列に値1を加算し、前記変換ビット列において当該同一値列に相応する位置に前記加算による桁上げ値を含む加算結果を書き込み、前記ウィンドウの値から、前記ウィンドウの上位側に隣接するビットにおいて、値1を減算し、その符号付きの減算結果を前記変換ビット列において前記ウィンドウに相応する位置に書き込み、
    その結果、前記変換ビット列は、前記同一値列に相応する位置において前記同一値列のビット数と同数の連続する複数の値0を含み、その上位側に隣接して値1を含み、前記ウィンドウに相応する位置において、符号付きの前記減算結果を含む
    ことを特徴とする情報セキュリティ装置。
  2. 前記変換手段は、整数kの1個のfビットのウィンドウの上位側に隣接するビットが値0である場合、前記ウィンドウの値を、前記変換ビット列において前記ウィンドウに相応する位置に書き込む
    ことを特徴とする請求項1に記載の情報セキュリティ装置。
  3. 前記変換手段は、
    整数kの1個のfビットのウィンドウの上位側に隣接するビットから、連続する複数の値1からなる同一値列を検索して、同一値列が存在する場合であって、前記桁上げ値を含む前記加算結果及び符号付きの前記減算結果を前記変換ビット列に書き込んだときに、
    さらに、前記同一値列の最上位から2ビット先のビットから上位側へ各ビットを順にサーチし、値1であるビットが最初に発見されるまでに発見される値0を除外し、最初に値1であるビットが発見されたときに、当該ビットから上位側へfビットを新たなウィンドウとして特定し、
    特定した新たな前記ウィンドウの上位側に隣接するビットから、連続する複数の値1からなる同一値列を検索し、
    同一値列が存在する場合に、当該同一値列の最下位ビットにおいて、当該同一値列に値1を加算し、前記変換ビット列において当該同一値列に相応する位置に前記加算による桁上げ値を含む加算結果を書き込み、前記ウィンドウの値から、特定した新たな前記ウィンドウの上位側に隣接するビットにおいて、値1を減算し、その符号付きの減算結果を前記変換ビット列において新たな前記ウィンドウに相応する位置に書き込み、
    特定した新たな前記ウィンドウの上位側に隣接するビットが値0である場合、前記ウィンドウの値を、前記変換ビット列において前記ウィンドウに相応する位置に書き込む
    ことを特徴とする請求項2に記載の情報セキュリティ装置。
  4. 前記変換手段は、さらに、整数kの最下位ビットに至るまで、前記ウィンドウの特定と、同一値列の検索と、桁上げ値を含む加算結果及び符号付きの減算結果の書き込みと、ウィンドウ値の書き込みとを繰り返す
    ことを特徴とする請求項3に記載の情報セキュリティ装置。
  5. 前記変換手段は、
    同一値が存在する場合の前記加算において、当該同一値と同数の値0からなるビット列を生成し、前記桁上げ値を値1とし、値1と生成したビット列とを前記加算結果とし、
    同一値が存在する場合の前記減算において、前記ウィンドウの値について、2の補数を算出し、算出結果の各ビット値を負数にすることにより、前記符号付きの減算結果を得る
    ことを特徴とする請求項1に記載の情報セキュリティ装置。
JP20072598A 1997-07-17 1998-07-15 楕円曲線演算装置 Expired - Fee Related JP4105803B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP20072598A JP4105803B2 (ja) 1997-07-17 1998-07-15 楕円曲線演算装置

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP9-192143 1997-07-17
JP19214397 1997-07-17
JP20072598A JP4105803B2 (ja) 1997-07-17 1998-07-15 楕円曲線演算装置

Publications (2)

Publication Number Publication Date
JPH11102158A JPH11102158A (ja) 1999-04-13
JP4105803B2 true JP4105803B2 (ja) 2008-06-25

Family

ID=26507132

Family Applications (1)

Application Number Title Priority Date Filing Date
JP20072598A Expired - Fee Related JP4105803B2 (ja) 1997-07-17 1998-07-15 楕円曲線演算装置

Country Status (1)

Country Link
JP (1) JP4105803B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4034585B2 (ja) 2002-01-28 2008-01-16 松下電器産業株式会社 楕円曲線演算装置及び楕円曲線演算方法
JP5446678B2 (ja) 2009-09-29 2014-03-19 富士通株式会社 楕円曲線暗号演算装置及び方法

Also Published As

Publication number Publication date
JPH11102158A (ja) 1999-04-13

Similar Documents

Publication Publication Date Title
US6263081B1 (en) Elliptic curve calculation apparatus capable of calculating multiples at high speed
Gong et al. Public-key cryptosystems based on cubic finite field extensions
JP3862500B2 (ja) 直接埋め込み方式による高速楕円曲線暗号化の方法と装置
Gouvêa et al. Efficient software implementation of public-key cryptography on sensor networks using the MSP430X microcontroller
EP1306749B1 (en) Elliptic curve converting device
WO1996004602A1 (en) Elliptic curve encryption systems
CN101753306B (zh) 运用Montgomery型椭圆曲线的数字签名认证方法
KR100513127B1 (ko) 타원곡선 변환장치, 이용장치 및 이용시스템
JP4034585B2 (ja) 楕円曲線演算装置及び楕円曲線演算方法
CN109145616B (zh) 基于高效模乘的sm2加密、签名和密钥交换的实现方法及系统
US6480606B1 (en) Elliptic curve encryption method and system
JP4177526B2 (ja) 乗算剰余演算方法および乗算剰余回路
Panjwani et al. Hardware-software co-design of elliptic curve digital signature algorithm over binary fields
CN111897578A (zh) 一种特征为2的椭圆曲线上标量乘的并行处理方法及装置
JP4105803B2 (ja) 楕円曲線演算装置
Panjwani Scalable and parameterized hardware implementation of elliptic curve digital signature algorithm over prime fields
JP2020052215A (ja) 公開鍵暗号システム、公開鍵暗号方法、公開鍵暗号プログラム
CN113505383A (zh) 一种ecdsa算法执行系统及方法
US8850213B2 (en) Method for verifying an electronic signature and data processing device
Ding et al. Some new methods to generate short addition chains
JP4598269B2 (ja) 楕円曲線上の高速有限体演算
Wang et al. Telosb implementation of elliptic curve cryptography over primary field
JP4541485B2 (ja) べき乗演算装置、べき乗剰余演算装置、楕円べき倍点演算装置、並びのそれらの方法、記録媒体
JP3050313B2 (ja) 楕円曲線変換装置、利用装置及び利用システム
JP4225764B2 (ja) 楕円曲線変換装置、楕円曲線変換方法、楕円曲線利用装置及び楕円曲線生成装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050311

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070402

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: 20080304

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080328

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20110404

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20120404

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130404

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees