JP3883942B2 - Security device, security method, security program, and recording medium - Google Patents
Security device, security method, security program, and recording medium Download PDFInfo
- Publication number
- JP3883942B2 JP3883942B2 JP2002279664A JP2002279664A JP3883942B2 JP 3883942 B2 JP3883942 B2 JP 3883942B2 JP 2002279664 A JP2002279664 A JP 2002279664A JP 2002279664 A JP2002279664 A JP 2002279664A JP 3883942 B2 JP3883942 B2 JP 3883942B2
- Authority
- JP
- Japan
- Prior art keywords
- polynomial
- integer
- security device
- parameter
- calculation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Description
【0001】
【発明の属する技術分野】
本発明は、暗号技術を利用したセキュリティ装置、セキュリティ方法、その機能をコンピュータに実行させるためのセキュリティプログラム及びそれを格納したコンピュータ読み取り可能な記録媒体に関し、特に、公開鍵暗号技術を利用したセキュリティ装置、セキュリティ方法、その機能をコンピュータに実行させるためのセキュリティプログラム及びそれを格納したコンピュータ読み取り可能な記録媒体に関する。
【0002】
【従来の技術】
従来より、離散対数問題を応用したDiffile-Hellman鍵配送方式(例えば、非特許文献1参照)及びその応用としての公開鍵暗号方式やデジタル署名方式が提案されている。
まず、この従来のDiffile-Hellman鍵配送方式による鍵配送手順について説明する。なお、甲乙間は、安全でない通信回線によって結ばれているものとする。
鍵の配送を行う場合、甲は、まず、擬似乱数生成装置を用いてあるN以下の整数aを定め、このaを通信回線を介して乙に送信する。次に、甲は、擬似乱数生成装置を用いてある整数sを定めた後、整数演算装置を用いてb=asmodNを計算し、整数sを秘密に保ったまま、計算したbを乙に送信する。
これに対し、乙は、擬似乱数生成装置を用いてある整数tを定めた後、整数演算装置を用いてc=atmodNを計算し、整数tを秘密に保ったまま、計算したcを甲に送信する。また、乙は、整数演算装置を用い、甲から送信されたbから、鍵k=btmodNを求める。
一方、甲は、整数演算装置を用い、乙から送信されたcから、鍵k=csmodNを求める。
ここで、乙が求めた鍵kは、k=btmodN=astmodNとなり、甲が求めた鍵k=csmodN=astmodNと一致することになる。これにより、甲乙間で、共通鍵kの配送が行われたことになる。
【0003】
次に、この従来のDiffile-Hellman鍵配送方式を応用した公開鍵暗号方式について説明する。以下では、乙から甲へ暗号文を送信し、甲が送られた暗号文を復号するものとする。
この場合、甲は、まず、擬似乱数生成装置を用いてあるN以下の整数aを定め、このaを通信回線を介して乙に送信する。次に、甲は、擬似乱数生成装置を用いてある整数sを定めた後、整数演算装置を用いてb=asmodNを計算し、整数sを秘密に保ったまま、計算したbを乙に送信する。この整数sが秘密鍵として機能し、bが公開鍵として機能することになる。
これに対し、乙は、擬似乱数生成装置を用いてある整数tを定めた後、整数演算装置を用いてc=atmodNを計算し、整数tを秘密に保ったまま、計算したcを甲に送信する。また、乙は、整数演算装置を用い、甲から送信されたbからk=btmodNを求め、このkで平文Mを暗号化した後、この暗号文と計算したcとを、甲に送信する。
これを受け取った甲は、整数演算装置を用い、送られたcからk=csmodNを計算し、このkを用い、送られた暗号文を復号する。
【0004】
次に、この従来の離散対数問題の困難性を応用したデジタル署名方式であるSchnorr署名方式について説明する。なお、以下では、甲乙間は、安全でない通信回線によって結ばれており、甲から乙へ送信するメッセージMに対し、甲がデジタル署名を行い、メッセージMを受け取った乙が、このメッセージMに付されたデジタル署名の検証を行うものとする。また、甲と乙は共通のハッシュ関数Hを計算する装置を備えているものとする。
この場合、まず甲は、設定した素数p及び自然数aを公開し、擬似乱数発生装置を用いて定めた自然数tを秘密鍵として保持しておき、さらに、甲はb=atmodpによってbを設定し、設定したbを公開鍵として公開しておく。
【0005】
そして、甲が実際に署名を生成する際、甲は、さらに擬似乱数発生装置を用いて自然数uを生成し、この自然数uを用いてc=aumodpを演算し、この演算結果を用いて、整数の対S=(c,u+tH(M,c))を生成し、生成した整数の対Sを、自然数uを秘密に保った状態で乙に送信する。
整数の対S=(S1,S2)を受け取った乙は、このS及び公開されているbによりV=as2bH(M,s1)c-1modpの演算を行う。ここで、例えば署名が有効であった場合、受け取った整数の対Sは、S1=c、S2=u+tH(M,c)となっているはずである。この場合、Vの値は、V=a(u+tH(M,c))bH(M,c)c-1modpとなり、さらにb及びcの定義(b=atmodp、c=aumodp)からV=1となる。一方、上述のように、u+tH(M,c)を構成するu及びtは甲の秘密情報となっているため、甲以外の者はこのu及びtを適切に選択できず、この場合、S1=c、S2=u+tH(M,c)とはならない。結果、V=1ともならない。これにより、乙は、V=1のときには署名が有効であると判断でき、V=1でないときには署名が無効であることが判断できる。なお、このSchnorr署名方式の安全性については、Hが理想的な乱数関数であり、かつ離散対数問題が解けないならば安全であることが知られている(例えば、非特許文献2参照)。
【0006】
【非特許文献1】
産業図書「現代暗号」岡本龍明、山本博資著 P200〜202。
【非特許文献2】
Pintcheval and Stern: Security Proofs for Signature Schemes, Proc. Of Eurocrypt'96, LNCS 1070, Springer-Verlag,pp.387-398(1996)
【0007】
【発明が解決しようとする課題】
しかし、従来のDiffile-Hellman鍵配送方式、及びその応用としての公開鍵暗号方式やデジタル署名方式では、b及びcの計算に必要な四則演算の回数が、秘密パラメータであるs、tの大きさに依存して増大してしまう。そのため、安全性向上のために秘密パラメータs、tを大きくした場合、鍵配送時、暗号・復号時、署名生成・検証時における計算量が増大し、実用面での利便性に問題があるという課題がある。
本発明はこのような点に鑑みてなされたものであり、このような実用面での利便性を向上させることが可能なセキュリティ装置を提供することを目的とする。
また、本発明の他の目的は、このような実用面での利便性を向上させることが可能なセキュリティ方法を提供することである。
さらに、本発明の他の目的は、このような実用面での利便性を向上させたセキュリティ機能を、コンピュータに実行させるためのセキュリティプログラムを提供することである。
また、本発明の他の目的は、このような実用面での利便性を向上させたセキュリティ機能を、コンピュータに実行させるためのセキュリティプログラムを記録したコンピュータ読み取り可能な記録媒体を提供することである。
【0008】
【課題を解決するための手段】
本発明では上記課題を解決するために、第1の整数パラメータと第2の整数パラメータとの組によって構成される、第1の個数組のパラメータを設定し、集合に対し、第1の整数パラメータをsmとし、第2の整数パラメータをqmとし、第1の個数をrとし、δを任意の多項式g(x)に対して多項式g(x)-g(x-1)を対応させる作用素とした場合における、Σm=0 rqm(1-δ)smを作用させ、その演算結果を用いてセキュリティ機能を実現する。
この場合、この集合にΣm=0 rqm(1-δ)smを作用させるための四則演算の回数が、第1の整数パラメータsm、第2の整数パラメータqmの大きさに伴って増大していくことはない。結果、利用時における利便性を保ちつつ、第三者からの攻撃に対する安全性の向上を図ることが可能となる。
【0009】
【発明の実施の形態】
以下、本発明における第1の実施の形態を図面を参照して説明する。
ここでは、まず、本形態の概略について説明を行い、その後、本形態の詳細について説明を行っていく。
図1は、本形態におけるセキュリティシステム1の概略を説明するための図である。
図1に例示するように、セキュリティシステム1は、セキュリティ装置2、3によって構成されており、このセキュリティ装置2、3間において、共通鍵の配送を行う。
【0010】
この例の場合、セキュリティ装置2は、第1の整数パラメータと第2の整数パラメータとの組によって構成される、第1の個数組のパラメータを設定する第1のパラメータ設定手段2a、及び集合に対し、第1の整数パラメータをsmとし、第2の整数パラメータをqmとし、第1の個数をrとし、δを任意の多項式g(x)に対して多項式g(x)-g(x-1)を対応させる作用素とした場合における、Σm=0 rqm(1-δ)smを作用させる線形作用演算手段2b、2cを有しており、同じく、セキュリティ装置3は、第3の整数パラメータと第4の整数パラメータとの組によって構成される、第2の個数組のパラメータを設定する第2のパラメータ設定手段3a、及び集合に対し、第3の整数パラメータをumとし、第4の整数パラメータをvmとし、第2の個数をtとし、δを任意の多項式g(x)に対して多項式g(x)-g(x-1)を対応させる作用素とした場合における、Σm=0 tvm(1-δ)umを作用させる線形作用演算手段3b、3cを有している。
【0011】
また、その詳細については後述するが、この例の場合、線形作用演算手段2bは、所定の多項式をa(x)とし、該多項式の次数をdeg a(x)とし、第1の整数パラメータをsmとし、第2の整数パラメータをqmとし、第1の個数をrとし、∂を微分作用素とし、イデアルであって、該イデアルに対して行われた、整数係数の多項式の変数を任意の整数値だけ加算した該多項式の演算結果が、再び、該イデアルとなる集合であるイデアル集合をIとした場合における、Σn=0 deg a(x)Σm=0 r(qmsm n∂na(x)/n!)modIの演算を行う手段となっており、これにより、線形作用素Σm=0 rqm(1-δ)smによる環の作用の逆問題が生成されることになる。この点、線形作用演算手段2c、3b、3cについても同様である。
【0012】
なお、本形態及び以後の形態の説明において、δとは、任意の多項式g(x)に対して多項式g(x)-g(x-1)を対応させる作用素を意味し、この定義から(1-δ)sは、任意の多項式g(x)に対して多項式g(x-s)を対応させる作用素を意味する。
また、イデアル集合Iとは、イデアルであって、該イデアルに対して行われた、整数係数の多項式の変数を任意の整数値だけ加算した該多項式の演算結果が、再び、該イデアルとなる集合であるイデアル集合をいうものとする。なお、「イデアル」に関し、例えば、可換環Rの部分集合I1がイデアルであるとは、任意のx,y∈I1についてx+y∈I1が成り立ち、かつ任意のx∈Rとy∈I1についてxy∈I1が成り立つことを意味し、このようなイデアル集合の具体例としては、例えば、整数係数の多項式がなす環のイデアルであって、δを任意の多項式g(x)に対して多項式g(x)-g(x-1)を対応させる作用素とし、deg f(x)をf(x)の次数とした場合における、{f(x), δf(x),δ2f(x),…,δdeg f(x)f(x)} によって生成される集合が挙げられる。
【0013】
本形態におけるセキュリティシステム1において共通鍵k(x)の配送を行う場合、例えば、まず、セキュリティ装置2は、整数係数の多項式である共通多項式a(x)を生成し、生成した共通多項式a(x)をセキュリティ装置3に送信する。
そして、例えば次に、セキュリティ装置2は、パラメータ設定手段2aにおいてr個の整数組(s,q)を定め、線形作用演算手段2bにおいて、共通多項式a(x)に対し、線形作用素Σm=0 rqm(1-δ)smを作用させる。具体的には、例えば、パラメータ設定手段2aにおいてs=(s1,s2,…,sr)及びq=(q1,q2,…,qr)を定め、線形作用演算手段2bにおいて、Σn=0 deg a(x)Σm=0 r(qmsm n∂na(x)/n!)modIの演算を行う。なお、体K上のベクトル空間V,V'が与えられたとき、ある作用素A:V→V'が線形作用素であるとは、任意のx,y∈Vに対してA(x+y)=A(x)+A(y)が成り立ち、かつ任意のx∈Vとk∈Kに対してA(kx)=kA(x)が成り立つことである。
【0014】
その後、共通多項式a(x)に線形作用素Σm=0 rqm(1-δ)smを作用させた結果、すなわち、Σn=0 deg a(x)Σm=0 r(qmsm n∂na(x)/n!)modIの演算結果b(x)は、例えば、r、s、qが、これらの整数パラメータを設定したセキュリティ装置2側において秘密に保たれた状態でセキュリティ装置3に送信される。
一方、セキュリティ装置3は、パラメータ設定手段3aにおいて、t個の整数組(u,v)を定め、線形作用演算手段3bにおいて、共通多項式a(x)に対し、線形作用素Σm=0 tvm(1-δ)umを作用させる。具体的には、例えば、パラメータ設定手段3aにおいてu=(u1,u2,…,ur)及びv=(v1,v2,…,vr)を定め、線形作用演算手段3bにおいて、Σn=0 deg a(x)Σm=0 t(vmum n∂na(x)/n!)modIの演算を行う。
【0015】
その後、共通多項式a(x)に線形作用素Σm=0 tvm(1-δ)umを作用させた結果、すなわち、Σn=0 deg a(x)Σm=0 t(vmum n∂na(x)/n!)modIの演算結果c(x)は、例えば、t、u、vが、これらの整数パラメータを設定したセキュリティ装置3側において秘密に保たれた状態でセキュリティ装置2に送信される。
セキュリティ装置3から多項式c(x)が送信されたセキュリティ装置2は、例えば、線形作用演算手段2cにおいて、多項式c(x)に線形作用素Σm=0 rqm(1-δ)smを作用させ共通鍵を生成する。具体的には、例えば、線形作用演算手段2bにおいて、Σn=0 deg c(x)Σm=0 r(qmsm n∂nc(x)/n!)modIの演算を行い、その演算結果を共通鍵K(x)とする。
【0016】
一方、セキュリティ装置2から多項式b(x)が送信されたセキュリティ装置3は、例えば、線形作用演算手段3cにおいて、多項式b(x)に線形作用素Σm=0 tvm(1-δ)umを作用させ共通鍵を生成する。具体的には、例えば、線形作用演算手段3bにおいて、Σn=0 deg b(x)Σm=0 t(vmum n∂nb(x)/n!)modIの演算を行い、その演算結果を共通鍵K(x)とする。
ここで、以上説明した線形作用演算手段2b、2c、3b、3cにおいて行われる多項式演算に必要な四則演算の回数は、上述した演算式が示す通り、秘密パラメータ(r,s,k,t,u,v)の大きさに依存しない。したがって、秘密パラメータ(r,s,k,t,u,v)の大きさを大きくした場合であっても、鍵配送時にセキュリティ装置2、3によって行われる四則演算の回数が増大することはなく、結果、秘密パラメータの大きさに依存して計算量が増大する従来のDiffile-Hellman鍵配送方式に比べ、大幅に利便性が向上する。
【0017】
次に、本形態の詳細について説明を行う。
図2は、本形態におけるセキュリティシステム10の全体構成を例示した図である。
図2に例示するように、セキュリティシステム10は、例えば、相互に共通鍵の配送を行うセキュリティ装置20、30、及びセキュリティ装置20、30相互を通信可能なように接続するネットワーク40を有しており、このセキュリティ装置20、30は、ネットワーク40を介し、相互に情報のやり取りが可能なように、有線又は無線によって電気的に接続され、或いは接続可能な状態となっている。
【0018】
セキュリティ装置20、30は、例えば、モデム、DSU(Digital Service Unit)、NCU(Network Control Unit)、TA(Terminal Adapter)等のデータ回線終端装置を具備し、或いは接続されたコンピュータによって構成されている。そして、このセキュリティ装置20、30には、所定のメールソフトウェアやWWWブラウザがインストールされており、このメールソフトウェアやWWWブラウザを用いることにより、図示していないメールサーバやWWWサーバを介し、セキュリティ装置20、30相互間の通信が可能な構成となっている。
【0019】
ネットワーク40は、例えば、インターネット、イントラネット、エクストラネット、LAN(Local Area Network)、WAN(Wide Area Network)、VAN(Value Added Network)等であり、その形態について特に制限はない。また、その通信回線も、専用回線、交換回線等、どのようなものでもよく、ネットワーク接続形態もリング型、メッシュ型、スター型、バス型、ツリー型等、特に制限はない。さらに、その回線接続方式も、ポイントツーポイント方式、マルチポイント方式、集線方式等、特に制限はなく、どのようなものであってもよい。
【0020】
また、ネットワーク40は、例えば、OSI(Open Systems Interconnection)、TCP/IP(Transmission Control Protocol/Internet Protocol)、IEEE802.3、IEEE802.4、IEEE802.5等の所定のプロトコルに基づいて構成されており、セキュリティ装置20、30は、このプロトコルに従い、ネットワーク40を介した情報の受け渡しを行う。
なお、図2では、2つのセキュリティ装置20、30によってセキュリティシステム10を構成しているが、セキュリティ装置20、30を、これより多く設け、それらのセキュリティ装置相互間で共通鍵の配送を行う構成としてもよい。
【0021】
図3は、セキュリティ装置20のハードウェア構成を例示したブロック図である。
図3に例示するように、セキュリティ装置20は、例えば、CPU(Central processing Unit:中央処理装置)20a、主記憶装置20b、外部記憶装置20c、入力装置20d、記録媒体読書き装置20e、出力装置20f、通信制御装置20g及びバス20hを有しており、通信制御装置20gを介し、ネットワーク40と通信可能なように接続され、或いは接続可能なように構成されている。
【0022】
CPU20aは、例えば、制御装置と演算装置を有するCISC(Complex Instruction Set Computer)方式、或いはRISC(Reduced Instruction Set Computer)方式の中央処理装置であり、図示していない発信器から供給されるクロック信号に同期し、主記憶装置20bに格納されたオペレーティングシステム、アプリケーションプログラム等の各種プログラムの実行を行い、周辺機器の制御、必要データの呼び出し、呼び出したデータの演算・加工、演算・加工後のデータのメモリへの格納、周辺機器への出力等の各種処理を行う。
【0023】
主記憶装置20bは、例えば、CPU20aが直接データを読み書きできる記憶装置である。主記憶装置20bには、例えば、オペレーティングシステム、アプリケーションプログラム、データ、周辺機器を制御するドライバ等が読み込まれ、CPU20aは、この主記憶装置12に読み込まれたオペレーティングシステム等を実行することにより、一連の処理を行う。主記憶装置20bには、例えば、半導体メモリ等の高速処理可能な記憶素子を用い、この主記憶装置20b内の物理アドレスは、ページング方式、セグメンテーション方式等の方法により、外部記憶装置20cの仮想アドレス空間に対応付けられる。
【0024】
外部記憶装置20cは、例えば、磁性体が蒸着された薄い円盤を高速回転させ、この磁性体を磁気ヘッドによって磁化することでデータの記録を行うハードディスク装置等である。
入力装置20dは、例えば、キーボードやマウス等の入出力デバイスである。記録媒体読書き装置20eは、例えば、フレキシブルディスク等への情報の読書き、コンパクト・ディスク等からの情報の読み出し等を行う装置である。
出力装置20fは、例えば、画面表面の蛍光素材に電子ビームを当てることによって映像の表示を行うCRT(Cathode-ray Tube)ディスプレイ、或いは、電圧を加えた際に分子配列が変化する液晶の性質を利用した液晶ディスプレイ等であり、供給されたアナログ信号をもとに、所定の映像の表示を行う。
【0025】
通信制御装置20gは、例えば、例えば、USART(Universal Synchronous and Asynchronous Receiver-Transmitter)等の汎用同期・非同期送受信回路であり、ネットワーク40を介したデータ送受信時にデータの直列変換等を行う。バス20dは、例えば、データバス、アドレスバス、コントロールバス等によって構成され、CPU20a、主記憶装置20b、外部記憶装置20c、入力装置20d、記録媒体読書き装置20e、出力装置20f、通信制御装置20g間のデータ、アドレス情報、制御情報の受け渡しを行う。
【0026】
なお、ここでは説明を省略するが、セキュリティ装置30も、例えばこのセキュリティ装置20と同様なハードウェア構成をとるものとする。
図4は、図3に例示したハードウェアにおいて所定のプログラム(ソフトウェア)を実行させることにより、このハードウェアとソフトウェアとが協働した具体的手段によって構築されるセキュリティ装置20の処理機能を例示した機能ブロック図である。
図4に例示するように、この例のセキュリティ装置20は、通信相手と共用される整数係数の共通多項式を生成する共通多項式生成手段21、共通多項式生成手段21で生成した共通多項式を通信相手に開示する共通多項式開示手段22、第1の整数パラメータと第2の整数パラメータとの組によって構成される、第1の個数組のパラメータを設定するパラメータ設定手段23、通信相手と共用される整数係数の共通多項式をa(x)とし、共通多項式の次数をdeg a(x)とし、第1の整数パラメータをsmとし、第2の整数パラメータをqmとし、第1の個数をrとし、∂を微分作用素とし、イデアルであって、該イデアルに対して行われた、整数係数の多項式の変数を任意の整数値だけ加算した該多項式の演算結果が、再び、該イデアルとなる集合であるイデアル集合をIとした場合における、Σn=0 deg a(x)Σm=0 r(qmsm n∂na(x)/n!)modIの演算を行うことにより、第1の演算結果を生成する線形作用演算手段24、生成された第1の演算結果を、通信相手に開示する演算結果開示手段25、通信相手によって演算された第2の演算結果を取得する演算結果取得手段26、演算結果取得手段26によって取得された第2の演算結果をc(x)とし、第2の演算結果c(x)の次数をdeg c(x)とし、第1の整数パラメータをsmとし、第2の整数パラメータをqmとし、第1の個数をrとし、∂を微分作用素とし、イデアル集合をIとした場合における、Σn=0 deg c(x)Σm=0 r(qmsm n∂nc(x)/n!)modIの演算を行う線形作用演算手段27、セキュリティ装置20全体を制御する制御手段28、及び各種の情報を記憶する記憶手段29を処理機能として有している。
【0027】
また、この例では、共通多項式生成手段21は、SHA-1等の一方向性ハッシュ関数を用いて構成される、計算量理論に基づく擬似乱数生成アルゴリズム等を用い、擬似乱数を発生させる擬似乱数発生手段21a、及び擬似乱数発生手段21aによって発生させた擬似乱数を用いて所定の整数値を生成し、生成した整数値を係数とする共通多項式を生成する多項式生成手段21bを有しており、パラメータ設定手段23は、SHA-1等の一方向性ハッシュ関数を用いて構成される、計算量理論に基づく擬似乱数生成アルゴリズム等を用い、擬似乱数を発生させる擬似乱数発生手段23a、及び擬似乱数発生手段23aよって発生させた擬似乱数を用いて、所定の整数値を生成する整数値演算手段23bを有している。さらに、この例では、線形作用演算手段24は、整数演算を行う整数演算手段24a、多項式の加算演算を行う多項式加算手段24b及び多項式の微分演算を行う多項式微分手段24cを、線形作用演算手段27は、整数演算を行う整数演算手段27a、多項式の加算演算を行う多項式加算手段27b及び多項式の微分演算を行う多項式微分手段27cを、それぞれ有している。
【0028】
また、図4に例示するように、共通多項式生成手段21、共通多項式開示手段22、パラメータ設定手段23、線形作用演算手段24、演算結果開示手段25、演算結果取得手段26、線形作用演算手段27、及び記憶手段29は、制御手段28への情報の提供及び制御手段28からの情報の取得の少なくとも一方が可能なように構成されており、共通多項式開示手段22及び演算結果開示手段25は、ネットワーク40への情報の提供が、演算結果取得手段26は、ネットワーク40からの情報の取得がそれぞれ可能なように構成されている。
【0029】
図5は、図3に例示したハードウェアにおいて所定のプログラム(ソフトウェア)を実行させることにより、このハードウェアとソフトウェアとが協働した具体的手段によって構築されるセキュリティ装置30の処理機能を例示した機能ブロック図である。
図5に例示するように、この例のセキュリティ装置30は、通信相手と共用される整数係数の共通多項式を受信する共通多項式取得手段32、パラメータ設定手段33、線形作用演算手段34、演算結果開示手段35、演算結果取得手段36、線形作用演算手段37、セキュリティ装置30全体を制御する制御手段38、及び記憶手段29を処理機能として有している。
【0030】
また、この例では、パラメータ設定手段33は、SHA-1等の一方向性ハッシュ関数を用いて構成される、計算量理論に基づく擬似乱数生成アルゴリズム等を用い、擬似乱数を発生させる擬似乱数発生手段33a、及び擬似乱数発生手段33aよって発生させた擬似乱数を用いて、所定の整数値を生成する整数値演算手段33bを有している。さらに、この例では、線形作用演算手段34は、整数演算を行う整数演算手段34a、多項式の加算演算を行う多項式加算手段34b及び多項式の微分演算を行う多項式微分手段34cを、線形作用演算手段37は、整数演算を行う整数演算手段37a、多項式の加算演算を行う多項式加算手段37b及び多項式の微分演算を行う多項式微分手段37cを、それぞれ有している。
【0031】
また、図5に例示するように、共通多項式取得手段32、パラメータ設定手段33、線形作用演算手段34、演算結果開示手段35、演算結果取得手段36、線形作用演算手段37及び記憶手段39は、制御手段38への情報の提供及び制御手段38からの情報の取得の少なくとも一方が可能なように構成されており、演算結果開示手段35は、ネットワーク40への情報の提供が、共通多項式取得手段32及び演算結果取得手段36は、ネットワーク40からの情報の取得がそれぞれ可能なように構成されている。
【0032】
次に、本形態におけるセキュリティシステム10、セキュリティ装置20、30の処理動作について説明する。
図6は、本形態におけるセキュリティシステム10、セキュリティ装置20、30の処理動作の一例を説明するためのフローチャートである。このフローチャートにおける実線の矢印は、セキュリティシステム10全体における一連の処理の流れを例示したものであり、破線の矢印は、セキュリティシステム10全体における一連の処理の流れと、セキュリティ装置20、30それぞれ単体での処理の流れが異なる部分について、セキュリティ装置20、30単体での処理の流れを例示したものである。なお、ここでは、説明を容易にするため、便宜的に図6のような処理の流れにそって処理動作の説明を行うが、セキュリティ装置20、30それぞれが、このフローチャートの流れと異なる順序で処理を行うこととしてもよく、また、セキュリティ装置20、30が、平行して、同時にそれぞれの処理を行うこととしてもよい。
【0033】
以下、このフローチャートに沿って説明を行う。
ステップS1:
本ステップでは、セキュリティ装置20において、整数係数の共通多項式a(x)の設定を行う。
この共通多項式a(x)の設定は、例えば、セキュリティ装置20の共通多項式生成手段21において行われる。具体的には、例えば、まず、擬似乱数発生手段21aにおいて、SHA-1等の一方向性ハッシュ関数を用いて構成される、計算量理論に基づく擬似乱数生成アルゴリズム等を用いて擬似乱数を発生させ、次に、多項式生成手段21bにおいて、この擬似乱数を所定の桁数に加工し、さらに、所定の値を減算すること等により、多項式の整数係数を設定し、この整数係数を用いて共通多項式a(x)の設定を行う。
このように設定された共通多項式a(x)を特定するための情報は、例えば、制御手段28に送られ、制御手段28は、送られた共通多項式a(x)を特定するための情報を、共通多項式開示手段22及び記憶手段29に送る。記憶手段29に送られた共通多項式a(x)を特定するための情報は、例えば、記憶手段29に記録され、共通多項式開示手段22に送られた共通多項式a(x)を特定するための情報は、次のステップS2の処理に使用される。
【0034】
ステップS2:
本ステップでは、セキュリティ装置20において、共通多項式a(x)の送信を行う。
共通多項式a(x)の送信は、例えば、セキュリティ装置20の共通多項式開示手段22によって行われる。具体的には、例えば、セキュリティ装置20からセキュリティ装置30宛の電子メールに、この共通多項式a(x)を特定するための情報を提示し、或いは、セキュリティ装置30が閲覧可能なインターネット上のホームページに、この共通多項式a(x)を特定するための情報をアップロードすることによって行われる。
このように共通多項式a(x)の送信が行われると、次に、ステップS3の処理に移る。
【0035】
ステップS3:
本ステップでは、セキュリティ装置30において、共通多項式a(x)の受信を行う。
共通多項式a(x)の受信は、例えば、セキュリティ装置30の共通多項式取得手段32において行われる。具体的には、例えば、セキュリティ装置30が、インターネット上のメールサーバにアクセスし、セキュリティ装置20から送られたセキュリティ装置30宛の電子メールを受け取ることにより、または、共通多項式a(x)を特定するための情報がアップロードされたインターネット上のホームページにアクセスすること等により行われる。
このように受信された共通多項式a(x)を特定するための情報は、例えば、制御手段38に送られ、制御手段38は、送られた共通多項式a(x)を特定するための情報を記憶手段39に送る。記憶手段39に送られた共通多項式a(x)を特定するための情報は、例えば、記憶手段39に記憶され、次のステップS4の処理に移る。
【0036】
ステップS4:
本ステップでは、セキュリティ装置20において、r個の整数組(s,q)の設定を行う。
r個の整数組(s,q)の設定は、例えば、セキュリティ装置20のパラメータ設定手段23によって行われる。具体的には、例えば、まず、擬似乱数発生手段23aにおいて、SHA-1等の一方向性ハッシュ関数を用いて構成される、計算量理論に基づく擬似乱数生成アルゴリズム等を用いて擬似乱数を発生させ、次に、整数値演算手段23bにおいて、この擬似乱数を所定の桁数に加工し、さらに、所定の値を減算すること等により、所定のr個の整数組(s,q)、すなわち、s=(s1,s2,…,sr)とq=(q1,q2,…,qr)とを設定する。
設定されたr個の整数組(s,q)を特定するための情報は、例えば、制御手段28に送られ、制御手段28は、送られたr個の整数組(s,q)を特定するための情報を、線形作用演算手段24及び記憶手段29に送る。記憶手段29に送られたr個の整数組(s,q)を特定するための情報は、例えば、記憶手段29に記憶され、線形作用演算手段24に送られたr個の整数組(s,q)を特定するための情報は、ステップS5の処理に使用される。
【0037】
ステップS5:
本ステップでは、セキュリティ装置20において、多項式の演算を行う。
本ステップにおける多項式の演算は、例えば、セキュリティ装置20の線形作用演算手段24において行われる。この多項式の演算を行う場合、例えば、まず、制御手段28は、ステップS1において記憶手段29に記憶された共通多項式a(x)を特定するための情報を読み込み、その情報を線形作用演算手段24に送る。この情報が送られた線形作用演算手段24は、この情報とステップS4の処理で送られた情報とを用いた演算により、共通多項式a(x)にΣm=0 rqm(1-δ)smを作用させる処理を行う。この例の場合、この共通多項式a(x)にΣm=0 rqm(1-δ)smを作用させる具体的な演算方法として、線形作用演算手段24が有する整数演算手段24a、多項式加算手段24b及び多項式微分手段24cを用い、b(x)=Σn=0 deg a(x)Σm=0 r(qmsm n∂na(x)/n!)modIの演算を行う。なお、ここで、このようなイデアル集合Iによって剰余演算を行う理由については後述する。
このような演算の結果を示す多項式b(x)を特定するための情報は、例えば、制御手段28に送られ、制御手段28は、送られた多項式b(x)を特定するための情報を、演算結果開示手段25に送る。演算結果開示手段25にこの情報が送られると、次に、ステップS6の処理に移る。
【0038】
ステップS6:
本ステップでは、セキュリティ装置20において、多項式b(x)を送信する。
多項式b(x)の送信は、例えば、セキュリティ装置20の演算結果開示手段25によって行われるが、この際、r個の整数組(s,q)は開示されず、このr個の整数組(s,q)をセキュリティ装置20側で秘密に保った状態で行われる。具体的には、例えば、セキュリティ装置20からセキュリティ装置30宛の電子メールに、この多項式b(x)を特定するための情報を、r個の整数組(s,q)を特定するための情報を開示することなく提示し、或いは、セキュリティ装置30が閲覧可能なインターネット上のホームページに、この多項式b(x)を特定するための情報を、r個の整数組(s,q)を特定するための情報を開示することなくアップロードすることによって行われる。
このように多項式b(x)の送信が行われると、次に、ステップS7の処理に移る。
【0039】
ステップS7:
本ステップでは、セキュリティ装置30において、多項式b(x)を受信する。
多項式b(x)の受信は、例えば、セキュリティ装置30の演算結果取得手段36において行われる。具体的には、例えば、セキュリティ装置30が、インターネット上のメールサーバにアクセスし、セキュリティ装置20から送られたセキュリティ装置30宛の電子メールを受け取ることにより、または、多項式b(x)を特定するための情報がアップロードされたインターネット上のホームページにアクセスすること等により行われる。
このように受信された多項式b(x)を特定するための情報は、例えば、制御手段38に送られ、制御手段38は、送られた多項式b(x)を特定するための情報を記憶手段39に送る。記憶手段39に送られた多項式b(x)を特定するための情報は、例えば、記憶手段39に記憶され、次のステップS8の処理に移る。
【0040】
ステップS8:
本ステップでは、セキュリティ装置30において、t個の整数組(u,v)の設定を行う。
t個の整数組(u,v)の設定は、例えば、セキュリティ装置30のパラメータ設定手段33によって行われる。具体的には、例えば、まず、擬似乱数発生手段33aにおいて、SHA-1等の一方向性ハッシュ関数を用いて構成される、計算量理論に基づく擬似乱数生成アルゴリズム等を用いて擬似乱数を発生させ、次に、整数値演算手段33bにおいて、この擬似乱数を所定の桁数に加工し、さらに、所定の値を減算すること等により、所定のt個の整数組(u,v)、すなわち、u=(u1,u2,…,ut)とv=(v1,v2,…,vt)とを設定する。
設定されたt個の整数組(u,v)を特定するための情報は、例えば、制御手段38に送られ、制御手段38は、送られたt個の整数組(u,v)を特定するための情報を、線形作用演算手段34及び記憶手段39に送る。記憶手段39に送られたt個の整数組(u,v)を特定するための情報は、例えば、記憶手段39に記憶され、線形作用演算手段34に送られたt個の整数組(u,v)を特定するための情報は、ステップS9の処理に使用される。
【0041】
ステップS9:
本ステップでは、セキュリティ装置30において、多項式の演算を行う。
本ステップにおける多項式の演算は、例えば、セキュリティ装置30の線形作用演算手段34において行われる。この多項式の演算を行う場合、例えば、まず、制御手段38は、ステップS3において記憶手段39に記憶された共通多項式a(x)を特定するための情報を読み込み、その情報を線形作用演算手段34に送る。この情報が送られた線形作用演算手段34は、この情報とステップS8の処理で送られた情報とを用いた演算により、共通多項式a(x)にΣm=0 tvm(1-δ)umを作用させる処理を行う。この例の場合、この共通多項式a(x)にΣm=0 rvm(1-δ)umを作用させる具体的な演算方法として、線形作用演算手段34が有する整数演算手段34a、多項式加算手段34b及び多項式微分手段34cを用い、c(x)=Σn=0 deg a(x)Σm=0 t(vmum n∂na(x)/n!)modIの演算を行う。なお、ここで、このようなイデアル集合Iによって剰余演算を行う理由については後述する。
このような演算の結果を示す多項式c(x)を特定するための情報は、例えば、制御手段38に送られ、制御手段38は、送られた多項式c(x)を特定するための情報を、演算結果開示手段35に送る。演算結果開示手段35にこの情報が送られると、次に、ステップS10の処理に移る。
【0042】
ステップS10:
本ステップでは、セキュリティ装置30において、多項式c(x)を送信する。
多項式c(x)の送信は、例えば、セキュリティ装置30の演算結果開示手段35によって行われるが、この際、t個の整数組(u,v)は開示されず、このt個の整数組(u,v)をセキュリティ装置30側で秘密に保った状態で行われる。具体的には、例えば、セキュリティ装置30からセキュリティ装置20宛の電子メールに、この多項式c(x)を特定するための情報を、t個の整数組(u,v)を特定するための情報を開示することなく提示し、或いは、セキュリティ装置20が閲覧可能なインターネット上のホームページに、この多項式c(x)を特定するための情報を、t個の整数組(u,v)を特定するための情報を開示することなくアップロードすることによって行われる。
このように多項式c(x)の送信が行われると、次に、ステップS11の処理に移る。
【0043】
ステップS11:
本ステップでは、セキュリティ装置20において、多項式c(x)を受信する。
多項式c(x)の受信は、例えば、セキュリティ装置20の演算結果取得手段26において行われる。具体的には、例えば、セキュリティ装置20が、インターネット上のメールサーバにアクセスし、セキュリティ装置30から送られたセキュリティ装置20宛の電子メールを受け取ることにより、または、多項式c(x)を特定するための情報がアップロードされたインターネット上のホームページにアクセスすること等により行われる。
このように受信された多項式c(x)を特定するための情報は、例えば、制御手段28に送られ、制御手段28は、送られた多項式c(x)を特定するための情報を記憶手段29に送る。記憶手段29に送られた多項式c(x)を特定するための情報は、例えば、記憶手段29に記憶され、次のステップS12の処理に移る。
【0044】
ステップS12:
本ステップでは、セキュリティ装置20において、共通鍵k(x)の算出を行う。本ステップにおける共通鍵k(x)の算出は、例えば、セキュリティ装置20の線形作用演算手段27において行われる。共通鍵k(x)の算出を行う場合、例えば、まず、制御手段28は、ステップS4において記憶手段29に記憶されたr個の整数組(s,q)と、ステップS11において記憶手段29に記憶された多項式c(x)を特定するための情報とを読み込み、それらの情報を線形作用演算手段27に送る。この情報が線形作用演算手段27に送られると、例えば、この線形作用演算手段27は、多項式c(x)にΣm=0 rqm(1-δ)smを作用させる処理を行う。この例の場合、線形作用演算手段27が有する整数演算手段27a、多項式加算手段27b及び多項式微分手段27cを用い、Σn=0 deg c(x)Σm=0 r(qmsm n∂nc(x)/n!)modIの演算を行い、その結果を、共通鍵k(x)として出力する。なお、ここで、このようなイデアル集合Iによって剰余演算を行う理由については後述する。
【0045】
ステップS13:
本ステップでは、セキュリティ装置30において、共通鍵k(x)の算出を行う。本ステップにおける共通鍵k(x)の算出は、例えば、セキュリティ装置30の線形作用演算手段37において行われる。共通鍵k(x)の算出を行う場合、例えば、まず、制御手段38は、ステップS8において記憶手段39に記憶されたt個の整数組(u,v)と、ステップS7において記憶手段39に記憶された多項式b(x)を特定するための情報とを読み込み、それらの情報を線形作用演算手段37に送る。この情報が線形作用演算手段37に送られると、例えば、この線形作用演算手段37は、多項式b(x)にΣm=0 tvm(1-δ)umを作用させる処理を行う。この例の場合、線形作用演算手段37が有する整数演算手段37a、多項式加算手段37b及び多項式微分手段37cを用い、Σn=0 deg b(x)Σm=0 t(vmum n∂nb(x)/n!)modIの演算を行い、その結果を、共通鍵k(x)として出力する。
【0046】
以上の処理により、セキュリティ装置20、30間において共通鍵k(x)の配送が行われたことになるが、次に、このセキュリティ装置20、30それぞれで算出された共通鍵k(x)の同一性、及び上述のステップS5、S9、S12、S13の処理において、前述のイデアル集合Iによって剰余演算を行った理由について説明する。
前述のように、イデアル集合Iは、イデアルであって、該イデアルに対して行われた、整数係数の多項式の変数を任意の整数値だけ加算した該多項式の演算結果が、再び、該イデアルとなる集合である。この場合、この整数係数の多項式をg(x)、任意の整数値をkとすると、このイデアル集合I に対し、g(x)∈Iならばg(x+k)∈Iであるという関係が満たされることとなる。
【0047】
ここで、w(x)≡r(x)modIとする。つまり、g(x)∈Iとp(x)∈Z[x]が存在して、w(x)=p(x)・g(x)+r(x)と書けるとする。なお、ここで、Z[x]は、整数係数の多項式全体の集合を表す。この式の両辺について、xをx+kで置き換えると、w(x+k)=p(x+k)・g(x+k)+r(x+k)となるが、上述のように、g(x+k)∈Iが満たされるため、w(x+k)≡r(x+k)modIという関係も成立することになる。すなわち、前述のようなイデアル集合Iである限り、w(x)≡r(x)modIという関係が成立すれば、必ず、w(x+k)≡r(x+k)modIという関係も成立することになる。これは、このイデアル集合Iの代わりに、このイデアル集合Iでない集合で剰余演算を行った場合には、必ずしも成立しない関係である。
【0048】
さらに、このように、w(x)≡r(x)modIという関係が成立すれば、必ず、w(x+k)≡r(x+k)modIという関係も成立するということが言える場合、任意の整数kと任意の多項式w(x)について、Iでの剰余演算を行った後に、xをx+kに置き換えた多項式と、xをx+kに置き換えた後に、Iでの剰余演算を行った多項式とは同一となることが言える。
そして、前述のように、(1-δ)sは、任意の多項式g(x)に対して多項式g(x-s)を対応させる作用素を意味するため、任意の整数kと任意の多項式w(x)について、Iでの剰余演算を行った後に、xをx+kに置き換えた多項式と、xをx+kに置き換えた後に、Iでの剰余演算を行った多項式とは同一となることが言える場合、例えば、セキュリティ装置20において、b(x)を算出するためにIでの剰余演算を行った後に、セキュリティ装置30において、k(x)を算出するためにb(x)に(1-δ)uを作用させた演算結果、すなわちb(x)に対してb(x-u)を対応させた演算結果と、セキュリティ装置30において、c(x)を算出するためにa(x)に(1-δ)uを作用させた後、すなわちa(x)に対してa(x-u)を対応させた後に、セキュリティ装置20において、k(x)を算出するためにIでの剰余演算を行った結果とは等しくなることが言える。これは、sについても同様である。結果、前述したようなイデアル集合Iによって剰余演算が行われる場合、セキュリティ装置20、30それぞれで算出される共通鍵k(x)は同一となる。
【0049】
このように本形態の例では、パラメータ設定手段23、33において、第1の整数パラメータと第2の整数パラメータとの組によって構成される、第1の個数組のパラメータ(r個の整数組(s,q)、t個の整数組(u,v))を設定し、線形作用演算手段24、27、34、37において、集合(a(x)、b(x)、c(x))に対し、Σm=0 rqm(1-δ)sm或いはΣm=0 tvm(1-δ)um作用させることとしたため、秘密パラメータ(r,s,k,t,u,v)の大きさを大きくした場合であっても、鍵配送時にセキュリティ装置20、30によって行われる四則演算の回数が増大することはなく、結果、秘密パラメータの大きさに依存して計算量が増大する従来のDiffile-Hellman鍵配送方式に比べ、大幅に利便性が向上する。
【0050】
また、本形態の例では、多くの秘密パラメータ(r,s,k,t,u,v)を有する線形作用素を作用させた演算結果を用いて共通鍵の配送を行う構成としたため、第三者による共通鍵の解読が大幅に困難となり、結果、共通鍵に対する安全性が十分確保できる。
さらに、本形態の例では、線形作用演算手段24、27、34、37において、b(x)=Σn=0 deg a(x)Σm=0 r(qmsm n∂na(x)/n!)modI、c(x)=Σn=0 deg a(x)Σm=0 t(vmum n∂na(x)/n!)modI、k(x)=Σn=0 deg c(x)Σm=0 r(qmsm n∂nc(x)/n!)modI、k(x)=Σn=0 deg b(x)Σm=0 t(vmum n∂nb(x)/n!)modIの演算を行うこととしたため、秘密パラメータ(r,s,k,t,u,v)の大きさを大きくした場合であっても、鍵配送時にセキュリティ装置20、30によって行われる四則演算の回数が増大することはなく、結果、秘密パラメータの大きさに依存して計算量が増大する従来のDiffile-Hellman鍵配送方式に比べ、大幅に利便性が向上する。
【0051】
また、線形作用演算手段24、34において、b(x)=Σn=0 deg a(x)Σm=0 r(qmsm n∂na(x)/n!)modI、c(x)=Σn=0 deg a(x)Σm=0 t(vmum n∂na(x)/n!)modIの演算を行い、これらの演算結果を、演算結果開示手段25、35において通信相手に開示し、演算結果取得手段26、36において、通信相手によって演算された演算結果を取得し、線形作用演算手段27、37において、k(x)=Σn=0 deg c(x)Σm=0 r(qmsm n∂nc(x)/n!)modI、k(x)=Σn=0 deg b(x)Σm=0 t(vmum n∂nb(x)/n!)modIの演算を行うこととしたため、秘密パラメータ(r,s,k,t,u,v)の大きさを大きくした場合であっても、鍵配送時にセキュリティ装置20、30によって行われる四則演算の回数が増大することはなく、結果、秘密パラメータの大きさに依存して計算量が増大する従来のDiffile-Hellman鍵配送方式に比べ、大幅に利便性が向上する。
【0052】
さらに、本形態の例において、イデアル集合として、整数係数の多項式がなす環のイデアルであって、δを任意の多項式g(x)に対して多項式g(x)-g(x-1)を対応させる作用素とし、degf(x)をf(x)の次数とした場合における、{f(x), δf(x),δ2f(x),…,δdegf(x)f(x)}によって生成される集合であるものを用いることにより、前述のように、セキュリティ装置20、30それぞれで算出された共通鍵k(x)が同一となり、本形態における鍵配送が実質的に可能となる。
また、本形態の例では、r個の整数組(s,q)をセキュリティ装置20側で秘密に保ち、t個の整数組(u,v)をセキュリティ装置30側で秘密に保つこととしたため、共通鍵k(x)の内容を第三者に知られることなく、セキュリティ装置20、30相互間での鍵配送が可能となる。
【0053】
さらに、本形態の例では、セキュリティ装置20の擬似乱数発生手段23aによって発生させた乱数を用いてr個の整数組(s,q)を生成し、セキュリティ装置30の擬似乱数発生手段33aによって発生させた乱数を用いてt個の整数組(u,v)を生成することとしたため、r個の整数組(s,q)及びt個の整数組(u,v)の保守性が向上し、結果、共通鍵k(x)に対する安全性が向上する。
なお、本発明は上述の実施の形態に限定されるものではない。例えば、本形態では、コンピュータ上で所定のプログラムを実行させることにより、本形態におけるセキュリティ装置20、30を構成することとしたが、これらの処理内容の少なくとも一部を電子回路によってハードウェア的に実現することとしてもよい。
【0054】
また、本形態では、線形作用演算手段24、27、34、37において、a(x)、b(x)或いはc(x)に対し、線形作用素Σm=0 rqm(1-δ)sm或いはΣm=0 tvm(1-δ)umを作用させることとしたが、線形作用素を演算するために必要な整数の四則演算の回数が、多項式の次数の対数の多項式のオーダー以下となる線形作用素であれば、他の線形作用素を作用させることとしてもよい。
次に、本発明における第2の実施の形態について説明する。
ここでも、まず、本形態の概略について説明を行い、その後、本形態の詳細について説明を行っていく。
【0055】
図7は、本形態におけるセキュリティシステム50の概略を説明するための図である。
図7に例示するように、セキュリティシステム50は、セキュリティ装置51、52によって構成されており、セキュリティ装置51によって公開された公開鍵を用いてセキュリティ装置52において暗号文を生成し、この暗号文をセキュリティ装置51において復号する。
この例の場合、セキュリティ装置51は、第1の整数パラメータと第2の整数パラメータとの組によって構成される、第1の個数組のパラメータを設定する第1のパラメータ設定手段51a、及び集合に対し、第1の整数パラメータをsmとし、第2の整数パラメータをqmとし、第1の個数をrとし、δを任意の多項式g(x)に対して多項式g(x)-g(x-1)を対応させる作用素とした場合における、Σm=0 rqm(1-δ)smを作用させる線形作用演算手段51b、51cを有しており、同じく、セキュリティ装置52は、第3の整数パラメータと第4の整数パラメータとの組によって構成される、第2の個数組のパラメータを設定する第2のパラメータ設定手段52a、及び集合に対し、第3の整数パラメータをumとし、第4の整数パラメータをvmとし、第2の個数をtとし、δを任意の多項式g(x)に対して多項式g(x)-g(x-1)を対応させる作用素とした場合における、Σm=0 tvm(1-δ)umを作用させる線形作用演算手段52b、52cを有している。
【0056】
また、第1の実施の形態と同様、この例の場合、線形作用演算手段51bは、所定の多項式をa(x)とし、該多項式の次数をdeg a(x)とし、第1の整数パラメータをsmとし、第2の整数パラメータをqmとし、第1の個数をrとし、∂を微分作用素とし、イデアルであって、該イデアルに対して行われた、整数係数の多項式の変数を任意の整数値だけ加算した該多項式の演算結果が、再び、該イデアルとなる集合であるイデアル集合をIとした場合における、Σn=0 deg a(x)Σm=0 r(qmsm n∂na(x)/n!)modIの演算を行う手段となっている。この点、線形作用演算手段51c、52b、52cについても同様である。
【0057】
本形態におけるセキュリティシステム50において、セキュリティ装置51において公開鍵暗号方式による暗号化を行い、セキュリティ装置52においてその復号を行う場合、例えば、まず、セキュリティ装置51は、整数係数の多項式である共通多項式a(x)を生成し、生成した共通多項式a(x)をセキュリティ装置52に送信する。
そして、例えば次に、セキュリティ装置51は、パラメータ設定手段51aにおいてr個の整数組(s,q)を定め、線形作用演算手段51bにおいて、共通多項式a(x)に対し、線形作用素Σm=0 rqm(1-δ)smを作用させる。具体的には、例えば、パラメータ設定手段51aにおいてs=(s1,s2,…,sr)及びq=(q1,q2,…,qr)を定め、線形作用演算手段51bにおいて、Σn=0 deg a(x)Σm=0 r(qmsm n∂na(x)/n!)modIの演算を行う。
【0058】
その後、共通多項式a(x)に線形作用素Σm=0 rqm(1-δ)smを作用させた結果、すなわち、Σn=0 deg a(x)Σm=0 r(qmsm n∂na(x)/n!)modIの演算結果b(x)は、例えば、r、s、q(秘密鍵)が、これらの整数パラメータを設定したセキュリティ装置2側において秘密に保たれた状態でセキュリティ装置52に公開鍵として送信される。
一方、暗号化する平文Mが、M∈{0,1}lとなる場合、セキュリティ装置52は、パラメータ設定手段52aにおいてt個の整数組(u,v)を定め、セキュリティ装置51から送信されたb(x)に線形作用素Σm=0 tvm(1-δ)umを作用させる。具体的には、例えば、パラメータ設定手段52aにおいてu=(u1,u2,…,ur)及びv=(v1,v2,…,vr)を定め、線形作用演算手段52bにおいて、Σn=0 deg b(x)Σm=0 t(vmum n∂nb(x)/n!)modIの演算を行い、共通鍵k(x)を生成する。その後、この共通鍵k(x)に対し、多項式に値を持つハッシュ関数H(演算結果の値域が十分大きい集合となることが好ましく、この値域が、例えば、280項以上程度の元からなる集合であるものがより好ましい)を作用させ、H(k(x))∈{0,1}lを得る。そして、このH(k(x))と平文Mとの排他的論理和(H(k(x))(+)M)を暗号文として演算する。なお、図7及び本形態の説明において、「a(+)b」はaとbとの排他的論理和を意味するものとする。
【0059】
また、セキュリティ装置52は、線形作用演算手段52bにおいて、共通多項式a(x)に対し、線形作用素Σm=0 tvm(1-δ)umを作用させる。具体的には、例えば、線形作用演算手段52bにおいて、Σn=0 deg a(x)Σm=0 t(vmum n∂na(x)/n!)modIの演算を行い、その演算結果c(x)を生成する。そして、このように生成された(H(k(x))(+)M)とc(x)とは、暗号文C=(c(x),H(k(x))(+)M)として、セキュリティ装置51に送信される。
暗号文C=(c(x),H(k(x))(+)M)が送信されたセキュリティ装置51は、線形作用演算手段51cにおいて、送信されたc(x)に対し、線形作用素Σm=0 rqm(1-δ)smを作用させる。具体的には、例えば、線形作用演算手段51cにおいて、Σn=0 deg c(x)Σm=0 r(qmsm n∂nc(x)/n!)modIの演算を行い、k(x)を生成する。そして、この演算結果k(x)に対し、セキュリティ装置52で用いたものと同じハッシュ関数Hを作用させ、H(k(x))∈{0,1}lを得た後、このように得られたH(k(x))と、暗号文CのH(k(x))(+)Mとの排他的論理和を演算する
(H(k(x))(+)(H(k(x))(+)M))。ここで、前述した第1の実施の形態の場合と同様、セキュリティ装置51で生成されたk(x)と、セキュリティ装置52で生成されたk(x)とは同一となっている。そのため、このH(k(x))(+)(H(k(x))(+)M)の演算結果はMとなり、これにより、平文Mが復号されたことになる。
【0060】
ここで、以上説明した線形作用演算手段51b、51c、52b、52cにおいて行われる多項式演算に必要な四則演算の回数は、上述した演算式が示す通り、秘密パラメータ(r,s,k,t,u,v)の大きさに依存しない。したがって、秘密パラメータ(r,s,k,t,u,v)の大きさを大きくした場合であっても、暗号化或いは復号の際、セキュリティ装置51、52によって行われる四則演算の回数が増大することはなく、結果、秘密パラメータの大きさに依存して計算量が増大する従来のDiffile-Hellman鍵配送方式を応用した公開鍵暗号方式に比べ、大幅に利便性が向上する。
【0061】
次に、本形態の詳細について説明を行う。
図8は、本形態におけるセキュリティシステム60の全体構成を例示した図である。
図8に例示するように、セキュリティシステム60は、例えば、公開鍵暗号方式によって、平文の暗号化及び復号を行うセキュリティ装置70、80、及びセキュリティ装置70、80相互を通信可能なように接続するネットワーク90を有しており、このセキュリティ装置70、80は、ネットワーク90を介し、相互に情報のやり取りが可能なように、有線又は無線によって電気的に接続され、或いは接続可能な状態となっている。なお、この全体構成についての詳細は、例えば、第1の実施の形態で説明したものと同様であり、また、セキュリティ装置70、80のハードウェア構成は、例えば、第1の実施の形態におけるセキュリティ装置20、30のハードウェア構成(図3)と同様のものとする。
【0062】
図9は、図3に例示したハードウェアにおいて所定のプログラム(ソフトウェア)を実行させることにより、このハードウェアとソフトウェアとが協働した具体的手段によって構築されるセキュリティ装置70の処理機能を例示した機能ブロック図である。
図9に例示するように、この例のセキュリティ装置70は、通信相手と共用される整数係数の共通多項式を生成する共通多項式生成手段71、共通多項式生成手段71で生成した共通多項式を通信相手に開示する共通多項式開示手段72、第1の整数パラメータと第2の整数パラメータとの組によって構成される、第1の個数組のパラメータを設定するパラメータ設定手段73、通信相手と共用される整数係数の共通多項式をa(x)とし、共通多項式の次数をdeg a(x)とし、第1の整数パラメータをsmとし、第2の整数パラメータをqmとし、第1の個数をrとし、∂を微分作用素とし、イデアルであって、該イデアルに対して行われた、整数係数の多項式の変数を任意の整数値だけ加算した該多項式の演算結果が、再び、該イデアルとなる集合であるイデアル集合をIとした場合における、Σn=0 deg a(x)Σm=0 r(qmsm n∂na(x)/n!)modIの演算を行うことにより、第1の演算結果を生成する線形作用演算手段74、生成された第1の演算結果を、公開鍵として公開する公開鍵公開手段75、通信相手によって演算された第2の演算結果と、暗号文とを、取得する暗号文取得手段76、復号を行う復号手段77、セキュリティ装置70全体を制御する制御手段78、及び各種の情報を記憶する記憶手段79を処理機能として有している。
【0063】
また、この例では、共通多項式生成手段71は、SHA-1等の一方向性ハッシュ関数を用いて構成される、計算量理論に基づく擬似乱数生成アルゴリズム等を用い、擬似乱数を発生させる擬似乱数発生手段71a、及び擬似乱数発生手段71aによって発生させた擬似乱数を用いて所定の整数値を生成し、生成した整数値を係数とする共通多項式を生成する多項式生成手段71bを有しており、パラメータ設定手段73は、SHA-1等の一方向性ハッシュ関数を用いて構成される、計算量理論に基づく擬似乱数生成アルゴリズム等を用い、擬似乱数を発生させる擬似乱数発生手段73a、及び擬似乱数発生手段73aよって発生させた擬似乱数を用いて、所定の整数値を生成する整数値演算手段73bを有している。また、この例では、線形作用演算手段74は、整数演算を行う整数演算手段74a、多項式の加算演算を行う多項式加算手段74b及び多項式の微分演算を行う多項式微分手段74cを有しており、復号手段77は、暗号文取得手段76によって取得された第2の演算結果をc(x)とし、第2の演算結果の次数をdeg c(x)とし、第1の整数パラメータをsmとし、第2の整数パラメータをqmとし、第1の個数をrとし、∂を微分作用素とし、イデアル集合をIとした場合における、Σn= 0 deg c(x)Σm=0 r(qmsm n∂nc(x)/n!)modIの演算を行うことにより、第3の演算結果を生成する線形作用演算手段77a、セキュリティ装置80と共通のハッシュ関数Hの演算を行うハッシュ関数演算手段77b、及び生成された第3の演算結果と、暗号文と、の排他的論理和を演算する排他的論理和演算手段77cを有している。さらに、この例における線形作用演算手段77aは、整数演算を行う整数演算手段77aa、多項式の加算演算を行う多項式加算手段77ab及び多項式の微分演算を行う多項式微分手段77acを有している。
【0064】
なお、第2の実施の形態における例では、多項式に値を持つハッシュ関数Hは、例えば、Z(x)/I1→{0,1}lの演算を行う関数である。ここで、Z(x)/I1とは、整数係数の多項式環Z(x)とそのイデアルI1とが与えられ、p,q∈Z(x)についてp-q∈I1を満たす場合に、このpとqとを同一の類とみなしてZ(x)の元を類別し、その類別された類ひとつひとつを新たに元とみなした場合に作られる集合(Z(x)のIによる剰余環)を意味する。また、前述のように、ハッシュ関数Hは、その演算結果の値域が十分大きい集合となることが望ましいが、このようなハッシュ関数Hの構成は、例えば、ブックバーガーのアルゴリズム等を用い、Z(x)のイデアルI1についてグレブナー基底を1つ定め、このグレブナー基底により、Z(x)/I1のそれぞれの類において、その類を代表する多項式を定めることによって行う。なお、ここでZ[x]のイデアルI1のグレブナー基底は、I1を生成する有限集合G={f1(x), f2(x),…,fn(x)}であって、任意のf(x)∈Z(x)について、f(x)をf1(x)で割った余りをとり、次に、その余りをf2(x)で割った余りをとり、以下同様に繰り返した後、最後にfn(x)で割った余りをとった結果が、f1(x), f2(x),…,fn(x)の順序に依存しない性質をもつ。
【0065】
また、図9に例示するように、共通多項式生成手段71、共通多項式開示手段72、パラメータ設定手段73、線形作用演算手段74、公開鍵公開手段75、暗号文取得手段76、復号手段77、及び記憶手段79は、制御手段78への情報の提供及び制御手段78からの情報の取得の少なくとも一方が可能なように構成されており、共通多項式開示手段72及び公開鍵公開手段75は、ネットワーク90への情報の提供が、暗号文取得手段76は、ネットワーク90からの情報の取得がそれぞれ可能なように構成されている。
【0066】
図10は、図3に例示したハードウェアにおいて所定のプログラム(ソフトウェア)を実行させることにより、このハードウェアとソフトウェアとが協働した具体的手段によって構築されるセキュリティ装置80の処理機能を例示した機能ブロック図である。
図10に例示するように、この例のセキュリティ装置80は、通信相手と共用される整数係数の共通多項式を受信する共通多項式取得手段82、第3の整数パラメータと第4の整数パラメータとの組によって構成される、第2の個数組のパラメータを設定するパラメータ設定手段83、通信相手によって公開された第1の演算結果を、公開鍵として取得する公開鍵取得手段84、暗号文の生成を行う暗号文生成手段85、通信相手と共用される整数係数の共通多項式をa(x)とし、共通多項式の次数をdeg a(x)とし、第1の整数パラメータをumとし、第2の整数パラメータをvmとし、第1の個数をtとし、∂を微分作用素とし、イデアル集合をIとした場合における、Σn=0 deg a(x)Σm=0 t(vmum n∂na(x)/n!)modIの演算を行うことにより、第3の演算結果を生成する線形作用演算手段86、以下に述べる排他的論理和演算手段85cによって演算された暗号文と、線形作用演算手段85aによって生成された第3の演算結果とを開示する暗号文開示手段87、セキュリティ装置80全体を制御する制御手段88、及び各種の情報を記憶する記憶手段89を処理機能として有している。
【0067】
また、この例では、パラメータ設定手段83は、SHA-1等の一方向性ハッシュ関数を用いて構成される、計算量理論に基づく擬似乱数生成アルゴリズム等を用い、擬似乱数を発生させる擬似乱数発生手段83a、及び擬似乱数発生手段83aよって発生させた擬似乱数を用いて、所定の整数値を生成する整数値演算手段83bを有している。また、この例では、暗号文生成手段85は、公開鍵取得手段84によって取得された第1の演算結果をb(x)とし、第1の演算結果の次数をdeg b(x)とし、第1の整数パラメータをumとし、第2の整数パラメータをvmとし、第1の個数をtとし、∂を微分作用素とし、イデアルであって、該イデアルに対して行われた、整数係数の多項式の変数を任意の整数値だけ加算した該多項式の演算結果が、再び、該イデアルとなる集合であるイデアル集合をIとした場合における、Σn=0 deg b(x)Σm=0 t(vmum n∂nb(x)/n!)modIの演算を行うことにより、第2の演算結果を生成する線形作用演算手段85a、セキュリティ装置70と共通のハッシュ関数Hの演算を行うハッシュ関数演算手段85b、及び生成された第2の演算結果と、通信内容である平文との排他的論理和を、暗号文として演算する排他的論理和演算手段85cを有しており、さらに線形作用演算手段85aは、整数演算を行う整数演算手段85aa、多項式の加算演算を行う多項式加算手段85ab及び多項式の微分演算を行う多項式微分手段85acを、線形作用演算手段86は、整数演算手段86a、多項式加算手段86b及び多項式微分手段86cをそれぞれ有している。
【0068】
また、図10に例示するように、共通多項式取得手段82、パラメータ設定手段83、公開鍵取得手段84、暗号文生成手段85、線形作用演算手段86、暗号文開示手段87、及び記憶手段89は、制御手段88への情報の提供及び制御手段88からの情報の取得の少なくとも一方が可能なように構成されており、暗号文開示手段87は、ネットワーク90への情報の提供が、共通多項式取得手段82及び公開鍵取得手段84は、ネットワーク90からの情報の取得がそれぞれ可能なように構成されている。
【0069】
次に、本形態におけるセキュリティシステム60、セキュリティ装置70、80の処理動作について説明する。
図11は、本形態におけるセキュリティシステム60、セキュリティ装置70、80の処理動作の一例を説明するためのフローチャートである。このフローチャートにおける実線の矢印は、セキュリティシステム60全体における一連の処理の流れを例示したものであり、破線の矢印は、セキュリティシステム60全体における一連の処理の流れと、セキュリティ装置70、80それぞれ単体での処理の流れが異なる部分について、セキュリティ装置70、80単体での処理の流れを例示したものである。なお、ここでは、説明を容易にするため、便宜的に図11のような処理の流れにそって処理動作の説明を行うが、セキュリティ装置70、80それぞれが、このフローチャートの流れと異なる順序で処理を行うこととしてもよく、また、セキュリティ装置70、80が、平行して、同時にそれぞれの処理を行うこととしてもよい。
【0070】
以下、このフローチャートに沿って説明を行う。
ステップS20:
本ステップでは、セキュリティ装置70において、共通多項式a(x)の設定を行う。
この共通多項式a(x)の設定は、例えば、セキュリティ装置70の共通多項式生成手段71において行われる。具体的には、例えば、まず、擬似乱数発生手段71aにおいて、SHA-1等の一方向性ハッシュ関数を用いて構成される、計算量理論に基づく擬似乱数生成アルゴリズム等を用いて擬似乱数を発生させ、次に、多項式生成手段71bにおいて、この擬似乱数を所定の桁数に加工し、さらに、所定の値を減算すること等により、多項式の整数係数を設定し、この整数係数を用いて共通多項式a(x)の設定を行う。
このように設定された共通多項式a(x)を特定するための情報は、例えば、制御手段78に送られ、制御手段78は、送られた共通多項式a(x)を特定するための情報を、共通多項式開示手段72及び記憶手段79に送る。記憶手段79に送られた共通多項式a(x)を特定するための情報は、例えば、記憶手段79に記録され、共通多項式開示手段72に送られた共通多項式a(x)を特定するための情報は、次のステップS21の処理に使用される。
【0071】
ステップS21:
本ステップでは、セキュリティ装置70において、共通多項式a(x)の送信を行う。
共通多項式a(x)の送信は、例えば、セキュリティ装置70の共通多項式開示手段72によって行われる。具体的には、例えば、セキュリティ装置70からセキュリティ装置80宛の電子メールに、この共通多項式a(x)を特定するための情報を提示し、或いは、セキュリティ装置80が閲覧可能なインターネット上のホームページに、この共通多項式a(x)を特定するための情報をアップロードすることによって行われる。
このように共通多項式a(x)の送信が行われると、次に、ステップS22の処理に移る。
【0072】
ステップS22:
本ステップでは、セキュリティ装置80において、共通多項式a(x)の受信を行う。
共通多項式a(x)の受信は、例えば、セキュリティ装置80の共通多項式取得手段82において行われる。具体的には、例えば、セキュリティ装置80が、インターネット上のメールサーバにアクセスし、セキュリティ装置70から送られたセキュリティ装置80宛の電子メールを受け取ることにより、または、共通多項式a(x)を特定するための情報がアップロードされたインターネット上のホームページにアクセスすること等により行われる。
このように受信された共通多項式a(x)を特定するための情報は、例えば、制御手段88に送られ、制御手段88は、送られた共通多項式a(x)を特定するための情報を記憶手段89に送る。記憶手段89に送られた共通多項式a(x)を特定するための情報は、例えば、記憶手段89に記憶され、次のステップS23の処理に移る。
【0073】
ステップS23:
本ステップでは、セキュリティ装置70において、r個の整数組(s,q)の設定を行う。
r個の整数組(s,q)の設定は、例えば、セキュリティ装置70のパラメータ設定手段73によって行われる。具体的には、例えば、まず、擬似乱数発生手段73aにおいて、SHA-1等の一方向性ハッシュ関数を用いて構成される、計算量理論に基づく擬似乱数生成アルゴリズム等を用いて擬似乱数を発生させ、次に、整数値演算手段73bにおいて、この擬似乱数を所定の桁数に加工し、さらに、所定の値を減算すること等により、所定のr個の整数組(s,q)、すなわち、s=(s1,s2,…,sr)とq=(q1,q2,…,qr)とを設定する。
設定されたr個の整数組(s,q)を特定するための情報は、例えば、制御手段78に送られ、制御手段78は、送られたr個の整数組(s,q)を特定するための情報を、線形作用演算手段74及び記憶手段79に送る。記憶手段79に送られたr個の整数組(s,q)を特定するための情報は、例えば、記憶手段79に記憶され、線形作用演算手段74に送られたr個の整数組(s,q)を特定するための情報は、ステップS24の処理に使用される。
【0074】
ステップS24:
本ステップでは、セキュリティ装置70において、多項式の演算を行う。
本ステップにおける多項式の演算は、例えば、セキュリティ装置70の線形作用演算手段74において行われる。この多項式の演算を行う場合、例えば、まず、制御手段78は、ステップS20において記憶手段79に記憶された共通多項式a(x)を特定するための情報を読み込み、その情報を線形作用演算手段74に送る。この情報が送られた線形作用演算手段74は、この情報とステップS23の処理で送られた情報とを用いた演算により、共通多項式a(x)にΣm=0 rqm(1-δ)smを作用させる処理を行う。この例の場合、この共通多項式a(x)にΣm=0 rqm(1-δ)smを作用させる具体的な演算方法として、線形作用演算手段74が有する整数演算手段74a、多項式加算手段74b及び多項式微分手段74cを用い、b(x)=Σn=0 deg a(x)Σm=0 r(qmsm n∂na(x)/n!)modIの演算を行う。
このような演算の結果を示す多項式b(x)を特定するための情報は、例えば、制御手段78に送られ、制御手段78は、送られた多項式b(x)を特定するための情報を、公開鍵公開手段75に送る。公開鍵公開手段75にこの情報が送られると、次に、ステップS25の処理に移る。
【0075】
ステップS25:
本ステップでは、セキュリティ装置70において、多項式b(x)を公開鍵として送信する。
多項式b(x)の送信は、例えば、セキュリティ装置70の公開鍵公開手段75によって行われるが、この際、r個の整数組(s,q)は開示されず、このr個の整数組(s,q)をセキュリティ装置70側で秘密に保った状態で行われる。具体的には、例えば、セキュリティ装置70からセキュリティ装置80宛の電子メールに、この多項式b(x)を特定するための情報を、r個の整数組(s,q)を特定するための情報を開示することなく提示し、或いは、セキュリティ装置80が閲覧可能なインターネット上のホームページに、この多項式b(x)を特定するための情報を、r個の整数組(s,q)を特定するための情報を開示することなくアップロードすることによって行われる。
このように多項式b(x)の送信が行われると、次に、ステップS26の処理に移る。
【0076】
ステップS26:
本ステップでは、セキュリティ装置80において、多項式b(x)を受信する。
多項式b(x)の受信は、例えば、セキュリティ装置80の演算結果取得手段86において行われる。具体的には、例えば、セキュリティ装置80が、インターネット上のメールサーバにアクセスし、セキュリティ装置70から送られたセキュリティ装置80宛の電子メールを受け取ることにより、または、多項式b(x)の演算結果を特定するための情報がアップロードされたインターネット上のホームページにアクセスすること等により行われる。
このように受信された多項式b(x)を特定するための情報は、例えば、制御手段88に送られ、制御手段88は、送られた多項式b(x)を特定するための情報を記憶手段89に送る。記憶手段89に送られた多項式b(x)を特定するための情報は、例えば、記憶手段89に記憶され、次のステップS27の処理に移る。
【0077】
ステップS27:
本ステップでは、セキュリティ装置80において、t個の整数組(u,v)の設定を行う。
t個の整数組(u,v)の設定は、例えば、セキュリティ装置80のパラメータ設定手段83によって行われる。具体的には、例えば、まず、擬似乱数発生手段83aにおいて、SHA-1等の一方向性ハッシュ関数を用いて構成される、計算量理論に基づく擬似乱数生成アルゴリズム等を用いて擬似乱数を発生させ、次に、整数値演算手段83bにおいて、この擬似乱数を所定の桁数に加工し、さらに、所定の値を減算すること等により、所定のt個の整数組(u,v)、すなわち、u=(u1,u2,…,ut)とv=(v1,v2,…,vt)とを設定する。
設定されたt個の整数組(u,v)を特定するための情報は、例えば、制御手段88に送られ、制御手段88は、送られたt個の整数組(u,v)を特定するための情報を、線形作用演算手段84及び記憶手段89に送る。記憶手段89に送られたt個の整数組(u,v)を特定するための情報は、例えば、記憶手段89に記憶され、線形作用演算手段84に送られたt個の整数組(u,v)を特定するための情報は、ステップS28の処理に使用される。
【0078】
ステップS28:
本ステップでは、セキュリティ装置80において、多項式の演算を行う。
本ステップにおける多項式の演算は、例えば、セキュリティ装置80の線形作用演算手段86において行われる。この多項式の演算を行う場合、例えば、まず、制御手段88は、ステップS3において記憶手段89に記憶された共通多項式a(x)を特定するための情報を読み込み、その情報を線形作用演算手段86に送る。この情報が送られた線形作用演算手段86は、この情報とステップS27の処理で送られた情報とを用いた演算により、共通多項式a(x)にΣm=0 tvm(1-δ)umを作用させる処理を行う。この例の場合、この共通多項式a(x)にΣm=0 rvm(1-δ)umを作用させる具体的な演算方法として、線形作用演算手段86が有する整数演算手段86a、多項式加算手段86b及び多項式微分手段86cを用い、c(x)=Σn=0 deg a(x)Σm=0 t(vmum n∂na(x)/n!)modIの演算を行う。
このような演算の結果を示す多項式c(x)を特定するための情報は、例えば、制御手段88に送られ、制御手段88は、送られた多項式c(x)を特定するための情報を、記憶手段89に送る。記憶手段89に送られた多項式c(x)を特定するための情報は、例えば、記憶手段89に記憶され、次のステップS29の処理に移る。
【0079】
ステップS29:
本ステップでは、セキュリティ装置80において、演算によって暗号文Cを生成する。
暗号文Cの演算は、例えば、セキュリティ装置80の暗号文生成手段85において行われる。なお、ここでは、平文M∈{0,1}lを暗号化する場合を例にとって説明する。
暗号文Cの演算を行う場合、まず、セキュリティ装置80は、例えば、制御手段88によって、ステップS26において記憶手段89に記憶された多項式b(x)を特定するための情報、及びステップS26において記憶手段89に記憶されたt個の整数組(u,v)を特定するための情報を読み込み、これらの情報を暗号文生成手段85に送る。これらの情報が送られた暗号文生成手段85は、例えば、線形作用演算手段85aにおいて、多項式b(x)にΣm=0 tvm(1-δ)umを作用させる処理を行う。この例の場合、この多項式b(x)にΣm=0 rvm(1-δ)umを作用させる具体的な演算方法として、線形作用演算手段85aが有する整数演算手段85aa、多項式加算手段85ab及び多項式微分手段85acを用い、k(x)=Σn=0 deg b(x)Σm=0 t(vmum n∂nb(x)/n!)modIの演算を行う。
【0080】
次に、例えば、ハッシュ関数演算手段85bによって、この演算結果k(x)に対し、ハッシュ関数Hを作用させ(H(k(x))∈{0,1}l)、排他的論理和演算手段85cによって、この演算結果H(k(x))と平文Mとの排他的論理和(H(k(x))(+)M)を暗号文として演算する。その後、暗号文生成手段85は、このように演算された(H(k(x))(+)M)と、ステップS28において演算されたc(x)とを用い、暗号文C=(c(x),H(k(x))(+)M)を生成する。生成された暗号文Cは、例えば、制御手段88に送られ、制御手段88は、送られた暗号文Cを暗号文開示手段87に送る。暗号文Cが暗号文開示手段87に送られると、次に、ステップS30の処理に移る。
【0081】
ステップS30:
本ステップでは、セキュリティ装置80において、暗号文Cを送信する。
暗号文Cの送信は、例えば、セキュリティ装置80の暗号文開示手段87によって行われるが、この際、t個の整数組(u,v)は開示されず、このt個の整数組(u,v)をセキュリティ装置80側で秘密に保った状態で行われる。具体的には、例えば、セキュリティ装置80からセキュリティ装置70宛の電子メールに、この暗号文Cを特定するための情報を、t個の整数組(u,v)を特定するための情報を開示することなく提示し、或いは、セキュリティ装置70が閲覧可能なインターネット上のホームページに、この暗号文Cを特定するための情報を、t個の整数組(u,v)を特定するための情報を開示することなくアップロードすることによって行われる。
このように暗号文Cの送信が行われると、次に、ステップS31の処理に移る。
【0082】
ステップS31:
本ステップでは、セキュリティ装置70において、暗号文Cを受信する。
暗号文Cの受信は、例えば、セキュリティ装置70の暗号文取得手段76において行われる。具体的には、例えば、セキュリティ装置70が、インターネット上のメールサーバにアクセスし、セキュリティ装置80から送られたセキュリティ装置70宛の電子メールを受け取ることにより、または、暗号文Cを特定するための情報がアップロードされたインターネット上のホームページにアクセスすること等により行われる。
このように受信された暗号文Cを特定するための情報は、例えば、制御手段78に送られ、制御手段78は、送られた暗号文Cを特定するための情報を復号手段77に送り、次のステップS32の処理に移る。
【0083】
ステップS32:
本ステップでは、セキュリティ装置70において、暗号文Cの復号を行う。
暗号文Cの復号は、例えば、セキュリティ装置70の復号手段77において行われる。具体的には、例えばまず、復号手段77の線形作用演算手段77aにおいて、ステップS31で受信した暗号文C=(c(x),H(k(x))(+)M)を構成する多項式c(x)にΣm=0 rqm(1-δ)smを作用させる処理を行う。この例の場合、この多項式c(x)にΣm=0 rqm(1-δ)smを作用させる具体的な演算方法として、線形作用演算手段77aが有する整数演算手段77aa、多項式加算手段77ab及び多項式微分手段77acを用い、k(x)=Σn=0 deg c(x)Σm=0 r(qmsm n∂nc(x)/n!)modIの演算を行う。
この演算が行われると、例えば次に、この演算結果k(x)に対し、ハッシュ関数演算手段77bによって、セキュリティ装置80で用いたものと同じハッシュ関数Hを作用させ、H(k(x))∈{0,1}lを得る。その後、例えば、排他的論理和演算手段77cにおいて、このように得られたH(k(x))とステップS31で受信した暗号文C=(c(x),H(k(x))(+)M)を構成するH(k(x))(+)Mとの排他的論理和を演算する(H(k(x))(+)H(k(x))(+)M)。これにより、前述のように平文Mの復号が行われたことになる。
【0084】
このように本形態の例では、パラメータ設定手段73、83において、第1の整数パラメータと第2の整数パラメータとの組によって構成される、第1の個数組のパラメータ(r個の整数組(s,q)、t個の整数組(u,v))を設定し、線形作用演算手段74、77a、85a、86において、集合(a(x)、b(x)、c(x))に対し、Σm=0 rqm(1-δ)sm或いはΣm=0 tvm(1-δ)um作用させることとしたため、秘密パラメータ(r,s,k,t,u,v)の大きさを大きくした場合であっても、公開鍵生成時、平文の暗号化時及び暗号文の復号時において、セキュリティ装置70、80によって行われる四則演算の回数が増大することはなく、結果、秘密パラメータの大きさに依存して計算量が増大する従来のDiffile-Hellman鍵配送方式を応用した公開鍵暗号方式に比べ、大幅に利便性が向上する。
【0085】
また、本形態の例では、多くの秘密パラメータ(r,s,k,t,u,v)を有する線形作用素を作用させることにより、公開鍵の生成、平文の暗号化及び暗号文の復号を行うこととしたため、第三者による暗号文Cの解読が非常に困難となり、結果、共通鍵に対する安全性が十分確保できる。
さらに、本形態の例では、線形作用演算手段74、77、85a、86において、b(x)=Σn=0 deg a(x)Σm=0 r(qmsm n∂na(x)/n!)modI、c(x)=Σn=0 deg a(x)Σm=0 t(vmum n∂na(x)/n!)modI、k(x)=Σn=0 deg c(x)Σm=0 r(qmsm n∂nc(x)/n!)modI、k(x)=Σn=0 deg b(x)Σm=0 t(vmum n∂nb(x)/n!)modIの演算を行うこととしたため、秘密パラメータ(r,s,k,t,u,v)の大きさを大きくした場合であっても、公開鍵生成時、平文の暗号化時及び暗号文の復号時にセキュリティ装置70、80によって行われる四則演算の回数が増大することはなく、結果、秘密パラメータの大きさに依存して計算量が増大する従来のDiffile-Hellman鍵配送方式を応用した公開鍵暗号方式に比べ、大幅に利便性が向上する。
【0086】
また、本形態の例におけるセキュリティ装置70では、線形作用演算手段74において、Σn=0 deg a(x)Σm=0 r(qmsm n∂na(x)/n!)modIの演算を行うことにより、第1の演算結果である多項式b(x)を生成し、公開鍵公開手段75において、多項式b(x)を公開鍵として公開し、暗号文取得手段76において、セキュリティ装置80によって演算された第2の演算結果である多項式c(x)と、暗号文(H(k(x))(+)M))とを取得し、線形作用演算手段77aにおいて、Σn=0 deg c(x)Σm=0 r(qmsm n∂nc(x)/n!)modIの演算を行うことにより、第3の演算結果である多項式k(x)を生成し、排他的論理和演算手段77cにおいて、k(x)と、H(k(x))(+)M)と、の排他的論理和を演算することとしたため、秘密パラメータ(r,s,k,t,u,v)の大きさを大きくした場合であっても、公開鍵生成時、平文の暗号化時及び暗号文の復号時において、セキュリティ装置70、80によって行われる四則演算の回数が増大することはなく、結果、秘密パラメータの大きさに依存して計算量が増大する従来のDiffile-Hellman鍵配送方式を応用した公開鍵暗号方式に比べ、大幅に利便性が向上する。
【0087】
さらに、本形態の例におけるセキュリティ装置80では、公開鍵取得手段84において、セキュリティ装置70によって公開された第1の演算結果である多項式b(x)を公開鍵として取得し、線形作用演算手段85aにおいて、Σn=0 deg b(x)Σm=0 t(vmum n∂nb(x)/n!)modIの演算を行うことにより、第2の演算結果である多項式k(x)を生成し、排他的論理和演算手段85cにおいて、多項式k(x)と通信内容である平文Mとの排他的論理和を暗号文として演算し(H(k(x))(+)M)、線形作用演算手段86において、Σn=0 deg a(x)Σm=0 t(vmum n∂na(x)/n!)modIの演算を行うことにより、第3の演算結果である多項式c(x)を生成し、暗号文開示手段87において、排他的論理和演算手段85cによって演算された暗号文(H(k(x))(+)M)と、線形作用演算手段86によって生成された多項式c(x)とを開示することとしたため、秘密パラメータ(r,s,k,t,u,v)の大きさを大きくした場合であっても、公開鍵生成時、平文の暗号化時及び暗号文の復号時において、セキュリティ装置70、80によって行われる四則演算の回数が増大することはなく、結果、秘密パラメータの大きさに依存して計算量が増大する従来のDiffile-Hellman鍵配送方式を応用した公開鍵暗号方式に比べ、大幅に利便性が向上する。
【0088】
また、本形態の例において、イデアル集合として、整数係数の多項式がなす環のイデアルであって、δを任意の多項式g(x)に対して多項式g(x)-g(x-1)を対応させる作用素とし、degf(x)をf(x)の次数とした場合における、{f(x), δf(x),δ2f(x),…,δdegf(x)f(x)}によって生成される集合であるものを用いることにより、前述した第1の実施の形態の場合と同様、セキュリティ装置70、80それぞれで演算した多項式k(x)は同一となり、これらに対して同一のハッシュ関数を作用させた結果であるH(k(x)) も同一となるため、本形態における復号が実質的に可能となる。
【0089】
さらに、本形態の例では、r個の整数組(s,q)をセキュリティ装置70側で秘密に保ち、t個の整数組(u,v)をセキュリティ装置80側で秘密に保つこととしたため、復号のためのパラメータの内容を第三者に知られることなく、セキュリティ装置70、80相互間での復号が可能となる。
また、本形態の例では、セキュリティ装置70の擬似乱数発生手段73aによって発生させた乱数を用いてr個の整数組(s,q)を生成し、セキュリティ装置80の擬似乱数発生手段83aによって発生させた乱数を用いてt個の整数組(u,v)を生成することとしたため、r個の整数組(s,q)及びt個の整数組(u,v)の保守性が向上し、結果、暗号に対する安全性が向上する。
【0090】
なお、本発明は上述の実施の形態に限定されるものではない。例えば、本形態では、コンピュータ上で所定のプログラムを実行させることにより、本形態におけるセキュリティ装置70、80を構成することとしたが、これらの処理内容の少なくとも一部を電子回路によってハードウェア的に実現することとしてもよい。
また、本形態では、線形作用素演算手段74、77a、85a、86において、a(x)、b(x)或いはc(x)に対し、線形作用素Σm=0 rqm(1-δ)sm或いはΣm=0 tvm(1-δ)umを作用させることとしたが、線形作用素を演算するために必要な整数の四則演算の回数が、多項式の次数の対数の多項式のオーダー以下となる線形作用素であれば、他の線形作用素を作用させることとしてもよい。
【0091】
次に、本発明における第3の実施の形態について説明する。
ここでも、まず、本形態の概略について説明を行い、その後、本形態の詳細について説明を行っていく。
図12は、本形態におけるセキュリティシステム100の概略を説明するための図である。
図12に例示するように、セキュリティシステム100は、セキュリティ装置101、102によって構成されており、セキュリティ装置101において生成されたデジタル署名を、セキュリティ装置102において検証する。
【0092】
この例の場合、セキュリティ装置101は、第1の整数パラメータと第2の整数パラメータとの組によって構成される、第1の個数組のパラメータを設定する第1のパラメータ設定手段101a、第3の整数パラメータと第4の整数パラメータとの組によって構成される、第2の個数組のパラメータを設定する第2のパラメータ設定手段101b、及び集合に対し、第1の整数パラメータをsmとし、第2の整数パラメータをqmとし、第1の個数をrとし、δを任意の多項式g(x)に対して多項式g(x)-g(x-1)を対応させる作用素とした場合における、Σm=0 rqm(1-δ)smを作用させる線形作用演算手段101c、101dを有している。
【0093】
また、第1の実施の形態と同様、この例の場合、線形作用演算手段101cは、所定の多項式をa(x)とし、該多項式の次数をdeg a(x)とし、第1の整数パラメータをsmとし、第2の整数パラメータをqmとし、第1の個数をrとし、∂を微分作用素とし、イデアルであって、該イデアルに対して行われた、整数係数の多項式の変数を任意の整数値だけ加算した該多項式の演算結果が、再び、該イデアルとなる集合であるイデアル集合をIとした場合における、Σn=0 deg a(x)Σm=0 r(qmsm n∂na(x)/n!)modIの演算を行う手段となっている。この点、線形作用演算手段101dについても同様である。
【0094】
本形態におけるセキュリティシステム100において、デジタル署名とその検証を行う場合、例えばまず、セキュリティ装置101は、セキュリティ装置102と共通の整数係数の多項式である共通多項式a(x)、及びセキュリティ装置102と共通の多項式であるg(x)を生成し、パラメータ設定手段101aにおいてr個の整数組(s,q)、具体的にはs=(s1,s2,…,sr)及びq=(q1,q2,…,qr)を設定する。
その後、例えば、線形作用演算手段101cにおいて、共通多項式a(x)に対し、線形作用素Σm=0 rqm(1-δ)smを作用させ、具体的には、例えば、線形作用演算手段51bにおいて、Σn=0 deg a(x)Σm=0 r(qmsm n∂na(x)/n!)modIの演算を行う。この共通多項式a(x)に線形作用素Σm=0 rqm(1-δ)smを作用させた結果、すなわち、Σn=0 deg a(x)Σm=0 r(qmsm n∂na(x)/n!)modIの演算結果b(x)は、例えば、r、s、q(秘密鍵)が、これらの整数パラメータを設定したセキュリティ装置101側において秘密に保たれた状態でセキュリティ装置102に公開鍵として送信される。
【0095】
次に、例えば、セキュリティ装置101は、パラメータ設定手段101bにおいてt個の整数組(u,v)、具体的にはu=(u1,u2,…,ut)及びv=(v1,v2,…,vt)を設定し、線形作用演算手段101dにおいて、共通多項式a(x)に対して線形作用素Σm=0 tvm(1-δ)umを作用させる。この例の場合、具体的には、例えば、線形作用演算手段101dにおいて、Σn=0 deg a(x)Σm=0 t(vmum n∂na(x)/n!)modIの演算を行い、その演算結果c(x)を算出する。さらに、セキュリティ装置101は、設定したr個の整数組(s,q)、t個の整数組(u,v)及び多項式c(x)を用い、Σm=0 tvmxum+Σm=0 rqmxsmH(M,c(x))の演算を行い、その演算結果d(x)を算出する。なお、ここでMは署名が行われるメッセージを意味し、Hはセキュリティ装置101、102で共通に使用される多項式に値を持つハッシュ関数を意味する。このように生成された多項式c(x)、d(x)は、多項式対(c(x),d(x))としてセキュリティ装置102に送信され、これが署名として機能することになる。なお、この際、r個の整数組(s,q)及びt個の整数組(u,v)はセキュリティ装置101側で秘密に保たれ、これらのパラメータr,s,q,u,vは一般には公開されない。
【0096】
一方、署名としての多項式対(S1,S2)が送信されたセキュリティ装置102は、この署名が有効なものであるか否か、すなわち、S1=c(x)かつS2=d(x)を満たすか否かの検証を行う。この検証を行うため、セキュリティ装置102は、セキュリティ装置102と共通の整数係数の多項式である共通多項式a(x)、及びセキュリティ装置102と共通の多項式であるg(x)を生成し、V(x)= S2(1-δ)a(x)-H(M,S1(x))(1-δ)b(x)-S1(x)modIの演算を行う。ここで、この署名が有効なものである場合には、S1=c(x)かつS2=d(x)を満たすことになるため、V(x)=d(x)(1-δ)a(x)-H(M,c(x))(1-δ)b(x)- c(x)=(Σm=0 tvmxum+Σm=0 rqmxsmH(M,c(x)))(1-δ)a(x)-H(M,c(x))(1-δ)b(x)- c(x)=(Σm=0 tvm(1-δ)um+Σm=0 rqm(1-δ)smH(M,c(x))(1-δ))a(x)-H(M,c(x))(1-δ)b(x)-c(x)が成立し、さらに、多項式b(x)、c(x)の定義から、V(x)=Σm=0 tvm(1-δ)uma(x)+Σm=0 rqm(1-δ)smH(M,c(x))(1-δ)a(x)-H(M,c(x))(1-δ)Σm=0 rqm(1-δ)sma(x)-Σm=0 tvm(1-δ)uma(x)=0が成立する。そのため、このV(x)=0という演算結果より、この署名が有効であることが判断でき、この場合、セキュリティ装置102は署名が有効である旨の出力を行う。一方、前述のようにd(x)=Σm=0 tvmxum+Σm=0 rqmxsmH(M,c(x))を構成するパラメータr,s,q,u,vは、セキュリティ装置101側で秘密に保たれているため、セキュリティ装置101以外では、これらのパラメータr,s,q,u,vを適切に選択できず、結果、S2=d(x)とはならず、V(x)=0ともならない。よって、このV(x)=0とならないという演算結果より、セキュリティ装置102は、検証した署名が無効であることを判断することができ、この場合、セキュリティ装置102は署名が無効である旨の出力を行う。
【0097】
ここで、以上説明した線形作用演算手段101c、101dにおいて行われる多項式演算に必要な四則演算の回数は、上述した演算式が示す通り、秘密パラメータ(r,s,k,t,u,v)の大きさに依存しない。したがって、秘密パラメータ(r,s,k,t,u,v)の大きさを大きくした場合であっても、公開鍵生成時及び署名生成時において、セキュリティ装置101によって行われる四則演算の回数が増大することはなく、結果、秘密パラメータの大きさに依存して計算量が増大する従来の離散対数問題の困難性を応用したデジタル署名方式に比べ、大幅に利便性が向上する。
【0098】
次に、本形態の詳細について説明を行う。
図13は、本形態におけるセキュリティシステム110の全体構成を例示した図である。
図13に例示するように、セキュリティシステム110は、例えば、デジタル署名を行うセキュリティ装置120、デジタル署名の検証を行うセキュリティ装置130、及びセキュリティ装置120、130相互を通信可能なように接続するネットワーク140を有しており、このセキュリティ装置120、130は、ネットワーク140を介し、相互に情報のやり取りが可能なように、有線又は無線によって電気的に接続され、或いは接続可能な状態となっている。なお、この全体構成についての詳細は、例えば、第1の実施の形態で説明したものと同様であり、また、セキュリティ装置120、130のハードウェア構成は、例えば、第1の実施の形態におけるセキュリティ装置20、30のハードウェア構成(図3)と同様のものとする。
【0099】
図14は、図3に例示したハードウェアにおいて所定のプログラム(ソフトウェア)を実行させることにより、このハードウェアとソフトウェアとが協働した具体的手段によって構築されるセキュリティ装置120の処理機能を例示した機能ブロック図である。
図14に例示するように、この例のセキュリティ装置120は、第1の整数パラメータと第2の整数パラメータとの組によって構成される、第1の個数組のパラメータを設定し、第3の整数パラメータと第4の整数パラメータとの組によって構成される、第2の個数組のパラメータを設定するパラメータ設定手段121、通信相手と共用される整数係数の共通多項式をa(x)とし、共通多項式の次数をdeg a(x)とし、第1の整数パラメータをsmとし、第2の整数パラメータをqmとし、第1の個数をrとし、∂を微分作用素とし、イデアルであって、該イデアルに対して行われた、整数係数の多項式の変数を任意の整数値だけ加算した該多項式の演算結果が、再び、該イデアルとなる集合であるイデアル集合をIとした場合における、Σn=0 deg a(x)Σm=0 r(qmsm n∂na(x)/n!)modIの演算を行うことにより、第1の演算結果を生成する線形作用演算手段122、線形作用演算手段122によって生成された第1の演算結果を公開鍵として公開する公開鍵公開手段123、署名を生成する署名生成手段124、生成された多項式対を通信相手に送信する多項式対送信手段125、セキュリティ装置130と共用される整数係数の共通多項式を生成する共通多項式生成手段126、各種の情報を記憶する情報記憶手段127、及びセキュリティ装置120全体を制御する制御手段128を処理機能として有している。
【0100】
なお、この例では、パラメータ設定手段121は、SHA-1等の一方向性ハッシュ関数を用いて構成される、計算量理論に基づく擬似乱数生成アルゴリズム等を用い、擬似乱数を発生させる擬似乱数発生手段121a、及び擬似乱数発生手段121aよって発生させた擬似乱数を用いて、所定の整数値を生成する整数値演算手段121bを有しており、線形作用演算手段122は、整数演算を行う整数演算手段122a、多項式の加算演算を行う多項式加算手段122b及び多項式の微分演算を行う多項式微分手段122cを有している。また、署名生成手段124は、共通多項式をa(x)とし、共通多項式の次数をdeg a(x)とし、第3の整数パラメータをumとし、第4の整数パラメータをvmとし、第2の個数をtとし、∂を微分作用素とし、イデアル集合をIとした場合における、Σn=0 deg a(x)Σm=0 t(vmum n∂na(x)/n!)modIの演算を行うことにより、第2の演算結果を生成する線形作用演算手段124a、セキュリティ装置130と共通のハッシュ関数Hの演算を行うハッシュ関数演算手段124b、及び第1の整数パラメータをsmとし、第2の整数パラメータをqmとし、第1の個数をrとし、第3の整数パラメータをumとし、第4の整数パラメータをvmとし、第2の個数をtとし、通信相手と共用されるハッシュ関数をHとし、平文をMとし、第2の演算結果をc(x)とした場合におけるΣm=0 tvmxum+Σm=0 rqmxsmH(M,c(x))の演算を行い、該演算結果をd(x)とした場合における多項式対(c(x),d(x))を生成する多項式対生成手段124cを有している。なお、第3の実施の形態における例では、ハッシュ関数演算手段124bによって演算されるハッシュ関数Hは、例えば、{0,1}*×Z(x)/I1→Z(x)の演算を行う関数である。さらに、線形作用演算手段124aは、整数演算を行う整数演算手段124aa、多項式の加算演算を行う多項式加算手段124ab及び多項式の微分演算を行う多項式微分手段124acを有している。
【0101】
また、図14に例示するように、パラメータ設定手段121、線形作用演算手段122、公開鍵公開手段123、署名生成手段124、多項式対送信手段125、共通多項式生成手段126、情報記憶手段127は、制御手段128への情報の提供及び制御手段128からの情報の取得の少なくとも一方が可能なように構成されており、公開鍵公開手段123及び多項式対送信手段125は、ネットワーク140への情報の提供が可能なように構成されている。
図15は、図3に例示したハードウェアにおいて所定のプログラム(ソフトウェア)を実行させることにより、このハードウェアとソフトウェアとが協働した具体的手段によって構築されるセキュリティ装置130の処理機能を例示した機能ブロック図である。
【0102】
図15に例示するように、この例のセキュリティ装置130は、通信相手によって公開された公開鍵を受信する公開鍵取得手段131、第1の多項式と第2の多項式から構成される多項式対を受信する多項式対取得手段132、通信相手と共用される整数係数の共通多項式をa(x)とし、公開鍵をb(x)とし、第1の多項式をS1とし、前期第2の多項式をS2とし、通信相手と共用される多項式に値を持つハッシュ関数をHとし、平文をMとし、δを任意の多項式g(x)に対して多項式g(x)-g(x-1)を対応させる作用素とし、イデアルであって、該イデアルに対して行われた、整数係数の多項式の変数を任意の整数値だけ加算した該多項式の演算結果が、再び、該イデアルとなる集合であるイデアル集合をIとした場合における、S2(1-δ)a(x)-H(M,S1(x))(1-δ)b(x)-S1(x)modIの演算を行い、該演算結果が0となった場合には、署名が有効である旨の出力を行い、該演算結果が0とならなかった場合には、署名は無効である旨の出力を行う署名検証手段133、セキュリティ装置120と共用される共通多項式を生成する共通多項式生成手段134、各種の情報を記憶する記憶手段135、及びセキュリティ装置130全体を制御する制御手段136を処理機能として有している。なお、この例では、署名検証手段133は、整数演算を行う整数演算手段133a、多項式の加算演算を行う多項式加算手段133b及び多項式の微分演算を行う多項式微分手段133c、セキュリティ装置120と共通のハッシュ関数Hの演算を行うハッシュ関数演算手段133d、及び多項式の比較を行う多項式比較手段133eを有している。
【0103】
また、図15に例示するように、公開鍵取得手段131、多項式対取得手段132、署名検証手段133、共通多項式生成手段134、及び記憶手段135は、制御手段136への情報の提供及び制御手段136からの情報の取得の少なくとも一方が可能なように構成されており、公開鍵取得手段131及び多項式対取得手段132は、ネットワーク140からの情報の取得が可能なように構成されている。
次に、本形態におけるセキュリティシステム110、セキュリティ装置120、130の処理動作について説明する。
【0104】
図16は、本形態におけるセキュリティシステム110、セキュリティ装置120、130の処理動作の一例を説明するためのフローチャートである。このフローチャートにおける実線の矢印は、セキュリティシステム110全体における一連の処理の流れを例示したものであり、破線の矢印は、セキュリティシステム110全体における一連の処理の流れと、セキュリティ装置120、130それぞれ単体での処理の流れが異なる部分について、セキュリティ装置120、130単体での処理の流れを例示したものである。なお、ここでは、説明を容易にするため、便宜的に図16のような処理の流れにそって処理動作の説明を行うが、セキュリティ装置120、130それぞれが、このフローチャートの流れと異なる順序で処理を行うこととしてもよく、また、セキュリティ装置120、130が、平行して、同時にそれぞれの処理を行うこととしてもよい。
【0105】
以下、このフローチャートに沿って説明を行う。
ステップS40:
本ステップでは、セキュリティ装置120において、整数係数の共通多項式a(x)、g(x)の設定を行う。
この共通多項式a(x)、g(x)の設定は、例えば、セキュリティ装置120の共通多項式生成手段126において行われる。ここでの共通多項式a(x)、g(x)の設定は、設定された共通多項式a(x)、g(x)が、セキュリティ装置130で設定される共通多項式と同一となるように行われる。具体的には、例えば、セキュリティ装置120、130が共通して保有しているハッシュ関数を用いて所定のハッシュ操作を行うことにより、セキュリティ装置120、130で共有される共通多項式a(x)、g(x)の生成を行う。
このように設定された共通多項式a(x)、g(x)を特定するための情報は、例えば、制御手段128に送られ、制御手段128は、送られた共通多項式a(x)、g(x)を特定するための情報を記憶手段127に送る。記憶手段127に送られた共通多項式a(x) 、g(x)を特定するための情報は、例えば、記憶手段127に記録される。
【0106】
ステップS41:
本ステップでは、セキュリティ装置130において、整数係数の共通多項式a(x)、g(x)の設定を行う。
この共通多項式a(x)、g(x)の設定は、例えば、セキュリティ装置130の共通多項式生成手段134において行われる。ここでの共通多項式a(x)、g(x)の設定は、設定された共通多項式a(x)、g(x)が、セキュリティ装置120で設定される共通多項式と同一となるように行われる。具体的には、例えば、セキュリティ装置120、130が共通して保有しているハッシュ関数を用いて所定のハッシュ操作を行うことにより、セキュリティ装置120、130で共有される共通多項式a(x)、g(x)の生成を行う。
このように設定された共通多項式a(x)、g(x)を特定するための情報は、例えば、制御手段136に送られ、制御手段136は、送られた共通多項式a(x)、g(x)を特定するための情報を記憶手段135に送る。記憶手段135に送られた共通多項式a(x) 、g(x)を特定するための情報は、例えば、記憶手段135に記録される。
【0107】
ステップS42:
本ステップでは、セキュリティ装置120において、r個の整数組(s,q)の設定を行う。
r個の整数組(s,q)の設定は、例えば、セキュリティ装置120のパラメータ設定手段121によって行われる。具体的には、例えば、まず、擬似乱数発生手段121aにおいて、SHA-1等の一方向性ハッシュ関数を用いて構成される、計算量理論に基づく擬似乱数生成アルゴリズム等を用いて擬似乱数を発生させ、次に、整数値演算手段121bにおいて、この擬似乱数を所定の桁数に加工し、さらに、所定の値を減算すること等により、所定のr個の整数組(s,q)、すなわち、s=(s1,s2,…,sr)とq=(q1,q2,…,qr)とを設定する。
設定されたr個の整数組(s,q)を特定するための情報は、例えば、制御手段128に送られ、制御手段128は、送られたr個の整数組(s,q)を特定するための情報を、線形作用演算手段122及び記憶手段127に送る。記憶手段127に送られたr個の整数組(s,q)を特定するための情報は、例えば、記憶手段127に記憶され、線形作用演算手段122に送られたr個の整数組(s,q)を特定するための情報は、ステップS43の処理に使用される。
【0108】
ステップS43:
本ステップでは、セキュリティ装置120において、多項式の演算を行う。
本ステップにおける多項式の演算は、例えば、セキュリティ装置120の線形作用演算手段122において行われる。この多項式の演算を行う場合、例えば、まず、制御手段128は、ステップS40において記憶手段127に記憶された共通多項式a(x)、g(x)を特定するための情報を読み込み、その情報を線形作用演算手段122に送る。この情報が送られた線形作用演算手段122は、これらの情報とステップS42の処理で送られた情報とを用いた演算により、共通多項式a(x)にΣm=0 rqm(1-δ)smを作用させる処理を行う(なお、前述のように、δは任意の多項式g(x)に対して多項式g(x)-g(x-1)を対応させる作用素である。)。この例の場合、この共通多項式a(x)にΣm=0 rqm(1-δ)smを作用させる具体的な演算方法として、線形作用演算手段122が有する整数演算手段122a、多項式加算手段122b及び多項式微分手段122cを用い、b(x)=Σn=0 deg a(x)Σm=0 r(qmsm n∂na(x)/n!)modIの演算を行う。このような演算の結果を示す多項式b(x)を特定するための情報は、例えば、制御手段128に送られ、制御手段128は、送られた多項式b(x)を特定するための情報を、公開鍵公開手段123に送る。公開鍵公開手段123にこの情報が送られると、次に、ステップS44の処理に移る。
【0109】
ステップS44:
本ステップでは、セキュリティ装置120において、演算結果である多項式b(x)を公開鍵として公開する。
多項式b(x)の公開は、例えば、セキュリティ装置120の公開鍵公開手段123によって行われるが、この際、r個の整数組(s,q)は開示されず、このr個の整数組(s,q)をセキュリティ装置120側で秘密に保った状態で行われる。具体的には、例えば、セキュリティ装置120からセキュリティ装置130宛の電子メールに、この多項式b(x)を特定するための情報を、r個の整数組(s,q)を特定するための情報を開示することなく提示し、或いは、セキュリティ装置130が閲覧可能なインターネット上のホームページに、この多項式b(x)を特定するための情報を、r個の整数組(s,q)を特定するための情報を開示することなくアップロードすることによって行われる。
このように多項式b(x)の公開が行われると、次に、ステップS45の処理に移る。
【0110】
ステップS45:
本ステップでは、セキュリティ装置130において、多項式b(x)を受信する。多項式b(x)の受信は、例えば、セキュリティ装置130の公開鍵取得手段131において行われる。具体的には、例えば、セキュリティ装置130が、インターネット上のメールサーバにアクセスし、セキュリティ装置120から送られたセキュリティ装置130宛の電子メールを受け取ることにより、または、多項式b(x)を特定するための情報がアップロードされたインターネット上のホームページにアクセスすること等により行われる。
このように受信された多項式b(x)を特定するための情報は、例えば、制御手段136に送られ、制御手段136は、送られた多項式b(x)を特定するための情報を記憶手段135に送る。記憶手段135に送られた多項式b(x)を特定するための情報は、例えば、記憶手段135に記憶される。
【0111】
ステップS46:
本ステップでは、セキュリティ装置120において、t個の整数組(u,v)の設定を行う。
t個の整数組(u,v)の設定は、例えば、セキュリティ装置120のパラメータ設定手段121により、ステップS42と同様な方法により行われ、これにより、所定のt個の整数組(u,v)、すなわち、u=(u1,u2,…,ut)とv=(v1,v2,…,vt)とを設定する。
設定されたt個の整数組(u,v)を特定するための情報は、例えば、制御手段128に送られ、制御手段128は、送られたt個の整数組(u,v)を特定するための情報を署名生成手段124及び記憶手段127に送る。記憶手段127に送られたt個の整数組(u,v)を特定するための情報は、例えば、記憶手段127に記憶され、署名生成手段124に送られたt個の整数組(u,v)を特定するための情報は、ステップS47の処理に使用される。
【0112】
ステップS47:
本ステップでは、セキュリティ装置120において、多項式の演算を行う。
本ステップにおける多項式の演算は、例えば、署名生成手段124の線形作用演算手段124aにおいて行われる。この多項式の演算を行う場合、例えば、まず、制御手段128は、ステップS40において記憶手段127に記憶された共通多項式a(x)、g(x)を特定するための情報を読み込み、その情報を署名生成手段124の線形作用演算手段124aに送る。この情報が送られた線形作用演算手段124aは、この情報とステップS46の処理で送られた情報とを用いた演算により、共通多項式a(x)にΣm=0 tvm(1-δ)umを作用させる処理を行う。この例の場合、この共通多項式a(x)にΣm=0 rvm(1-δ)umを作用させる具体的な演算方法として、線形作用演算手段124aが有する整数演算手段124aa、多項式加算手段124ab及び多項式微分手段124acを用い、c(x)=Σn=0 deg a(x)Σm=0 t(vmum n∂na(x)/n!)modIの演算を行う。
このような演算の結果を示す多項式c(x)を特定するための情報は、例えば、制御手段128に送られ、制御手段128は、送られた多項式c(x)を特定するための情報を、記憶手段127に記憶する。記憶手段127へのこの情報の記憶が行われると、次に、ステップS48の処理に移る。
【0113】
ステップS48:
本ステップでは、セキュリティ装置120において、多項式対の生成を行う。本ステップにおける多項式対の生成は、例えば、署名生成手段124のハッシュ関数演算手段124b及び多項式対生成手段124cににおいて行われる。この多項式対の生成を行う場合、例えば、まず、制御手段128において記憶手段127から多項式c(x)を特定するための情報を抽出し、この抽出した情報を署名生成手段124に送る。署名生成手段124に多項式c(x)を特定するための情報が送られると、例えば次に、ハッシュ関数演算手段124bにおいて、署名を行うメッセージM及び多項式c(x)に対し多項式に値を持つハッシュ関数Hを作用させる(H(M,c(x))。その後、例えば、ステップS42及びS46の処理において記憶手段127に記憶されているr個の整数組(s,q)及びt個の整数組(u,v)を、制御手段128によって抽出し、それらを署名生成手段124の多項式対生成手段に送る。これらの情報が送られた多項式対生成手段124cは、これらの情報と、ハッシュ関数演算手段124bの演算結果(H(M,c(x))とを用い、Σm=0 tvmxum+Σm=0 rqmxsmH(M,c(x))の演算を行い、その演算結果d(x)を算出する。
以上のように生成された多項式c(x)、d(x)は、多項式対(c(x),d(x))として制御手段128に送られ、制御手段128は送られた多項式対(c(x),d(x))を多項式対送信手段125に送る。多項式対(c(x),d(x))が多項式対送信手段125に送られると、次に、ステップS49の処理に移る。
【0114】
ステップS49:
本ステップでは、セキュリティ装置120において、多項式対(c(x),d(x))を送信する。
本ステップにおける多項式対(c(x),d(x))の送信は、例えば、多項式対送信手段125において行われるが、この際、r個の整数組(s,q)及びt個の整数組(u,v)はセキュリティ装置101側で秘密に保たれ、これらのパラメータr,s,q,u,vは開示されない。具体的には、例えば、セキュリティ装置120からセキュリティ装置130宛の電子メールに、この多項式対(c(x),d(x))を特定するための情報を、パラメータr,s,q,u,vを特定するための情報を開示することなく提示し、或いは、セキュリティ装置130が閲覧可能なインターネット上のホームページに、この多項式対(c(x),d(x))を特定するための情報を、パラメータr,s,q,u,vを特定するための情報を開示することなくアップロードすることによって行われる。このように多項式対(c(x),d(x))の送信が行われると、次に、ステップS50の処理に移る。
【0115】
ステップS50:
本ステップでは、セキュリティ装置130において多項式対(c(x),d(x))の受信を行う。
多項式対(c(x),d(x))の受信は、例えば、セキュリティ装置130の多項式対取得手段132において行われる。具体的には、例えば、セキュリティ装置130が、インターネット上のメールサーバにアクセスし、セキュリティ装置120から送られたセキュリティ装置130宛の電子メールを受け取ることにより、または、多項式対(c(x),d(x))を特定するための情報がアップロードされたインターネット上のホームページにアクセスすること等により行われる。
多項式対取得手段132において受信された多項式対(c(x),d(x))は、例えば、署名検証手段133に送られ、次のステップS51の処理に使用される。
【0116】
ステップS51:
本ステップでは、セキュリティ装置130において署名の検証を行う。
本ステップにおける署名の検証は、例えば、署名検証装置133において行われる。例えば、署名として多項式対(S1,S2)がセキュリティ装置130に送信された場合、まず、制御手段136は、ステップS41及びS45の処理によって記憶手段135に記憶されている共通多項式a(x)、g(x)及び多項式b(x)を抽出し、抽出したこれらの情報を署名検証手段133に送る。これらの情報が送られた署名検証手段133は、例えば次に、整数演算手段133a、多項式加算手段133b、多項式微分手段及びハッシュ関数演算手段133dを用い、V(x)= S2(1-δ)a(x)-H(M,S1(x))(1-δ)b(x)-S1(x)modIの演算を行い、その演算結果を多項式比較手段133eに送る。この演算結果が送られた多項式比較手段133eは、前述のように、その演算結果がV(x)=0である場合、その署名が有効であると判断して、その署名が有効である旨の出力を行い、演算結果がV(x)=0でない場合、その署名が無効であると判断して、その署名が無効である旨の出力を行う。
【0117】
このように本形態の例では、パラメータ設定手段121において、第1の整数パラメータと第2の整数パラメータとの組によって構成される、第1の個数組のパラメータ(r個の整数組(s,q)、t個の整数組(u,v))を設定し、線形作用演算手段122、124aにおいて、集合(a(x))に対し、Σm=0 rqm(1-δ)sm或いはΣm=0 tvm(1-δ)um作用させることとしたため、秘密パラメータ(r,s,k,t,u,v)の大きさを大きくした場合であっても、公開鍵生成時、署名生成時において、セキュリティ装置120によって行われる四則演算の回数が増大することはなく、結果、秘密パラメータの大きさに依存して計算量が増大する従来の離散対数問題の困難性を応用したデジタル署名方式に比べ、大幅に利便性が向上する。
【0118】
また、本形態の例では、多くの秘密パラメータ(r,s,k,t,u,v)を有する線形作用素を作用させることにより、公開鍵の生成、署名の生成を行うこととしたため、第三者による署名に対する安全性が十分確保できる。
さらに、本形態の例では、線形作用演算手段122、124aにおいて、b(x)=Σn=0 deg a(x)Σm=0 r(qmsm n∂na(x)/n!)modI、c(x)=Σn=0 deg a(x)Σm=0 t(vmum n∂na(x)/n!)modIの演算を行うこととしたため、秘密パラメータ(r,s,k,t,u,v)の大きさを大きくした場合であっても、公開鍵生成時、署名生成時において、セキュリティ装置120によって行われる四則演算の回数が増大することはなく、結果、秘密パラメータの大きさに依存して計算量が増大する従来の離散対数問題の困難性を応用したデジタル署名方式に比べ、大幅に利便性が向上する。
【0119】
また、本形態の例におけるセキュリティ装置120では、線形作用演算手段122において、Σn=0 deg a(x)Σm=0 r(qmsm n∂na(x)/n!)modIの演算を行うことにより、第1の演算結果b(x)を生成し、公開鍵公開手段123において、線形作用演算手段122によって生成された演算結果b(x)を公開鍵として公開し、線形作用演算手段124aにおいて、Σn=0 deg a(x)Σm=0 t(vmum n∂na(x)/n!)modIの演算を行うことにより、第2の演算結果c(x)を生成し、多項式対生成手段124cにおいて、Σm=0 tvmxum+Σm=0 rqmxsmH(M,c(x))の演算を行い、多項式対(c(x),d(x))を生成し、多項式対送信手段125において、生成された多項式対をセキュリティ装置130に送信することとしたため、秘密パラメータ(r,s,k,t,u,v)の大きさを大きくした場合であっても、公開鍵生成時、署名生成時において、セキュリティ装置120によって行われる四則演算の回数が増大することはなく、結果、秘密パラメータの大きさに依存して計算量が増大する従来の離散対数問題の困難性を応用したデジタル署名方式に比べ、大幅に利便性が向上する。
【0120】
さらに、本形態におけるセキュリティ装置130では、公開鍵取得手段131において、セキュリティ装置120によって公開された公開鍵である多項式b(x)を受信し、多項式対取得手段132において、第1の多項式と第2の多項式から構成される多項式対(S1,S2)を受信し、署名検証手段133において、S2(1-δ)a(x)-H(M,S1(x))(1-δ)b(x)-S1(x)modIの演算を行い、該演算結果が0となった場合には、署名が有効である旨の出力を行い、該演算結果が0とならなかった場合には、署名は無効である旨の出力を行うこととしたため、セキュリティ装置120において、秘密パラメータ(r,s,k,t,u,v)の大きさを大きくした場合であっても、公開鍵生成時、署名生成時において、セキュリティ装置120によって行われる四則演算の回数が増大することはなく、結果、秘密パラメータの大きさに依存して計算量が増大する従来の離散対数問題の困難性を応用したデジタル署名方式に比べ、大幅に利便性が向上する。
【0121】
また、本形態の例では、r個の整数組(s,q)及びt個の整数組(u,v)をセキュリティ装置120側で秘密に保つこととしたため、署名の安全性が確保される。
さらに、本形態の例では、セキュリティ装置120の擬似乱数発生手段121aによって発生させた乱数を用いてr個の整数組(s,q)及びt個の整数組(u,v)を生成することとしたため、r個の整数組(s,q)及びt個の整数組(u,v)の保守性が向上し、結果、署名に対する安全性が向上する。
なお、本発明は上述の実施の形態に限定されるものではない。例えば、本形態では、コンピュータ上で所定のプログラムを実行させることにより、本形態におけるセキュリティ装置120、130を構成することとしたが、これらの処理内容の少なくとも一部を電子回路によってハードウェア的に実現することとしてもよい。
【0122】
また、本形態では、線形作用素演算手段122、124aにおいて、a(x)、b(x)或いはc(x)に対し、線形作用素Σm=0 rqm(1-δ)sm或いはΣm=0 tvm(1-δ)umを作用させることとしたが、線形作用素を演算するために必要な整数の四則演算の回数が、多項式の次数の対数の多項式のオーダー以下となる線形作用素であれば、他の線形作用素を作用させることとしてもよい。
さらに、上述のように、第1の実施の形態、第2の実施の形態及び第3の実施の形態における処理機能は、コンピュータによって実現することができる。この場合、セキュリティ装置1、2、20、30、51、52、70、80、101、102、120、130が有すべき機能の処理内容はプログラム(セキュリティプログラム)によって記述され、このプログラムをコンピュータで実行することにより、上記処理機能をコンピュータ上で実現することができる。
【0123】
また、この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよいが、具体的には、例えば、磁気記録装置として、ハードディスク装置、フレキシブルディスク、磁気テープ等を、光ディスクとして、DVD(Digital Versatile Disc)、DVD−RAM(Random Access Memory)、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)等を、光磁気記録媒体として、MO(Magneto-Optical disc)等を用いることができる。
【0124】
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。
【0125】
【発明の効果】
以上説明したように本発明では、第1の整数パラメータと第2の整数パラメータとの組によって構成される、第1の個数組のパラメータを設定し、集合に対し、第1の整数パラメータをsmとし、第2の整数パラメータをqmとし、第1の個数をrとし、δを任意の多項式g(x)に対して多項式g(x)-g(x-1)を対応させる作用素とした場合における、Σm=0 rqm(1-δ)smを作用させることとしたため、秘密パラメータ値を大きくした場合であっても、例えば、鍵配送時、暗号・復号時、署名生成・検証時における計算量が増大することはなく、従来の離散対数問題の困難性を応用したデジタル署名方式に比べ、大幅に利便性が向上する。
【図面の簡単な説明】
【図1】セキュリティシステムの概略を説明するための図。
【図2】セキュリティシステムの全体構成を例示した図。
【図3】セキュリティ装置のハードウェア構成を例示したブロック図。
【図4】セキュリティ装置の処理機能を例示した機能ブロック図。
【図5】セキュリティ装置の処理機能を例示した機能ブロック図。
【図6】セキュリティシステム、セキュリティ装置の処理動作の一例を説明するためのフローチャート。
【図7】セキュリティシステムの概略を説明するための図。
【図8】セキュリティシステムの全体構成を例示した図。
【図9】セキュリティ装置の処理機能を例示した機能ブロック図。
【図10】セキュリティ装置の処理機能を例示した機能ブロック図。
【図11】セキュリティシステム、セキュリティ装置の処理動作の一例を説明するためのフローチャート。
【図12】セキュリティシステムの概略を説明するための図。
【図13】セキュリティシステムの全体構成を例示した図。
【図14】セキュリティ装置の処理機能を例示した機能ブロック図。
【図15】セキュリティ装置の処理機能を例示した機能ブロック図。
【図16】セキュリティシステム、セキュリティ装置の処理動作の一例を説明するためのフローチャート。
【符号の説明】
1、10、50、60、100、110 セキュリティシステム
2、3、20、30、51、52、70、80、101、102、120、130 セキュリティ装置[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a security device using a cryptographic technique, a security method, a security program for causing a computer to execute the function, and a computer-readable recording medium storing the security program, and in particular, a security apparatus using a public key cryptographic technique. The present invention relates to a security method, a security program for causing a computer to execute the function, and a computer-readable recording medium storing the security program.
[0002]
[Prior art]
Conventionally, a Diffile-Hellman key distribution method (for example, see Non-Patent Document 1) applying the discrete logarithm problem and public key cryptography and digital signature methods as its applications have been proposed.
First, a key distribution procedure by this conventional Diffile-Hellman key distribution method will be described. It is assumed that Party A and Party B are connected by an insecure communication line.
When delivering a key, First, the pseudorandom number generator is used to determine an integer a that is less than or equal to N, and this a is transmitted to the second party via a communication line. Next, after determining a certain integer s using a pseudo random number generator, the former uses b = a using an integer arithmetic unit.sModN is calculated, and the calculated b is sent to B while keeping the integer s secret.
On the other hand, after determining an integer t using a pseudo-random number generator, B uses c = a using an integer arithmetic unit.tcompute modN, an integertSend the calculated c to Instep, keeping the secret. In addition, B uses an integer arithmetic unit, and from the key b transmitted from the former, the key k = btFind modN.
On the other hand, using an integer arithmetic unit, the key k = csFind modN.
Here, the key k obtained by B is k = btmodN = astmodN, the key that Kou asked for k = csmodN = astMatches modN. As a result, the common key k is delivered between Party A and Party B.
[0003]
Next, a public key cryptosystem applying the conventional Diffile-Hellman key distribution scheme will be described. In the following, it is assumed that ciphertext is transmitted from Party B to Party A, and the encrypted text sent by Party A is decrypted.
In this case, First, the pseudonym generator is used to determine an integer a equal to or less than N, and this a is transmitted to the second party via the communication line. Next, after determining a certain integer s using a pseudo random number generator, the former uses b = a using an integer arithmetic unit.sModN is calculated, and the calculated b is sent to B while keeping the integer s secret. This integer s functions as a secret key, and b functions as a public key.
On the other hand, after determining an integer t using a pseudo-random number generator, B uses c = a using an integer arithmetic unit.tcompute modN, an integertSend the calculated c to Instep, keeping the secret. In addition, B uses an integer arithmetic unit, and b = k = btAfter modN is obtained and plaintext M is encrypted with this k, this ciphertext and the calculated c are transmitted to Party A.
After receiving this, the former uses an integer arithmetic unit, and from sent c to k = csmodN is calculated, and the sent ciphertext is decrypted using this k.
[0004]
Next, the Schnorr signature scheme, which is a digital signature scheme that applies the difficulty of the conventional discrete logarithm problem, will be described. In the following, Party A and Party B are connected by an insecure communication line, and Party B digitally signs message M sent from Party A to Party B. The verified digital signature shall be verified. In addition, it is assumed that Party A and Party B have a device for calculating a common hash function H.
In this case, first, the first public discloses the set prime number p and the natural number a, holds the natural number t determined using the pseudo-random number generator as a secret key, andtb is set by modp, and the set b is made public as a public key.
[0005]
When Party A actually generates a signature, Party A further generates a natural number u using a pseudo random number generator, and uses this natural number u to generate c = auModp is calculated, and using this calculation result, an integer pair S = (c, u + tH (M, c)) is generated, and the generated integer pair S is kept in a state where the natural number u is kept secret. Send to B.
Integer pair S = (S1, S2) Will receive V = a according to this S and published b.s2bH (M, s1)c-1Perform modp operations. Here, for example, if the signature is valid, the received integer pair S is S1= c, S2= u + tH (M, c). In this case, the value of V is V = a(u + tH (M, c))bH (M, c)c-1modp, and the definition of b and c (b = atmodp, c = auFrom modp), V = 1. On the other hand, as described above, u and t that make up u + tH (M, c) are the secret information of Party A, so those other than Party A cannot properly select u and t. , S1= c, S2= u + tH (M, c) As a result, V = 1 is not achieved. Accordingly, the second party can determine that the signature is valid when V = 1, and can determine that the signature is invalid when V = 1. It is known that the security of this Schnorr signature scheme is safe if H is an ideal random number function and the discrete logarithm problem cannot be solved (for example, see Non-Patent Document 2).
[0006]
[Non-Patent Document 1]
Industrial book "Contemporary cryptography" Tatsuaki Okamoto, Hiroshi Yamamoto P200-202.
[Non-Patent Document 2]
Pintcheval and Stern: Security Proofs for Signature Schemes, Proc. Of Eurocrypt'96, LNCS 1070, Springer-Verlag, pp.387-398 (1996)
[0007]
[Problems to be solved by the invention]
However, in the conventional Diffile-Hellman key distribution scheme, and public key cryptography and digital signature schemes as its application, the number of four arithmetic operations required for calculating b and c is the size of s and t, which are secret parameters. It will increase depending on. Therefore, if the secret parameters s and t are increased to improve security, the amount of calculation at the time of key distribution, encryption / decryption, and signature generation / verification increases, and there is a problem in practical convenience. There are challenges.
The present invention has been made in view of such a point, and an object thereof is to provide a security device capable of improving such practical convenience.
Another object of the present invention is to provide a security method capable of improving such practical convenience.
Furthermore, another object of the present invention is to provide a security program for causing a computer to execute such a security function with improved practical convenience.
Another object of the present invention is to provide a computer-readable recording medium in which a security program for causing a computer to execute such a security function with improved practical convenience is recorded. .
[0008]
[Means for Solving the Problems]
In the present invention, in order to solve the above-described problem, a first number of parameters configured by a set of a first integer parameter and a second integer parameter are set, and the first integer parameter is set for the set. SmAnd the second integer parameter is qmWhere Σ is an operator that associates a polynomial g (x) -g (x-1) with an arbitrary polynomial g (x), where r is the first number,m = 0 rqm(1-δ)smAnd the security function is realized using the calculation result.
In this case, Σm = 0 rqm(1-δ)smThe number of four arithmetic operations to act on is the first integer parameter sm, The second integer parameter qmIt does not increase with the size of. As a result, it is possible to improve safety against attacks from third parties while maintaining convenience during use.
[0009]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, a first embodiment of the present invention will be described with reference to the drawings.
Here, the outline of this embodiment will be described first, and then the details of this embodiment will be described.
FIG. 1 is a diagram for explaining an outline of a
As illustrated in FIG. 1, the
[0010]
In the case of this example, the
[0011]
Although details will be described later, in this example, the linear action calculating means 2b sets the predetermined polynomial as a (x), the degree of the polynomial as deg a (x), and the first integer parameter as smAnd the second integer parameter is qmAnd the first number is r, ∂ is the differential operator, and an ideal is the result of the operation of the polynomial obtained by adding an arbitrary integer value to the integer coefficient polynomial variable performed on the ideal. Again, when the ideal set that is the set that is the ideal is I, Σn = 0 deg a (x)Σm = 0 r(qmsm n∂na (x) / n!) modI is a means to calculate, and this allows linear operator Σm = 0 rqm(1-δ)smThe inverse problem of the action of the ring by is generated. The same applies to the linear action calculation means 2c, 3b, and 3c.
[0012]
In the description of this embodiment and the following embodiments, δ means an operator that associates a polynomial g (x) -g (x-1) with an arbitrary polynomial g (x), and from this definition ( 1-δ)sMeans an operator that associates a polynomial g (x-s) with an arbitrary polynomial g (x).
The ideal set I is an ideal, and a set obtained by adding an arbitrary integer value to an integer coefficient polynomial performed on the ideal is the ideal again. Is an ideal set. For “ideal”, for example, a subset I of the commutative ring R1Is ideal if any x, y∈I1X + y∈I1And any x∈R and y∈I1About xy∈I1As an example of such an ideal set, for example, an ideal of a ring formed by a polynomial of integer coefficients, where δ is a polynomial g (x) with respect to an arbitrary polynomial g (x) -g (x-1) is the corresponding operator, and deg f (x) is the order of f (x), {f (x), δf (x), δ2f (x), ..., δdeg f (x)A set generated by f (x)}.
[0013]
When distributing the common key k (x) in the
Then, for example, next, the
[0014]
After that, the common polynomial a (x)m = 0 rqm(1-δ)smThat is, that is, Σn = 0 deg a (x)Σm = 0 r(qmsm n∂na (x) / n!) modI operation result b (x) is, for example, stored in the
On the other hand, the
[0015]
After that, the common polynomial a (x)m = 0 tvm(1-δ)umThat is, that is, Σn = 0 deg a (x)Σm = 0 t(vmum n∂na (x) / n!) modI calculation result c (x) is, for example, stored in the
The
[0016]
On the other hand, the
Here, the number of four arithmetic operations required for the polynomial operation performed in the linear
[0017]
Next, details of this embodiment will be described.
FIG. 2 is a diagram illustrating the overall configuration of the
As illustrated in FIG. 2, the
[0018]
The
[0019]
The
[0020]
The
In FIG. 2, the
[0021]
FIG. 3 is a block diagram illustrating a hardware configuration of the
As illustrated in FIG. 3, the
[0022]
The
[0023]
The
[0024]
The
The
The
[0025]
The
[0026]
Although not described here, the
FIG. 4 exemplifies the processing function of the
As illustrated in FIG. 4, the
[0027]
In this example, the common polynomial generator 21 uses a pseudo-random number generation algorithm based on the computational complexity theory, which is configured using a one-way hash function such as SHA-1, and the like. Generating means 21a and a pseudo-random number generated by the pseudo-random number generating means 21a, generating a predetermined integer value, and having a polynomial generating means 21b for generating a common polynomial having the generated integer value as a coefficient, The
[0028]
Further, as illustrated in FIG. 4, the common polynomial generation unit 21, the common polynomial disclosure unit 22, the
[0029]
FIG. 5 illustrates the processing function of the
As illustrated in FIG. 5, the
[0030]
Further, in this example, the parameter setting means 33 uses a pseudo-random number generation algorithm based on the computational complexity theory, which is configured using a one-way hash function such as SHA-1, and generates pseudo-random numbers.
[0031]
Further, as illustrated in FIG. 5, the common
[0032]
Next, processing operations of the
FIG. 6 is a flowchart for explaining an example of processing operations of the
[0033]
Hereinafter, description will be given along this flowchart.
Step S1:
In this step, the
The setting of the common polynomial a (x) is performed by, for example, the common polynomial generation unit 21 of the
The information for specifying the common polynomial a (x) set in this way is sent to the control means 28, for example, and the control means 28 sets the information for specifying the sent common polynomial a (x). To the common polynomial disclosure means 22 and the storage means 29. The information for specifying the common polynomial a (x) sent to the
[0034]
Step S2:
In this step, the
The transmission of the common polynomial a (x) is performed by, for example, the common polynomial disclosure unit 22 of the
When the transmission of the common polynomial a (x) is thus performed, the process proceeds to step S3.
[0035]
Step S3:
In this step, the
The reception of the common polynomial a (x) is performed by, for example, the common
The information for specifying the common polynomial a (x) received in this way is sent to the control means 38, for example, and the control means 38 uses the information for specifying the sent common polynomial a (x). The data is sent to the storage means 39. Information for specifying the common polynomial a (x) sent to the storage means 39 is stored in the storage means 39, for example, and the process proceeds to the next step S4.
[0036]
Step S4:
In this step, the
The setting of r integer sets (s, q) is performed by the parameter setting means 23 of the
The information for specifying the set r integer sets (s, q) is sent to the control means 28, for example, and the control means 28 specifies the sent r integer sets (s, q). Information to be sent is sent to the linear action calculation means 24 and the storage means 29. Information for specifying r integer sets (s, q) sent to the storage means 29 is stored in the storage means 29 and sent to the linear action calculation means 24, for example. , q) is used for the process of step S5.
[0037]
Step S5:
In this step, the
The calculation of the polynomial in this step is performed, for example, in the linear action calculation means 24 of the
Information for specifying the polynomial b (x) indicating the result of such calculation is sent to the control means 28, for example, and the control means 28 uses information for specifying the sent polynomial b (x). And sent to the calculation result disclosure means 25. When this information is sent to the calculation
[0038]
Step S6:
In this step, the
The transmission of the polynomial b (x) is performed by, for example, the calculation result disclosure means 25 of the
When the polynomial b (x) is thus transmitted, the process proceeds to step S7.
[0039]
Step S7:
In this step, the
Reception of the polynomial b (x) is performed, for example, by the calculation result acquisition means 36 of the
The information for specifying the received polynomial b (x) is sent to the control means 38, for example, and the control means 38 stores the information for specifying the sent polynomial b (x). Send to 39. Information for specifying the polynomial b (x) sent to the storage means 39 is stored in the storage means 39, for example, and the process proceeds to the next step S8.
[0040]
Step S8:
In this step, the
The setting of t integer sets (u, v) is performed by the parameter setting means 33 of the
The information for specifying the set t integer sets (u, v) is sent to the control means 38, for example, and the control means 38 specifies the sent t integer sets (u, v). Information to be sent is sent to the linear action calculation means 34 and the storage means 39. The information for specifying the t integer sets (u, v) sent to the storage means 39 is stored in the storage means 39 and sent to the linear action calculation means 34, for example. , v) is used for the process of step S9.
[0041]
Step S9:
In this step, the
The calculation of the polynomial in this step is performed, for example, in the linear action calculation means 34 of the
Information for specifying the polynomial c (x) indicating the result of such an operation is sent to the control means 38, for example, and the control means 38 uses the information for specifying the sent polynomial c (x). And sent to the calculation result disclosure means 35. When this information is sent to the calculation result disclosure means 35, the process proceeds to step S10.
[0042]
Step S10:
In this step, the
The transmission of the polynomial c (x) is performed by, for example, the calculation result disclosure means 35 of the
When the polynomial c (x) is thus transmitted, the process proceeds to step S11.
[0043]
Step S11:
In this step, the
The reception of the polynomial c (x) is performed by, for example, the calculation
The information for specifying the received polynomial c (x) is sent to the control means 28, for example, and the control means 28 stores the information for specifying the sent polynomial c (x). 29. Information for specifying the polynomial c (x) sent to the storage means 29 is stored in, for example, the storage means 29, and the process proceeds to the next step S12.
[0044]
Step S12:
In this step, the
[0045]
Step S13:
In this step, the
[0046]
Through the above processing, the common key k (x) is distributed between the
As described above, the ideal set I is an ideal, and an operation result of the polynomial obtained by adding an arbitrary integer value to the polynomial variable of the integer coefficient performed on the ideal again becomes the ideal and Is a set. In this case, if the polynomial of this integer coefficient is g (x) and any integer value is k, then the relationship that g (x + k) ∈I is satisfied for this ideal set I if g (x) ∈I. Will be satisfied.
[0047]
Here, w (x) ≡r (x) modI. That is, suppose that g (x) ∈I and p (x) ∈Z [x] exist and w (x) = p (x) · g (x) + r (x) can be written. Here, Z [x] represents a whole set of integer coefficient polynomials. For both sides of this equation, replacing x with x + k gives w (x + k) = p (x + k) · g (x + k) + r (x + k). Since (x + k) ∈I is satisfied, the relationship w (x + k) ≡r (x + k) modI is also established. In other words, as long as the ideal set I is as described above, if the relationship w (x) ≡r (x) modI holds, the relationship w (x + k) ≡r (x + k) modI always holds Will do. This is a relationship that does not necessarily hold when a remainder operation is performed on a set that is not the ideal set I instead of the ideal set I.
[0048]
Furthermore, if it can be said that the relationship w (x + k) ≡r (x + k) modI always holds if the relationship w (x) ≡r (x) modI holds. For any integer k and any polynomial w (x), after performing a remainder operation with I, a polynomial with x replaced with x + k, and after replacing x with x + k, a remainder operation with I It can be said that it is the same as the polynomial performed.
And as mentioned above, (1-δ)sMeans an operator that associates a polynomial g (xs) with an arbitrary polynomial g (x), so after performing a remainder operation on I for an arbitrary integer k and an arbitrary polynomial w (x), If it can be said that the polynomial in which x is replaced with x + k and the polynomial in which the remainder operation is performed on I after replacing x with x + k are the same, for example, in the
[0049]
As described above, in the example of the present embodiment, the parameter setting means 23, 33 has a first number set of parameters (r integer sets ( s, q), t integer sets (u, v)) are set, and the linear action computing means 24, 27, 34, 37 set (a (x), b (x), c (x)) Σm = 0 rqm(1-δ)smOr Σm = 0 tvm(1-δ)umBecause of the action, even if the size of the secret parameters (r, s, k, t, u, v) is increased, the number of arithmetic operations performed by the
[0050]
In the example of the present embodiment, the configuration is such that the common key is distributed using the calculation result obtained by operating the linear operator having many secret parameters (r, s, k, t, u, v). It becomes difficult for a person to decrypt the common key, and as a result, sufficient security for the common key can be secured.
Further, in the example of the present embodiment, b (x) = Σ in the linear
[0051]
Further, in the linear action calculation means 24 and 34, b (x) = Σn = 0 deg a (x)Σm = 0 r(qmsm n∂na (x) / n!) modI, c (x) = Σn = 0 deg a (x)Σm = 0 t(vmum n∂na (x) / n!) modI is calculated, the calculation results are disclosed to the communication partner in the calculation
[0052]
Further, in the example of the present embodiment, as an ideal set, a ring ideal formed by a polynomial of integer coefficients, where δ is a polynomial g (x) -g (x-1) with respect to an arbitrary polynomial g (x) {F (x), δf (x), δ when degf (x) is the order of f (x)2f (x), ..., δdegf (x)By using what is a set generated by f (x)}, as described above, the common key k (x) calculated by each of the
In the example of this embodiment, r integer sets (s, q) are kept secret on the
[0053]
Furthermore, in the example of the present embodiment, r integer sets (s, q) are generated using the random numbers generated by the pseudo random number generation means 23a of the
The present invention is not limited to the embodiment described above. For example, in the present embodiment, the
[0054]
Further, in this embodiment, in the linear
Next, a second embodiment of the present invention will be described.
Here, the outline of this embodiment will be described first, and then the details of this embodiment will be described.
[0055]
FIG. 7 is a diagram for explaining an outline of the
As illustrated in FIG. 7, the
In the case of this example, the security device 51 includes a first
[0056]
Similarly to the first embodiment, in this example, the linear action calculating means 51b sets the predetermined polynomial as a (x), the degree of the polynomial as deg a (x), and the first integer parameter. SmAnd the second integer parameter is qmAnd the first number is r, ∂ is the differential operator, and an ideal is the result of the operation of the polynomial obtained by adding an arbitrary integer value to the integer coefficient polynomial variable performed on the ideal. Again, when the ideal set that is the set that is the ideal is I, Σn = 0 deg a (x)Σm = 0 r(qmsm n∂na (x) / n!) modI is a means for calculating. The same applies to the linear action calculation means 51c, 52b, and 52c.
[0057]
In the
Then, for example, next, the security device 51 determines r integer sets (s, q) in the parameter setting means 51a, and the linear operator Σ for the common polynomial a (x) in the linear
[0058]
After that, the common polynomial a (x)m = 0 rqm(1-δ)smThat is, that is, Σn = 0 deg a (x)Σm = 0 r(qmsm n∂na (x) / n!) modI calculation result b (x) is, for example, in a state where r, s, q (secret key) are kept secret on the
On the other hand, the plaintext M to be encrypted is M∈ {0,1}lThe
[0059]
In addition, the
The security device 51 to which the ciphertext C = (c (x), H (k (x)) (+) M) is transmitted is transmitted to the linear operator with respect to the transmitted c (x) by the linear operation computing means 51c. Σm = 0 rqm(1-δ)smAct. Specifically, for example, in the linear
(H (k (x)) (+) (H (k (x)) (+) M)). Here, as in the case of the first embodiment described above, k (x) generated by the security device 51 and k (x) generated by the
[0060]
Here, the number of four arithmetic operations necessary for the polynomial operation performed in the linear
[0061]
Next, details of this embodiment will be described.
FIG. 8 is a diagram illustrating the overall configuration of the
As illustrated in FIG. 8, the
[0062]
FIG. 9 illustrates the processing function of the
As illustrated in FIG. 9, the
[0063]
In this example, the
[0064]
In the example in the second embodiment, the hash function H having a value in the polynomial is, for example, Z (x) / I1→ {0,1}lThis function performs the operation of Where Z (x) / I1Is an integer coefficient polynomial ring Z (x) and its ideal I1And p-q∈I for p, q∈Z (x)1If p and q are considered to be the same class, the elements of Z (x) are classified, and the set created when each of the classified classes is newly regarded as an element (Z (x) (Remainder ring by I). Further, as described above, the hash function H is desirably a set having a sufficiently large value range of the operation result, but such a configuration of the hash function H uses, for example, a book burger algorithm or the like, Z ( x) Ideal I1Determines one Gröbner basis for Z (x) / I1In each class, a polynomial representing the class is determined. Here, the ideal I of Z [x]1The Gröbner basis of I1A finite set G = {f1(x), f2(x), ..., fn(x)} for any f (x) ∈Z (x)1Take the remainder of dividing by (x), then the remainder is f2Take the remainder divided by (x), repeat the same in the following, and finally fnThe result of taking the remainder divided by (x) is f1(x), f2(x), ..., fnIt has the property that does not depend on the order of (x).
[0065]
Further, as illustrated in FIG. 9, a common
[0066]
FIG. 10 illustrates the processing function of the
As illustrated in FIG. 10, the
[0067]
In this example, the parameter setting unit 83 uses a pseudo random number generation algorithm based on the computational complexity theory, which is configured using a one-way hash function such as SHA-1, to generate pseudo random numbers.
[0068]
Further, as illustrated in FIG. 10, the common
[0069]
Next, processing operations of the
FIG. 11 is a flowchart for explaining an example of processing operations of the
[0070]
Hereinafter, description will be given along this flowchart.
Step S20:
In this step, the
The setting of the common polynomial a (x) is performed in, for example, the common
The information for specifying the common polynomial a (x) set in this way is sent to the control means 78, for example, and the control means 78 sets the information for specifying the sent common polynomial a (x). To the common polynomial disclosure means 72 and the storage means 79. Information for specifying the common polynomial a (x) sent to the
[0071]
Step S21:
In this step, the
The transmission of the common polynomial a (x) is performed by the common polynomial disclosure means 72 of the
When the transmission of the common polynomial a (x) is thus performed, the process proceeds to step S22.
[0072]
Step S22:
In this step, the
The reception of the common polynomial a (x) is performed by, for example, the common
The information for specifying the common polynomial a (x) received in this way is sent to the control means 88, for example, and the control means 88 uses the information for specifying the sent common polynomial a (x). The data is sent to the storage means 89. Information for specifying the common polynomial a (x) sent to the
[0073]
Step S23:
In this step, the
The setting of r integer sets (s, q) is performed by the parameter setting means 73 of the
Information for specifying the set r integer sets (s, q) is sent to, for example, the control means 78, and the control means 78 specifies the sent r integer sets (s, q). Information to be sent to the linear action calculation means 74 and the storage means 79. The information for specifying r integer sets (s, q) sent to the storage means 79 is stored in the storage means 79 and sent to the linear action calculation means 74, for example. , q) is used for the process of step S24.
[0074]
Step S24:
In this step, the
The calculation of the polynomial in this step is performed, for example, in the linear action calculation means 74 of the
Information for specifying the polynomial b (x) indicating the result of such calculation is sent to the control means 78, for example, and the control means 78 uses information for specifying the sent polynomial b (x). To the public
[0075]
Step S25:
In this step, the
The transmission of the polynomial b (x) is performed by, for example, the public
When the polynomial b (x) is thus transmitted, the process proceeds to step S26.
[0076]
Step S26:
In this step, the
The reception of the polynomial b (x) is performed by, for example, the calculation
The information for specifying the polynomial b (x) received in this way is sent to the control means 88, for example, and the control means 88 stores the information for specifying the sent polynomial b (x). Send to 89. Information for specifying the polynomial b (x) sent to the
[0077]
Step S27:
In this step, the
The setting of t integer sets (u, v) is performed by the parameter setting means 83 of the
The information for specifying the set t integer sets (u, v) is sent to, for example, the control means 88, and the control means 88 specifies the sent t integer sets (u, v). Information to be sent to the linear action calculation means 84 and the storage means 89. The information for specifying the t integer sets (u, v) sent to the storage means 89 is stored in the storage means 89 and sent to the linear action calculation means 84, for example. , v) is used for the process of step S28.
[0078]
Step S28:
In this step, the
The calculation of the polynomial in this step is performed, for example, in the linear action calculation means 86 of the
Information for specifying the polynomial c (x) indicating the result of such calculation is sent to the control means 88, for example, and the control means 88 uses information for specifying the sent polynomial c (x). To the storage means 89. Information for specifying the polynomial c (x) sent to the
[0079]
Step S29:
In this step, the
The calculation of the ciphertext C is performed, for example, in the ciphertext generation unit 85 of the
When performing the operation on the ciphertext C, the
[0080]
Next, for example, the hash function H is applied to the calculation result k (x) by the hash function calculation means 85b (H (k (x)) ∈ {0,1}.l), The exclusive OR operation means 85c calculates the exclusive OR (H (k (x)) (+) M) of the operation result H (k (x)) and the plaintext M as a ciphertext. Thereafter, the ciphertext generation means 85 uses the ciphertext C = (c) using (H (k (x)) (+) M) calculated in this way and c (x) calculated in step S28. (x), H (k (x)) (+) M) are generated. The generated ciphertext C is sent to the control means 88, for example, and the control means 88 sends the sent ciphertext C to the ciphertext disclosure means 87. When the ciphertext C is sent to the ciphertext disclosure means 87, the process proceeds to step S30.
[0081]
Step S30:
In this step, the
The ciphertext C is transmitted by, for example, the ciphertext disclosure means 87 of the
When the ciphertext C is thus transmitted, the process proceeds to step S31.
[0082]
Step S31:
In this step, the
The ciphertext C is received by, for example, the
The information for specifying the ciphertext C received in this way is sent to the control means 78, for example, and the control means 78 sends the information for specifying the sent ciphertext C to the decryption means 77, The process proceeds to the next step S32.
[0083]
Step S32:
In this step, the
The decryption of the ciphertext C is performed by, for example, the
When this calculation is performed, for example, the same hash function H as that used in the
[0084]
As described above, in the example of the present embodiment, the parameter setting means 73 and 83 use the first number of parameters (r integer sets ( s, q), t integer sets (u, v)) are set, and in the linear action computing means 74, 77a, 85a, 86, the set (a (x), b (x), c (x)) Σm = 0 rqm(1-δ)smOr Σm = 0 tvm(1-δ)umEven when the size of the secret parameters (r, s, k, t, u, v) is increased, the public key is generated, the plaintext is encrypted, and the ciphertext is decrypted. The public key cryptography applying the conventional Diffile-Hellman key distribution method in which the number of arithmetic operations performed by the
[0085]
In the example of this embodiment, by generating a linear operator having many secret parameters (r, s, k, t, u, v), public key generation, plaintext encryption, and ciphertext decryption are performed. As a result, it is very difficult for a third party to decrypt the ciphertext C, and as a result, sufficient security for the common key can be secured.
Further, in the example of the present embodiment, b (x) = Σ in the linear
[0086]
Further, in the
[0087]
Further, in the
[0088]
In the example of the present embodiment, as an ideal set, an ideal of a ring formed by a polynomial of integer coefficients, where δ is a polynomial g (x) -g (x-1) with respect to an arbitrary polynomial g (x) {F (x), δf (x), δ when degf (x) is the order of f (x)2f (x), ..., δdegf (x)By using what is a set generated by f (x)}, as in the case of the first embodiment described above, the polynomial k (x) calculated by each of the
[0089]
Furthermore, in the example of this embodiment, r integer sets (s, q) are kept secret on the
In the example of the present embodiment, r integer sets (s, q) are generated using the random numbers generated by the pseudo random number generation means 73a of the
[0090]
The present invention is not limited to the embodiment described above. For example, in this embodiment, the
Further, in this embodiment, in the linear operator computing means 74, 77a, 85a, 86, a linear operator Σm = 0 rqm(1-δ)smOr Σm = 0 tvm(1-δ)umIf the number of integer arithmetic operations required to calculate a linear operator is less than the order of the logarithmic polynomial of the degree of the polynomial, then other linear operators are used. It is good as well.
[0091]
Next, a third embodiment of the present invention will be described.
Here, the outline of this embodiment will be described first, and then the details of this embodiment will be described.
FIG. 12 is a diagram for explaining the outline of the security system 100 according to the present embodiment.
As illustrated in FIG. 12, the security system 100 includes
[0092]
In the case of this example, the security device 101 includes a first
[0093]
Further, as in the first embodiment, in this example, the linear action computing means 101c sets the predetermined polynomial as a (x), the degree of the polynomial as deg a (x), and the first integer parameter. SmAnd the second integer parameter is qmAnd the first number is r, ∂ is the differential operator, and an ideal is the result of the operation of the polynomial obtained by adding an arbitrary integer value to the integer coefficient polynomial variable performed on the ideal. Again, when the ideal set that is the set that is the ideal is I, Σn = 0 deg a (x)Σm = 0 r(qmsm n∂na (x) / n!) modI is a means for calculating. This also applies to the linear
[0094]
In the security system 100 according to the present embodiment, when a digital signature and verification thereof are performed, for example, the security device 101 first has a common polynomial a (x) that is a polynomial of integer coefficients common to the
Thereafter, for example, in the linear action computing means 101c, the linear operator Σ is applied to the common polynomial a (x).m = 0 rqm(1-δ)smSpecifically, for example, in the linear
[0095]
Next, for example, the security device 101 uses the
[0096]
On the other hand, the polynomial pair (S1, S2) Is transmitted to the
[0097]
Here, the number of four arithmetic operations required for the polynomial operation performed in the linear action calculating means 101c and 101d described above is the secret parameter (r, s, k, t, u, v) as indicated by the above-described arithmetic expression. It does not depend on the size of Therefore, even when the size of the secret parameter (r, s, k, t, u, v) is increased, the number of arithmetic operations performed by the security device 101 at the time of public key generation and signature generation is As a result, the convenience is greatly improved as compared with the digital signature scheme that applies the difficulty of the conventional discrete logarithm problem, in which the amount of calculation increases depending on the size of the secret parameter.
[0098]
Next, details of this embodiment will be described.
FIG. 13 is a diagram illustrating the overall configuration of the
As illustrated in FIG. 13, the
[0099]
FIG. 14 exemplifies the processing function of the
As illustrated in FIG. 14, the
[0100]
In this example, the
[0101]
Further, as illustrated in FIG. 14, the
FIG. 15 illustrates the processing function of the
[0102]
As illustrated in FIG. 15, the
[0103]
Also, as illustrated in FIG. 15, the public
Next, processing operations of the
[0104]
FIG. 16 is a flowchart for explaining an example of processing operations of the
[0105]
Hereinafter, description will be given along this flowchart.
Step S40:
In this step, the
The common polynomials a (x) and g (x) are set by, for example, the common
Information for specifying the common polynomials a (x) and g (x) set in this way is sent to the control means 128, for example, and the control means 128 sends the common polynomials a (x) and g Information for specifying (x) is sent to the storage means 127. Information for specifying the common polynomials a (x) and g (x) sent to the
[0106]
Step S41:
In this step, the
The setting of the common polynomials a (x) and g (x) is performed by, for example, the common polynomial generation unit 134 of the
Information for specifying the common polynomials a (x) and g (x) set in this way is sent to the control means 136, for example, and the control means 136 sends the common polynomials a (x) and g sent thereto. Information for specifying (x) is sent to the storage means 135. Information for specifying the common polynomials a (x) and g (x) sent to the
[0107]
Step S42:
In this step, the
The setting of r integer sets (s, q) is performed by the parameter setting means 121 of the
The information for specifying the set r integer sets (s, q) is sent to the control means 128, for example, and the control means 128 specifies the sent r integer sets (s, q). Information to be sent to the linear action calculation means 122 and the storage means 127. Information for specifying r integer sets (s, q) sent to the storage means 127 is stored in the storage means 127 and sent to the linear action calculation means 122, for example. , q) is used for the process of step S43.
[0108]
Step S43:
In this step, the
The calculation of the polynomial in this step is performed, for example, in the linear action calculation means 122 of the
[0109]
Step S44:
In this step, the
The disclosure of the polynomial b (x) is performed by, for example, the public
When the polynomial b (x) is disclosed in this manner, the process proceeds to step S45.
[0110]
Step S45:
In this step, the
The information for specifying the polynomial b (x) received in this way is sent to the control means 136, for example, and the control means 136 stores the information for specifying the sent polynomial b (x). Send to 135. Information for specifying the polynomial b (x) sent to the
[0111]
Step S46:
In this step, the
The setting of t integer sets (u, v) is performed, for example, by the parameter setting means 121 of the
The information for specifying the set t integer sets (u, v) is sent to the control means 128, for example, and the control means 128 specifies the sent t integer sets (u, v). Information to be sent is sent to the signature generation means 124 and the storage means 127. The information for specifying t integer sets (u, v) sent to the storage means 127 is stored in the storage means 127 and sent to the signature generation means 124, for example, t integer sets (u, v). The information for specifying v) is used for the process of step S47.
[0112]
Step S47:
In this step, the
The calculation of the polynomial in this step is performed, for example, in the linear action calculation unit 124a of the signature generation unit 124. When performing this polynomial operation, for example, first, the
Information for specifying the polynomial c (x) indicating the result of such calculation is sent to the control means 128, for example, and the control means 128 uses the information for specifying the sent polynomial c (x). And stored in the storage means 127. When this information is stored in the storage means 127, the process proceeds to step S48.
[0113]
Step S48:
In this step, the
The polynomials c (x) and d (x) generated as described above are sent to the control means 128 as polynomial pairs (c (x), d (x)), and the control means 128 sends the polynomial pairs ( c (x), d (x)) are sent to the polynomial pair transmission means 125. When the polynomial pair (c (x), d (x)) is sent to the polynomial pair transmission means 125, the process proceeds to step S49.
[0114]
Step S49:
In this step, the
Transmission of the polynomial pair (c (x), d (x)) in this step is performed, for example, by the polynomial pair transmission means 125. At this time, r integer sets (s, q) and t integers are transmitted. The set (u, v) is kept secret on the security device 101 side, and these parameters r, s, q, u, v are not disclosed. Specifically, for example, information for identifying this polynomial pair (c (x), d (x)) is sent from the
[0115]
Step S50:
In this step, the
The reception of the polynomial pair (c (x), d (x)) is performed by the polynomial
The polynomial pair (c (x), d (x)) received by the polynomial
[0116]
Step S51:
In this step, the
The signature verification in this step is performed by, for example, the
[0117]
As described above, in the example of the present embodiment, the
[0118]
In the example of the present embodiment, the generation of the public key and the generation of the signature are performed by operating a linear operator having many secret parameters (r, s, k, t, u, v). Sufficient security against signatures by the three parties can be secured.
Furthermore, in the example of the present embodiment, b (x) = Σ in the linear action calculation means 122 and 124a.n = 0 deg a (x)Σm = 0 r(qmsm n∂na (x) / n!) modI, c (x) = Σn = 0 deg a (x)Σm = 0 t(vmum n∂na (x) / n!) modI is calculated, so even when the size of the secret parameters (r, s, k, t, u, v) is increased, the signature is At the time of generation, the number of four arithmetic operations performed by the
[0119]
Further, in the
[0120]
Further, in the
[0121]
Further, in the example of this embodiment, r integer sets (s, q) and t integer sets (u, v) are kept secret on the
Further, in the example of the present embodiment, r integer sets (s, q) and t integer sets (u, v) are generated using the random numbers generated by the
The present invention is not limited to the embodiment described above. For example, in the present embodiment, the
[0122]
Further, in this embodiment, the linear operator Σ for the a (x), b (x) or c (x) in the linear operator calculation means 122, 124a.m = 0 rqm(1-δ)smOr Σm = 0 tvm(1-δ)umIf the number of integer arithmetic operations required to calculate a linear operator is less than the order of the logarithmic polynomial of the degree of the polynomial, then other linear operators are used. It is good as well.
Furthermore, as described above, the processing functions in the first embodiment, the second embodiment, and the third embodiment can be realized by a computer. In this case, the processing contents of the functions that the
[0123]
The program describing the processing contents can be recorded on a computer-readable recording medium. The computer-readable recording medium may be any medium such as a magnetic recording device, an optical disk, a magneto-optical recording medium, or a semiconductor memory. Specifically, for example, the magnetic recording device may be a hard disk device or a flexible Discs, magnetic tapes, etc. as optical discs, DVD (Digital Versatile Disc), DVD-RAM (Random Access Memory), CD-ROM (Compact Disc Read Only Memory), CD-R (Recordable) / RW (ReWritable), etc. An MO (Magneto-Optical disc) or the like can be used as the magneto-optical recording medium.
[0124]
The program is distributed by selling, transferring, or lending a portable recording medium such as a DVD or CD-ROM in which the program is recorded. Furthermore, the program may be distributed by storing the program in a storage device of the server computer and transferring the program from the server computer to another computer via a network.
A computer that executes such a program first stores, for example, a program recorded on a portable recording medium or a program transferred from a server computer in its storage device. When executing the process, the computer reads the program stored in its own recording medium and executes the process according to the read program. As another execution form of the program, the computer may directly read the program from a portable recording medium and execute processing according to the program, and the program is transferred from the server computer to the computer. Each time, the processing according to the received program may be executed sequentially. Also, the program is not transferred from the server computer to the computer, and the above-described processing is executed by a so-called ASP (Application Service Provider) type service that realizes the processing function only by the execution instruction and result acquisition. It is good.
[0125]
【The invention's effect】
As described above, in the present invention, a first number of parameters configured by a set of a first integer parameter and a second integer parameter are set, and the first integer parameter is set to s for the set.mAnd the second integer parameter is qmWhere Σ is an operator that associates a polynomial g (x) -g (x-1) with an arbitrary polynomial g (x), where r is the first number,m = 0 rqm(1-δ)smFor example, even when the secret parameter value is increased, the amount of calculation at the time of key distribution, encryption / decryption, signature generation / verification does not increase, and the conventional discrete logarithm problem Compared with the digital signature method that applies the above difficulties, the convenience is greatly improved.
[Brief description of the drawings]
FIG. 1 is a diagram for explaining an outline of a security system.
FIG. 2 is a diagram illustrating the overall configuration of a security system.
FIG. 3 is a block diagram illustrating a hardware configuration of a security device.
FIG. 4 is a functional block diagram illustrating processing functions of the security device.
FIG. 5 is a functional block diagram illustrating processing functions of the security device.
FIG. 6 is a flowchart for explaining an example of processing operations of the security system and the security device.
FIG. 7 is a diagram for explaining the outline of a security system.
FIG. 8 is a diagram illustrating the overall configuration of a security system.
FIG. 9 is a functional block diagram illustrating processing functions of the security device.
FIG. 10 is a functional block diagram illustrating processing functions of the security device.
FIG. 11 is a flowchart for explaining an example of processing operations of the security system and the security device.
FIG. 12 is a diagram for explaining the outline of a security system.
FIG. 13 is a diagram illustrating the overall configuration of a security system.
FIG. 14 is a functional block diagram illustrating processing functions of the security device.
FIG. 15 is a functional block diagram illustrating processing functions of the security device.
FIG. 16 is a flowchart for explaining an example of processing operations of the security system and the security device;
[Explanation of symbols]
1, 10, 50, 60, 100, 110 Security system
2, 3, 20, 30, 51, 52, 70, 80, 101, 102, 120, 130 Security device
Claims (14)
第1の整数パラメータと第2の整数パラメータとの組によって構成される、第1の個数組のパラメータを設定する第1のパラメータ設定手段と、
通信相手と共用される整数係数の共通多項式をa(x)とし、前記共通多項式の次数をdeg a(x)とし、前記第1の整数パラメータをsmとし、前記第2の整数パラメータをqmとし、前記第1の個数をrとし、∂を微分作用素とし、イデアルであって、該イデアルに対して行われた、整数係数の多項式の変数を任意の整数値だけ加算した該多項式の演算結果が、再び、該イデアルとなる集合であるイデアル集合をIとした場合における、Σn=0 deg a(x)Σm=0 r(qmsm n∂na(x)/n!)modIの演算を行うことにより、第1の演算結果を生成する第1の線形作用演算手段と、
生成された前記第1の演算結果を、前記通信相手に送信する演算結果開示手段と、
前記通信相手によって演算された第2の演算結果を受信する演算結果取得手段と、
前記演算結果取得手段によって受信された前記第2の演算結果をc(x)とし、前記第2の演算結果c(x)の次数をdeg c(x)とし、前記第1の整数パラメータをsmとし、前記第2の整数パラメータをqmとし、前記第1の個数をrとし、∂を微分作用素とし、前記イデアル集合をIとした場合における、Σn=0 deg c(x)Σm=0 r(qmsm n∂nc(x)/n!)modIの演算を行い、その演算結果を前記共通鍵 k(x) として出力する第2の線形作用演算手段と、
を有することを特徴とするセキュリティ装置。 In a security device that shares a common key k (x) with a communication partner ,
First parameter setting means configured to set a first number of parameters, each of which is constituted by a set of a first integer parameter and a second integer parameter;
Common polynomial of integer coefficients that are shared with the communication partner and a (x), the order of the common polynomial with deg a (x), the first integer parameter and s m, the second integer parameter q m , the first number is r, ∂ is a differential operator, and an ideal is an arithmetic operation of the polynomial obtained by adding a variable of an integer coefficient polynomial to the ideal by an arbitrary integer value. The result is again that Σ n = 0 deg a (x) Σ m = 0 r (q m s m n ∂ n a (x) / n! ) first linear action calculation means for generating a first calculation result by performing a calculation of modI;
Calculation result disclosure means for transmitting the generated first calculation result to the communication partner;
Calculation result acquisition means for receiving a second calculation result calculated by the communication partner;
Said second operation result received by the calculation result acquisition means as c (x), the order of the second operation result c (x) and deg c (x), the first integer parameter s m , the second integer parameter is q m , the first number is r, ∂ is a differential operator, and the ideal set is I. Σ n = 0 deg c (x) Σ m = 0 r (q m s m n ∂ n c (x) / n!) have line calculation of MODI, and a second linear acting operating means for outputting the operation result the common key k (x),
Security device further comprising a.
通信相手と共用される整数係数の共通多項式をa(x)とし、前記共通多項式の次数をdeg a(x)とし、前記第1の整数パラメータをsmとし、前記第2の整数パラメータをqmとし、前記第1の個数をrとし、∂を微分作用素とし、イデアルであって、該イデアルに対して行われた、整数係数の多項式の変数を任意の整数値だけ加算した該多項式の演算結果が、再び、該イデアルとなる集合であるイデアル集合をIとした場合における、Σn=0 deg a(x)Σm=0 r(qmsm n∂na(x)/n!)modIの演算を行うことにより、第1の演算結果を生成する第1の線形作用演算手段と、
生成された前記第1の演算結果を、公開鍵として送信する公開鍵公開手段と、
前記通信相手によって演算された第2の演算結果と、暗号文とを、受信する暗号文取得手段と、
前記暗号文取得手段によって受信された前記第2の演算結果をc(x)とし、前記第2の演算結果の次数をdeg c(x)とし、前記第1の整数パラメータをsmとし、前記第2の整数パラメータをqmとし、前記第1の個数をrとし、∂を微分作用素とし、前記イデアル集合をIとした場合における、Σn=0 deg c(x)Σm=0 r(qmsm n∂nc(x)/n!)modIの演算を行うことにより、第3の演算結果を生成する第2の線形作用演算手段と、
生成された前記第3の演算結果と、前記暗号文と、の排他的論理和を演算する排他的論理和演算手段と、
を有することを特徴とするセキュリティ装置。 First parameter setting means configured to set a first number of parameters, each of which is constituted by a set of a first integer parameter and a second integer parameter;
Common polynomial of integer coefficients that are shared with the communication partner and a (x), the order of the common polynomial with deg a (x), the first integer parameter and s m, the second integer parameter q m , the first number is r, ∂ is a differential operator, and an ideal is an arithmetic operation of the polynomial obtained by adding a variable of an integer coefficient polynomial to the ideal by an arbitrary integer value. The result is again that Σ n = 0 deg a (x) Σ m = 0 r (q m s m n ∂ n a (x) / n! ) first linear action calculation means for generating a first calculation result by performing a calculation of modI;
Public key disclosure means for transmitting the generated first calculation result as a public key;
Ciphertext acquisition means for receiving the second calculation result calculated by the communication partner and the ciphertext;
Said second operation result received by the ciphertext acquisition unit and c (x), the order of the second operation results and deg c (x), the first integer parameter and s m, the When a second integer parameter is q m , the first number is r, ∂ is a differential operator, and the ideal set is I, Σ n = 0 deg c (x) Σ m = 0 r ( q m s m n ∂ n c (x) / n!) modI to perform a second linear action operation means for generating a third operation result;
An exclusive OR operation means for calculating an exclusive OR of the generated third operation result and the ciphertext;
Security device further comprising a.
通信相手によって公開された第1の演算結果を、公開鍵として受信する公開鍵取得手段と、
前記公開鍵取得手段によって受信された前記第1の演算結果をb(x)とし、前記第1の演算結果の次数をdeg b(x)とし、前記第1の整数パラメータをumとし、前記第2の整数パラメータをvmとし、前記第1の個数をtとし、∂を微分作用素とし、イデアルであって、該イデアルに対して行われた、整数係数の多項式の変数を任意の整数値だけ加算した該多項式の演算結果が、再び、該イデアルとなる集合であるイデアル集合をIとした場合における、Σn=0 deg b(x)Σm=0 t(vmum n∂nb(x)/n!)modIの演算を行うことにより、第2の演算結果を生成する第1の線形作用演算手段と、
生成された前記第2の演算結果と、通信内容である平文との排他的論理和を、暗号文として演算する排他的論理和演算手段と、
通信相手と共用される整数係数の共通多項式をa(x)とし、前記共通多項式の次数をdeg a(x)とし、前記第1の整数パラメータをumとし、前記第2の整数パラメータをvmとし、前記第1の個数をtとし、∂を微分作用素とし、前記イデアル集合をIとした場合における、Σn=0 deg a(x)Σm=0 t(vmum n∂na(x)/n!)modIの演算を行うことにより、第3の演算結果を生成する第2の線形作用演算手段と、
前記排他的論理和演算手段によって演算された前記暗号文と、前記第2の線形作用演算手段によって生成された前記第3の演算結果とを開示する暗号文開示手段と、
を有することを特徴とするセキュリティ装置。 First parameter setting means configured to set a first number of parameters, each of which is constituted by a set of a first integer parameter and a second integer parameter;
Public key acquisition means for receiving, as a public key, a first calculation result disclosed by a communication partner;
The first calculation result received by the public key acquisition means is b (x), the degree of the first calculation result is deg b (x), the first integer parameter is u m , The second integer parameter is v m , the first number is t, ∂ is a differential operator, and an ideal is a variable of an integer coefficient polynomial performed on the ideal with an arbitrary integer value. When the ideal set that is the set that becomes the ideal is again I, the calculation result of the polynomial summed only by Σ n = 0 deg b (x) Σ m = 0 t (v m u m n ∂ n b (x) / n!) modI, a first linear action calculation means for generating a second calculation result,
An exclusive OR operation means for calculating, as ciphertext, an exclusive OR of the generated second operation result and plaintext as communication content;
The common polynomial of integer coefficients shared with the communication partner is a (x), the degree of the common polynomial is deg a (x), the first integer parameter is u m, and the second integer parameter is v Σ n = 0 deg a (x) Σ m = 0 t (v m u m n ∂ n where m is the first number, t is the differential operator, and the ideal set is I a (x) / n!) modI, a second linear action calculation means for generating a third calculation result by performing a calculation of modI;
Ciphertext disclosing means for disclosing the ciphertext calculated by the exclusive OR operation means and the third operation result generated by the second linear action operation means;
Security device further comprising a.
通信相手と共用される整数係数の共通多項式をa(x)とし、前記共通多項式の次数をdeg a(x)とし、前記第1の整数パラメータをsmとし、前記第2の整数パラメータをqmとし、前記第1の個数をrとし、∂を微分作用素とし、イデアルであって、該イデアルに対して行われた、整数係数の多項式の変数を任意の整数値だけ加算した該多項式の演算結果が、再び、該イデアルとなる集合であるイデアル集合をIとした場合における、Σn=0 deg a(x)Σm=0 r(qmsm n∂na(x)/n!)modIの演算を行うことにより、第1の演算結果を生成する第1の線形作用演算手段と、
前記第1の線形作用演算手段によって生成された前記第1の演算結果を公開鍵として送信する公開鍵公開手段と、
第3の整数パラメータと第4の整数パラメータとの組によって構成される、第2の個数組のパラメータを設定する第2のパラメータ設定手段と、
前記共通多項式をa(x)とし、前記共通多項式の次数をdeg a(x)とし、前記第3の整数パラメータをumとし、前記第4の整数パラメータをvmとし、前記第2の個数をtとし、∂を微分作用素とし、前記イデアル集合をIとした場合における、Σn=0 deg a(x)Σm=0 t(vmum n∂na(x)/n!)modIの演算を行うことにより、第2の演算結果を生成する第2の線形作用演算手段と、
前記第1の整数パラメータをsmとし、前記第2の整数パラメータをqmとし、前記第1の個数をrとし、前記第3の整数パラメータをumとし、前記第4の整数パラメータをvmとし、前記第2の個数をtとし、前記通信相手と共用される多項式に値を持つハッシュ関数をHとし、平文をMとし、前記第2の演算結果をc(x)とした場合におけるΣm=0 tvmxum+Σm=0 rqmxsmH(M,c(x))の演算を行い、該演算結果をd(x)とした場合における多項式対(c(x),d(x))を生成する多項式対生成手段と、
前記多項式対生成手段において生成された前記多項式対を前記通信相手に送信する多項式対送信手段と、
を有することを特徴とするセキュリティ装置。 First parameter setting means configured to set a first number of parameters, each of which is constituted by a set of a first integer parameter and a second integer parameter;
Common polynomial of integer coefficients that are shared with the communication partner and a (x), the order of the common polynomial with deg a (x), the first integer parameter and s m, the second integer parameter q m , the first number is r, ∂ is a differential operator, and an ideal is an arithmetic operation of the polynomial obtained by adding a variable of an integer coefficient polynomial to the ideal by an arbitrary integer value. The result is again that Σ n = 0 deg a (x) Σ m = 0 r (q m s m n ∂ n a (x) / n! ) first linear action calculation means for generating a first calculation result by performing a calculation of modI;
Public key disclosure means for transmitting the first calculation result generated by the first linear action calculation means as a public key;
A second parameter setting means configured to set a second number of parameters configured by a set of a third integer parameter and a fourth integer parameter;
The common polynomial is a (x), the degree of the common polynomial is deg a (x), the third integer parameter is u m , the fourth integer parameter is v m, and the second number T n = 0 deg a (x) Σ m = 0 t (v m u m n ∂ n a (x) / n!) a second linear action calculation means for generating a second calculation result by performing a modI calculation;
And the first integer parameter and s m, the second integer parameter and q m, the first number and r, the third integer parameter of the u m, the fourth integer parameters v m , the second number is t, the hash function having a value in the polynomial shared with the communication partner is H, the plaintext is M, and the second operation result is c (x) Σ m = 0 t v m x um + Σ m = 0 r q m x sm H (M, c (x)) is calculated and the result of the calculation is d (x) (c ( x), d (x)) generating polynomial pair,
A polynomial pair transmission means for transmitting the polynomial pair generated by the polynomial pair generation means to the communication partner;
Security device further comprising a.
通信相手によって公開された公開鍵を受信する公開鍵取得手段と、
第1の多項式と第2の多項式から構成される多項式対を受信する多項式対取得手段と、
前記通信相手と共用される整数係数の共通多項式をa(x)とし、前記公開鍵をb(x)とし、前記第1の多項式をS1とし、前期第2の多項式をS2とし、前記通信相手と共用される多項式に値を持つハッシュ関数をHとし、平文をMとし、δを任意の多項式g(x)に対して多項式g(x)-g(x-1)を対応させる作用素とし、イデアルであって、該イデアルに対して行われた、整数係数の多項式の変数を任意の整数値だけ加算した該多項式の演算結果が、再び、該イデアルとなる集合であるイデアル集合をIとした場合における、S2(1-δ)a(x)-H(M,S1(x))(1-δ)b(x)-S1(x)modIの演算を行い、該演算結果が0となった場合には、署名が有効である旨の出力を行い、該演算結果が0とならなかった場合には、署名は無効である旨の出力を行う署名検証手段と、
を有することを特徴とするセキュリティ装置。In security devices that verify digital signatures,
A public key acquisition means for receiving a public key disclosed by a communication partner;
A polynomial pair acquisition means for receiving a polynomial pair composed of a first polynomial and a second polynomial;
The common polynomial of integer coefficients shared with the communication partner is a (x), the public key is b (x), the first polynomial is S 1 , the second polynomial is S 2 , An operator that associates a polynomial g (x) -g (x-1) with an arbitrary polynomial g (x), where H is a hash function having a value in a polynomial shared with the communication partner, M is a plaintext An ideal set, which is an ideal, and is obtained by adding the integer coefficient polynomial variable added to the ideal by an arbitrary integer value, is the ideal. S 2 (1-δ) a (x) -H (M, S 1 (x)) (1-δ) b (x) -S 1 (x) modI A signature verification means for outputting that the signature is valid if the result is 0, and outputting that the signature is invalid if the calculation result is not 0;
A security device comprising:
整数係数の多項式がなす環のイデアルであって、δを任意の多項式g(x)に対して多項式g(x)-g(x-1)を対応させる作用素とし、degf(x)をf(x)の次数とした場合における、{f(x), δf(x),δ2f(x),…,δdegf(x)f(x)}によって生成される集合であること、
を特徴とする請求項1から5の何れかに記載のセキュリティ装置。The ideal set is
An ideal of a ring formed by a polynomial of integer coefficients, where δ is an operator that associates a polynomial g (x) -g (x-1) with an arbitrary polynomial g (x), and degf (x) is f ( x) is a set generated by {f (x), δf (x), δ 2 f (x), ..., δ degf (x) f (x)}
Security device according to claim 1, wherein the 5.
前記第1のセキュリティ装置の第1のパラメータ設定手段が、第1の整数パラメータと第2の整数パラメータとの組によって構成される、第1の個数組のパラメータを設定する第1のパラメータ設定ステップと、
前記第1のセキュリティ装置の第1の線形作用演算が、第2のセキュリティ装置と共用される整数係数の共通多項式をa(x)とし、前記共通多項式の次数をdeg a(x)とし、前記第1の整数パラメータをsmとし、前記第2の整数パラメータをqmとし、前記第1の個数をrとし、∂を微分作用素とし、イデアルであって、該イデアルに対して行われた、整数係数の多項式の変数を任意の整数値だけ加算した該多項式の演算結果が、再び、該イデアルとなる集合であるイデアル集合をIとした場合における、Σn=0 deg a(x)Σm=0 r(qmsm n∂na(x)/n!)modIの演算を行うことにより、第1の演算結果を生成する第1の線形作用演算ステップと、
前記第1のセキュリティ装置の第1の演算結果開示手段が、前記第1の線形作用演算ステップによって生成された前記第1の演算結果を、前記第2のセキュリティ装置に送信する第1の演算結果開示ステップと、
前記第1のセキュリティ装置の第1の演算結果取得手段が、前記第2のセキュリティ装置によって演算された第2の演算結果を受信する第1の演算結果取得ステップと、
前記第1のセキュリティ装置の第2の線形作用演算手段が、前記第1の演算結果取得ステップによって受信された前記第2の演算結果をc(x)とし、前記第2の演算結果c(x)の次数をdeg c(x)とし、前記第1の整数パラメータをsmとし、前記第2の整数パラメータをqmとし、前記第1の個数をrとし、∂を微分作用素とし、前記イデアル集合をIとした場合における、Σn=0 deg c(x)Σm=0 r(qmsm n∂nc(x)/n!)modIの演算を行い、その演算結果を前記共通鍵 k(x) として出力する第2の線形作用演算ステップと、
前記第2のセキュリティ装置の第2のパラメータ設定手段が、第3の整数パラメータと第4の整数パラメータとの組によって構成される、第2の個数組のパラメータを設定する第2のパラメータ設定ステップと、
前記第2のセキュリティ装置の第3の線形作用演算手段が、前記共通多項式をa(x)とし、前記共通多項式の次数をdeg a(x)とし、前記第3の整数パラメータをumとし、前記第4の整数パラメータをvmとし、前記第2の個数をtとし、∂を微分作用素とし、前記イデアル集合をIとした場合における、Σn=0 deg a(x)Σm=0 t(vmum n∂na(x)/n!)modIの演算を行うことにより、前記第2の演算結果を生成する第3の線形作用演算ステップと、
前記第2のセキュリティ装置の第2の演算結果開示手段が、生成された前記第2の演算結果を、前記第1のセキュリティ装置に送信する第2の演算結果開示ステップと、
前記第2のセキュリティ装置の第2の演算結果取得手段が、前記第1のセキュリティ装置によって演算された前記第1の演算結果を受信する第2の演算結果取得ステップと、
前記第2のセキュリティ装置の第4の線形作用演算手段が、前記第2の演算結果取得ステップによって受信された前記第1の演算結果をb(x)とし、前記第2の演算結果b(x)の次数をdeg b(x)とし、前記第3の整数パラメータをumとし、前記第4の整数パラメータをvmとし、前記第2の個数をtとし、∂を微分作用素とし、前記イデアル集合をIとした場合における、Σn=0 deg b(x)Σm=0 t(vmum n∂nb(x)/n!)modIの演算を行い、その演算結果を前記共通鍵 k(x) として出力する第4の線形作用演算ステップと、
を有することを特徴とするセキュリティ方法。In a security method for sharing a common key k (x) between a first security device and a second security device using cryptographic technology,
A first parameter setting step in which the first parameter setting means of the first security device sets a first number of parameters configured by a set of a first integer parameter and a second integer parameter. When,
In the first linear operation of the first security device, a common polynomial of integer coefficients shared with the second security device is a (x), the degree of the common polynomial is deg a (x), and The first integer parameter is s m , the second integer parameter is q m , the first number is r, ∂ is a differential operator, and an ideal is performed on the ideal, Σ n = 0 deg a (x) Σ m when the result of the calculation of the polynomial obtained by adding the integer coefficient polynomial variable to the integer is again the ideal set that is the ideal set. = 0 r (q m s m n ∂ n a (x) / n!) Mod I, a first linear action calculation step for generating a first calculation result;
A first calculation result that the first calculation result disclosure means of the first security device transmits the first calculation result generated by the first linear action calculation step to the second security device. A disclosure step;
A first calculation result acquisition step in which the first calculation result acquisition means of the first security device receives the second calculation result calculated by the second security device;
Said second linear effect computing unit of the first security device, the second operation result received by said first calculation result acquisition step and c (x), the second operation result c (x the order of) the deg c (x), the first integer parameter and s m, the second integer parameter and q m, the first number and r, and differential operator of ∂, the ideal in the case of a set was I, Σ n = 0 deg c (x) Σ m = 0 r (q m s m n ∂ n c (x) / n!) have line calculation of MODI, the result of the operation A second linear action calculating step for outputting as a common key k (x) ;
A second parameter setting step in which the second parameter setting means of the second security device sets a second number of sets of parameters configured by a set of a third integer parameter and a fourth integer parameter; When,
A third linear action computing means of the second security device, wherein the common polynomial is a (x), the degree of the common polynomial is deg a (x), the third integer parameter is u m , Σ n = 0 deg a (x) Σ m = 0 t when the fourth integer parameter is v m , the second number is t, ∂ is a differential operator, and the ideal set is I (v m u m n ∂ n a (x) / n!) A third linear action calculation step for generating the second calculation result by calculating modI;
The second operation result disclosure means the second security device, the generated second operation result, a second operation result disclosed sending to the first security device,
A second calculation result acquisition step in which the second calculation result acquisition means of the second security device receives the first calculation result calculated by the first security device;
Said fourth linear effect computing unit of the second security device, said received by the second calculation result acquisition step the first operation result and b (x), the second operation result b (x ) Is deg b (x), the third integer parameter is u m , the fourth integer parameter is v m , the second number is t, ∂ is a differential operator, and the ideal in the case of a set was I, Σ n = 0 deg b (x) Σ m = 0 t (v m u m n ∂ n b (x) / n!) have line calculation of MODI, the result of the operation A fourth linear action calculation step to output as a common key k (x) ;
A security method characterized by comprising:
第1のセキュリティ装置において、
第1の整数パラメータと第2の整数パラメータとの組によって構成される、第1の個数組のパラメータを設定し、
第2のセキュリティ装置と共用される整数係数の共通多項式をa(x)とし、前記共通多項式の次数をdeg a(x)とし、前記第1の整数パラメータをsmとし、前記第2の整数パラメータをqmとし、前記第1の個数をrとし、∂を微分作用素とし、イデアルであって、該イデアルに対して行われた、整数係数の多項式の変数を任意の整数値だけ加算した該多項式の演算結果が、再び、該イデアルとなる集合であるイデアル集合をIとした場合における、Σn=0 deg a(x)Σm=0 r(qmsm n∂na(x)/n!)modIの演算を行うことにより、第1の演算結果を生成し、
生成した前記第1の演算結果を公開鍵として送信し、
前記第2のセキュリティ装置において、
第3の整数パラメータと第4の整数パラメータとの組によって構成される、第2の個数組のパラメータを設定し、
前記第1のセキュリティ装置によって送信された前記第1の演算結果を、公開鍵として受信し、
受信した前記第1の演算結果をb(x)とし、前記第1の演算結果の次数をdeg b(x)とし、前記第3の整数パラメータをumとし、前記第4の整数パラメータをvmとし、前記第2の個数をtとし、∂を微分作用素とし、前記イデアル集合をIとした場合における、Σn=0 deg b(x)Σm=0 t(vmum n∂nb(x)/n!)modIの演算を行うことにより、第2の演算結果を生成し、
前記第2の演算結果と、通信内容である平文との排他的論理和を、暗号文として演算し、
前記第1のセキュリティ装置と共用される整数係数の共通多項式をa(x)とし、前記共通多項式の次数をdeg a(x)とし、前記第3の整数パラメータをumとし、前記第4の整数パラメータをvmとし、前記第2の個数をtとし、∂を微分作用素とし、前記イデアル集合をIとした場合における、Σn=0 deg a(x)Σm=0 t(vmum n∂na(x)/n!)modIの演算を行うことにより、第3の演算結果を生成し、
演算された前記暗号文と、前記第3の演算結果とを送信し、
前記第1のセキュリティ装置において、
前記第1のセキュリティ装置によって演算された前記暗号文と、前記第3の演算結果とを受信し、
受信された前記第3の演算結果をc(x)とし、前記第2の演算結果の次数をdeg c(x)とし、前記第1の整数パラメータをsmとし、前記第2の整数パラメータをqmとし、前記第1の個数をrとし、∂を微分作用素とし、前記イデアル集合をIとした場合における、Σn=0 deg c(x)Σm=0 r(qmsm n∂nc(x)/n!)modIの演算を行うことにより、第4の演算結果を生成し、
前記第4の演算結果と、前記暗号文と、の排他的論理和を演算すること、
を特徴とするセキュリティ方法。In security methods using cryptography,
In the first security device,
Setting a first number of parameters configured by a set of a first integer parameter and a second integer parameter;
Common polynomial integer coefficients shared with the second security system and a (x), the order of the common polynomial with deg a (x), the first integer parameter and s m, the second integer The parameter is q m , the first number is r, ∂ is a differential operator, and an ideal is obtained by adding an integer value to an integer coefficient polynomial variable performed on the ideal. Σ n = 0 deg a (x) Σ m = 0 r (q m s m n ∂ n a (x) where I is the ideal set that is the ideal set again / n!) modI operation generates the first operation result,
Transmitting the generated first calculation result as a public key;
In the second security device,
Setting a second number of parameters configured by a set of a third integer parameter and a fourth integer parameter;
Receiving the first calculation result transmitted by the first security device as a public key;
The received first calculation result is b (x), the order of the first calculation result is deg b (x), the third integer parameter is u m, and the fourth integer parameter is v Σ n = 0 deg b (x) Σ m = 0 t (v m u m n ∂ n, where m is the second number, t is the differential operator, and the ideal set is I b (x) / n!) The second operation result is generated by performing modI operation.
An exclusive OR of the second calculation result and plaintext as communication contents is calculated as ciphertext,
The common polynomial of integer coefficients shared with the first security device is a (x), the degree of the common polynomial is deg a (x), the third integer parameter is u m, and the fourth Σ n = 0 deg a (x) Σ m = 0 t (v m u in the case where the integer parameter is v m , the second number is t, ∂ is a differential operator, and the ideal set is I m n ∂ n a (x) / n!) modI operation generates the third operation result,
Sending the computed ciphertext and the third computation result;
In the first security device,
Receiving the ciphertext computed by the first security device and the third computation result;
Received the third operation results as c (x), the order of the second operation results and deg c (x), the first integer parameter and s m, the second integer parameter q m , where the first number is r, ∂ is a differential operator, and the ideal set is I, Σ n = 0 deg c (x) Σ m = 0 r (q m s m n ∂ n c (x) / n!) modI operation generates the fourth operation result,
Calculating an exclusive OR of the fourth operation result and the ciphertext;
A security method characterized by the above.
第1のセキュリティ装置において、
第1の整数パラメータと第2の整数パラメータとの組によって構成される、第1の個数組のパラメータを設定し、
第2のセキュリティ装置と共用される整数係数の共通多項式をa(x)とし、前記共通多項式の次数をdeg a(x)とし、前記第1の整数パラメータをsmとし、前記第2の整数パラメータをqmとし、前記第1の個数をrとし、∂を微分作用素とし、イデアルであって、該イデアルに対して行われた、整数係数の多項式の変数を任意の整数値だけ加算した該多項式の演算結果が、再び、該イデアルとなる集合であるイデアル集合をIとした場合における、Σn=0 deg a(x)Σm=0 r(qmsm n∂na(x)/n!)modIの演算を行うことにより、第1の演算結果を生成し、
生成された前記第1の演算結果を公開鍵として送信し、
第3の整数パラメータと第4の整数パラメータとの組によって構成される、第2の個数組のパラメータを設定し、
前記共通多項式をa(x)とし、前記共通多項式の次数をdeg a(x)とし、前記第3の整数パラメータをumとし、前記第4の整数パラメータをvmとし、前記第2の個数をtとし、∂を微分作用素とし、前記イデアル集合をIとした場合における、Σn=0 deg a(x)Σm=0 t(vmum n∂na(x)/n!)modIの演算を行うことにより、第2の演算結果を生成し、
前記第1の整数パラメータをsmとし、前記第2の整数パラメータをqmとし、前記第1の個数をrとし、前記第3の整数パラメータをumとし、前記第4の整数パラメータをvmとし、前記第2の個数をtとし、前記第2のセキュリティ装置と共用される多項式に値を持つハッシュ関数をHとし、平文をMとし、前記第2の演算結果をc(x)とした場合におけるΣm=0 tvmxum+Σm=0 rqmxsmH(M,c(x))の演算を行い、該演算結果をd(x)とした場合における多項式対(c(x),d(x))を生成し、
生成された前記多項式対を前記第2のセキュリティ装置に送信し、
前記第2のセキュリティ装置において、
前記第1のセキュリティ装置によって公開された前記公開鍵を受信し、
第1の多項式と第2の多項式から構成される多項式対を受信し、
前記第1のセキュリティ装置と共用される整数係数の共通多項式をa(x)とし、前記公開鍵をb(x)とし、前記第1の多項式をS1とし、前期第2の多項式をS2とし、前記通信相手と共用される多項式に値を持つハッシュ関数をHとし、平文をMとし、δを任意の多項式g(x)に対して多項式g(x)-g(x-1)を対応させる作用素とし、前記イデアル集合をIとした場合における、S2(1-δ)a(x)-H(M,S1(x))(1-δ)b(x)-S1(x)modIの演算を行い、該演算結果が0となった場合には、署名が有効である旨の出力を行い、該演算結果が0とならなかった場合には、署名は無効である旨の出力を行う、
ことを特徴とするデジタル署名検証装置。In a security method for generating and verifying a digital signature,
In the first security device,
Setting a first number of parameters configured by a set of a first integer parameter and a second integer parameter;
Common polynomial integer coefficients shared with the second security system and a (x), the order of the common polynomial with deg a (x), the first integer parameter and s m, the second integer The parameter is q m , the first number is r, ∂ is a differential operator, and an ideal is obtained by adding an integer value to an integer coefficient polynomial variable performed on the ideal. Σ n = 0 deg a (x) Σ m = 0 r (q m s m n ∂ n a (x) where I is the ideal set that is the ideal set again / n!) modI operation generates the first operation result,
Transmitting the generated first calculation result as a public key;
Setting a second number of parameters configured by a set of a third integer parameter and a fourth integer parameter;
The common polynomial is a (x), the degree of the common polynomial is deg a (x), the third integer parameter is u m , the fourth integer parameter is v m, and the second number Σ n = 0 deg a (x) Σ m = 0 t (v m u m n ∂ n a (x) / n!), Where t is t, ∂ is a differential operator, and the ideal set is I By performing a modI operation, a second operation result is generated,
And the first integer parameter and s m, the second integer parameter and q m, the first number and r, the third integer parameter of the u m, the fourth integer parameters v m , the second number as t, a hash function having a value in a polynomial shared with the second security device as H, plaintext as M, and the second operation result as c (x) Σ m = 0 t v m x um + Σ m = 0 r q m x sm H (M, c (x)) is calculated and the result of the calculation is d (x). (C (x), d (x))
Sending the generated polynomial pair to the second security device;
In the second security device,
Receiving the public key published by the first security device;
Receiving a polynomial pair composed of a first polynomial and a second polynomial;
The common polynomial of integer coefficients shared with the first security device is a (x), the public key is b (x), the first polynomial is S 1, and the second polynomial is S 2. H is a hash function having a value in a polynomial shared with the communication partner, H is a plaintext, and δ is a polynomial g (x) -g (x-1) for an arbitrary polynomial g (x) S 2 (1-δ) a (x) -H (M, S 1 (x)) (1-δ) b (x) -S 1 (where the ideal set is I and the corresponding operator is I x) When modI operation is performed and the operation result is 0, an output indicating that the signature is valid is output. When the operation result is not 0, the signature is invalid. Output,
A digital signature verification apparatus characterized by the above.
整数係数の多項式がなす環のイデアルであって、δを任意の多項式g(x)に対して多項式g(x)-g(x-1)を対応させる作用素とし、degf(x)をf(x)の次数とした場合における、{f(x), δf(x),δ2f(x),…,δdegf(x)f(x)}によって生成される集合であること、
を特徴とする請求項8から10の何れかに記載のセキュリティ方法。The ideal set is
An ideal of a ring formed by a polynomial of integer coefficients, where δ is an operator that associates a polynomial g (x) -g (x-1) with an arbitrary polynomial g (x), and degf (x) is f ( x) is a set generated by {f (x), δf (x), δ 2 f (x), ..., δ degf (x) f (x)}
Security method according to claims 8 to any one of 10, wherein.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002279664A JP3883942B2 (en) | 2002-09-25 | 2002-09-25 | Security device, security method, security program, and recording medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002279664A JP3883942B2 (en) | 2002-09-25 | 2002-09-25 | Security device, security method, security program, and recording medium |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004120238A JP2004120238A (en) | 2004-04-15 |
JP3883942B2 true JP3883942B2 (en) | 2007-02-21 |
Family
ID=32274601
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002279664A Expired - Fee Related JP3883942B2 (en) | 2002-09-25 | 2002-09-25 | Security device, security method, security program, and recording medium |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3883942B2 (en) |
-
2002
- 2002-09-25 JP JP2002279664A patent/JP3883942B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2004120238A (en) | 2004-04-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110351096B (en) | Multiple signature method, signature center, program medium, and electronic device | |
JP4782343B2 (en) | How to authenticate anonymous users while reducing the possibility of “middleman” fraud | |
CN115102688B (en) | Data processing method, polynomial calculation method and electronic equipment | |
JP6556955B2 (en) | Communication terminal, server device, program | |
CN109359471B (en) | Encryption method, device, system, equipment and medium based on user identity | |
CN115549891B (en) | Homomorphic encryption method, homomorphic decryption method, homomorphic calculation method and equipment | |
WO2006126668A1 (en) | Pseudo-random function calculating device and method, and number limited anonymous authentication system and method | |
US8527766B2 (en) | Reducing leakage of information from cryptographic systems | |
JP2004336794A (en) | Method and apparatus for generation of public key based on user-defined id in cryptosystem | |
WO2022142837A1 (en) | Hybrid key derivation to secure data | |
CN108880807A (en) | Private key signature process method, apparatus, equipment and medium | |
EP3817323B1 (en) | Encryption processing system, encryption processing method, and program | |
CN108292347A (en) | A kind of user property matching process and terminal | |
JP6294882B2 (en) | Key storage device, key storage method, and program thereof | |
EP2395698B1 (en) | Implicit certificate generation in the case of weak pseudo-random number generators | |
CN115865348B (en) | Data encryption method, homomorphic calculation method and equipment | |
JP3883942B2 (en) | Security device, security method, security program, and recording medium | |
TWI701931B (en) | Digital signature method with hierarchical mechanism and hardware wallet device suitable therefore | |
JP4598437B2 (en) | Decryption information generation device and program thereof, distribution content generation device and program thereof, and content decryption device and program thereof | |
JP4014490B2 (en) | Security device, security method, program, and recording medium | |
JP2005084568A (en) | Security method, security device and security program | |
JP3607191B2 (en) | Non-repudiation signature scheme based on secondary field | |
Roy | A homomorphism based zero knowledge proof of authentication for chinese remainder theorem based secret sharing | |
JP3883933B2 (en) | Security device, security method, security program, and recording medium | |
JP2009033608A (en) | Validity verification apparatus and method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040712 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060912 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061002 |
|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20061002 |
|
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: 20061031 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20061115 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101124 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101124 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111124 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111124 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121124 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |