JPH1039752A - 公開鍵暗号による通信および認証方法、ならびにそれらの装置 - Google Patents

公開鍵暗号による通信および認証方法、ならびにそれらの装置

Info

Publication number
JPH1039752A
JPH1039752A JP8189730A JP18973096A JPH1039752A JP H1039752 A JPH1039752 A JP H1039752A JP 8189730 A JP8189730 A JP 8189730A JP 18973096 A JP18973096 A JP 18973096A JP H1039752 A JPH1039752 A JP H1039752A
Authority
JP
Japan
Prior art keywords
data
public key
modulo
value
ideal
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.)
Pending
Application number
JP8189730A
Other languages
English (en)
Inventor
Takeshi Takagi
剛 高木
Shozo Naito
昭三 内藤
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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone 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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP8189730A priority Critical patent/JPH1039752A/ja
Publication of JPH1039752A publication Critical patent/JPH1039752A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 従来の有理整数環上の公開鍵暗号と比較し
て、完全解読に対しては同程度以上の強度を持ち、同報
通信攻撃に対して従来より高い強度を持つ公開鍵暗号方
式および装置の構成法を提供する。 【解決手段】 鍵生成装置21は、代数体上の整数環O
における素イデアル(p),(q)を生成して第1の秘
密鍵とし、その積(n)=(p)(q)の剰余類を第1
の公開鍵とする。また(p),(q)から第2の秘密鍵
dと第2の公開鍵eを生成する。暗号化装置31は、入
力された平文Mをブロックに分割し、イデアル(n)を
法とするe乗演算により暗号化を行い、暗号文(C0,C
1,…,Cr-1 )を通信路51に出力する。復号化装置4
1は、入力された暗号文のブロックに対しイデアル
(n)を法とするd乗演算により復号化を行い、復号化
された平文ブロックを統合して、平文Mを出力する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、暗号化鍵が公開さ
れ、復号化鍵のみが秘匿される公開鍵方式の暗号に係
り、特に、従来のリベスト・シャミール・アドルマン暗
号(以下、RSA暗号と略す)より同報通信攻撃に対す
る強度を高めた公開鍵暗号による通信および認証方式並
びにそれらの装置に関する。
【0002】
【従来の技術】電気通信において、通信内容の盗聴を防
ぎ、改竄を検出するために暗号技術は不可欠である。特
に、鍵管理が簡便な公開鍵暗号が有効であり、広く利用
されつつある。代表的な公開鍵暗号のアルゴリズムとし
て、べき(冪)乗剰余演算を用いるRSA暗号があり、
既に実用化されている。
【0003】以下、池野、小山による「現代暗号理論」
(電子情報通信学会発行)に基づいて、RSA暗号の基
本原理、その鍵生成法および認証方法について説明す
る。 〔RSA暗号の基本原理〕暗号化鍵は(e,N)の組で
あり、対応する復号化鍵は(d,N)の組である。
【0004】eとNとは公開鍵であり、dは秘密鍵であ
る。平文をM、暗号文をCとする。暗号化Eと復号化D
のアルゴリズムは、次の式(1)および式(2)で表さ
れる。
【数1】 C=E(M)=Me modN …(1) M=D(C)=Cd modN …(2) 但し、MとCとは0からN−1の間の整数である。もし
元のメッセージがNより大きければ、サイズNのブロッ
クに分割して逐一、暗号化・復号化を適用すればよい。
【0005】暗号化と復号化は、1対1かつ上への写像
である。従って、MとCを代表してMで表すと、
【数2】 D(E(M))=E(D(M))=M …(3) 式(3)が成立する。具体的には、
【数3】 Med≡M modN …(4) 式(4)が成立する。但し式(4)および以下の記述に
おいて、「≡」は合同を示す記号とする。式(4)がす
べてのMに対して成立するような、暗号鍵e,d,Nの
生成手順は以下のとおりである。
【0006】〔RSA暗号の鍵生成〕まず、任意の相異
なる二つの大きな素数p,qを選び、その積N=pqを
計算する(第1段階)。
【0007】次いで、(p−1)と(q−1)の最小公
倍数Lを計算し、Lと互いに素でLより小さな任意の整
数eを選ぶ(第2段階)。
【0008】
【数4】 L=LCM((p−1),(q−1)) …(5) GCD(e,L)=1, 1<e<L …(6) 次いで、第2段階で求めたeとLをもとに、次の合同式
(7)を解き、dを求める(第3段階)。
【0009】
【数5】 ed≡1 modL …(7) 式(7)からdを求めるには、ユークリッドの互除法を
用いればよい。また、前記の生成手順は、まず、第2段
階でeを先に選び、第3段階でdを計算しているが、逆
にdを先に選び、後でeを計算してもよい。
【0010】このような、従来のRSA型公開鍵による
暗号化通信装置の構成例を図33に示す。
【0011】〔RSA暗号による認証〕RSA暗号によ
る認証通信は、以下のようにして行われる。まず、送信
者は、認証文Mをハッシュ関数hによりハッシュ化し、
認証子h(M)を得る。次いで認証子h(M)を自己の
秘密鍵dで暗号化し、暗号化認証子h(C)を得る。次
いで、暗号化認証子h(C)と認証文Mの組を送信者か
ら受信者に送る。
【0012】
【数6】 h(C)≡(h(M))d modN …(8) 受信者は、暗号化認証子h(C)と認証文Mの組を受信
すると、送信者の公開鍵eを使用して、暗号化認証子h
(C)を復号化し認証子h(M)を得る。
【0013】
【数7】 h(M)≡(h(C))e modN …(9) 次いで、受信した認証文Mをハッシュ関数hによりハッ
シュ化し、認証子h(M)°を得る。そして復号化した
認証子h(M)とハッシュ化した認証子h(M)°とを
比較して正当性を判断する。すなわち、両者が一致して
いれば認証文が正当であり、不一致であれば不当と判断
する。
【0014】このように、RSA型の公開鍵暗号装置
は、公開鍵と秘密鍵の演算を逆に適用することにより、
認証通信装置としても使用することができる。
【0015】なお、この認証通信において、前記暗号化
認証子h(C)と認証文Mの組をさらに受信者の公開鍵
を用いて暗号化する暗号化認証通信も、認証通信と暗号
化通信とを組み合わせることによって可能であることは
いうまでもない。
【0016】ところで、一般に暗号技術の性能評価の尺
度は、暗号を解読しようとする攻撃に対する安全性の強
度と、暗号化・復号化の速度である。強度が高く、速度
の速い暗号が優秀な暗号である。
【0017】RSA暗号などの公開鍵暗号は、暗号化鍵
である公開された公開鍵から、復号化鍵である秘密鍵を
得ることが計算量的に困難であることに安全性の根拠を
置いている。
【0018】RSA暗号では、公開鍵が素因数分解でき
れば、暗号文から平文を得ることができることが、文献
「R.L.Rivest, A.Shamir and L.Adleman; “A method f
or obtaining digital signatures and public-key cry
ptosystems.”,Comm., ACM, vol.21, No.2, pp.120-1
26, (1978) 」に示されている。これらの安全性の評価
は、完全解読を対象としたものであり、この場合には公
開鍵の素因数分解の十分性あるいは計算量的な同値性が
示されている。
【0019】
【発明が解決しようとする課題】しかしながら、J.Hast
adは、文献「J.Hastad;“On using RSA with low expo
nent in a public key network”,Proceeding of CRYP
TO '85,Springer-Verlag (1986)」において、同報通信
攻撃と呼ばれるRSAタイプの公開鍵暗号に対する解読
法を提案した。
【0020】これにより、RSAタイプの公開鍵暗号で
は、同一の発信者から複数の受信者に対して、同一内容
の平文をそれぞれ異なる公開鍵により暗号化して送信さ
れた同報通信が盗聴されると、複数の暗号文から公開鍵
を素因数分解することなく平文を得ることができること
がわかり、安全性の評価基準を見直す必要がでてきた。
【0021】RSA暗号では暗号化のべき指数を大きく
することにより同報通信攻撃を回避できるが、べき指数
を大きくするとべき乗計算時間および剰余計算時間が増
加し、暗号化の速度が遅くなるという問題点があった。
【0022】このオリジナルなRSA暗号の同報通信攻
撃に対する防御を強化した暗号として、楕円曲線を用い
たRSA暗号が知られている。この楕円曲線を用いたR
SA暗号は、文献「桑門 秀典,小山 謙二;“3次曲
線上のRSA型暗号方式の同報通信における安全性”,
信学技報ISEC94-10, (1994) 」において、その同報通信
攻撃に対する安全強度が評価されているが、暗号化およ
び復号化の速度がオリジナルのRSA暗号と比較して5
倍以上遅くなり、用途が限定されるという問題点があっ
た。
【0023】以上の問題点に鑑み、本発明の第1の課題
は、従来の有理整数環上のRSA暗号と比較して同程度
以上の強度を持ち、同報通信攻撃に対して従来以上の強
い暗号方式および装置の構成法を与えることである。
【0024】また、本発明の第2の課題は、楕円曲線上
のRSA暗号と比較して、暗号化および復号化処理が高
速である暗号方式および装置の構成法を与えることであ
る。
【0025】また、本発明の第3の課題は、認証装置と
しても利用可能であり、ひとつの装置で暗号通信と認証
通信の両用が可能となるような暗号および認証方式およ
び装置の構成法を与えることである。
【0026】
【課題を解決するための手段】上記課題を解決するた
め、本発明においては、従来の有理整数環上でのRSA
暗号を代数体の整数環の上へ拡張した公開鍵暗号方式の
具体的な構成方法である、代数体の整数環上のイデアル
を用いた鍵生成方法、べき乗演算方法、およびイデアル
を法とする剰余類の演算方法を与え、さらに鍵生成装
置、暗号通信装置および認証通信装置として実現する。
【0027】すなわち、請求項1記載の発明は、ある素
数データに基づいて、代数体上の整数環における素イデ
アルであることを満たすような互いに異なる二つの自然
数データの組である第1の秘密鍵データ、ならびに前記
両自然数データの積である第1の公開鍵データを生成す
ることを要旨とする公開鍵暗号の鍵生成方法である。
【0028】また、請求項2記載の発明は、ある素数デ
ータに基づいて、代数体上の整数環における素イデアル
であることを満たすような互いに異なる二つの自然数デ
ータの組である第1の秘密鍵データ、ならびに前記両自
然数データの積である第1の公開鍵データを生成し、前
記素数データのオイラー関数値の計算と、前記第1の秘
密鍵データに関する最小公倍数演算と、を用いて、とも
に自然数データである第2の秘密鍵データと第2の公開
鍵データとを生成することを要旨とする公開鍵暗号の鍵
生成方法である。
【0029】また、請求項3記載の発明は、ある素数べ
きデータであるmc のオイラー関数値を求めて、前記オ
イラー関数値をべき乗した結果に対してmc を法とする
剰余を計算すると1となり、かつ、前記オイラー関数値
より小さいいずれの自然数をべき乗した結果に対してm
c を法とする剰余を計算しても、1にならない条件を満
たすような、互いに異なる二つの自然数データであるp
c とqc とを探索し、pc とqc との組を第1の秘密鍵
データとして出力し、pc とqc を乗じてデータNc を
求め、Nc を第1の公開鍵データとして出力することを
要旨とする公開鍵暗号の鍵生成方法である。
【0030】また、請求項4記載の発明は、請求項3に
記載の公開鍵暗号の鍵生成方法において、前記pc とq
c とにそれぞれ前記オイラー関数値をべき乗し1を減じ
た値同士の最小公倍数の値であるLc を算出し、Lc を
法とする剰余が1となるデータ値を積とするような二つ
の自然数データを探索し、前記探索された二つの自然数
データの一方を第2の秘密鍵データdc として、他方を
第2の公開鍵データec として、それぞれ出力すること
を要旨とする。
【0031】また、請求項5記載の発明は、請求項3ま
たは4に記載の公開鍵暗号の鍵生成方法において、前記
pc とqc との探索は、ユークリッド的なmc 次円分体
において、0でないイデアルによる、mc に対するオイ
ラー関数の値を次数に持つ剰余類の完全代表系上の多次
元ベクトルの原点からの距離である、ノルムを使用して
行うことを要旨とする。
【0032】また、請求項6記載の発明は、請求項3ま
たは4に記載の公開鍵暗号の鍵生成方法において、前記
pc とqc との探索は、任意の円分体において、惰性す
る素数の積で表されるイデアルによる、mc に対するオ
イラー関数の値を次数に持つ剰余類の完全代表系上の多
次元ベクトルの原点からの距離である、ノルムを使用し
て求めることによって行うことを要旨とする。
【0033】また、請求項7記載の発明は、二乗因子を
含まないある有理整数データ値であるms に対して、4
を法とする剰余を計算し、この剰余の計算値が1となる
場合は、判別式データの値をms とし、この剰余の計算
値が1以外の場合は、判別式データの値を4ms とし、
有理整数のなかから、この有理整数を法として前記判別
式データを平方非剰余とするような互いに異なる二つの
数であるps とqs を探索し、ps とqs の組を第1の
秘密鍵データとして出力し、ps とqs を乗じてデータ
Ns を求め、Ns を第1の公開鍵データとして出力する
ことを要旨とする公開鍵暗号の鍵生成方法である。
【0034】また、請求項8記載の発明は、請求項7に
記載の公開鍵暗号の鍵生成方法において、前記ps とq
s のそれぞれの2乗から1を減じた値同士の最小公倍数
データ値であるLs を算出し、このLs を法とする剰余
が1となるデータ値を積とするような二つの自然数デー
タを探索し、この二つの自然数データの一方を第2の秘
密鍵データds とし、他方を第2の公開鍵データes と
して、それぞれ出力することを要旨とする。
【0035】また、請求項9記載の発明は、請求項7ま
たは請求項8に記載の公開鍵暗号の鍵生成方法におい
て、前記のps とqs の探索は、ユークリッド的な2次
体において、0でないイデアルによる2次の剰余類の完
全代表系である2次元ベクトルの原点からの距離であ
る、ノルムを使用して求めることによって行うことを要
旨とする。
【0036】また、請求項10記載の発明は、ある素数
べきデータであるmc を入力する入力手段と、mc のオ
イラー関数値を求めるオイラー関数計算手段と、前記オ
イラー関数値をべき乗した結果に対してmc を法とする
剰余を計算すると1となり、かつ、前記オイラー関数値
より小さいいずれの自然数をべき乗した結果に対してm
c を法とする剰余を計算しても、1にならない条件を満
たすような、互いに異なる二つの自然数データであるp
c とqc とを探索する第1の探索手段と、pcとqc を
乗じてデータNc を求める乗算手段と、pc とqc とに
それぞれ前記オイラー関数値をべき乗し1を減じた値同
士の最小公倍数データ値であるLc を算出し、Lc を法
とする剰余が1となるデータ値を積とするような二つの
自然数データdc およびec を探索する第2の探索手段
と、pc とqc との組を第1の秘密鍵データとして、N
c を第1の公開鍵データとして、dc を第2の秘密鍵デ
ータとして、ec を第2の公開鍵データとして、それぞ
れ出力する出力手段と、を具備したことを要旨とする公
開鍵暗号の鍵生成装置である。
【0037】また、請求項11記載の発明は、二乗因子
を含まないある有理整数データ値であるms を入力する
入力手段と、ms に対して、4を法とする剰余を計算
し、この剰余の計算値が1となる場合は、判別式データ
の値をms とし、この剰余の計算値が1以外の場合は、
判別式データの値を4ms とする判別式データ設定手段
と、有理素数のなかから、この有理素数を法として前記
判別式データを平方非剰余とするような互いに異なる二
つの有理素数であるps とqs とを探索する第1の探索
手段と、ps とqs を乗じてデータNs を求める乗算手
段と、ps とqsのそれぞれの2乗から1を減じた値同
士の最小公倍数データ値であるLs を算出し、このLs
を法とする剰余が1となるデータ値を積とするような二
つの自然数データds およびes を探索する第2の探索
手段と、ps とqs の組を第1の秘密鍵データとして、
Ns を第1の公開鍵データとして、ds を第2の秘密鍵
データとして、es を第2の公開鍵データとして、それ
ぞれ出力する出力手段と、を具備したことを要旨とする
公開鍵暗号の鍵生成装置。
【0038】また、請求項12記載の発明は、第1およ
び第2の公開鍵により平文データを暗号化して暗号文デ
ータを生成する公開鍵暗号による暗号化方法であって、
平文データを複数ブロックに分割して得られた平文ブロ
ックデータに対して、第2の公開鍵データ値であるec
またはes をべき乗した値を計算し、この計算値に対し
て、第1の公開鍵であるイデアルNc またはNs を法と
した剰余を求めることによって、暗号文データを生成す
ることを要旨とする公開鍵暗号による暗号化方法であ
る。
【0039】また、請求項13記載の発明は、請求項1
2に記載の公開鍵暗号による暗号化方法において、前記
イデアルを法とする剰余類の取り方は、ユークリッド的
なmc 次円分体において、0でないイデアルNc を法と
する剰余類の完全代表系として、mc に対するオイラー
関数の値を次元とする多次元ベクトルで張られる超平行
四辺体の内部と境界上の格子点とし、前記平文データ
が、それぞれ前記mc に対するオイラー関数値に等しい
ブロック数からなる平文ブロックデータに分割された後
に暗号化されることを要旨とする。
【0040】また、請求項14記載の発明は、請求項1
2に記載の公開鍵暗号による暗号化方法において、前記
イデアルを法とする剰余類の取り方は、ユークリッド的
な2次体において、0でないイデアルNs を法とする剰
余類の完全代表系として、2次元ベクトルで張られる平
行四辺形体の内部と境界上の格子点とし、前記平文デー
タが、それぞれ2つのブロックからなる平文ブロックデ
ータに分割された後に暗号化されることを要旨とする。
【0041】また、請求項15記載の発明は、平文ブロ
ックデータに対して、第2の公開鍵データ値であるec
をべき乗した値を計算するべき乗計算手段と、この計算
値に対して、第1の公開鍵であるイデアルNc を法とし
た剰余を求める剰余類計算手段と、を備えてなり、前記
剰余類計算手段におけるイデアルを法とする剰余類の取
り方は、ユークリッド的なmc 次円分体において、0で
ないイデアルNc を法とする剰余類の完全代表系とし
て、mc に対するオイラー関数の値を次元とする多次元
ベクトルで張られる超平行四辺体の内部と境界上の格子
点とすることを要旨とする公開鍵暗号による暗号化装置
である。
【0042】また、請求項16記載の発明は、平文ブロ
ックデータに対して、第2の公開鍵データ値であるes
をべき乗した値を計算するべき乗計算手段と、この計算
値に対して、第1の公開鍵であるイデアルNs を法とし
た剰余を求める剰余類計算手段と、を備えてなり、前記
剰余類計算手段におけるイデアルを法とする剰余類の取
り方は、ユークリッド的な2次体において、0でないイ
デアルNs を法とする剰余類の完全代表系として、2次
元ベクトルで張られる平行四辺形体の内部と境界上の格
子点とすることを要旨とする公開鍵暗号による暗号化装
置である。
【0043】また、請求項17記載の発明は、請求項1
2ないし請求項14のいずれか1項記載の暗号化方法に
より生成された暗号文ブロックデータに対して復号化を
施して平文データを生成する公開鍵暗号の復号化方法で
あって、前記暗号文ブロックデータに対して、第2の秘
密鍵データ値であるdc またはds をべき乗した値を計
算し、この計算値に対して、第1の公開鍵であるイデア
ルNc またはNs を法とした剰余を求めることによっ
て、平文データを生成することを要旨とする公開鍵暗号
の復号化方法である。
【0044】また、請求項18記載の発明は、請求項1
7に記載の公開鍵暗号の復号化方法において、前記イデ
アルを法とする剰余類の取り方は、ユークリッド的なm
c 次円分体において、0でないイデアルNc を法とする
剰余類の完全代表系として、mc に対するオイラー関数
の値を次元とする多次元ベクトルで張られる超平行四辺
体の内部と境界上の格子点とすることを要旨とする。
【0045】また、請求項19記載の発明は、請求項1
7に記載の公開鍵暗号の復号化方法において、前記イデ
アルを法とする剰余類の取り方は、ユークリッド的な2
次体において、0でないイデアルNs を法とする剰余類
の完全代表系として、2次元ベクトルで張られる平行四
辺形体の内部と境界上の格子点とすることを要旨とす
る。
【0046】また、請求項20記載の発明は、暗号文ブ
ロックデータに対して、第2の秘密鍵データ値であるd
c をべき乗した値を計算するべき乗計算手段と、この計
算値に対して、第1の公開鍵であるイデアルNc を法と
した剰余を求める剰余類計算手段と、を備えてなり、前
記剰余類計算手段におけるイデアルを法とする剰余類の
取り方は、ユークリッド的なmc 次円分体において、0
でないイデアルNc を法とする剰余類の完全代表系とし
て、mc に対するオイラー関数の値を次元とする多次元
ベクトルで張られる超平行四辺体の内部と境界上の格子
点とすることを要旨とする公開鍵暗号の復号化装置であ
る。
【0047】また、請求項21記載の発明は、暗号文ブ
ロックデータに対して、第2の秘密鍵データ値であるd
s をべき乗した値を計算するべき乗計算手段と、この計
算値に対して、第1の公開鍵であるイデアルNs を法と
した剰余を求める剰余類計算手段と、を備えてなり、前
記剰余類計算手段におけるイデアルを法とする剰余類の
取り方は、ユークリッド的な2次体において、0でない
イデアルNs を法とする剰余類の完全代表系として、2
次元ベクトルで張られる平行四辺形体の内部と境界上の
格子点とすることを要旨とする公開鍵暗号の復号化装置
である。
【0048】また、請求項22記載の発明は、第1の公
開鍵および第2の秘密鍵により、認証文から暗号化され
た認証子データを生成する公開鍵暗号方式による認証文
生成方法であって、前記認証文をハッシュ化し、複数ブ
ロックに分割した認証子ブロックデータを生成し、この
認証子ブロックデータに対して、第2の秘密鍵データ値
であるdc またはds をべき乗した値を計算し、この計
算値に対して、第1の公開鍵データであるイデアルNc
またはNs を法とした剰余を求めることによって、暗号
化認証子データを生成することを要旨とする公開鍵暗号
方式による認証文生成方法である。
【0049】また、請求項23記載の発明は、請求項2
2に記載の公開鍵暗号による認証文生成方法において、
前記イデアルを法とする剰余類の取り方は、ユークリッ
ド的なmc 次円分体において、0でないイデアルNc を
法とする剰余類の完全代表系として、mc に対するオイ
ラー関数の値を次元とする多次元ベクトルで張られる超
平行四辺体の内部と境界上の格子点とし、前記平文デー
タが、それぞれ前記mc に対するオイラー関数値に等し
いブロック数からなる平文ブロックデータに分割された
後に暗号化されることを要旨とする。
【0050】また、請求項24記載の発明は、請求項2
2に記載の公開鍵暗号による認証文生成方法において、
前記イデアルを法とする剰余類の取り方は、ユークリッ
ド的な2次体において、0でないイデアルNs を法とす
る剰余類の完全代表系として、2次元ベクトルで張られ
る平行四辺形体の内部と境界上の格子点とし、前記平文
データが、それぞれ2つのブロックからなる平文ブロッ
クデータに分割された後に暗号化されることを要旨とす
る。
【0051】また、請求項25記載の発明は、入力され
た認証文をハッシュ化した後に分割し、それぞれmc に
対するオイラー関数値に等しいブロック数からなる認証
子ブロックデータを生成する認証子データ生成手段と、
この生成された認証子ブロックデータに対して、第2の
秘密鍵データ値であるdc をべき乗した値を計算するべ
き乗計算手段と、この計算値に対して、第1の公開鍵デ
ータであるイデアルNc を法とした剰余を求める剰余類
計算手段と、を備えてなり、前記剰余類計算手段におけ
るイデアルを法とする剰余類の取り方は、ユークリッド
的なmc 次円分体において、0でないイデアルNc を法
とする剰余類の完全代表系として、mcに対するオイラ
ー関数の値を次元とする多次元ベクトルで張られる超平
行四辺体の内部と境界上の格子点とすることを要旨とす
る公開鍵暗号による認証文生成装置である。
【0052】また、請求項26記載の発明は、入力され
た認証文をハッシュ化した後に分割し、それぞれ2つの
ブロックからなる認証子ブロックデータを生成する認証
子データ生成手段と、この生成された認証子ブロックデ
ータに対して、第2の秘密鍵データ値であるds をべき
乗した値を計算するべき乗計算手段と、この計算値に対
して、第1の公開鍵データであるイデアルNs を法とし
た剰余を求めて暗号化認証子データを得る剰余類計算手
段と、を備えてなり、前記剰余類計算手段におけるイデ
アルNs を法とする剰余類の取り方は、ユークリッド的
な2次体において、0でないイデアルNs を法とする剰
余類の完全代表系として、2次元ベクトルで張られる平
行四辺形体の内部と境界上の格子点とすることを要旨と
する公開鍵暗号による認証文生成装置である。
【0053】また、請求項27記載の発明は、請求項2
2ないし請求項24のいずれか1項記載の認証文生成方
法により生成された暗号化認証子データを復号化し、平
文でありこの暗号化認証子データに相当する認証文デー
タの正当性を検証する認証文検証方法であって、暗号化
された認証子ブロックデータに対して、第2の公開鍵デ
ータ値であるec またはes をべき乗した値を計算し、
この計算値に対して、第1の公開鍵であるイデアルNc
またはNs を法とした剰余を求めることによって、認証
子データを復号化し、この復号化した認証子データと、
前記平文の認証子データとが一致していた場合は、認証
ないし検証過程を正当と判定し、この復号化した認証子
データと、前記平文の認証子データとが不一致であった
場合は、認証ないし検証過程を正当でないと判定する、
ことを要旨とする公開鍵暗号による認証文検証方法であ
る。
【0054】また、請求項28記載の発明は、請求項2
7に記載の公開鍵暗号による認証文検証方法において、
前記イデアルを法とする剰余類の取り方は、ユークリッ
ド的なmc 次円分体において、0でないイデアルNc を
法とする剰余類の完全代表系として、mc に対するオイ
ラー関数の値を次元とする多次元ベクトルで張られる超
平行四辺体の内部と境界上の格子点とすることを要旨と
する。
【0055】また、請求項29記載の発明は、請求項2
7に記載の公開鍵暗号による認証文検証方法において、
前記イデアルを法とする剰余類の取り方は、ユークリッ
ド的な2次体において、0でないイデアルNs を法とす
る剰余類の完全代表系として、2次元ベクトルで張られ
る平行四辺形体の内部と境界上の格子点とすることを要
旨とする。
【0056】また、請求項30記載の発明は、暗号化さ
れた認証子ブロックデータに対して、第2の公開鍵デー
タ値であるec をべき乗した値を計算するべき乗計算手
段と、この計算値に対して、第1の公開鍵であるイデア
ルNc を法とした剰余を求めて復号化された認証子デー
タを得る剰余類計算手段と、この復号化された認証子デ
ータおよびこれに対応する平文の認証子データの比較に
基づいて認証判定を行う判定手段と、を備える認証文検
証装置であって、前記剰余類計算手段における前記イデ
アルを法とする剰余類の取り方は、ユークリッド的なm
c 次円分体において、0でないイデアルNc を法とする
剰余類の完全代表系として、mc に対するオイラー関数
の値を次元とする多次元ベクトルで張られる超平行四辺
体の内部と境界上の格子点とすることを要旨とする公開
鍵暗号による認証文検証装置である。
【0057】また、請求項31記載の発明は、暗号化さ
れた認証子ブロックデータに対して、第2の公開鍵デー
タ値であるes をべき乗した値を計算するべき乗計算手
段と、この計算値に対して、第1の公開鍵であるイデア
ルNs を法とした剰余を求めて復号化された認証子デー
タを得る剰余類計算手段と、この復号化された認証子デ
ータおよびこれに対応する平文の認証子データの比較に
基づいて認証判定を行う判定手段と、を備える認証文検
証装置であって、前記剰余類計算手段における前記イデ
アルを法とする剰余類の取り方は、ユークリッド的な2
次体において、0でないイデアルNs を法とする剰余類
の完全代表系として、2次元ベクトルで張られる平行四
辺形体の内部と境界上の格子点とすることを要旨とする
公開鍵暗号による認証文検証装置である。
【0058】また、請求項32記載の発明は、請求項1
5、請求項20、請求項25、または請求項30のいず
れか1項に記載の装置において、前記剰余類計算手段に
おける剰余の計算は、前記mc に対するオイラー関数値
に等しい数の各成分毎に行うことを要旨とする。
【0059】また、請求項33記載の発明は、請求項1
6、請求項21、請求項26、または請求項31のいず
れか1項に記載の装置において、前記剰余類計算手段に
おける剰余の計算は、2つの各成分毎に行うことを要旨
とする。
【0060】[作用]本発明においては、代数体のイデ
アルの剰余類の構成法とべき乗の演算アルゴリズムを与
えることにより、代数体上に拡張された公開鍵暗号方式
を実現するための鍵生成方法、暗号化方法および復号化
方法を具体的に構成し、また鍵生成装置、暗号化装置、
および復号化装置を具体的に構成した。
【0061】すなわち、本発明に係る公開鍵暗号による
鍵生成方法および鍵生成装置によれば、従来の有理整数
環上での公開鍵暗号を円分体または2次体の整数環の上
へ拡張した公開鍵暗号方式を提供することができる。
【0062】また、本発明に係る公開鍵暗号による暗号
化方式、復号化方式、暗号化装置及び復号化装置によれ
ば、円分体または2次体それぞれにおけるイデアルを法
とするべき乗方法及びイデアルを法とするべき乗演算装
置を提供することにより、RSA型の公開鍵暗号方式及
び暗号化通信方式及び暗号化通信装置を提供することが
できる。
【0063】その結果、同報通信に対する安全性の向上
したRSA型暗号を構成することができる。また、本発
明による公開鍵暗号によれば、従来の楕円曲線上のRS
A暗号に比べて暗号化速度を大幅に高速化することがで
きる。
【0064】また、本発明に係る公開鍵暗号による認証
文生成方法、認証文検証方法、認証文生成装置、及び認
証文検証装置によれば、円分体または2次体それぞれに
おけるイデアルを法とするべき乗方法及びイデアルを法
とするべき乗演算装置を提供することにより、RSA型
の公開鍵暗号方式による認証通信が行える。
【0065】また、本発明による公開鍵暗号方式を用い
た暗号化通信装置は、認証にも適用でき、暗号化通信お
よび認証通信の双方に対称使用が可能となる。
【0066】
【発明の実施の形態】
[本発明に係る公開鍵暗号方式の原理]次に、本発明に
係る公開鍵暗号方式の原理を詳細に説明する。有理整数
環Zにおいて、素数pと互いに素な任意の整数aに対し
て、
【数8】 ap-1 ≡1 mod p …(10) 式(10)で示されるフェルマーの小定理が成り立つこ
とが知られている。
【0067】任意の代数体の整数環Oに於いても、有理
整数環Zと同様にフェルマーの小定理が成り立つ。つま
り、Oの素イデアルをPとすれば、Pと素な元αに対し
て、
【数9】 αNrmP-1≡1 mod P …(11) 式(11)が成り立つ。ただし、NrmはイデアルPのノ
ルムとする。
【0068】また、素イデアルP,Qに対して、
【数10】 N=PQ …(12) L=LCM(NrmP−1,NrmQ−1) …(13) とする。ここで、フェルマーの小定理より、k≡1
(mod L)をみたすkに対して、
【数11】 αk ≡α mod N …(14) が成立する。この合同式(14)で、k≡ed (mod
L)を満たすe,dを選び、Nの剰余類を第1の公開
鍵、eを第2の公開鍵、dを第2の秘密鍵とすれば、
【数12】 αed ≡α mod N …(15) 合同式(15)が成り立ち、公開鍵方式の暗号化および
復号化が可能となる。本原理に基づき、本発明である代
数体上に拡大したRSA型の公開鍵暗号が構成できる。
【0069】[暗号化通信装置の実施形態]次に図面を
参照して、本発明の実施の形態を詳細に説明する。図1
は、本発明に係る公開鍵暗号による暗号化通信装置11
の全体構成を説明するブロック図である。図1によれ
ば、暗号化通信装置11は、鍵生成装置21、暗号化装
置31、復号化装置41、および通信路51から構成さ
れている。
【0070】鍵生成装置21は、公開鍵1(n)、公開
鍵2e、秘密鍵1(p),(q)、および秘密鍵2dを
生成する装置である。
【0071】暗号化装置31は、平文Mを暗号化して暗
号文(C0,C1,…,Cr-1 )を通信路51に送出する装
置であり、平文Mを受け入れる平文入力部33、平文M
を一連の分割平文(M0,M1,…,Mr-1 )に分割する平
文分割部35、および分割平文(M0,M1,…,Mr-1 )
を暗号化して暗号文(C0,C1,…,Cr-1 )を得て、こ
の暗号文を送信する暗号化処理部37を備えている。
【0072】復号化装置41は、r個のブロックからな
る暗号文(C0,C1,…,Cr-1 )を復号化して分割平文
(M0,M1,…,Mr-1 )を得る復号化処理部43、この
分割平文(M0,M1,…,Mr-1 )を統合して平文Mを得
る平文統合処理部47、および平文Mを出力する平文出
力部49を備えて構成されている。通信路51は、従来
の通信路と同様の通信路である。
【0073】次に、この暗号化通信装置11を構成する
各装置の機能の概略を説明する。 [鍵生成装置]まず、鍵生成装置21は、素イデアル生
成部23により2個の素イデアルP,Q(秘密鍵1)を
生成し、その積N=PQの剰余類(公開鍵1)を決定す
る。次いで、素イデアルP,QからLを計算し、e(公
開鍵2)と、d(秘密鍵2)を生成するものである。
【0074】鍵生成装置21における鍵生成処理は、
[2個の素イデアル(秘密鍵1)の生成]、[剰余類
(公開鍵1)の決定]及び[公開鍵2であるeと秘密鍵
2であるdの生成]の3段階からなり、代数体が円分体
であるか、2次体であるかによって、処理内容が異な
る。
【0075】[円分体における鍵生成処理]円分体の場
合は、まず、円分体を生成する原始根の位数mを入力と
して、互いに異なる2つの秘密鍵1である素イデアル
P,Qを出力する。次いで、2つの秘密鍵1である素イ
デアルP,Qを入力として、公開鍵2であるeと秘密鍵
2であるdを生成し出力する。
【0076】[2次体における鍵生成処理]2次体の場
合は、判別式Dを入力として、互いに異なる2つの秘密
鍵1である素イデアルP,Qを出力する。次いで、2つ
の秘密鍵1である素イデアルP,Qを入力として、公開
鍵2であるeと秘密鍵2であるdを生成し出力する。
【0077】[暗号化装置]次に、暗号化装置31は、
平文入力部33、平文分割処理部35、及び暗号化処理
部37を含んで構成され、暗号化処理部37は、イデア
ルnを法とするべき乗演算部を含んでいる。
【0078】平文入力部33は、送信すべきメッセージ
である平文Mを受け入れる。平文分割処理部35は、鍵
生成装置21よりブロック数rおよび分割平文長[lo
2n]([x]は、xを超えない最大の整数を示すガ
ウスの記号である)を得て、平文を一連の分割平文(M
0,M1,…,Mr-1 )に分割する。ここで、rをイデアル
Nの剰余類の完全代表系としてのベクトル空間Z上の整
数環Oの次元とする。そして、平文Mに対して、それぞ
れのブロックが剰余類の範囲内のr個のブロックからな
る分割平文(M0,M1,…,Mr-1 )を生成する。
【0079】暗号化処理部37は、イデアルnを法とす
るべき乗演算部39により、受け手の公開鍵eを用い
て、
【数13】 (C0,C1,…,Cr-1 )≡(M0,M1,…,Mr-1 )e mod N …(16) 式(16)によって暗号化を行なう。この暗号文は、通
信路51を介して、受け手に送られる。
【0080】[復号化装置]復号化装置41は、r個の
ブロックからなる暗号文(C0,C1,…,Cr-1 )を復号
化して分割平文(M0,M1,…,Mr-1 )を得る復号化処
理部43、この分割平文(M0,M1,…,Mr-1 )を統合
して平文Mを得る平文統合処理部47、および平文Mを
出力する平文出力部49を備えて構成されている。この
うち復号化処理部43は、イデアルnを法とするべき乗
演算部45を備えていてる。
【0081】復号化処理部43は、イデアルnを法とす
るべき乗演算部45により、受け手自身の秘密鍵dを用
いて、
【数14】 (C0,C1,…,Cr-1 )d ≡(M0,M1,…,Mr-1 ) mod N …(17) 式(17)を計算することによって、復号化を行なう。
【0082】平文統合処理部47は、復号化された分割
平文(M0,M1,…,Mr-1 )を統合し、原平文Mへ復元
し、平文出力部49から出力する。
【0083】次に、鍵生成装置21における本発明の公
開鍵暗号方式に用いられる公開鍵(暗号化鍵)及び秘密
鍵(復号化鍵)の生成方法を詳細に説明する。
【0084】[円分体における素イデアルの生成]ま
ず、円分体における素イデアルの生成について説明す
る。有理数体Qに1の原始m乗根ζm (ただし、mは素
数のべきとする)を添加した体Q(ζm )をm次円分体
とよぶ。その整数環をOと書く。m=3,5,7,1
1,13などのときは、ユークリッド環であった。ま
た、この円分体の整数環OはZφ(m) に埋め込み可能で
あり、以降Oの元
【数15】 a0 +a1 ζm +a2 (ζm )2 +…+aφ(m)-1 (ζm )φ(m)-1 …(18) をZφ(m) の元(a0 ,a1 ,a2 …,aφ(m)-1 )と
同一視する。ただし、a0 ,a1 ,a2 …,aφ(m)-1
∈Zであり、φ(m)は1以上m−1以下の自然数でm
と互いに素な数の個数である(オイラー関数)。したが
って、円分体の整数環OはZ上φ(m)次元である。
【0085】これより、円分体の整数環Oにおいて、有
理素数pは、
【数16】 pφ(m)≡1(mod m),pi≠1(mod m) (j<φ(m))…(19) であるときOにおいても素数である。つまり、上の条件
を満たす素数pを選べば、その素数は円分体の整数環で
も分解せず、素イデアル(p)の生成元pとなる。これ
を、惰性する素数と呼び、暗号化装置の秘密鍵1とす
る。
【0086】具体例として、m=3,5,7,11,1
3の場合などは、素数pとして、
【数17】 m=3 p≡2 mod 3 m=5 p≡2,3 mod 5 m=7 p≡3,5 mod 7 m=11 p≡2,6,7,8 mod 11 m=13 p≡2,6,7,9,11 mod 13 を選べばよい。円分体は、原始m乗根の自然数mが与え
られると決定する。
【0087】図3は、円分体における素イデアル生成装
置の機能図である。同図によれば、まず、円分体を生成
する原始根の位数mを入力し、次いで、有理素数pを任
意に生成する(ステップS101)。次いで、制御変数
iを1に初期設定する(ステップS103)。次いで、
有理素数pのi乗(mod m)を計算し、この値が1に等
しいか否かを判定する(ステップS105)。
【0088】等しければ、ステップS101に戻り、再
度新たな有理素数を生成する。等しくなければ、制御変
数iがmのオイラー関数値φ(m)に等しいか否かを判
定する(ステップS107)。等しければ、pが素イデ
アル(p)の生成元pとなる条件を満たしているので、
素イデアル(p)の探索を終了する。等しくなければ、
制御変数iを1だけ増加させて(ステップS109)、
ステップS105へ戻る。
【0089】[2次体における素イデアルの生成]次
に、2次体における素イデアルの生成について説明す
る。有理数体Qに、二乗の因子を持たない有理整数mの
平方根を添加して得られる代数体Q(√m)を2次体と
言う。2次体の整数環をOとするとき、Oの全ての元α
は、
【数18】 ω=(1+√m)/2 m≡1(mod 4) …(20) ω=√m m≡2,3(mod 4)…(21) とするとき、任意の整数a,bを用いて、
【数19】 α=a+bω …(22) と書ける。そこで、2次体の整数環の元と2次元平面Z
2 を同一視する。したがって、2次体の整数環OはZ上
2次元である。
【0090】また、2次体の判別式Dをmの4を法とす
る剰余の値に従って、
【数20】 D=m m≡1 (mod 4) …(23) D=4m m≡2,3 (mod 4) …(24) と定義する。このとき、偶数でなく判別式で割れない素
数pに対して、
【数21】 (D/p)2=−1 …(25) を満たす素数pは、平方非剰余であり、2次体の整数環
Oの上でも分解せず素イデアル(p)の生成元となる。
ここで、
【数22】(D/p)2 は、平方剰余記号(ルジャンドルの記号とも呼ばれる)
であり、例えばユークリッドの互除法を用いて計算でき
る。よって、上の性質を持つ素数を秘密鍵1として利用
する。この素数も惰性する素数と呼ぶ。2次体は、判別
式Dが与えられると決定することに注意する。
【0091】図4は、2次体における素イデアル生成装
置の機能図である。同図によれば、まず、2次体を生成
する判別式Dの値を入力し、次いで、有理素数pを任意
に生成する(ステップS201)。次いで、平方剰余記
号(D/p)2 を計算し、この値が−1であるか否かを
判定する(ステップS203)。
【0092】(D/p)2 =−1であれば、素数pは、
2次体の整数環Oの上でも分解せず素イデアル(p)の
生成元となるので、素イデアルpの探索を終了する。
(D/p)2 =−1でなければ、ステップS201へ戻
り、異なる有理素数pを任意に生成する。
【0093】円分体・2次体ともに、以上の方法で生成
された素イデアル(p)は以下生成元と同一視し、場合
によりpと記述する。
【0094】[秘密鍵1および公開鍵1の生成]素イデ
アル(p)が探索された方法と同様の方法により、素イ
デアル(q)も探索されるが、素イデアル(p)と異な
る素イデアル(q)を探索する必要がある。秘密鍵1
は、これら2個の惰性する素数p,qとする。公開鍵1
は、それらの積n=pqとする。
【0095】[秘密鍵2および公開鍵2の生成]秘密鍵
1p,qに対して、LCMを最小公倍数を求める関数と
するとき、m次円分体の場合は、
【数23】 L=LCM(pφ(m)−1,qφ(m)−1) …(26) を計算し、2次体の場合は
【数24】 L=LCM(p2 −1,q2 −1) …(27) を求める。次に、円分体2次体ともに、
【数25】 ed≡1 (mod L) …(28) を満たす、e,dを求める。秘密鍵2はdとし、公開鍵
2はeとする。円分体における、これらの鍵を生成する
装置の機能図を図5に示す。
【0096】[平文分割処理部]次に、図6を参照し
て、暗号化装置31における平文分割処理部35の分割
機能の詳細を説明する。本発明に係る公開鍵暗号方式に
よれば、一回の暗号化処理の対象となる分割平文のブロ
ック数rは、m次円分体の場合φ(m)個であり、2次
体の場合は2個である。このため、平文分割処理部35
により、平文Mをそれぞれr個のブロックからなる平文
ブロックに分割し、分割平文(M0,M1,…,Mr-1 )と
して、暗号化処理部37に供給する必要がある。
【0097】図6によれば、平文分割処理部35の入力
として、平文入力部33より平文Mのビット列が与えら
れる。また、鍵生成装置21より、ブロック数r、及び
1ブロックの長さ(ビット数)である分割平文長[lo
2 n]が与えられる。分割平文長[log2 n]は、
log2 nを超えない最大の整数とする(ここで、前記
2個の惰性する素数の積n=pq)。以上が平文分割処
理部35の初期状態であり、例えばメモり上に各数値お
よびデータを記憶して引き渡される。
【0098】次いで、制御変数iを0に設定し(ステッ
プS401)、Mの先頭より[log2 n]ビットの長
さのブロックを切り出し、この切り出されたブロックを
Miとし、残りのビット列を新たなMとする(ステップ
S403)。ブロックMiは、例えばメモり上に確保さ
れたrの配列記憶位置のi番目に格納してもよい。
【0099】次いで、制御変数iがr−1に等しいか否
かを判定し(ステップS405)、この判定でi≠r−
1であれば、iを1だけ増加させて(ステップS40
7)、残りのブロックの切り出しのために、ステップS
403へ戻る。
【0100】ステップS405の判定において、i=r
−1であれば、暗号化単位のrブロックの切り出しが終
わったので、M0,M1,…,Mr-1 を暗号化処理部37へ
出力する(ステップS409)。次いで、Mが空かどう
かを判定し(ステップS411)、Mが空であれば、平
文分割処理を終了し、Mが空でなければ、再度r個のブ
ロックを切り出す為に、ステップS401へ戻る。以上
のようにして、平文Mがブロック分割される。
【0101】[暗号化処理部]次に、暗号化処理部37
の詳細を説明する。平文分割処理部35から入力された
分割平文(M0,M1,…,Mr-1 )に対して、イデアルN
を法とする以下のべき乗演算を行なう。
【0102】
【数26】 (C0,C1,…,Cr-1 )≡(M0,M1,…,Mr-1 )e mod N …(29) 次に、(C0,C1,…,Cr-1 )を分割暗号文とし、受け
手に送信する。ただし、rは整数環OのZ上の次元とす
る。以下で、剰余類の決定とイデアルを法とするべき乗
演算処理について詳述する。
【0103】[イデアルを法とする剰余類の決定]本発
明では、暗号化・復号化を一意的に行なうため、イデア
ルを法とする剰余類の取り方を以下のように定める。
【0104】[円分体における剰余類]まず、円分体に
おけるイデアルを法とする剰余類の取り方を説明する。
ユークリッド的なm次円分体において0でないイデアル
Nによる剰余類の完全代表系として、Zφ(m) に於いて
原点からベクトル
【数27】N,ζN,ζ2 N,…,ζφ(m)-1N で張られる超平行四辺体の内部と境界上の格子点が取れ
る。ただし、境界上の格子点は原点に面さない超平面上
の点は除く。
【0105】また、任意の円分体において、惰性する素
数の積で生成されるイデアル(n)による剰余類の完全
代表系としてZφ(m) に於いて、原点と
【数28】n,ζn,ζ2 n,…,ζφ(m)-1n を頂点とする超立方体の内部と境界上の格子点が取れ
る。ただし、各軸を一辺としない超平面上の点は除く。
【0106】ここで、注意として惰性する素数の積で生
成されるイデアル(n)による剰余類の計算方法は、各
成分で有理整数の意味で(mod n)を計算することであ
る。
【0107】[2次体における剰余類]次に、2次体に
おけるイデアルを法とする剰余類の取り方を説明する。
ユークリッド的な2次体において0でないイデアルNに
よる剰余類の完全代表系として、Z2 に於いて、原点か
らベクトル
【数29】N,ωN で張られる平行四辺形の内部と境界上の格子点が取れ
る。ただし、境界上の格子点は原点に面する超平面上の
点のみ含める。
【0108】また、任意の2次体において、惰性する素
数の積で生成されるイデアル(n)による剰余類の完全
代表系として、2次元平面Z2 に於いて、原点と、
【数30】n,ωn を頂点とする正方形の内部と、境界上の格子点(各座標
が整数値となる点)が取れる。ただし、各軸を一辺とし
ない面上の点は除く。
【0109】ここで、注意として惰性する素数の積で生
成されるイデアル(n)による剰余類の計算方法は、各
成分毎に有理整数の意味で(mod n)を計算することで
ある。
【0110】また、任意の2次体において、惰性する素
数の積で生成されるイデアル(n)による剰余類の完全
代表系として、2次元平面Z2 (各軸を次元1・次元2
と呼ぶ)に於いて、原点(0,0)と、(n,0)、
(n,n)、(0,n)を頂点とする正方形の内部と、
境界上の格子点(各座標が整数値となる点)が取れる。
ただし、各軸を一辺としない面上の点は除く。この様子
を図32に示す。
【0111】[イデアル(n)を法とするべき乗演算]
次に、イデアル(n)を法とするべき乗演算について説
明する。本発明の公開鍵暗号方式では、式(16)、
(17)に示したようなべき乗演算が行われる。べき乗
演算では、指数部を2進表現して、この関数を指数部が
2のべきとなる因数の積に分解し、小さい因数から順
次、法による乗算を繰り返していく、反復平方積による
べき乗演算法、または2進計算法と呼ばれる既知の高速
べき乗演算方法を使用することができる。
【0112】このべき乗計算のための基本演算は、
【数31】 x2n=(xn 2、 x2n+1=(xn 2 ×x …(30) 式(30)に示すように、乗算と2乗演算であるので、
この乗算と2乗演算方法を以下に説明する。
【0113】[円分体における乗算および2乗演算方
法]まず、円分体における乗算および2乗演算方法につ
いて説明する。円分体に於ける2元x=(x0 ,x1 ,
…xφ(m)-1 )とy=(y0 ,y1 ,…,yφ(m)-1 )
の乗算x(×)y、およびx=(x0 ,x1 ,…,xφ
(m)-1)の2乗演算x(×)xは、それぞれ式(3
1)、式(32)に従って求めることができる。
【0114】
【数32】 x(×)y=(x(×)y0 ,x(×)y1 ,…,x(×)yφ(m)-1 ) …(31) x(×)x=(x(×)x0 ,x(×)x1 ,…,x(×)xφ(m)-1 ) …(32) ここで、イデアル(n)の剰余の取り方は、すべての成
分の式を(mod n)で計算する。これにより、イデアル
(n)を法とするべき乗演算装置が構成できる。
【0115】次に、円分体に於いて、拡大次数が低次で
かつ素数の場合のアルゴリズムを詳細に記述する。特
に、m=3の場合のべき乗演算を行なうための乗算と2
乗演算装置を図7と図8に示す。図7及び図8におい
て、符号301、303、313、315、325、3
31及び333は、通常の乗算回路であり、符号30
5、311、323は減算回路、符号317及び321
は加算回路、符号307、319、327、335は、
mod n演算回路である。
【0116】[m=3の場合の乗算と2乗演算]m=3
の場合、オイラー関数値φ(m)は、φ(3)=2とな
り、乗算および2乗演算は、
【数33】 x(×)y=(x(×)y0 ,x(×)y1 ) …(33) ここで、 x(×)y0 =x0 y0 −x1 y1 x(×)y1 =x1 y0 +(x0 −x1 )y1 x(×)x=(x(×)x0 ,x(×)x1 ) …(34) ここで、 x(×)x0 =(x0 +x1 )(x0 −x1 ) x(×)x1 =2x0 x1 それぞれ式(33)、(34)に示すとおりとなる。
【0117】[m=5の場合の乗算と2乗演算]m=5
の場合、オイラー関数値φ(m)は、φ(5)=4とな
り、乗算および2乗演算は、
【数34】 x(×)y=(x(×)y0 ,x(×)y1 ,…,x(×)y3 )…(35) ここで、 x(×)y0 =x3 (y2 −y1 )+x2 (y3 −y2 )+x0 y0 −x1 y3 x(×)y1 =x1 (y0 −y3 )+(x0 +x3 )y1 −x2 y2 −x3 y3 x(×)y2 =x2 (y0 −y2 )+x1 (y1 −y3 )+x0 y2 −x3 y1 x(×)y3 =x3 (y0 −y1 )+x2 (y1 −y2 )+x2 y1 −x1 y3 x(×)x=(x(×)x0 ,x(×)x1 ,…,x(×)x3 )…(36) ここで、 x(×)x0 =(x0 +x2 )(x0 −x2 )+2x3
(x2 −x1 ) x(×)x1 =2x1 (x0 −x3 )+(x3 +x2 )
(x3 −x2 ) x(×)x2 =x1 (x1 −2x3 )+x2 (2x0 −
x2 ) x(×)x3 =x2 (2x1 −x2 )+2x3 (x0 −
x1 ) それぞれ式(35)、(36)に示すとおりとなる。
【0118】[m=7の場合の乗算と2乗演算]m=7
の場合、オイラー関数値φ(m)は、φ(7)=6とな
り、乗算および2乗演算は、
【数35】 x(×)y=(x(×)y0 ,x(×)y1 ,…,x(×)y5 )…(37) ここで、 x(×)y0 =x0 y0 −x5 y1 +(−x4 +x5 )
y2+(−x3 +x4 )y3 +(−x2 +x3 )y4+
(−x1 +x2 )y5 x(×)y1 =x1 y0 −x4 y2 +(x0 −x5 )y
1+(−x3 +x5 )y3 +(−x2 +x4 )y4+(−
x1 +x3 )y5 x(×)y2 =x2 y0 −x3 y3 +(x1 −x5 )y
1+(x0 −x4 )y2 +(−x2 +x5 )y4+(−x
1 +2x4 )y5 x(×)y3 =x3 y0 −3x2 y4 +(x2 −x5 )
y1+(x1 −x4 )y2 +(x0 −x3 )y3+(−x
1 +x5 )y5 x(×)y4 =x4 y0 −4x1 y5 +(x3 −x5 )
y1+(x2 −x4 )y2 +(x1 −x3 )y3+(x0
−x2 )y4 x(×)y5 =x5 y0 +(x4 −x5 )y1 +(x3
−x4 )y2+(x2 −x3 )y3 +(5x1 −x2 )
y4+(x0 −x1 )y5
【数36】 x(×)x=(x(×)x0 ,x(×)x1 ,…,x(×)x5 )…(38) ここで、 x(×)x0 =(x0 +x3 )(x1 −x3 )+2x4
(x3 +x2 )+2x5 (x2 −x1 ) x(×)x1 =2x1 (x0 −x5 )+x3 (2x5 −
x3 )+x4 (x4 −2x2 ) x(×)x2 =(x1 +x3 )(x1 −x3 )+2x5
(x4 −x1 )+x2 (x0 −x4 ) x(×)x3 =x5 (x5 −2x1 )+x3 (2x0 −
x3 )+2x2 (x1 −x4 ) x(×)x4 =x2 (x2 −2x4 )+x3 (2x1 −
x3 )+2x1 (x0 −x5 ) x(×)x5 =x3 (2x2 −x3 )+2x0 (x1 −
x2 )+2x5 (x0 −x1 ) それぞれ式(37)、(38)に示すとおりとなる。
【0119】[m=11の場合の乗算と2乗演算]m=
11の場合、オイラー関数値φ(m)は、φ(11)=
10となり、乗算および2乗演算は、
【数37】 x(×)y=(x(×)y0 ,x(×)y1 ,…,x(×)y9 )…(39) ここで、 x(×)y0 =x0 y0 −x9 y1 +(−x8 +y9 )
y2+(−x7 +x8 )y3 +(−x6 +x7 )y4+
(−x5 +x6 )y5 +(−x4 +x5 )y6+(−x3
+x4 )y7 +(−x2 +x3 )y8+(−x1 +x2
)y9 x(×)y1 =x1 y0 −x8 y2 +(x0 −x9 )y
1+(−x7 +x9 )y3 +(−x6 +x8 )y4+(−
x5 +x7 )y5 +(−x4 +x6 )y6+(−x3 +
x5 )y7 +(−x2 +x4 )y8+(−x1 +x3 )
y9 x(×)y2 =x2 y0 −x7 y3 +(x1 −x9 )y
1+(x0 −x8 )y2 +(−x6 +x9 )y4+(−x
5 +x8 )y5 +(−x4 +x7 )y6+(−x3 +x6
)y7 +(−x2 +x5 )y8+(−x1 +x4 )y9 x(×)y3 =x3 y0 −x6 y4 +(x2 −x9 )y
1+(x1 −x8 )y2 +(x0 −x7 )y3+(−x5
+x9 )y5 +(−x4 +x8 )y6+(−x3 +x7
)y7 +(−x2 +x6 )y8+(−x1 +x5 )y9 x(×)y4 =x4 y0 −x5 y5 +(x3 −x9 )y
1+(x2 −x8 )y2 +(x1 −x7 )y3+(x0 −
x6 )y4 +(−x4 +x9 )y6+(−x3 +x8 )
y7 +(−x2 +x7 )y8+(−x1 +x6 )y9 x(×)y5 =x5 y0 −x4 y6 +(x4 −x9 )y
1+(x3 −x8 )y2 +(x2 −x7 )y3+(x1 −
x6 )y4 +(x0 −x5 )y5+(−x3 +x9 )y7
+(−x2 +x8 )y8+(−x1 +x7 )y9 x(×)y6 =x6 y0 −x3 y7 +(x5 −x9 )y
1+(x4 −x8 )y2 +(x3 −x7 )y3+(x2 −
x6 )y4 +(x1 −x5 )y5+(x0 −x4 )y6
+(−x2 +x9 )y8+(−x1 +x8 )y9 x(×)y7 =x7 y0 −x2 y8 +(x6 −x9 )y
1+(x5 −x8 )y2 +(x4 −x7 )y3+(x3 −
x6 )y4 +(x2 −x5 )y5+(x1 −x4 )y6
+(x0 −x3 )y7+(−x1 +x9 )y9 x(×)y8 =x8 y0 −x1 y9 +(x7 −x9 )y
1+(x6 −x8 )y2 +(x5 −x7 )y3+(x4 −
x6 )y4 +(x3 −x5 )y5+(x2 −x4 )y6
+(x1 −8x3 )y7+(x0 −x2 )y8 x(×)y9 =x9 y0 +(x8 −x9 )y1 +(x7
−x8 )y2+(x6 −x7 )y3 +(x5 −x6 )y4
+(x4 −x5 )y5 +(x3 −x4 )y6+(x2 −
x3 )y7 +(x1 −x2 )y8+(x0 −x1 )y9
【数38】 x(×)x=(x(×)x0 ,x(×)x1 ,…,x(×)x9 )…(40) ここで、 x(×)x0 =(x0 +x5 )(x0 −x5 )+2x9
(x2 −x1 )+2x8 (x3 −x2 )+2x7 (x4
−x3 )+2x7 (x5 −x4 ) x(×)x1 =2x1 (x0 −x9 )+2x3 (x9 −
x7 )+2x8 (x4 −x2 )+x6 (x6 −2x4 )
+x5 (2x7 −x5 ) x(×)x2 =2x2 (x0 −x8 )+2x4 (x9 −
x6 )+x1 (x1 −2x8 )+x5 (2x8 −x5 )
+2x7 (x6 −x3 ) x(×)x3 =2x3 (x0 −x7 )+2x2 (x1 −
x8 )+2x9 (x5 −x1 )+2x6 (x8 −x4 )
+(x9 +x5 )(x9 −x5 ) x(×)x4 =2x4 (x0 −x6 )+2x3 (x1 −
x7 )+2x9 (x6 −x1 )+2x8 (x7 −x2 )
+(x2 +x5 )(x2 −x5 ) x(×)x5 =2x5 (x0 −x5 )+2x1 (x4 −
x6 )+2x2 (x3 −x8 )+2x9 (x7 −x1 )
+2x8 (x5 −x2 ) x(×)x6 =2x6 (x0 −x4 )+2x1 (x5 −
x4 )+2x2 (x4 −x8 )+x3 (x3 −2x7 )
+x5 (2x1 −x5 ) x(×)x7 =2x7 (x0 −x3 )+2x1 (x6 −
x8 )+x5 (2x2 −x5 )+2x3 (x3 −x7 )
+2x9 (x6 −x1 ) x(×)x8 =2x8 (x0 −x3 )+2x1 (x7 −
x9 )+2x2 (x6 −x8 )+2x3 (x5 −x3 )
+2x4 (x4 −x6 ) x(×)x9 =2x9 (x0 −x1 )+2x8 (x1 −
x2 )+2x7 (x2 −x3 )+2x6 (x3 −x4 )
+2x5 (x4 −x5 ) それぞれ式(39)、(40)に示すとおりとなる。
【0120】[m=13の場合の乗算と2乗演算]m=
13の場合、オイラー関数値φ(m)は、φ(13)=
12となり、乗算および2乗演算は、
【数39】 x(×)y=(x(×)y0 ,x(×)y1 ,…,x(×)y11)…(41) ここで、 x(×)y0 =x0 y0 −x11y1 +(−x2 +x3 )
y10+(−x1 +x2 )y11+(−x10+x11)y2+
(x10−x9 )y3 +(−x8 +x9 )y4+(−x7
+x8 )y5 +(−x6 +x7 )y6+(−x5 +x6
)y7 +(−x4 +x5 )y8+(−x3 +x4 )y9 x(×)y1 =x1 y0 −x10y2 +(x0 −x11)y
1+(−x2 +x4 )y10+(−x1 +x3 )y11+
(x11−y9 )y3 +(x10−x8 )y4+(−x7 +
x9 )y5 +(−x6 +x8 )y6+(−x5 +x7 )
y7 +(−x4 +x6 )y8+(−x3 +x5 )y9 x(×)y2 =x2 y0 −x9 y3 +(x1 −x11)y
1+(−x2 +x5 )y10+(−x1 +x4 )y11+
(x0 −x10)y2 +(x11−x8 )y4+(x10−x7
)y5 +(−x6 +x9 )y6+(−x5 +x8 )y7
+(−x4 +x7 )y8+(−x3 +x6 )y9 x(×)y3 =x3 y0 −x8 y4 +(−x11+x2 )
y1+(−x2 +x6 )y10+(−x1 +x5 )y11+
(x1 −x10)y2 +(x0 −x9 )y3+(x11−x7
)y5 +(x10−x6 )y6+(−x5 +x9 )y7 +
(−x4 +x8 )y8+(−x3 +x7 )y9 x(×)y4 =x4 y0 −x7 y5 +(−x11+x3 )
y1+(−x2 +x7 )y10+(−x1 +x6 )y11+
(−x10+x2 )y2 +(x1 −x9 )y3+(x0 −
x8 )y4 +(x11−x6 )y6+(x10−x5 )y7
+(−x4 +x9 )y8+(−x3 +x8 )y9 x(×)y5 =x5 y0 −x6 y6 +(−x11+x4 )
y1+(−x2 +x8 )y10+(−x1 +x7 )y11+
(−x10+x3 )y2 +(x2 −x9 )y3+(x1 −
x8 )y4 +(x0 −x7 )y5+(x11−x5 )y7
+(x10−x4 )y8+(−x3 +x9 )y9 x(×)y6 =x6 y0 −x5 y7 +(−x11+x5 )
y1+(−x2 +x9 )y10+(−x1 +x8 )y11+
(−x10+x4 )y2 +(x3 −x9 )y3+(x2 −
x8 )y4 +(x1 −x7 )y5+(x0 −x6 )y6
+(x11−x4 )y8+(x11−x4 )y8 +(x10−
x3 )y9 x(×)y7 =x7 y0 −x4 y8 +(−x11+x6 )
y1+(x10−x2 )y10+(−x1 +x9 )y11+
(−x10+x5 )y2 +(x4 −x9 )y3+(x3 −
x8 )y4 +(x2 −x7 )y5+(x1 −x6 )y6
+(x0 −x5 )y7+(x11−x3 )y9 x(×)y8 =x8 y0 −x3 y9 +(−x11+x7 )
y1+(x11−x2 )y10+(−x1 +x10)y11+
(−x10+x6 )y2 +(x5 −x9 )y3+(x4 −
x8 )y4 +(x3 −x7 )y5+(x2 −x6 )y6
+(x1 −x5 )y7+(x0 −x4 )y8 x(×)y9 =x9 y0 −x2 y10+(−x11+x8 )
y1+(−x1 +x11)y11+(−x10+x7 )y2+
(x6 −x9 )y3 +(x5 −x8 )y4+(x4 −x7
)y5 +(x3 −x6 )y6+(x2 −x5 )y7 +
(x1 −x4 )y8+(x0 −x3 )y9 x(×)y10=x10y0 −x1 y11+(−x11+x9 )
y1+(x0 −x2 )y10+(−x10+x8 )y2+(x
7 −x9 )y3 +(x6 −x8 )y4+(x5 −x7 )
y5 +(x4 −x6 )y6+(x3 −x5 )y7 +(x2
−x4 )y8+(x1 −x3 )y9 x(×)y11=x11y0 +(x10−x11)y1 +(x1
−x2 )y10+(x0 −x1 )y11+(−x10+x9 )
y2+(x8 −x9 )y3 +(x7 −x8 )y4+(x6
−x7 )y5 +(x5 −x6 )y6+(x4 −x5 )y7
+(x3 −x4 )y8+(x2 −x3 )y9
【数40】 x(×)x=(x(×)x0 ,x(×)x1 ,…,x(×)x11)…(42) ここで、 x(×)x0 =(x0 +x6 )(x0 −x6 )+2x11
(x2 −x1 )+2x10(x3 −x2 )+2x9 (x4
−x3 )+2x5 (x8 −x7 )+2x7 (x6 −x5
) x(×)x1 =2x1 (x0 −x11)+2x3 (x11−
x9 )+2x4 (x10−x8 )+2x5 (x9 −x3 )
+x6 (2x8 −x6 )+x7 (x7 −2x5 ) x(×)x2 =2x2 (x0 −x10)+x1 (x1 −2
x11)+2x4 (x11−x8 )+2x5 (x10−x7 )
+2x6 (x9 −x6 )+2x7 (x8 −x5 ) x(×)x3 =2x3 (x0 −x9 )+2x11(x5 −
x1 )+2x2 (x1 −x10)+x6 (2x10−x6 )
+2x7 (x9 −x5 )+x8 (x8 −2x4 ) x(×)x4 =(x2 +x6 )(x2 −x6 )+2x7
(x10−x5 )+2x11(x6 −x1 )+x2 (x2 −
2x10)+2x3 (x1 −x9 )+2x4 (x0 −x8
) x(×)x5 =2x5 (x0 −x7 )+2x1 (x4 −
x11)+2x2 (x3 −x4 )+2x7 (x11−x5 )
+2x10(x8 −x2 )+x9 (x9 −2x3 ) x(×)x6 =x6 (2x0 −x6 )+2x1 (x5 −
x11)+2x2 (x4 −x10)+x3 (x3 −2x9 )
+2x8 (x11−x4 )+2x9 (x10−x3 ) x(×)x7 =2x7 (x0 −x5 )+2x1 (x6 −
x11)+2x2 (x5 −x10)+2x3 (x4 −x9 )
+2x9 (x11−x3 )+x10(x10−2x2 ) x(×)x8 =2x8 (x0 −x4 )+2x3 (x7 −
x11)+2x2 (x6 −x10)+2x3 (x5 −x9 )
+x4 (x4 −2x8 )+2x10(x11−x2 ) x(×)x9 =2x9 (x0 −x3 )+2x1 (x8 −
x11)+2x2 (x7 −x10)+2x3 (x6 −x9 )
+2x4 (x5 −x8 )+x11(x11−2x1 ) x(×)x10=2x10(x0 −x2 )+2x1 (x9 −
x11)+2x2 (x8 −x10)+2x3 (x7 −x9 )
+2x4 (x6 −x8 )+x5 (x5 −2x7 ) x(×)x11=2x11(x0 −x1 )+2x10(x1 −
x2 )+2x9 (x2 −x3 )+2x3 (x8 −x9 )
+2x7 (x4 −x5 )+x6 (2x5 −x6 ) それぞれ式(41)、(42)に示すとおりとなる。
【0121】[2次体における乗算および2乗演算方
法]次に、2次体におけるイデアル(n)の剰余の取り
方を説明する。判別式がDである、2次体の任意の2元
x=(x0 ,x1 ),y=(y0 ,y1 )に対する乗算
x(×)y=(x(×)y0 ,x(×)y1 )と、任意
の元のx=(x0 ,x1 )の2乗演算x(×)x=(x
(×)x0 ,x(×)x1 )を行なう方法を記述する。
ここで、イデアル(n)の剰余の取り方は、すべての成
分の式を(mod n)で計算する。これにより、イデアル
(n)を法とするべき乗演算装置が構成できる。
【0122】まず、m≡1 (mod 4)の場合
【数41】 x(×)y0 =x0 y0 +(m−1)(1/4)x1 y1 x(×)y1 =x1 (y0 +(m−1)(1/4)y1 )+x0 y1 x(×)x0 =(x0 )2+(m−1)(1/4)(x1 )2 x(×)x1 =x1 (x0 +(m−1)(1/4)x1 ) …(43) 式(43)となる。
【0123】次いで、m≡2,3 (mod 4)の場合
【数42】 x(×)y0 =x0 y0 +mx1 y1 x(×)y1 =x1 (y0 +mx1 )+x0 y1 x(×)x0 =(x0 )2+m(x1 )2 x(×)x1 =x1 (x0 +mx1 ) …(44) 式(44)となる。
【0124】[復号化処理部]次に、復号化装置41の
復号化処理部43の動作を説明する。復号化処理部43
は、通信路51を介して暗号化装置31より送られてき
た分割暗号文(C0 ,C1 ,…,Cr-1 )に対して、
【数43】 (C0,C1,…, Cr-1 )d ≡(M0,M1,…, Mr-1 ) mod (n)…(45) 式(45)を計算することによって、分割平文(M0 ,
M1 ,…,Mr-1 )を復元する。
【0125】復号化処理部43のイデアル(n)を法と
するべき乗演算部45は、秘密鍵2eによりべき乗演算
を行うこと以外は、暗号化装置31のイデアル(n)を
法とするべき乗演算部37と同じであり、暗号化装置3
1と復号化装置41の大部分は共通であり、暗号化・復
号化装置として構成することにより、双方向の暗号化通
信を行うことができる。
【0126】[平文統合処理部]平文統合処理部47
は、復号処理部によって得られる分割平文(M0 ,M1
,…,Mr-1 )を順番に連結し原平文Mを得る。
【0127】次に、フローチャート図およびメモリ上の
データ配置を示す表を参照しながら、本発明の実施形態
を詳細に説明する。図9ないし図12は、円分体暗号に
おける鍵生成の詳細手順を示すフローチャート図であ
る。
【0128】円分体暗号における鍵生成では、表1に示
すようなメモリ上のデータ配置を行う。
【0129】
【表1】 そして、図9に示すように、まず、円分体を生成する原
始根の位数mをデータ番号1に入力する(ステップS5
01)。次いで、オイラー関数値φ(m)を計算し(ス
テップS510)、オイラー関数値φ(m)をデータ番
号2に格納する(ステップS531)。次いで、素イデ
アル1(秘密鍵1)pを生成し(ステップS540)、
素イデアル2(秘密鍵1)qを生成し(ステップS56
0)、素イデアルp,qからその積である公開鍵1,n
=pqを求めて、データ番号6に格納する(ステップS
581)。
【0130】次いで、pφ(m)−1とqφ(m)−1との最
小公倍数であるLを計算し、これをデータ番号7に格納
する(ステップS583)。次いで、ed≡1(mod
L)となる2数,eおよびdを求め、秘密鍵2dをデー
タ番号8に、公開鍵2eをデータ番号9に、それぞれ格
納して(ステップS585)鍵生成を終了する。
【0131】図10は、オイラー関数値φ(m)の計算
ルーチンを示すフローチャートであり、ステップS51
0以下の処理の詳細を示す。まず、mを入力し(ステッ
プS512)、次いで制御変数i,jをそれぞれ、1,
0に初期設定する(ステップS514)。次いで、iと
mとの公約数が存在するか否かを判定する(ステップS
516)。ステップS516の判定において、yesで
あれば(公約数が存在すれば)なにもせず、noであれ
ば(公約数が存在しなければ)jを1だけ増加させて
(ステップS518)、ステップS520へ移る。
【0132】次いで、iを1だけ増加させて(ステップ
S520)、iとmとが等しいか否かを判定する(ステ
ップS522)。ステップS522の判定において、i
とmとが等しくなければ、ステップS516へ戻り、i
とmとが等しければ、φ(m)=jとして計算を終了し
(ステップS524)、次の処理へ移る。
【0133】図11は、素イデアル1,pの生成処理を
示すフローチャートであり、ステップS540以下の処
理の詳細を示す。まず、所定の範囲の有理整数pを任意
に(ランダムに)生成し、データ番号3に格納する(ス
テップS542)。次いで、制御変数iを1に初期設定
する(ステップS544)。次いで、pi (modm)
を計算し、この値が1であるか否かを判定する(ステッ
プS546)。
【0134】ステップS546の判定で、pi =1(m
od m)であれば、ステップS542に戻り、再度有
理素数pを生成する。pi =1(mod m)でなけれ
ば、i=φ(m)か否かを判定する(ステップS54
8)。ステップS548の判定において、i=φ(m)
でなければ、iに1を加えて(ステップS550)、ス
テップS546へ戻る。i=φ(m)であれば、pは素
イデアルであると判定できるので、素イデアル1(秘密
鍵1)pをデータ番号4に格納して(ステップS55
2)、次の処理へ移る。
【0135】図12は、素イデアル2,qの生成処理を
示すフローチャートであり、ステップS560以下の処
理の詳細を示す。まず、所定の範囲の有理整数qを任意
に(ランダムに)生成する(ステップS562)。次い
で、qがpに等しいか否かを判定する(ステップS56
4)。qとpとが等しければ、pと異なる有理整数qを
発生させるために、ステップS562へ戻る。qがpと
異なれば、次いで、制御変数iを1に初期設定する(ス
テップS566)。次いで、qi (mod m)を計算
し、この値が1であるか否かを判定する(ステップS5
68)。
【0136】ステップS568の判定で、qi =1(m
od m)であれば、ステップS562に戻り、再度有
理素数qを生成する。qi =1(mod m)でなけれ
ば、i=φ(m)か否かを判定する(ステップS57
0)。ステップS570の判定において、i=φ(m)
でなければ、iに1を加えて(ステップS572)、ス
テップS568へ戻る。i=φ(m)であれば、qは素
イデアルであると判定できるので、素イデアル2(秘密
鍵1)qをデータ番号5に格納して(ステップS57
4)、次の処理へ移る。
【0137】図13ないし図16は、2次体暗号におけ
る鍵生成の詳細手順を示すフローチャートである。
【0138】2次体暗号における鍵生成では、表2に示
すようなメモリ上のデータ配置を行う。
【0139】
【表2】 そして、図13に示すように、まず2乗因子を持たない
有理整数mをデータ番号1に入力する(ステップS60
1)。次いで、判別式Dの値をデータ番号2に格納する
(ステップS610)。次いで、素イデアル1(秘密鍵
1)pを生成して、データ番号4に格納し(ステップS
620)、次いで、素イデアル2(秘密鍵1)qを生成
して、データ番号5に格納する(ステップS640)。
次いで、素イデアルp,qからその積である公開鍵1,
n=pqを求めて、データ番号6に格納する(ステップ
S661)。
【0140】次いで、p2 −1とq2 −1との最小公倍
数であるLを計算し、これをデータ番号7に格納する
(ステップS663)。次いで、ed≡1(modL)
となる2数,eおよびdを求め、秘密鍵2dをデータ番
号8に、公開鍵2eをデータ番号9に、それぞれ格納し
て(ステップS665)鍵生成を終了する。
【0141】図14は、判別式Dの値を格納するルーチ
ンの詳細を示すフローチャートであり、ステップS61
0以下の詳細を示す。まず、データ番号1から有理整数
mを読み出し、m≡1(mod4)か否かを判定する
(ステップS612)。m≡1(mod4)であれば、
判別式D=mとし(ステップS6142)、m≡1(m
od4)でなければ(m≡2,3(mod4))、判別
式D=4mとして(ステップS616)、判別式Dの値
をデータ番号2に格納し(ステップS618)、次の処
理へ移る。
【0142】図15は、2次体における素イデアル1,
pの生成処理の詳細を示すフローチャートであり、ステ
ップS620以下の詳細を示す。まず、所定の範囲の有
理整数pを任意に(ランダムに)生成し、データ番号3
に格納する(ステップS622)。次いで、ルジャンド
ルの記号(D/p)2 を計算する(ステップS62
4)。(D/p)2 の値は、例えばユークリッドの互除
法を用いて計算することができる。
【0143】次いで、この値が−1であるか否かを判定
する(ステップS626)。この判定で、(D/p)2
=−1でなければ、ステップS622に戻り、再度有理
素数pを生成する。ステップS626の判定で、(D/
p)2 =−1であれば、pは素イデアルであると判定で
きるので、素イデアル1(秘密鍵1)pをデータ番号4
に格納して(ステップS628)、次の処理へ移る。
【0144】図16は、2次体における素イデアル2,
qの生成処理の詳細を示すフローチャートであり、ステ
ップS640以下の詳細を示す。まず、所定の範囲の有
理整数qを任意に(ランダムに)生成する(ステップS
642)。次いで、qがpに等しいか否かを判定し(ス
テップS644)、等しければpと異なるqを生成する
ために、ステップS642に戻る。等しくなければ、次
いで、ルジャンドルの記号(D/p)2 を計算し(ステ
ップS646)、この値が−1であるか否かを判定する
(ステップS648)。
【0145】ステップS648の判定で、(D/p)2
=−1でなければ、ステップS642に戻り、再度有理
素数qを生成する。ステップS648の判定で、(D/
p)2 =−1であれば、qは素イデアルであると判定で
きるので、素イデアル2(秘密鍵1)qをデータ番号5
に格納して(ステップS650)、次の処理へ移る。
【0146】図17ないし図20は、暗号化送信処理の
詳細手順を示すフローチャートである。暗号化送信処理
では、表3に示すようなメモリ上のデータ配置を行う。
【0147】
【表3】 そして、図17に示すように、まずステップS701
で、暗号化の為の初期設定が行われる。すなわちステッ
プS701では、公開鍵1(n)、公開鍵1e、ブロッ
ク数r、分割平文長(log2nを超えない最大整数)
をそれぞれデータ番号1〜4に設定する。
【0148】次いで、平文Mをデータ番号5に読み込む
(ステップS703)。次いで、平文Mの先頭からそれ
ぞれ分割平文長のビット数の長さのブロックをr個切り
出す平文分割処理を行い(ステップS710)、このr
個のブロック毎に暗号化を行う(ステップS730)。
暗号化されたブロックは、暗号送信処理され(ステップ
S750)、まだ平文が残っていれば、平文分割処理
(ステップS710)に戻り、平文が残っていなければ
終了する。
【0149】図18は、平文分割処理の詳細を示すフロ
ーチャートであり、ステップS710以下の詳細を示
す。まず、平文分割処理の制御変数i,j,kの初期設
定を行う(ステップS712)。制御変数iは、分割さ
れた平文ブロックの番号を示すものである。制御変数j
は、元の平文データMを構成する各ビットのビット番号
である。kは、ビット数で表した分割平文長である。ス
テップS712では、それぞれ、i=0,j=0,k=
(log2nを超えない最大整数)と設定する。
【0150】次いで、データ番号5からMを読み出し、
Mのjビット目から(j+k−1)ビット目までを切り
出し、これをMiとしてデータ番号(6+i)に格納す
る(ステップS714)。次いで、制御変数更新のため
に、i=i+1,j=j+kとする(ステップS71
6)。次いで、所定のブロック数rまで分割されたか否
かを判定するため、iとrとを比較する(ステップS7
18)。ステップS718の判定において、i≠rであ
れば、まだ分割すべきブロックが残っているので、ステ
ップS714へ戻る。
【0151】ステップS718の判定において、i=r
であれば、分割すべきブロックが残っていないので、j
がMの最終ビット番号未満か否かを判定する(ステップ
S720)。jがMの最終ビット番号未満であれば、M
のjビット目から最後までをM′として、データ番号5
に格納して(ステップS722)次の処理へ移る。jが
Mの最終ビット番号以上であれば、All‘0’をデー
タ番号5に格納して(ステップS724)次の処理へ移
る。
【0152】図19は、暗号化処理の詳細を示すフロー
チャートであり、ステップS730以下の詳細を示す。
まず、暗号化処理の制御変数iの初期設定、i=0を行
う(ステップS732)。制御変数iは、分割された平
文ブロックの番号を示すものである。次いで、データ番
号(6+i)から平文ブロックMiを読み出し、これに
イデアル(n)を法とするe乗演算を行い、その結果を
暗号化ブロックCiとして、データ番号(6+r+i)
に格納する(ステップS734)。次いで、制御変数i
を1だけ増加させる(ステップS736)。
【0153】次いで、所定のブロック数rまで暗号化さ
れたか否かを判定するため、iとrとを比較する(ステ
ップS738)。ステップS738の判定において、i
≠rであれば、まだ暗号化すべきメッセージブロックが
残っているので、ステップS734へ戻る。ステップS
738の判定において、i=rであれば、暗号化が終了
したので、次の処理へ移る。
【0154】図20は、暗号文送信処理の詳細を示すフ
ローチャートであり、ステップS750以下の詳細を示
す。まず、暗号文送信処理の制御変数iの初期設定、i
=0を行う(ステップS752)。制御変数iは、暗号
化ブロックの番号を示すものである。次いで、データ番
号(6+r+i)から暗号化ブロックCiを読み出し、
送信する(ステップS754)。次いで、制御変数iを
1だけ増加させる(ステップS756)。
【0155】次いで、所定のブロック数rまで送信され
たか否かを判定するため、iとrとを比較する(ステッ
プS758)。ステップS758の判定において、i≠
rであれば、まだ送信すべき暗号化ブロックが残ってい
るので、ステップS754へ戻る。ステップS758の
判定において、i=rであれば、送信が終了したので、
データ番号5のM′を読み出し、M′=All‘0’か
否かを判定する(ステップS760)。
【0156】ステップS760の判定において、All
‘0’でなければ、まだ分割以下の処理を行うべき平文
が残っているので、平文分割処理(ステップS710)
へ戻る。ステップS760の判定において、All
‘0’であれば、暗号化送信処理が終了する。
【0157】図21ないし図23は、受信復号化処理の
詳細手順を示すフローチャートである。
【0158】受信復号化処理では、表4に示すようなメ
モリ上のデータ配置を行う。
【0159】
【表4】 そして、図21に示すように、まずステップS801
で、復号化の為の初期設定が行われる。すなわちステッ
プS801では、公開鍵1(n)、秘密鍵2d、ブロッ
ク数r、分割平文長(log2nを超えない最大整数)
をそれぞれデータ番号1〜4に設定する。次いで、暗号
文ブロックC0 〜Cr-1 をブロック毎にデータ番号5〜
(5+r−1)へブロック毎に読み込む(ステップS8
03)。次いで、暗号文ブロック毎の復号化処理(ステ
ップS810)、続いて平文統合処理(ステップS82
0)を行う。
【0160】図22は、復号化処理の詳細を示すフロー
チャートであり、ステップS810以下の詳細を示す。
まず、復号化処理の制御変数iの初期設定、i=0を行
う(ステップS812)。制御変数iは、暗号化ブロッ
クの番号を示すものである。次いで、データ番号(5+
i)から暗号化ブロックCiを読み出し、これにイデア
ル(n)を法とするd乗演算を行い、その結果を復号化
された平文ブロックMiとして、データ番号(5+r+
i)に格納する(ステップS814)。次いで、制御変
数iを1だけ増加させる(ステップS816)。
【0161】次いで、所定のブロック数rまで復号化さ
れたか否かを判定するため、iとrとを比較する(ステ
ップS818)。ステップS818の判定において、i
≠rであれば、まだ復号化すべきブロックが残っている
ので、ステップS814へ戻る。ステップS818の判
定において、i=rであれば、復号化が終了したので、
次の平文統合処理へ移る。
【0162】図23は、平文統合処理の詳細を示すフロ
ーチャートであり、ステップS820以下の詳細を示
す。まず、平文統合処理の制御変数i,j,kの初期設
定を行う(ステップS822)。制御変数iは、統合す
べき平文ブロックの番号を示すものである。制御変数j
は、統合後の平文データMを構成する各ビットのビット
番号である。kは、ビット数で表した分割平文長であ
る。ステップS822では、それぞれ、i=0,j=
0,k=(log2nを超えない最大整数)と設定す
る。
【0163】次いで、データ番号(5+r+i)からM
iを読み出し、作業領域のjビット目から(j+k−
1)ビット目までに格納する(ステップS824)。次
いで、制御変数更新のために、i=i+1,j=j+k
とする(ステップS826)。次いで、所定のブロック
数rまで統合されたか否かを判定するため、iとrとを
比較する(ステップS828)。ステップS828の判
定において、i≠rであれば、まだ統合すべきブロック
が残っているので、ステップS824へ戻る。
【0164】ステップS828の判定において、i=r
であれば、統合すべきブロックが残っていないので、作
業領域内に連接されたr個のブロックをデータ番号(5
+2r)の末尾に連接して格納して(ステップS83
0)、受信復号化処理を終了する。
【0165】[3次円分体(アイゼンシュタイン体)を
使用した公開鍵暗号方式の数値例]次に、3次円分体
(アイゼンシュタイン体)を使用した本発明に係る公開
鍵暗号方式の実施の形態を具体的な数値例を用いて説明
する。
【0166】[鍵生成処理]2個の素イデアルP=(2
9),Q=(41)(秘密鍵1)を生成し、その積N=
(1189)の剰余類(公開鍵1)を決定する。次に秘
密鍵1からL=1680を計算し、e=127(公開鍵
2)と、d=463(秘密鍵2)を生成する。
【0167】[平文分割処理]平文M=123456に
対して、剰余類の範囲内の分割平文(M0 ,M1 )=
(123,456)を生成する。
【0168】[暗号化処理]受け手の公開鍵e=127
を用い、
【数44】 (C0 ,C1 )≡(123 ,456 )127 ≡(164 ,1004)mod (1189)…(46) 式(46)によって暗号化を行ない、受け手に送る。
【0169】[復号化処理]受け手は自らの秘密鍵d=
463を用い、
【数45】 (164 ,1004)463 ≡(123 ,456 )≡(M0 ,M1 )mod (1189)…(47) 式(47)を計算することによって、復号化を行なう。
【0170】[平文統合処理]復号化された分割平文
(M0 ,M1 )=(123,456)を連接し、原平文
M=123456へ復元する。
【0171】[2次体(ガウス体)を利用した公開鍵暗
号方式の数値例]次に、2次体(ガウス体)を利用した
本発明に係る公開鍵暗号方式の実施形態を具体的な数値
例を用いて説明する。
【0172】[鍵生成処理]秘密鍵1である2個の素イ
デアルP=(31)、Q=(47)を生成し、その積N
=(1457)の剰余類(公開鍵1)を決定する。
【0173】次いで、秘密鍵1からL=22080を計
算し、e=127(公開鍵2)と,d=20863(秘
密鍵2)を生成する。
【0174】[平文分割処理]平文M=123456に
対して、それぞれ剰余類の範囲内の大きさのブロックに
分割した分割平文(M0 ,M1 )=(123,456)
を生成する。
【0175】[暗号化処理]受け手の公開鍵e=127
を用いて、
【数46】 (C0 ,C1 )≡(123,456)127 ≡(246,545) mod(1457) …(48) 式(48)によって暗号化を行い、暗号文(C0 ,C1
)=(246,545)を受け手に送る。
【0176】[復号化処理]受け手は自らの秘密鍵d=
20836を用いて、
【数47】 (246,545)20836 ≡(M0 ,M1 ) mod(1457)…(49) 式(49)を計算することによって、暗号文の復号化を
行い、分割された平文(M0 ,M1 )=(123,45
6)を得る。
【0177】[平文統合処理]復号化された分割平文
(M0 ,M1 )=(123,456)を連接し、原平文
M=123456へ復元する。
【0178】次に、本発明に係る公開鍵暗号を利用した
認証方式及び認証装置について説明する。図2は、本発
明に係る公開鍵暗号による認証通信装置111の全体構
成を示すブロック図である。
【0179】本発明の公開鍵暗号方式を用い、認証を行
ないたい者が、自らの秘密鍵により認証文の暗号化を行
なって生成した認証子を受け手に送る方式による認証装
置を構成することができる。
【0180】図2によれば、認証通信装置111は、鍵
生成装置21と、認証文生成装置131と、認証文検証
装置141と、通信路51とを含んで構成される。鍵生
成装置21と、通信路51とは、図1の暗号化通信装置
11に使用したものと同じであるのでその説明は簡略に
する。
【0181】[認証用鍵生成処理]鍵生成装置21は、
2個の素イデアルP,Q(秘密鍵1)を生成し、その積
N=PQの剰余類(公開鍵1)を決定する。次に素イデ
アルP,QからLを計算し、e(公開鍵2)と、d(秘
密鍵2)を生成する。
【0182】次いで、2個の素イデアル(秘密鍵1)の
生成および剰余類(公開鍵1)の決定を行う。円分体の
場合は、原始根の位数mを入力として、秘密鍵1である
素イデアルP,Qを出力する。2次体の場合は、判別式
Dを入力として、秘密鍵1である素イデアルP,Qを出
力する。
【0183】次いで、公開鍵2であるeと秘密鍵2であ
るdの生成を行う。円分体、2次体ともに、秘密鍵1で
あるP,Qを入力として、公開鍵2であるeと秘密鍵2
であるdを出力する。また、鍵生成装置21は、ブロッ
ク数r、及び分割平文長[log2 n]を認証文生成装
置131へ出力する。以上の鍵生成処理は、図1の暗号
化通信装置11における鍵生成装置21の動作と同じで
ある。
【0184】[認証文生成処理]認証文生成装置131
は、認証文を受け入れる認証文入力部133と、認証文
をハッシュ化して認証子を生成する認証文ハッシュ化処
理部135と、認証子をブロックに分割する認証子分割
処理部137と、分割認証子を暗号化する認証子暗号化
処理部139とを含んで構成されている。
【0185】認証文入力部133により受け入れられた
認証文Mは、認証文ハッシュ化処理部135により、ハ
ッシュ関数hを用いてハッシュ化され、認証子h(M)
が生成される。ハッシュ関数hは特に限定されるもので
はない。
【0186】次いで、認証子h(M)は、認証子分割処
理部137により、それぞれ分割平文長[log2 n]
の長さのr個のブロックずつに分割される。ここで、r
をZ上の整数環Oの次元とする。認証子h(M)に対し
て、剰余類の範囲内の分割認証子h(M)=(h(M)
0 ,h(M)1 ,…,h(M)r-1 )を生成する。
【0187】次いで、認証子暗号化処理部139によ
り、送り手の秘密鍵dを用いて、
【数48】 (h(C)0 ,h(C)1 ,…,h(C)r-1 ) ≡(h(M)0 ,h(M)1 ,…,h(M)r-1 )d mod N … (50) 式(50)によって認証子の暗号化を行なう。
【0188】以上より得られた暗号化認証子h(C)=
(h(C)0 ,h(C)1 ,…,h(C)r-1 )と認
証文Mの組を通信路51を介して、受け手すなわち認証
文検証装置141に送る。
【0189】認証文検証装置141は、認証子復号化処
理部143と、認証子統合処理部145と、認証子ハッ
シュ化処理部147と、認証子照合部149とを含んで
構成されている。
【0190】認証文検証装置141は、認証文生成装置
131から暗号化認証子h(C)=(h(C)0 ,h
(C)1 ,…,h(C)r-1 )と認証文Mの組を受け
取る。また、鍵生成装置21から通信路51を介して、
公開鍵1N、および公開鍵2eを受け取る。
【0191】次いで、認証子復号化処理部143によ
り、暗号化認証子を復号化する。すなわち、認証子復号
化処理部143は、送り手の公開鍵eを利用して、
【数49】 (h(C)0 ,h(C)1 ,…,h(C)r-1 )e ≡(h(M)0 ,h(M)1 ,…,h(M)r-1 ) mod N …(51) 式(51)を計算することによって、暗号化認証子を復
号化して分割認証子を得る。
【0192】次いで、認証子統合処理部145は、復号
化された分割認証子(h(M)0 ,h(M)1 ,…,h
(M)r-1 )を統合し、認証子h(M)を生成する。
一方、認証文ハッシュ化処理部147は、送られて来た
認証文Mをハッシュ関数hにより、ハッシュ化して認証
子h(M)°とする。
【0193】次いで、認証子照合部149により、認証
子h(M)とh(M)°とを比較し、一致していれば認
証文が正当であり、不一致であれば認証文が不当である
として、認証文の正当性を判断する。
【0194】図24ないし図27は、認証文生成処理の
詳細手順を示すフローチャートである。認証文生成処理
では、表5に示すようなメモリ上のデータ配置を行う。
【0195】
【表5】 そして、図24に示すように、まずステップS901
で、認証文生成の為の初期設定が行われる。すなわちス
テップS901では、公開鍵1(n)、秘密鍵2d、ブ
ロック数r、分割平文長(log2nを超えない最大整
数)をそれぞれデータ番号1〜4に設定する。次いで、
認証文Mをデータ番号5に読み込む(ステップS90
3)。
【0196】次いで、認証文Mをデータ番号5から読み
出し、ハッシュ関数hでハッシュ化し、その結果である
認証子h(M)をデータ番号6に格納する(ステップS
905)。
【0197】次いで、認証子h(M)の先頭からそれぞ
れ分割平文長のビット数の長さのブロックをr個切り出
す認証子分割処理を行い(ステップS920)、続い
て、認証子暗号化処理を行う(ステップS940)。暗
号化された認証子ブロックは、暗号送信処理され(ステ
ップS960)、まだ認証子が残っていれば、認証子分
割処理(ステップS920)に戻り、認証子が残ってい
なければ終了する。
【0198】図25は、認証子分割処理の詳細を示すフ
ローチャートであり、ステップS920以下の詳細を示
す。まず、認証子分割処理の制御変数i,j,kの初期
設定を行う(ステップS922)。制御変数iは、分割
された認証子ブロックh(M)iの番号iを示すもので
ある。制御変数jは、分割前の認証子h(M)を構成す
る各ビットのビット番号である。kは、ビット数で表し
た分割平文長である。ステップS922では、それぞ
れ、i=0,j=0,k=(log2nを超えない最大
整数)と設定する。
【0199】次いで、データ番号6から認証子h(M)
を読み出し、h(M)のjビット目から(j+k−1)
ビット目までを切り出し、これをh(M)iとしてデー
タ番号(7+i)に格納する(ステップS924)。次
いで、制御変数更新のために、i=i+1,j=j+k
とする(ステップS926)。次いで、所定のブロック
数rまで分割されたか否かを判定するため、iとrとを
比較する(ステップS928)。ステップS928の判
定において、i≠rであれば、まだ分割すべきブロック
が残っているので、ステップS924へ戻る。
【0200】ステップS928の判定において、i=r
であれば、分割すべきブロックが残っていないので、j
がh(M)の最終ビット番号未満か否かを判定する(ス
テップS930)。jがh(M)の最終ビット番号未満
であれば、h(M)のjビット目から最後までをh
(M)′として、データ番号6に格納して(ステップS
932)、次の認証子暗号化処理へ移る。jがh(M)
の最終ビット番号以上であれば、All‘0’をデータ
番号6に格納して(ステップS934)、次の認証子暗
号化処理へ移る。
【0201】図26は、認証子暗号化処理の詳細を示す
フローチャートであり、ステップS940以下の詳細を
示す。まず、認証子暗号化処理の制御変数iの初期設
定、i=0を行う(ステップS942)。制御変数i
は、分割された認証子ブロックの番号を示すものであ
る。次いで、データ番号(7+i)から認証子ブロック
h(M)iを読み出し、これにイデアル(n)を法とす
るd乗演算を行い、その結果を暗号化認証子ブロックh
(C)iとして、データ番号(7+r+i)に格納する
(ステップS944)。次いで、制御変数iを1だけ増
加させる(ステップS946)。
【0202】次いで、所定のブロック数rまで暗号化さ
れたか否かを判定するため、iとrとを比較する(ステ
ップS948)。ステップS948の判定において、i
≠rであれば、まだ暗号化すべき認証子ブロックが残っ
ているので、ステップS944へ戻る。ステップS94
8の判定において、i=rであれば、暗号化が終了した
ので、次の暗号文送信処理へ移る。
【0203】図27は、暗号文送信処理の詳細を示すフ
ローチャートであり、ステップS960以下の詳細を示
す。まず、暗号文送信処理の制御変数iの初期設定、i
=0を行う(ステップS962)。制御変数iは、暗号
化ブロックの番号を示すものである。次いで、データ番
号(7+r+i)から暗号化認証子ブロックh(C)i
を読み出し、送信する(ステップS964)。次いで、
制御変数iを1だけ増加させる(ステップS966)。
【0204】次いで、所定のブロック数rまで送信され
たか否かを判定するため、iとrとを比較する(ステッ
プS968)。ステップS968の判定において、i≠
rであれば、まだ送信すべき暗号化ブロックが残ってい
るので、ステップS964へ戻る。ステップS968の
判定において、i=rであれば、送信が終了したので、
データ番号6のh(M)′を読み出し、h(M)′=A
ll‘0’か否かを判定する(ステップS970)。
【0205】ステップS970の判定において、All
‘0’でなければ、まだ分割以下の処理を行うべき認証
子が残っているので、認証子分割処理(ステップS92
0)へ戻る。ステップS970の判定において、All
‘0’であれば、認証文生成処理が終了する。
【0206】図28ないし図31は、認証文復号化処理
の詳細手順を示すフローチャートである。
【0207】認証文復号化処理では、表6に示すような
メモリ上のデータ配置を行う。
【0208】
【表6】 そして、認証文復号化処理では、まず図28に示すよう
に、ステップS1001で、復号化の為の初期設定が行
われる。すなわちステップS1001では、公開鍵1
(n)、公開鍵2e、ブロック数r、分割平文長(lo
2nを超えない最大整数)をそれぞれデータ番号1〜
4に設定する。
【0209】次いで、認証文Mをデータ番号5へ、暗号
化認証子ブロックh(C)0 〜h(C)r-1 をブロック
毎にデータ番号6〜(5+r)へブロック毎に読み込む
(ステップS1003)。次いで、ブロック毎の認証子
復号化処理(ステップS1020)、続いて認証子統合
処理(ステップS1040)、認証文ハッシュ化処理
(ステップS1060)、認証確認処理(ステップS1
080)を順次行う。
【0210】図29は、認証子復号化処理の詳細を示す
フローチャートであり、ステップS1020以下の詳細
を示す。まず、認証子復号化処理の制御変数iの初期設
定、i=0を行う(ステップS1022)。制御変数i
は、暗号化認証子ブロックの番号を示すものである。次
いで、データ番号(6+i)から暗号化認証子ブロック
h(C)i を読み出し、これにイデアル(n)を法とす
るe乗演算を行い、その結果を復号化された認証子ブロ
ックh(M)i として、データ番号(6+r+i)に格
納する(ステップS1024)。次いで、制御変数iを
1だけ増加させる(ステップS1026)。
【0211】次いで、所定のブロック数rまで復号化さ
れたか否かを判定するため、iとrとを比較する(ステ
ップS1028)。ステップS1028の判定におい
て、i≠rであれば、まだ復号化すべきブロックが残っ
ているので、ステップS1024へ戻る。ステップS1
028の判定において、i=rであれば、復号化が終了
したので、次の認証子統合処理へ移る。
【0212】図30は、認証子統合処理の詳細を示すフ
ローチャートであり、ステップS1040以下の詳細を
示す。まず、認証子統合処理の制御変数i,j,kの初
期設定を行う(ステップS11042)。制御変数i
は、統合すべき認証子ブロックh(M)i の番号iを示
すものである。制御変数jは、統合後の認証子データh
(M)を構成する各ビットのビット番号である。kは、
ビット数で表した分割平文長である。ステップS104
2では、それぞれ、i=0,j=0,k=(log2
を超えない最大整数)と設定する。
【0213】次いで、データ番号(6+r+i)からh
(M)i を読み出し、作業領域のjビット目から(j+
k−1)ビット目までに格納する(ステップS104
4)。次いで、制御変数更新のために、i=i+1,j
=j+kとする(ステップS1046)。
【0214】次いで、所定のブロック数rまで統合され
たか否かを判定するため、iとrとを比較する(ステッ
プS1048)。ステップS1048の判定において、
i≠rであれば、まだ統合すべきブロックが残っている
ので、ステップS1044へ戻る。
【0215】ステップS1048の判定において、i=
rであれば、統合すべきブロックが残っていないので、
作業領域内に連接して形成された統合認証子h(M)を
データ番号(6+2r)の末尾に連接して格納し(ステ
ップS1050)、次の認証文ハッシュ化処理へ移る。
【0216】図31は、認証文ハッシュ化処理および認
証確認処理の詳細を示すフローチャートであり、ステッ
プS1060以下の詳細を示す。認証文ハッシュ化処理
は、データ番号5から認証文Mを読み出し、ハッシュ関
数hでハッシュ化し、その結果をh(M)°として、デ
ータ番号(7+2r)に格納し(ステップS106
2)、次の認証確認処理へ移る。
【0217】認証確認処理は、データ番号(6+2r)
の統合認証子h(M)とデータ番号(7+2r)のハッ
シュ化認証子h(M)°とを比較する(ステップS10
82)。
【0218】この比較の結果、h(M)とh(M)°と
が一致していれば、認証成功を出力して(ステップS1
084)終了し、h(M)とh(M)°とが一致しなけ
れば、認証失敗を出力して(ステップS1086)終了
する。
【0219】なお、この認証通信の実施形態において、
暗号化認証子h(C)と認証文Mの組をさらに受信者の
公開鍵を用いて暗号化する暗号化認証通信も、認証通信
と暗号化通信とを組み合わせることによって従来の公開
鍵暗号と同様に実現できる。
【0220】
【発明の効果】以上説明したように、本発明に係る公開
鍵暗号方式によれば、従来のRSA暗号方式と比較し
て、完全読解についての安全性は同等以上の強度が得ら
れるという効果を奏する。
【0221】また、本発明の公開鍵暗号方式に対して、
従来の同報通信攻撃法は無効となるので、同報通信攻撃
に対して著しく強度が増した暗号方式を提供することが
できるという効果を奏する。
【0222】また、本発明の公開鍵暗号方式によれば、
暗号化にかかる計算時間の大部分を占める乗算回数が、
楕円曲線上のRSA暗号と比較して2/5に削減され、
大幅な高速化を実現することができるという効果を奏す
る。
【0223】また、本発明の拡大体への拡大次数が2次
の場合は、従来のRSA暗号と比較して同程度の暗号化
速度を確保しつつ、強度を高めることができるという効
果を奏する。
【0224】また、本社から複数支社への同報データ通
信や多地点間でのテレビ会議、有線あるいは無線電話な
どによる連絡などにおいて、守秘性を高めたいときに、
本発明による暗号方式を用いてデータ、画像、音声の暗
号化を行なうことにより、従来の方式に比べて同報通信
攻撃に対して強度の増した通信を行なうことができると
いう効果を奏する。
【0225】また、本発明をインターネットなどのネッ
トワークにおいて用いられているセキュリティ電子メイ
ルなどの暗号通信に適用すれば、同報通信攻撃に対する
強度を増すことができるという効果を奏する。
【0226】また、本発明に係る認証装置は、そのハー
ドウェア資源ならびにソフトウェア資源のそれぞれ大部
分を暗号装置と共用することができ、暗号化および認証
の双方に対称使用が可能となるという効果を奏する。
【0227】また、本暗号装置および認証装置を使用す
ることにより、同報通信攻撃に強いネットワーク管理プ
ロトコルを設計することができるという効果を奏する。
【0228】また、ネットワークを利用して行なわれる
電子商取引や電子金融取引等において、本暗号装置およ
び認証装置を使用することにより、取引データの暗号化
や取引相手の相互認証におけるセキュリティを向上させ
ることができるという効果を奏する。
【0229】また、本発明の暗号化鍵生成方法および暗
号化鍵生成装置によれば、代数体上の整数環における素
イデアルを利用することにより、従来の有理整数環上の
素数に比べて利用可能な暗号化鍵を増加させることがで
きるという効果を奏する。
【図面の簡単な説明】
【図1】本発明に係る公開鍵暗号方式を用いた暗号化通
信装置の概要を示すシステム構成図である。
【図2】本発明に係る公開鍵暗号方式による認証通信装
置の概要を示すシステム構成図である。
【図3】円分体の素イデアル(秘密鍵1)生成処理部。
【図4】2次体の素イデアル(秘密鍵1)生成処理部。
【図5】円分体の公開鍵2、秘密鍵2の生成処理部。
【図6】平分分割処理部の概略フローチャートである。
【図7】イデアルnを法とする乗算器の構成を示すブロ
ック図である。
【図8】イデアルnを法とする2乗演算器の構成を示す
ブロック図である。
【図9】円分体暗号における鍵生成処理のフローチャー
ト図(1/4)であり、円分体暗号における鍵生成のメ
インルーチンを示す。
【図10】円分体暗号における鍵生成処理のフローチャ
ート図(2/4)であり、オイラー関数値φ(m)の計
算ルーチンを示す。
【図11】円分体暗号における鍵生成処理のフローチャ
ート図(3/4)であり、素イデアル1,pの生成ルー
チンを示す。
【図12】円分体暗号における鍵生成処理のフローチャ
ート図(4/4)であり、素イデアル2,qの生成ルー
チンを示す。
【図13】2次体暗号における鍵生成処理のフローチャ
ート図(1/4)であり、2次体暗号における鍵生成の
メインルーチンを示す。
【図14】2次体暗号における鍵生成処理のフローチャ
ート図(2/4)であり、判別式Dの値を格納するルー
チンを示す。
【図15】2次体暗号における鍵生成処理のフローチャ
ート図(3/4)であり、素イデアル1,pの生成ルー
チンを示す。
【図16】2次体暗号における鍵生成処理のフローチャ
ート図(4/4)であり、素イデアル2,qの生成ルー
チンを示す。
【図17】暗号化送信処理のフローチャート図(1/
4)であり、暗号化送信処理のメインルーチンを示す。
【図18】暗号化送信処理のフローチャート図(2/
4)であり、平文分割処理ルーチンを示す。
【図19】暗号化送信処理のフローチャート図(3/
4)であり、暗号化処理ルーチンを示す。
【図20】暗号化送信処理のフローチャート図(4/
4)であり、暗号文送信処理ルーチンを示す。
【図21】受信復号化処理のフローチャート図(1/
3)であり、受信復号化処理のメインルーチンを示す。
【図22】受信復号化処理のフローチャート図(2/
3)であり、復号化処理ルーチンを示す。
【図23】受信復号化処理のフローチャート図(3/
3)であり、平文統合処理ルーチンを示す。
【図24】認証文生成処理のフローチャート図(1/
4)であり、認証文生成処理のメインルーチンを示す。
【図25】認証文生成処理のフローチャート図(2/
4)であり、認証子分割処理ルーチンを示す。
【図26】認証文生成処理のフローチャート図(3/
4)であり、認証子暗号化ルーチンを示す。
【図27】認証文生成処理のフローチャート図(4/
4)であり、暗号文送信処理ルーチンを示す。
【図28】認証文復号化処理のフローチャート図(1/
4)であり、認証文復号化処理のメインルーチンを示
す。
【図29】認証文復号化処理のフローチャート図(2/
4)であり、認証子復号化処理ルーチンを示す。
【図30】認証文復号化処理のフローチャート図(3/
4)であり、認証子統合処理ルーチンを示す。
【図31】認証文復号化処理のフローチャート図(4/
4)であり、認証子ハッシュ化処理ルーチンおよび認証
確認処理ルーチンを示す。
【図32】惰性する素数の積で生成されるイデアル
(n)による剰余類を2次元平面上に示した図である。
【図33】従来のRSA暗号方式の概要を示すシステム
構成図である。
【符号の説明】
11…暗号化通信装置、21…鍵生成装置、23…素イ
デアル生成部、31…暗号化装置、33…平文入力部、
35…平文分割部、37…暗号化処理部、39…イデア
ルnを法とするべき乗演算部、41…復号化装置、43
…復号化処理部、45…イデアルnを法とするべき乗演
算部、47…平文統合処理部、49…平文出力部、51
…通信路。
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.6 識別記号 庁内整理番号 FI 技術表示箇所 H04L 9/30 H04L 9/00 601F 9/32 663B 675B

Claims (33)

    【特許請求の範囲】
  1. 【請求項1】 ある素数データに基づいて、代数体上の
    整数環における素イデアルであることを満たすような互
    いに異なる二つの自然数データの組である第1の秘密鍵
    データ、ならびに前記両自然数データの積である第1の
    公開鍵データを生成することを特徴とする公開鍵暗号の
    鍵生成方法。
  2. 【請求項2】 ある素数データに基づいて、代数体上の
    整数環における素イデアルであることを満たすような互
    いに異なる二つの自然数データの組である第1の秘密鍵
    データ、ならびに前記両自然数データの積である第1の
    公開鍵データを生成し、 前記素数データのオイラー関数値の計算と、前記第1の
    秘密鍵データに関する最小公倍数演算と、を用いて、と
    もに自然数データである第2の秘密鍵データと第2の公
    開鍵データとを生成することを特徴とする公開鍵暗号の
    鍵生成方法。
  3. 【請求項3】 ある素数べきデータであるmc のオイラ
    ー関数値を求めて、 前記オイラー関数値をべき乗した結果に対してmc を法
    とする剰余を計算すると1となり、かつ、前記オイラー
    関数値より小さいいずれの自然数をべき乗した結果に対
    してmc を法とする剰余を計算しても、1にならない条
    件を満たすような、互いに異なる二つの自然数データで
    あるpc とqc とを探索し、 pc とqc との組を第1の秘密鍵データとして出力し、 pc とqc を乗じてデータNc を求め、Nc を第1の公
    開鍵データとして出力することを特徴とする公開鍵暗号
    の鍵生成方法。
  4. 【請求項4】 前記pc とqc とにそれぞれ前記オイラ
    ー関数値をべき乗し1を減じた値同士の最小公倍数の値
    であるLc を算出し、 Lc を法とする剰余が1となるデータ値を積とするよう
    な二つの自然数データを探索し、 前記探索された二つの自然数データの一方を第2の秘密
    鍵データdc として、他方を第2の公開鍵データec と
    して、それぞれ出力することを特徴とする請求項3に記
    載の公開鍵暗号の鍵生成方法。
  5. 【請求項5】 前記pc とqc との探索は、 ユークリッド的なmc 次円分体において、0でないイデ
    アルによる、mc に対するオイラー関数の値を次数に持
    つ剰余類の完全代表系上の多次元ベクトルの原点からの
    距離である、ノルムを使用して行うことを特徴とする請
    求項3または4に記載の公開鍵暗号の鍵生成方法。
  6. 【請求項6】 前記pc とqc との探索は、 任意の円分体において、惰性する素数の積で表されるイ
    デアルによる、mc に対するオイラー関数の値を次数に
    持つ剰余類の完全代表系上の多次元ベクトルの原点から
    の距離である、ノルムを使用して求めることによって行
    うことを特徴とする請求項3または4に記載の公開鍵暗
    号の鍵生成方法。
  7. 【請求項7】 二乗因子を含まないある有理整数データ
    値であるms に対して、4を法とする剰余を計算し、 この剰余の計算値が1となる場合は、判別式データの値
    をms とし、 この剰余の計算値が1以外の場合は、判別式データの値
    を4ms とし、 有理素数のなかから、この有理素数を法として前記判別
    式データを平方非剰余とするような互いに異なる二つの
    有理素数であるps とqs を探索し、 ps とqs の組を、第1の秘密鍵データとして出力し、 ps とqs を乗じてデータNs を求め、 Ns を第1の公開鍵データとして出力することを特徴と
    する公開鍵暗号の鍵生成方法。
  8. 【請求項8】 前記ps とqs のそれぞれの2乗から1
    を減じた値同士の最小公倍数データ値であるLs を算出
    し、 このLs を法とする剰余が1となるデータ値を積とする
    ような二つの自然数データを探索し、 この二つの自然数データの一方を第2の秘密鍵データd
    s とし、他方を第2の公開鍵データes として、それぞ
    れ出力することを特徴とする請求項7に記載の公開鍵暗
    号の鍵生成方法。
  9. 【請求項9】 前記のps とqs の探索は、 ユークリッド的な2次体において、0でないイデアルに
    よる2次の剰余類の完全代表系である2次元ベクトルの
    原点からの距離である、ノルムを使用して求めることに
    よって行うことを特徴とする請求項7または請求項8に
    記載の公開鍵暗号の鍵生成方法。
  10. 【請求項10】 ある素数べきデータであるmc を入力
    する入力手段と、 mc のオイラー関数値を求めるオイラー関数計算手段
    と、 前記オイラー関数値をべき乗した結果に対してmc を法
    とする剰余を計算すると1となり、かつ、前記オイラー
    関数値より小さいいずれの自然数をべき乗した結果に対
    してmc を法とする剰余を計算しても、1にならない条
    件を満たすような、互いに異なる二つの自然数データで
    あるpc とqc とを探索する第1の探索手段と、 pc とqc を乗じてデータNc を求める乗算手段と、 pc とqc とにそれぞれ前記オイラー関数値をべき乗し
    1を減じた値同士の最小公倍数データ値であるLc を算
    出し、Lc を法とする剰余が1となるデータ値を積とす
    るような二つの自然数データdc およびec を探索する
    第2の探索手段と、 pc とqc との組を第1の秘密鍵データとして、Nc を
    第1の公開鍵データとして、dc を第2の秘密鍵データ
    として、ec を第2の公開鍵データとして、それぞれ出
    力する出力手段と、 を具備したことを特徴とする公開鍵暗号の鍵生成装置。
  11. 【請求項11】 二乗因子を含まないある有理整数デー
    タ値であるms を入力する入力手段と、 ms に対して、4を法とする剰余を計算し、この剰余の
    計算値が1となる場合は、判別式データの値をms と
    し、この剰余の計算値が1以外の場合は、判別式データ
    の値を4ms とする判別式データ設定手段と、 有理素数のなかから、この有理素数を法として前記判別
    式データを平方非剰余とするような互いに異なる二つの
    有理素数であるps とqs とを探索する第1の探索手段
    と、 ps とqs を乗じてデータNs を求める乗算手段と、 ps とqs のそれぞれの2乗から1を減じた値同士の最
    小公倍数データ値であるLs を算出し、このLs を法と
    する剰余が1となるデータ値を積とするような二つの自
    然数データds およびes を探索する第2の探索手段
    と、 ps とqs の組を第1の秘密鍵データとして、Ns を第
    1の公開鍵データとして、ds を第2の秘密鍵データと
    して、es を第2の公開鍵データとして、それぞれ出力
    する出力手段と、 を具備したことを特徴とする公開鍵暗号の鍵生成装置。
  12. 【請求項12】 第1および第2の公開鍵により平文デ
    ータを暗号化して暗号文データを生成する公開鍵暗号に
    よる暗号化方法であって、 平文データを複数ブロックに分割して得られた平文ブロ
    ックデータに対して、第2の公開鍵データ値であるec
    またはes をべき乗した値を計算し、 この計算値に対して、第1の公開鍵であるイデアルNc
    またはNs を法とした剰余を求めることによって、暗号
    文データを生成することを特徴とする公開鍵暗号による
    暗号化方法。
  13. 【請求項13】 前記イデアルを法とする剰余類の取り
    方は、 ユークリッド的なmc 次円分体において、0でないイデ
    アルNc を法とする剰余類の完全代表系として、mc に
    対するオイラー関数の値を次元とする多次元ベクトルで
    張られる超平行四辺体の内部と境界上の格子点とし、 前記平文データが、それぞれ前記mc に対するオイラー
    関数値に等しいブロック数からなる平文ブロックデータ
    に分割された後に暗号化されることを特徴とする請求項
    12に記載の公開鍵暗号による暗号化方法。
  14. 【請求項14】 前記イデアルを法とする剰余類の取り
    方は、 ユークリッド的な2次体において、0でないイデアルN
    s を法とする剰余類の完全代表系として、2次元ベクト
    ルで張られる平行四辺形体の内部と境界上の格子点と
    し、 前記平文データが、それぞれ2つのブロックからなる平
    文ブロックデータに分割された後に暗号化されることを
    特徴とする請求項12に記載の公開鍵暗号による暗号化
    方法。
  15. 【請求項15】 平文ブロックデータに対して、第2の
    公開鍵データ値であるec をべき乗した値を計算するべ
    き乗計算手段と、 この計算値に対して、第1の公開鍵であるイデアルNc
    を法とした剰余を求める剰余類計算手段と、 を備えてなり、前記剰余類計算手段におけるイデアルを
    法とする剰余類の取り方は、ユークリッド的なmc 次円
    分体において、0でないイデアルNc を法とする剰余類
    の完全代表系として、mc に対するオイラー関数の値を
    次元とする多次元ベクトルで張られる超平行四辺体の内
    部と境界上の格子点とすることを特徴とする公開鍵暗号
    による暗号化装置。
  16. 【請求項16】 平文ブロックデータに対して、第2の
    公開鍵データ値であるes をべき乗した値を計算するべ
    き乗計算手段と、 この計算値に対して、第1の公開鍵であるイデアルNs
    を法とした剰余を求める剰余類計算手段と、 を備えてなり、前記剰余類計算手段におけるイデアルを
    法とする剰余類の取り方は、ユークリッド的な2次体に
    おいて、0でないイデアルNs を法とする剰余類の完全
    代表系として、2次元ベクトルで張られる平行四辺形体
    の内部と境界上の格子点とすることを特徴とする公開鍵
    暗号による暗号化装置。
  17. 【請求項17】 請求項12ないし請求項14のいずれ
    か1項記載の暗号化方法により生成された暗号文ブロッ
    クデータに対して復号化を施して平文データを生成する
    公開鍵暗号の復号化方法であって、 前記暗号文ブロックデータに対して、第2の秘密鍵デー
    タ値であるdc またはds をべき乗した値を計算し、 この計算値に対して、第1の公開鍵であるイデアルNc
    またはNs を法とした剰余を求めることによって、平文
    データを生成することを特徴とする公開鍵暗号の復号化
    方法。
  18. 【請求項18】 前記イデアルを法とする剰余類の取り
    方は、 ユークリッド的なmc 次円分体において、0でないイデ
    アルNc を法とする剰余類の完全代表系として、mc に
    対するオイラー関数の値を次元とする多次元ベクトルで
    張られる超平行四辺体の内部と境界上の格子点とするこ
    とを特徴とする請求項17に記載の公開鍵暗号の復号化
    方法。
  19. 【請求項19】 前記イデアルを法とする剰余類の取り
    方は、 ユークリッド的な2次体において、0でないイデアルN
    s を法とする剰余類の完全代表系として、2次元ベクト
    ルで張られる平行四辺形体の内部と境界上の格子点とす
    ることを特徴とする請求項17に記載の公開鍵暗号の復
    号化方法。
  20. 【請求項20】 暗号文ブロックデータに対して、第2
    の秘密鍵データ値であるdc をべき乗した値を計算する
    べき乗計算手段と、 この計算値に対して、第1の公開鍵であるイデアルNc
    を法とした剰余を求める剰余類計算手段と、 を備えてなり、前記剰余類計算手段におけるイデアルを
    法とする剰余類の取り方は、ユークリッド的なmc 次円
    分体において、0でないイデアルNc を法とする剰余類
    の完全代表系として、mc に対するオイラー関数の値を
    次元とする多次元ベクトルで張られる超平行四辺体の内
    部と境界上の格子点とすることを特徴とする公開鍵暗号
    の復号化装置。
  21. 【請求項21】 暗号文ブロックデータに対して、第2
    の秘密鍵データ値であるds をべき乗した値を計算する
    べき乗計算手段と、 この計算値に対して、第1の公開鍵であるイデアルNs
    を法とした剰余を求める剰余類計算手段と、 を備えてなり、前記剰余類計算手段におけるイデアルを
    法とする剰余類の取り方は、ユークリッド的な2次体に
    おいて、0でないイデアルNs を法とする剰余類の完全
    代表系として、2次元ベクトルで張られる平行四辺形体
    の内部と境界上の格子点とすることを特徴とする公開鍵
    暗号の復号化装置。
  22. 【請求項22】 第1の公開鍵および第2の秘密鍵によ
    り、認証文から暗号化された認証子データを生成する公
    開鍵暗号方式による認証文生成方法であって、 前記認証文をハッシュ化し、複数ブロックに分割した認
    証子ブロックデータを生成し、 この認証子ブロックデータに対して、第2の秘密鍵デー
    タ値であるdc またはds をべき乗した値を計算し、 この計算値に対して、第1の公開鍵データであるイデア
    ルNc またはNs を法とした剰余を求めることによっ
    て、暗号化認証子データを生成することを特徴とする公
    開鍵暗号方式による認証文生成方法。
  23. 【請求項23】 前記イデアルを法とする剰余類の取り
    方は、 ユークリッド的なmc 次円分体において、0でないイデ
    アルNc を法とする剰余類の完全代表系として、mc に
    対するオイラー関数の値を次元とする多次元ベクトルで
    張られる超平行四辺体の内部と境界上の格子点とし、 前記平文データが、それぞれ前記mc に対するオイラー
    関数値に等しいブロック数からなる平文ブロックデータ
    に分割された後に暗号化されることを特徴とする請求項
    22に記載の公開鍵暗号方式による認証文生成方法。
  24. 【請求項24】 前記イデアルを法とする剰余類の取り
    方は、 ユークリッド的な2次体において、0でないイデアルN
    s を法とする剰余類の完全代表系として、2次元ベクト
    ルで張られる平行四辺形体の内部と境界上の格子点と
    し、 前記平文データが、それぞれ2つのブロックからなる平
    文ブロックデータに分割された後に暗号化されることを
    特徴とする請求項22に記載の公開鍵暗号方式による認
    証文生成方法。
  25. 【請求項25】 入力された認証文をハッシュ化した後
    に分割し、それぞれmc に対するオイラー関数値に等し
    いブロック数からなる認証子ブロックデータを生成する
    認証子データ生成手段と、 この生成された認証子ブロックデータに対して、第2の
    秘密鍵データ値であるdc をべき乗した値を計算するべ
    き乗計算手段と、 この計算値に対して、第1の公開鍵データであるイデア
    ルNc を法とした剰余を求める剰余類計算手段と、 を備えてなり、前記剰余類計算手段におけるイデアルを
    法とする剰余類の取り方は、ユークリッド的なmc 次円
    分体において、0でないイデアルNc を法とする剰余類
    の完全代表系として、mc に対するオイラー関数の値を
    次元とする多次元ベクトルで張られる超平行四辺体の内
    部と境界上の格子点とすることを特徴とする公開鍵暗号
    方式による認証文生成装置。
  26. 【請求項26】 入力された認証文をハッシュ化した後
    に分割し、それぞれ2つのブロックからなる認証子ブロ
    ックデータを生成する認証子データ生成手段と、 この生成された認証子ブロックデータに対して、第2の
    秘密鍵データ値であるds をべき乗した値を計算するべ
    き乗計算手段と、 この計算値に対して、第1の公開鍵データであるイデア
    ルNs を法とした剰余を求めて暗号化認証子データを得
    る剰余類計算手段と、 を備えてなり、前記剰余類計算手段におけるイデアルN
    s を法とする剰余類の取り方は、ユークリッド的な2次
    体において、0でないイデアルNs を法とする剰余類の
    完全代表系として、2次元ベクトルで張られる平行四辺
    形体の内部と境界上の格子点とすることを特徴とする公
    開鍵暗号方式による認証文生成装置。
  27. 【請求項27】 請求項22ないし請求項24のいずれ
    か1項記載の認証文生成方法により生成された暗号化認
    証子データを復号化し、平文でありこの暗号化認証子デ
    ータに相当する認証文データの正当性を検証する認証文
    検証方法であって、 暗号化された認証子ブロックデータに対して、第2の公
    開鍵データ値であるec またはes をべき乗した値を計
    算し、 この計算値に対して、第1の公開鍵であるイデアルNc
    またはNs を法とした剰余を求めることによって、認証
    子データを復号化し、 この復号化した認証子データと、前記平文の認証子デー
    タとが一致していた場合は、認証ないし検証過程を正当
    と判定し、 この復号化した認証子データと、前記平文の認証子デー
    タとが不一致であった場合は、認証ないし検証過程を正
    当でないと判定する、 ことを特徴とする公開鍵暗号方式による認証文検証方
    法。
  28. 【請求項28】 前記イデアルを法とする剰余類の取り
    方は、 ユークリッド的なmc 次円分体において、0でないイデ
    アルNc を法とする剰余類の完全代表系として、mc に
    対するオイラー関数の値を次元とする多次元ベクトルで
    張られる超平行四辺体の内部と境界上の格子点とするこ
    とを特徴とする請求項27に記載の公開鍵暗号方式によ
    る認証文検証方法。
  29. 【請求項29】 前記イデアルを法とする剰余類の取り
    方は、 ユークリッド的な2次体において、0でないイデアルN
    s を法とする剰余類の完全代表系として、2次元ベクト
    ルで張られる平行四辺形体の内部と境界上の格子点とす
    ることを特徴とする請求項27に記載の公開鍵暗号方式
    による認証文検証方法。
  30. 【請求項30】 暗号化された認証子ブロックデータに
    対して、第2の公開鍵データ値であるec をべき乗した
    値を計算するべき乗計算手段と、 この計算値に対して、第1の公開鍵であるイデアルNc
    を法とした剰余を求めて復号化された認証子データを得
    る剰余類計算手段と、 この復号化された認証子データおよびこれに対応する平
    文の認証子データの比較に基づいて認証判定を行う判定
    手段と、 を備える公開鍵暗号方式による認証文検証装置であっ
    て、 前記剰余類計算手段における前記イデアルを法とする剰
    余類の取り方は、 ユークリッド的なmc 次円分体において、0でないイデ
    アルNc を法とする剰余類の完全代表系として、mc に
    対するオイラー関数の値を次元とする多次元ベクトルで
    張られる超平行四辺体の内部と境界上の格子点とするこ
    とを特徴とする公開鍵暗号方式による認証文検証装置。
  31. 【請求項31】 暗号化された認証子ブロックデータに
    対して、第2の公開鍵データ値であるes をべき乗した
    値を計算するべき乗計算手段と、 この計算値に対して、第1の公開鍵であるイデアルNs
    を法とした剰余を求めて復号化された認証子データを得
    る剰余類計算手段と、 この復号化された認証子データおよびこれに対応する平
    文の認証子データの比較に基づいて認証判定を行う判定
    手段と、 を備える公開鍵暗号方式による認証文検証装置であっ
    て、 前記剰余類計算手段における前記イデアルを法とする剰
    余類の取り方は、 ユークリッド的な2次体において、0でないイデアルN
    s を法とする剰余類の完全代表系として、2次元ベクト
    ルで張られる平行四辺形体の内部と境界上の格子点とす
    ることを特徴とする公開鍵暗号方式による認証文検証装
    置。
  32. 【請求項32】 前記剰余類計算手段における剰余の計
    算は、前記mc に対するオイラー関数値に等しい数の各
    成分毎に行うことを特徴とする請求項15、請求項2
    0、請求項25、または請求項30のいずれか1項に記
    載の装置。
  33. 【請求項33】 前記剰余類計算手段における剰余の計
    算は、2つの各成分毎に行うことを特徴とする請求項1
    6、請求項21、請求項26、または請求項31のいず
    れか1項に記載の装置。
JP8189730A 1996-07-18 1996-07-18 公開鍵暗号による通信および認証方法、ならびにそれらの装置 Pending JPH1039752A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP8189730A JPH1039752A (ja) 1996-07-18 1996-07-18 公開鍵暗号による通信および認証方法、ならびにそれらの装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8189730A JPH1039752A (ja) 1996-07-18 1996-07-18 公開鍵暗号による通信および認証方法、ならびにそれらの装置

Publications (1)

Publication Number Publication Date
JPH1039752A true JPH1039752A (ja) 1998-02-13

Family

ID=16246236

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8189730A Pending JPH1039752A (ja) 1996-07-18 1996-07-18 公開鍵暗号による通信および認証方法、ならびにそれらの装置

Country Status (1)

Country Link
JP (1) JPH1039752A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100601634B1 (ko) * 2000-06-07 2006-07-14 삼성전자주식회사 고속 복제 방지 방법
CN106936563A (zh) * 2015-12-29 2017-07-07 智能Ic卡公司 用于保护密码运算的方法和系统
CN111052670A (zh) * 2017-09-01 2020-04-21 三菱电机株式会社 加密装置、解密装置、加密方法、解密方法、加密程序和解密程序

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100601634B1 (ko) * 2000-06-07 2006-07-14 삼성전자주식회사 고속 복제 방지 방법
CN106936563A (zh) * 2015-12-29 2017-07-07 智能Ic卡公司 用于保护密码运算的方法和系统
CN111052670A (zh) * 2017-09-01 2020-04-21 三菱电机株式会社 加密装置、解密装置、加密方法、解密方法、加密程序和解密程序
CN111052670B (zh) * 2017-09-01 2024-02-09 三菱电机株式会社 加密装置、解密装置、加密方法、解密方法和计算机能读取的存储介质

Similar Documents

Publication Publication Date Title
US6259790B1 (en) Secret communication and authentication scheme based on public key cryptosystem using N-adic expansion
US6396926B1 (en) Scheme for fast realization of encrytion, decryption and authentication
US6154541A (en) Method and apparatus for a robust high-speed cryptosystem
EP0503119B1 (en) Public key cryptographic system using elliptic curves over rings
US7773747B2 (en) Encryption apparatus, decryption apparatus, and method
NZ535698A (en) An cryptosystem involving generating an isogeny that maps points from one elliptic curve onto another elliptic curve and publishing a public key corresponding to the isogeny
Karakra et al. A-rsa: augmented rsa
US20020041684A1 (en) Public-key encryption and key-sharing methods
Mittal et al. Group ring based public key cryptosystems
CN116346336B (zh) 一种基于多层密钥生成中心的密钥分发方法及相关系统
JPH1039752A (ja) 公開鍵暗号による通信および認証方法、ならびにそれらの装置
Andreevich et al. On Using Mersenne Primes in Designing Cryptoschemes
Clupek et al. Secure digital archiving in post-quantum era
JP3706398B2 (ja) 楕円曲線による署名、認証及び秘密通信方式
JP2002023626A (ja) 公開鍵暗号方法および公開鍵暗号を用いた通信システム
Shepherd et al. The quadratic residue cipher and some notes on implementation
EP1148675A1 (en) Public key cryptograph and key sharing method
JP3278790B2 (ja) 公開鍵暗号方法及び公開鍵暗号システム
WO2003013052A1 (en) Cryptosystems based on non-commutatity
Boussif Scalable Implementation of Array of 8-bit-Based RSA With Large Key Size
Dhamodharan et al. Multifarious mapping schemes on Elliptic curve cryptography for IoT security
AlSa'deh et al. A-RSA: augmented RSA
JPH0856219A (ja) 暗号通信システム
JP2000115157A (ja) 紛失通信方法
JP3240723B2 (ja) 通信方法、秘密通信方法及び署名通信方法