JP3662217B2 - 電子署名の作成・検証方法 - Google Patents
電子署名の作成・検証方法 Download PDFInfo
- Publication number
- JP3662217B2 JP3662217B2 JP2001376462A JP2001376462A JP3662217B2 JP 3662217 B2 JP3662217 B2 JP 3662217B2 JP 2001376462 A JP2001376462 A JP 2001376462A JP 2001376462 A JP2001376462 A JP 2001376462A JP 3662217 B2 JP3662217 B2 JP 3662217B2
- Authority
- JP
- Japan
- Prior art keywords
- document
- code
- code string
- signature
- matrix
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Images
Description
【発明の属する技術分野】
本発明は、電子化された文書に添付して改ざんや否認、なりすましを防止する電子署名に関し、特にその作成方法とその検証方法に関する。
【0002】
【発明が解決しようとする課題】
電子署名は、情報の送信者が送信する文書を圧縮してメッセージダイジェストを作成し、それを自分の個人鍵で暗号化して署名文とし、この署名文を文書に添付して送信する。
送信者は、登録機関に登録済みの公開鍵を受信者に通知するか、あるいは同時に自分の公開鍵を送信して受信者に提示する。
【0003】
受信者は、送信者の公開鍵で署名文を復号化し、メッセージダイジェストを取出す。
また、受信した文書を圧縮してメッセージダイジェストを生成し、これら2つのメッセージダイジェストを比較して文書の正当性を検証する。
【0004】
公開鍵暗号化方式の開発から副次的に生れた電子署名は、非常に大きな桁数の数を因数分解するのは難しいという考え方に基づいて文書の暗号化や復号を行うので、演算処理量が比較的大きくなり、そのため、署名文の作成やメッセージダイジェストの取出しに時間がかかり過ぎて実用上問題となることがある。
【0005】
そこで本出願人は、このような問題に対処するために、情報をマトリックスに配列して圧縮する方法を提案し、これにより文書の圧縮と暗号化や復号をより効率的に行う電子署名の作成および検証方法を先に出願している。
ところが、この方法で暗号通信を可能にするためには、情報の送信者と受信者が圧縮アルゴリズムの他に、圧縮時の配列パターンを指定する配列鍵を共有する必要がある。
さらに、暗号通信の安全を確保するためには、当事者以外の第三者から配列鍵を秘匿する必要がある。
【0006】
配列鍵は、多くの相手と暗号通信を行うようになると、それだけ数が増加し、その管理が大変になる。
また、送信者と受信者が毎回同じ配列鍵を使用すると、総当り攻撃や有効な攻撃方法を見付けて送信者の個人鍵を知られる危険性があるため、同じ相手でも随時異なる配列鍵を使用するのが望ましい。
【0007】
また、情報の送信者が配列鍵を作成して相手に配布する場合、確実に、しかも途中で第三者に複製されることなく相手に届くようにしなければならない。
そのため、このマトリックス圧縮による電子署名の作成・検証方法を実現するためには、障害となるこれらの問題を解消する必要がある。
【0008】
【課題を解決するための手段】
そこで本発明は、このような配列鍵の管理と配布の問題を解消するための新たな電子署名の作成・検証方法を提案するものである。
すなわち、本発明は、
送信者Sと受信者Rが互いに秘密の配列鍵As,Arを所有し、
この配列鍵As,Arの指定に従って任意の長さの符号列aをn×nのマトリックスsに配列し、各行列の合計の剰余演算した値を求める操作を繰り返して2×nの圧縮符号列bに圧縮するマトリックス圧縮手段を用いて、
送信者Sが、
送信者Sの個人鍵Ksを送信者Sの配列鍵Asで最終までマトリックス圧縮し、
2×n桁の最終圧縮符号列(E)を公開鍵Kpとして受信者Rに配布するステップと、
【0009】
送信する文書Mに送信者Sの個人鍵Ksを符号加算して暗号化し、各桁の加算値の剰余演算した値よりなる符号列を暗文Cとするステップと、
この暗文Cを送信者Sの配列鍵Asで途中までマトリックス圧縮し、2×n桁の中間圧縮符号列(k)と暗文Cの残りよりなる符号列を暫定署名σ’とするステップと、
この暫定署名σ’を文書Mに添付して署名付き文書(M,σ’)を送信するステップと、
【0010】
受信者Rが、
署名付き文書(M,σ’)を受信して文書Mと暫定署名σ’に分離し、文書Mを受信者Rの配列鍵Arで最終までマトリックス圧縮し、2×n桁の最終圧縮符号列M’r(E)を生成するステップと、
この最終圧縮符号列M’r(E)の上下n桁をそれぞれ符号加算して符号化し、各桁の加算値の剰余演算した値を圧縮文書符号M’a,M’bとするステップと、
【0011】
公開鍵Kpの上下n桁をそれぞれ符号加算して符号化し、各桁の加算値の剰余演算した値を公開鍵符号Kpa,Kpbとするステップと、
圧縮文書符号M’A,M’bと公開鍵符号Kpa,Kpbをそれぞれ符号加算し、加算値の剰余演算した値を署名認証符号σ”a,σ”bとするステップと、暫定署名σ’を受信者Rの配列鍵Arで最終までマトリックス圧縮し、2×n桁の最終圧縮符号列σ’(E)を生成してそれを受信署名σとするステップと、
【0012】
この受信署名σの上下n桁をそれぞれ符号加算して符号化し、各桁の加算値の剰余演算した値を受信署名符号σa,σbとするステップと、
前記署名認証符号σ”a,σ”bと受信署名符号σa,σbを比較し、一致すれば署名の正当性を認証し、一致しなければ否認するステップと、
で構成してなる電子署名の作成・検証方法である。
【0013】
さらに本発明は、
前記送信者Sが、
文書Mを送信者Sの配列鍵Asで最終までマトリックス圧縮し、段階別に2×n桁の圧縮符号列M’s(1),…M’s(k),…M’s(E)を逐次生成するステップと、
これらの圧縮符号列M’s(1),…M’s(k),…M’s(E)を符号加算して統合し、各桁の加算値の剰余演算した値よりなる符号列を送信者文書符号列Msとし、これを文書Mに添付して送信するステップと、
【0014】
前記受信者Rが、
受信した文書Mを受信者Rの配列鍵Arで最終までマトリックス圧縮し、段階別に2×n桁の圧縮符号列M’r(1),…M’r(k),…M’r(E)を逐次生成するステップと、
これらの圧縮符号列M’r(1),…M’r(k),…M’r(E)を符号加算して統合し、各桁の加算値の剰余演算した値よりなる符号列を受信者文書符号列Mrとするステップと、
【0015】
この受信者文書符号列Mrの上下n桁をそれぞれ符号加算して符号化し、各桁の加算値の剰余演算した値を文書認証符号Mra、Mrbとするステップと、
受信した送信者文書符号列Msの上下n桁をそれぞれ符号加算して符号化し、各桁の加算値の剰余演算した値を受信文書符号Msa、Msbとするステップと、
前記文書認証符号Mra,Mrbと受信文書符号Msa,Msbを比較し、一致すれば文書の正当性を認証し、一致しなければ否認するステップと、
を備えてなる電子署名の作成・検証方法である。
【0016】
さらに本発明は、前記送信者Sの配列鍵Asで配列したマトリックスsの各行列の合計が所定の剰余演算の法となる値の倍数となる攪乱符号Cdを生成し、それを符号加算して暫定署名σ’を攪乱してなる電子署名の作成・検証方法である。
【0017】
さらに本発明は、前記文書Mが個人鍵Ksより長いときは、n桁の文書Mの隣接符号同士の加算値の剰余演算した値よりなるn−1桁の短縮符号列を生成する処理を繰り返しながら文書Mの長さを個人鍵Ksの長さに一致させてなる電子署名の作成・検証方法である。
【0018】
さらに本発明は、前記各行列の合計、各桁の加算値および隣接符号同士の加算値の剰余演算は10、また、文字列を使用する場合は100または10000を法とし、ASCIIコードを使用する場合には7Fを法とする剰余演算を行い、商が0以外の整数となる場合は余りに20を加算した値を求めるように構成した電子署名の作成・検証方法である。
【0019】
【発明の実施の形態】
以下に図面を参照して本発明の実施の形態について説明する。
図1に、本発明を実施した電子署名の作成・検証方法の処理フローを示す。
電子署名の作成・検証方法は、まず、送信者Sの個人鍵Ksを送信者Sの配列鍵Asで最終までマトリックス圧縮し、2×n桁の最終圧縮符号列(E)を公開鍵Kpとして受信者Rに配布する(ステップ101)。
【0020】
次に、送信する文書Mに送信者Sの個人鍵Ksを符号加算して暗号化し、各桁の加算値を10で割った余りよりなる符号列を暗文Cとする(ステップ102)。
次に、この暗文Cを送信者Sの配列鍵Asで途中までマトリックス圧縮し、2×n桁の中間圧縮符号列(k)と暗文Cの残りよりなる符号列を暫定署名σ’とする(ステップ103)。
【0021】
次に、送信者Sの配列鍵Asで配列したn×nのマトリックスsの各行列の合計が10の倍数となる攪乱符号列Cdを生成し、それを暫定署名σ’に符号加算して撹乱し、各桁の加算値を10で割った余りよりなる符号列を攪乱暫定署名σ’dとする(ステップ104)。
次に、文書Mを送信者Sの配列鍵Asで最終までマトリックス圧縮し、段階別に2×n桁の圧縮符号列M’s(1),…M’s(k)、…M’s(E)を逐次生成する(ステップ105)。
【0022】
次に、これらの圧縮符号列M’s(1)、…M’s(k),…M’s(E)を符号加算して統合し、各桁の加算値を10で割った余りよりなる符号列を送信者文書符号列Msとし、これと攪乱暫定署名σ’dを文書Mに添付して署名付き文書(M,Ms,σ’d)を送信する(ステップ106)。
【0023】
受信者Rは、署名付き文書(M,Ms,σ’d)を受信して文書Mと送信者文書符号列Msと攪乱暫定署名σ’dに分離し、文書Mを受信者Rの配列鍵Arで最終までマトリックス圧縮し、段階別に2×n桁の圧縮符号列M’r(1),…M’r(k),…M’r(E)を逐次生成する(ステップ201)。
次に、最終圧縮符号列M’r(E)の上下n桁をそれぞれ符号加算して符号化し、各桁の加算値を10で割った余りを圧縮文書符号M’a,M’bとする(ステップ202)。
【0024】
次に、公開鍵Kpの上下n桁をそれぞれ符号加算して符号化し、各桁の加算値を10で割った余りを公開鍵符号Kpa,Kpbとする(ステップ203)。
ここで公開鍵符号Kpa=Kpbでないときは、公開鍵Kpを不正とする。
次に、圧縮文書符号M’a,M’bと公開鍵符号Kpa,Kpbをそれぞれ符号加算し、加算値を10で割った余りを署名認証符号σ”a,σ”bとする(ステップ204)。
署名認証符号σ”a,σ”bは、最終圧縮符号列M’r(E)と公開鍵Kpを先に符号加算してからその上下n桁をそれぞれ符号化してもよい。
【0025】
次に、攪乱暫定署名σ’dを受信者Rの配列鍵Arで最終までマトリックス圧縮し、2×n桁の最終圧縮符号列σ”d(E)を生成してそれを受信署名σとする(ステップ205)。
次に、この受信署名σの上下n桁をそれぞれ符号加算して符号化し、各桁の加算値を10で割った余りを受信署名符号σa,σbとする(ステップ206)。
最後に、署名認証符号σ”a,σ”bと受信署名符号σa,σbを比較し、一致すれば文書Mに対する署名の正当性を認証し、一致しなければ否認する(ステップ207)。
これにより、送信者Sの否認となりすましを防止する。
【0026】
次に、ステップ201で生成した圧縮符号列M’r(1)、…M’r(k)、…M’r(E)を符号加算して統合し、各桁の加算値を10で割った余りよりなる符号列を受信者文書符号列Mrとする(ステップ208)。
次に、この受信者文書符号列Mrの上下n桁をそれぞれ符号加算して符号化し、各桁の加算値を10で割った余りを文書認証符号Mra,Mrbとする(ステップ209)。
【0027】
次に、受信した送信者文書符号列Msの上下n桁をそれぞれ符号加算して符号化し、各桁の加算値を10で割った余りを受信文書符号Msa,Msbとする(ステップ210)。
最後に、文書認証符号Mra,Mrbと受信文書符号Msa,Msbを比較し、一致すれば文書の正当性を認証し、一致しなければ否認する(ステップ211)
これにより、文書Mの改ざんを防止する。
【0028】
個人鍵Ksは、送信する文書Mと同じ長さの10進または16進の乱数符号列を生成し、これを送信者Sが自分以外には秘密に保管する。
送信する文書Mが個人鍵Ksより長いときは、符号列短縮処理を行って文書Mの長さを個人鍵Ksの長さに一致させる。
【0029】
符号列短縮処理は、n桁の符号列(0)の隣接符号同士を加えて10で割った余りよりなるn−1桁の短縮符号列(1)を生成し、さらに短縮符号列(1)の隣接符号同士を加えて10で割った余りよりなるn−2桁の短縮符号列(2)を生成する処理を繰り返し、符号列の桁数を1桁ずつ減じながら所望の長さに短縮する。
これにより、長大な文書を短い個人鍵で暗号化できるようになり、その生成に必要な乱数を発生させるための膨大な計算量を少なくして個人鍵の生成効率を高めることができる。
【0030】
図2に、符号列短縮処理を説明する符号列の具体例を示す。
符号列短縮処理は、例えば、符号列(0)の隣接符号、1と2、2と3、3と4、…を加えて10で割った余り3、5、7、…よりなる短縮符号列(1)を生成し、さらに短縮符号列(1)の隣接符号、3と5、5と7、…を加えて10で割った余り8、2、…よりなる短縮符号列(2)を生成する処理を5回繰り返して20桁の符号列(0)を15桁の短縮符号列(5)に短縮する。
【0031】
図3に、マトリックス圧縮処理のフローチャートを示す。
マトリックス圧縮処理は、まず、任意の長さの符号列aの先頭n×n桁を配列鍵As(1)あるいはAr(1)の指定に従ってn×nのマトリックスsにランダムに配列し、各行列の合計値を10で割った余りよりなる2×n桁の初回圧縮符号列b(1)を生成する(ステップ301)。
次に、符号列aに続きがあるかどうかを判定し(ステップ302)、続きがなければ処理を終了する。
【0032】
続きがあれば、前のステップで生成した2×n桁の圧縮符号列b(k−1)と符号列aの続きn×(n−2)桁を配列鍵As(k)あるいはAr(k)の指定に従ってn×nのマトリックスsにランダムに配列し、各行列の合計値を10で割った余りよりなる2×n桁の中間圧縮符号列b(k)を生成してステップ302に戻る(ステップ303)。
【0033】
マトリックス圧縮処理は、n×nのマトリックスsの全ての枠が埋めつくされたら配列処理を終了する。
このとき、符号列aの残りがn×(n−2)の整数倍でない場合は、意味のない捨て符号で空枠を埋める。
【0034】
配列鍵Aは、マトリックスsに配列する符号列の配列パターンをランダムに指定するもので、送信者Sと受信者Rでそれぞれ異なる配列パターンを秘密に所有し、初回と2回目以降の配列においても随時異なる配列パターンを使用する。
送信者Sと受信者Rが毎回同じ配列パターンを使用すると、受信者Rが送信者Sの公開鍵Kpを知っているため、例えば、総当り攻撃で送信者Sの個人鍵Ksを割り出すことは不可能ではない。
【0035】
すなわち、従来の公開鍵方式と同様に膨大な演算時間を必要とするが、個人鍵Ksの組合せをマトリックスsに順次入力して公開鍵Kpと同じになる組合せを見つけ、それで文書Mを暗号化してマトリックス圧縮した結果が受信署名σと同じになれば、受信者Rが送信者Sの個人鍵Ksを知ることになる。
そのため、送信者Sと受信者Rが異なる配列パターンを使用し、さらに随時異なる配列パターンを使用することにより、このような攻撃に対する個人鍵Ksの安全性を確保する。
【0036】
マトリックスsのサイズは、符号列aを10進数とする場合、n=12〜24が適当である。
また、符号列aを16進数とする場合、n=20〜40が適当である。
これにより、10進数の場合は24〜48桁の圧縮符号列bが生成され、16進数の場合は40〜80桁の圧縮符号列bが生成される。
【0037】
攪乱符号Cdは、マトリックスsの各行列の合計が10の倍数となる符号列を配列鍵Aの指定に従ってマトリックスsに配列する。
従って、n×nのマトリックスsに配列した攪乱符号Cdを圧縮すると、2×nの圧縮符号列bの各桁の符号は全て0となる。
暫定署名σ’は、そのままでは個人鍵Ksの一部が検証者に知られることになるので、このように攪乱符号Cdを符号加算して攪乱する。
【0038】
また、攪乱符号Cdの各行列の合計値の2桁目の数は、nの桁数が12以上であれば10進数の場合0〜9の範囲を設定できるので、利用者だけが知る任意の秘密数を指定できる。
この秘密数は、検証者や第三者が知り得ないので、検証者や第三者によって不正が行われた場合の証明の根拠になる。
【0039】
さらに、攪乱符号Cdで攪乱した暫定署名σ’の各行列の合計値の2桁目の数も同様に10進数の場合0〜9の範囲を設定できるので、検証者が確認できる任意の秘密数を指定することができる。
この秘密数は、あらかじめ検証者に知らせておくことにより、認証などに利用することができる。
【0040】
以下に本発明を実施した電子署名の作成および検証方法の具体例を説明する。
ここでは説明を簡略にするため、マトリックスsのサイズを3×3とし、文書Mと個人鍵Ksをそれぞれ15桁の10進数とし、文書M=123456789012345、個人鍵Ks=194356835270318として説明する。
【0041】
図4に、公開鍵Kpの作成手順のデータフローを示す。
公開鍵Kpは、まず、個人鍵Ksの先頭9桁=194356835を配列鍵As(1)の指定に従ってマトリックスsに配列し、初回圧縮符号列Ks’(1)=527392を生成する。
配列鍵As(1)の枠内の数字は、その枠に配置すべき符号の番号を示し、例えば左上隅の枠には個人鍵Ksの先頭から3番目の符号=4を配置することを意味する。
【0042】
次に、初回圧縮符号列Ks’(1)=527392と個人鍵Ksの続き3桁=270を今度は配列鍵As(2)の指定に従ってマトリックスsに配列し、中間圧縮符号列Ks’(2)=449430を生成する。
次に、中間圧縮符号列Ks’(2)=449430と個人鍵Ksの残り3桁=318を次の配列鍵As(3)の指定に従ってマトリックスsに配列し、最終圧縮符号列Ks’(3)=501088を生成する。
この最終圧縮符号列Ks’(3)を公開鍵Kpとする。
【0043】
図5に、攪乱暫定署名σ’dの作成手順のデータフローを示す。
攪乱暫定署名σ’dは、まず、個人鍵Ks=194356835270318と文書M=123456789012345を符号加算して暗文C=217702514282653を生成する。
次に、暗文Cの先頭9桁=217702514を配列鍵As(1)の指定に従ってマトリックスsに配列し、初回圧縮符号列C’(1)=946036を生成する。
【0044】
次に、初回圧縮符号列C’(1)=946036と暗文Cの続き3桁=282を今度は配列鍵As(2)の指定に従ってマトリックスsに配列し、中間圧縮符号列C’(2)=514073を生成する。
この中間圧縮符号列C’(2)=514073と暗文Cの残り3桁=653よりなる符号列を暫定署名σ’=514073653とする。
次に、攪乱符号Cd=573380275を生成して暫定署名σ’=514073653に符号加算し、攪乱暫定署名σ’d=087353828を生成する。
【0045】
図6に、署名認証符号σ”a,σ”bの作成手順のデータフローを示す。
署名認証符号σ”a,σ”bは、まず、文書Mの先頭9桁=123456789を配列鍵Ar(1)の指定に従ってマトリックスsに配列し、初回圧縮符号列M’r(1)=690140を生成する。
次に、初回圧縮符号列M’r(1)=690140と文書Mの続き3桁=012を今度は配列鍵Ar(2)の指定に従ってマトリックスsに配列し、中間圧縮符号列M’r(2)=094670を生成する。
【0046】
次に、中間圧縮符号列M’r(2)=094670と文書Mの残り3桁=345を次の配列鍵Ar(3)の指定に従ってマトリックスsに配列し、最終圧縮符号列M’r(3)=189215を生成する。
次に、最終圧縮符号列M’r(3)=189215の上3桁=189と下3桁=215の各桁を符号加算して圧縮文書符号M’a=8、M’b=8を求める。次に、公開鍵Kp=501088の上3桁=501と下3桁=088の各桁を符号加算して公開鍵符号Kpa=6、Kpb=6を求める。
次に、圧縮文書符号M’a=8、M’b=8と公開鍵符号Kpa=6、Kpb=6を符号加算して署名認証符号σ”a=4、σ”b=4を求める。
【0047】
図7に、受信署名符号σa,σbの作成手順のデータフローを示す。
受信署名符号σa,σbは、まず、受信した攪乱暫定署名σ’d=087353828を配列鍵Ar(3)の指定に従ってマトリックスsに配列し、最終圧縮符号列σ’d(3)=121374を生成してこれを受信署名σとする。
次に、受信署名σ=121374の上3桁=121と下3桁=374の各桁を符号加算して受信署名符号σa=4、σb=4を求める。
【0048】
図8に、送信者文書符号列Msの作成手順のデータフローを示す。
送信者文書符号列Msは、まず、送信する文書Mの先頭9桁=123456789を配列鍵As(1)の指定に従ってマトリックスsに配列し、初回圧縮符号列M’s(1)=429744を生成する。
次に、初回圧縮符号列M’s(1)=429744と文書Mの続き3桁=012を今度は配列鍵As(2)の指定に従ってマトリックスsに配列し、中間圧縮符号列M’s(2)=175643を生成する。
【0049】
次に、中間圧縮符号列M’s(2)=175643と文書Mの残り3桁=345を次の配列鍵As(3)の指定に従ってマトリックスsに配列し、最終圧縮符号列M’s(3)=620396を生成する。
次に、これらの初回圧縮符号列M’s(1)=429744と中間圧縮符号列M’s(2)=175643と最終圧縮符号列M’s(3)=620396を符号加算して送信者文書符号列Ms=114673を求める。
【0050】
図9に、受信文書符号Msa,Msbの作成手順のデータフローを示す。
受信文書符号Msa,Msbは、送信者文書符号列Ms=114673の上3桁=114と下3桁=673の各桁を符号加算して受信文書符号Msa=6、Msb=6を求める。
【0051】
図10に、文書認証符号Mra,Mrbの作成手順のデータフローを示す。
文書認証符号Mra,Mrbは、まず、先に求めた文書Mの初回圧縮符号列M’r(1)=690140と中間圧縮符号列M’r(2)=094670と最終圧縮符号列M’r(3)=189215を符号加算して受信者文書符号列Mr=763925を求める。
次に、受信者文書符号列Mr=763925の上3桁=763と下3桁=925の各桁を符号加算して文書認証符号Mra=6、Mrb=6を求める。
【0052】
図11に、文字コード(JISコード)の16ビット符号を一単位として、所定のマトリックスに入力した場合の処理例を示す。
図中、送信者の配列鍵を省略して示しているが、文書Mを順次マトリックスに文字入力して2バイトの文字コードの16進数4桁に変換し、各桁の合計値を
10000で割った余り(mod10000)を、それぞれ縦列と横列の剰余演算した値を求めて、前記と同様の手順により検証する。
また、ASCIIコードの場合は、制御用コードを除く文字コード部分20〜7E(16進数)を加算して7Fを法とする剰余演算を行い、商が0以外の整数となる場合は、余りの値に20(16進数)を加算すれば前記と同様の手順により使用することが可能である。
【0053】
【発明の効果】
以上説明したように、本発明の電子署名の作成・検証方法は、送信者Sと受信者Rが互いに秘密の配列鍵As,Arを所有し、文書Mをマトリックス圧縮した圧縮符号列M’rを符号化して圧縮文書符号M’a,M’bを生成し、個人鍵Ksをマトリックス圧縮した公開鍵Kpを符号化して公開鍵符号Kpa,Kpbを生成し、さらに圧縮文書符号M’a,M’bと公開鍵符号Kpa,Kpbを符号加算して署名認証符号σ”a,σ”bを生成すると共に、文書Mと個人鍵Ksを符号加算してマトリックス圧縮した受信署名σを符号化して受信署名符号σa,σbを生成し、この署名認証符号σ”a,σ”bと受信署名符号σa,σbを比較して署名の正当性を検証する。
【0054】
また、文書Mを送信者Sの配列鍵Asでマトリックス圧縮した圧縮符号列M’sを統合した送信者文書符号列Msを符号化して受信文書符号Msa,Msbを生成すると共に、文書Mを受信者Rの配列鍵Arでマトリックス圧縮した圧縮符号列M’rを統合した受信者文書符号列Mrを符号化して文書認証符号Mra,Mrbを生成し、この文書認証符号Mra,Mrbと受信文書符号Msa,Msbを比較して文書の正当性を検証する。
【0055】
これは要するに、文書Mをマトリックスに配列した縦計、横計を符号化した圧縮文書符号M’a,M’bと個人鍵Ksをマトリックスに配列した縦計、横計を符号化した公開鍵符号Kpa,Kpbを符号加算した署名認証符号σ”a,σ”bと、文書Mと個人鍵Ksを符号加算してマトリックス圧縮した受信署名σを符号化した受信署名符号σa,σbは、もともと同じ符号列を演算方向と手順を入れ替えて処理した結果なので、途中の配列パターンが違っても、マトリックスの入力符号が同じであれば常に等しくなる。
【0056】
また、文書Mを送信者Sの配列鍵Asでマトリックスに配列した縦計、横計を符号化した受信文書符号Msa,Msbと、文書Mを受信者Rの配列鍵Arでマトリックスに配列した縦計、横計を符号化した文書認証符号Mra,Mrbは、同様に途中の配列パターンが違っても、マトリックスの入力符号が同じであれば常に等しくなる。
従って、本発明によれば、送信者と受信者が配列鍵を共有しなくてもそれぞれ自分の配列鍵を用いて電子署名の作成と検証ができるようになるので、配列鍵の管理と配布の問題が解消する。
【0057】
なお、所定マトリックスより常に文書量が多くなるような構成にすれば、文書の短縮処理が常に行われるようになる。
この操作が行われることにより、文書の改ざん部分が隣接符号に波及するため、一部の改ざんでも多数の隣接符号が変化してしまうので、改ざんの検出が容易になるとともに、不正が極めて難しくなるという利点がある。
【0058】
また、公開鍵を公開する以外に共有すべきものが一切ないので、多くの関係者が個別に個人鍵を所有することにより、電子署名文書の双方向のやり取りが自由にできるようになる。
また、送信者が配列鍵を作成して受信者に配布する主従の関係がなくなるので、送信者と受信者の間の取引が対等になる。
【図面の簡単な説明】
【図1】本発明を実施した電子署名の作成・検証方法の処理フローである。
【図2】本発明を実施した符号列短縮処理を説明する符号列の具体例である。
【図3】本発明を実施したマトリックス圧縮処理のフローチャートである。
【図4】本発明を実施した公開鍵の作成手順のデータフローである。
【図5】本発明を実施した攪乱暫定署名の作成手順のデータフローである。
【図6】本発明を実施した署名認証符号の作成手順のデータフローである。
【図7】本発明を実施した受信署名符号の作成手順のデータフローである。
【図8】本発明を実施した送信者文書符号列の作成手順のデータフローである。
【図9】本発明を実施した受信文書符号の作成手順のデータフローである。
【図10】本発明を実施した文書認証符号の作成手順のデータフローである。
【図11】文字コードをマトリックスに入力した場合の処理例である。
【符号の説明】
C 暗文
Cd 攪乱符号
A 配列鍵
Kp 公開鍵
Kpa,Kpb 公開鍵公開鍵符号
Ks 個人鍵
M 文書
Mr 受信者文書符号列
Mra,Mrb 文書認証符号
Ms 送信者文書符号列
Msa,Msb 受信文書符号
M’ 圧縮符号列
M’a,M’b 圧縮文書符号
R 受信者
S 送信者
a 符号列
b 圧縮符号列
s マトリックス
σ 受信署名
σa,σb 受信署名符号
σ’ 暫定署名
σ’d 攪乱暫定署名
σ”a,σ”b 署名認証符号
Claims (5)
- 送信者Sと受信者Rが互いに秘密の配列鍵As,Arを所有し、
この配列鍵As,Arの指定に従って任意の長さの符号列aをn×nのマトリックスsに配列し、各行列の合計の剰余演算した値を求める操作を繰り返して2×nの圧縮符号列bに圧縮するマトリックス圧縮手段を用いて、
送信者Sが、
送信者Sの個人鍵Ksを送信者Sの配列鍵Asで最終までマトリックス圧縮し、2×n桁の最終圧縮符号列(E)を公開鍵Kpとして受信者Rに配布するステップと、
送信する文書Mに送信者Sの個人鍵Ksを符号加算して暗号化し、各桁の加算値の剰余演算した値よりなる符号列を暗文Cとするステップと、
この暗文Cを送信者Sの配列鍵Asで途中までマトリックス圧縮し、2×n桁の中間圧縮符号列(k)と暗文Cの残りよりなる符号列を暫定署名σ’とするステップと、
この暫定署名σ’を文書Mに添付して署名付き文書(M,σ’)を送信するステップと、
受信者Rが、
署名付き文書(M,σ’)を受信して文書Mと暫定署名σ’に分離し、文書Mを受信者Rの配列鍵Arで最終までマトリックス圧縮し、2×n桁の最終圧縮符号列M’r(E)を生成するステップと、
この最終圧縮符号列M’r(E)の上下n桁をそれぞれ符号加算して符号化し、各桁の加算値の剰余演算した値を圧縮文書符号M’a,M’bとするステップと、
公開鍵Kpの上下n桁をそれぞれ符号加算して符号化し、各桁の加算値の剰余演算した値を公開鍵符号Kpa,Kpbとするステップと、
圧縮文書符号M’a,M’bと公開鍵符号Kpa,Kpbをそれぞれ符号加算し、加算値の剰余演算した値を署名認証符号σ”a,σ”bとするステップと、
暫定署名σ’を受信者Rの配列鍵Arで最終までマトリックス圧縮し、2×n桁の最終圧縮符号列σ’(E)を生成してそれを受信署名σとするステップと、
この受信署名σの上下n桁をそれぞれ符号加算して符号化し、各桁の加算値の剰余演算した値を受信署名符号σa,σbとするステップと、
前記署名認証符号σ”a,σ”bと受信署名符号σa,σbを比較し、一致すれば署名の正当性を認証し、一致しなければ否認するステップと、
で構成してなる電子署名の作成・検証方法。 - 前記送信者Sが、
文書Mを送信者Sの配列鍵Asで最終までマトリックス圧縮し、段階別に2×n桁の圧縮符号列M’s(1),…M’s(k),…M’s(E)を逐次生成するステップと、
これらの圧縮符号列M’s(1),…M’s(k),…M’s(E)を符号加算して統合し、各桁の加算値の剰余演算した値よりなる符号列を送信者文書符号列Msとし、これを文書Mに添付して送信するステップと、
前記受信者Rが、
受信した文書Mを受信者Rの配列鍵Arで最終までマトリックス圧縮し、段階別に2×n桁の圧縮符号列M’r(1),…M’r(k),…M’r(E)を逐次生成するステップと、
これらの圧縮符号列M’r(1),…M’r(k),…M’r(E)を符号加算して統合し、各桁の加算値の剰余演算した値よりなる符号列を受信者文書符号列Mrとするステップと、
この受信者文書符号列Mrの上下n桁をそれぞれ符号加算して符号化し、各桁の加算値の剰余演算した値を文書認証符号Mra,Mrbとするステップと、
受信した送信者文書符号列Msの上下n桁をそれぞれ符号加算して符号化し、各桁の加算値の剰余演算した値を受信文書符号Msa,Msbとするステップと、
前記文書認証符号Mra,Mrbと受信文書符号Msa,Msbを比較し、一致すれば文書の正当性を認証し、一致しなければ否認するステップと、
を備えてなる請求項1に記載の電子署名の作成・検証方法。 - 前記送信者Sの配列鍵Asで配列したマトリックスsの各行列の合計が所定の剰余演算の法となる値の倍数となる攪乱符号Cdを生成し、それを符号加算して暫定署名σ’を攪乱してなる請求項1に記載の電子署名の作成・検証方法。
- 前記文書Mが個人鍵Ksより長いときは、n桁の文書Mの隣接符号同士の加算値の剰余演算した値よりなるn−1桁の短縮符号列を生成する処理を繰り返しながら文書Mの長さを個人鍵Ksの長さに一致させてなる請求項1に記載の電子署名の作成・検証方法。
- 前記各行列の合計、各桁の加算値および隣接符号同士の加算値の剰余演算は10、また、文字列を使用する場合は100または10000を法とし、ASCIIコードを使用する場合には7Fを法とする剰余演算を行い、商が0以外の整数となる場合は余りに20を加算した値を求めるように構成した請求項1乃至4のうちの1に記載の電子署名の作成・検証方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001376462A JP3662217B2 (ja) | 2001-11-06 | 2001-11-06 | 電子署名の作成・検証方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001376462A JP3662217B2 (ja) | 2001-11-06 | 2001-11-06 | 電子署名の作成・検証方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003143140A JP2003143140A (ja) | 2003-05-16 |
JP3662217B2 true JP3662217B2 (ja) | 2005-06-22 |
Family
ID=19184651
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001376462A Expired - Lifetime JP3662217B2 (ja) | 2001-11-06 | 2001-11-06 | 電子署名の作成・検証方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3662217B2 (ja) |
-
2001
- 2001-11-06 JP JP2001376462A patent/JP3662217B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JP2003143140A (ja) | 2003-05-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8712046B2 (en) | Cryptographic key split combiner | |
US10122710B2 (en) | Binding a data transaction to a person's identity using biometrics | |
US7937584B2 (en) | Method and system for key certification | |
KR100668016B1 (ko) | 믹스넷 시스템 | |
US8208627B2 (en) | Format-preserving cryptographic systems | |
US20090240952A9 (en) | Method and system for decryption of file characteristics of .ZIP files | |
JPH10510692A (ja) | ユーザコンピュータユニットuとネットワークコンピュータユニットnの間における暗号鍵のコンピュータ支援交換方法 | |
US20130339252A1 (en) | Format-preserving cryptographic systems | |
Raeburn | Encryption and checksum specifications for Kerberos 5 | |
KR20200012845A (ko) | 점진적 키 암호화 알고리즘 | |
WO2005062919A2 (en) | Public key encryption for groups | |
WO2002080445A1 (en) | Method and apparatus for secure cryptographic key generation, certification and use | |
US7577845B2 (en) | Information matrix cryptogram | |
GB2487503A (en) | Authentication of digital files and associated identities using biometric information | |
CN107911209A (zh) | 建立抗量子计算攻击的安全性公钥密码的方法 | |
WO2008031301A1 (fr) | Procédé d'authentification d'identité en ligne point à point | |
CN108881186A (zh) | 一种可实现密钥共享和差错控制的压缩感知加密方法 | |
CN114095181A (zh) | 一种基于国密算法的门限环签名方法及系统 | |
JP2000250408A (ja) | ファイル認証システム、署名システム及び署名方法、認証システム及び認証方法、及び記録媒体 | |
Kwon et al. | Efficient and secure password-based authentication protocols against guessing attacks | |
JP3662217B2 (ja) | 電子署名の作成・検証方法 | |
Abiega-L’Eglisse et al. | A New Fuzzy Vault based Biometric System robust to Brute-Force Attack | |
CN114491591A (zh) | 一种匿踪查询的数据使用授权方法、设备、存储介质 | |
EP3185504A1 (en) | Security management system for securing a communication between a remote server and an electronic device | |
US20060095764A1 (en) | Method, system and computerized medium for making secure message transmission |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20050308 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050322 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 Ref document number: 3662217 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090401 Year of fee payment: 4 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090401 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100401 Year of fee payment: 5 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100401 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110401 Year of fee payment: 6 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120401 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130401 Year of fee payment: 8 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140401 Year of fee payment: 9 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |