JPH1165439A - N進表現暗号による通信および認証方法、ならびにそれらの装置、およびn進表現暗号による通信および認証プログラムを格納した記憶媒体 - Google Patents
N進表現暗号による通信および認証方法、ならびにそれらの装置、およびn進表現暗号による通信および認証プログラムを格納した記憶媒体Info
- Publication number
- JPH1165439A JPH1165439A JP9156903A JP15690397A JPH1165439A JP H1165439 A JPH1165439 A JP H1165439A JP 9156903 A JP9156903 A JP 9156903A JP 15690397 A JP15690397 A JP 15690397A JP H1165439 A JPH1165439 A JP H1165439A
- Authority
- JP
- Japan
- Prior art keywords
- data
- value
- ary
- digit
- authenticator
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3006—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
- H04L9/302—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the integer factorization problem, e.g. RSA or quadratic sieve [QS] schemes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
- H04L9/3249—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using RSA or related signature schemes, e.g. Rabin scheme
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Storage Device Security (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
(57)【要約】
【課題】 従来の公開鍵暗号と同等の強度を持ちながら
復号化速度を高めた暗号化通信方法及び認証方法を提供
する。 【解決手段】 暗号化装置31の平文分割処理部33
は、平文データをそれぞれ公開鍵nの剰余類の範囲内の
k個のブロックM0,M1,…Mk-1に分割し、データ結合
処理部35は、この各ブロックをk桁のn進数、M
(n)=M0+nM1+…nk-1Mk-1として表現する。暗
号化処理部37は、C≡(M(n))e≡(M0+nM1
+…nk-1Mk-1)e(mod nk)により暗号化する。復号
化装置41の最下位桁復号化処理部43は、M0≡
(C)d≡(M0+nM1+…nk-1Mk-1)d(modn)に
より最下位桁M0を復号化し、上位桁復号化処理部45
は既に求められた下位桁の値を用いて同一の計算式を繰
り返し、再帰的に順次上位桁の復号を行う。データ連結
処理部47は、復号化された各ブロックを連結して平文
を復元する。
復号化速度を高めた暗号化通信方法及び認証方法を提供
する。 【解決手段】 暗号化装置31の平文分割処理部33
は、平文データをそれぞれ公開鍵nの剰余類の範囲内の
k個のブロックM0,M1,…Mk-1に分割し、データ結合
処理部35は、この各ブロックをk桁のn進数、M
(n)=M0+nM1+…nk-1Mk-1として表現する。暗
号化処理部37は、C≡(M(n))e≡(M0+nM1
+…nk-1Mk-1)e(mod nk)により暗号化する。復号
化装置41の最下位桁復号化処理部43は、M0≡
(C)d≡(M0+nM1+…nk-1Mk-1)d(modn)に
より最下位桁M0を復号化し、上位桁復号化処理部45
は既に求められた下位桁の値を用いて同一の計算式を繰
り返し、再帰的に順次上位桁の復号を行う。データ連結
処理部47は、復号化された各ブロックを連結して平文
を復元する。
Description
【0001】
【発明の属する技術分野】本発明は、暗号化鍵が公開さ
れ、復号化鍵のみが秘匿される公開鍵方式の暗号に係
り、特に、従来のリベスト・シャミール・アドルマン暗
号(以下、RSA暗号と略す)やラビン暗号と同等の強
度を保ちながら、復号化の速度を向上させた公開鍵暗号
による通信および認証方式並びにそれらの装置に関す
る。
れ、復号化鍵のみが秘匿される公開鍵方式の暗号に係
り、特に、従来のリベスト・シャミール・アドルマン暗
号(以下、RSA暗号と略す)やラビン暗号と同等の強
度を保ちながら、復号化の速度を向上させた公開鍵暗号
による通信および認証方式並びにそれらの装置に関す
る。
【0002】また、本発明は、RSA暗号やラビン暗号
の欠陥である、同じ平文を複数の通信相手に送る場合
(同報通信)、2個の平文に多項式関係がある場合、平
文のビット数が小さい場合など、暗号が簡単に破られて
しまうという点を克服し、より安全である公開鍵暗号に
よる通信および認証方式並びそれらの装置に関する。
の欠陥である、同じ平文を複数の通信相手に送る場合
(同報通信)、2個の平文に多項式関係がある場合、平
文のビット数が小さい場合など、暗号が簡単に破られて
しまうという点を克服し、より安全である公開鍵暗号に
よる通信および認証方式並びそれらの装置に関する。
【0003】
【従来の技術】電気通信において、通信内容の盗聴を防
ぎ、改竄を検出するために暗号技術は不可欠である。特
に、鍵管理が簡便な公開鍵暗号が有効であり、広く利用
されつつある。代表的な公開鍵暗号のアルゴリズムとし
て、冪(べき)乗剰余演算を用いるRSA暗号、二つの
素数の積を法とした2次多項式を暗号化関数に持つラビ
ン暗号等があり、既に実用化されている。
ぎ、改竄を検出するために暗号技術は不可欠である。特
に、鍵管理が簡便な公開鍵暗号が有効であり、広く利用
されつつある。代表的な公開鍵暗号のアルゴリズムとし
て、冪(べき)乗剰余演算を用いるRSA暗号、二つの
素数の積を法とした2次多項式を暗号化関数に持つラビ
ン暗号等があり、既に実用化されている。
【0004】次に、RSA暗号、ラビン暗号の順で従来
技術を簡略に説明する(参考文献1:「現代暗号理論」
電子情報通信学会発行、1986)。
技術を簡略に説明する(参考文献1:「現代暗号理論」
電子情報通信学会発行、1986)。
【0005】なお、以下の記載において、(mod
N)はNを法とする演算、≡は合同、LCMは最小公倍
数、GCDは最大公約数、[A]はAを超えない最大整
数を示すガウス記号、√(B)はBの平方根をそれぞれ
示すものとする。
N)はNを法とする演算、≡は合同、LCMは最小公倍
数、GCDは最大公約数、[A]はAを超えない最大整
数を示すガウス記号、√(B)はBの平方根をそれぞれ
示すものとする。
【0006】〔RSA暗号の基本原理〕RSA暗号の暗
号化鍵は(e,N)の組であり、対応する復号化鍵は
(d,N)の組である。eとNとは公開鍵であり、dは
秘密鍵である。Nは2つの素数、p、qの積(N=p
q)であり、Nを生成するp,qの組も秘密鍵と呼ばれ
ることがある。平文をM、暗号文をCとする。
号化鍵は(e,N)の組であり、対応する復号化鍵は
(d,N)の組である。eとNとは公開鍵であり、dは
秘密鍵である。Nは2つの素数、p、qの積(N=p
q)であり、Nを生成するp,qの組も秘密鍵と呼ばれ
ることがある。平文をM、暗号文をCとする。
【0007】暗号化Eと復号化Dのアルゴリズムは、次
の式(1)および式(2)で表される。
の式(1)および式(2)で表される。
【0008】
【数1】 C=E(M)=Me ( mod N) …(1) M=D(C)=Cd ( mod N) …(2) 但し、MとCとは0からN−1の間の整数である。もし
元のメッセージがNより大きければ、サイズNのブロッ
クに分割して逐一、暗号化・復号化を適用すればよい。
元のメッセージがNより大きければ、サイズNのブロッ
クに分割して逐一、暗号化・復号化を適用すればよい。
【0009】暗号化と復号化は、1対1かつ上への写像
である。従って、MとCを代表してMで表すと、
である。従って、MとCを代表してMで表すと、
【数2】 D(E(M))=E(D(M))=M …(3) 式(3)が成立する。具体的には、
【数3】 Med≡M ( mod N) …(4) 式(4)が成立する。式(4)がすべてのMに対して成
立するような、暗号鍵e,d,Nの生成手順は以下のと
おりである。
立するような、暗号鍵e,d,Nの生成手順は以下のと
おりである。
【0010】〔RSA暗号の鍵生成〕まず、任意の相異
なる二つの大きな素数p,qを選び、その積N=pqを
計算する(第1段階)。
なる二つの大きな素数p,qを選び、その積N=pqを
計算する(第1段階)。
【0011】次いで、(p−1)と(q−1)の最小公
倍数Lを計算し、Lと互いに素でLより小さな任意の整
数eを選ぶ(第2段階)。
倍数Lを計算し、Lと互いに素でLより小さな任意の整
数eを選ぶ(第2段階)。
【0012】
【数4】 L=LCM(p−1,q−1) …(5) GCD(e,L)=1, 1<e<L …(6) 次いで、第2段階で求めたeとLをもとに、次の合同式
(7)を解き、dを求める(第3段階)。
(7)を解き、dを求める(第3段階)。
【0013】
【数5】 ed≡1 ( mod L) …(7) 式(7)からdを求めるには、ユークリッドの互除法を
用いればよい。また、前記の生成手順は、まず、第2段
階でeを先に選び、第3段階でdを計算しているが、逆
にdを先に選び、後でeを計算してもよい。
用いればよい。また、前記の生成手順は、まず、第2段
階でeを先に選び、第3段階でdを計算しているが、逆
にdを先に選び、後でeを計算してもよい。
【0014】〔RSA暗号による認証〕RSA暗号によ
る認証通信は、以下のようにして行われる。まず、送信
者は、認証文Mをハッシュ関数hによりハッシュ化し、
認証子h(M)を得る。次いで認証子h(M)を自己の
秘密鍵dで暗号化し、暗号化認証子h(C)を得る。次
いで、暗号化認証子h(C)と認証文Mの組を送信者か
ら受信者に送る。
る認証通信は、以下のようにして行われる。まず、送信
者は、認証文Mをハッシュ関数hによりハッシュ化し、
認証子h(M)を得る。次いで認証子h(M)を自己の
秘密鍵dで暗号化し、暗号化認証子h(C)を得る。次
いで、暗号化認証子h(C)と認証文Mの組を送信者か
ら受信者に送る。
【0015】
【数6】 h(C)≡(h(M))d ( mod N) …(8) 受信者は、暗号化認証子h(C)と認証文Mの組を受信
すると、送信者の公開鍵eを使用して、暗号化認証子h
(C)を復号化し認証子h(M)を得る。
すると、送信者の公開鍵eを使用して、暗号化認証子h
(C)を復号化し認証子h(M)を得る。
【0016】
【数7】 h(M)≡(h(C))e ( mod N) …(9) 次いで、受信した認証文Mをハッシュ関数hによりハッ
シュ化し、認証子h(M)°を得る。そして復号化した
認証子h(M)とハッシュ化した認証子h(M)°とを
比較して正当性を判断する。すなわち、両者が一致して
いれば認証文が正当であり、不一致であれば不当と判断
する。
シュ化し、認証子h(M)°を得る。そして復号化した
認証子h(M)とハッシュ化した認証子h(M)°とを
比較して正当性を判断する。すなわち、両者が一致して
いれば認証文が正当であり、不一致であれば不当と判断
する。
【0017】このように、RSA型の公開鍵暗号装置
は、公開鍵と秘密鍵の演算を逆に適用することにより、
認証通信装置としても使用することができる。
は、公開鍵と秘密鍵の演算を逆に適用することにより、
認証通信装置としても使用することができる。
【0018】なお、この認証通信において、前記暗号化
認証子h(C)と認証文Mの組をさらに受信者の公開鍵
を用いて暗号化する暗号化認証通信も、認証通信と暗号
化通信とを組み合わせることによって可能であることは
いうまでもない。
認証子h(C)と認証文Mの組をさらに受信者の公開鍵
を用いて暗号化する暗号化認証通信も、認証通信と暗号
化通信とを組み合わせることによって可能であることは
いうまでもない。
【0019】〔ラビン暗号の基本原理〕ラビン暗号にお
ける暗号化鍵は(b,N)の組であり、復号化鍵は、
(b,p,q)である。但し、bとNは公開鍵であり、
pとqは秘密鍵である(N=pq)。平文をM、暗号文
をCとすると、暗号化Eのアルゴリズムは、
ける暗号化鍵は(b,N)の組であり、復号化鍵は、
(b,p,q)である。但し、bとNは公開鍵であり、
pとqは秘密鍵である(N=pq)。平文をM、暗号文
をCとすると、暗号化Eのアルゴリズムは、
【数8】 C=E(M)=M(M+b)( mod N) …(10) 式(10)で表される。
【0020】復号化Dのアルゴリズムは、
【数9】 M2 +Mb−C≡0 ( mod N) …(11) 式(11)をMについて解くことに対応する。ところ
で、Nは2つの大きな素数pとqの積、すなわち、
で、Nは2つの大きな素数pとqの積、すなわち、
【数10】 N=pq …(12) なので、式(11)は、次の連立合同式と同値である。
【0021】
【数11】 M2 +Mb−C≡0 ( mod p) …(13) M2 +Mb−C≡0 ( mod q) …(14) つまり、ラビン暗号の復号化は、秘密鍵pとqを知って
いる者だけが実行できる。また、ラビン暗号の安全性
は、Nの素因数分解の困難さを根拠としている。
いる者だけが実行できる。また、ラビン暗号の安全性
は、Nの素因数分解の困難さを根拠としている。
【0022】復号化Dは、式(13)と(14)を同時
に満たすMを求めることになり、
に満たすMを求めることになり、
【数12】 M=D(C)=−b/2±√((b/2)2+C) ( mod p) …(15) M=D(C)=−b/2±√((b/2)2+C) ( mod q) …(16) と表すことができる。ここで、式(15)のb/2( m
od p)は、2s≡b(mod p)を満たす整数sを表
す。2とpは互いに素であるので、sは常にただ一つ求
まる。
od p)は、2s≡b(mod p)を満たす整数sを表
す。2とpは互いに素であるので、sは常にただ一つ求
まる。
【0023】また、式(15)の√((b/2)2+C)(
mod p)は、t2≡(b/2)2+C( mod p)を満た
す非負整数tを表す。もしtが存在するとして、pを4
α+3(α:整数)の形の素数とすると、(b/2)2+
Cが mod pに関して平方剰余になり、次の式(17)
でtが容易に求まる。
mod p)は、t2≡(b/2)2+C( mod p)を満た
す非負整数tを表す。もしtが存在するとして、pを4
α+3(α:整数)の形の素数とすると、(b/2)2+
Cが mod pに関して平方剰余になり、次の式(17)
でtが容易に求まる。
【0024】
【数13】 t=((b/2)2+C)α+1 ( mod p) …(17) 式(16)に関しても式(15)と同様に求まる。
【0025】ラビン暗号の暗号化関数Eの定義域は、式
(10)から明らかなように、[0,N−1]の全ての
整数なので、全ての平文を暗号化できる。また、暗号化
関数Eは一価関数なので、ある平文M0 に対する暗号文
C0 は唯一に定まる。ところが、復号化関数Dは多価関
数なので、M0 に対するC0 を復号化しても、もとのM
0 が唯一に定まるとは限らない。
(10)から明らかなように、[0,N−1]の全ての
整数なので、全ての平文を暗号化できる。また、暗号化
関数Eは一価関数なので、ある平文M0 に対する暗号文
C0 は唯一に定まる。ところが、復号化関数Dは多価関
数なので、M0 に対するC0 を復号化しても、もとのM
0 が唯一に定まるとは限らない。
【0026】この対策として、もとの平文M0 の中に意
味のある付属情報(例えば、送信者ID、受信者ID、
日付等)を含めておく。そして、受信者は復元メッセー
ジMi (1≦i≦4)の中から、この付属情報を含んで
いるメッセージを真の平文として決定する。
味のある付属情報(例えば、送信者ID、受信者ID、
日付等)を含めておく。そして、受信者は復元メッセー
ジMi (1≦i≦4)の中から、この付属情報を含んで
いるメッセージを真の平文として決定する。
【0027】〔ラビン暗号の鍵生成〕ラビン暗号の鍵生
成は、上記RSA暗号の鍵生成の第1段階のみと同様で
あり、任意の相異なる二つの大きな素数p,qを選び、
その積N=pqを計算する。また、0≦b<Nなるbを
定める。pとqとを秘密鍵とし、Nとbとを公開鍵とす
る。
成は、上記RSA暗号の鍵生成の第1段階のみと同様で
あり、任意の相異なる二つの大きな素数p,qを選び、
その積N=pqを計算する。また、0≦b<Nなるbを
定める。pとqとを秘密鍵とし、Nとbとを公開鍵とす
る。
【0028】〔ラビン暗号による認証〕ラビン暗号の復
号化関数Dは、[0,N−1]の範囲の一部の整数を定
義域にもつ。すなわち、ラビン暗号では、任意の平文M
(0≦M≦N−1)に対して、必ずしも認証通信ができ
るとは限らない。認証通信が可能となる条件は、式(1
5)、(16)の演算が定義できることであり、具体的
には、(b/2)2+Mが mod pと mod qに関して平
方剰余となることである。
号化関数Dは、[0,N−1]の範囲の一部の整数を定
義域にもつ。すなわち、ラビン暗号では、任意の平文M
(0≦M≦N−1)に対して、必ずしも認証通信ができ
るとは限らない。認証通信が可能となる条件は、式(1
5)、(16)の演算が定義できることであり、具体的
には、(b/2)2+Mが mod pと mod qに関して平
方剰余となることである。
【0029】これを、平方剰余記号(ルジャンドルの記
号とも呼ばれる)を用いて示せば、
号とも呼ばれる)を用いて示せば、
【数14】 (((b/2)2+M)/p)2 ≡1 …(18) (((b/2)2+M)/q)2 ≡1 …(19) が成立することである。
【0030】認証通信可能なある平文M0 に署名変換D
を施すと、それぞれほぼ1/4の確率で4通りの署名文
S1,S2,S3,S4 が得られる。これらのうちのいずれの
署名文に復元処理を施しても、もとの平文M0 が復元で
きるので、いずれか1種類の署名文のみを通信すればよ
い。
を施すと、それぞれほぼ1/4の確率で4通りの署名文
S1,S2,S3,S4 が得られる。これらのうちのいずれの
署名文に復元処理を施しても、もとの平文M0 が復元で
きるので、いずれか1種類の署名文のみを通信すればよ
い。
【0031】次に、任意の平文M(0≦M≦N−1)に
対してディジタル署名を可能とするための対策を説明す
る。そのためには、まず平文Mにある種の変換fj を施
す必要がある。すなわち、
対してディジタル署名を可能とするための対策を説明す
る。そのためには、まず平文Mにある種の変換fj を施
す必要がある。すなわち、
【数15】 Mj =fj(M) j=0,1,2,… …(20) とする。但し、f0 は無変換とする。fj の具体的な関
数としては、例えば、
数としては、例えば、
【数16】 fj(M)= M+j …(21) でもよい。対策の手順は以下の通りである。
【0032】まず、送信者は、j=0として、Mj が式
(18)と(19)とを満たすか否かをチェックする。
もし満たさなければj=j+1として、再度Mjが条件
を満たすか否かをチェックする。この試行は、式(2
2)に示すように、
(18)と(19)とを満たすか否かをチェックする。
もし満たさなければj=j+1として、再度Mjが条件
を満たすか否かをチェックする。この試行は、式(2
2)に示すように、
【数17】 平均4回のチェックで条件を満たす変換が求まり、それ
をfj*とし、変換後の平文をMj*とする。
をfj*とし、変換後の平文をMj*とする。
【0033】次いで、送信者は署名文S(=D(Mj
*))に、fj*を付加して受信者に送信する。受信者は
Sから公開鍵を用いてMj*を復元し、更に、Mj*にfj*
の逆関数fj*-1を施してMを得る。もしMが意味のある
情報ならば、送信者の身元が認証できる。
*))に、fj*を付加して受信者に送信する。受信者は
Sから公開鍵を用いてMj*を復元し、更に、Mj*にfj*
の逆関数fj*-1を施してMを得る。もしMが意味のある
情報ならば、送信者の身元が認証できる。
【0034】なお、ラビン型暗号による認証通信におい
ても、RSA型と同様に、認証文をハッシュ化した認証
子h(M)を自己の秘密鍵で暗号化した暗号化認証子h
(C)と認証文Mの組を送信者から受信者に送り、受信
者は復号化した認証子h(M)と平文Mをハッシュ化し
た認証子h(M)°とを比較して正当性を判断してもよ
い。
ても、RSA型と同様に、認証文をハッシュ化した認証
子h(M)を自己の秘密鍵で暗号化した暗号化認証子h
(C)と認証文Mの組を送信者から受信者に送り、受信
者は復号化した認証子h(M)と平文Mをハッシュ化し
た認証子h(M)°とを比較して正当性を判断してもよ
い。
【0035】このように、ラビン型の公開鍵暗号装置
は、公開鍵と秘密鍵の演算を逆に適用することにより、
認証通信装置としても使用することができる。
は、公開鍵と秘密鍵の演算を逆に適用することにより、
認証通信装置としても使用することができる。
【0036】ところで、一般に暗号技術の性能評価の尺
度は、暗号を解読しようとする攻撃に対する安全性の強
度と、暗号化・復号化の速度である。強度が高く、速度
の速い暗号が優秀な暗号である。
度は、暗号を解読しようとする攻撃に対する安全性の強
度と、暗号化・復号化の速度である。強度が高く、速度
の速い暗号が優秀な暗号である。
【0037】RSA暗号、ラビン暗号などの公開鍵暗号
は、暗号化鍵である公開された公開鍵から、復号化鍵で
ある秘密鍵を得ることが計算量的に困難であることに安
全性の根拠を置いている。
は、暗号化鍵である公開された公開鍵から、復号化鍵で
ある秘密鍵を得ることが計算量的に困難であることに安
全性の根拠を置いている。
【0038】RSA暗号では、公開鍵が素因数分解でき
れば、暗号文から平文を得ることができることが、文献
2:「R.L.Rivest, A.Shamir and L.Adleman; “A meth
od for obtaining digital signatures and public-key
cryptosystems.”,Comm.,ACM, vol.21, No.2, pp.12
0-126, (1978) 」に示されている。
れば、暗号文から平文を得ることができることが、文献
2:「R.L.Rivest, A.Shamir and L.Adleman; “A meth
od for obtaining digital signatures and public-key
cryptosystems.”,Comm.,ACM, vol.21, No.2, pp.12
0-126, (1978) 」に示されている。
【0039】このように、RSA暗号などの公開鍵暗号
は、公開情報である公開鍵から秘密鍵を得ることが計算
量的に困難であることに安全性の根拠を置いている。公
開鍵のサイズを大きく取ればそれだけ、安全性が増す。
は、公開情報である公開鍵から秘密鍵を得ることが計算
量的に困難であることに安全性の根拠を置いている。公
開鍵のサイズを大きく取ればそれだけ、安全性が増す。
【0040】また、このRSA暗号は高次の冪乗計算を
行うため、計算量が多く暗号化・復号化に時間がかかる
ことが大きな欠点であった。
行うため、計算量が多く暗号化・復号化に時間がかかる
ことが大きな欠点であった。
【0041】冪乗計算の計算量を減らすことにより、暗
号化・復号化を高速にできるが、それには、公開鍵のサ
イズを小さくするしかなく、暗号強度の低下につながる
ことになる。
号化・復号化を高速にできるが、それには、公開鍵のサ
イズを小さくするしかなく、暗号強度の低下につながる
ことになる。
【0042】たとえば、公開鍵eである暗号のべき指数
が小さい場合、文献3:「J.Hastad,“Solving simulta
neouus modular equations of low degree",SIMA Jour
malof Computing, 17,(1988), pp.336-341.」、文献4:
「D.Coppersmith, M.Franklin, J.Patarin and M.Reit
er,“Low-exponent RSA with related messages",Adva
nces in Cryptology - EUROCRYPT '96, LNCS 1070,(199
6), pp.1-9.」、文献5:「D.Coppersmith,“Finding a
small root of a univariate modular equation",Advan
ces in Cryptology- EUROCRYPT '96, LNCS 1070, (199
6), pp.155-165.」に示されていたように、RSA暗号
は簡単に解読されるという欠点が報告された。このこと
は、実用面では、同じ平文を複数の通信相手に送る場合
(同報通信)、2個の平文に多項式関係がある場合、平
文のビット数が小さい場合などにあたる。
が小さい場合、文献3:「J.Hastad,“Solving simulta
neouus modular equations of low degree",SIMA Jour
malof Computing, 17,(1988), pp.336-341.」、文献4:
「D.Coppersmith, M.Franklin, J.Patarin and M.Reit
er,“Low-exponent RSA with related messages",Adva
nces in Cryptology - EUROCRYPT '96, LNCS 1070,(199
6), pp.1-9.」、文献5:「D.Coppersmith,“Finding a
small root of a univariate modular equation",Advan
ces in Cryptology- EUROCRYPT '96, LNCS 1070, (199
6), pp.155-165.」に示されていたように、RSA暗号
は簡単に解読されるという欠点が報告された。このこと
は、実用面では、同じ平文を複数の通信相手に送る場合
(同報通信)、2個の平文に多項式関係がある場合、平
文のビット数が小さい場合などにあたる。
【0043】ラビン暗号では、暗号文のみから元の平文
を求めることが、公開鍵を素因数分解できることと計算
量的に同値であることが、文献6:「M.O.Rabin;“Digi
talSignaturesand Public-Key Encryptions as Intract
able as Factorization",MIT,Technical Report,MIT/LC
S/TR-212(1979)」に示されている。
を求めることが、公開鍵を素因数分解できることと計算
量的に同値であることが、文献6:「M.O.Rabin;“Digi
talSignaturesand Public-Key Encryptions as Intract
able as Factorization",MIT,Technical Report,MIT/LC
S/TR-212(1979)」に示されている。
【0044】また、ラビン暗号を2次元に拡張した暗号
が、文献7:「小林、田村、根本;“2次元の変形ラビ
ン暗号”、電子情報通信学会論文誌、J72-A,5,(1989)」
や文献8:「K.Koyama; “Security and Unique Deciph
erability of Twodimensional Public Key Cryptosyste
ms”,IEICE Transcations,v.E73,n.7,pp.1057-1067,(19
90) 」などに示されている。
が、文献7:「小林、田村、根本;“2次元の変形ラビ
ン暗号”、電子情報通信学会論文誌、J72-A,5,(1989)」
や文献8:「K.Koyama; “Security and Unique Deciph
erability of Twodimensional Public Key Cryptosyste
ms”,IEICE Transcations,v.E73,n.7,pp.1057-1067,(19
90) 」などに示されている。
【0045】ラビン暗号の特徴は、暗号化が高速である
点にある。ただし、ラビン暗号も従来の公開鍵暗号は、
公開鍵を超えるデータ長の平文を暗号通信する場合、公
開鍵の長さのブロック毎(2次元の場合は公開鍵の2
倍)に個別に暗号化する必要があった。つまり、公開鍵
の長さが暗号通信の単位になっていた。
点にある。ただし、ラビン暗号も従来の公開鍵暗号は、
公開鍵を超えるデータ長の平文を暗号通信する場合、公
開鍵の長さのブロック毎(2次元の場合は公開鍵の2
倍)に個別に暗号化する必要があった。つまり、公開鍵
の長さが暗号通信の単位になっていた。
【0046】また、ラビン暗号は部分解読に対して大変
に弱いという欠点があった。例えば、前記文献3、文献
4、および文献5に示されていたように、同報通信の場
合、2個の平文に多項式関係がある場合、平文のビット
数が小さい場合など、簡単に解読可能であるという欠点
がある。
に弱いという欠点があった。例えば、前記文献3、文献
4、および文献5に示されていたように、同報通信の場
合、2個の平文に多項式関係がある場合、平文のビット
数が小さい場合など、簡単に解読可能であるという欠点
がある。
【0047】
【発明が解決しようとする課題】このように従来の公開
鍵暗号は、安全性を高めようとすれば、鍵のサイズを大
きくする必要があり、鍵を大きくすると、暗号化及び復
号化の速度が低下するという、安全性と速度とが両立し
ないという問題点があった。
鍵暗号は、安全性を高めようとすれば、鍵のサイズを大
きくする必要があり、鍵を大きくすると、暗号化及び復
号化の速度が低下するという、安全性と速度とが両立し
ないという問題点があった。
【0048】以上の問題点に鑑み、本発明の課題は、従
来のRSA暗号やラビン暗号と比較して、同程度の強度
を持ちながら、復号化速度を大幅に向上させた暗号通信
方法および同方法を実現する装置を提供することであ
る。
来のRSA暗号やラビン暗号と比較して、同程度の強度
を持ちながら、復号化速度を大幅に向上させた暗号通信
方法および同方法を実現する装置を提供することであ
る。
【0049】また、本発明の別の課題は、認証装置とし
ても利用可能であり、ひとつの装置で暗号化通信と認証
の両用が可能となるような暗号化通信方法および認証方
法およびこれらを実現する装置を提供することである。
ても利用可能であり、ひとつの装置で暗号化通信と認証
の両用が可能となるような暗号化通信方法および認証方
法およびこれらを実現する装置を提供することである。
【0050】さらに、本発明の別の課題は、同報通信の
場合、2個の平文に多項式関係がある場合、平文のビッ
ト数が小さい場合などに、暗号強度が著しく低下すると
いう従来のRSA暗号およびラビン暗号の欠陥を克服し
た暗号通信方法および同方法を実現する装置を提供する
ことである。
場合、2個の平文に多項式関係がある場合、平文のビッ
ト数が小さい場合などに、暗号強度が著しく低下すると
いう従来のRSA暗号およびラビン暗号の欠陥を克服し
た暗号通信方法および同方法を実現する装置を提供する
ことである。
【0051】
【課題を解決するための手段】上記課題を解決するた
め、本発明は次の構成を有する。すなわち、請求項1記
載の発明は、暗号化の対象である平文データと、それぞ
れpとqとを値とする2つの素数データで構成される第
1の秘密鍵データと、dを値とする第2の秘密鍵データ
と、pとqとの積Nを値とする第1の公開鍵データと、
eを値とする第2の公開鍵データと、2以上の整数であ
るkを値とするブロック数データと、を用いる公開鍵型
のN進表現暗号による通信方法であって、前記Nを基数
とするN進位取り記数法により前記平文データをk桁の
N進数データとして表現する第1の過程と、前記k桁の
N進数データに対して、第1及び第2の公開鍵データを
使用する演算により、前記平文データを暗号化した暗号
文データを得る第2の過程と、第1の公開鍵データ及び
第2の秘密鍵データを用いて、前記暗号文データから前
記N進数の最下位桁の値を復号化する第3の過程と、前
記復号化された最下位桁の値を用いて、前記N進数の上
位の桁の値を順次復号化する第4の過程と、前記復号化
されたN進数の各桁の値を用いて前記平文データを復元
する第5の過程と、を備えたことを要旨とするN進表現
暗号による通信方法である。
め、本発明は次の構成を有する。すなわち、請求項1記
載の発明は、暗号化の対象である平文データと、それぞ
れpとqとを値とする2つの素数データで構成される第
1の秘密鍵データと、dを値とする第2の秘密鍵データ
と、pとqとの積Nを値とする第1の公開鍵データと、
eを値とする第2の公開鍵データと、2以上の整数であ
るkを値とするブロック数データと、を用いる公開鍵型
のN進表現暗号による通信方法であって、前記Nを基数
とするN進位取り記数法により前記平文データをk桁の
N進数データとして表現する第1の過程と、前記k桁の
N進数データに対して、第1及び第2の公開鍵データを
使用する演算により、前記平文データを暗号化した暗号
文データを得る第2の過程と、第1の公開鍵データ及び
第2の秘密鍵データを用いて、前記暗号文データから前
記N進数の最下位桁の値を復号化する第3の過程と、前
記復号化された最下位桁の値を用いて、前記N進数の上
位の桁の値を順次復号化する第4の過程と、前記復号化
されたN進数の各桁の値を用いて前記平文データを復元
する第5の過程と、を備えたことを要旨とするN進表現
暗号による通信方法である。
【0052】また、請求項2記載の発明は、請求項1に
記載のN進表現暗号による通信方法において、前記第1
の過程は、前記平文データの先頭に予め第1の公開鍵デ
ータNのビット長程度の乱数を連接して連接データを作
成し、以下この連接データを平文データとして、前記N
を基数とするN進位取り記数法によりk桁のN進数デー
タとして表現する過程であることを要旨とする。
記載のN進表現暗号による通信方法において、前記第1
の過程は、前記平文データの先頭に予め第1の公開鍵デ
ータNのビット長程度の乱数を連接して連接データを作
成し、以下この連接データを平文データとして、前記N
を基数とするN進位取り記数法によりk桁のN進数デー
タとして表現する過程であることを要旨とする。
【0053】また、請求項3記載の発明は、暗号化の対
象である平文データと、それぞれpとqとを値とする2
つの素数データの積Nを値とする第1の公開鍵データ
と、eを値とする第2の公開鍵データと、2以上の整数
であるkを値とするブロック数データと、を用いて、前
記平文データに該当する暗号文データを生成する公開鍵
型のN進表現暗号による暗号化方法であって、各ブロッ
クがNの剰余類の範囲に収まるように、前記平文データ
を複数のブロックに分割するとともに、分割されたブロ
ックの数kを計数する第1の過程と、前記分割された各
ブロックのデータを、それぞれN進数の形態で表現する
第2の過程と、前記平文データの全体が、k桁のN進数
として位取りされるように各ブロックのデータを順次結
合する第3の過程と、Nのk乗を法として、前記結合さ
れたデータをe乗した値である暗号文データを計算する
第4の過程と、を備えたことを要旨とするN進表現暗号
による暗号化方法である。
象である平文データと、それぞれpとqとを値とする2
つの素数データの積Nを値とする第1の公開鍵データ
と、eを値とする第2の公開鍵データと、2以上の整数
であるkを値とするブロック数データと、を用いて、前
記平文データに該当する暗号文データを生成する公開鍵
型のN進表現暗号による暗号化方法であって、各ブロッ
クがNの剰余類の範囲に収まるように、前記平文データ
を複数のブロックに分割するとともに、分割されたブロ
ックの数kを計数する第1の過程と、前記分割された各
ブロックのデータを、それぞれN進数の形態で表現する
第2の過程と、前記平文データの全体が、k桁のN進数
として位取りされるように各ブロックのデータを順次結
合する第3の過程と、Nのk乗を法として、前記結合さ
れたデータをe乗した値である暗号文データを計算する
第4の過程と、を備えたことを要旨とするN進表現暗号
による暗号化方法である。
【0054】また、請求項4記載の発明は、暗号化の対
象である平文データと、それぞれpとqとを値とする2
つの素数データの積Nを値とする第1の公開鍵データ
と、eを値とする第2の公開鍵データと、2以上の整数
であるkを値とするブロック数データと、を用いて、前
記平文データに該当する暗号文データを生成する公開鍵
型のN進表現暗号による暗号化プログラムを格納した記
憶媒体であって、各ブロックがNの剰余類の範囲に収ま
るように、前記平文データを複数のブロックに分割する
とともに、分割されたブロックの数kを計数し、前記分
割された各ブロックのデータを、それぞれN進数の形態
で表現し、前記平文データの全体が、k桁のN進数とし
て位取りされるように各ブロックのデータを順次結合
し、Nのk乗を法として、前記結合されたデータをe乗
した値である暗号文データを計算すること、を要旨とす
るN進表現暗号による暗号化プログラムを格納した記憶
媒体である。
象である平文データと、それぞれpとqとを値とする2
つの素数データの積Nを値とする第1の公開鍵データ
と、eを値とする第2の公開鍵データと、2以上の整数
であるkを値とするブロック数データと、を用いて、前
記平文データに該当する暗号文データを生成する公開鍵
型のN進表現暗号による暗号化プログラムを格納した記
憶媒体であって、各ブロックがNの剰余類の範囲に収ま
るように、前記平文データを複数のブロックに分割する
とともに、分割されたブロックの数kを計数し、前記分
割された各ブロックのデータを、それぞれN進数の形態
で表現し、前記平文データの全体が、k桁のN進数とし
て位取りされるように各ブロックのデータを順次結合
し、Nのk乗を法として、前記結合されたデータをe乗
した値である暗号文データを計算すること、を要旨とす
るN進表現暗号による暗号化プログラムを格納した記憶
媒体である。
【0055】また、請求項5記載の発明は、暗号化の対
象である平文データと、それぞれpとqとを値とする2
つの素数データの積Nを値とする第1の公開鍵データ
と、eを値とする第2の公開鍵データと、2以上の整数
であるkを値とするブロック数データと、を用いて、前
記平文データに該当する暗号文データを生成する公開鍵
型のN進表現暗号による暗号化装置であって、各ブロッ
クがNの剰余類の範囲に収まるように、前記平文データ
を複数のブロックに分割するとともに、分割されたブロ
ックの数kを計数する平文分割手段と、前記平文分割手
段が分割した各ブロックのデータを順次格納する記憶手
段と、前記記憶された各ブロックのデータが1つのN進
数の各桁の値を示すように、各ブロックのデータを順次
結合した結合データを生成するデータ結合手段と、Nの
k乗を法として、前記結合データをe乗した値である暗
号文データを生成する暗号化手段と、を備えたことを要
旨とするN進表現暗号による暗号化装置である。
象である平文データと、それぞれpとqとを値とする2
つの素数データの積Nを値とする第1の公開鍵データ
と、eを値とする第2の公開鍵データと、2以上の整数
であるkを値とするブロック数データと、を用いて、前
記平文データに該当する暗号文データを生成する公開鍵
型のN進表現暗号による暗号化装置であって、各ブロッ
クがNの剰余類の範囲に収まるように、前記平文データ
を複数のブロックに分割するとともに、分割されたブロ
ックの数kを計数する平文分割手段と、前記平文分割手
段が分割した各ブロックのデータを順次格納する記憶手
段と、前記記憶された各ブロックのデータが1つのN進
数の各桁の値を示すように、各ブロックのデータを順次
結合した結合データを生成するデータ結合手段と、Nの
k乗を法として、前記結合データをe乗した値である暗
号文データを生成する暗号化手段と、を備えたことを要
旨とするN進表現暗号による暗号化装置である。
【0056】また、請求項6記載の発明は、平文データ
からN進表現暗号により暗号化された暗号文データと、
それぞれpとqとを値とする2つの素数データの積Nを
値とする第1の公開鍵データと、eを値とする第2の公
開鍵データと、dを値とする第2の秘密鍵データと、2
以上の整数であるkを値とするブロック数データと、を
用いて、前記暗号文データに該当する平文データを復元
する公開鍵型のN進表現暗号の復号化方法であって、N
を法として前記暗号文データの値をd乗することによっ
て、前記平文データをN進位取り記数法で表現したとき
の最下位桁の値M0 を求める第1の過程と、このM0 に
基づいて、1次合同式を用いて、自然数の中から、その
値をe乗した値に対して、Nのk乗を法とする剰余が前
記暗号文データの値に等しくなるような自然数を、M0
を最下位桁とし桁数がkであるN進数表現の形で求める
第2の過程(以下、この過程を上位桁復号化過程と称す
る)と、これらのN進数の各桁の数値を順次連結するこ
とによって平文データを生成する第3の過程と、を備え
たことを要旨とするN進表現暗号の復号化方法である。
からN進表現暗号により暗号化された暗号文データと、
それぞれpとqとを値とする2つの素数データの積Nを
値とする第1の公開鍵データと、eを値とする第2の公
開鍵データと、dを値とする第2の秘密鍵データと、2
以上の整数であるkを値とするブロック数データと、を
用いて、前記暗号文データに該当する平文データを復元
する公開鍵型のN進表現暗号の復号化方法であって、N
を法として前記暗号文データの値をd乗することによっ
て、前記平文データをN進位取り記数法で表現したとき
の最下位桁の値M0 を求める第1の過程と、このM0 に
基づいて、1次合同式を用いて、自然数の中から、その
値をe乗した値に対して、Nのk乗を法とする剰余が前
記暗号文データの値に等しくなるような自然数を、M0
を最下位桁とし桁数がkであるN進数表現の形で求める
第2の過程(以下、この過程を上位桁復号化過程と称す
る)と、これらのN進数の各桁の数値を順次連結するこ
とによって平文データを生成する第3の過程と、を備え
たことを要旨とするN進表現暗号の復号化方法である。
【0057】また、請求項7記載の発明は、請求項6に
記載のN進表現暗号の復号化方法において、前記上位桁
復号化過程は、前記M0 を最下位桁の値とし桁数がkで
あるN進数として複数の平文ブロックを表現したもの全
体をe乗した形である暗号文を、前記e乗を展開して得
られるNに関するk−1次の多項式に対応させ、該k−
1次の多項式のそれぞれの係数値を、前記複数の平文ブ
ロックを変数とする多項式関数とみなして、前記暗号文
データ及び前記N進数の既に求められた下位の桁の値に
基づいて、低次の係数から高次の係数へ昇順に順次求め
る係数値計算過程と、これらの係数値を使って、Nを法
とする1次合同式を解くことにより、前記N進数におけ
る上位の桁の値を順次確定していく上位桁計算過程と、
を備えたことを要旨とする。
記載のN進表現暗号の復号化方法において、前記上位桁
復号化過程は、前記M0 を最下位桁の値とし桁数がkで
あるN進数として複数の平文ブロックを表現したもの全
体をe乗した形である暗号文を、前記e乗を展開して得
られるNに関するk−1次の多項式に対応させ、該k−
1次の多項式のそれぞれの係数値を、前記複数の平文ブ
ロックを変数とする多項式関数とみなして、前記暗号文
データ及び前記N進数の既に求められた下位の桁の値に
基づいて、低次の係数から高次の係数へ昇順に順次求め
る係数値計算過程と、これらの係数値を使って、Nを法
とする1次合同式を解くことにより、前記N進数におけ
る上位の桁の値を順次確定していく上位桁計算過程と、
を備えたことを要旨とする。
【0058】また、請求項8記載の発明は、請求項7に
記載のN進表現暗号の復号化方法において、前記係数値
計算過程は、求められた係数の値を係数テーブルに順次
記憶するとともに、該係数テーブルに記憶された低次の
係数の値を参照することを含むことを要旨とする。
記載のN進表現暗号の復号化方法において、前記係数値
計算過程は、求められた係数の値を係数テーブルに順次
記憶するとともに、該係数テーブルに記憶された低次の
係数の値を参照することを含むことを要旨とする。
【0059】また、請求項9記載の発明は、請求項7に
記載のN進表現暗号の復号化方法において、前記k桁の
N進数の各桁の値をMi (0≦i≦k−1)とすると
き、前記上位桁復号化過程は、前記最下位桁の値M0
と、第1の公開鍵データNと、第2の公開鍵データe
と、暗号文データCと、ブロック数データkとを入力と
して、M0 ,M1 ,…,Mi-1 に基づいてMi を求める
同一の写像もしくは同一の計算式により、再帰的にM1
からMk-1 までを順次復号化することを要旨とする。
記載のN進表現暗号の復号化方法において、前記k桁の
N進数の各桁の値をMi (0≦i≦k−1)とすると
き、前記上位桁復号化過程は、前記最下位桁の値M0
と、第1の公開鍵データNと、第2の公開鍵データe
と、暗号文データCと、ブロック数データkとを入力と
して、M0 ,M1 ,…,Mi-1 に基づいてMi を求める
同一の写像もしくは同一の計算式により、再帰的にM1
からMk-1 までを順次復号化することを要旨とする。
【0060】また、請求項10記載の発明は、平文デー
タからN進表現暗号により暗号化された暗号文データ
と、それぞれpとqとを値とする2つの素数データの積
Nを値とする第1の公開鍵データと、eを値とする第2
の公開鍵データと、dを値とする第2の秘密鍵データ
と、2以上の整数であるkを値とするブロック数データ
と、を用いて、前記暗号文データに該当する平文データ
を復元する公開鍵型のN進表現暗号の復号化プログラム
を格納した記憶媒体であって、Nを法として前記暗号文
データの値をd乗することによって、前記平文データを
N進位取り記数法で表現したときの最下位桁の値M0 を
求め、このM0 に基づいて、1次合同式を用いて、自然
数の中から、その値をe乗した値に対して、Nのk乗を
法とする剰余が前記暗号文データの値に等しくなるよう
な自然数を、M0 を最下位桁とし桁数がkであるN進数
表現の形で求め、これらのN進数の各桁の数値を順次連
結することによって平文データを生成する、ことを要旨
とするN進表現暗号の復号化プログラムを格納した記憶
媒体である。
タからN進表現暗号により暗号化された暗号文データ
と、それぞれpとqとを値とする2つの素数データの積
Nを値とする第1の公開鍵データと、eを値とする第2
の公開鍵データと、dを値とする第2の秘密鍵データ
と、2以上の整数であるkを値とするブロック数データ
と、を用いて、前記暗号文データに該当する平文データ
を復元する公開鍵型のN進表現暗号の復号化プログラム
を格納した記憶媒体であって、Nを法として前記暗号文
データの値をd乗することによって、前記平文データを
N進位取り記数法で表現したときの最下位桁の値M0 を
求め、このM0 に基づいて、1次合同式を用いて、自然
数の中から、その値をe乗した値に対して、Nのk乗を
法とする剰余が前記暗号文データの値に等しくなるよう
な自然数を、M0 を最下位桁とし桁数がkであるN進数
表現の形で求め、これらのN進数の各桁の数値を順次連
結することによって平文データを生成する、ことを要旨
とするN進表現暗号の復号化プログラムを格納した記憶
媒体である。
【0061】また、請求項11記載の発明は、平文デー
タからN進表現暗号により暗号化された暗号文データ
と、それぞれpとqとを値とする2つの素数データの積
Nを値とする第1の公開鍵データと、eを値とする第2
の公開鍵データと、dを値とする第2の秘密鍵データ
と、2以上の整数であるkを値とするブロック数データ
と、を用いて、前記暗号文データに該当する平文データ
を復元するN進表現暗号の復号化装置であって、Nを法
として、前記暗号文データをd乗した値の剰余を求める
ことにより、前記平文データをN進位取り記数法で表現
したときの最下位桁の値M0 を得る最下位桁復号化手段
と、このM0 に基づいて、自然数の中から、Nのk乗を
法として、その値をe乗した値が前記暗号文データの値
に等しくなるような自然数を、M0 を最下位桁とし桁数
がkであるN進数表現の形で求める上位桁復号化手段
と、前記N進数の各桁の数値を順次連結することによっ
て平文データを生成するデータ連結手段と、を備えてな
り、前記上位桁復号化手段は、前記M0 を最下位桁の値
とし桁数がkであるN進数として複数の平文ブロックを
表現したもの全体をe乗した形である暗号文を、前記e
乗を展開して得られるNに関するk−1次の多項式に対
応させ、該k−1次の多項式のそれぞれの係数値を、前
記複数の平文ブロックを変数とする多項式関数とみなし
て、前記暗号文データ及び前記N進数の既に求められた
下位の桁の値に基づいて、低次の係数から高次の係数へ
昇順に順次求める係数値計算手段と、この係数計算手段
により求められた係数値を使って、Nを法とする1次合
同式を解くことにより、前記N進数における上位の桁の
値を順次確定していく上位桁計算手段と、を備えたこと
を要旨とするN進表現暗号の復号化装置である。
タからN進表現暗号により暗号化された暗号文データ
と、それぞれpとqとを値とする2つの素数データの積
Nを値とする第1の公開鍵データと、eを値とする第2
の公開鍵データと、dを値とする第2の秘密鍵データ
と、2以上の整数であるkを値とするブロック数データ
と、を用いて、前記暗号文データに該当する平文データ
を復元するN進表現暗号の復号化装置であって、Nを法
として、前記暗号文データをd乗した値の剰余を求める
ことにより、前記平文データをN進位取り記数法で表現
したときの最下位桁の値M0 を得る最下位桁復号化手段
と、このM0 に基づいて、自然数の中から、Nのk乗を
法として、その値をe乗した値が前記暗号文データの値
に等しくなるような自然数を、M0 を最下位桁とし桁数
がkであるN進数表現の形で求める上位桁復号化手段
と、前記N進数の各桁の数値を順次連結することによっ
て平文データを生成するデータ連結手段と、を備えてな
り、前記上位桁復号化手段は、前記M0 を最下位桁の値
とし桁数がkであるN進数として複数の平文ブロックを
表現したもの全体をe乗した形である暗号文を、前記e
乗を展開して得られるNに関するk−1次の多項式に対
応させ、該k−1次の多項式のそれぞれの係数値を、前
記複数の平文ブロックを変数とする多項式関数とみなし
て、前記暗号文データ及び前記N進数の既に求められた
下位の桁の値に基づいて、低次の係数から高次の係数へ
昇順に順次求める係数値計算手段と、この係数計算手段
により求められた係数値を使って、Nを法とする1次合
同式を解くことにより、前記N進数における上位の桁の
値を順次確定していく上位桁計算手段と、を備えたこと
を要旨とするN進表現暗号の復号化装置である。
【0062】また、請求項12記載の発明は、請求項1
1に記載のN進表現暗号の復号化装置において、前記係
数計算手段は、既に求められた低次の係数の値を順次記
憶した係数テーブル記憶手段と、この係数テーブル記憶
手段から求めるべき係数より低次の係数値を読み出す読
出し手段と、を備えたことを要旨とする。
1に記載のN進表現暗号の復号化装置において、前記係
数計算手段は、既に求められた低次の係数の値を順次記
憶した係数テーブル記憶手段と、この係数テーブル記憶
手段から求めるべき係数より低次の係数値を読み出す読
出し手段と、を備えたことを要旨とする。
【0063】また、請求項13記載の発明は、平文デー
タMからN進表現暗号により暗号化された暗号文データ
Cと、それぞれpとqとを値とする2つの素数データの
積Nを値とする第1の公開鍵データと、eを値とする第
2の公開鍵データと、dを値とする第2の秘密鍵データ
と、2以上の整数であるkを値とするブロック数データ
と、を用いて、前記暗号文データCに該当する平文デー
タMを復元するN進表現暗号の復号化装置であって、N
を法として、前記暗号文データをd乗した値の剰余を求
めることにより、前記平文データをN進位取り記数法で
表現したときの最下位桁の値M0 を得る最下位桁復号化
手段と、前記最下位桁の値M0 と、第1の公開鍵データ
Nと、第2の公開鍵データeと、暗号文データCと、ブ
ロック数データkとを入力として、M0 ,M1 ,…,M
i-1 に基づいてMi (1≦i≦k−1)を求める同一の
写像もしくは同一の計算式により、再帰的に前記N進数
表現の上位桁であるM1 からMk-1 までを順次復号化す
る上位桁復号化手段と、前記N進数の各桁の数値を順次
連結することによって平文データを生成するデータ連結
手段と、を備えたことを要旨とするN進表現暗号の復号
化装置である。
タMからN進表現暗号により暗号化された暗号文データ
Cと、それぞれpとqとを値とする2つの素数データの
積Nを値とする第1の公開鍵データと、eを値とする第
2の公開鍵データと、dを値とする第2の秘密鍵データ
と、2以上の整数であるkを値とするブロック数データ
と、を用いて、前記暗号文データCに該当する平文デー
タMを復元するN進表現暗号の復号化装置であって、N
を法として、前記暗号文データをd乗した値の剰余を求
めることにより、前記平文データをN進位取り記数法で
表現したときの最下位桁の値M0 を得る最下位桁復号化
手段と、前記最下位桁の値M0 と、第1の公開鍵データ
Nと、第2の公開鍵データeと、暗号文データCと、ブ
ロック数データkとを入力として、M0 ,M1 ,…,M
i-1 に基づいてMi (1≦i≦k−1)を求める同一の
写像もしくは同一の計算式により、再帰的に前記N進数
表現の上位桁であるM1 からMk-1 までを順次復号化す
る上位桁復号化手段と、前記N進数の各桁の数値を順次
連結することによって平文データを生成するデータ連結
手段と、を備えたことを要旨とするN進表現暗号の復号
化装置である。
【0064】また、請求項14記載の発明は、認証対象
である認証文データMと、それぞれpとqとを値とする
2つの素数データで構成される第1の秘密鍵データと、
dを値とする第2の秘密鍵データと、pとqとの積Nを
値とする第1の公開鍵データと、eを値とする第2の公
開鍵データと、2以上の整数であるkを値とするブロッ
ク数データと、を用いる公開鍵型のN進表現暗号による
認証方法であって、前記認証文データに基づいて認証子
データh(M)を生成する第1の過程と、第1の公開鍵デ
ータ及び第2の秘密鍵データを用いる演算により、前記
認証子データh(M)からN進数表現された暗号化認証子
データh(C)の最下位桁の値h(C)0 を生成する第2の
過程と、前記生成された最下位桁の値h(C)0 を用い
て、前記N進数表現された暗号化認証子データの上位の
桁の値を順次生成する第3の過程と、前記生成されたN
進数の各桁の値を示すブロックを順次連結して暗号化認
証子データh(C)を生成する第4の過程と、前記暗号化
認証子データh(C)と前記N進数の桁数kと認証文デー
タMとを認証相手に送信する第5の過程と、前記暗号化
認証子データ全体を1つのk桁のN進数として、これに
対して、第1及び第2の公開鍵データを使用する演算に
より、前記暗号化認証子データh(C)から復号化された
認証子データh(M)を得る第6の過程と、前記復号化さ
れた認証子データh(M)と前記認証文データMとを用い
て認証を行う第7の過程と、を備えたこと要旨とするN
進表現暗号による認証方法である。
である認証文データMと、それぞれpとqとを値とする
2つの素数データで構成される第1の秘密鍵データと、
dを値とする第2の秘密鍵データと、pとqとの積Nを
値とする第1の公開鍵データと、eを値とする第2の公
開鍵データと、2以上の整数であるkを値とするブロッ
ク数データと、を用いる公開鍵型のN進表現暗号による
認証方法であって、前記認証文データに基づいて認証子
データh(M)を生成する第1の過程と、第1の公開鍵デ
ータ及び第2の秘密鍵データを用いる演算により、前記
認証子データh(M)からN進数表現された暗号化認証子
データh(C)の最下位桁の値h(C)0 を生成する第2の
過程と、前記生成された最下位桁の値h(C)0 を用い
て、前記N進数表現された暗号化認証子データの上位の
桁の値を順次生成する第3の過程と、前記生成されたN
進数の各桁の値を示すブロックを順次連結して暗号化認
証子データh(C)を生成する第4の過程と、前記暗号化
認証子データh(C)と前記N進数の桁数kと認証文デー
タMとを認証相手に送信する第5の過程と、前記暗号化
認証子データ全体を1つのk桁のN進数として、これに
対して、第1及び第2の公開鍵データを使用する演算に
より、前記暗号化認証子データh(C)から復号化された
認証子データh(M)を得る第6の過程と、前記復号化さ
れた認証子データh(M)と前記認証文データMとを用い
て認証を行う第7の過程と、を備えたこと要旨とするN
進表現暗号による認証方法である。
【0065】また、請求項15記載の発明は、認証対象
となる認証子データh(M)と、それぞれpとqとを値と
する2つの素数データの積Nを値とする第1の公開鍵デ
ータと、dを値とする第2の秘密鍵データと、2以上の
整数であるkを値とするブロック数データと、を用い
て、前記認証子データh(M)を暗号化した暗号化認証子
データh(C)を生成するN進表現暗号による認証文生成
方法であって、Nを法として前記認証子データの値をd
乗した値を計算し、この値を前記認証子データh(M)を
暗号化してN進表現したときの最下位桁の値h(C)0 と
する第1の過程と、このh(C)0 に基づいて、自然数の
中から、Nのk乗を法としてその値をd乗した値が前記
認証子データh(M)の値に等しくなるような自然数を、
h(C)0 を最下位桁の値としたk桁のN進数として表現
した形で求める第2の過程(以下、この過程を認証子上
位桁暗号化過程と称する)と、このN進数の各桁を表わ
す数値データを順次連結することによって、暗号化認証
子データh(C)を生成する第3の過程と、を備えたこと
を要旨とするN進表現暗号による認証文生成方法であ
る。
となる認証子データh(M)と、それぞれpとqとを値と
する2つの素数データの積Nを値とする第1の公開鍵デ
ータと、dを値とする第2の秘密鍵データと、2以上の
整数であるkを値とするブロック数データと、を用い
て、前記認証子データh(M)を暗号化した暗号化認証子
データh(C)を生成するN進表現暗号による認証文生成
方法であって、Nを法として前記認証子データの値をd
乗した値を計算し、この値を前記認証子データh(M)を
暗号化してN進表現したときの最下位桁の値h(C)0 と
する第1の過程と、このh(C)0 に基づいて、自然数の
中から、Nのk乗を法としてその値をd乗した値が前記
認証子データh(M)の値に等しくなるような自然数を、
h(C)0 を最下位桁の値としたk桁のN進数として表現
した形で求める第2の過程(以下、この過程を認証子上
位桁暗号化過程と称する)と、このN進数の各桁を表わ
す数値データを順次連結することによって、暗号化認証
子データh(C)を生成する第3の過程と、を備えたこと
を要旨とするN進表現暗号による認証文生成方法であ
る。
【0066】また、請求項16記載の発明は、請求項1
5に記載のN進表現暗号による認証文生成方法におい
て、前記認証子上位桁暗号化過程は、前記h(C)0 を最
下位桁の値とし桁数がkであるN進数として前記認証子
データh(M)を表現したもの全体をd乗した形である暗
号化認証子データh(C)を、前記d乗を展開して得られ
るNに関するk−1次の多項式に対応させ、該k−1次
の多項式のそれぞれの係数値を、前記認証子データを変
数とする多項式関数とみなして、前記認証子データh
(M)及び前記N進数の既に求められた下位の桁の値に基
づいて、低次の係数から高次の係数へ昇順に順次求める
係数値計算過程と、これらの係数値を使って、Nを法と
する1次合同式を解くことにより、前記N進数における
上位の桁の値を順次確定していく上位桁計算過程と、を
備えたことを要旨とする。
5に記載のN進表現暗号による認証文生成方法におい
て、前記認証子上位桁暗号化過程は、前記h(C)0 を最
下位桁の値とし桁数がkであるN進数として前記認証子
データh(M)を表現したもの全体をd乗した形である暗
号化認証子データh(C)を、前記d乗を展開して得られ
るNに関するk−1次の多項式に対応させ、該k−1次
の多項式のそれぞれの係数値を、前記認証子データを変
数とする多項式関数とみなして、前記認証子データh
(M)及び前記N進数の既に求められた下位の桁の値に基
づいて、低次の係数から高次の係数へ昇順に順次求める
係数値計算過程と、これらの係数値を使って、Nを法と
する1次合同式を解くことにより、前記N進数における
上位の桁の値を順次確定していく上位桁計算過程と、を
備えたことを要旨とする。
【0067】また、請求項17記載の発明は、請求項1
6に記載のN進表現暗号による認証文生成方法におい
て、前記係数値計算過程は、求められた係数の値を係数
テーブルに順次記憶するとともに、該係数テーブルに記
憶された低次の係数の値を参照することを含むことを要
旨とする。
6に記載のN進表現暗号による認証文生成方法におい
て、前記係数値計算過程は、求められた係数の値を係数
テーブルに順次記憶するとともに、該係数テーブルに記
憶された低次の係数の値を参照することを含むことを要
旨とする。
【0068】また、請求項18記載の発明は、請求項1
5に記載のN進表現暗号による認証文生成方法におい
て、前記k桁のN進数の各桁の値をh(C)i (0≦i≦
k−1)とするとき、前記認証子上位桁暗号化過程は、
前記最下位桁の値h(C)0 と、第1の公開鍵データN
と、第2の公開鍵データeと、認証子データh(M)と、
ブロック数データkとを入力として、h(C)0 ,h(C)
1 ,…,h(C)i-1 に基づいてh(C)i を求める同一の
写像もしくは同一の計算式により、再帰的にh(C)1 か
らh(C)k-1 までを順次暗号化することを要旨とする。
5に記載のN進表現暗号による認証文生成方法におい
て、前記k桁のN進数の各桁の値をh(C)i (0≦i≦
k−1)とするとき、前記認証子上位桁暗号化過程は、
前記最下位桁の値h(C)0 と、第1の公開鍵データN
と、第2の公開鍵データeと、認証子データh(M)と、
ブロック数データkとを入力として、h(C)0 ,h(C)
1 ,…,h(C)i-1 に基づいてh(C)i を求める同一の
写像もしくは同一の計算式により、再帰的にh(C)1 か
らh(C)k-1 までを順次暗号化することを要旨とする。
【0069】また、請求項19記載の発明は、認証対象
となる認証子データh(M)と、それぞれpとqとを値と
する2つの素数データの積Nを値とする第1の公開鍵デ
ータと、dを値とする第2の秘密鍵データと、2以上の
整数であるkを値とするブロック数データと、を用い
て、前記認証子データh(M)を暗号化した暗号化認証子
データh(C)を生成するN進表現暗号による認証文生成
プログラムを格納した記憶媒体であって、Nを法として
前記認証子データの値をd乗した値を計算し、この値を
前記認証子データh(M)を暗号化してN進表現したとき
の最下位桁の値h(C)0 とし、このh(C)0 に基づい
て、自然数の中から、Nのk乗を法としてその値をd乗
した値が前記認証子データh(M)の値に等しくなるよう
な自然数を、h(C)0 を最下位桁の値としたk桁のN進
数として表現した形で求め、このN進数の各桁を表わす
数値データを順次連結することによって、暗号化認証子
データh(C)を生成する、ことを要旨とするN進表現暗
号による認証文生成プログラムを格納した記憶媒体であ
る。
となる認証子データh(M)と、それぞれpとqとを値と
する2つの素数データの積Nを値とする第1の公開鍵デ
ータと、dを値とする第2の秘密鍵データと、2以上の
整数であるkを値とするブロック数データと、を用い
て、前記認証子データh(M)を暗号化した暗号化認証子
データh(C)を生成するN進表現暗号による認証文生成
プログラムを格納した記憶媒体であって、Nを法として
前記認証子データの値をd乗した値を計算し、この値を
前記認証子データh(M)を暗号化してN進表現したとき
の最下位桁の値h(C)0 とし、このh(C)0 に基づい
て、自然数の中から、Nのk乗を法としてその値をd乗
した値が前記認証子データh(M)の値に等しくなるよう
な自然数を、h(C)0 を最下位桁の値としたk桁のN進
数として表現した形で求め、このN進数の各桁を表わす
数値データを順次連結することによって、暗号化認証子
データh(C)を生成する、ことを要旨とするN進表現暗
号による認証文生成プログラムを格納した記憶媒体であ
る。
【0070】また、請求項20記載の発明は、認証対象
となる認証子データh(M)と、それぞれpとqとを値と
する2つの素数データの積Nを値とする第1の公開鍵デ
ータと、dを値とする第2の秘密鍵データと、2以上の
整数であるkを値とするブロック数データと、を用い
て、前記認証子データh(M)を暗号化した暗号化認証子
データh(C)を生成するN進表現暗号による認証文生成
装置であって、Nを法として、前記認証子データの値を
d乗した値h(C)0 を計算する最下位桁計算手段と、h
(C)0 に基づいて、自然数の中から、Nのk乗を法とし
てその値をd乗した値が、前記認証子データの値に等し
くなるような自然数を、h(C)0 を最下位桁の値とした
k桁のN進数として表現した形で求める認証子上位桁暗
号化手段と、このN進数の各桁を表わす数値データを順
次連結することによって、暗号化認証子データh(C)を
生成する連結手段と、を備えてなり、前記認証子上位桁
暗号化手段は、前記h(C)0 を最下位桁の値とし桁数が
kであるN進数として前記認証子データh(M)を表現
したもの全体をd乗した形である暗号化認証子データh
(C)を、前記d乗を展開して得られるNに関するk−
1次の多項式に対応させ、該k−1次の多項式のそれぞ
れの係数値を、前記認証子データを変数とする多項式関
数とみなして、前記認証子データh(M)及び前記N進数
の既に求められた下位の桁の値に基づいて、低次の係数
から高次の係数へ昇順に順次求める係数計算手段と、こ
れらの係数値を使って、Nを法とする1次合同式を解く
ことにより、前記N進数におけるより上位の桁の値を順
次確定していく上位桁計算手段と、を備えたことを要旨
とするN進表現暗号による認証文生成装置である。
となる認証子データh(M)と、それぞれpとqとを値と
する2つの素数データの積Nを値とする第1の公開鍵デ
ータと、dを値とする第2の秘密鍵データと、2以上の
整数であるkを値とするブロック数データと、を用い
て、前記認証子データh(M)を暗号化した暗号化認証子
データh(C)を生成するN進表現暗号による認証文生成
装置であって、Nを法として、前記認証子データの値を
d乗した値h(C)0 を計算する最下位桁計算手段と、h
(C)0 に基づいて、自然数の中から、Nのk乗を法とし
てその値をd乗した値が、前記認証子データの値に等し
くなるような自然数を、h(C)0 を最下位桁の値とした
k桁のN進数として表現した形で求める認証子上位桁暗
号化手段と、このN進数の各桁を表わす数値データを順
次連結することによって、暗号化認証子データh(C)を
生成する連結手段と、を備えてなり、前記認証子上位桁
暗号化手段は、前記h(C)0 を最下位桁の値とし桁数が
kであるN進数として前記認証子データh(M)を表現
したもの全体をd乗した形である暗号化認証子データh
(C)を、前記d乗を展開して得られるNに関するk−
1次の多項式に対応させ、該k−1次の多項式のそれぞ
れの係数値を、前記認証子データを変数とする多項式関
数とみなして、前記認証子データh(M)及び前記N進数
の既に求められた下位の桁の値に基づいて、低次の係数
から高次の係数へ昇順に順次求める係数計算手段と、こ
れらの係数値を使って、Nを法とする1次合同式を解く
ことにより、前記N進数におけるより上位の桁の値を順
次確定していく上位桁計算手段と、を備えたことを要旨
とするN進表現暗号による認証文生成装置である。
【0071】また、請求項21記載の発明は、請求項2
0に記載のN進表現暗号による認証文生成装置におい
て、前記係数計算手段は、既に求められた低次の係数の
値を順次記憶した係数テーブル記憶手段と、この係数テ
ーブル記憶手段から求めるべき係数より低次の係数値を
読み出す読出し手段と、を備えたことを要旨とする。
0に記載のN進表現暗号による認証文生成装置におい
て、前記係数計算手段は、既に求められた低次の係数の
値を順次記憶した係数テーブル記憶手段と、この係数テ
ーブル記憶手段から求めるべき係数より低次の係数値を
読み出す読出し手段と、を備えたことを要旨とする。
【0072】また、請求項22記載の発明は、認証対象
となる認証子データh(M)と、それぞれpとqとを値と
する2つの素数データの積Nを値とする第1の公開鍵デ
ータと、eを値とする第2の公開鍵データと、dを値と
する第2の秘密鍵データと、2以上の整数であるkを値
とするブロック数データと、を用いて、前記認証子デー
タh(M)を暗号化した暗号化認証子データh(C)を生成
するN進表現暗号による認証文生成装置であって、Nを
法として、前記認証子データの値をd乗した値h(C)0
を計算する最下位桁計算手段と、h(C)0 に基づいて、
自然数の中から、Nのk乗を法としてその値をd乗した
値が、前記認証子データの値に等しくなるような自然数
を、h(C)0 を最下位桁の値としたk桁のN進数として
表現した形で求める認証子上位桁暗号化手段と、このN
進数の各桁を表わす数値データを順次連結することによ
って、暗号化認証子データh(C)を生成する連結手段
と、を備えてなり、前記k桁のN進数の各桁の値をh
(C)i (0≦i≦k−1)とするとき、前記認証子上位
桁暗号化手段は、前記最下位桁の値h(C)0 と、第1の
公開鍵データNと、第2の公開鍵データeと、認証子デ
ータh(M)と、ブロック数データkとを入力として、h
(C)0 ,h(C)1 ,…,h(C)i-1 に基づいてh(C)i
を求める同一の写像もしくは同一の計算式により、再帰
的にh(C)1 からh(C)k-1 までを順次暗号化すること
を要旨とするN進表現暗号による認証文生成装置であ
る。
となる認証子データh(M)と、それぞれpとqとを値と
する2つの素数データの積Nを値とする第1の公開鍵デ
ータと、eを値とする第2の公開鍵データと、dを値と
する第2の秘密鍵データと、2以上の整数であるkを値
とするブロック数データと、を用いて、前記認証子デー
タh(M)を暗号化した暗号化認証子データh(C)を生成
するN進表現暗号による認証文生成装置であって、Nを
法として、前記認証子データの値をd乗した値h(C)0
を計算する最下位桁計算手段と、h(C)0 に基づいて、
自然数の中から、Nのk乗を法としてその値をd乗した
値が、前記認証子データの値に等しくなるような自然数
を、h(C)0 を最下位桁の値としたk桁のN進数として
表現した形で求める認証子上位桁暗号化手段と、このN
進数の各桁を表わす数値データを順次連結することによ
って、暗号化認証子データh(C)を生成する連結手段
と、を備えてなり、前記k桁のN進数の各桁の値をh
(C)i (0≦i≦k−1)とするとき、前記認証子上位
桁暗号化手段は、前記最下位桁の値h(C)0 と、第1の
公開鍵データNと、第2の公開鍵データeと、認証子デ
ータh(M)と、ブロック数データkとを入力として、h
(C)0 ,h(C)1 ,…,h(C)i-1 に基づいてh(C)i
を求める同一の写像もしくは同一の計算式により、再帰
的にh(C)1 からh(C)k-1 までを順次暗号化すること
を要旨とするN進表現暗号による認証文生成装置であ
る。
【0073】また、請求項23記載の発明は、認証対象
である認証文データMと、この認証文データから前記請
求項15、16、17、18、20、21、22のいず
れか一項に記載の方法または装置により生成された暗号
化認証子データh(C)と、この暗号化認証子データh
(C)のブロック数kを値とするブロック数データと、そ
れぞれpとqとを値とする2つの素数データの積Nを値
とする第1の公開鍵データと、eを値とする第2の公開
鍵データと、を用いて、前記認証文データM及びまたは
前記暗号化認証子データh(C)が正当であるか否かを判
別する認証文検証方法であって、前記暗号化認証子デー
タh(C)の各ブロックをk桁のN進数の各桁として順次
結合する第1の過程と、Nのk乗を法として、この結合
されたデータをe乗した値である復号化された認証子デ
ータh(M)を求める第2の過程と、この復号化された認
証子データh(M)と前記認証文データMに基づいて生成
された認証子データh(M)′とを比較し、この両者が一
致していた場合は、一連の認証ないし検証過程が正常で
あったと判定し、この両者が不一致であった場合は、一
連の認証ないし検証過程のいずれかに異常があったと判
定する第3の過程と、を備えたことを要旨とするN進表
現暗号による認証文検証方法である。
である認証文データMと、この認証文データから前記請
求項15、16、17、18、20、21、22のいず
れか一項に記載の方法または装置により生成された暗号
化認証子データh(C)と、この暗号化認証子データh
(C)のブロック数kを値とするブロック数データと、そ
れぞれpとqとを値とする2つの素数データの積Nを値
とする第1の公開鍵データと、eを値とする第2の公開
鍵データと、を用いて、前記認証文データM及びまたは
前記暗号化認証子データh(C)が正当であるか否かを判
別する認証文検証方法であって、前記暗号化認証子デー
タh(C)の各ブロックをk桁のN進数の各桁として順次
結合する第1の過程と、Nのk乗を法として、この結合
されたデータをe乗した値である復号化された認証子デ
ータh(M)を求める第2の過程と、この復号化された認
証子データh(M)と前記認証文データMに基づいて生成
された認証子データh(M)′とを比較し、この両者が一
致していた場合は、一連の認証ないし検証過程が正常で
あったと判定し、この両者が不一致であった場合は、一
連の認証ないし検証過程のいずれかに異常があったと判
定する第3の過程と、を備えたことを要旨とするN進表
現暗号による認証文検証方法である。
【0074】また、請求項24記載の発明は、認証対象
である認証文データMと、この認証文データから前記請
求項15、16、17、18、20、21、22のいず
れか一項に記載の方法または装置により生成された暗号
化認証子データh(C)と、この暗号化認証子データh
(C)のブロック数kを値とするブロック数データと、そ
れぞれpとqとを値とする2つの素数データの積Nを値
とする第1の公開鍵データと、eを値とする第2の公開
鍵データと、を用いて、前記認証文データM及びまたは
前記暗号化認証子データh(C)が正当であるか否かを判
別する認証文検証プログラムを格納した記憶媒体であっ
て、前記暗号化認証子データh(C)の各ブロックをk桁
のN進数の各桁として順次結合し、Nのk乗を法とし
て、この結合されたデータをe乗した値である復号化さ
れた認証子データh(M)を求め、この復号化された認証
子データh(M)と前記認証文データMに基づいて生成さ
れた認証子データh(M)′とを比較し、この両者が一致
していた場合は、一連の認証ないし検証過程が正常であ
ったと判定し、この両者が不一致であった場合は、一連
の認証ないし検証過程のいずれかに異常があったと判定
する、ことを要旨とするN進表現暗号による認証文検証
プログラムを格納した記憶媒体である。
である認証文データMと、この認証文データから前記請
求項15、16、17、18、20、21、22のいず
れか一項に記載の方法または装置により生成された暗号
化認証子データh(C)と、この暗号化認証子データh
(C)のブロック数kを値とするブロック数データと、そ
れぞれpとqとを値とする2つの素数データの積Nを値
とする第1の公開鍵データと、eを値とする第2の公開
鍵データと、を用いて、前記認証文データM及びまたは
前記暗号化認証子データh(C)が正当であるか否かを判
別する認証文検証プログラムを格納した記憶媒体であっ
て、前記暗号化認証子データh(C)の各ブロックをk桁
のN進数の各桁として順次結合し、Nのk乗を法とし
て、この結合されたデータをe乗した値である復号化さ
れた認証子データh(M)を求め、この復号化された認証
子データh(M)と前記認証文データMに基づいて生成さ
れた認証子データh(M)′とを比較し、この両者が一致
していた場合は、一連の認証ないし検証過程が正常であ
ったと判定し、この両者が不一致であった場合は、一連
の認証ないし検証過程のいずれかに異常があったと判定
する、ことを要旨とするN進表現暗号による認証文検証
プログラムを格納した記憶媒体である。
【0075】また、請求項25記載の発明は、認証対象
である認証文データMと、この認証文データMから前記
請求項15、16、17、18、20、21、22のい
ずれか一項に記載の方法または装置により生成された暗
号化認証子データh(C)と、この暗号化認証子データh
(C)のブロック数kを値とするブロック数データと、そ
れぞれpとqとを値とする2つの素数データの積Nを値
とする第1の公開鍵データと、eを値とする第2の公開
鍵データと、を用いて、前記認証文データM及びまたは
前記暗号化認証子データh(C)が正当であるか否かを判
別する認証文検証装置であって、前記認証文データMを
ハッシュ化し、ハッシュ化認証子データh(M)′を生成
するハッシュ化手段と、前記暗号化認証子データh(C)
の各ブロックをk桁のN進数の各桁として順次結合する
結合手段と、Nのk乗を法として、この結合されたデー
タをe乗した値を求めて復号化された復号化認証子デー
タh(M)を得る認証子復号化手段と、前記復号化認証子
データh(M)と前記ハッシュ化認証子データh(M)′と
を比較し、この両者が一致していた場合は、一連の認証
ないし検証過程が正常であったと判定し、この両者が不
一致であった場合は、一連の認証ないし検証過程のいず
れかに異常があったと判定する照合判定手段と、を備え
たことを要旨とするN進表現暗号による認証文検証装置
である。
である認証文データMと、この認証文データMから前記
請求項15、16、17、18、20、21、22のい
ずれか一項に記載の方法または装置により生成された暗
号化認証子データh(C)と、この暗号化認証子データh
(C)のブロック数kを値とするブロック数データと、そ
れぞれpとqとを値とする2つの素数データの積Nを値
とする第1の公開鍵データと、eを値とする第2の公開
鍵データと、を用いて、前記認証文データM及びまたは
前記暗号化認証子データh(C)が正当であるか否かを判
別する認証文検証装置であって、前記認証文データMを
ハッシュ化し、ハッシュ化認証子データh(M)′を生成
するハッシュ化手段と、前記暗号化認証子データh(C)
の各ブロックをk桁のN進数の各桁として順次結合する
結合手段と、Nのk乗を法として、この結合されたデー
タをe乗した値を求めて復号化された復号化認証子デー
タh(M)を得る認証子復号化手段と、前記復号化認証子
データh(M)と前記ハッシュ化認証子データh(M)′と
を比較し、この両者が一致していた場合は、一連の認証
ないし検証過程が正常であったと判定し、この両者が不
一致であった場合は、一連の認証ないし検証過程のいず
れかに異常があったと判定する照合判定手段と、を備え
たことを要旨とするN進表現暗号による認証文検証装置
である。
【0076】また、請求項26記載の発明は、暗号化の
対象である平文データと、それぞれpとqとを値とする
2つの素数データで構成される秘密鍵データと、pとq
との積Nを値とする公開鍵データと、2以上の整数であ
るkを値とするブロック数データと、を用いた公開鍵型
のN進表現暗号による通信および認証方法であって、前
記平文データを、Nの剰余類の範囲でk個のブロックに
分割する第1の過程と、前記分割された各ブロックの値
をN進数の各桁の値とするとともに、Nを基数とするN
進位取り記数法により前記平文データをk桁のN進数と
して表現する第2の過程と、前記ブロック数kを第2の
公開鍵データとし、前記k桁のN進数に対して、公開鍵
データを用いる演算により、前記平文データに該当する
暗号文データを得る第3の過程と、前記秘密鍵データ
と、前記公開鍵データとを用いて、前記暗号文データか
ら前記k桁のN進数の最下位桁の値を復号化する第4の
過程と、前記復号化された最下位桁の値を用いて、前記
k桁のN進数の上位の桁の値を順次復号化する第5の過
程と、を備えたことを要旨とするN進表現暗号による通
信方法である。
対象である平文データと、それぞれpとqとを値とする
2つの素数データで構成される秘密鍵データと、pとq
との積Nを値とする公開鍵データと、2以上の整数であ
るkを値とするブロック数データと、を用いた公開鍵型
のN進表現暗号による通信および認証方法であって、前
記平文データを、Nの剰余類の範囲でk個のブロックに
分割する第1の過程と、前記分割された各ブロックの値
をN進数の各桁の値とするとともに、Nを基数とするN
進位取り記数法により前記平文データをk桁のN進数と
して表現する第2の過程と、前記ブロック数kを第2の
公開鍵データとし、前記k桁のN進数に対して、公開鍵
データを用いる演算により、前記平文データに該当する
暗号文データを得る第3の過程と、前記秘密鍵データ
と、前記公開鍵データとを用いて、前記暗号文データか
ら前記k桁のN進数の最下位桁の値を復号化する第4の
過程と、前記復号化された最下位桁の値を用いて、前記
k桁のN進数の上位の桁の値を順次復号化する第5の過
程と、を備えたことを要旨とするN進表現暗号による通
信方法である。
【0077】また、請求項27記載の発明は、請求項2
6に記載のN進表現暗号による通信方法において、前記
第1の過程は、前記平文データの先頭に予め第1の公開
鍵データNのビット長程度の乱数を連接して連接データ
を作成し、以下この連接データを平文データとして、前
記Nを基数とするN進位取り記数法によりk桁のN進数
データとして表現する過程であることを要旨とする。
6に記載のN進表現暗号による通信方法において、前記
第1の過程は、前記平文データの先頭に予め第1の公開
鍵データNのビット長程度の乱数を連接して連接データ
を作成し、以下この連接データを平文データとして、前
記Nを基数とするN進位取り記数法によりk桁のN進数
データとして表現する過程であることを要旨とする。
【0078】また、請求項28記載の発明は、暗号化の
対象である平文データMと、それぞれpとqとを値とす
る2つの素数データで構成された秘密鍵データ同士の積
Nを値とする公開鍵データと、2以上の整数であるkを
値とするブロック数データと、を用いて、前記平文デー
タに該当する暗号文データを生成する公開鍵型のN進表
現暗号による暗号化方法であって、各ブロックがNの剰
余類の範囲に収まるように、前記平文データMをk個の
ブロックに分割する第1の過程と、前記平文データM全
体がk桁のN進数として位取りされるように各ブロック
のデータを順次結合する第2の過程と、前記結合された
データを2乗する第3の過程と、この2乗されたデータ
に対して、Nをk乗した数値を法とした剰余である暗号
文データCを生成する第4の過程と、を備えたことを要
旨とするN進表現暗号による暗号化方法である。
対象である平文データMと、それぞれpとqとを値とす
る2つの素数データで構成された秘密鍵データ同士の積
Nを値とする公開鍵データと、2以上の整数であるkを
値とするブロック数データと、を用いて、前記平文デー
タに該当する暗号文データを生成する公開鍵型のN進表
現暗号による暗号化方法であって、各ブロックがNの剰
余類の範囲に収まるように、前記平文データMをk個の
ブロックに分割する第1の過程と、前記平文データM全
体がk桁のN進数として位取りされるように各ブロック
のデータを順次結合する第2の過程と、前記結合された
データを2乗する第3の過程と、この2乗されたデータ
に対して、Nをk乗した数値を法とした剰余である暗号
文データCを生成する第4の過程と、を備えたことを要
旨とするN進表現暗号による暗号化方法である。
【0079】また、請求項29記載の発明は、暗号化の
対象である平文データMと、それぞれpとqとを値とす
る2つの素数データで構成された秘密鍵データ同士の積
Nを値とする公開鍵データと、2以上の整数であるkを
値とするブロック数データと、を用いて、前記平文デー
タに該当する暗号文データを生成する公開鍵型のN進表
現暗号による暗号化プログラムを格納した記憶媒体であ
って、各ブロックがNの剰余類の範囲に収まるように、
前記平文データMをk個のブロックに分割し、前記平文
データM全体がk桁のN進数として位取りされるように
各ブロックのデータを順次結合し、前記結合されたデー
タを2乗し、この2乗されたデータに対して、Nをk乗
した数値を法とした剰余である暗号文データCを生成す
る、ことを要旨とするN進表現暗号による暗号化プログ
ラムを格納した記憶媒体である。
対象である平文データMと、それぞれpとqとを値とす
る2つの素数データで構成された秘密鍵データ同士の積
Nを値とする公開鍵データと、2以上の整数であるkを
値とするブロック数データと、を用いて、前記平文デー
タに該当する暗号文データを生成する公開鍵型のN進表
現暗号による暗号化プログラムを格納した記憶媒体であ
って、各ブロックがNの剰余類の範囲に収まるように、
前記平文データMをk個のブロックに分割し、前記平文
データM全体がk桁のN進数として位取りされるように
各ブロックのデータを順次結合し、前記結合されたデー
タを2乗し、この2乗されたデータに対して、Nをk乗
した数値を法とした剰余である暗号文データCを生成す
る、ことを要旨とするN進表現暗号による暗号化プログ
ラムを格納した記憶媒体である。
【0080】また、請求項30記載の発明は、暗号化の
対象である平文データMと、それぞれpとqとを値とす
る2つの素数データで構成される秘密鍵データ同士の積
Nを値とする公開鍵データと、2以上の整数であるkを
値とするブロック数データと、を用いて、前記平文デー
タに該当する暗号文データを生成するN進表現暗号によ
る暗号化装置であって、各ブロックがNの剰余類の範囲
に収まるように、前記平文データMをk個のブロックに
分割する平文分割手段と、前記平文データM全体がk桁
のN進数として位取りされるように、前記各ブロックの
データを順次結合した結合データを生成するデータ結合
手段と、Nをk乗した数値を法として、前記結合データ
を2乗することにより暗号文データCを生成する暗号化
手段と、を備えたことを要旨とするN進表現暗号による
暗号化装置である。
対象である平文データMと、それぞれpとqとを値とす
る2つの素数データで構成される秘密鍵データ同士の積
Nを値とする公開鍵データと、2以上の整数であるkを
値とするブロック数データと、を用いて、前記平文デー
タに該当する暗号文データを生成するN進表現暗号によ
る暗号化装置であって、各ブロックがNの剰余類の範囲
に収まるように、前記平文データMをk個のブロックに
分割する平文分割手段と、前記平文データM全体がk桁
のN進数として位取りされるように、前記各ブロックの
データを順次結合した結合データを生成するデータ結合
手段と、Nをk乗した数値を法として、前記結合データ
を2乗することにより暗号文データCを生成する暗号化
手段と、を備えたことを要旨とするN進表現暗号による
暗号化装置である。
【0081】また、請求項31記載の発明は、暗号化さ
れた暗号文データCと、2以上の整数であるkを値とす
るブロック数データと、それぞれpとqとを値とする2
つの素数データで構成される秘密鍵データと、pとqと
の積Nを値とする公開鍵データと、を用いて、前記暗号
文データCに該当する平文データMを復元する復号化方
法であって、自然数の中から、その値を2乗した値が、
Nを法として暗号文データCに等しくなるような自然数
xを、数値pを法とする剰余ならびに数値qを法とする
剰余を用いて求め、この値xを桁数がkであるN進数の
最下位桁の値M0 とする第1の過程と、M0 の値と前記
暗号文データCとを含む1次合同式を用いて、桁数がk
であるN進数の各桁の値を下位から逐次求める第2の過
程(以下、この過程を上位桁復号化過程と称する)と、
このN進数の各桁の数値データを順次連結し、全体とし
て1つのN進数データとすることによって、上記暗号文
データに該当する平文データMを復元する第3の過程
と、を備えたことを要旨とするN進表現暗号による復号
化方法である。
れた暗号文データCと、2以上の整数であるkを値とす
るブロック数データと、それぞれpとqとを値とする2
つの素数データで構成される秘密鍵データと、pとqと
の積Nを値とする公開鍵データと、を用いて、前記暗号
文データCに該当する平文データMを復元する復号化方
法であって、自然数の中から、その値を2乗した値が、
Nを法として暗号文データCに等しくなるような自然数
xを、数値pを法とする剰余ならびに数値qを法とする
剰余を用いて求め、この値xを桁数がkであるN進数の
最下位桁の値M0 とする第1の過程と、M0 の値と前記
暗号文データCとを含む1次合同式を用いて、桁数がk
であるN進数の各桁の値を下位から逐次求める第2の過
程(以下、この過程を上位桁復号化過程と称する)と、
このN進数の各桁の数値データを順次連結し、全体とし
て1つのN進数データとすることによって、上記暗号文
データに該当する平文データMを復元する第3の過程
と、を備えたことを要旨とするN進表現暗号による復号
化方法である。
【0082】また、請求項32記載の発明は、請求項3
1に記載のN進表現暗号の復号化方法において、前記上
位桁復号化過程は、前記M0 を最下位桁の値とし桁数が
kであるN進数として表現したデータ全体を2乗した形
である暗号文を、前記2乗を展開して得られるNに関す
るk−1次の多項式に対応させ、該k−1次の多項式の
それぞれの係数値を、前記複数の平文ブロックを変数と
する多項式関数とみなして、前記暗号文データ及び前記
N進数の既に求められた下位の桁の値に基づいて、この
k−1次の式の係数値を昇順に順次求める過程と、求め
た係数値を使って、Nを法とする1次合同式を解くこと
により、前記N進数におけるより上位の桁の値を順次確
定していく過程と、を含むことを要旨とする。
1に記載のN進表現暗号の復号化方法において、前記上
位桁復号化過程は、前記M0 を最下位桁の値とし桁数が
kであるN進数として表現したデータ全体を2乗した形
である暗号文を、前記2乗を展開して得られるNに関す
るk−1次の多項式に対応させ、該k−1次の多項式の
それぞれの係数値を、前記複数の平文ブロックを変数と
する多項式関数とみなして、前記暗号文データ及び前記
N進数の既に求められた下位の桁の値に基づいて、この
k−1次の式の係数値を昇順に順次求める過程と、求め
た係数値を使って、Nを法とする1次合同式を解くこと
により、前記N進数におけるより上位の桁の値を順次確
定していく過程と、を含むことを要旨とする。
【0083】また、請求項33記載の発明は、請求項3
1に記載のN進表現暗号の復号化方法において、前記k
桁のN進数の各桁の値をMi (0≦i≦k−1)とする
とき、前記上位桁復号化過程は、前記最下位桁の値M0
と、公開鍵データNと、暗号文データCと、ブロック数
データkとを入力として、M0 ,M1 ,…,Mi-1 に基
づいてMi を求める同一の写像もしくは同一の計算式に
より、再帰的にM1 からMk-1 までを順次復号化するこ
とを要旨とする。
1に記載のN進表現暗号の復号化方法において、前記k
桁のN進数の各桁の値をMi (0≦i≦k−1)とする
とき、前記上位桁復号化過程は、前記最下位桁の値M0
と、公開鍵データNと、暗号文データCと、ブロック数
データkとを入力として、M0 ,M1 ,…,Mi-1 に基
づいてMi を求める同一の写像もしくは同一の計算式に
より、再帰的にM1 からMk-1 までを順次復号化するこ
とを要旨とする。
【0084】また、請求項34記載の発明は、暗号化さ
れた暗号文データCと、2以上の整数であるkを値とす
るブロック数データと、それぞれpとqとを値とする2
つの素数データで構成される秘密鍵データと、pとqと
の積Nを値とする公開鍵データと、を用いて、前記暗号
文データCに該当する平文データMを復元する復号化プ
ログラムを格納した記憶媒体であって、自然数の中か
ら、その値を2乗した値が、Nを法として暗号文データ
Cに等しくなるような自然数xを、数値pを法とする剰
余ならびに数値qを法とする剰余を用いて求め、この値
xを桁数がkであるN進数の最下位桁の値M0 とし、M
0 の値と前記暗号文データCとを含む1次合同式を用い
て、桁数がkであるN進数の各桁の値を下位から逐次求
め、このN進数の各桁の数値データを順次連結し、全体
として1つのN進数データとすることによって、上記暗
号文データに該当する平文データMを復元する、ことを
要旨とするN進表現暗号による復号化プログラムを格納
した記憶媒体である。
れた暗号文データCと、2以上の整数であるkを値とす
るブロック数データと、それぞれpとqとを値とする2
つの素数データで構成される秘密鍵データと、pとqと
の積Nを値とする公開鍵データと、を用いて、前記暗号
文データCに該当する平文データMを復元する復号化プ
ログラムを格納した記憶媒体であって、自然数の中か
ら、その値を2乗した値が、Nを法として暗号文データ
Cに等しくなるような自然数xを、数値pを法とする剰
余ならびに数値qを法とする剰余を用いて求め、この値
xを桁数がkであるN進数の最下位桁の値M0 とし、M
0 の値と前記暗号文データCとを含む1次合同式を用い
て、桁数がkであるN進数の各桁の値を下位から逐次求
め、このN進数の各桁の数値データを順次連結し、全体
として1つのN進数データとすることによって、上記暗
号文データに該当する平文データMを復元する、ことを
要旨とするN進表現暗号による復号化プログラムを格納
した記憶媒体である。
【0085】また、請求項35記載の発明は、暗号化さ
れた暗号文データCと、2以上の整数であるkを値とす
るブロック数データと、それぞれpとqとを値とする2
つの素数データで構成される秘密鍵データと、pとqと
の積Nを値とする公開鍵データと、を用いて、前記暗号
文データCに該当する平文データMを復元する復号化装
置であって、自然数の中から、その値を2乗した値が、
Nを法として暗号文データCに等しくなるような自然数
xを、数値pを法とする剰余ならびに数値qを法とする
剰余を用いて求め、この値xを桁数がkであるN進数の
最下位桁の値M0 とする最下位桁復号化手段と、M0 の
値と前記暗号文データCとを含む1次合同式を解くこと
により、桁数がkであるN進数の各桁の値を下位から逐
次求める上位桁復号化手段と、このN進数の各桁の数値
データを順次連結し、平文データMを復元するデータ連
結手段と、を備えたことを要旨とするN進表現暗号の復
号化装置である。
れた暗号文データCと、2以上の整数であるkを値とす
るブロック数データと、それぞれpとqとを値とする2
つの素数データで構成される秘密鍵データと、pとqと
の積Nを値とする公開鍵データと、を用いて、前記暗号
文データCに該当する平文データMを復元する復号化装
置であって、自然数の中から、その値を2乗した値が、
Nを法として暗号文データCに等しくなるような自然数
xを、数値pを法とする剰余ならびに数値qを法とする
剰余を用いて求め、この値xを桁数がkであるN進数の
最下位桁の値M0 とする最下位桁復号化手段と、M0 の
値と前記暗号文データCとを含む1次合同式を解くこと
により、桁数がkであるN進数の各桁の値を下位から逐
次求める上位桁復号化手段と、このN進数の各桁の数値
データを順次連結し、平文データMを復元するデータ連
結手段と、を備えたことを要旨とするN進表現暗号の復
号化装置である。
【0086】また、請求項36記載の発明は、請求項3
5に記載のN進表現暗号の復号化装置において、前記上
位桁復号化手段は、前記M0 を最下位桁の値とし桁数が
kであるN進数として表現したデータ全体を2乗した形
である暗号文を、前記2乗を展開して得られるNに関す
るk−1次の多項式に対応させ、該k−1次の多項式の
それぞれの係数値を、前記複数の平文ブロックを変数と
する多項式関数とみなして、前記暗号文データ及び前記
N進数の既に求められた下位の桁の値に基づいて、この
k−1次の式の係数値を昇順に順次求め、この求めた係
数値を使って、Nを法とする1次合同式を解くことによ
り、前記N進数におけるより上位の桁の値を順次確定し
ていくことを要旨とする。
5に記載のN進表現暗号の復号化装置において、前記上
位桁復号化手段は、前記M0 を最下位桁の値とし桁数が
kであるN進数として表現したデータ全体を2乗した形
である暗号文を、前記2乗を展開して得られるNに関す
るk−1次の多項式に対応させ、該k−1次の多項式の
それぞれの係数値を、前記複数の平文ブロックを変数と
する多項式関数とみなして、前記暗号文データ及び前記
N進数の既に求められた下位の桁の値に基づいて、この
k−1次の式の係数値を昇順に順次求め、この求めた係
数値を使って、Nを法とする1次合同式を解くことによ
り、前記N進数におけるより上位の桁の値を順次確定し
ていくことを要旨とする。
【0087】また、請求項37記載の発明は、請求項3
5に記載のN進表現暗号の復号化装置において、前記k
桁のN進数の各桁の値をMi (0≦i≦k−1)とする
とき、前記上位桁復号化手段は、前記最下位桁の値M0
と、公開鍵データNと、暗号文データCと、ブロック数
データkとを入力として、M0 ,M1 ,…,Mi-1 に基
づいてMi を求める同一の写像もしくは同一の計算式に
より、再帰的にM1 からMk-1 までを順次復号化するこ
とを要旨とする。
5に記載のN進表現暗号の復号化装置において、前記k
桁のN進数の各桁の値をMi (0≦i≦k−1)とする
とき、前記上位桁復号化手段は、前記最下位桁の値M0
と、公開鍵データNと、暗号文データCと、ブロック数
データkとを入力として、M0 ,M1 ,…,Mi-1 に基
づいてMi を求める同一の写像もしくは同一の計算式に
より、再帰的にM1 からMk-1 までを順次復号化するこ
とを要旨とする。
【0088】また、請求項38記載の発明は、認証対象
である認証文データMと、それぞれpとqとを値とする
2つの素数データで構成される秘密鍵データと、pとq
との積Nを値とする公開鍵データと、2以上の整数であ
るkを値とするブロック数データと、を用いたN進表現
暗号による認証方法であって、前記認証文データMに基
づいて認証子データh(M)を生成する第1の過程と、前
記秘密鍵データ及び前記公開鍵データを用いて、前記認
証子データh(M)をk桁のN進数に暗号化したときの最
下位桁の値h(C)0 を生成する第2の過程と、前記最下
位桁の値を用いて、前記k桁のN進数の上位の桁の値を
順次暗号化する第3の過程と、前記N進数の各桁の値を
順次連結して、暗号化認証子データh(C)を生成する第
4の過程と、前記暗号化認証子データh(C)と認証文デ
ータMとを通信する第5の過程と、前記暗号化認証子デ
ータh(C)をk個のブロックに分割するとともに、この
分割された各ブロックの値をN進数の各桁の値とした結
合データを求める第6の過程と、この結合データ全体を
2乗した値からNのk乗を法とする剰余を求めることに
より暗号化認証子データh(C)を復号化して復号化認証
子データh(M)′を得る第7の過程と、この復号化認証
子データh(M)′と前記認証文データMとを用いて認証
を行う第8の過程と、を備えたことを要旨とする公開鍵
型のN進表現暗号による認証方法である。
である認証文データMと、それぞれpとqとを値とする
2つの素数データで構成される秘密鍵データと、pとq
との積Nを値とする公開鍵データと、2以上の整数であ
るkを値とするブロック数データと、を用いたN進表現
暗号による認証方法であって、前記認証文データMに基
づいて認証子データh(M)を生成する第1の過程と、前
記秘密鍵データ及び前記公開鍵データを用いて、前記認
証子データh(M)をk桁のN進数に暗号化したときの最
下位桁の値h(C)0 を生成する第2の過程と、前記最下
位桁の値を用いて、前記k桁のN進数の上位の桁の値を
順次暗号化する第3の過程と、前記N進数の各桁の値を
順次連結して、暗号化認証子データh(C)を生成する第
4の過程と、前記暗号化認証子データh(C)と認証文デ
ータMとを通信する第5の過程と、前記暗号化認証子デ
ータh(C)をk個のブロックに分割するとともに、この
分割された各ブロックの値をN進数の各桁の値とした結
合データを求める第6の過程と、この結合データ全体を
2乗した値からNのk乗を法とする剰余を求めることに
より暗号化認証子データh(C)を復号化して復号化認証
子データh(M)′を得る第7の過程と、この復号化認証
子データh(M)′と前記認証文データMとを用いて認証
を行う第8の過程と、を備えたことを要旨とする公開鍵
型のN進表現暗号による認証方法である。
【0089】また、請求項39記載の発明は、認証対象
となる認証文データMと、それぞれpとqとを値とする
2つの素数データで構成される秘密鍵データと、pとq
との積Nを値とする公開鍵データと、を用いて、前記認
証子データh(M)を暗号化した暗号化認証子データh
(C)を生成するN進表現暗号による認証文生成方法であ
って、前記認証文データMをハッシュ化して認証子デー
タh(M)を生成する第1の過程と、自然数の中から、そ
の値xを2乗した値が、Nを法として前記認証子データ
h(M)に等しくなるような自然数xを、数値pを法とす
る剰余ならびに数値qを法とする剰余を用いて求め、こ
の自然数の値xを桁数がkであるN進数の最下位桁の値
h(C)0 とする第2の過程と、この最下位桁の値h(C)
0 と前記認証子データh(M)を含む1次合同式を解くこ
とにより、桁数がkであるN進数の各桁の数値を下位か
ら順次求める第3の過程(以下、この過程を認証子上位
桁暗号化過程と称する)と、この求められた各桁の数値
を順次連結し、全体として1つのN進数データとするこ
とによって、暗号化認証子データh(C)を生成する第4
の過程と、を備えたことを要旨とするN進表現暗号によ
る認証文生成方法である。
となる認証文データMと、それぞれpとqとを値とする
2つの素数データで構成される秘密鍵データと、pとq
との積Nを値とする公開鍵データと、を用いて、前記認
証子データh(M)を暗号化した暗号化認証子データh
(C)を生成するN進表現暗号による認証文生成方法であ
って、前記認証文データMをハッシュ化して認証子デー
タh(M)を生成する第1の過程と、自然数の中から、そ
の値xを2乗した値が、Nを法として前記認証子データ
h(M)に等しくなるような自然数xを、数値pを法とす
る剰余ならびに数値qを法とする剰余を用いて求め、こ
の自然数の値xを桁数がkであるN進数の最下位桁の値
h(C)0 とする第2の過程と、この最下位桁の値h(C)
0 と前記認証子データh(M)を含む1次合同式を解くこ
とにより、桁数がkであるN進数の各桁の数値を下位か
ら順次求める第3の過程(以下、この過程を認証子上位
桁暗号化過程と称する)と、この求められた各桁の数値
を順次連結し、全体として1つのN進数データとするこ
とによって、暗号化認証子データh(C)を生成する第4
の過程と、を備えたことを要旨とするN進表現暗号によ
る認証文生成方法である。
【0090】また、請求項40記載の発明は、請求項3
9に記載のN進表現暗号による認証文生成方法におい
て、前記認証子上位桁暗号化過程は、前記h(C)0 を最
下位桁の値とし桁数がkであるN進数として表現したも
のを全体を2乗した形である暗号文を、前記2乗を展開
して得られるNに関するk−1次の多項式に対応させ、
該k−1次の多項式のそれぞれの係数値を、前記複数の
平文ブロックを変数とする多項式関数とみなして、前記
暗号文データ及び前記N進数の既に求められた下位の桁
の値に基づいて、このk−1次の式の係数値を昇順に順
次求め、求めた係数値を使って、Nのべき乗を法とする
1次合同式を解くことにより、前記N進数における上位
の桁の値を順次確定していくことによって実現すること
を要旨とする。
9に記載のN進表現暗号による認証文生成方法におい
て、前記認証子上位桁暗号化過程は、前記h(C)0 を最
下位桁の値とし桁数がkであるN進数として表現したも
のを全体を2乗した形である暗号文を、前記2乗を展開
して得られるNに関するk−1次の多項式に対応させ、
該k−1次の多項式のそれぞれの係数値を、前記複数の
平文ブロックを変数とする多項式関数とみなして、前記
暗号文データ及び前記N進数の既に求められた下位の桁
の値に基づいて、このk−1次の式の係数値を昇順に順
次求め、求めた係数値を使って、Nのべき乗を法とする
1次合同式を解くことにより、前記N進数における上位
の桁の値を順次確定していくことによって実現すること
を要旨とする。
【0091】また、請求項41記載の発明は、請求項3
9に記載のN進表現暗号による認証文生成方法におい
て、前記k桁のN進数の各桁の値をh(C)i (0≦i≦
k−1)とするとき、前記認証子上位桁暗号化過程は、
前記最下位桁の値h(C)0 と、公開鍵データNと、認証
子データh(M)と、ブロック数データkとを入力とし
て、h(C)0 ,h(C)1 ,…,h(C)i-1 に基づいてh
(C)i を求める同一の写像もしくは同一の計算式によ
り、再帰的にh(C)1 からh(C)k-1 までを順次暗号化
することを要旨とする。
9に記載のN進表現暗号による認証文生成方法におい
て、前記k桁のN進数の各桁の値をh(C)i (0≦i≦
k−1)とするとき、前記認証子上位桁暗号化過程は、
前記最下位桁の値h(C)0 と、公開鍵データNと、認証
子データh(M)と、ブロック数データkとを入力とし
て、h(C)0 ,h(C)1 ,…,h(C)i-1 に基づいてh
(C)i を求める同一の写像もしくは同一の計算式によ
り、再帰的にh(C)1 からh(C)k-1 までを順次暗号化
することを要旨とする。
【0092】また、請求項42記載の発明は、認証対象
となる認証文データMと、それぞれpとqとを値とする
2つの素数データで構成される秘密鍵データと、pとq
との積Nを値とする公開鍵データと、を用いて、前記認
証子データh(M)を暗号化した暗号化認証子データh
(C)を生成するN進表現暗号による認証文生成プログラ
ムを格納した記憶媒体であって、前記認証文データMを
ハッシュ化して認証子データh(M)を生成し、自然数の
中から、その値xを2乗した値が、Nを法として前記認
証子データh(M)に等しくなるような自然数xを、数値
pを法とする剰余ならびに数値qを法とする剰余を用い
て求め、この自然数の値xを桁数がkであるN進数の最
下位桁の値h(C)0 とし、この最下位桁の値h(C)0 と
前記認証子データh(M)を含む1次合同式を解くことに
より、桁数がkであるN進数の各桁の数値を下位から順
次求め、この求められた各桁の数値を順次連結し、全体
として1つのN進数データとすることによって、暗号化
認証子データh(C)を生成する、ことを要旨とするN進
表現暗号による認証文生成プログラムを記憶した記憶媒
体である。
となる認証文データMと、それぞれpとqとを値とする
2つの素数データで構成される秘密鍵データと、pとq
との積Nを値とする公開鍵データと、を用いて、前記認
証子データh(M)を暗号化した暗号化認証子データh
(C)を生成するN進表現暗号による認証文生成プログラ
ムを格納した記憶媒体であって、前記認証文データMを
ハッシュ化して認証子データh(M)を生成し、自然数の
中から、その値xを2乗した値が、Nを法として前記認
証子データh(M)に等しくなるような自然数xを、数値
pを法とする剰余ならびに数値qを法とする剰余を用い
て求め、この自然数の値xを桁数がkであるN進数の最
下位桁の値h(C)0 とし、この最下位桁の値h(C)0 と
前記認証子データh(M)を含む1次合同式を解くことに
より、桁数がkであるN進数の各桁の数値を下位から順
次求め、この求められた各桁の数値を順次連結し、全体
として1つのN進数データとすることによって、暗号化
認証子データh(C)を生成する、ことを要旨とするN進
表現暗号による認証文生成プログラムを記憶した記憶媒
体である。
【0093】また、請求項43記載の発明は、認証対象
となる認証文データMと、それぞれpとqとを値とする
2つの素数データで構成される秘密鍵データと、pとq
の積Nを値とする公開鍵データと、を用いて、前記認証
文データMに基づいて生成された認証子データh(M)を
暗号化した暗号化認証子データh(C)を生成するN進表
現暗号による認証文生成装置であって、前記認証文デー
タMをハッシュ化して認証子データh(M)を生成するハ
ッシュ化手段と、自然数の中から、その値xを2乗した
値が、Nを法として前記認証子データh(M)に等しくな
るような自然数xを、数値pを法とする剰余ならびに数
値qを法とする剰余を用いて求め、この自然数の値xを
桁数がkであるN進数の最下位桁の値h(C)0 とする最
下位桁暗号化手段と、この最下位桁の値h(C)0 と前記
認証子データh(M)を含む1次合同式を解くことによ
り、桁数がkであるN進数の各桁の数値を下位から順次
求める認証子上位桁暗号化手段と、この求められた各桁
の数値を順次連結し、全体として1つのN進数データと
することによって、暗号化認証子データh(C)を生成す
る連結手段と、を備えたことを要旨とするN進表現暗号
による認証文生成装置である。
となる認証文データMと、それぞれpとqとを値とする
2つの素数データで構成される秘密鍵データと、pとq
の積Nを値とする公開鍵データと、を用いて、前記認証
文データMに基づいて生成された認証子データh(M)を
暗号化した暗号化認証子データh(C)を生成するN進表
現暗号による認証文生成装置であって、前記認証文デー
タMをハッシュ化して認証子データh(M)を生成するハ
ッシュ化手段と、自然数の中から、その値xを2乗した
値が、Nを法として前記認証子データh(M)に等しくな
るような自然数xを、数値pを法とする剰余ならびに数
値qを法とする剰余を用いて求め、この自然数の値xを
桁数がkであるN進数の最下位桁の値h(C)0 とする最
下位桁暗号化手段と、この最下位桁の値h(C)0 と前記
認証子データh(M)を含む1次合同式を解くことによ
り、桁数がkであるN進数の各桁の数値を下位から順次
求める認証子上位桁暗号化手段と、この求められた各桁
の数値を順次連結し、全体として1つのN進数データと
することによって、暗号化認証子データh(C)を生成す
る連結手段と、を備えたことを要旨とするN進表現暗号
による認証文生成装置である。
【0094】また、請求項44記載の発明は、請求項4
3に記載のN進表現暗号による認証文生成装置におい
て、前記認証子上位桁暗号化手段は、前記h(C)0 を最
下位桁の値とし桁数がkであるN進数として表現したも
のを全体を2乗した形である暗号文を、前記2乗を展開
して得られるNに関するk−1次の多項式に対応させ、
該k−1次の多項式のそれぞれの係数値を、前記複数の
平文ブロックを変数とする多項式関数とみなして、前記
暗号文データ及び前記N進数の既に求められた下位の桁
の値に基づいて、このk−1次の式の係数値を昇順に順
次求める係数値計算手段と、この求められた係数値を使
って、Nのべき乗を法とする1次合同式を解くことによ
り、前記N進数におけるより上位の桁の値を順次確定し
ていく上位桁計算手段と、を備えることを要旨とする。
3に記載のN進表現暗号による認証文生成装置におい
て、前記認証子上位桁暗号化手段は、前記h(C)0 を最
下位桁の値とし桁数がkであるN進数として表現したも
のを全体を2乗した形である暗号文を、前記2乗を展開
して得られるNに関するk−1次の多項式に対応させ、
該k−1次の多項式のそれぞれの係数値を、前記複数の
平文ブロックを変数とする多項式関数とみなして、前記
暗号文データ及び前記N進数の既に求められた下位の桁
の値に基づいて、このk−1次の式の係数値を昇順に順
次求める係数値計算手段と、この求められた係数値を使
って、Nのべき乗を法とする1次合同式を解くことによ
り、前記N進数におけるより上位の桁の値を順次確定し
ていく上位桁計算手段と、を備えることを要旨とする。
【0095】また、請求項45記載の発明は、請求項4
3に記載のN進表現暗号による認証文生成装置におい
て、前記k桁のN進数の各桁の値をh(C)i (0≦i≦
k−1)とするとき、前記認証子上位桁暗号化手段は、
前記最下位桁の値h(C)0 と、公開鍵データNと、認証
子データh(M)と、ブロック数データkとを入力とし
て、h(C)0 ,h(C)1 ,…,h(C)i-1 に基づいてh
(C)i を求める同一の写像もしくは同一の計算式によ
り、再帰的にh(C)1 からh(C)k-1 までを順次暗号化
することを要旨とする。
3に記載のN進表現暗号による認証文生成装置におい
て、前記k桁のN進数の各桁の値をh(C)i (0≦i≦
k−1)とするとき、前記認証子上位桁暗号化手段は、
前記最下位桁の値h(C)0 と、公開鍵データNと、認証
子データh(M)と、ブロック数データkとを入力とし
て、h(C)0 ,h(C)1 ,…,h(C)i-1 に基づいてh
(C)i を求める同一の写像もしくは同一の計算式によ
り、再帰的にh(C)1 からh(C)k-1 までを順次暗号化
することを要旨とする。
【0096】また、請求項46記載の発明は、認証対象
となる認証文データMと、前記請求項39、40、4
1、43、44、45のいずれか一項に記載の方法また
は装置で暗号化された暗号化認証子h(C)データと、そ
れぞれpとqとを値とする2つの素数データで構成され
た秘密鍵データ同士の積Nを値とする公開鍵データと、
を用いて、前記認証文データM及びまたは前記暗号化認
証子データh(C)が正当であるか否かを判別するN進表
現暗号による認証文検証方法であって、暗号化認証子デ
ータh(C)を2乗した値に対して、Nのk乗を法とする
剰余である復号化認証子データh(M)を求め、この復号
化認証子データh(M)と、前記認証対象となる認証文デ
ータMをハッシュ化したハッシュ化認証子データh
(M)′が一致していた場合は、一連の認証ないし検証過
程が正常であったと判定し、この復号化認証子データh
(M)と、前記認証対象となる認証文データMをハッシュ
化したハッシュ化認証子データh(M)′が不一致であっ
た場合は、一連の認証ないし検証過程のいずれかに異常
があったと判定する、ことを要旨とするN進表現暗号に
よる認証文検証方法である。
となる認証文データMと、前記請求項39、40、4
1、43、44、45のいずれか一項に記載の方法また
は装置で暗号化された暗号化認証子h(C)データと、そ
れぞれpとqとを値とする2つの素数データで構成され
た秘密鍵データ同士の積Nを値とする公開鍵データと、
を用いて、前記認証文データM及びまたは前記暗号化認
証子データh(C)が正当であるか否かを判別するN進表
現暗号による認証文検証方法であって、暗号化認証子デ
ータh(C)を2乗した値に対して、Nのk乗を法とする
剰余である復号化認証子データh(M)を求め、この復号
化認証子データh(M)と、前記認証対象となる認証文デ
ータMをハッシュ化したハッシュ化認証子データh
(M)′が一致していた場合は、一連の認証ないし検証過
程が正常であったと判定し、この復号化認証子データh
(M)と、前記認証対象となる認証文データMをハッシュ
化したハッシュ化認証子データh(M)′が不一致であっ
た場合は、一連の認証ないし検証過程のいずれかに異常
があったと判定する、ことを要旨とするN進表現暗号に
よる認証文検証方法である。
【0097】また、請求項47記載の発明は、認証対象
となる認証文データMと、前記請求項39、40、4
1、43、44、45のいずれか一項に記載の方法また
は装置で暗号化された暗号化認証子h(C)データと、そ
れぞれpとqとを値とする2つの素数データで構成され
た秘密鍵データ同士の積Nを値とする公開鍵データと、
を用いて、前記認証文データM及びまたは前記暗号化認
証子データh(C)が正当であるか否かを判別するN進表
現暗号による認証文検証プログラムを格納した記憶媒体
であって、暗号化認証子データh(C)を2乗した値に対
して、Nのk乗を法とする剰余である復号化認証子デー
タh(M)を求め、この復号化認証子データh(M)と、前
記認証対象となる認証文データMをハッシュ化したハッ
シュ化認証子データh(M)′が一致していた場合は、一
連の認証ないし検証過程が正常であったと判定し、この
復号化認証子データh(M)と、前記認証対象となる認証
文データMをハッシュ化したハッシュ化認証子データh
(M)′が不一致であった場合は、一連の認証ないし検証
過程のいずれかに異常があったと判定する、ことを要旨
とするN進表現暗号による認証文検証プログラムを格納
した記憶媒体である。
となる認証文データMと、前記請求項39、40、4
1、43、44、45のいずれか一項に記載の方法また
は装置で暗号化された暗号化認証子h(C)データと、そ
れぞれpとqとを値とする2つの素数データで構成され
た秘密鍵データ同士の積Nを値とする公開鍵データと、
を用いて、前記認証文データM及びまたは前記暗号化認
証子データh(C)が正当であるか否かを判別するN進表
現暗号による認証文検証プログラムを格納した記憶媒体
であって、暗号化認証子データh(C)を2乗した値に対
して、Nのk乗を法とする剰余である復号化認証子デー
タh(M)を求め、この復号化認証子データh(M)と、前
記認証対象となる認証文データMをハッシュ化したハッ
シュ化認証子データh(M)′が一致していた場合は、一
連の認証ないし検証過程が正常であったと判定し、この
復号化認証子データh(M)と、前記認証対象となる認証
文データMをハッシュ化したハッシュ化認証子データh
(M)′が不一致であった場合は、一連の認証ないし検証
過程のいずれかに異常があったと判定する、ことを要旨
とするN進表現暗号による認証文検証プログラムを格納
した記憶媒体である。
【0098】また、請求項48記載の発明は、認証対象
となる認証文データMと、前記請求項39、40、4
1、43、44、45のいずれか一項に記載の方法また
は装置で暗号化された暗号化認証子h(C)データと、そ
れぞれpとqとを値とする2つの素数データで構成され
た秘密鍵データ同士の積Nを値とする公開鍵データと、
を用いて、前記認証文データM及びまたは前記暗号化認
証子データh(C)が正当であるか否かを判別するN進表
現暗号による認証文検証装置であって、前記暗号化認証
子データh(C)を2乗した値に対して、Nをk乗した数
値を法とする剰余である復号化認証子データh(M)を生
成する認証子復号化手段と、前記認証文データMをハッ
シュ化してハッシュ化認証子データh(M)′を生成する
ハッシュ化手段と、前記復号化認証子データh(M)と、
前記ハッシュ化記認証子データh(M)′とを比較し、両
者が一致していた場合は、一連の認証ないし検証過程が
正常であったと判定し、両者が不一致であった場合は、
一連の認証ないし検証過程のいずれかに異常があったと
判定する照合判定手段と、を備えたことを要旨とするN
進表現暗号による認証文検証装置である。
となる認証文データMと、前記請求項39、40、4
1、43、44、45のいずれか一項に記載の方法また
は装置で暗号化された暗号化認証子h(C)データと、そ
れぞれpとqとを値とする2つの素数データで構成され
た秘密鍵データ同士の積Nを値とする公開鍵データと、
を用いて、前記認証文データM及びまたは前記暗号化認
証子データh(C)が正当であるか否かを判別するN進表
現暗号による認証文検証装置であって、前記暗号化認証
子データh(C)を2乗した値に対して、Nをk乗した数
値を法とする剰余である復号化認証子データh(M)を生
成する認証子復号化手段と、前記認証文データMをハッ
シュ化してハッシュ化認証子データh(M)′を生成する
ハッシュ化手段と、前記復号化認証子データh(M)と、
前記ハッシュ化記認証子データh(M)′とを比較し、両
者が一致していた場合は、一連の認証ないし検証過程が
正常であったと判定し、両者が不一致であった場合は、
一連の認証ないし検証過程のいずれかに異常があったと
判定する照合判定手段と、を備えたことを要旨とするN
進表現暗号による認証文検証装置である。
【0099】本発明においては、公開鍵Nを基数とする
N進表現を暗号化に用いることにより、これに対応する
復号化の速度を大幅に高速化することができる。すなわ
ち、N進表現された最下位桁の復号は、従来と同様の復
号化方法により復号化されるが、N進表現された最下位
桁を除く上位桁は、復号化された最下位桁の値を利用し
て、1次合同式を解くことにより復号化することができ
る。
N進表現を暗号化に用いることにより、これに対応する
復号化の速度を大幅に高速化することができる。すなわ
ち、N進表現された最下位桁の復号は、従来と同様の復
号化方法により復号化されるが、N進表現された最下位
桁を除く上位桁は、復号化された最下位桁の値を利用し
て、1次合同式を解くことにより復号化することができ
る。
【0100】その結果、従来のRSA型暗号やラビン型
暗号と同等の強度を持つ公開鍵暗号を構成することがで
きる。また、復号化速度では、従来のRSA型暗号やラ
ビン型暗号より高速にすることができる。また、本方式
および装置は、認証にも適用でき、暗号化通信および認
証の双方に対称使用が可能となる。
暗号と同等の強度を持つ公開鍵暗号を構成することがで
きる。また、復号化速度では、従来のRSA型暗号やラ
ビン型暗号より高速にすることができる。また、本方式
および装置は、認証にも適用でき、暗号化通信および認
証の双方に対称使用が可能となる。
【0101】また、本発明において、一ブロック目を公
開鍵Nのビット長程度の任意の乱数とし、二ブロック目
以降に平文を埋め込むことにより、暗号化の冪乗過程で
乱数のランダム性が後続ブロックの統計的性質を覆い隠
すこととなり、RSA暗号やラビン暗号に知られている
同報通信攻撃などに弱いという欠点を克服できる。
開鍵Nのビット長程度の任意の乱数とし、二ブロック目
以降に平文を埋め込むことにより、暗号化の冪乗過程で
乱数のランダム性が後続ブロックの統計的性質を覆い隠
すこととなり、RSA暗号やラビン暗号に知られている
同報通信攻撃などに弱いという欠点を克服できる。
【0102】このとき使用される乱数は、暗号通信の送
信側で任意に生成したものでよく、1回限りの使い捨て
乱数とすることが好ましい。また受信側では、単に復号
結果から乱数部を切り捨てることになり、送信側で使用
する乱数と同一乱数を受信側で共有する必要はないの
で、乱数伝達の為の手段は不要である。
信側で任意に生成したものでよく、1回限りの使い捨て
乱数とすることが好ましい。また受信側では、単に復号
結果から乱数部を切り捨てることになり、送信側で使用
する乱数と同一乱数を受信側で共有する必要はないの
で、乱数伝達の為の手段は不要である。
【0103】
【発明の実施の形態】次に、図面を参照して本発明の実
施の形態を詳細に説明する。 [RSA型暗号化通信装置]図1は、本発明に係るN進
表現暗号をRSA型公開鍵暗号に適用した実施の形態を
示す暗号化通信装置の構成を示すブロック図である。
尚、以下の詳細説明においては、N進数または基数Nを
小文字のnを使用してn進数または基数nと表記するこ
ともある。
施の形態を詳細に説明する。 [RSA型暗号化通信装置]図1は、本発明に係るN進
表現暗号をRSA型公開鍵暗号に適用した実施の形態を
示す暗号化通信装置の構成を示すブロック図である。
尚、以下の詳細説明においては、N進数または基数Nを
小文字のnを使用してn進数または基数nと表記するこ
ともある。
【0104】図1によれば、暗号化通信装置11は、鍵
生成処理部21と、暗号化装置31と、復号化装置41
と通信路51とを備えて構成されている。
生成処理部21と、暗号化装置31と、復号化装置41
と通信路51とを備えて構成されている。
【0105】[鍵生成処理部]鍵生成処理部21は、従
来の公開鍵型暗号と同等の鍵生成機能を有するものであ
り、独立した装置として実現されてもよいし、後述され
る復号化装置41に含まれても良い。鍵生成処理部21
は、秘密鍵1である2個の素数p,qを生成し、その積
n=pqを計算し、公開鍵1とする。次いで、素数p,
qから後述されるLを計算し、公開鍵2であるeと、秘
密鍵2であるdを生成する。
来の公開鍵型暗号と同等の鍵生成機能を有するものであ
り、独立した装置として実現されてもよいし、後述され
る復号化装置41に含まれても良い。鍵生成処理部21
は、秘密鍵1である2個の素数p,qを生成し、その積
n=pqを計算し、公開鍵1とする。次いで、素数p,
qから後述されるLを計算し、公開鍵2であるeと、秘
密鍵2であるdを生成する。
【0106】[暗号化装置]暗号化装置31は、平文分
割処理部33と、データ結合部35と、暗号化処理部3
7とを備えて構成され、平文Mを暗号化した暗号文Cを
生成し、通信路51を介して復号化装置41へ送信する
ものである。
割処理部33と、データ結合部35と、暗号化処理部3
7とを備えて構成され、平文Mを暗号化した暗号文Cを
生成し、通信路51を介して復号化装置41へ送信する
ものである。
【0107】平文分割処理部33は、nの剰余類の範囲
内の大きさのk個のブロックに分割された分割平文(M
0 ,M1 ,…,Mk-1 )を生成し、データ結合処理部3
5へ引き渡す。
内の大きさのk個のブロックに分割された分割平文(M
0 ,M1 ,…,Mk-1 )を生成し、データ結合処理部3
5へ引き渡す。
【0108】データ結合処理部35は、次の式(23)
に示すように、1つのn進数M(n)の各桁の値が分割
平文の各ブロックMi (0≦i≦k−1)となるよう
に、それぞれのブロックのデータを結合したk桁のn進
数表現を行い、このn進数M(n)を暗号化処理部へ引
き渡す。
に示すように、1つのn進数M(n)の各桁の値が分割
平文の各ブロックMi (0≦i≦k−1)となるよう
に、それぞれのブロックのデータを結合したk桁のn進
数表現を行い、このn進数M(n)を暗号化処理部へ引
き渡す。
【0109】
【数18】 M(n)=M0 +nM1 +n2M2 +…+nk-1 Mk-1 …(23) 暗号化処理部37は、データ結合処理部35から受けた
n進数M(n)を受け手の公開鍵2であるeを用いて、
n進数M(n)を受け手の公開鍵2であるeを用いて、
【数19】 C≡(M(n))e ( mod nk ) ≡(M0 +nM1 +…+nk-1 Mk-1 )e ( mod nk ) …(24) 式(24)によって暗号化を行ない、通信路51を介し
て復号化装置41に対して送信する。
て復号化装置41に対して送信する。
【0110】[復号化装置]一方、復号化装置41は、
最下位桁復号化処理部43と、上位桁復号化処理部45
と、データ連結処理部47とを備えて構成され、通信路
51を介して受信した暗号文Cから、分割平文(M0 ,
M1 ,…,Mk-1 )を復号化し、これらを連結して、元
の平文Mを復元するものである。
最下位桁復号化処理部43と、上位桁復号化処理部45
と、データ連結処理部47とを備えて構成され、通信路
51を介して受信した暗号文Cから、分割平文(M0 ,
M1 ,…,Mk-1 )を復号化し、これらを連結して、元
の平文Mを復元するものである。
【0111】最下位桁復号化処理部43は、自らの秘密
鍵2であるdを用いて、
鍵2であるdを用いて、
【数20】 M0 ≡Cd ( mod n) …(25) 式(25)により最下位桁であるブロックM0 を復号化
し、上位桁復号化処理部45へ引き渡す。
し、上位桁復号化処理部45へ引き渡す。
【0112】上位桁復号化処理部45は、M0 を利用し
て、nを法とする1次合同式を解くことにより、最下位
桁M0 を除く上位桁のブロックM1 ,M2 ,…,Mk-1
を順次復号化し、M0 とともに、データ連結処理部47
へ引き渡す。
て、nを法とする1次合同式を解くことにより、最下位
桁M0 を除く上位桁のブロックM1 ,M2 ,…,Mk-1
を順次復号化し、M0 とともに、データ連結処理部47
へ引き渡す。
【0113】データ連結処理部47は、復号化された分
割平文(M0 ,M1 ,…,Mk-1 )を統合し、原平文M
へ復元する。
割平文(M0 ,M1 ,…,Mk-1 )を統合し、原平文M
へ復元する。
【0114】次に、本実施の形態の動作を詳細に説明す
る。
る。
【0115】[鍵生成処理部]まず、鍵生成処理部21
の動作を説明する。鍵生成処理部21により生成される
秘密鍵と公開鍵との組は、暗号化通信にも認証にも使用
可能であるので、以下の説明では、特に暗号化・復号化
鍵と、認証文生成・認証文検証鍵とを区別することはし
ない。
の動作を説明する。鍵生成処理部21により生成される
秘密鍵と公開鍵との組は、暗号化通信にも認証にも使用
可能であるので、以下の説明では、特に暗号化・復号化
鍵と、認証文生成・認証文検証鍵とを区別することはし
ない。
【0116】鍵生成の最初は、暗号の所要強度に応じた
桁数を持つ2つの有理素数を生成する。秘密鍵1は、こ
の2個の有理素数p,qとする。公開鍵1は、それらの
積n=pqとする。また、秘密鍵1、p,qに対して、
LCMを最小公倍数を求める関数とするとき、
桁数を持つ2つの有理素数を生成する。秘密鍵1は、こ
の2個の有理素数p,qとする。公開鍵1は、それらの
積n=pqとする。また、秘密鍵1、p,qに対して、
LCMを最小公倍数を求める関数とするとき、
【数21】 L=LCM(p−1,q−1) …(26) を求める。次に、GCDを最大公約数を求める関数とす
るとき、
るとき、
【数22】 ed≡1( mod L),GCD(e,L)=GCD(e,n)=1 …(27) を満たす、e,dを求める。秘密鍵2はdとし、公開鍵
2はeとする。これらの鍵を生成する装置の機能図を、
図7に示す。
2はeとする。これらの鍵を生成する装置の機能図を、
図7に示す。
【0117】[平文分割処理部]図8は、平文分割処理
部33の概略動作を示すフローチャート図である。平文
分割処理部33の初期状態として、平文Mのビット列、
分割ブロック数k、分割平文長[log2n](ここ
で、[x]は、xを超えない最大整数を示すガウス記号
である)、がそれぞれ与えられるものとする。
部33の概略動作を示すフローチャート図である。平文
分割処理部33の初期状態として、平文Mのビット列、
分割ブロック数k、分割平文長[log2n](ここ
で、[x]は、xを超えない最大整数を示すガウス記号
である)、がそれぞれ与えられるものとする。
【0118】まず、制御変数iを0に初期設定する(ス
テップS201)。次いで、Mの先頭より[log
2n]ビット長のブロックMi を切り出し、残りのビッ
ト列を新たなMとする(ステップS203)。次いで、
iとk−1とを比較し(ステップS205)、等しくな
ければiを1だけ増加させて(ステップS207)、ス
テップS203へ戻る。ステップS205の比較結果、
等しければ、M0,M1,…,MK-1 をデータ結合処理部
35へ出力する(ステップS209)。次いで、Mが空
であるか否かを判定し(ステップS211)、空でなけ
れば、ステップS201へ戻る。空であれば、処理を終
了する。
テップS201)。次いで、Mの先頭より[log
2n]ビット長のブロックMi を切り出し、残りのビッ
ト列を新たなMとする(ステップS203)。次いで、
iとk−1とを比較し(ステップS205)、等しくな
ければiを1だけ増加させて(ステップS207)、ス
テップS203へ戻る。ステップS205の比較結果、
等しければ、M0,M1,…,MK-1 をデータ結合処理部
35へ出力する(ステップS209)。次いで、Mが空
であるか否かを判定し(ステップS211)、空でなけ
れば、ステップS201へ戻る。空であれば、処理を終
了する。
【0119】なお、フローチャートには示さなかった
が、最後のブロックのパディングには、通常用いられる
ブランクや0に代えて、任意に発生された乱数を用いて
も良い。
が、最後のブロックのパディングには、通常用いられる
ブランクや0に代えて、任意に発生された乱数を用いて
も良い。
【0120】[データ結合処理部]データ結合処理部3
5は、1つのn進数M(n)の各桁の値が分割平文の各
ブロックMi (0≦i≦k−1)となるように、それぞ
れのブロックのデータを結合したn進数表現を行い、こ
のn進数M(n)を暗号化処理部へ引き渡す。
5は、1つのn進数M(n)の各桁の値が分割平文の各
ブロックMi (0≦i≦k−1)となるように、それぞ
れのブロックのデータを結合したn進数表現を行い、こ
のn進数M(n)を暗号化処理部へ引き渡す。
【0121】
【数23】 M(n)=M0 +nM1 +n2M2 +…+nk-1 Mk-1 …(28)
【0122】[暗号化処理部]暗号化処理部37は、デ
ータ結合処理部35から受けたn進数M(n)を受け手
の公開鍵2であるeと公開鍵1であるnとを用いて、
ータ結合処理部35から受けたn進数M(n)を受け手
の公開鍵2であるeと公開鍵1であるnとを用いて、
【数24】 C≡(M(n))e ( mod nk ) ≡(M0 +nM1 +…+nk-1 Mk-1 )e ( mod nk ) …(29) 式(29)によって暗号化を行ない、暗号文Cを通信路
51を介して復号化装置41へ送信する。
51を介して復号化装置41へ送信する。
【0123】[最下位桁復号化処理部]復号化装置41
の最下位桁復号化処理部43は、送られてきた暗号文C
に対して、公開鍵1:nと、秘密鍵2:dとを用いて、
の最下位桁復号化処理部43は、送られてきた暗号文C
に対して、公開鍵1:nと、秘密鍵2:dとを用いて、
【数25】 M0 ≡Cd ( mod n) …(30) 式(30)を計算し、n進表現の最下位桁であるM0 を
復号化する。この復号化関数は、通常のRSA型公開鍵
暗号と同じ復号化関数であり、M0 の復号化は、従来の
RSA型公開鍵暗号と同等の安全性を有しているという
ことができる。
復号化する。この復号化関数は、通常のRSA型公開鍵
暗号と同じ復号化関数であり、M0 の復号化は、従来の
RSA型公開鍵暗号と同等の安全性を有しているという
ことができる。
【0124】[上位桁復号化処理部]復号化装置41の
上位桁復号化処理部45は、その詳細を図3に示すよう
に、係数計算部45aと、上位桁計算部45bとを備え
て構成されている。さらに、係数計算部45aは、係数
テーブル記憶部45cと、この係数テーブル記憶部45
cの読出し書き込みを制御する読出・書込制御部45d
とを備えて構成されている。
上位桁復号化処理部45は、その詳細を図3に示すよう
に、係数計算部45aと、上位桁計算部45bとを備え
て構成されている。さらに、係数計算部45aは、係数
テーブル記憶部45cと、この係数テーブル記憶部45
cの読出し書き込みを制御する読出・書込制御部45d
とを備えて構成されている。
【0125】上位桁復号化処理部45の上位桁復号化に
おいて、最下位桁M0 を除く上位桁Mi (1≦i≦k−
1)は、
おいて、最下位桁M0 を除く上位桁Mi (1≦i≦k−
1)は、
【数26】 C≡(M0 +nM1 +…+nk-1 Mk-1 )e (mod nk ) …(31) 暗号化を示す式(31)を展開して得られる後述の展開
式(32)から、上位桁計算部45bにより1次合同式
を解くことにより順次帰納的に求めることができる。
式(32)から、上位桁計算部45bにより1次合同式
を解くことにより順次帰納的に求めることができる。
【0126】ここで、式(31)の右辺(M0 +nM1
+…+nk-1 Mk-1 )e の展開式のni (0≦i≦k−
1)の係数をKi とする。すなわち、
+…+nk-1 Mk-1 )e の展開式のni (0≦i≦k−
1)の係数をKi とする。すなわち、
【数27】 (M0 +nM1 +…+nk-1 Mk-1 )e =n0 K0 +n1 K1 +n2 K2 +…+nk-1 Kk-1 +…+ne(k-1)Ke(k-1) …(32) とする(Ki の計算は次節に記述する)。ここで、K0
,K1 ,K2 ,…,Kk-1 は、M0 ,M1 ,M2 ,
…,Mk-1 を変数とする多項式関数であり、M0 ,M1
,M2 ,…,Mk-1 のそれぞれの値を入力することに
より整数値を出力する。関数K0 ,K1 ,K2 ,…,K
k-1 の具体的な式については後述する。なお、Kk ,K
k+1 ,…,Ke(k-1)については、復号処理に使用しない
ため考察を省略する。
,K1 ,K2 ,…,Kk-1 は、M0 ,M1 ,M2 ,
…,Mk-1 を変数とする多項式関数であり、M0 ,M1
,M2 ,…,Mk-1 のそれぞれの値を入力することに
より整数値を出力する。関数K0 ,K1 ,K2 ,…,K
k-1 の具体的な式については後述する。なお、Kk ,K
k+1 ,…,Ke(k-1)については、復号処理に使用しない
ため考察を省略する。
【0127】また、計算の便宜上、K'iを次のように定
義する。
義する。
【0128】
【数28】 K'i=Ki −eM0 e-1 Mi (1≦i<k−1) …(33) ここで、K'1 ,K'2 ,…,K'k-1 は、K0 ,K1 ,
K2 ,…,Kk-1 と同じように、M0 ,M1 ,M2 ,
…,Mk-2 を変数とする多項式関数であり、M0 ,M1
,M2 ,…,Mk-2 のそれぞれの値を入力することに
より整数値を出力する。但し、K'iはMi の値に依存し
ないことに注意を要する。
K2 ,…,Kk-1 と同じように、M0 ,M1 ,M2 ,
…,Mk-2 を変数とする多項式関数であり、M0 ,M1
,M2 ,…,Mk-2 のそれぞれの値を入力することに
より整数値を出力する。但し、K'iはMi の値に依存し
ないことに注意を要する。
【0129】次にM1 の求め方について説明する。K0
及びK'1は、M0 のみを変数とする多項式関数であり、
前項までに復号化されたM0 を入力することにより整数
値を出力するものである。その出力値K0 ,K'1を用い
て、
及びK'1は、M0 のみを変数とする多項式関数であり、
前項までに復号化されたM0 を入力することにより整数
値を出力するものである。その出力値K0 ,K'1を用い
て、
【数29】 とするとき、合同式
【数30】 eM0 e-1 x≡b1 (mod n) …(35) をみたすxを求めることにより、M1 を復号化する。
【0130】次にM2 の求め方について説明する。K0
,K1 ,及びK'2 は、M0 ,M1のみを変数とする多
項式関数であり、前項までに復号化されたM0 ,M1 を
入力することにより整数値を出力するものである。その
出力値K0 ,K1,K'2を用いて、
,K1 ,及びK'2 は、M0 ,M1のみを変数とする多
項式関数であり、前項までに復号化されたM0 ,M1 を
入力することにより整数値を出力するものである。その
出力値K0 ,K1,K'2を用いて、
【数31】 とするとき、合同式
【数32】 eM0 e-1 x≡b2 (mod n) …(37) をみたすxを求めることにより、M2 を復号化する。以
下、同様にM3 ,M4 ,…が計算できる。
下、同様にM3 ,M4 ,…が計算できる。
【0131】次に、Mk-2 までの求められた値を用い
て、Mk-1 を求める方法について説明する。K0 ,K1
,…,Kk-2 ,及びK'k-1は、M0 ,M1 ,…,Mk-2
のみを変数とする多項式関数であり、前項までに復号
化されたM0 ,M1 ,…,Mk-2を入力することにより
整数値を出力するものである。その出力値K0 ,K1,
…,Kk-2 ,K'k-1を用いて、
て、Mk-1 を求める方法について説明する。K0 ,K1
,…,Kk-2 ,及びK'k-1は、M0 ,M1 ,…,Mk-2
のみを変数とする多項式関数であり、前項までに復号
化されたM0 ,M1 ,…,Mk-2を入力することにより
整数値を出力するものである。その出力値K0 ,K1,
…,Kk-2 ,K'k-1を用いて、
【数33】 とするとき、合同式
【数34】 eM0 e-1 x≡bk-1 (mod n) …(39) をみたすxを求めることにより、Mk-1 を復号化する。
【0132】[(M0 +nM1 +…+nk-1 Mk-1 )e
の展開式]本発明で必要となる(M0 +nM1 +…+n
k-1 Mk-1 )e の展開式に於けるni の係数Ki (i=
0,1,2,…,k−1)の求め方を以下に記述する。
の展開式]本発明で必要となる(M0 +nM1 +…+n
k-1 Mk-1 )e の展開式に於けるni の係数Ki (i=
0,1,2,…,k−1)の求め方を以下に記述する。
【0133】乗法の分配法則から導かれる多項定理よ
り、
り、
【数35】 であり、ni の係数は、
【数36】 Γi ={s0 ,s1 ,…,sk-1 |s1 +2s2 +…+(k−1)sk-1 =i, 0≦s0 ,s1 ,…,sk-1 ≦e, s0 +s1 +…+sk-1 =e} …(41) をみたす集合Γi を求め、
【数37】 を計算することにより求まる。
【0134】実際に、iが小さい場合を以下に記述す
る。
る。
【0135】
【数38】 K0 =MO e K1 =eM0 e-1 M1 K2 = eC2 M0 e-2 M1 2 +eM0 e-1 M2 K3 = eC3 M0 e-3 M1 3 +2 eC2 M0 e-1 M1 M2 +eM0 e-1 M3 K4 = eC4 M0 e-4 M1 5 +3 eC4 M0 e-3 M1 2 M2 + eC2 M0 e-2 M2 2 +eM0 e-1 M4 K5 = eC5 M0 e-5 M1 5 +3 eC4 M0 e-4 M1 3 M2 +3 eC3 M0 e-3 M1 M2 2 +2 eC2 M0 e-2 M2 M3 +2 eC3 M0 e-2 M1 M4 +eM0 e-1 M5 K6 = eC6 M0 e-6 M1 6 +5 eC5 M0 e-5 M1 4 M2 +4 eC4 M0 e-4 M1 3 M3 +3 eC3 M0 e-3 M1 2 M4 + eC3 M0 e-3 M2 3 +e C2 M0 e-2 M3 2 +2 eC2 M0 e-2 M2 M4 +2 eC2 M0 e-2 M1 M5 +eM0 e-1 M6 K7 = eC7 M0 e-7 M1 7 +6 eC6 M0 e-6 M1 5 M2 +5 eC5 M0 e-5 M1 4 M3 + 5C2eC5 M0 e-5 M1 3 M2 2 + eC4 M0 e-4 M1 3 M4 +2 4C2eC4 M0 e-4 M1 2 M2 M3 +4 eC4 M0 e-4 M1 M2 3 +3 eC3 M0 e-3 M1 2 M5 +3 eC3 M0 e-3 M1 M3 2 +3 eC3 M0 e-3 M2 2 M3 +2 eC2 M0 e-2 M1 M6 +2 eC2 M0 e-2 M2 M5 +2 eC2 M0 e-2 M3 M4 +eM0 e-1 M7 … Kk-1 = {M0 ,M1 ,…,Mk-1 の多項式} …(43) ここで、 xCy は、相異なるx個からy個の元を取り出
す組合せ(の数)である。係数計算部45aは、この式
(43)に基づいて、係数Ki を順次計算し、係数テー
ブル記憶部45cに格納する。
す組合せ(の数)である。係数計算部45aは、この式
(43)に基づいて、係数Ki を順次計算し、係数テー
ブル記憶部45cに格納する。
【0136】[データ連結処理部]次に、データ連結処
理部47は、最下位桁復号化処理部43及び上位桁復号
化処理部45によって得られる分割平文(M0 ,M1 ,
…,Mk-1 )を順番に連結し原平文Mを得る。
理部47は、最下位桁復号化処理部43及び上位桁復号
化処理部45によって得られる分割平文(M0 ,M1 ,
…,Mk-1 )を順番に連結し原平文Mを得る。
【0137】次に、この暗号化通信装置11の動作をフ
ローチャート及びメモリ上のデータ配置を示す表を参照
しながら、詳細に説明する。
ローチャート及びメモリ上のデータ配置を示す表を参照
しながら、詳細に説明する。
【0138】図9は、本発明に係るn進表現暗号をRS
A型公開鍵暗号に適用した場合の鍵生成処理を示すフロ
ーチャートであり、表1は、同処理におけるメモリ上の
データ配置を示す表である。なお、以下の各表におい
て、属性欄はデータの属性を示し、それぞれの処理過程
における入力、作業領域、および出力の区別を表示して
いる。
A型公開鍵暗号に適用した場合の鍵生成処理を示すフロ
ーチャートであり、表1は、同処理におけるメモリ上の
データ配置を示す表である。なお、以下の各表におい
て、属性欄はデータの属性を示し、それぞれの処理過程
における入力、作業領域、および出力の区別を表示して
いる。
【0139】
【表1】 表1に示すように、データ番号1及び2に与えられた秘
密鍵1であるふたつの素数p,qに対して、(p−1)
と、(q−1)との最小公倍数であるLを求め、これを
データ番号3に格納する(ステップS301)。
密鍵1であるふたつの素数p,qに対して、(p−1)
と、(q−1)との最小公倍数であるLを求め、これを
データ番号3に格納する(ステップS301)。
【0140】次いで、ed≡1(mod L),GCD
(e,L)=GCD(e,n)=1となる2数e,dを
求め、それぞれ公開鍵2および秘密鍵2として、それぞ
れデータ番号4及び5に格納して(ステップS30
3)、鍵生成処理を終了する。
(e,L)=GCD(e,n)=1となる2数e,dを
求め、それぞれ公開鍵2および秘密鍵2として、それぞ
れデータ番号4及び5に格納して(ステップS30
3)、鍵生成処理を終了する。
【0141】図10は、暗号化装置31の暗号化送信処
理の動作を示すフローチャートであり、表2は、同処理
におけるメモリ上のデータ配置を示す表である。
理の動作を示すフローチャートであり、表2は、同処理
におけるメモリ上のデータ配置を示す表である。
【0142】
【表2】 表2に示すように、暗号化送信処理は、公開鍵1n及び
公開鍵2eがそれぞれデータ番号1、2に与えられ、さ
らに、分割平文長[log2n]及び平文Mがデータ番
号4及び5に与えられる。なお、ここでは分割ブロック
数kは、分割の結果として得られるものとしたが、最初
から定数が与えられ、この定数の分割ブロック毎に暗号
化を行うことも可能である。
公開鍵2eがそれぞれデータ番号1、2に与えられ、さ
らに、分割平文長[log2n]及び平文Mがデータ番
号4及び5に与えられる。なお、ここでは分割ブロック
数kは、分割の結果として得られるものとしたが、最初
から定数が与えられ、この定数の分割ブロック毎に暗号
化を行うことも可能である。
【0143】図10によれば、まず、データ番号5の平
文Mを読出し、その先頭から、それぞれ[log2n]
ビット長のk個の平文ブロックMi (0≦i≦k−1)
を切り出し、各平文ブロックをデータ番号6から5+k
までに順次格納し、データ番号5には、切り出した残り
のメッセージM′を格納する(ステップS401)。
文Mを読出し、その先頭から、それぞれ[log2n]
ビット長のk個の平文ブロックMi (0≦i≦k−1)
を切り出し、各平文ブロックをデータ番号6から5+k
までに順次格納し、データ番号5には、切り出した残り
のメッセージM′を格納する(ステップS401)。
【0144】次いで、データ番号6から5+kまでのk
個の平文ブロックに対して、n進数、M(n)=M0 +
nM1 +n2M2 +…+nk-1Mk-1を求める(ステップ
S403)。
個の平文ブロックに対して、n進数、M(n)=M0 +
nM1 +n2M2 +…+nk-1Mk-1を求める(ステップ
S403)。
【0145】次いで、データ番号1、2の公開鍵1n及
び公開鍵2eを用いて、C≡{M(n)}e ( mod
nk)を求め、暗号文Cとして、データ番号5+k+1
に格納する(ステップS405)。次いで、データ番号
5+k+1の暗号文を送信し(ステップS407)、デ
ータ番号5にメッセージが残っているか否かを調べる
(ステップS409)。メッセージが残っていれば、ス
テップS401へ戻る。メッセージが残っていなけれ
ば、終了する。
び公開鍵2eを用いて、C≡{M(n)}e ( mod
nk)を求め、暗号文Cとして、データ番号5+k+1
に格納する(ステップS405)。次いで、データ番号
5+k+1の暗号文を送信し(ステップS407)、デ
ータ番号5にメッセージが残っているか否かを調べる
(ステップS409)。メッセージが残っていれば、ス
テップS401へ戻る。メッセージが残っていなけれ
ば、終了する。
【0146】図11は、復号化装置41の受信復号化処
理の動作を示すフローチャートであり、表3は、同処理
におけるメモリ上のデータ配置を示す表である。
理の動作を示すフローチャートであり、表3は、同処理
におけるメモリ上のデータ配置を示す表である。
【0147】
【表3】 表3に示すように、受信復号化処理においては、データ
番号1に公開鍵1n及び公開鍵2eが与えられ、データ
番号2に秘密鍵2dが与えられ、さらに、分割ブロック
数k及び分割平文長[log2n]がデータ番号3及び
4に与えられる。また、暗号文Cは、データ番号4+2
k+1に与えられ、データ番号5から4+2kまで及び
4+2k+2から4+3k+1までは作業領域として使
用され、結果の統合平文はデータ番号4+3k+2に格
納される。
番号1に公開鍵1n及び公開鍵2eが与えられ、データ
番号2に秘密鍵2dが与えられ、さらに、分割ブロック
数k及び分割平文長[log2n]がデータ番号3及び
4に与えられる。また、暗号文Cは、データ番号4+2
k+1に与えられ、データ番号5から4+2kまで及び
4+2k+2から4+3k+1までは作業領域として使
用され、結果の統合平文はデータ番号4+3k+2に格
納される。
【0148】図11によれば、まず、データ番号4+2
k+1の暗号文Cに対して、データ番号1、2の公開鍵
1n、秘密鍵2dを使用して、(mod n)のもとで
d乗演算を行い、n進表現された平文の最下位桁である
平文ブロックM0 を復元し、その結果をデータ番号4+
2k+2に格納する(ステップS501)。
k+1の暗号文Cに対して、データ番号1、2の公開鍵
1n、秘密鍵2dを使用して、(mod n)のもとで
d乗演算を行い、n進表現された平文の最下位桁である
平文ブロックM0 を復元し、その結果をデータ番号4+
2k+2に格納する(ステップS501)。
【0149】次いで、n進表現された平文を法nkのも
とでe乗した式を展開したときのn0の項の係数である
K0 を、先に求めたM0 と公開鍵2eとを用いてK0 =
M0 eにより求め、データ番号5に格納する(ステップ
S503)。次いでn進表現された上位桁を順次求める
ための反復パラメータiを1に初期設定する(ステップ
S505)。
とでe乗した式を展開したときのn0の項の係数である
K0 を、先に求めたM0 と公開鍵2eとを用いてK0 =
M0 eにより求め、データ番号5に格納する(ステップ
S503)。次いでn進表現された上位桁を順次求める
ための反復パラメータiを1に初期設定する(ステップ
S505)。
【0150】次いで、反復パラメータiについて、M0
,M1 ,…,Mi-1 を変数とする多項式関数であるKi
-1 を、前のステップまでに求められたM0 ,M1 ,
…,Mi-1 を用いて計算し、その値(整数値)をデータ
番号4+iに格納し、同様に、M0 ,M1 ,…,Mi-1
を変数とする多項式関数であるK'iを、前のステップま
でに求められたM0 ,M1 ,…,Mi-1 を用いて計算
し、その値(整数値)をデータ番号5+k+iに格納す
る(ステップS506)。
,M1 ,…,Mi-1 を変数とする多項式関数であるKi
-1 を、前のステップまでに求められたM0 ,M1 ,
…,Mi-1 を用いて計算し、その値(整数値)をデータ
番号4+iに格納し、同様に、M0 ,M1 ,…,Mi-1
を変数とする多項式関数であるK'iを、前のステップま
でに求められたM0 ,M1 ,…,Mi-1 を用いて計算
し、その値(整数値)をデータ番号5+k+iに格納す
る(ステップS506)。
【0151】次いで、データ番号4+2k+1の暗号文
Cと、データ番号5から5+i−1のKj (0≦j≦i
−1)と、データ番号5+k+iのK'iに対して、以下
のbi を計算する(ステップS507)。
Cと、データ番号5から5+i−1のKj (0≦j≦i
−1)と、データ番号5+k+iのK'iに対して、以下
のbi を計算する(ステップS507)。
【0152】
【数39】 次いで、ユークリッドの互除法により、合同式
【数40】 eM0 e-1 x≡bi (mod n) …(45) をみたすxを求めることにより、Mi を復号化し、その
結果をデータ番号4+2k+2+iに格納する(ステッ
プS509)。
結果をデータ番号4+2k+2+iに格納する(ステッ
プS509)。
【0153】次いで、反復終了条件i=k−1を判定し
(ステップS511)、成立しなければ、反復パラメー
タを1だけ増加させて(ステップS513)、ステップ
S507へ戻る。反復終了条件が成立すれば、データ番
号4+2k+2から4+3k+1までの復号化されたk
個の平文ブロックを連接し、そのビット列をデータ番号
4+3k+2の末尾に連接して(ステップS515)、
処理を終了する。
(ステップS511)、成立しなければ、反復パラメー
タを1だけ増加させて(ステップS513)、ステップ
S507へ戻る。反復終了条件が成立すれば、データ番
号4+2k+2から4+3k+1までの復号化されたk
個の平文ブロックを連接し、そのビット列をデータ番号
4+3k+2の末尾に連接して(ステップS515)、
処理を終了する。
【0154】[RSA型暗号化通信装置の変形例]次
に、図21は、本発明に係るN進表現暗号をRSA型公
開鍵暗号に適用した実施の形態の変形例を示す暗号化通
信装置の構成を示すブロック図である。本変形例では、
複数の平文ブロックMの先頭に乱数ブロックRを配置
し、M0 をRで置き換えた例を説明する。これは、平文
Mに代えて、乱数ブロックRと平文Mとを連接したR‖
Mを暗号化の対象とするとも考えられる。
に、図21は、本発明に係るN進表現暗号をRSA型公
開鍵暗号に適用した実施の形態の変形例を示す暗号化通
信装置の構成を示すブロック図である。本変形例では、
複数の平文ブロックMの先頭に乱数ブロックRを配置
し、M0 をRで置き換えた例を説明する。これは、平文
Mに代えて、乱数ブロックRと平文Mとを連接したR‖
Mを暗号化の対象とするとも考えられる。
【0155】図21によれば、暗号化通信装置12は、
鍵生成処理部21と、暗号化装置30と、復号化装置4
1と通信路51とを備えて構成されていて、暗号化装置
30以外の構成要素は、図1と同様であるので詳細な説
明は省略する。
鍵生成処理部21と、暗号化装置30と、復号化装置4
1と通信路51とを備えて構成されていて、暗号化装置
30以外の構成要素は、図1と同様であるので詳細な説
明は省略する。
【0156】[暗号化装置]暗号化装置30は、乱数発
生部32と、平文分割処理部34と、データ結合部35
と、暗号化処理部37とを備えて構成され、先頭ブロッ
クRとこれに続く平文ブロックM1 ,M2 ,…,MK-1
を暗号化した暗号文Cを生成し、通信路51を介して復
号化装置41へ送信するものである。図21の暗号化装
置30が図1の暗号化装置31と異なる点は、乱数発生
部32が追加されていることと、平文分割処理部34に
乱数Rと平文Mとが入力されることである。
生部32と、平文分割処理部34と、データ結合部35
と、暗号化処理部37とを備えて構成され、先頭ブロッ
クRとこれに続く平文ブロックM1 ,M2 ,…,MK-1
を暗号化した暗号文Cを生成し、通信路51を介して復
号化装置41へ送信するものである。図21の暗号化装
置30が図1の暗号化装置31と異なる点は、乱数発生
部32が追加されていることと、平文分割処理部34に
乱数Rと平文Mとが入力されることである。
【0157】乱数発生部32は、分割平文長[log2
N]ビットに等しい長さの乱数Rを発生する。この乱数
は、数学的または論理的に発生される再現性のある擬似
乱数であってもよいし、再現性のない乱数であっても良
い。また、乱数Rは、復号化装置41と共有する必要が
ないので、ホワイトノイズ等を利用した数学的、論理的
に再現性のない乱数発生手段を用いても良い。さらに、
一回の暗号化通信毎に新たな乱数Rを生成して使用する
ことが暗号の強度を高める点で好ましい。複数の通信相
手に対して同じMを送る同報通信の場合にも、通信相手
毎に乱数Rの値を変えることにより、同報通信攻撃に対
する暗号強度が高まる。
N]ビットに等しい長さの乱数Rを発生する。この乱数
は、数学的または論理的に発生される再現性のある擬似
乱数であってもよいし、再現性のない乱数であっても良
い。また、乱数Rは、復号化装置41と共有する必要が
ないので、ホワイトノイズ等を利用した数学的、論理的
に再現性のない乱数発生手段を用いても良い。さらに、
一回の暗号化通信毎に新たな乱数Rを生成して使用する
ことが暗号の強度を高める点で好ましい。複数の通信相
手に対して同じMを送る同報通信の場合にも、通信相手
毎に乱数Rの値を変えることにより、同報通信攻撃に対
する暗号強度が高まる。
【0158】平文分割処理部34は、入力される平文M
の先頭に乱数発生部32から与えられる乱数Rを連接し
てR‖Mとしたものを、nの剰余類の範囲内の大きさの
k個のブロックに分割された分割平文(R ,M1 ,
…,Mk-1 )を生成し、データ結合処理部35へ引き渡
す。この結果、本変形例では、図1に示した実施形態の
分割平文の先頭ブロックM0 に代えて、乱数Rが配置さ
れたこととなる。これは、平文Mのビット列の先頭に
[log2 N]ビット長の乱数Rを配置してR‖Mと
し、そのメッセージを改めてMとしたと考えても良い。
の先頭に乱数発生部32から与えられる乱数Rを連接し
てR‖Mとしたものを、nの剰余類の範囲内の大きさの
k個のブロックに分割された分割平文(R ,M1 ,
…,Mk-1 )を生成し、データ結合処理部35へ引き渡
す。この結果、本変形例では、図1に示した実施形態の
分割平文の先頭ブロックM0 に代えて、乱数Rが配置さ
れたこととなる。これは、平文Mのビット列の先頭に
[log2 N]ビット長の乱数Rを配置してR‖Mと
し、そのメッセージを改めてMとしたと考えても良い。
【0159】データ結合処理部35は、次の式(46)
に示すように、1つのn進数M(n)の各桁の値が乱数
Rまたは分割平文の各ブロックMi (1≦i≦k−1)
となるように、それぞれのブロックのデータを結合した
k桁のn進数表現を行い、このn進数M(n)を暗号化
処理部へ引き渡す。
に示すように、1つのn進数M(n)の各桁の値が乱数
Rまたは分割平文の各ブロックMi (1≦i≦k−1)
となるように、それぞれのブロックのデータを結合した
k桁のn進数表現を行い、このn進数M(n)を暗号化
処理部へ引き渡す。
【0160】
【数41】 M(n)=R+nM1 +n2M2 +…+nk-1 Mk-1 …(46) 暗号化処理部37は、データ結合処理部35から受けた
n進数M(n)を受け手の公開鍵2であるeを用いて、
n進数M(n)を受け手の公開鍵2であるeを用いて、
【数42】 C≡(M(n))e ( mod nk ) ≡(R +nM1 +…+nk-1 Mk-1 )e ( mod nk ) …(47) 式(47)によって暗号化を行ない、通信路51を介し
て復号化装置41に対して送信する。
て復号化装置41に対して送信する。
【0161】[復号化装置]一方、復号化装置41は、
最下位桁復号化処理部43と、上位桁復号化処理部45
と、データ連結処理部47とを備えて図1と同様に構成
され、通信路51を介して受信した暗号文Cから、分割
平文(R,M1 ,…,Mk-1 )を復号化し、これらを連
結して、元の平文Mを復元するものである。
最下位桁復号化処理部43と、上位桁復号化処理部45
と、データ連結処理部47とを備えて図1と同様に構成
され、通信路51を介して受信した暗号文Cから、分割
平文(R,M1 ,…,Mk-1 )を復号化し、これらを連
結して、元の平文Mを復元するものである。
【0162】最下位桁復号化処理部43は、自らの秘密
鍵2であるdを用いて、
鍵2であるdを用いて、
【数43】 R ≡Cd ( mod n) …(48) 式(48)により最下位桁である乱数Rを復号化し、上
位桁復号化処理部45へ引き渡す。
位桁復号化処理部45へ引き渡す。
【0163】上位桁復号化処理部45は、乱数Rを利用
して、nを法とする1次合同式を解くことにより、最下
位桁Rを除く上位桁のブロックM1 ,M2 ,…,Mk-1
を順次復号化し、データ連結処理部47へ引き渡す。
して、nを法とする1次合同式を解くことにより、最下
位桁Rを除く上位桁のブロックM1 ,M2 ,…,Mk-1
を順次復号化し、データ連結処理部47へ引き渡す。
【0164】データ連結処理部47は、復号化された分
割平文(M1 ,…,Mk-1 )を統合し、原平文Mへ復元
する。乱数Rはメッセージとしては必要ないものであ
り、上位桁復号化処理部45による復号に利用されたの
ち、廃棄しても差し支えない。
割平文(M1 ,…,Mk-1 )を統合し、原平文Mへ復元
する。乱数Rはメッセージとしては必要ないものであ
り、上位桁復号化処理部45による復号に利用されたの
ち、廃棄しても差し支えない。
【0165】[N進表現暗号をRSA型暗号に適用した
場合の具体例]次に、本発明に係るN進表現暗号をRS
A型暗号に適用した場合の実施の形態を具体的な数値を
用いて説明する。
場合の具体例]次に、本発明に係るN進表現暗号をRS
A型暗号に適用した場合の実施の形態を具体的な数値を
用いて説明する。
【0166】[鍵生成処理部]2個の素数p=863,
q=733(秘密鍵1)を生成し、その積n=6325
79(公開鍵1)を決定する。次に素数p,qからL=
315492を計算し、e=125(公開鍵2)と、d
=118625(秘密鍵2)を生成する。
q=733(秘密鍵1)を生成し、その積n=6325
79(公開鍵1)を決定する。次に素数p,qからL=
315492を計算し、e=125(公開鍵2)と、d
=118625(秘密鍵2)を生成する。
【0167】[平文分割処理部]平文M=123456
7890に対して、剰余類の範囲内の分割平文(M0 ,
M1 )=(12345,67890)を生成する。
7890に対して、剰余類の範囲内の分割平文(M0 ,
M1 )=(12345,67890)を生成する。
【0168】[データ結合処理部及び暗号化処理部]受
け手の公開鍵2であるe=125を用い、式
け手の公開鍵2であるe=125を用い、式
【数44】 C≡(12345+632579×67890)125 (mod 6325792 )=91837206038 …(49) によって暗号化を行ない、受け手に送る。
【0169】[最下位桁復号化処理]受け手は自らの秘
密鍵2であるd=118625を用い、式
密鍵2であるd=118625を用い、式
【数45】 M0 =91837206038118625 (mod 632579)=12345 …(50) によりM0 を復号化する。
【0170】[上位桁復号化処理]632579を法と
する1次合同式
する1次合同式
【数46】 53744x≡59744 (mod 632579) …(51) を解くことにより、M1 =67890を得る。
【0171】[データ連結処理部]復号化された分割平
文(M0 ,M1 )=(12345,67890)を統合
し、原平文M=1234567890へ復元する。
文(M0 ,M1 )=(12345,67890)を統合
し、原平文M=1234567890へ復元する。
【0172】[認証装置]次に、本発明に係るn進表現
暗号をRSA型公開鍵暗号に適用した実施の形態を示す
認証装置及び認証方法を説明する。図2は、本発明に係
るn進表現暗号をRSA型公開鍵暗号に適用した実施の
形態を示す認証装置の構成を示すブロック図である。図
2によれば、認証装置111は、鍵生成処理部21と、
認証文生成装置131と、認証文検証装置141と通信
路51とを備えて構成されている。
暗号をRSA型公開鍵暗号に適用した実施の形態を示す
認証装置及び認証方法を説明する。図2は、本発明に係
るn進表現暗号をRSA型公開鍵暗号に適用した実施の
形態を示す認証装置の構成を示すブロック図である。図
2によれば、認証装置111は、鍵生成処理部21と、
認証文生成装置131と、認証文検証装置141と通信
路51とを備えて構成されている。
【0173】本発明のn進表現を用いた暗号方式を用
い、認証を行ないたい者が、自らの秘密鍵により認証文
の暗号化を行なって生成した認証子を受け手に送る方式
による認証装置を構成することができる。以下に、構成
方法を記述する。
い、認証を行ないたい者が、自らの秘密鍵により認証文
の暗号化を行なって生成した認証子を受け手に送る方式
による認証装置を構成することができる。以下に、構成
方法を記述する。
【0174】[鍵生成処理部]鍵生成処理部21は、2
個の素数p,q(秘密鍵1)を生成し、その積n=pq
(公開鍵1)を決定する。次に素数p,qからLを計算
し、e(公開鍵2)と、d(秘密鍵2)を生成する。こ
の鍵生成処理部21の動作は、図1の暗号化通信装置1
1の鍵生成処理部21の動作と全く同じである。
個の素数p,q(秘密鍵1)を生成し、その積n=pq
(公開鍵1)を決定する。次に素数p,qからLを計算
し、e(公開鍵2)と、d(秘密鍵2)を生成する。こ
の鍵生成処理部21の動作は、図1の暗号化通信装置1
1の鍵生成処理部21の動作と全く同じである。
【0175】[認証文生成装置]認証文生成装置131
は、認証文ハッシュ化処理部133と、最下位桁暗号化
処理部135と、上位桁暗号化処理部137と、データ
連結処理部139とを備えて構成されている。
は、認証文ハッシュ化処理部133と、最下位桁暗号化
処理部135と、上位桁暗号化処理部137と、データ
連結処理部139とを備えて構成されている。
【0176】[認証文ハッシュ化処理部]認証文ハッシ
ュ化処理部133は、認証文Mに対して、ハッシュ関数
hによりハッシュ化を行い、認証子h(M)を得る。た
だし、0≦h(M)<nk とする。
ュ化処理部133は、認証文Mに対して、ハッシュ関数
hによりハッシュ化を行い、認証子h(M)を得る。た
だし、0≦h(M)<nk とする。
【0177】[最下位桁暗号化処理部]最下位桁暗号化
処理部135は、送り手の公開鍵1であるnと秘密鍵2
であるdを用いて、
処理部135は、送り手の公開鍵1であるnと秘密鍵2
であるdを用いて、
【数47】 h(C)0 ≡h(M)d (mod n) …(52) 式(52)を計算し、n進表現された認証子の最下位桁
を求める。
を求める。
【0178】[上位桁暗号化処理部]上位桁暗号化処理
部137は、図4に示すように、係数計算部137a
と、上位桁計算部137bと、を備えて構成され、さら
に、係数計算部137aは、係数テーブル記憶部137
cとこの係数テーブル記憶部137cの読出・書込を制
御する読出・書込制御部とを備えて構成されている。
部137は、図4に示すように、係数計算部137a
と、上位桁計算部137bと、を備えて構成され、さら
に、係数計算部137aは、係数テーブル記憶部137
cとこの係数テーブル記憶部137cの読出・書込を制
御する読出・書込制御部とを備えて構成されている。
【0179】そして、上位桁暗号化処理部137は、図
1の復号化装置41のときと同じ1次合同式を解くこと
により、n進表現された認証子の最下位桁を除く上位
桁、h(C)1 ,h(C)2 ,…,h(C)k-1 を計算
する。
1の復号化装置41のときと同じ1次合同式を解くこと
により、n進表現された認証子の最下位桁を除く上位
桁、h(C)1 ,h(C)2 ,…,h(C)k-1 を計算
する。
【0180】[データ連結処理部]データ連結処理部1
39は、n進表現された認証子の最下位桁と上位桁とを
連結し、暗号化された認証子1(h(C)0 ,h(C)
1 ,…,h(C)k-1 )を生成する。そして、認証子1
と認証文Mの組を通信路51を介して受け手である認証
文検証装置141に送る。
39は、n進表現された認証子の最下位桁と上位桁とを
連結し、暗号化された認証子1(h(C)0 ,h(C)
1 ,…,h(C)k-1 )を生成する。そして、認証子1
と認証文Mの組を通信路51を介して受け手である認証
文検証装置141に送る。
【0181】[認証文検証装置]認証文検証装置141
は、データ結合処理部143と、認証子復号化処理部1
45と、認証文ハッシュ化処理部147と、照合判定部
149とを備えて構成されている。
は、データ結合処理部143と、認証子復号化処理部1
45と、認証文ハッシュ化処理部147と、照合判定部
149とを備えて構成されている。
【0182】[データ結合処理部]データ結合処理部1
43は、受信した暗号化認証子の各ブロックをn進数の
各桁を表す数値としてデータ結合し、n進数表現された
(h(C)0 +nh(C)1 +…+nk-1 h(C)k-1
)を生成する。
43は、受信した暗号化認証子の各ブロックをn進数の
各桁を表す数値としてデータ結合し、n進数表現された
(h(C)0 +nh(C)1 +…+nk-1 h(C)k-1
)を生成する。
【0183】[認証子復号化処理部]認証子復号化処理
部145は、送り手の公開鍵2であるeを利用して、
部145は、送り手の公開鍵2であるeを利用して、
【数48】 h(M)≡(h(C)0 +nh(C)1 +…+nk-1 h(C)k-1 )e (mod nk ) …(53) を計算することによって、認証子1を復号化する。
【0184】[認証文ハッシュ化処理部]認証文ハッシ
ュ化処理部147は、ハッシュ関数hを用い、認証文M
のハッシュ化h(M)を行い、認証子2とする。
ュ化処理部147は、ハッシュ関数hを用い、認証文M
のハッシュ化h(M)を行い、認証子2とする。
【0185】[照合判定部]照合判定部149は、認証
子1と認証子2とを比較照合し、これらが一致していれ
ば、認証は成功し、一致していなければ認証は不成功と
して、認証文の正当性を判断する。
子1と認証子2とを比較照合し、これらが一致していれ
ば、認証は成功し、一致していなければ認証は不成功と
して、認証文の正当性を判断する。
【0186】次に、この認証装置111の動作をフロー
チャート及びメモリ上のデータ配置を示す表を参照しな
がら、詳細に説明する。
チャート及びメモリ上のデータ配置を示す表を参照しな
がら、詳細に説明する。
【0187】図12及び13は、本発明に係るn進表現
暗号をRSA型公開鍵暗号に適用した場合の認証文生成
処理を示すフローチャートであり、表4は、同処理にお
けるメモリ上のデータ配置を示す表である。
暗号をRSA型公開鍵暗号に適用した場合の認証文生成
処理を示すフローチャートであり、表4は、同処理にお
けるメモリ上のデータ配置を示す表である。
【0188】
【表4】 表4に示すように、認証文生成処理においては、公開鍵
1n及び公開鍵2eがデータ番号1に、秘密鍵2dがデ
ータ番号2に与えられ、さらに、分割ブロック数k及び
分割平文長[log2n]がデータ番号3及び4に与え
られる。また、認証文Mは、データ番号5+2kに与え
られ、データ番号5から4+2kまで及び6+2kは作
業領域として使用され、処理結果の暗号化認証子ブロッ
クはデータ番号7+2kから6+3kに格納される。
1n及び公開鍵2eがデータ番号1に、秘密鍵2dがデ
ータ番号2に与えられ、さらに、分割ブロック数k及び
分割平文長[log2n]がデータ番号3及び4に与え
られる。また、認証文Mは、データ番号5+2kに与え
られ、データ番号5から4+2kまで及び6+2kは作
業領域として使用され、処理結果の暗号化認証子ブロッ
クはデータ番号7+2kから6+3kに格納される。
【0189】図12によれば、まず、データ番号5+2
kの認証文Mに対して、ハッシュ関数hでハッシュ化
し、その結果である認証子h(M)をデータ番号6+2
kに格納する(ステップS601)。次いで、データ番
号6+2kの認証子に対して、法nのもとでd乗演算に
よる暗号化処理を行い、その結果であるn進表現された
認証子の最下位桁であるh(C)0 をデータ番号7+2
kに格納する(ステップS603)。
kの認証文Mに対して、ハッシュ関数hでハッシュ化
し、その結果である認証子h(M)をデータ番号6+2
kに格納する(ステップS601)。次いで、データ番
号6+2kの認証子に対して、法nのもとでd乗演算に
よる暗号化処理を行い、その結果であるn進表現された
認証子の最下位桁であるh(C)0 をデータ番号7+2
kに格納する(ステップS603)。
【0190】次いで、n進表現された認証子を法nk の
もとでe乗した式を展開したときのn0 の項の係数であ
るK0 を公開鍵2eを用いてK0 =h(C)0 e により
求め、データ番号5に格納する(ステップS605)。
次いでn進表現された上位桁を順次求めるための反復パ
ラメータiを1に初期設定する(ステップS607)。
もとでe乗した式を展開したときのn0 の項の係数であ
るK0 を公開鍵2eを用いてK0 =h(C)0 e により
求め、データ番号5に格納する(ステップS605)。
次いでn進表現された上位桁を順次求めるための反復パ
ラメータiを1に初期設定する(ステップS607)。
【0191】次いで、反復パラメータiについて、M0
,M1 ,…,Mi-1 を変数とする多項式関数であるKi
-1 を、前のステップまでに求められたM0 ,M1 ,
…,Mi-1 を用いて計算し、その値(整数値)をデータ
番号4+iに格納し、同様に、M0 ,M1 ,…,Mi-1
を変数とする多項式関数であるK'iを、前のステップま
でに求められたM0 ,M1 ,…,Mi-1 を用いて計算
し、その値(整数値)をデータ番号5+k+iに格納す
る(ステップS608)。
,M1 ,…,Mi-1 を変数とする多項式関数であるKi
-1 を、前のステップまでに求められたM0 ,M1 ,
…,Mi-1 を用いて計算し、その値(整数値)をデータ
番号4+iに格納し、同様に、M0 ,M1 ,…,Mi-1
を変数とする多項式関数であるK'iを、前のステップま
でに求められたM0 ,M1 ,…,Mi-1 を用いて計算
し、その値(整数値)をデータ番号5+k+iに格納す
る(ステップS608)。
【0192】次いで、データ番号6+2kの認証子h
(M)と、データ番号5から5+i−1のKj (0≦j
≦i−1)と、データ番号5+k+iのK'iに対して、
以下のbi を計算する(ステップS609)。
(M)と、データ番号5から5+i−1のKj (0≦j
≦i−1)と、データ番号5+k+iのK'iに対して、
以下のbi を計算する(ステップS609)。
【0193】
【数49】 次いで、ユークリッドの互除法により、合同式
【数50】 eh(C)0 e-1 x≡bi (mod n) …(55) をみたすxを求めることにより、h(C)i を暗号化
し、その結果をデータ番号7+2k+iに格納する(ス
テップS611)。
し、その結果をデータ番号7+2k+iに格納する(ス
テップS611)。
【0194】次いで、反復終了条件i=k−1を判定し
(ステップS613)、成立しなければ、反復パラメー
タを1だけ増加させて(ステップS615)、ステップ
S609へ戻る。反復終了条件が成立すれば、データ番
号7+2kから6+3kまでの暗号化されたk個の認証
子ブロックの組とデータ番号5+2kの認証文Mとのペ
アを送り(ステップS617)、処理を終了する。
(ステップS613)、成立しなければ、反復パラメー
タを1だけ増加させて(ステップS615)、ステップ
S609へ戻る。反復終了条件が成立すれば、データ番
号7+2kから6+3kまでの暗号化されたk個の認証
子ブロックの組とデータ番号5+2kの認証文Mとのペ
アを送り(ステップS617)、処理を終了する。
【0195】図14は、本発明に係るn進表現暗号をR
SA型公開鍵暗号に適用した場合の認証文検証処理を示
すフローチャートであり、表5は、同処理におけるメモ
リ上のデータ配置を示す表である。
SA型公開鍵暗号に適用した場合の認証文検証処理を示
すフローチャートであり、表5は、同処理におけるメモ
リ上のデータ配置を示す表である。
【0196】
【表5】 表5に示すように、認証文検証処理は、公開鍵1n及び
公開鍵2eがそれぞれデータ番号1、2に与えられ、さ
らに、分割ブロック数k及び分割平文長[log2n]
がデータ番号3及び4に与えられる。
公開鍵2eがそれぞれデータ番号1、2に与えられ、さ
らに、分割ブロック数k及び分割平文長[log2n]
がデータ番号3及び4に与えられる。
【0197】また、平文である認証文Mがデータ番号5
に、暗号化された認証子ブロックがデータ番号6から5
+kに与えられる。データ番号5+k+1及び5+k+
2は、作業領域である。
に、暗号化された認証子ブロックがデータ番号6から5
+kに与えられる。データ番号5+k+1及び5+k+
2は、作業領域である。
【0198】図14によれば、まず、送り手の公開鍵2
であるeを利用して、データ番号6から5+kまでのk
個の認証子ブロックに対して、それぞれの認証子ブロッ
クを一つのn進数のそれぞれの桁とするデータ結合を行
い、法nkのもとで、
であるeを利用して、データ番号6から5+kまでのk
個の認証子ブロックに対して、それぞれの認証子ブロッ
クを一つのn進数のそれぞれの桁とするデータ結合を行
い、法nkのもとで、
【数51】 h(M)≡(h(C)0 +nh(C)1 +n2h(C)2 +…+nk-1h(C)k-1)e …(56) 式(56)を計算することによって、認証子1を復号化
し、その結果をデータ番号5+k+1に格納する(ステ
ップS701)。
し、その結果をデータ番号5+k+1に格納する(ステ
ップS701)。
【0199】次いで、データ番号5の認証文Mに対し
て、ハッシュ関数hでハッシュ化を行い、その結果h
(M)′を認証子2とし、データ番号5+k+2に格納
する(ステップS703)。次いで、データ番号5+k
+1の復号化認証子1h(M)と、データ番号5+k+
2のハッシュ化認証子2h(M)′とを比較する(ステ
ップS705)。
て、ハッシュ関数hでハッシュ化を行い、その結果h
(M)′を認証子2とし、データ番号5+k+2に格納
する(ステップS703)。次いで、データ番号5+k
+1の復号化認証子1h(M)と、データ番号5+k+
2のハッシュ化認証子2h(M)′とを比較する(ステ
ップS705)。
【0200】ステップS705の比較の結果、両者が一
致していれば、認証成功を出力し(ステップS70
7)、一致しなければ認証失敗を出力(ステップS70
9)して、処理を終了する。
致していれば、認証成功を出力し(ステップS70
7)、一致しなければ認証失敗を出力(ステップS70
9)して、処理を終了する。
【0201】[ラビン型暗号化通信装置]図5は、本発
明に係るN進表現暗号をラビン型公開鍵暗号に適用した
実施の形態を示す暗号化通信装置の構成を示すブロック
図である。
明に係るN進表現暗号をラビン型公開鍵暗号に適用した
実施の形態を示す暗号化通信装置の構成を示すブロック
図である。
【0202】図5によれば、暗号化通信装置211は、
鍵生成処理部21と、暗号化装置231と、復号化装置
241と通信路51とを備えて構成されている。
鍵生成処理部21と、暗号化装置231と、復号化装置
241と通信路51とを備えて構成されている。
【0203】[鍵生成処理部]鍵生成処理部21は、図
1に示した鍵生成処理部21と同等の鍵生成機能を有す
るものであり、その前半の機能を利用する。鍵生成処理
部21は、秘密鍵である2個の素数p,qを生成し、そ
の積n=pqを計算し、公開鍵とする。
1に示した鍵生成処理部21と同等の鍵生成機能を有す
るものであり、その前半の機能を利用する。鍵生成処理
部21は、秘密鍵である2個の素数p,qを生成し、そ
の積n=pqを計算し、公開鍵とする。
【0204】[暗号化装置]暗号化装置231は、平文
分割処理部233と、データ結合部235と、暗号化処
理部237とを備えて構成され、平文Mを暗号化した暗
号文Cを生成し、通信路51を介して復号化装置241
へ送信するものである。
分割処理部233と、データ結合部235と、暗号化処
理部237とを備えて構成され、平文Mを暗号化した暗
号文Cを生成し、通信路51を介して復号化装置241
へ送信するものである。
【0205】平文分割処理部233は、nの剰余類の範
囲内の大きさのk個のブロックに分割された分割平文
(M0 ,M1 ,…,Mk-1 )を生成し、データ結合処理
部235へ引き渡す。
囲内の大きさのk個のブロックに分割された分割平文
(M0 ,M1 ,…,Mk-1 )を生成し、データ結合処理
部235へ引き渡す。
【0206】データ結合処理部235は、次に示す式
(57)のように、1つのn進数M(n)の各桁の値が
分割平文の各ブロックMi (0≦i≦k−1)となるよ
うに、それぞれのブロックのデータを結合したn進数表
現を行い、このn進数M(n)を暗号化処理部237へ
引き渡す。
(57)のように、1つのn進数M(n)の各桁の値が
分割平文の各ブロックMi (0≦i≦k−1)となるよ
うに、それぞれのブロックのデータを結合したn進数表
現を行い、このn進数M(n)を暗号化処理部237へ
引き渡す。
【0207】
【数52】 M(n)=M0 +nM1 +n2M2 +…+nk-1 Mk-1 …(57) 暗号化処理部237は、データ結合処理部235から受
けたn進数M(n)を受け手の公開鍵であるnを用い
て、
けたn進数M(n)を受け手の公開鍵であるnを用い
て、
【数53】 C≡(M(n))2 ( mod nk ) ≡(M0 +nM1 +…+nk-1 Mk-1 )2 ( mod nk ) …(58) 式(58)によって暗号化を行ない、通信路51を介し
て復号化装置241に対して送信する。
て復号化装置241に対して送信する。
【0208】[復号化装置]一方、復号化装置241
は、最下位桁復号化処理部243と、上位桁復号化処理
部245と、データ連結処理部247とを備えて構成さ
れ、通信路51を介して受信した暗号文Cから、分割平
文(M0 ,M1 ,…,Mk-1 )を復号化し、これらを連
結して、元の平文Mを復元するものである。
は、最下位桁復号化処理部243と、上位桁復号化処理
部245と、データ連結処理部247とを備えて構成さ
れ、通信路51を介して受信した暗号文Cから、分割平
文(M0 ,M1 ,…,Mk-1 )を復号化し、これらを連
結して、元の平文Mを復元するものである。
【0209】最下位桁復号化処理部243は、自らの秘
密鍵であるp,q(n=pq)を用いて、
密鍵であるp,q(n=pq)を用いて、
【数54】 x2 ≡C(mod p),x2 ≡C(mod q) …(59) 連立合同式(59)を解くことにより、M0 を復号化す
る。これには、標準的な方法を利用する。
る。これには、標準的な方法を利用する。
【0210】上位桁復号化処理部245は、M0 を利用
して、nを法とする1次合同式を解くことにより、最下
位桁M0 を除く上位桁のブロックM1 ,M2 ,…,Mk-
1 を順次復号化し、M0 とともに、データ連結処理部2
47へ引き渡す。
して、nを法とする1次合同式を解くことにより、最下
位桁M0 を除く上位桁のブロックM1 ,M2 ,…,Mk-
1 を順次復号化し、M0 とともに、データ連結処理部2
47へ引き渡す。
【0211】ここで、M1 ,…,Mk-1 については、以
下のように帰納的に求める。
下のように帰納的に求める。
【0212】
【数55】 をみたす1次合同式の解が分割平文Mi である。
【0213】データ連結処理部247は、復号化された
分割平文(M0 ,M1 ,…,Mk-1)を統合し、原平文
Mへ復元する。
分割平文(M0 ,M1 ,…,Mk-1)を統合し、原平文
Mへ復元する。
【0214】次に、この暗号化通信装置211の動作を
フローチャート及びメモリ上のデータ配置を示す表を参
照しながら、詳細に説明する。
フローチャート及びメモリ上のデータ配置を示す表を参
照しながら、詳細に説明する。
【0215】図15は、暗号化装置231の暗号化送信
処理の動作を説明するフローチャートであり、表6は、
同処理におけるメモリ上のデータ配置を示す表である。
処理の動作を説明するフローチャートであり、表6は、
同処理におけるメモリ上のデータ配置を示す表である。
【0216】
【表6】 表6に示すように、暗号化送信処理は、公開鍵n、分割
平文長[log2n]及び平文Mがそれぞれデータ番号
1、3、4に与えられる。データ番号5からデータ番号
4+kまでは、分割された平文ブロックを格納する作業
領域であり、分割ブロック数kと、暗号文ブロックCが
この処理の結果として、データ番号2及びデータ番号4
+k+1に得られる。なお、ここでは分割ブロック数k
は、分割の結果として得られるものとしたが、最初から
定数が与えられ、この定数の分割ブロック毎に暗号化を
行うことも可能である。
平文長[log2n]及び平文Mがそれぞれデータ番号
1、3、4に与えられる。データ番号5からデータ番号
4+kまでは、分割された平文ブロックを格納する作業
領域であり、分割ブロック数kと、暗号文ブロックCが
この処理の結果として、データ番号2及びデータ番号4
+k+1に得られる。なお、ここでは分割ブロック数k
は、分割の結果として得られるものとしたが、最初から
定数が与えられ、この定数の分割ブロック毎に暗号化を
行うことも可能である。
【0217】図15によれば、まず、データ番号4の平
文Mを読出し、その先頭から、それぞれ[log2n]
ビット長のk個の平文ブロックMi (0≦i≦k−1)
を切り出し、各平文ブロックをデータ番号5から4+k
までに順次格納し、データ番号4には、切り出した残り
のメッセージM′を格納する(ステップS801)。
文Mを読出し、その先頭から、それぞれ[log2n]
ビット長のk個の平文ブロックMi (0≦i≦k−1)
を切り出し、各平文ブロックをデータ番号5から4+k
までに順次格納し、データ番号4には、切り出した残り
のメッセージM′を格納する(ステップS801)。
【0218】次いで、データ番号5から4+kまでのk
個の平文ブロックに対して、n進数、
個の平文ブロックに対して、n進数、
【数56】 M(n)=M0 +nM1 +n2M2 +…+nk-1MK-1 …(61) を求める(ステップS803)。
【0219】次いで、データ番号1の公開鍵nを用い
て、C≡{M(n)}2 ( mod nk)を求め、暗号
文Cとして、データ番号4+k+1に格納する(ステッ
プS805)。次いで、データ番号4+k+1の暗号文
を送信し(ステップS807)、データ番号4にメッセ
ージが残っているか否かを調べる(ステップS80
9)。メッセージが残っていれば、ステップS801へ
戻る。メッセージが残っていなければ、終了する。
て、C≡{M(n)}2 ( mod nk)を求め、暗号
文Cとして、データ番号4+k+1に格納する(ステッ
プS805)。次いで、データ番号4+k+1の暗号文
を送信し(ステップS807)、データ番号4にメッセ
ージが残っているか否かを調べる(ステップS80
9)。メッセージが残っていれば、ステップS801へ
戻る。メッセージが残っていなければ、終了する。
【0220】図16及び図17は、復号化装置241の
受信復号化処理の動作を示すフローチャートであり、表
7は、同処理におけるメモリ上のデータ配置を示す表で
ある。
受信復号化処理の動作を示すフローチャートであり、表
7は、同処理におけるメモリ上のデータ配置を示す表で
ある。
【0221】
【表7】 表7に示すように、受信復号化処理は、公開鍵n及び秘
密鍵p,qがそれぞれデータ番号1、2に与えられ、分
割ブロック数k、分割平文長[log2n]、及び暗号
文Cがデータ番号3、4及び5に与えられる。また、デ
ータ番号6から6+k−1までは分割された平文ブロッ
クを格納する作業領域として使用され、結果の統合平文
はデータ番号6+kに格納される。
密鍵p,qがそれぞれデータ番号1、2に与えられ、分
割ブロック数k、分割平文長[log2n]、及び暗号
文Cがデータ番号3、4及び5に与えられる。また、デ
ータ番号6から6+k−1までは分割された平文ブロッ
クを格納する作業領域として使用され、結果の統合平文
はデータ番号6+kに格納される。
【0222】図16によれば、まず、データ番号5の暗
号文Cに対して、x2≡C (mod n)(n=p
q)を解くことにより、n進表現された平文の最下位桁
である平文ブロックM0 を復号化する。すなわち、x2
≡C (mod p)およびx2≡C (mod q)
の連立2次合同式を解くことにより、最下位桁M0 を復
号化し、データ番号6に格納する(ステップS90
1)。
号文Cに対して、x2≡C (mod n)(n=p
q)を解くことにより、n進表現された平文の最下位桁
である平文ブロックM0 を復号化する。すなわち、x2
≡C (mod p)およびx2≡C (mod q)
の連立2次合同式を解くことにより、最下位桁M0 を復
号化し、データ番号6に格納する(ステップS90
1)。
【0223】次いで、n進表現された上位桁Mi (1≦
i≦k−1)を復号化する(このステップS911以下
の詳細は、図17により説明する)。次いで、データ番
号6から6+k−1までの復号化されたk個の平文ブロ
ックを連接し、そのビット列をデータ番号6+kの末尾
に連接して格納し(ステップS931)、処理を終了す
る。
i≦k−1)を復号化する(このステップS911以下
の詳細は、図17により説明する)。次いで、データ番
号6から6+k−1までの復号化されたk個の平文ブロ
ックを連接し、そのビット列をデータ番号6+kの末尾
に連接して格納し(ステップS931)、処理を終了す
る。
【0224】ステップS901における連立2次合同式
の解法の一例として、x2≡C (mod p)は、最
大公約数を示す関数をGCDで表すとき、
の解法の一例として、x2≡C (mod p)は、最
大公約数を示す関数をGCDで表すとき、
【数57】 GCD(x(p-1)/2−1,x2−C)=x−Mp …(62) 式(62)を計算することにより求まり、このMp と同
様に求めたMq とから、
様に求めたMq とから、
【数58】 M0 ≡q×Mp +p×Mq (mod n) …(63) 式(63)を計算することにより求められる。なお、こ
こに示した解法は、あくまで一例を示すものであり、ス
テップS901の連立2次合同式の解法は他の方法が多
く存在する。
こに示した解法は、あくまで一例を示すものであり、ス
テップS901の連立2次合同式の解法は他の方法が多
く存在する。
【0225】図17は、n進表現された上位桁Mi (1
≦i≦k−1)の復号化を詳細に説明するフローチャー
トである。まず、n進表現された上位桁を順次求めるた
めの反復パラメータiを1に初期設定する(ステップS
913)。
≦i≦k−1)の復号化を詳細に説明するフローチャー
トである。まず、n進表現された上位桁を順次求めるた
めの反復パラメータiを1に初期設定する(ステップS
913)。
【0226】次いで、それぞれ0以上i−1以下の2つ
のパラメータl、mであって、かつl+mがi以下の範
囲について、Ml Mm nl+mの総和であるLをni+1 を
法として計算する(ステップS915)。次いで、bi
≡(C−L(mod ni+1))/ni (mod
n)を求める(ステップS917)。
のパラメータl、mであって、かつl+mがi以下の範
囲について、Ml Mm nl+mの総和であるLをni+1 を
法として計算する(ステップS915)。次いで、bi
≡(C−L(mod ni+1))/ni (mod
n)を求める(ステップS917)。
【0227】次いで、2M0 x≡bi (mod n)
を解く(ステップS919)ことにより、i番目の桁の
値Mi を確定し、データ番号6+iに格納する(ステッ
プS912)。次いで、反復終了条件i=k−1を判定
し(ステップS923)、成立しなければ、反復パラメ
ータを1だけ増加させて(ステップS925)、ステッ
プS915へ戻る。反復終了条件が成立すれば、処理を
終了する。
を解く(ステップS919)ことにより、i番目の桁の
値Mi を確定し、データ番号6+iに格納する(ステッ
プS912)。次いで、反復終了条件i=k−1を判定
し(ステップS923)、成立しなければ、反復パラメ
ータを1だけ増加させて(ステップS925)、ステッ
プS915へ戻る。反復終了条件が成立すれば、処理を
終了する。
【0228】[ラビン型暗号化通信装置の変形例]次
に、図22は、本発明に係るN進表現暗号をラビン型公
開鍵暗号に適用した実施の形態の変形例を示す暗号化通
信装置の構成を示すブロック図である。本変形例では、
複数の平文ブロックMの先頭に乱数ブロックRを配置
し、M0 をRで置き換えた例を説明する。これは、平文
Mに代えて、乱数ブロックRと平文Mとを連接したR‖
Mを暗号化の対象とするとも考えられる。
に、図22は、本発明に係るN進表現暗号をラビン型公
開鍵暗号に適用した実施の形態の変形例を示す暗号化通
信装置の構成を示すブロック図である。本変形例では、
複数の平文ブロックMの先頭に乱数ブロックRを配置
し、M0 をRで置き換えた例を説明する。これは、平文
Mに代えて、乱数ブロックRと平文Mとを連接したR‖
Mを暗号化の対象とするとも考えられる。
【0229】図22によれば、暗号化通信装置212
は、鍵生成処理部21と、暗号化装置230と、復号化
装置241と通信路51とを備えて構成されていて、暗
号化装置230以外の構成要素は、図5と同様であるの
で詳細な説明は省略する。
は、鍵生成処理部21と、暗号化装置230と、復号化
装置241と通信路51とを備えて構成されていて、暗
号化装置230以外の構成要素は、図5と同様であるの
で詳細な説明は省略する。
【0230】[暗号化装置]暗号化装置230は、乱数
発生部232と、平文分割処理部234と、データ結合
部235と、暗号化処理部237とを備えて構成され、
乱数Rと平文Mとを連接したR‖Mを暗号化した暗号文
Cを生成し、通信路51を介して復号化装置241へ送
信するものである。
発生部232と、平文分割処理部234と、データ結合
部235と、暗号化処理部237とを備えて構成され、
乱数Rと平文Mとを連接したR‖Mを暗号化した暗号文
Cを生成し、通信路51を介して復号化装置241へ送
信するものである。
【0231】乱数発生部232は、分割平文長[log
2 N]ビットに等しい長さの乱数Rを発生する。この乱
数は、数学的または論理的に発生される再現性のある擬
似乱数であってもよいし、再現性のない乱数であっても
良い。また、乱数Rは、復号化装置241と共有する必
要がないので、ホワイトノイズ等を利用した数学的、論
理的に再現性のない乱数発生手段を用いても良い。さら
に、一回の暗号化通信毎に新たな乱数Rを生成して使用
することが暗号の強度を高める点で好ましい。複数の通
信相手に対して同じMを送る同報通信の場合にも、通信
相手毎に乱数Rの値を変えることにより、同報通信攻撃
に対する暗号強度が高まる。
2 N]ビットに等しい長さの乱数Rを発生する。この乱
数は、数学的または論理的に発生される再現性のある擬
似乱数であってもよいし、再現性のない乱数であっても
良い。また、乱数Rは、復号化装置241と共有する必
要がないので、ホワイトノイズ等を利用した数学的、論
理的に再現性のない乱数発生手段を用いても良い。さら
に、一回の暗号化通信毎に新たな乱数Rを生成して使用
することが暗号の強度を高める点で好ましい。複数の通
信相手に対して同じMを送る同報通信の場合にも、通信
相手毎に乱数Rの値を変えることにより、同報通信攻撃
に対する暗号強度が高まる。
【0232】平文分割処理部234は、入力される平文
Mの先頭に乱数発生部232から与えられる乱数Rを連
接してR‖Mとしたものを、nの剰余類の範囲内の大き
さのk個のブロックに分割された分割平文(R ,M1
,…,Mk-1 )を生成し、データ結合処理部235へ
引き渡す。この結果、本変形例では、図5に示した実施
形態の分割平文の先頭ブロックM0 に代えて、乱数Rが
配置されたこととなる。これは、平文Mのビット列の先
頭に[log2 N]ビットの乱数Rを配置してR‖Mと
し、そのメッセージを改めてMとしたと考えても良い。
Mの先頭に乱数発生部232から与えられる乱数Rを連
接してR‖Mとしたものを、nの剰余類の範囲内の大き
さのk個のブロックに分割された分割平文(R ,M1
,…,Mk-1 )を生成し、データ結合処理部235へ
引き渡す。この結果、本変形例では、図5に示した実施
形態の分割平文の先頭ブロックM0 に代えて、乱数Rが
配置されたこととなる。これは、平文Mのビット列の先
頭に[log2 N]ビットの乱数Rを配置してR‖Mと
し、そのメッセージを改めてMとしたと考えても良い。
【0233】データ結合処理部235は、次に示す式
(64)のように、1つのn進数M(n)の各桁の値が
分割平文の各ブロックMi (0≦i≦k−1)となるよ
うに、それぞれのブロックのデータを結合したn進数表
現を行い、このn進数M(n)を暗号化処理部237へ
引き渡す。
(64)のように、1つのn進数M(n)の各桁の値が
分割平文の各ブロックMi (0≦i≦k−1)となるよ
うに、それぞれのブロックのデータを結合したn進数表
現を行い、このn進数M(n)を暗号化処理部237へ
引き渡す。
【0234】
【数59】 M(n)=R+nM1 +n2M2 +…+nk-1 Mk-1 …(64) 暗号化処理部237は、データ結合処理部235から受
けたn進数M(n)を受け手の公開鍵であるnを用い
て、
けたn進数M(n)を受け手の公開鍵であるnを用い
て、
【数60】 C≡(M(n))2 ( mod nk ) ≡(R+nM1 +…+nk-1 Mk-1 )2 ( mod nk ) …(65) 式(65)によって暗号化を行ない、通信路51を介し
て復号化装置241に対して送信する。
て復号化装置241に対して送信する。
【0235】[復号化装置]一方、復号化装置241
は、最下位桁復号化処理部243と、上位桁復号化処理
部245と、データ連結処理部247とを備えて構成さ
れ、通信路51を介して受信した暗号文Cから、分割平
文(R,M1 ,…,Mk-1 )を復号化し、これらを連結
して、元の平文Mを復元するものである。
は、最下位桁復号化処理部243と、上位桁復号化処理
部245と、データ連結処理部247とを備えて構成さ
れ、通信路51を介して受信した暗号文Cから、分割平
文(R,M1 ,…,Mk-1 )を復号化し、これらを連結
して、元の平文Mを復元するものである。
【0236】最下位桁復号化処理部243は、自らの秘
密鍵であるp,q(n=pq)を用いて、
密鍵であるp,q(n=pq)を用いて、
【数61】 x2 ≡C(mod p),x2 ≡C(mod q) …(66) 連立合同式(66)を解くことにより、最下位桁である
Rを復号化する。これには、標準的な方法を利用する。
Rを復号化する。これには、標準的な方法を利用する。
【0237】上位桁復号化処理部245は、Rを利用し
て、nを法とする1次合同式を解くことにより、最下位
桁Rを除く上位桁のブロックM1 ,M2 ,…,Mk-1 を
順次復号化し、データ連結処理部247へ引き渡す。
て、nを法とする1次合同式を解くことにより、最下位
桁Rを除く上位桁のブロックM1 ,M2 ,…,Mk-1 を
順次復号化し、データ連結処理部247へ引き渡す。
【0238】ここで、M1 ,…,Mk-1 については、以
下のように帰納的に求める。
下のように帰納的に求める。
【0239】
【数62】 (数55)と同様の式をみたす1次合同式を解き、その
解をrk とする。すると、Mk =Mk-1 +rknk の関
係式からM1 ,…,Mk-1 が順次求まる。
解をrk とする。すると、Mk =Mk-1 +rknk の関
係式からM1 ,…,Mk-1 が順次求まる。
【0240】データ連結処理部247は、復号化された
分割平文(M1 ,…,Mk-1 )を統合し、原平文Mへ復
元する。乱数Rはメッセージとしては必要ないものであ
り、上位桁復号化処理部45による復号に利用されたの
ち、廃棄しても差し支えない。
分割平文(M1 ,…,Mk-1 )を統合し、原平文Mへ復
元する。乱数Rはメッセージとしては必要ないものであ
り、上位桁復号化処理部45による復号に利用されたの
ち、廃棄しても差し支えない。
【0241】[N進表現暗号をラビン型暗号に適用した
場合の具体例]次に、本発明に係るN進表現暗号をラビ
ン型暗号に適用した場合の実施の形態を具体的な数値を
用いて説明する。
場合の具体例]次に、本発明に係るN進表現暗号をラビ
ン型暗号に適用した場合の実施の形態を具体的な数値を
用いて説明する。
【0242】[鍵生成処理部]2個の素数p=863,
q=733(秘密鍵)を生成し、その積n=632579(公
開鍵)を決定する。k=2とする。
q=733(秘密鍵)を生成し、その積n=632579(公
開鍵)を決定する。k=2とする。
【0243】[平文分割処理部]平文M=1234567890に
対して、nの剰余類の範囲内の分割平文(M0 ,M1 )
=(12345,67890)を生成する。
対して、nの剰余類の範囲内の分割平文(M0 ,M1 )
=(12345,67890)を生成する。
【0244】[暗号化処理部]以下に示す式(68)に
よって暗号化を行い、通信路を介して復号化装置へ送信
する。
よって暗号化を行い、通信路を介して復号化装置へ送信
する。
【0245】
【数63】 C≡(12345+632579×67890)2 (mod 6325792 )=317915175516 …(68)
【0246】[最下位桁復号化処理部]最下位桁復号化
処理部は、自らの秘密鍵であるp=863,q=733
に対し、
処理部は、自らの秘密鍵であるp=863,q=733
に対し、
【数64】 x2 ≡C(mod p),x2 ≡C(mod q) …(69) 2次合同式(69)を解き、最下位桁であるM0 =1234
5を得る。
5を得る。
【0247】[上位桁復号化処理部]次に、n=632579
を法とする
を法とする
【数65】 24690x≡502329 (mod 632579) …(70) 1次合同式(70)を解くことにより、上位桁であるM
1 =67890を得る。
1 =67890を得る。
【0248】[データ連結処理部]復号化された分割平
文(M0 ,M1 )=(12345,67890)を統合し、原平文
M=1234567890へ復元する。
文(M0 ,M1 )=(12345,67890)を統合し、原平文
M=1234567890へ復元する。
【0249】[認証装置]次に、本発明に係るn進表現
暗号をラビン型公開鍵暗号に適用した実施の形態を示す
認証装置及び認証方法を説明する。図6は、本発明に係
るn進表現暗号をラビン型公開鍵暗号に適用した実施の
形態を示す認証装置の構成を示すブロック図である。図
6によれば、認証装置311は、鍵生成処理部21と、
認証文生成装置331と、認証文検証341と通信路5
1とを備えて構成されている。
暗号をラビン型公開鍵暗号に適用した実施の形態を示す
認証装置及び認証方法を説明する。図6は、本発明に係
るn進表現暗号をラビン型公開鍵暗号に適用した実施の
形態を示す認証装置の構成を示すブロック図である。図
6によれば、認証装置311は、鍵生成処理部21と、
認証文生成装置331と、認証文検証341と通信路5
1とを備えて構成されている。
【0250】本発明のn進表現を用いた暗号方式を用
い、認証を行ないたい者が、自らの秘密鍵により認証文
の暗号化を行なって生成した認証子を受け手に送る方式
による認証装置を構成することができる。以下に、構成
方法を記述する。
い、認証を行ないたい者が、自らの秘密鍵により認証文
の暗号化を行なって生成した認証子を受け手に送る方式
による認証装置を構成することができる。以下に、構成
方法を記述する。
【0251】[鍵生成処理部]鍵生成処理部21は、2
個の素数p,q(秘密鍵1)を生成し、その積n=pq
(公開鍵1)を決定する。この鍵生成処理部21の動作
は、図1の暗号化通信装置11の鍵生成処理部21の前
半の動作と全く同じである。
個の素数p,q(秘密鍵1)を生成し、その積n=pq
(公開鍵1)を決定する。この鍵生成処理部21の動作
は、図1の暗号化通信装置11の鍵生成処理部21の前
半の動作と全く同じである。
【0252】[認証文生成装置]認証文生成装置331
は、認証文ハッシュ化処理部333と、最下位桁暗号化
処理部335と、上位桁暗号化処理部337と、データ
連結処理部339とを備えて構成されている。
は、認証文ハッシュ化処理部333と、最下位桁暗号化
処理部335と、上位桁暗号化処理部337と、データ
連結処理部339とを備えて構成されている。
【0253】[認証文ハッシュ化処理部]認証文ハッシ
ュ化処理部333は、認証文Mに対して、ハッシュ関数
hによりハッシュ化を行い、認証子h(M)を得る。た
だし、0≦h(M)<nk とする。
ュ化処理部333は、認証文Mに対して、ハッシュ関数
hによりハッシュ化を行い、認証子h(M)を得る。た
だし、0≦h(M)<nk とする。
【0254】[最下位桁暗号化処理部]最下位桁暗号化
処理部335は、送り手の公開鍵であるnと秘密鍵であ
るp,qを用いて、
処理部335は、送り手の公開鍵であるnと秘密鍵であ
るp,qを用いて、
【数66】 x2 ≡h(M)(mod p),x2 ≡h(M)(mod q) …(71) 連立2次合同式(71)の解である暗号化認証子の最下
位桁であるh(C)0 を計算する。
位桁であるh(C)0 を計算する。
【0255】[上位桁暗号化処理部]上位桁暗号化処理
部337は、図5の復号化装置241における復号化の
ときと同じ1次合同式を解くことにより、h(C)1 ,
h(C)2 ,…,h(C)k-1 を計算し、暗号化された
認証子1(h(C)0 ,h(C)1 ,…,h(C)k-1
)を求める。認証子1と認証文Mの組を通信路51を
介して認証文検証装置に送る。
部337は、図5の復号化装置241における復号化の
ときと同じ1次合同式を解くことにより、h(C)1 ,
h(C)2 ,…,h(C)k-1 を計算し、暗号化された
認証子1(h(C)0 ,h(C)1 ,…,h(C)k-1
)を求める。認証子1と認証文Mの組を通信路51を
介して認証文検証装置に送る。
【0256】ここで、方程式の解が存在しない場合は、
M=M+r,(rはある数)とし認証文ハッシュ化処理
に戻る。
M=M+r,(rはある数)とし認証文ハッシュ化処理
に戻る。
【0257】[データ連結処理部]データ連結処理部3
39は、n進表現された認証子の最下位桁と上位桁とを
連結し、暗号化された認証子1(h(C)0 ,h(C)
1 ,…,h(C)k-1 )を生成する。そして、認証子1
と認証文Mの組を通信路51を介して受け手である認証
文検証装置341に送る。
39は、n進表現された認証子の最下位桁と上位桁とを
連結し、暗号化された認証子1(h(C)0 ,h(C)
1 ,…,h(C)k-1 )を生成する。そして、認証子1
と認証文Mの組を通信路51を介して受け手である認証
文検証装置341に送る。
【0258】[認証文検証装置]認証文検証装置341
は、データ結合処理部343と、認証子復号化処理部3
45と、認証文ハッシュ化処理部347と、照合判定部
349とを備えて構成されている。
は、データ結合処理部343と、認証子復号化処理部3
45と、認証文ハッシュ化処理部347と、照合判定部
349とを備えて構成されている。
【0259】[データ結合処理部]データ結合処理部3
43は、受信した暗号化認証子の各ブロックをn進数の
各桁を表す数値としてデータ結合し、n進数表現された
(h(C)0 +nh(C)1 +…+nk-1 h(C)k-1
)を生成する。
43は、受信した暗号化認証子の各ブロックをn進数の
各桁を表す数値としてデータ結合し、n進数表現された
(h(C)0 +nh(C)1 +…+nk-1 h(C)k-1
)を生成する。
【0260】[認証子復号化処理部]認証子復号化処理
部345は、送り手の公開鍵であるnを利用して、
部345は、送り手の公開鍵であるnを利用して、
【数67】 h(M)≡(h(C)0 +nh(C)1 +… +nk-1 h(C)k-1 )2 (mod nk ) …(72) を計算することによって、認証子1を復号化する。
【0261】[認証文ハッシュ化処理部]認証文ハッシ
ュ化処理部347は、ハッシュ関数hを用い、認証文M
のハッシュ化h(M)を行い、認証子2とする。
ュ化処理部347は、ハッシュ関数hを用い、認証文M
のハッシュ化h(M)を行い、認証子2とする。
【0262】[照合判定部]照合判定部349は、認証
子1と認証子2とを比較照合し、これらが一致していれ
ば、認証は成功し、一致していなければ認証は不成功と
して、認証文の正当性を判断する。
子1と認証子2とを比較照合し、これらが一致していれ
ば、認証は成功し、一致していなければ認証は不成功と
して、認証文の正当性を判断する。
【0263】次に、この認証装置311の動作をフロー
チャート及びメモリ上のデータ配置を示す表を参照しな
がら、詳細に説明する。
チャート及びメモリ上のデータ配置を示す表を参照しな
がら、詳細に説明する。
【0264】図18及び19は、本発明に係るn進表現
暗号をラビン型公開鍵暗号に適用した場合の認証文生成
処理を示すフローチャートであり、表8は、同処理にお
けるメモリ上のデータ配置を示す表である。
暗号をラビン型公開鍵暗号に適用した場合の認証文生成
処理を示すフローチャートであり、表8は、同処理にお
けるメモリ上のデータ配置を示す表である。
【0265】
【表8】 表8に示すように、認証文生成処理は、公開鍵n及び秘
密鍵p,qがそれぞれデータ番号1、2に与えられ、分
割平文長[log2n]及び認証文Mがデータ番号4及
び5に与えられる。また、データ番号3には、認証子を
分割したブロック数kが格納され、データ番号6には、
ハッシュ化された認証子h(M)を格納するための作業
領域として使用され、データ番号7から6+kまでは、
生成された暗号化認証子ブロックが格納される。
密鍵p,qがそれぞれデータ番号1、2に与えられ、分
割平文長[log2n]及び認証文Mがデータ番号4及
び5に与えられる。また、データ番号3には、認証子を
分割したブロック数kが格納され、データ番号6には、
ハッシュ化された認証子h(M)を格納するための作業
領域として使用され、データ番号7から6+kまでは、
生成された暗号化認証子ブロックが格納される。
【0266】図18によれば、まず、データ番号5の認
証文Mに対して、ハッシュ関数hでハッシュ化し、その
結果である認証子h(M)をデータ番号6に格納する
(ステップS1001)。次いで、データ番号6の認証
子h(M)に対して、分割平文長[log2n]で分割
したブロック数kを求め、データ番号3に格納する(ス
テップS1003)。
証文Mに対して、ハッシュ関数hでハッシュ化し、その
結果である認証子h(M)をデータ番号6に格納する
(ステップS1001)。次いで、データ番号6の認証
子h(M)に対して、分割平文長[log2n]で分割
したブロック数kを求め、データ番号3に格納する(ス
テップS1003)。
【0267】次いで、データ番号6の認証子h(M)に
対して、x2≡h(M) (modn)(n=pq)を
解くことにより、n進表現された認証子の最下位桁であ
る認証子ブロックh(M)0 を暗号化する。すなわち、
x2≡h(M) (modp)およびx2≡h(M)
(mod q)の連立2次合同式を解くことにより、最
下位桁h(C)0 を暗号化し、データ番号7に格納する
(ステップS1005)。
対して、x2≡h(M) (modn)(n=pq)を
解くことにより、n進表現された認証子の最下位桁であ
る認証子ブロックh(M)0 を暗号化する。すなわち、
x2≡h(M) (modp)およびx2≡h(M)
(mod q)の連立2次合同式を解くことにより、最
下位桁h(C)0 を暗号化し、データ番号7に格納する
(ステップS1005)。
【0268】次いで、n進表現された上位桁h(C)i
(1≦i≦k−1)を暗号化する(このステップS10
11以下の詳細は、図19により説明する)。次いで、
データ番号7から7+k−1までの暗号化されたk個の
認証子ブロックと、データ番号5の認証文Mとのペアを
送信して(ステップS1031)、処理を終了する。
(1≦i≦k−1)を暗号化する(このステップS10
11以下の詳細は、図19により説明する)。次いで、
データ番号7から7+k−1までの暗号化されたk個の
認証子ブロックと、データ番号5の認証文Mとのペアを
送信して(ステップS1031)、処理を終了する。
【0269】ステップS1005における連立2次合同
式の解法の一例として、x2≡h(M) (mod
p)は、最大公約数をGCDで表すとき、
式の解法の一例として、x2≡h(M) (mod
p)は、最大公約数をGCDで表すとき、
【数68】 GCD(x(p-1)/2−1,x2−h(M))=x−h(C)p …(73) 式(73)を計算することにより求まり、このh(C)
p と同様に求めたh(C)q とから、
p と同様に求めたh(C)q とから、
【数69】 h(C)0 ≡q×h(C)p +p×h(C)q (mod n) …(74) 式(74)を計算することにより求められる。なお、こ
こに示した解法は、あくまで一例を示すものであり、ス
テップS1005の連立2次合同式の解法は他の方法が
多く存在する。
こに示した解法は、あくまで一例を示すものであり、ス
テップS1005の連立2次合同式の解法は他の方法が
多く存在する。
【0270】図19は、n進表現された上位桁h(C)
i (1≦i≦k−1)の暗号化を詳細に説明するフロー
チャートである。まず、n進表現された上位桁を順次求
めるための反復パラメータiを1に初期設定する(ステ
ップS1013)。
i (1≦i≦k−1)の暗号化を詳細に説明するフロー
チャートである。まず、n進表現された上位桁を順次求
めるための反復パラメータiを1に初期設定する(ステ
ップS1013)。
【0271】次いで、それぞれ0以上i−1以下の2つ
のパラメータl、mであって、かつl+mがi以下の範
囲について、h(C)l h(C)m nl+m のni+1 を法
とする総和であるLを計算する(ステップS101
5)。次いで、bi≡(h(M)−L(mod
ni+1 ))/ni (mod n)を求める(ステップ
S1017)。
のパラメータl、mであって、かつl+mがi以下の範
囲について、h(C)l h(C)m nl+m のni+1 を法
とする総和であるLを計算する(ステップS101
5)。次いで、bi≡(h(M)−L(mod
ni+1 ))/ni (mod n)を求める(ステップ
S1017)。
【0272】次いで、2h(C)0 x≡bi (mod
n)を解く(ステップS1019)ことにより、i番
目の桁の値h(C)i を確定し、データ番号7+iに格
納する(ステップS1012)。次いで、反復終了条件
i=k−1を判定し(ステップS1023)、成立しな
ければ、反復パラメータを1だけ増加させて(ステップ
S1025)、ステップS1015へ戻る。反復終了条
件が成立すれば、処理を終了する。
n)を解く(ステップS1019)ことにより、i番
目の桁の値h(C)i を確定し、データ番号7+iに格
納する(ステップS1012)。次いで、反復終了条件
i=k−1を判定し(ステップS1023)、成立しな
ければ、反復パラメータを1だけ増加させて(ステップ
S1025)、ステップS1015へ戻る。反復終了条
件が成立すれば、処理を終了する。
【0273】図20は、本発明に係るn進表現暗号をラ
ビン型公開鍵暗号に適用した場合の認証文検証処理を示
すフローチャートであり、表9は、同処理におけるメモ
リ上のデータ配置を示す表である。
ビン型公開鍵暗号に適用した場合の認証文検証処理を示
すフローチャートであり、表9は、同処理におけるメモ
リ上のデータ配置を示す表である。
【0274】
【表9】 表9に示すように、認証文検証処理は、公開鍵n、分割
ブロック数k及び分割平文長[log2n]がデータ番
号1、3及び4に与えられる。
ブロック数k及び分割平文長[log2n]がデータ番
号1、3及び4に与えられる。
【0275】また、平文である認証文Mがデータ番号5
に、暗号化された認証子ブロックがデータ番号6から5
+kに与えられる。データ番号5+k+1及び5+k+
2は、作業領域である。データ番号2は使用されない。
に、暗号化された認証子ブロックがデータ番号6から5
+kに与えられる。データ番号5+k+1及び5+k+
2は、作業領域である。データ番号2は使用されない。
【0276】図20によれば、まず、送り手の公開鍵で
あるnを利用して、データ番号6から5+kまでのk個
の認証子ブロックに対して、それぞれの認証子ブロック
を一つのn進数のそれぞれの桁とするデータ結合を行
い、法nkのもとで、
あるnを利用して、データ番号6から5+kまでのk個
の認証子ブロックに対して、それぞれの認証子ブロック
を一つのn進数のそれぞれの桁とするデータ結合を行
い、法nkのもとで、
【数70】 h(M)≡(h(C)0 +nh(C)1 +n2h(C)2 +…+nk-1h(C)k-1)2 …(75) を計算することによって、認証子1を復号化し、その結
果をデータ番号5+k+1に格納する(ステップS11
01)。
果をデータ番号5+k+1に格納する(ステップS11
01)。
【0277】次いで、データ番号5の認証文Mに対し
て、ハッシュ関数hでハッシュ化を行い、その結果h
(M)′を認証子2とし、データ番号5+k+2に格納
する(ステップS1103)。次いで、データ番号5+
k+1の復号化認証子1h(M)と、データ番号5+k
+2のハッシュ化認証子2h(M)′とを比較する(ス
テップS1105)。
て、ハッシュ関数hでハッシュ化を行い、その結果h
(M)′を認証子2とし、データ番号5+k+2に格納
する(ステップS1103)。次いで、データ番号5+
k+1の復号化認証子1h(M)と、データ番号5+k
+2のハッシュ化認証子2h(M)′とを比較する(ス
テップS1105)。
【0278】ステップS1105の比較の結果、両者が
一致していれば、認証成功を出力し(ステップS110
7)、一致しなければ認証失敗を出力(ステップS11
09)して、処理を終了する。
一致していれば、認証成功を出力し(ステップS110
7)、一致しなければ認証失敗を出力(ステップS11
09)して、処理を終了する。
【0279】[係数テーブルを使用しない復号化方法の
原理説明]次に、本発明に係るN進表現暗号の係数テー
ブルを使用しない復号化方法の原理を説明する。この復
号化方法は、最下位桁M0 の値を使用して、同一の写像
または同一の計算式により再帰的に上位桁Mi (1≦i
≦k−1)を復号するものであり、RSA型N進表現暗
号を用いて復号原理を説明するが、ラビン型N進表現暗
号の場合には、e=2とおくことにより、同様の式で上
位桁を復号することができる。なお、最下位桁M0 の復
号化は、前記の実施形態と同様であるので説明を省略す
る。
原理説明]次に、本発明に係るN進表現暗号の係数テー
ブルを使用しない復号化方法の原理を説明する。この復
号化方法は、最下位桁M0 の値を使用して、同一の写像
または同一の計算式により再帰的に上位桁Mi (1≦i
≦k−1)を復号するものであり、RSA型N進表現暗
号を用いて復号原理を説明するが、ラビン型N進表現暗
号の場合には、e=2とおくことにより、同様の式で上
位桁を復号することができる。なお、最下位桁M0 の復
号化は、前記の実施形態と同様であるので説明を省略す
る。
【0280】いま、(i−1)桁目のMi-1 まで復号化
されたときに、i桁目のMi を復号化することを考え
る。
されたときに、i桁目のMi を復号化することを考え
る。
【0281】既に復号化されたM0 からMi-1 までのi
個の平文ブロックをn進数として表現したものをAi-1
とすれば、
個の平文ブロックをn進数として表現したものをAi-1
とすれば、
【数71】 Ai-1 =M0 +nM1 +n2 M2 +…+ni-1 Mi-1 …(76) であるから、Ai-1 を利用して受信暗号文Cを表現する
と、
と、
【数72】 C≡(M0+nM1+…+nk-1Mk-1 )e (mod nk ) ≡(Ai-1+niMi+ni+1Mi+1+…+nk-1 Mk-1 )e (mod nk ) …(77) となる。
【0282】ここで、Mi の復号に不要である(i+
1)桁目以上の桁であるMi+1 以降の平文ブロックの影
響を除去するため、両辺をni+1 で除した剰余を考え
る。
1)桁目以上の桁であるMi+1 以降の平文ブロックの影
響を除去するため、両辺をni+1 で除した剰余を考え
る。
【0283】
【数73】 C ≡Ai-1e +eAi-1e-1 ni Mi (mod ni+1 ) …(78) 移項して、
【数74】 eAi-1e-1 ni Mi ≡C−Ai-1e (mod ni+1 ) …(79) 両辺をni で除算すると、
【数75】 eAi-1e-1 Mi ≡(C−Ai-1e (mod ni+1 ))/ni (mod n ) …(80) ゆえに、合同式
【数76】 eAi-1e-1 x ≡(C−Ai-1e (mod ni+1 ))/ni (mod n ) …(81) をみたすxを求めることにより、Mi を復号化すること
ができる。
ができる。
【0284】このMi を順次下位の桁から上位の桁へ、
再帰的に同じ手順で求めるプログラムを次に示す。な
お、記号「:=0」は、右辺の定数値または計算値を左
辺に代入する代入記号であり、「for」で始まる文
は、「begin」と「end」で挟まれた実行文を繰
り返すことを指示する繰り返し制御文である。
再帰的に同じ手順で求めるプログラムを次に示す。な
お、記号「:=0」は、右辺の定数値または計算値を左
辺に代入する代入記号であり、「for」で始まる文
は、「begin」と「end」で挟まれた実行文を繰
り返すことを指示する繰り返し制御文である。
【0285】
【数77】入力:n,e,C,k,M0 出力:M1 ,M2 ,…,Mk-1 A-1:=0; for i=1 to(k−1)do begin Ai-1 :=Ai-2 +ni-1 Mi-1 ; Fi-1 :=Ai-1 e (mod ni+1 ); Ei :=C−Fi-1 (mod ni+1 ); Bi :=Ei /ni ; Mi :=(eFi-1 )-1Ai-1 Bi (mod n); end 以上、係数テーブルを使用しない復号方法によるRSA
型N進表現暗号の上位桁の復号原理について説明した
が、ラビン型N進表現暗号の場合には、e=2と置くこ
とにより、同様の式で上位桁を復号することができる。
型N進表現暗号の上位桁の復号原理について説明した
が、ラビン型N進表現暗号の場合には、e=2と置くこ
とにより、同様の式で上位桁を復号することができる。
【0286】また、RSA型およびラビン型ともに認証
文作成における上位桁暗号化は、それぞれの復号化と同
様であるので、上記上位桁復号化原理を認証文上位桁暗
号化に利用することができる。
文作成における上位桁暗号化は、それぞれの復号化と同
様であるので、上記上位桁復号化原理を認証文上位桁暗
号化に利用することができる。
【0287】[係数テーブルを使用しない復号化の実施
形態]次に、上記復号化方法を用いたRSA型N進表現
暗号の復号化装置の動作を説明する。暗号化通信装置、
暗号化装置および復号化装置の構成は、図1および図2
1と同様であり、暗号化および最下位桁M0 (または
R)の復号化までも同様である。
形態]次に、上記復号化方法を用いたRSA型N進表現
暗号の復号化装置の動作を説明する。暗号化通信装置、
暗号化装置および復号化装置の構成は、図1および図2
1と同様であり、暗号化および最下位桁M0 (または
R)の復号化までも同様である。
【0288】図23は、本実施の形態におけるRSA型
N進暗号の受信復号化処理を説明するフローチャートで
あり、表10は、同処理におけるメモリ上のデータ配置
を示す表である。
N進暗号の受信復号化処理を説明するフローチャートで
あり、表10は、同処理におけるメモリ上のデータ配置
を示す表である。
【0289】
【表10】 表10に示すように、受信復号化処理においては、デー
タ番号1に公開鍵1n及び公開鍵2eが与えられ、デー
タ番号2に秘密鍵2dが与えられ、さらに、分割ブロッ
ク数k及び分割平文長[log2n]がデータ番号3及
び4に与えられる。また、暗号文Cは、データ番号5に
与えられ、データ番号6から12+k−1までは作業領
域として使用され、結果の統合平文はデータ番号12+
kに格納される。
タ番号1に公開鍵1n及び公開鍵2eが与えられ、デー
タ番号2に秘密鍵2dが与えられ、さらに、分割ブロッ
ク数k及び分割平文長[log2n]がデータ番号3及
び4に与えられる。また、暗号文Cは、データ番号5に
与えられ、データ番号6から12+k−1までは作業領
域として使用され、結果の統合平文はデータ番号12+
kに格納される。
【0290】図23によれば、まず、データ番号5の暗
号文Cに対して、データ番号1、2の公開鍵1n、秘密
鍵2dを使用して、(mod n)のもとでd乗演算を
行い、n進表現された平文の最下位桁である平文ブロッ
クM0 を復元し、その結果をデータ番号6に格納する
(ステップS1201)。
号文Cに対して、データ番号1、2の公開鍵1n、秘密
鍵2dを使用して、(mod n)のもとでd乗演算を
行い、n進表現された平文の最下位桁である平文ブロッ
クM0 を復元し、その結果をデータ番号6に格納する
(ステップS1201)。
【0291】次いで、初期化変数A-1 の値0をデータ
番号8に格納し(ステップS1203)、ループカウン
タiの初期値1をデータ番号7に格納する(ステップS
1205)。
番号8に格納し(ステップS1203)、ループカウン
タiの初期値1をデータ番号7に格納する(ステップS
1205)。
【0292】次いで、Ai-1 :=Ai-2 +ni-1 Mi-1
を計算し、データ番号9に格納する(ステップS120
7)。次いで、Fi-1 :=Ai-1e(mod ni+1 )を計算
し、データ番号10に格納する(ステップS120
9)。次いで、Ei :=C−Fi-1 (mod ni+1 )
を計算し、データ番号11に格納する(ステップS12
11)。
を計算し、データ番号9に格納する(ステップS120
7)。次いで、Fi-1 :=Ai-1e(mod ni+1 )を計算
し、データ番号10に格納する(ステップS120
9)。次いで、Ei :=C−Fi-1 (mod ni+1 )
を計算し、データ番号11に格納する(ステップS12
11)。
【0293】次いで、Bi :=Ei /ni を計算し、デ
ータ番号12に格納する(ステップS1213)。次い
で、Mi :=(eFi-1 )-1Ai-1 Bi (mod n)
を計算し、データ番号12+iに格納する(ステップS
1215)。
ータ番号12に格納する(ステップS1213)。次い
で、Mi :=(eFi-1 )-1Ai-1 Bi (mod n)
を計算し、データ番号12+iに格納する(ステップS
1215)。
【0294】次いで、繰り返し終了条件i=k−1を判
定し(ステップS1217)、不成立ならば、データ番
号9のAi-1 をデータ番号8のAi-2 へ移送するととも
に、ループカウンタiを1だけ増加させて更新し(ステ
ップS1219)、ステップS1207へ戻る。
定し(ステップS1217)、不成立ならば、データ番
号9のAi-1 をデータ番号8のAi-2 へ移送するととも
に、ループカウンタiを1だけ増加させて更新し(ステ
ップS1219)、ステップS1207へ戻る。
【0295】繰り返し終了条件i=k−1が満足されて
いれば(ステップS1217の判定がYES)、データ
番号6,13,…,12+k−1の復号化されたk個の
平文ブロックM0 ,M1 ,…,Mk-1 を連接し、統合平
文Mとしてデータ番号12+kに格納する(ステップS
1221)。
いれば(ステップS1217の判定がYES)、データ
番号6,13,…,12+k−1の復号化されたk個の
平文ブロックM0 ,M1 ,…,Mk-1 を連接し、統合平
文Mとしてデータ番号12+kに格納する(ステップS
1221)。
【0296】上記の実施形態の復号化方法によれば、表
Eと表3とを比較すれば明らかなように、従来Kiおよ
びK'iの記憶のために使用していた、ほぼ平文ブロック
数の2倍の数のデータ記憶領域が不要となり、記憶領域
が節約できるとともに、復号化の為のプログラムが再帰
的に計算するのでプログラムが小さくなり、またそのプ
ログラムによる計算量も少なくなり、高速の復号化を行
うことができる。
Eと表3とを比較すれば明らかなように、従来Kiおよ
びK'iの記憶のために使用していた、ほぼ平文ブロック
数の2倍の数のデータ記憶領域が不要となり、記憶領域
が節約できるとともに、復号化の為のプログラムが再帰
的に計算するのでプログラムが小さくなり、またそのプ
ログラムによる計算量も少なくなり、高速の復号化を行
うことができる。
【0297】次に、上記復号化方法を用いたRSA型N
進表現暗号の認証文生成装置の動作を説明する。認証装
置、認証文生成装置および認証文検証装置の構成は、図
2と同様であり、最下位桁h(C)0 の暗号化処理及び
認証文検証処理も同様であり、上位桁暗号化処理部のみ
が異なる。
進表現暗号の認証文生成装置の動作を説明する。認証装
置、認証文生成装置および認証文検証装置の構成は、図
2と同様であり、最下位桁h(C)0 の暗号化処理及び
認証文検証処理も同様であり、上位桁暗号化処理部のみ
が異なる。
【0298】図24は、本実施の形態におけるRSA型
N進暗号の認証文生成化処理を説明するフローチャート
であり、表11は、同処理におけるメモリ上のデータ配
置を示す表である。
N進暗号の認証文生成化処理を説明するフローチャート
であり、表11は、同処理におけるメモリ上のデータ配
置を示す表である。
【0299】
【表11】 表11に示すように、認証文生成処理においては、公開
鍵1n及び公開鍵2eがデータ番号1に、秘密鍵2dが
データ番号2に与えられ、さらに、分割ブロック数k及
び分割平文長[log2n]がデータ番号3及び4に与
えられる。また、認証文Mは、データ番号5に与えら
れ、データ番号6から13+k−1まで作業領域として
使用され、処理結果の暗号化認証子ブロックはデータ番
号7およびデータ番号14から13+k−1に格納され
る。
鍵1n及び公開鍵2eがデータ番号1に、秘密鍵2dが
データ番号2に与えられ、さらに、分割ブロック数k及
び分割平文長[log2n]がデータ番号3及び4に与
えられる。また、認証文Mは、データ番号5に与えら
れ、データ番号6から13+k−1まで作業領域として
使用され、処理結果の暗号化認証子ブロックはデータ番
号7およびデータ番号14から13+k−1に格納され
る。
【0300】図24によれば、まず、データ番号5の認
証文Mに対して、ハッシュ関数hでハッシュ化し、その
結果である認証子h(M)をデータ番号6に格納する
(ステップS1301)。
証文Mに対して、ハッシュ関数hでハッシュ化し、その
結果である認証子h(M)をデータ番号6に格納する
(ステップS1301)。
【0301】次いで、データ番号6の認証子h(M)に
対して、法nのもとで自らの秘密鍵2によるd乗演算に
よる暗号化処理を行い、その結果であるn進表現された
認証子の最下位桁であるh(C)0 をデータ番号7に格
納する(ステップS1303)。
対して、法nのもとで自らの秘密鍵2によるd乗演算に
よる暗号化処理を行い、その結果であるn進表現された
認証子の最下位桁であるh(C)0 をデータ番号7に格
納する(ステップS1303)。
【0302】次いで、初期化変数A-1 の値0をデータ
番号9に格納し(ステップS1305)、ループカウン
タiの初期値1をデータ番号8に格納する(ステップS
1307)。
番号9に格納し(ステップS1305)、ループカウン
タiの初期値1をデータ番号8に格納する(ステップS
1307)。
【0303】次いで、Ai-1 :=Ai-2 +ni-1 h
(C)i-1 を計算し、データ番号10に格納する(ステ
ップS1309)。次いで、Fi-1 :=Ai-1e(mod n
i+1 )を計算し、データ番号11に格納する(ステップ
S1311)。次いで、Ei :=h(M)−Fi-1 (m
od ni+1 )を計算し、データ番号12に格納する
(ステップS1313)。
(C)i-1 を計算し、データ番号10に格納する(ステ
ップS1309)。次いで、Fi-1 :=Ai-1e(mod n
i+1 )を計算し、データ番号11に格納する(ステップ
S1311)。次いで、Ei :=h(M)−Fi-1 (m
od ni+1 )を計算し、データ番号12に格納する
(ステップS1313)。
【0304】次いで、Bi :=Ei /ni を計算し、デ
ータ番号13に格納する(ステップS1315)。次い
で、h(C)i :=(eFi-1 )-1Ai-1 Bi (mod
n)を計算し、データ番号13+iに格納する(ステ
ップS1317)。
ータ番号13に格納する(ステップS1315)。次い
で、h(C)i :=(eFi-1 )-1Ai-1 Bi (mod
n)を計算し、データ番号13+iに格納する(ステ
ップS1317)。
【0305】次いで、繰り返し終了条件i=k−1を判
定し(ステップS1319)、不成立ならば、データ番
号10のAi-1 をデータ番号9のAi-2 へ移送するとと
もに、ループカウンタiを1だけ増加させて更新し(ス
テップS1321)、ステップS1309へ戻る。
定し(ステップS1319)、不成立ならば、データ番
号10のAi-1 をデータ番号9のAi-2 へ移送するとと
もに、ループカウンタiを1だけ増加させて更新し(ス
テップS1321)、ステップS1309へ戻る。
【0306】繰り返し終了条件i=k−1が満足されて
いれば(ステップS1319の判定がYES)、データ
番号7,14,15,…,13+k−1の暗号化された
k個の認証子ブロックh(C)0 ,h(C)1 ,…,h
(C)k-1 と、データ番号5の認証文とのペアを送る。
いれば(ステップS1319の判定がYES)、データ
番号7,14,15,…,13+k−1の暗号化された
k個の認証子ブロックh(C)0 ,h(C)1 ,…,h
(C)k-1 と、データ番号5の認証文とのペアを送る。
【0307】上記の実施形態の復号化方法によれば、表
Fと表4とを比較すれば明らかなように、従来Kiおよ
びK'iの記憶のために使用していた、ほぼ認証子ブロッ
ク数の2倍の数のデータ記憶領域が不要となり、記憶領
域が節約できるとともに、認証子暗号化の為のプログラ
ムが再帰的に計算するのでプログラムが小さくなり、ま
たそのプログラムによる計算量も少なくなり、高速の認
証子暗号化を行うことができる。
Fと表4とを比較すれば明らかなように、従来Kiおよ
びK'iの記憶のために使用していた、ほぼ認証子ブロッ
ク数の2倍の数のデータ記憶領域が不要となり、記憶領
域が節約できるとともに、認証子暗号化の為のプログラ
ムが再帰的に計算するのでプログラムが小さくなり、ま
たそのプログラムによる計算量も少なくなり、高速の認
証子暗号化を行うことができる。
【0308】次に、係数テーブルを使用しない復号化方
法を用いたラビン型N進表現暗号の復号化装置の動作を
説明する。暗号化通信装置、暗号化装置および復号化装
置の構成は、図5および図22と同様であり、暗号化お
よび最下位桁M0 (またはR)の復号化までも同様であ
る。
法を用いたラビン型N進表現暗号の復号化装置の動作を
説明する。暗号化通信装置、暗号化装置および復号化装
置の構成は、図5および図22と同様であり、暗号化お
よび最下位桁M0 (またはR)の復号化までも同様であ
る。
【0309】図25は、本実施の形態におけるラビン型
N進暗号の上位桁受信復号化処理を説明するフローチャ
ートであり、表12は、同処理におけるメモリ上のデー
タ配置を示す表である。
N進暗号の上位桁受信復号化処理を説明するフローチャ
ートであり、表12は、同処理におけるメモリ上のデー
タ配置を示す表である。
【0310】
【表12】 表12に示すように、受信復号化処理においては、デー
タ番号1に公開鍵n、データ番号2に秘密鍵p,qが与
えられ、さらに、分割ブロック数k及び分割平文長[l
og2n]がデータ番号3及び4に与えられる。また、
暗号文Cは、データ番号5に与えられ、データ番号6か
ら12+k−1までは作業領域として使用され、結果の
統合平文はデータ番号12+kに格納される。
タ番号1に公開鍵n、データ番号2に秘密鍵p,qが与
えられ、さらに、分割ブロック数k及び分割平文長[l
og2n]がデータ番号3及び4に与えられる。また、
暗号文Cは、データ番号5に与えられ、データ番号6か
ら12+k−1までは作業領域として使用され、結果の
統合平文はデータ番号12+kに格納される。
【0311】まず、図16のステップS901に示した
処理により、データ番号5の暗号文Cに対して、データ
番号1、2の公開鍵n、秘密鍵p,qを使用して、n進
表現された平文の最下位桁である平文ブロックM0 を復
元し、その結果がデータ番号6に格納される。
処理により、データ番号5の暗号文Cに対して、データ
番号1、2の公開鍵n、秘密鍵p,qを使用して、n進
表現された平文の最下位桁である平文ブロックM0 を復
元し、その結果がデータ番号6に格納される。
【0312】次いで、図25によれば、初期化変数A-1
の値0をデータ番号8に格納し(ステップS140
3)、ループカウンタiの初期値1をデータ番号7に格
納する(ステップS1405)。
の値0をデータ番号8に格納し(ステップS140
3)、ループカウンタiの初期値1をデータ番号7に格
納する(ステップS1405)。
【0313】次いで、Ai-1 :=Ai-2 +ni-1 Mi-1
を計算し、データ番号9に格納する(ステップS140
7)。次いで、Fi-1 :=Ai-12(mod ni+1 )を計算
し、データ番号10に格納する(ステップS140
9)。次いで、Ei :=C−Fi-1 (mod ni+1 )
を計算し、データ番号11に格納する(ステップS14
11)。
を計算し、データ番号9に格納する(ステップS140
7)。次いで、Fi-1 :=Ai-12(mod ni+1 )を計算
し、データ番号10に格納する(ステップS140
9)。次いで、Ei :=C−Fi-1 (mod ni+1 )
を計算し、データ番号11に格納する(ステップS14
11)。
【0314】次いで、Bi :=Ei /ni を計算し、デ
ータ番号12に格納する(ステップS1413)。次い
で、Mi :=(2Fi-1 )-1Ai-1 Bi (mod n)
を計算し、データ番号12+iに格納する(ステップS
1415)。
ータ番号12に格納する(ステップS1413)。次い
で、Mi :=(2Fi-1 )-1Ai-1 Bi (mod n)
を計算し、データ番号12+iに格納する(ステップS
1415)。
【0315】次いで、繰り返し終了条件i=k−1を判
定し(ステップS1417)、不成立ならば、データ番
号9のAi-1 をデータ番号8のAi-2 へ移送するととも
に、ループカウンタiを1だけ増加させて更新し(ステ
ップS1419)、ステップS1407へ戻る。
定し(ステップS1417)、不成立ならば、データ番
号9のAi-1 をデータ番号8のAi-2 へ移送するととも
に、ループカウンタiを1だけ増加させて更新し(ステ
ップS1419)、ステップS1407へ戻る。
【0316】繰り返し終了条件i=k−1が満足されて
いれば(ステップS1417の判定がYES)、Mi の
復号化を終了する。この後、図16のステップS931
と同様の処理を行い、、データ番号6,13,…,12
+k−1の復号化されたk個の平文ブロックM0 ,M1
,…,Mk-1 を連接し、統合平文Mとしてデータ番号
12+kに格納する。
いれば(ステップS1417の判定がYES)、Mi の
復号化を終了する。この後、図16のステップS931
と同様の処理を行い、、データ番号6,13,…,12
+k−1の復号化されたk個の平文ブロックM0 ,M1
,…,Mk-1 を連接し、統合平文Mとしてデータ番号
12+kに格納する。
【0317】上記の実施形態の復号化方法によれば、復
号化の為のプログラムが再帰的に計算するのでプログラ
ムが小さくなり、またそのプログラムによる計算量も少
なくなり、高速の復号化を行うことができる。
号化の為のプログラムが再帰的に計算するのでプログラ
ムが小さくなり、またそのプログラムによる計算量も少
なくなり、高速の復号化を行うことができる。
【0318】次に、上記復号化方法を用いたラビン型N
進表現暗号の認証文生成装置の動作を説明する。認証装
置、認証文生成装置および認証文検証装置の構成は、図
2と同様であり、最下位桁h(C)0 の暗号化処理及び
認証文検証処理も同様であり、上位桁暗号化処理部のみ
が異なる。
進表現暗号の認証文生成装置の動作を説明する。認証装
置、認証文生成装置および認証文検証装置の構成は、図
2と同様であり、最下位桁h(C)0 の暗号化処理及び
認証文検証処理も同様であり、上位桁暗号化処理部のみ
が異なる。
【0319】図26は、本実施の形態におけるラビン型
N進暗号の認証文生成化処理を説明するフローチャート
であり、表13は、同処理におけるメモリ上のデータ配
置を示す表である。
N進暗号の認証文生成化処理を説明するフローチャート
であり、表13は、同処理におけるメモリ上のデータ配
置を示す表である。
【0320】
【表13】 表13に示すように、認証文生成処理においては、公開
鍵nがデータ番号1に与えられ、さらに、分割平文長
[log2n]がデータ番号4に与えられる。また、認
証文Mは、データ番号5に与えられ、データ番号6から
13+k−1まで作業領域として使用され、処理結果の
暗号化認証子ブロックはデータ番号7およびデータ番号
14から13+k−1に格納される。
鍵nがデータ番号1に与えられ、さらに、分割平文長
[log2n]がデータ番号4に与えられる。また、認
証文Mは、データ番号5に与えられ、データ番号6から
13+k−1まで作業領域として使用され、処理結果の
暗号化認証子ブロックはデータ番号7およびデータ番号
14から13+k−1に格納される。
【0321】まず、図18のステップS1001からS
1005に記載の処理手順により、データ番号5の認証
文Mに対して、ハッシュ関数hでハッシュ化し、その結
果である認証子h(M)をデータ番号6に格納し、デー
タ番号6の認証子h(M)を分割平文長[log2n]
で分割したブロック数kをデータ番号3に格納し、デー
タ番号6の認証子h(M)に対して、x2 =h(M)
(mod p),x2 =h(M)(mod q)の連立2次合同
式を解くことにより、n進表現された認証子の最下位桁
であるh(M)0 を求め、データ番号7に格納する。
1005に記載の処理手順により、データ番号5の認証
文Mに対して、ハッシュ関数hでハッシュ化し、その結
果である認証子h(M)をデータ番号6に格納し、デー
タ番号6の認証子h(M)を分割平文長[log2n]
で分割したブロック数kをデータ番号3に格納し、デー
タ番号6の認証子h(M)に対して、x2 =h(M)
(mod p),x2 =h(M)(mod q)の連立2次合同
式を解くことにより、n進表現された認証子の最下位桁
であるh(M)0 を求め、データ番号7に格納する。
【0322】次いで、図26に記載の認証子上位桁暗号
化が行われる。図26によれば、初期化変数A-1 の値
0をデータ番号9に格納し(ステップS1503)、ル
ープカウンタiの初期値1をデータ番号8に格納する
(ステップS1505)。
化が行われる。図26によれば、初期化変数A-1 の値
0をデータ番号9に格納し(ステップS1503)、ル
ープカウンタiの初期値1をデータ番号8に格納する
(ステップS1505)。
【0323】次いで、Ai-1 :=Ai-2 +ni-1 h
(C)i-1 を計算し、データ番号10に格納する(ステ
ップS1507)。次いで、Fi-1 :=Ai-12(mod n
i+1 )を計算し、データ番号11に格納する(ステップ
S1509)。次いで、Ei :=h(M)−Fi-1 (m
od ni+1 )を計算し、データ番号12に格納する
(ステップS1511)。
(C)i-1 を計算し、データ番号10に格納する(ステ
ップS1507)。次いで、Fi-1 :=Ai-12(mod n
i+1 )を計算し、データ番号11に格納する(ステップ
S1509)。次いで、Ei :=h(M)−Fi-1 (m
od ni+1 )を計算し、データ番号12に格納する
(ステップS1511)。
【0324】次いで、Bi :=Ei /ni を計算し、デ
ータ番号13に格納する(ステップS1513)。次い
で、h(C)i :=(2Fi-1 )-1Ai-1 Bi (mod
n)を計算し、データ番号13+iに格納する(ステ
ップS1515)。
ータ番号13に格納する(ステップS1513)。次い
で、h(C)i :=(2Fi-1 )-1Ai-1 Bi (mod
n)を計算し、データ番号13+iに格納する(ステ
ップS1515)。
【0325】次いで、繰り返し終了条件i=k−1を判
定し(ステップS1517)、不成立ならば、データ番
号10のAi-1 をデータ番号9のAi-2 へ移送するとと
もに、ループカウンタiを1だけ増加させて更新し(ス
テップS1519)、ステップS1507へ戻る。
定し(ステップS1517)、不成立ならば、データ番
号10のAi-1 をデータ番号9のAi-2 へ移送するとと
もに、ループカウンタiを1だけ増加させて更新し(ス
テップS1519)、ステップS1507へ戻る。
【0326】繰り返し終了条件i=k−1が満足されて
いれば(ステップS1517の判定がYES)、認証子
上位桁の暗号化を終了する。この後、データ番号7,1
4,15,…,13+k−1の暗号化されたk個の認証
子ブロックh(C)0 ,h(C)1 ,…,h(C)k-1
と、データ番号5の認証文Mとのペアを送る。
いれば(ステップS1517の判定がYES)、認証子
上位桁の暗号化を終了する。この後、データ番号7,1
4,15,…,13+k−1の暗号化されたk個の認証
子ブロックh(C)0 ,h(C)1 ,…,h(C)k-1
と、データ番号5の認証文Mとのペアを送る。
【0327】上記の実施形態の認証文生成方法によれ
ば、認証子暗号化の為のプログラムが再帰的に計算する
のでプログラムが小さくなり、またそのプログラムによ
る計算量も少なくなり、高速の認証子暗号化を行うこと
ができる。
ば、認証子暗号化の為のプログラムが再帰的に計算する
のでプログラムが小さくなり、またそのプログラムによ
る計算量も少なくなり、高速の認証子暗号化を行うこと
ができる。
【0328】[n進表現暗号のRSA型とラビン型との
比較]次に、本発明に係るn進表現を用いたRSA暗号
とラビン暗号の違いを、表14を参照して、鍵生成・暗
号化・復号化の三点から述べる。
比較]次に、本発明に係るn進表現を用いたRSA暗号
とラビン暗号の違いを、表14を参照して、鍵生成・暗
号化・復号化の三点から述べる。
【0329】
【表14】 [鍵に関する比較]n進表現を用いたRSA型暗号と同
ラビン型暗号では鍵の数が異なる。これは、本発明を適
用する対象の基礎となる暗号方式そのものを反映してお
り、RSA型では、公開鍵n,eと、秘密鍵dとを使用
するのに対し、ラビン型では、公開鍵nと秘密鍵p,q
を使用する。
ラビン型暗号では鍵の数が異なる。これは、本発明を適
用する対象の基礎となる暗号方式そのものを反映してお
り、RSA型では、公開鍵n,eと、秘密鍵dとを使用
するのに対し、ラビン型では、公開鍵nと秘密鍵p,q
を使用する。
【0330】ここで、n=pqであり、ed≡1(mo
d L),L=LCM(p−1,q−1)とする。
d L),L=LCM(p−1,q−1)とする。
【0331】[暗号化に関する比較]それぞれの暗号化
関数とその特徴は、次のとおりである。
関数とその特徴は、次のとおりである。
【0332】RSA型暗号では、公開鍵n,eを使用
し、暗号化関数、C≡Me (modnk)により暗号化
を行う。一方、ラビン型暗号は、公開鍵nを使用し、暗
号化関数、C≡M2 (mod nk)により暗号化を行
う。べき乗計算により暗号化を行うRSA型暗号は、2
乗計算により暗号化を行うラビン型暗号に比べて、暗号
化速度は低くなる。
し、暗号化関数、C≡Me (modnk)により暗号化
を行う。一方、ラビン型暗号は、公開鍵nを使用し、暗
号化関数、C≡M2 (mod nk)により暗号化を行
う。べき乗計算により暗号化を行うRSA型暗号は、2
乗計算により暗号化を行うラビン型暗号に比べて、暗号
化速度は低くなる。
【0333】ここで、nは公開鍵であり、RSA暗号・
ラビン暗号の両方に使える。eはRSA暗号のみ必要な
鍵である。
ラビン暗号の両方に使える。eはRSA暗号のみ必要な
鍵である。
【0334】[復号化に関する比較]それぞれの復号化
の関数とその特徴は、次のとおりである。
の関数とその特徴は、次のとおりである。
【0335】RSA型暗号は、公開鍵nと秘密鍵dとを
用いて、復号化関数、M≡Cd (mod n)により復
号化するのに対し、ラビン型暗号は、公開鍵nと秘密鍵
p,qとを用いて、pおよびqを法とする二次方程式x
2 ≡Cを解くことにより復号化する。
用いて、復号化関数、M≡Cd (mod n)により復
号化するのに対し、ラビン型暗号は、公開鍵nと秘密鍵
p,qとを用いて、pおよびqを法とする二次方程式x
2 ≡Cを解くことにより復号化する。
【0336】ここで、注意する事はRSA型暗号とラビ
ン型暗号の復号化関数は全く異なる点である。RSA型
暗号の復号に利用する関数によりラビン型暗号は復号化
できない、この逆も同様である。
ン型暗号の復号化関数は全く異なる点である。RSA型
暗号の復号に利用する関数によりラビン型暗号は復号化
できない、この逆も同様である。
【0337】
【発明の効果】以上説明したように、本発明によれば、
暗号化にn進表現を用いることにより、複数の平文ブロ
ックを一括して暗号化し、この復号化において、n進表
現された最下位桁は、従来の暗号と同等の復号化関数に
よって復号化されるが、最下位桁を除く上位桁は、復号
化された最下位桁の値を利用して、従来の復号化関数よ
り計算時間が十分短い合同式を解くことによって、復号
化することができる。
暗号化にn進表現を用いることにより、複数の平文ブロ
ックを一括して暗号化し、この復号化において、n進表
現された最下位桁は、従来の暗号と同等の復号化関数に
よって復号化されるが、最下位桁を除く上位桁は、復号
化された最下位桁の値を利用して、従来の復号化関数よ
り計算時間が十分短い合同式を解くことによって、復号
化することができる。
【0338】これにより、従来のRSA暗号やラビン暗
号と比較して、同程度の強度を持ちながら、復号化速度
を大幅に向上させた暗号通信方法および同方法を実現す
る装置を提供することができる。
号と比較して、同程度の強度を持ちながら、復号化速度
を大幅に向上させた暗号通信方法および同方法を実現す
る装置を提供することができる。
【0339】例えば、ブロック数をkとして、RSA型
の公開鍵暗号に本発明のn進表現暗号を適用するとすれ
ば、従来のRSA型の暗号化処理では、各ブロック毎に
nを法とするe乗演算を行うのに対して、本発明のn進
表現暗号では、kブロックをひとまとめにしてnを法と
するe乗演算を行うが、ビット数がk倍になっているの
で、暗号化処理の速度は、従来とほぼ同等である。
の公開鍵暗号に本発明のn進表現暗号を適用するとすれ
ば、従来のRSA型の暗号化処理では、各ブロック毎に
nを法とするe乗演算を行うのに対して、本発明のn進
表現暗号では、kブロックをひとまとめにしてnを法と
するe乗演算を行うが、ビット数がk倍になっているの
で、暗号化処理の速度は、従来とほぼ同等である。
【0340】一方、従来のRSA型の復号化処理では、
各ブロック毎にnを法とするd乗演算を行うのに対し
て、本発明のn進表現暗号では、最初のブロックのみn
を法とするd乗演算を行い、これに続くブロックでは、
d乗演算より遥かに処理時間が短い合同式処理を行うこ
とにより復号化する。
各ブロック毎にnを法とするd乗演算を行うのに対し
て、本発明のn進表現暗号では、最初のブロックのみn
を法とするd乗演算を行い、これに続くブロックでは、
d乗演算より遥かに処理時間が短い合同式処理を行うこ
とにより復号化する。
【0341】これにより、d乗演算処理に対する合同式
処理の処理時間比をpと仮定すると、kブロック全てを
復号化する処理時間について、従来技術と本発明との比
は、k:{1+(k−1)p}となる。例えば、p=
0.5,k=10とすると、本発明を適用した暗号化方
式における復号化処理時間は、従来より45%短縮さ
れ、迅速な復号化を行えるという効果を奏する。
処理の処理時間比をpと仮定すると、kブロック全てを
復号化する処理時間について、従来技術と本発明との比
は、k:{1+(k−1)p}となる。例えば、p=
0.5,k=10とすると、本発明を適用した暗号化方
式における復号化処理時間は、従来より45%短縮さ
れ、迅速な復号化を行えるという効果を奏する。
【0342】また、本発明によれば、認証装置としても
利用可能であり、ひとつの装置で暗号化通信と認証の両
用が可能となるような暗号化通信方法および認証方法お
よびこれらを実現する装置を提供することができる。
利用可能であり、ひとつの装置で暗号化通信と認証の両
用が可能となるような暗号化通信方法および認証方法お
よびこれらを実現する装置を提供することができる。
【0343】なお、本発明に係るn進表現暗号のブロッ
ク数kを1とすると、従来のRSA暗号またはラビン暗
号等の公開鍵型暗号となる。
ク数kを1とすると、従来のRSA暗号またはラビン暗
号等の公開鍵型暗号となる。
【0344】また、一ブロック目を公開鍵Nのビット長
程度の乱数とした場合、一ブロック目が解読の情報を与
えることがなくなるため、RSA暗号やラビン暗号に対
して知られている同じ平文を複数の通信相手に送る場合
(同報通信)、2個の平文に多項式関係がある場合、平
文のビット数が小さい場合など、簡単に解読可能である
という欠点を克服できる。
程度の乱数とした場合、一ブロック目が解読の情報を与
えることがなくなるため、RSA暗号やラビン暗号に対
して知られている同じ平文を複数の通信相手に送る場合
(同報通信)、2個の平文に多項式関係がある場合、平
文のビット数が小さい場合など、簡単に解読可能である
という欠点を克服できる。
【0345】また、本発明によれば、復号化処理に関数
テーブルの参照の技法を用いることなく、より簡潔な同
じループの計算を繰りかえすことにより復号化処理装置
を構成することができるので、復号化の為に必要なメモ
リ容量を節約するとともに、復号化処理を大幅に高速化
することができる。
テーブルの参照の技法を用いることなく、より簡潔な同
じループの計算を繰りかえすことにより復号化処理装置
を構成することができるので、復号化の為に必要なメモ
リ容量を節約するとともに、復号化処理を大幅に高速化
することができる。
【図1】本発明に係るN進表現暗号をRSA型公開鍵暗
号に適用した暗号化通信装置の全体構成を示すブロック
図である。
号に適用した暗号化通信装置の全体構成を示すブロック
図である。
【図2】本発明に係るN進表現暗号をRSA型公開鍵暗
号に適用した認証装置の全体構成を示すブロック図であ
る。
号に適用した認証装置の全体構成を示すブロック図であ
る。
【図3】図1の暗号化通信装置の一部を構成する復号化
装置の詳細ブロック図である。
装置の詳細ブロック図である。
【図4】図2の認証装置の一部を構成する認証文生成装
置の詳細ブロック図である。
置の詳細ブロック図である。
【図5】本発明に係るN進表現暗号をラビン型公開鍵暗
号に適用した暗号化通信装置の全体構成を示すブロック
図である。
号に適用した暗号化通信装置の全体構成を示すブロック
図である。
【図6】本発明に係るN進表現暗号をラビン型公開鍵暗
号に適用した認証装置の全体構成を示すブロック図であ
る。
号に適用した認証装置の全体構成を示すブロック図であ
る。
【図7】鍵生成処理部の処理内容の概略を示すフローチ
ャートである。
ャートである。
【図8】平文分割処理部の処理内容の概略を示すフロー
チャートである。
チャートである。
【図9】鍵生成処理部の処理内容の詳細を示すフローチ
ャートである。
ャートである。
【図10】図1の暗号化通信装置の一部を構成する暗号
化装置の動作を説明するフローチャートである。
化装置の動作を説明するフローチャートである。
【図11】図1の暗号化通信装置の一部を構成する復号
化装置の動作を説明するフローチャートである。
化装置の動作を説明するフローチャートである。
【図12】図2の認証装置の一部を構成する認証文生成
装置の動作を説明するフローチャートである。
装置の動作を説明するフローチャートである。
【図13】図2の認証装置の一部を構成する認証文生成
装置の動作を説明するフローチャートである。
装置の動作を説明するフローチャートである。
【図14】図2の認証装置の一部を構成する認証文検証
装置の動作を説明するフローチャートである。
装置の動作を説明するフローチャートである。
【図15】図5の暗号化通信装置の一部を構成する暗号
化装置の動作を説明するフローチャートである。
化装置の動作を説明するフローチャートである。
【図16】図5の暗号化通信装置の一部を構成する復号
化装置の動作を説明するフローチャートである。
化装置の動作を説明するフローチャートである。
【図17】図5の暗号化通信装置の一部を構成する復号
化装置の動作のうち、上位桁の復号化動作を説明するフ
ローチャートである。
化装置の動作のうち、上位桁の復号化動作を説明するフ
ローチャートである。
【図18】図6の認証装置の一部を構成する認証文生成
装置の動作を説明するフローチャートである。
装置の動作を説明するフローチャートである。
【図19】図6の認証装置の一部を構成する認証文生成
装置の動作のうち、上位桁の暗号化動作を説明するフロ
ーチャートである。
装置の動作のうち、上位桁の暗号化動作を説明するフロ
ーチャートである。
【図20】図6の認証装置の一部を構成する認証文検証
装置の動作を説明するフローチャートである。
装置の動作を説明するフローチャートである。
【図21】本発明に係るN進表現暗号をRSA型公開鍵
暗号に適用した暗号化通信装置の変形例の構成を示すブ
ロック図である。
暗号に適用した暗号化通信装置の変形例の構成を示すブ
ロック図である。
【図22】本発明に係るN進表現暗号をラビン型公開鍵
暗号に適用した暗号化通信装置の変形例の構成を示すブ
ロック図である。
暗号に適用した暗号化通信装置の変形例の構成を示すブ
ロック図である。
【図23】RSA型N進表現暗号の上位桁復号化方法を
説明するフローチャートである。
説明するフローチャートである。
【図24】RSA型N進表現暗号の上位桁認証文暗号化
方法を説明するフローチャートである。
方法を説明するフローチャートである。
【図25】ラビン型N進表現暗号の復号化方法を説明す
るフローチャートである。
るフローチャートである。
【図26】ラビン型N進表現暗号の上位桁認証文暗号化
方法を説明するフローチャートである。
方法を説明するフローチャートである。
11…暗号化通信装置、21…鍵生成処理部、31…暗
号化装置、33…平文分割処理部、35…データ結合
部、37…暗号化処理部、41…復号化装置、43…最
下位桁復号化処理部、45…上位桁復号化処理部、47
…データ連結部、51…通信路。
号化装置、33…平文分割処理部、35…データ結合
部、37…暗号化処理部、41…復号化装置、43…最
下位桁復号化処理部、45…上位桁復号化処理部、47
…データ連結部、51…通信路。
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.6 識別記号 FI H04L 9/00 675B
Claims (48)
- 【請求項1】暗号化の対象である平文データと、 それぞれpとqとを値とする2つの素数データで構成さ
れる第1の秘密鍵データと、 dを値とする第2の秘密鍵データと、 pとqとの積Nを値とする第1の公開鍵データと、 eを値とする第2の公開鍵データと、 2以上の整数であるkを値とするブロック数データと、
を用いる公開鍵型のN進表現暗号による通信方法であっ
て、 前記Nを基数とするN進位取り記数法により前記平文デ
ータをk桁のN進数データとして表現する第1の過程
と、 前記k桁のN進数データに対して、第1及び第2の公開
鍵データを使用する演算により、前記平文データを暗号
化した暗号文データを得る第2の過程と、 第1の公開鍵データ及び第2の秘密鍵データを用いて、
前記暗号文データから前記N進数の最下位桁の値を復号
化する第3の過程と、 前記復号化された最下位桁の値を用いて、前記N進数の
上位の桁の値を順次復号化する第4の過程と、 前記復号化されたN進数の各桁の値を用いて前記平文デ
ータを復元する第5の過程と、 を備えたことを特徴とするN進表現暗号による通信方
法。 - 【請求項2】前記第1の過程は、前記平文データの先頭
に予め第1の公開鍵データNのビット長程度の乱数を連
接して連接データを作成し、以下この連接データを平文
データとして、前記Nを基数とするN進位取り記数法に
よりk桁のN進数データとして表現する過程であること
を特徴とする請求項1に記載のN進表現暗号による通信
方法。 - 【請求項3】暗号化の対象である平文データと、 それぞれpとqとを値とする2つの素数データの積Nを
値とする第1の公開鍵データと、 eを値とする第2の公開鍵データと、 2以上の整数であるkを値とするブロック数データと、 を用いて、前記平文データに該当する暗号文データを生
成する公開鍵型のN進表現暗号による暗号化方法であっ
て、 各ブロックがNの剰余類の範囲に収まるように、前記平
文データを複数のブロックに分割するとともに、分割さ
れたブロックの数kを計数する第1の過程と、 前記分割された各ブロックのデータを、それぞれN進数
の形態で表現する第2の過程と、 前記平文データの全体が、k桁のN進数として位取りさ
れるように各ブロックのデータを順次結合する第3の過
程と、 Nのk乗を法として、前記結合されたデータをe乗した
値である暗号文データを計算する第4の過程と、 を備えたことを特徴とするN進表現暗号による暗号化方
法。 - 【請求項4】暗号化の対象である平文データと、 それぞれpとqとを値とする2つの素数データの積Nを
値とする第1の公開鍵データと、 eを値とする第2の公開鍵データと、 2以上の整数であるkを値とするブロック数データと、 を用いて、前記平文データに該当する暗号文データを生
成する公開鍵型のN進表現暗号による暗号化プログラム
を格納した記憶媒体であって、 各ブロックがNの剰余類の範囲に収まるように、前記平
文データを複数のブロックに分割するとともに、分割さ
れたブロックの数kを計数し、 前記分割された各ブロックのデータを、それぞれN進数
の形態で表現し、 前記平文データの全体が、k桁のN進数として位取りさ
れるように各ブロックのデータを順次結合し、 Nのk乗を法として、前記結合されたデータをe乗した
値である暗号文データを計算すること、 を特徴とするN進表現暗号による暗号化プログラムを格
納した記憶媒体。 - 【請求項5】暗号化の対象である平文データと、 それぞれpとqとを値とする2つの素数データの積Nを
値とする第1の公開鍵データと、 eを値とする第2の公開鍵データと、 2以上の整数であるkを値とするブロック数データと、 を用いて、前記平文データに該当する暗号文データを生
成する公開鍵型のN進表現暗号による暗号化装置であっ
て、 各ブロックがNの剰余類の範囲に収まるように、前記平
文データを複数のブロックに分割するとともに、分割さ
れたブロックの数kを計数する平文分割手段と、 前記平文分割手段が分割した各ブロックのデータを順次
格納する記憶手段と、 前記記憶された各ブロックのデータが1つのN進数の各
桁の値を示すように、各ブロックのデータを順次結合し
た結合データを生成するデータ結合手段と、 Nのk乗を法として、前記結合データをe乗した値であ
る暗号文データを生成する暗号化手段と、 を備えたことを特徴とするN進表現暗号による暗号化装
置。 - 【請求項6】平文データからN進表現暗号により暗号化
された暗号文データと、 それぞれpとqとを値とする2つの素数データの積Nを
値とする第1の公開鍵データと、 eを値とする第2の公開鍵データと、 dを値とする第2の秘密鍵データと、 2以上の整数であるkを値とするブロック数データと、
を用いて、前記暗号文データに該当する平文データを復
元する公開鍵型のN進表現暗号の復号化方法であって、 Nを法として前記暗号文データの値をd乗することによ
って、前記平文データをN進位取り記数法で表現したと
きの最下位桁の値M0 を求める第1の過程と、 このM0 に基づいて、1次合同式を用いて、自然数の中
から、その値をe乗した値に対して、Nのk乗を法とす
る剰余が前記暗号文データの値に等しくなるような自然
数を、M0 を最下位桁とし桁数がkであるN進数表現の
形で求める第2の過程(以下、この過程を上位桁復号化
過程と称する)と、 これらのN進数の各桁の数値を順次連結することによっ
て平文データを生成する第3の過程と、 を備えたことを特徴とするN進表現暗号の復号化方法。 - 【請求項7】前記上位桁復号化過程は、 前記M0 を最下位桁の値とし桁数がkであるN進数とし
て複数の平文ブロックを表現したもの全体をe乗した形
である暗号文を、前記e乗を展開して得られるNに関す
るk−1次の多項式に対応させ、 該k−1次の多項式のそれぞれの係数値を、前記複数の
平文ブロックを変数とする多項式関数とみなして、 前記暗号文データ及び前記N進数の既に求められた下位
の桁の値に基づいて、低次の係数から高次の係数へ昇順
に順次求める係数値計算過程と、 これらの係数値を使って、Nを法とする1次合同式を解
くことにより、前記N進数における上位の桁の値を順次
確定していく上位桁計算過程と、 を備えたことを特徴とする請求項6に記載のN進表現暗
号の復号化方法。 - 【請求項8】前記係数値計算過程は、 求められた係数の値を係数テーブルに順次記憶するとと
もに、該係数テーブルに記憶された低次の係数の値を参
照することを含むことを特徴とする請求項7に記載のN
進表現暗号の復号化方法。 - 【請求項9】前記k桁のN進数の各桁の値をMi (0≦
i≦k−1)とするとき、 前記上位桁復号化過程は、 前記最下位桁の値M0 と、第1の公開鍵データNと、第
2の公開鍵データeと、暗号文データCと、ブロック数
データkとを入力として、M0 ,M1 ,…,Mi-1 に基
づいてMi を求める同一の写像もしくは同一の計算式に
より、再帰的にM1 からMk-1 までを順次復号化するこ
とを特徴とする請求項6に記載のN進表現暗号の復号化
方法。 - 【請求項10】平文データからN進表現暗号により暗号
化された暗号文データと、 それぞれpとqとを値とする2つの素数データの積Nを
値とする第1の公開鍵データと、 eを値とする第2の公開鍵データと、 dを値とする第2の秘密鍵データと、 2以上の整数であるkを値とするブロック数データと、
を用いて、前記暗号文データに該当する平文データを復
元する公開鍵型のN進表現暗号の復号化プログラムを格
納した記憶媒体であって、 Nを法として前記暗号文データの値をd乗することによ
って、前記平文データをN進位取り記数法で表現したと
きの最下位桁の値M0 を求め、 このM0 に基づいて、1次合同式を用いて、自然数の中
から、その値をe乗した値に対して、Nのk乗を法とす
る剰余が前記暗号文データの値に等しくなるような自然
数を、M0 を最下位桁とし桁数がkであるN進数表現の
形で求め、 これらのN進数の各桁の数値を順次連結することによっ
て平文データを生成する、 ことを特徴とするN進表現暗号の復号化プログラムを格
納した記憶媒体。 - 【請求項11】平文データからN進表現暗号により暗号
化された暗号文データと、 それぞれpとqとを値とする2つの素数データの積Nを
値とする第1の公開鍵データと、 eを値とする第2の公開鍵データと、 dを値とする第2の秘密鍵データと、 2以上の整数であるkを値とするブロック数データと、
を用いて、前記暗号文データに該当する平文データを復
元するN進表現暗号の復号化装置であって、 Nを法として、前記暗号文データをd乗した値の剰余を
求めることにより、前記平文データをN進位取り記数法
で表現したときの最下位桁の値M0 を得る最下位桁復号
化手段と、 このM0 に基づいて、自然数の中から、Nのk乗を法と
して、その値をe乗した値が前記暗号文データの値に等
しくなるような自然数を、M0 を最下位桁とし桁数がk
であるN進数表現の形で求める上位桁復号化手段と、 前記N進数の各桁の数値を順次連結することによって平
文データを生成するデータ連結手段と、を備えてなり、 前記上位桁復号化手段は、 前記M0 を最下位桁の値とし桁数がkであるN進数とし
て複数の平文ブロックを表現したもの全体をe乗した形
である暗号文を、前記e乗を展開して得られるNに関す
るk−1次の多項式に対応させ、 該k−1次の多項式のそれぞれの係数値を、前記複数の
平文ブロックを変数とする多項式関数とみなして、 前記暗号文データ及び前記N進数の既に求められた下位
の桁の値に基づいて、低次の係数から高次の係数へ昇順
に順次求める係数値計算手段と、 この係数計算手段により求められた係数値を使って、N
を法とする1次合同式を解くことにより、前記N進数に
おける上位の桁の値を順次確定していく上位桁計算手段
と、 を備えたことを特徴とするN進表現暗号の復号化装置。 - 【請求項12】前記係数計算手段は、 既に求められた低次の係数の値を順次記憶した係数テー
ブル記憶手段と、 この係数テーブル記憶手段から求めるべき係数より低次
の係数値を読み出す読出し手段と、 を備えたことを特徴とする請求項11に記載のN進表現
暗号の復号化装置。 - 【請求項13】平文データMからN進表現暗号により暗
号化された暗号文データCと、 それぞれpとqとを値とする2つの素数データの積Nを
値とする第1の公開鍵データと、 eを値とする第2の公開鍵データと、 dを値とする第2の秘密鍵データと、 2以上の整数であるkを値とするブロック数データと、
を用いて、前記暗号文データCに該当する平文データM
を復元するN進表現暗号の復号化装置であって、 Nを法として、前記暗号文データをd乗した値の剰余を
求めることにより、前記平文データをN進位取り記数法
で表現したときの最下位桁の値M0 を得る最下位桁復号
化手段と、 前記最下位桁の値M0 と、第1の公開鍵データNと、第
2の公開鍵データeと、暗号文データCと、ブロック数
データkとを入力として、M0 ,M1 ,…,Mi-1 に基
づいてMi (1≦i≦k−1)を求める同一の写像もし
くは同一の計算式により、再帰的に前記N進数表現の上
位桁であるM1 からMk-1 までを順次復号化する上位桁
復号化手段と、 前記N進数の各桁の数値を順次連結することによって平
文データを生成するデータ連結手段と、 を備えたことを特徴とするN進表現暗号の復号化装置。 - 【請求項14】認証対象である認証文データMと、 それぞれpとqとを値とする2つの素数データで構成さ
れる第1の秘密鍵データと、 dを値とする第2の秘密鍵データと、 pとqとの積Nを値とする第1の公開鍵データと、 eを値とする第2の公開鍵データと、 2以上の整数であるkを値とするブロック数データと、 を用いる公開鍵型のN進表現暗号による認証方法であっ
て、 前記認証文データに基づいて認証子データh(M)を生成
する第1の過程と、 第1の公開鍵データ及び第2の秘密鍵データを用いる演
算により、前記認証子データh(M)からN進数表現され
た暗号化認証子データh(C)の最下位桁の値h(C)0 を
生成する第2の過程と、 前記生成された最下位桁の値h(C)0 を用いて、前記N
進数表現された暗号化認証子データの上位の桁の値を順
次生成する第3の過程と、 前記生成されたN進数の各桁の値を示すブロックを順次
連結して暗号化認証子データh(C)を生成する第4の過
程と、 前記暗号化認証子データh(C)と前記N進数の桁数kと
認証文データMとを認証相手に送信する第5の過程と、 前記暗号化認証子データ全体を1つのk桁のN進数とし
て、これに対して、第1及び第2の公開鍵データを使用
する演算により、前記暗号化認証子データh(C)から復
号化された認証子データh(M)を得る第6の過程と、 前記復号化された認証子データh(M)と前記認証文デー
タMとを用いて認証を行う第7の過程と、 を備えたこと特徴とするN進表現暗号による認証方法。 - 【請求項15】認証対象となる認証子データh(M)と、 それぞれpとqとを値とする2つの素数データの積Nを
値とする第1の公開鍵データと、 dを値とする第2の秘密鍵データと、 2以上の整数であるkを値とするブロック数データと、 を用いて、 前記認証子データh(M)を暗号化した暗号化認証子デー
タh(C)を生成するN進表現暗号による認証文生成方法
であって、 Nを法として前記認証子データの値をd乗した値を計算
し、この値を前記認証子データh(M)を暗号化してN進
表現したときの最下位桁の値h(C)0 とする第1の過程
と、 このh(C)0 に基づいて、自然数の中から、Nのk乗を
法としてその値をd乗した値が前記認証子データh(M)
の値に等しくなるような自然数を、h(C)0 を最下位桁
の値としたk桁のN進数として表現した形で求める第2
の過程(以下、この過程を認証子上位桁暗号化過程と称
する)と、 このN進数の各桁を表わす数値データを順次連結するこ
とによって、暗号化認証子データh(C)を生成する第3
の過程と、 を備えたことを特徴とするN進表現暗号による認証文生
成方法。 - 【請求項16】前記認証子上位桁暗号化過程は、 前記h(C)0 を最下位桁の値とし桁数がkであるN進数
として前記認証子データh(M)を表現したもの全体をd
乗した形である暗号化認証子データh(C)を、前記d乗
を展開して得られるNに関するk−1次の多項式に対応
させ、 該k−1次の多項式のそれぞれの係数値を、前記認証子
データを変数とする多項式関数とみなして、前記認証子
データh(M)及び前記N進数の既に求められた下位の桁
の値に基づいて、低次の係数から高次の係数へ昇順に順
次求める係数値計算過程と、 これらの係数値を使って、Nを法とする1次合同式を解
くことにより、前記N進数における上位の桁の値を順次
確定していく上位桁計算過程と、 を備えたことを特徴とする請求項15に記載のN進表現
暗号による認証文生成方法。 - 【請求項17】前記係数値計算過程は、 求められた係数の値を係数テーブルに順次記憶するとと
もに、該係数テーブルに記憶された低次の係数の値を参
照することを含むことを特徴とする請求項16に記載の
N進表現暗号による認証文生成方法。 - 【請求項18】前記k桁のN進数の各桁の値をh(C)i
(0≦i≦k−1)とするとき、 前記認証子上位桁暗号化過程は、 前記最下位桁の値h(C)0 と、第1の公開鍵データN
と、第2の公開鍵データeと、認証子データh(M)と、
ブロック数データkとを入力として、h(C)0 ,h(C)
1 ,…,h(C)i-1 に基づいてh(C)i を求める同一の
写像もしくは同一の計算式により、再帰的にh(C)1 か
らh(C)k-1 までを順次暗号化することを特徴とする請
求項15に記載のN進表現暗号による認証文生成方法。 - 【請求項19】認証対象となる認証子データh(M)と、 それぞれpとqとを値とする2つの素数データの積Nを
値とする第1の公開鍵データと、 dを値とする第2の秘密鍵データと、 2以上の整数であるkを値とするブロック数データと、 を用いて、 前記認証子データh(M)を暗号化した暗号化認証子デー
タh(C)を生成するN進表現暗号による認証文生成プロ
グラムを格納した記憶媒体であって、 Nを法として前記認証子データの値をd乗した値を計算
し、この値を前記認証子データh(M)を暗号化してN進
表現したときの最下位桁の値h(C)0 とし、 このh(C)0 に基づいて、自然数の中から、Nのk乗を
法としてその値をd乗した値が前記認証子データh(M)
の値に等しくなるような自然数を、h(C)0 を最下位桁
の値としたk桁のN進数として表現した形で求め、 このN進数の各桁を表わす数値データを順次連結するこ
とによって、暗号化認証子データh(C)を生成する、 ことを特徴とするN進表現暗号による認証文生成プログ
ラムを格納した記憶媒体。 - 【請求項20】認証対象となる認証子データh(M)と、 それぞれpとqとを値とする2つの素数データの積Nを
値とする第1の公開鍵データと、 dを値とする第2の秘密鍵データと、 2以上の整数であるkを値とするブロック数データと、
を用いて、 前記認証子データh(M)を暗号化した暗号化認証子デー
タh(C)を生成するN進表現暗号による認証文生成装置
であって、 Nを法として、前記認証子データの値をd乗した値h
(C)0 を計算する最下位桁計算手段と、 h(C)0 に基づいて、自然数の中から、Nのk乗を法と
してその値をd乗した値が、前記認証子データの値に等
しくなるような自然数を、h(C)0 を最下位桁の値とし
たk桁のN進数として表現した形で求める認証子上位桁
暗号化手段と、 このN進数の各桁を表わす数値データを順次連結するこ
とによって、暗号化認証子データh(C)を生成する連結
手段と、 を備えてなり、 前記認証子上位桁暗号化手段は、 前記h(C)0 を最下位桁の値とし桁数がkであるN進数
として前記認証子データh(M)を表現したもの全体を
d乗した形である暗号化認証子データh(C)を、前記
d乗を展開して得られるNに関するk−1次の多項式に
対応させ、 該k−1次の多項式のそれぞれの係数値を、前記認証子
データを変数とする多項式関数とみなして、前記認証子
データh(M)及び前記N進数の既に求められた下位の桁
の値に基づいて、低次の係数から高次の係数へ昇順に順
次求める係数計算手段と、 これらの係数値を使って、Nを法とする1次合同式を解
くことにより、前記N進数におけるより上位の桁の値を
順次確定していく上位桁計算手段と、 を備えたことを特徴とするN進表現暗号による認証文生
成装置。 - 【請求項21】前記係数計算手段は、 既に求められた低次の係数の値を順次記憶した係数テー
ブル記憶手段と、 この係数テーブル記憶手段から求めるべき係数より低次
の係数値を読み出す読出し手段と、 を備えたことを特徴とする請求項20に記載のN進表現
暗号による認証文生成装置。 - 【請求項22】認証対象となる認証子データh(M)と、 それぞれpとqとを値とする2つの素数データの積Nを
値とする第1の公開鍵データと、 eを値とする第2の公開鍵データと、 dを値とする第2の秘密鍵データと、 2以上の整数であるkを値とするブロック数データと、
を用いて、 前記認証子データh(M)を暗号化した暗号化認証子デー
タh(C)を生成するN進表現暗号による認証文生成装置
であって、 Nを法として、前記認証子データの値をd乗した値h
(C)0 を計算する最下位桁計算手段と、 h(C)0 に基づいて、自然数の中から、Nのk乗を法と
してその値をd乗した値が、前記認証子データの値に等
しくなるような自然数を、h(C)0 を最下位桁の値とし
たk桁のN進数として表現した形で求める認証子上位桁
暗号化手段と、 このN進数の各桁を表わす数値データを順次連結するこ
とによって、暗号化認証子データh(C)を生成する連結
手段と、を備えてなり、 前記k桁のN進数の各桁の値をh(C)i (0≦i≦k−
1)とするとき、 前記認証子上位桁暗号化手段は、前記最下位桁の値h
(C)0 と、第1の公開鍵データNと、第2の公開鍵デー
タeと、認証子データh(M)と、ブロック数データkと
を入力として、h(C)0 ,h(C)1 ,…,h(C)i-1 に
基づいてh(C)iを求める同一の写像もしくは同一の計
算式により、再帰的にh(C)1 からh(C)k-1 までを順
次暗号化することを特徴とするN進表現暗号による認証
文生成装置。 - 【請求項23】認証対象である認証文データMと、 この認証文データから前記請求項15、16、17、1
8、20、21、22のいずれか一項に記載の方法また
は装置により生成された暗号化認証子データh(C)と、 この暗号化認証子データh(C)のブロック数kを値とす
るブロック数データと、 それぞれpとqとを値とする2つの素数データの積Nを
値とする第1の公開鍵データと、 eを値とする第2の公開鍵データと、 を用いて、前記認証文データM及びまたは前記暗号化認
証子データh(C)が正当であるか否かを判別する認証文
検証方法であって、 前記暗号化認証子データh(C)の各ブロックをk桁のN
進数の各桁として順次結合する第1の過程と、 Nのk乗を法として、この結合されたデータをe乗した
値である復号化された認証子データh(M)を求める第2
の過程と、 この復号化された認証子データh(M)と前記認証文デー
タMに基づいて生成された認証子データh(M)′とを比
較し、この両者が一致していた場合は、一連の認証ない
し検証過程が正常であったと判定し、 この両者が不一致であった場合は、一連の認証ないし検
証過程のいずれかに異常があったと判定する第3の過程
と、 を備えたことを特徴とするN進表現暗号による認証文検
証方法。 - 【請求項24】認証対象である認証文データMと、 この認証文データから前記請求項15、16、17、1
8、20、21、22のいずれか一項に記載の方法また
は装置により生成された暗号化認証子データh(C)と、 この暗号化認証子データh(C)のブロック数kを値とす
るブロック数データと、 それぞれpとqとを値とする2つの素数データの積Nを
値とする第1の公開鍵データと、 eを値とする第2の公開鍵データと、 を用いて、前記認証文データM及びまたは前記暗号化認
証子データh(C)が正当であるか否かを判別する認証文
検証プログラムを格納した記憶媒体であって、 前記暗号化認証子データh(C)の各ブロックをk桁のN
進数の各桁として順次結合し、 Nのk乗を法として、この結合されたデータをe乗した
値である復号化された認証子データh(M)を求め、 この復号化された認証子データh(M)と前記認証文デー
タMに基づいて生成された認証子データh(M)′とを比
較し、この両者が一致していた場合は、一連の認証ない
し検証過程が正常であったと判定し、 この両者が不一致であった場合は、一連の認証ないし検
証過程のいずれかに異常があったと判定する、 ことを特徴とするN進表現暗号による認証文検証プログ
ラムを格納した記憶媒体。 - 【請求項25】認証対象である認証文データMと、 この認証文データMから前記請求項15、16、17、
18、20、21、22のいずれか一項に記載の方法ま
たは装置により生成された暗号化認証子データh(C)
と、 この暗号化認証子データh(C)のブロック数kを値とす
るブロック数データと、 それぞれpとqとを値とする2つの素数データの積Nを
値とする第1の公開鍵データと、 eを値とする第2の公開鍵データと、 を用いて、前記認証文データM及びまたは前記暗号化認
証子データh(C)が正当であるか否かを判別する認証文
検証装置であって、 前記認証文データMをハッシュ化し、ハッシュ化認証子
データh(M)′を生成するハッシュ化手段と、 前記暗号化認証子データh(C)の各ブロックをk桁のN
進数の各桁として順次結合する結合手段と、 Nのk乗を法として、この結合されたデータをe乗した
値を求めて復号化された復号化認証子データh(M)を得
る認証子復号化手段と、 前記復号化認証子データh(M)と前記ハッシュ化認証子
データh(M)′とを比較し、この両者が一致していた場
合は、一連の認証ないし検証過程が正常であったと判定
し、この両者が不一致であった場合は、一連の認証ない
し検証過程のいずれかに異常があったと判定する照合判
定手段と、 を備えたことを特徴とするN進表現暗号による認証文検
証装置。 - 【請求項26】暗号化の対象である平文データと、 それぞれpとqとを値とする2つの素数データで構成さ
れる秘密鍵データと、 pとqとの積Nを値とする公開鍵データと、 2以上の整数であるkを値とするブロック数データと、 を用いた公開鍵型のN進表現暗号による通信および認証
方法であって、 前記平文データを、Nの剰余類の範囲でk個のブロック
に分割する第1の過程と、 前記分割された各ブロックの値をN進数の各桁の値とす
るとともに、Nを基数とするN進位取り記数法により前
記平文データをk桁のN進数として表現する第2の過程
と、 前記ブロック数kを第2の公開鍵データとし、前記k桁
のN進数に対して、公開鍵データを用いる演算により、
前記平文データに該当する暗号文データを得る第3の過
程と、 前記秘密鍵データと、前記公開鍵データとを用いて、前
記暗号文データから前記k桁のN進数の最下位桁の値を
復号化する第4の過程と、 前記復号化された最下位桁の値を用いて、前記k桁のN
進数の上位の桁の値を順次復号化する第5の過程と、 を備えたことを特徴とするN進表現暗号による通信方
法。 - 【請求項27】前記第1の過程は、前記平文データの先
頭に予め第1の公開鍵データNのビット長程度の乱数を
連接して連接データを作成し、以下この連接データを平
文データとして、前記Nを基数とするN進位取り記数法
によりk桁のN進数データとして表現する過程であるこ
とを特徴とする請求項26に記載のN進表現暗号による
通信方法。 - 【請求項28】暗号化の対象である平文データMと、 それぞれpとqとを値とする2つの素数データで構成さ
れた秘密鍵データ同士の積Nを値とする公開鍵データ
と、 2以上の整数であるkを値とするブロック数データと、 を用いて、前記平文データに該当する暗号文データを生
成する公開鍵型のN進表現暗号による暗号化方法であっ
て、 各ブロックがNの剰余類の範囲に収まるように、前記平
文データMをk個のブロックに分割する第1の過程と、 前記平文データM全体がk桁のN進数として位取りされ
るように各ブロックのデータを順次結合する第2の過程
と、 前記結合されたデータを2乗する第3の過程と、 この2乗されたデータに対して、Nをk乗した数値を法
とした剰余である暗号文データCを生成する第4の過程
と、 を備えたことを特徴とするN進表現暗号による暗号化方
法。 - 【請求項29】暗号化の対象である平文データMと、 それぞれpとqとを値とする2つの素数データで構成さ
れた秘密鍵データ同士の積Nを値とする公開鍵データ
と、 2以上の整数であるkを値とするブロック数データと、 を用いて、前記平文データに該当する暗号文データを生
成する公開鍵型のN進表現暗号による暗号化プログラム
を格納した記憶媒体であって、 各ブロックがNの剰余類の範囲に収まるように、前記平
文データMをk個のブロックに分割し、 前記平文データM全体がk桁のN進数として位取りされ
るように各ブロックのデータを順次結合し、 前記結合されたデータを2乗し、 この2乗されたデータに対して、Nをk乗した数値を法
とした剰余である暗号文データCを生成する、 ことを特徴とするN進表現暗号による暗号化プログラム
を格納した記憶媒体。 - 【請求項30】暗号化の対象である平文データMと、 それぞれpとqとを値とする2つの素数データで構成さ
れる秘密鍵データ同士の積Nを値とする公開鍵データ
と、 2以上の整数であるkを値とするブロック数データと、 を用いて、前記平文データに該当する暗号文データを生
成するN進表現暗号による暗号化装置であって、 各ブロックがNの剰余類の範囲に収まるように、前記平
文データMをk個のブロックに分割する平文分割手段
と、 前記平文データM全体がk桁のN進数として位取りされ
るように、前記各ブロックのデータを順次結合した結合
データを生成するデータ結合手段と、 Nをk乗した数値を法として、前記結合データを2乗す
ることにより暗号文データCを生成する暗号化手段と、 を備えたことを特徴とするN進表現暗号による暗号化装
置。 - 【請求項31】暗号化された暗号文データCと、 2以上の整数であるkを値とするブロック数データと、 それぞれpとqとを値とする2つの素数データで構成さ
れる秘密鍵データと、 pとqとの積Nを値とする公開鍵データと、 を用いて、前記暗号文データCに該当する平文データM
を復元する復号化方法であって、 自然数の中から、その値を2乗した値が、Nを法として
暗号文データCに等しくなるような自然数xを、数値p
を法とする剰余ならびに数値qを法とする剰余を用いて
求め、この値xを桁数がkであるN進数の最下位桁の値
M0 とする第1の過程と、 M0 の値と前記暗号文データCとを含む1次合同式を用
いて、桁数がkであるN進数の各桁の値を下位から逐次
求める第2の過程(以下、この過程を上位桁復号化過程
と称する)と、 このN進数の各桁の数値データを順次連結し、全体とし
て1つのN進数データとすることによって、上記暗号文
データに該当する平文データMを復元する第3の過程
と、 を備えたことを特徴とするN進表現暗号による復号化方
法。 - 【請求項32】前記上位桁復号化過程は、 前記M0 を最下位桁の値とし桁数がkであるN進数とし
て表現したデータ全体を2乗した形である暗号文を、前
記2乗を展開して得られるNに関するk−1次の多項式
に対応させ、 該k−1次の多項式のそれぞれの係数値を、前記複数の
平文ブロックを変数とする多項式関数とみなして、 前記暗号文データ及び前記N進数の既に求められた下位
の桁の値に基づいて、このk−1次の式の係数値を昇順
に順次求める過程と、 求めた係数値を使って、Nを法とする1次合同式を解く
ことにより、前記N進数におけるより上位の桁の値を順
次確定していく過程と、を含むことを特徴とする請求項
31に記載のN進表現暗号の復号化方法。 - 【請求項33】前記k桁のN進数の各桁の値をMi (0
≦i≦k−1)とするとき、 前記上位桁復号化過程は、 前記最下位桁の値M0 と、公開鍵データNと、暗号文デ
ータCと、ブロック数データkとを入力として、M0 ,
M1 ,…,Mi-1 に基づいてMi を求める同一の写像も
しくは同一の計算式により、再帰的にM1 からMk-1 ま
でを順次復号化することを特徴とする請求項31に記載
のN進表現暗号の復号化方法。 - 【請求項34】暗号化された暗号文データCと、 2以上の整数であるkを値とするブロック数データと、 それぞれpとqとを値とする2つの素数データで構成さ
れる秘密鍵データと、 pとqとの積Nを値とする公開鍵データと、 を用いて、前記暗号文データCに該当する平文データM
を復元する復号化プログラムを格納した記憶媒体であっ
て、 自然数の中から、その値を2乗した値が、Nを法として
暗号文データCに等しくなるような自然数xを、数値p
を法とする剰余ならびに数値qを法とする剰余を用いて
求め、この値xを桁数がkであるN進数の最下位桁の値
M0 とし、 M0 の値と前記暗号文データCとを含む1次合同式を用
いて、桁数がkであるN進数の各桁の値を下位から逐次
求め、 このN進数の各桁の数値データを順次連結し、全体とし
て1つのN進数データとすることによって、上記暗号文
データに該当する平文データMを復元する、 ことを特徴とするN進表現暗号による復号化プログラム
を格納した記憶媒体。 - 【請求項35】暗号化された暗号文データCと、 2以上の整数であるkを値とするブロック数データと、 それぞれpとqとを値とする2つの素数データで構成さ
れる秘密鍵データと、 pとqとの積Nを値とする公開鍵データと、 を用いて、前記暗号文データCに該当する平文データM
を復元する復号化装置であって、 自然数の中から、その値を2乗した値が、Nを法として
暗号文データCに等しくなるような自然数xを、数値p
を法とする剰余ならびに数値qを法とする剰余を用いて
求め、この値xを桁数がkであるN進数の最下位桁の値
M0 とする最下位桁復号化手段と、 M0 の値と前記暗号文データCとを含む1次合同式を解
くことにより、桁数がkであるN進数の各桁の値を下位
から逐次求める上位桁復号化手段と、 このN進数の各桁の数値データを順次連結し、平文デー
タMを復元するデータ連結手段と、 を備えたことを特徴とするN進表現暗号の復号化装置。 - 【請求項36】前記上位桁復号化手段は、 前記M0 を最下位桁の値とし桁数がkであるN進数とし
て表現したデータ全体を2乗した形である暗号文を、前
記2乗を展開して得られるNに関するk−1次の多項式
に対応させ、 該k−1次の多項式のそれぞれの係数値を、前記複数の
平文ブロックを変数とする多項式関数とみなして、 前記暗号文データ及び前記N進数の既に求められた下位
の桁の値に基づいて、このk−1次の式の係数値を昇順
に順次求め、この求めた係数値を使って、Nを法とする
1次合同式を解くことにより、前記N進数におけるより
上位の桁の値を順次確定していくことを特徴とする請求
項35に記載のN進表現暗号の復号化装置。 - 【請求項37】前記k桁のN進数の各桁の値をMi (0
≦i≦k−1)とするとき、 前記上位桁復号化手段は、前記最下位桁の値M0 と、公
開鍵データNと、暗号文データCと、ブロック数データ
kとを入力として、M0 ,M1 ,…,Mi-1 に基づいて
Mi を求める同一の写像もしくは同一の計算式により、
再帰的にM1 からMk-1 までを順次復号化することを特
徴とする請求項35に記載のN進表現暗号の復号化装
置。 - 【請求項38】認証対象である認証文データMと、 それぞれpとqとを値とする2つの素数データで構成さ
れる秘密鍵データと、 pとqとの積Nを値とする公開鍵データと、 2以上の整数であるkを値とするブロック数データと、 を用いたN進表現暗号による認証方法であって、 前記認証文データMに基づいて認証子データh(M)を生
成する第1の過程と、 前記秘密鍵データ及び前記公開鍵データを用いて、前記
認証子データh(M)をk桁のN進数に暗号化したときの
最下位桁の値h(C)0 を生成する第2の過程と、 前記最下位桁の値を用いて、前記k桁のN進数の上位の
桁の値を順次暗号化する第3の過程と、 前記N進数の各桁の値を順次連結して、暗号化認証子デ
ータh(C)を生成する第4の過程と、 前記暗号化認証子データh(C)と認証文データMとを通
信する第5の過程と、 前記暗号化認証子データh(C)をk個のブロックに分割
するとともに、この分割された各ブロックの値をN進数
の各桁の値とした結合データを求める第6の過程と、 この結合データ全体を2乗した値からNのk乗を法とす
る剰余を求めることにより暗号化認証子データh(C)を
復号化して復号化認証子データh(M)′を得る第7の過
程と、 この復号化認証子データh(M)′と前記認証文データM
とを用いて認証を行う第8の過程と、 を備えたことを特徴とする公開鍵型のN進表現暗号によ
る認証方法。 - 【請求項39】認証対象となる認証文データMと、 それぞれpとqとを値とする2つの素数データで構成さ
れる秘密鍵データと、 pとqとの積Nを値とする公開鍵データと、 を用いて、 前記認証子データh(M)を暗号化した暗号化認証子デー
タh(C)を生成するN進表現暗号による認証文生成方法
であって、 前記認証文データMをハッシュ化して認証子データh
(M)を生成する第1の過程と、 自然数の中から、その値xを2乗した値が、Nを法とし
て前記認証子データh(M)に等しくなるような自然数x
を、数値pを法とする剰余ならびに数値qを法とする剰
余を用いて求め、この自然数の値xを桁数がkであるN
進数の最下位桁の値h(C)0 とする第2の過程と、 この最下位桁の値h(C)0 と前記認証子データh(M)を
含む1次合同式を解くことにより、桁数がkであるN進
数の各桁の数値を下位から順次求める第3の過程(以
下、この過程を認証子上位桁暗号化過程と称する)と、 この求められた各桁の数値を順次連結し、全体として1
つのN進数データとすることによって、暗号化認証子デ
ータh(C)を生成する第4の過程と、 を備えたことを特徴とするN進表現暗号による認証文生
成方法。 - 【請求項40】前記認証子上位桁暗号化過程は、 前記h(C)0 を最下位桁の値とし桁数がkであるN進数
として表現したものを全体を2乗した形である暗号文
を、前記2乗を展開して得られるNに関するk−1次の
多項式に対応させ、 該k−1次の多項式のそれぞれの係数値を、前記複数の
平文ブロックを変数とする多項式関数とみなして、 前記暗号文データ及び前記N進数の既に求められた下位
の桁の値に基づいて、このk−1次の式の係数値を昇順
に順次求め、求めた係数値を使って、Nのべき乗を法と
する1次合同式を解くことにより、前記N進数における
上位の桁の値を順次確定していくことによって実現する
ことを特徴とする請求項39に記載のN進表現暗号によ
る認証文生成方法。 - 【請求項41】前記k桁のN進数の各桁の値をh(C)i
(0≦i≦k−1)とするとき、 前記認証子上位桁暗号化過程は、前記最下位桁の値h
(C)0 と、公開鍵データNと、認証子データh(M)と、
ブロック数データkとを入力として、h(C)0 ,h(C)
1 ,…,h(C)i-1 に基づいてh(C)i を求める同一の
写像もしくは同一の計算式により、再帰的にh(C)1 か
らh(C)k-1 までを順次暗号化することを特徴とする請
求項39に記載のN進表現暗号による認証文生成方法。 - 【請求項42】認証対象となる認証文データMと、 それぞれpとqとを値とする2つの素数データで構成さ
れる秘密鍵データと、 pとqとの積Nを値とする公開鍵データと、 を用いて、 前記認証子データh(M)を暗号化した暗号化認証子デー
タh(C)を生成するN進表現暗号による認証文生成プロ
グラムを格納した記憶媒体であって、 前記認証文データMをハッシュ化して認証子データh
(M)を生成し、 自然数の中から、その値xを2乗した値が、Nを法とし
て前記認証子データh(M)に等しくなるような自然数x
を、数値pを法とする剰余ならびに数値qを法とする剰
余を用いて求め、この自然数の値xを桁数がkであるN
進数の最下位桁の値h(C)0 とし、 この最下位桁の値h(C)0 と前記認証子データh(M)を
含む1次合同式を解くことにより、桁数がkであるN進
数の各桁の数値を下位から順次求め、 この求められた各桁の数値を順次連結し、全体として1
つのN進数データとすることによって、暗号化認証子デ
ータh(C)を生成する、 ことを特徴とするN進表現暗号による認証文生成プログ
ラムを記憶した記憶媒体。 - 【請求項43】認証対象となる認証文データMと、 それぞれpとqとを値とする2つの素数データで構成さ
れる秘密鍵データと、 pとqの積Nを値とする公開鍵データと、 を用いて、 前記認証文データMに基づいて生成された認証子データ
h(M)を暗号化した暗号化認証子データh(C)を生成す
るN進表現暗号による認証文生成装置であって、 前記認証文データMをハッシュ化して認証子データh
(M)を生成するハッシュ化手段と、 自然数の中から、その値xを2乗した値が、Nを法とし
て前記認証子データh(M)に等しくなるような自然数x
を、数値pを法とする剰余ならびに数値qを法とする剰
余を用いて求め、この自然数の値xを桁数がkであるN
進数の最下位桁の値h(C)0 とする最下位桁暗号化手段
と、 この最下位桁の値h(C)0 と前記認証子データh(M)を
含む1次合同式を解くことにより、桁数がkであるN進
数の各桁の数値を下位から順次求める認証子上位桁暗号
化手段と、 この求められた各桁の数値を順次連結し、全体として1
つのN進数データとすることによって、暗号化認証子デ
ータh(C)を生成する連結手段と、 を備えたことを特徴とするN進表現暗号による認証文生
成装置。 - 【請求項44】前記認証子上位桁暗号化手段は、 前記h(C)0 を最下位桁の値とし桁数がkであるN進数
として表現したものを全体を2乗した形である暗号文
を、前記2乗を展開して得られるNに関するk−1次の
多項式に対応させ、 該k−1次の多項式のそれぞれの係数値を、前記複数の
平文ブロックを変数とする多項式関数とみなして、 前記暗号文データ及び前記N進数の既に求められた下位
の桁の値に基づいて、このk−1次の式の係数値を昇順
に順次求める係数値計算手段と、 この求められた係数値を使って、Nのべき乗を法とする
1次合同式を解くことにより、前記N進数におけるより
上位の桁の値を順次確定していく上位桁計算手段と、 を備えることを特徴とする請求項43に記載のN進表現
暗号による認証文生成装置。 - 【請求項45】前記k桁のN進数の各桁の値をh(C)i
(0≦i≦k−1)とするとき、 前記認証子上位桁暗号化手段は、前記最下位桁の値h
(C)0 と、公開鍵データNと、認証子データh(M)と、
ブロック数データkとを入力として、h(C)0 ,h(C)
1 ,…,h(C)i-1 に基づいてh(C)i を求める同一の
写像もしくは同一の計算式により、再帰的にh(C)1 か
らh(C)k-1 までを順次暗号化することを特徴とする請
求項43に記載のN進表現暗号による認証文生成装置。 - 【請求項46】認証対象となる認証文データMと、 前記請求項39、40、41、43、44、45のいず
れか1項に記載の方法または装置で暗号化された暗号化
認証子h(C)データと、 それぞれpとqとを値とする2つの素数データで構成さ
れた秘密鍵データ同士の積Nを値とする公開鍵データ
と、 を用いて、 前記認証文データM及びまたは前記暗号化認証子データ
h(C)が正当であるか否かを判別するN進表現暗号によ
る認証文検証方法であって、 暗号化認証子データh(C)を2乗した値に対して、Nの
k乗を法とする剰余である復号化認証子データh(M)を
求め、 この復号化認証子データh(M)と、前記認証対象となる
認証文データMをハッシュ化したハッシュ化認証子デー
タh(M)′が一致していた場合は、一連の認証ないし検
証過程が正常であったと判定し、この復号化認証子デー
タh(M)と、前記認証対象となる認証文データMをハッ
シュ化したハッシュ化認証子データh(M)′が不一致で
あった場合は、一連の認証ないし検証過程のいずれかに
異常があったと判定する、ことを特徴とするN進表現暗
号による認証文検証方法。 - 【請求項47】認証対象となる認証文データMと、 前記請求項39、40、41、43、44、45のいず
れか1項に記載の方法または装置で暗号化された暗号化
認証子h(C)データと、 それぞれpとqとを値とする2つの素数データで構成さ
れた秘密鍵データ同士の積Nを値とする公開鍵データ
と、 を用いて、 前記認証文データM及びまたは前記暗号化認証子データ
h(C)が正当であるか否かを判別するN進表現暗号によ
る認証文検証プログラムを格納した記憶媒体であって、 暗号化認証子データh(C)を2乗した値に対して、Nの
k乗を法とする剰余である復号化認証子データh(M)を
求め、 この復号化認証子データh(M)と、前記認証対象となる
認証文データMをハッシュ化したハッシュ化認証子デー
タh(M)′が一致していた場合は、一連の認証ないし検
証過程が正常であったと判定し、 この復号化認証子データh(M)と、前記認証対象となる
認証文データMをハッシュ化したハッシュ化認証子デー
タh(M)′が不一致であった場合は、一連の認証ないし
検証過程のいずれかに異常があったと判定する、 ことを特徴とするN進表現暗号による認証文検証プログ
ラムを格納した記憶媒体。 - 【請求項48】認証対象となる認証文データMと、 前記請求項39、40、41、43、44、45のいず
れか1項に記載の方法または装置で暗号化された暗号化
認証子h(C)データと、 それぞれpとqとを値とする2つの素数データで構成さ
れた秘密鍵データ同士の積Nを値とする公開鍵データ
と、 を用いて、前記認証文データM及びまたは前記暗号化認
証子データh(C)が正当であるか否かを判別するN進表
現暗号による認証文検証装置であって、 前記暗号化認証子データh(C)を2乗した値に対して、
Nをk乗した数値を法とする剰余である復号化認証子デ
ータh(M)を生成する認証子復号化手段と、 前記認証文データMをハッシュ化してハッシュ化認証子
データh(M)′を生成するハッシュ化手段と、 前記復号化認証子データh(M)と、前記ハッシュ化記認
証子データh(M)′とを比較し、両者が一致していた場
合は、一連の認証ないし検証過程が正常であったと判定
し、両者が不一致であった場合は、一連の認証ないし検
証過程のいずれかに異常があったと判定する照合判定手
段と、 を備えたことを特徴とするN進表現暗号による認証文検
証装置。
Priority Applications (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP9156903A JPH1165439A (ja) | 1996-08-09 | 1997-06-13 | N進表現暗号による通信および認証方法、ならびにそれらの装置、およびn進表現暗号による通信および認証プログラムを格納した記憶媒体 |
| CA002212664A CA2212664C (en) | 1996-08-09 | 1997-08-08 | Secret communication and authentication scheme based on public key cryptosystem using n-adic expansion |
| EP97113746A EP0823802A3 (en) | 1996-08-09 | 1997-08-08 | Secret communication and authentication scheme based on public key cryptosystem using N-adic expansion |
| US08/907,852 US6259790B1 (en) | 1996-08-09 | 1997-08-08 | Secret communication and authentication scheme based on public key cryptosystem using N-adic expansion |
Applications Claiming Priority (5)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP8-211654 | 1996-08-09 | ||
| JP21165496 | 1996-08-09 | ||
| JP15409597 | 1997-06-11 | ||
| JP9-154095 | 1997-06-11 | ||
| JP9156903A JPH1165439A (ja) | 1996-08-09 | 1997-06-13 | N進表現暗号による通信および認証方法、ならびにそれらの装置、およびn進表現暗号による通信および認証プログラムを格納した記憶媒体 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH1165439A true JPH1165439A (ja) | 1999-03-05 |
Family
ID=27320595
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP9156903A Pending JPH1165439A (ja) | 1996-08-09 | 1997-06-13 | N進表現暗号による通信および認証方法、ならびにそれらの装置、およびn進表現暗号による通信および認証プログラムを格納した記憶媒体 |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US6259790B1 (ja) |
| EP (1) | EP0823802A3 (ja) |
| JP (1) | JPH1165439A (ja) |
| CA (1) | CA2212664C (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2001142396A (ja) * | 1999-11-16 | 2001-05-25 | Dainippon Printing Co Ltd | 暗号化装置とその方法、暗号復号化装置とその方法および通信システム |
| JP2005204134A (ja) * | 2004-01-16 | 2005-07-28 | Mitsubishi Electric Corp | 耐タンパ暗号システム及びメモリ装置及び認証端末及び及びプログラム |
Families Citing this family (34)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| DE69826963T2 (de) * | 1997-11-04 | 2005-11-17 | Nippon Telegraph And Telephone Corp. | Gerät für die modulare Inversion zur Sicherung von Information |
| CA2267721C (en) * | 1998-03-26 | 2002-07-30 | Nippon Telegraph And Telephone Corporation | Scheme for fast realization of encryption, decryption and authentication |
| US6226618B1 (en) * | 1998-08-13 | 2001-05-01 | International Business Machines Corporation | Electronic content delivery system |
| AUPQ439299A0 (en) * | 1999-12-01 | 1999-12-23 | Silverbrook Research Pty Ltd | Interface system |
| US7999964B2 (en) | 1999-12-01 | 2011-08-16 | Silverbrook Research Pty Ltd | Printing on pre-tagged media |
| US20020051545A1 (en) * | 2000-08-14 | 2002-05-02 | Ogilvie John W.L. | Encryption multiplexing |
| JP2002229445A (ja) * | 2001-01-30 | 2002-08-14 | Mitsubishi Electric Corp | べき乗剰余演算器 |
| FR2821225B1 (fr) * | 2001-02-20 | 2005-02-04 | Mobileway | Systeme de paiement electronique a distance |
| JP2003023421A (ja) * | 2001-07-09 | 2003-01-24 | C4 Technology Inc | 暗号方法、そのプログラム、そのプログラムを記録した記録媒体および暗号装置並びに復号方法および復号装置 |
| JP2003050745A (ja) * | 2001-08-07 | 2003-02-21 | Sony Corp | 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム |
| US7237115B1 (en) * | 2001-09-26 | 2007-06-26 | Sandia Corporation | Authenticating concealed private data while maintaining concealment |
| JP3818263B2 (ja) * | 2003-01-28 | 2006-09-06 | 日本電気株式会社 | Aes暗号処理装置、aes復号処理装置、aes暗号・復号処理装置、aes暗号処理方法、aes復号処理方法、および、aes暗号・復号処理方法 |
| JP4696449B2 (ja) * | 2004-01-09 | 2011-06-08 | ソニー株式会社 | 暗号化装置およびその方法 |
| US8442219B2 (en) * | 2004-03-31 | 2013-05-14 | Jesse Lipson | Public key cryptographic methods and systems |
| JP4728327B2 (ja) * | 2004-05-18 | 2011-07-20 | シルバーブルック リサーチ ピーティワイ リミテッド | 取引端末 |
| US7725715B2 (en) * | 2005-02-24 | 2010-05-25 | Access Business Group International Llc | System and method for three-phase data encryption |
| US7697159B2 (en) | 2005-05-09 | 2010-04-13 | Silverbrook Research Pty Ltd | Method of using a mobile device to determine movement of a print medium relative to the mobile device |
| US7284921B2 (en) | 2005-05-09 | 2007-10-23 | Silverbrook Research Pty Ltd | Mobile device with first and second optical pathways |
| US7447908B2 (en) * | 2005-05-09 | 2008-11-04 | Silverbrook Research Pty Ltd | Method of authenticating a print medium offline |
| US7680512B2 (en) * | 2005-05-09 | 2010-03-16 | Silverbrook Research Pty Ltd | Method of using a mobile device to print onto a print medium taking into account an orientation of a print medium |
| US7726764B2 (en) | 2005-05-09 | 2010-06-01 | Silverbrook Research Pty Ltd | Method of using a mobile device to determine a position of a print medium configured to be printed on by the mobile device |
| AU2006274486B2 (en) * | 2005-07-25 | 2009-09-17 | Silverbrook Research Pty Ltd | Product item having coded data identifying a layout |
| WO2007020566A1 (en) * | 2005-08-19 | 2007-02-22 | Nxp B.V. | Circuit arrangement for and method of performing an inversion operation in a cryptographic calculation |
| US7499552B2 (en) * | 2006-01-11 | 2009-03-03 | International Business Machines Corporation | Cipher method and system for verifying a decryption of an encrypted user data key |
| US7848516B2 (en) * | 2006-01-20 | 2010-12-07 | Chiou-Haun Lee | Diffused symmetric encryption/decryption method with asymmetric keys |
| US7976549B2 (en) * | 2006-03-23 | 2011-07-12 | Theken Spine, Llc | Instruments for delivering spinal implants |
| KR20080084480A (ko) * | 2007-03-16 | 2008-09-19 | 삼성전자주식회사 | 매개 모듈을 이용한 디바이스간의 상호 인증 방법 및 그시스템 |
| IL185285A0 (en) * | 2007-08-14 | 2008-01-06 | Yeda Res & Dev | A method and apparatus for implementing a novel one-way hash function on highly constrained devices such as rfid tags |
| EP2415199B1 (fr) * | 2009-03-31 | 2017-10-18 | Koninklijke Philips N.V. | Procede pour effectuer une tache cryptographique dans un composant electronique |
| JP5594034B2 (ja) * | 2010-07-30 | 2014-09-24 | ソニー株式会社 | 認証装置、認証方法、及びプログラム |
| DE102010040688A1 (de) * | 2010-09-14 | 2012-03-15 | Siemens Aktiengesellschaft | Verfahren und Vorrichtung zum Authentisieren von Multicast-Nachrichten |
| WO2017001022A1 (en) * | 2015-07-02 | 2017-01-05 | Telefonaktiebolaget Lm Ericsson (Publ) | Method for obtaining initial access to a network, and related wireless devices and network nodes |
| FR3069993B1 (fr) * | 2017-08-07 | 2020-09-18 | Maxim Integrated Products | Dispositifs et procedes de masquage d'operations de chiffrement rsa |
| JP6926042B2 (ja) * | 2018-09-19 | 2021-08-25 | 株式会社東芝 | 鍵生成装置、鍵生成方法及びプログラム |
-
1997
- 1997-06-13 JP JP9156903A patent/JPH1165439A/ja active Pending
- 1997-08-08 EP EP97113746A patent/EP0823802A3/en not_active Withdrawn
- 1997-08-08 US US08/907,852 patent/US6259790B1/en not_active Expired - Fee Related
- 1997-08-08 CA CA002212664A patent/CA2212664C/en not_active Expired - Fee Related
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2001142396A (ja) * | 1999-11-16 | 2001-05-25 | Dainippon Printing Co Ltd | 暗号化装置とその方法、暗号復号化装置とその方法および通信システム |
| JP2005204134A (ja) * | 2004-01-16 | 2005-07-28 | Mitsubishi Electric Corp | 耐タンパ暗号システム及びメモリ装置及び認証端末及び及びプログラム |
Also Published As
| Publication number | Publication date |
|---|---|
| EP0823802A2 (en) | 1998-02-11 |
| CA2212664A1 (en) | 1998-02-09 |
| US6259790B1 (en) | 2001-07-10 |
| CA2212664C (en) | 2001-08-07 |
| EP0823802A3 (en) | 2008-04-09 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH1165439A (ja) | N進表現暗号による通信および認証方法、ならびにそれらの装置、およびn進表現暗号による通信および認証プログラムを格納した記憶媒体 | |
| CN110958112B (zh) | 密钥产生方法及系统、加密及解密方法、加密通信系统 | |
| US6396926B1 (en) | Scheme for fast realization of encrytion, decryption and authentication | |
| Jaju et al. | A Modified RSA algorithm to enhance security for digital signature | |
| US20100166174A1 (en) | Hash functions using elliptic curve cryptography | |
| CN114095181B (zh) | 一种基于国密算法的门限环签名方法及系统 | |
| CN113711564A (zh) | 用于加密数据的计算机实现的方法和系统 | |
| US20060083370A1 (en) | RSA with personalized secret | |
| CN104168114A (zh) | 一种分布式的基于(k,n)门限证书加密方法及系统 | |
| CN109474425B (zh) | 一种基于多个共享密钥获得任意指定长度派生密钥的方法 | |
| CN115804061A (zh) | 生成共享私钥 | |
| Hodowu et al. | An enhancement of data security in cloud computing with an implementation of a two-level cryptographic technique, using AES and ECC algorithm | |
| CN117795901A (zh) | 生成数字签名份额 | |
| KR20040009766A (ko) | 암호 시스템에서 송수신 장치 및 방법 | |
| CN116915407A (zh) | 基于区块链的电子公证书校验方法及系统 | |
| Raut et al. | A Comprehensive Review of Cryptographic Algorithms | |
| CN1771687B (zh) | 数字证书 | |
| CN102064938B (zh) | 一种基于多变量与不确定性的公钥加密方法 | |
| JP2004246350A (ja) | 暗号化装置および復号化装置、並びにこれらを備えた暗号システム、暗号化方法および復号化方法 | |
| KR100388059B1 (ko) | 비대칭키 암호 알고리즘을 이용한 데이터 암호화 시스템및 그 방법 | |
| Pon et al. | Dynamic reblocking RSA-based multisignatures scheme for computer and communication networks | |
| Viswanath et al. | A secure cryptosystem using the decimal expansion of an Irrational number | |
| Bohli et al. | On subliminal channels in deterministic signature schemes | |
| Kumar et al. | A comparative analysis of encryption algorithms for better utilization | |
| CN118592008A (zh) | 生成共享私钥 |