JP3883942B2 - Security device, security method, security program, and recording medium - Google Patents

Security device, security method, security program, and recording medium Download PDF

Info

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
Application number
JP2002279664A
Other languages
Japanese (ja)
Other versions
JP2004120238A (en
Inventor
剛 山本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2002279664A priority Critical patent/JP3883942B2/en
Publication of JP2004120238A publication Critical patent/JP2004120238A/en
Application granted granted Critical
Publication of JP3883942B2 publication Critical patent/JP3883942B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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 nna(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 nna(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 nna(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 nna(x)/n!)modIの演算を行う。
【0015】
その後、共通多項式a(x)に線形作用素Σm=0 tvm(1-δ)umを作用させた結果、すなわち、Σn=0 deg a(x)Σm=0 t(vmum nna(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 nnc(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 nnb(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 nna(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 nnc(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 nna(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 nna(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 nnc(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 nnb(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 nna(x)/n!)modI、c(x)=Σn=0 deg a(x)Σm=0 t(vmum nna(x)/n!)modI、k(x)=Σn=0 deg c(x)Σm=0 r(qmsm nnc(x)/n!)modI、k(x)=Σn=0 deg b(x)Σm=0 t(vmum nnb(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 nna(x)/n!)modI、c(x)=Σn=0 deg a(x)Σm=0 t(vmum nna(x)/n!)modIの演算を行い、これらの演算結果を、演算結果開示手段25、35において通信相手に開示し、演算結果取得手段26、36において、通信相手によって演算された演算結果を取得し、線形作用演算手段27、37において、k(x)=Σn=0 deg c(x)Σm=0 r(qmsm nnc(x)/n!)modI、k(x)=Σn=0 deg b(x)Σm=0 t(vmum nnb(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 nna(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 nna(x)/n!)modIの演算を行う。
【0058】
その後、共通多項式a(x)に線形作用素Σm=0 rqm(1-δ)smを作用させた結果、すなわち、Σn=0 deg a(x)Σm=0 r(qmsm nna(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 nnb(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 nna(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 nnc(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 nna(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 nnc(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 nna(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 nnb(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 nna(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 nna(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 nnb(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 nnc(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 nna(x)/n!)modI、c(x)=Σn=0 deg a(x)Σm=0 t(vmum nna(x)/n!)modI、k(x)=Σn=0 deg c(x)Σm=0 r(qmsm nnc(x)/n!)modI、k(x)=Σn=0 deg b(x)Σm=0 t(vmum nnb(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 nna(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 nnc(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 nnb(x)/n!)modIの演算を行うことにより、第2の演算結果である多項式k(x)を生成し、排他的論理和演算手段85cにおいて、多項式k(x)と通信内容である平文Mとの排他的論理和を暗号文として演算し(H(k(x))(+)M)、線形作用演算手段86において、Σn=0 deg a(x)Σm=0 t(vmum nna(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 nna(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 nna(x)/n!)modIの演算を行う。この共通多項式a(x)に線形作用素Σm=0 rqm(1-δ)smを作用させた結果、すなわち、Σn=0 deg a(x)Σm=0 r(qmsm nna(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 nna(x)/n!)modIの演算を行い、その演算結果c(x)を算出する。さらに、セキュリティ装置101は、設定したr個の整数組(s,q)、t個の整数組(u,v)及び多項式c(x)を用い、Σm=0 tvmxumm=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 tvmxumm=0 rqmxsmH(M,c(x)))(1-δ)a(x)-H(M,c(x))(1-δ)b(x)- c(x)=(Σm=0 tvm(1-δ)umm=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 tvmxumm=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 nna(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 nna(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 tvmxumm=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 nna(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 nna(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 tvmxumm=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 nna(x)/n!)modI、c(x)=Σn=0 deg a(x)Σm=0 t(vmum nna(x)/n!)modIの演算を行うこととしたため、秘密パラメータ(r,s,k,t,u,v)の大きさを大きくした場合であっても、公開鍵生成時、署名生成時において、セキュリティ装置120によって行われる四則演算の回数が増大することはなく、結果、秘密パラメータの大きさに依存して計算量が増大する従来の離散対数問題の困難性を応用したデジタル署名方式に比べ、大幅に利便性が向上する。
【0119】
また、本形態の例におけるセキュリティ装置120では、線形作用演算手段122において、Σn=0 deg a(x)Σm=0 r(qmsm nna(x)/n!)modIの演算を行うことにより、第1の演算結果b(x)を生成し、公開鍵公開手段123において、線形作用演算手段122によって生成された演算結果b(x)を公開鍵として公開し、線形作用演算手段124aにおいて、Σn=0 deg a(x)Σm=0 t(vmum nna(x)/n!)modIの演算を行うことにより、第2の演算結果c(x)を生成し、多項式対生成手段124cにおいて、Σm=0 tvmxumm=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 security system 1 in the present embodiment.
As illustrated in FIG. 1, the security system 1 includes security devices 2 and 3, and distributes a common key between the security devices 2 and 3.
[0010]
In the case of this example, the security device 2 includes a first parameter setting means 2a configured by a set of a first integer parameter and a second integer parameter to set a first number of parameters, and a set. For the first integer parameter 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-δ)smSimilarly, the security device 3 has a second number of parameters composed of a combination of a third integer parameter and a fourth integer parameter. For the second parameter setting means 3a and set to be set, the third integer parameter is set to umAnd the fourth integer parameter is vmΣ in the case where the second number is t and δ is an operator that associates a polynomial g (x) -g (x-1) with an arbitrary polynomial g (x).m = 0 tvm(1-δ)umThe linear action calculating means 3b and 3c are provided.
[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 nna (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 security system 1 according to this embodiment, for example, the security device 2 first generates a common polynomial a (x) that is a polynomial of integer coefficients, and generates the generated common polynomial a ( x) is transmitted to the security device 3.
Then, for example, next, the security device 2 determines r integer sets (s, q) in the parameter setting means 2a, and the linear operator Σ for the common polynomial a (x) in the linear action calculation means 2b.m = 0 rqm(1-δ)smAct. Specifically, for example, in the parameter setting means 2a, s = (s1, s2,…, Sr) And q = (q1, q2,…, Qr), And in the linear action calculation means 2b, Σn = 0 deg a (x)Σm = 0 r(qmsm nna (x) / n!) modI is calculated. Note that when a vector space V, V ′ on a field K is given, an operator A: V → V ′ is a linear operator. A (x + y) for any x, y∈V = A (x) + A (y) holds, and A (kx) = kA (x) holds for any x∈V and k∈K.
[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 nna (x) / n!) modI operation result b (x) is, for example, stored in the security device 3 in a state in which r, s, q are kept secret on the security device 2 side where these integer parameters are set. Sent.
On the other hand, the security device 3 determines t integer sets (u, v) in the parameter setting means 3a, and the linear operator Σ for the common polynomial a (x) in the linear action calculation means 3b.m = 0 tvm(1-δ)umAct. Specifically, for example, in the parameter setting means 3a, u = (u1, u2, ..., ur) And v = (v1, v2, ..., vr), And in the linear action calculation means 3b, Σn = 0 deg a (x)Σm = 0 t(vmum nna (x) / n!) modI is calculated.
[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 nna (x) / n!) modI calculation result c (x) is, for example, stored in the security device 2 in a state where t, u, v are kept secret on the security device 3 side where these integer parameters are set. Sent.
The security device 2 to which the polynomial c (x) is transmitted from the security device 3 is, for example, a linear operator Σ in the polynomial c (x) in the linear operation computing means 2c.m = 0 rqm(1-δ)smTo generate a common key. Specifically, for example, in the linear action calculating means 2b, Σn = 0 deg c (x)Σm = 0 r(qmsm nnc (x) / n!) modI is calculated, and the calculation result is set as a common key K (x).
[0016]
On the other hand, the security device 3 to which the polynomial b (x) is transmitted from the security device 2 is, for example, a linear operator Σ in the polynomial b (x) in the linear operation calculation means 3c.m = 0 tvm(1-δ)umTo generate a common key. Specifically, for example, in the linear action calculating means 3b, Σn = 0 deg b (x)Σm = 0 t(vmum nnb (x) / n!) modI is calculated, and the calculation result is set as a common key K (x).
Here, the number of four arithmetic operations required for the polynomial operation performed in the linear action calculating means 2b, 2c, 3b, 3c described above is the secret parameter (r, s, k, t, It does not depend on the size of u, v). 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 devices 2 and 3 at the time of key distribution does not increase. As a result, the convenience is greatly improved as compared with the conventional Diffile-Hellman key distribution method in which the amount of calculation increases depending on the size of the secret parameter.
[0017]
Next, details of this embodiment will be described.
FIG. 2 is a diagram illustrating the overall configuration of the security system 10 according to this embodiment.
As illustrated in FIG. 2, the security system 10 includes, for example, security devices 20 and 30 that distribute a common key to each other, and a network 40 that connects the security devices 20 and 30 so that they can communicate with each other. The security devices 20 and 30 are electrically connected or connectable by wire or wireless so that they can exchange information with each other via the network 40.
[0018]
The security devices 20 and 30 include, for example, data line terminators such as modems, DSUs (Digital Service Units), NCUs (Network Control Units), TAs (Terminal Adapters), or are configured by connected computers. . Predetermined mail software and a WWW browser are installed in the security devices 20 and 30. By using the mail software and WWW browser, the security device 20 is connected via a mail server or WWW server (not shown). , 30 can communicate with each other.
[0019]
The network 40 is, for example, the Internet, an intranet, an extranet, a LAN (Local Area Network), a WAN (Wide Area Network), a VAN (Value Added Network), or the like, and there is no particular limitation on the form thereof. The communication line may be any line such as a dedicated line or a switched line, and the network connection form is not particularly limited, such as a ring type, a mesh type, a star type, a bus type, or a tree type. Further, the line connection method is not particularly limited and may be any method such as a point-to-point method, a multipoint method, a line concentrating method, or the like.
[0020]
The network 40 is configured based on a predetermined protocol such as OSI (Open Systems Interconnection), TCP / IP (Transmission Control Protocol / Internet Protocol), IEEE 802.3, IEEE 802.4, IEEE 802.5, and the like. The security devices 20 and 30 exchange information via the network 40 according to this protocol.
In FIG. 2, the security system 10 is configured by the two security devices 20 and 30, but a configuration in which more security devices 20 and 30 are provided and a common key is distributed between the security devices. It is good.
[0021]
FIG. 3 is a block diagram illustrating a hardware configuration of the security device 20.
As illustrated in FIG. 3, the security device 20 includes, for example, a central processing unit (CPU) 20a, a main storage device 20b, an external storage device 20c, an input device 20d, a recording medium read / write device 20e, and an output device. 20f, a communication control device 20g, and a bus 20h. The communication control device 20g is connected so as to be communicable with the network 40, or is configured to be connectable.
[0022]
The CPU 20a is, for example, a central processing unit of a CISC (Complex Instruction Set Computer) system or a RISC (Reduced Instruction Set Computer) system having a control device and an arithmetic unit, and receives a clock signal supplied from a transmitter (not shown). Synchronously executes various programs such as operating system and application program stored in the main storage device 20b, controls peripheral devices, calls necessary data, calculates and processes the called data, and stores the data after the calculation and processing. Various processes such as storage in memory and output to peripheral devices are performed.
[0023]
The main storage device 20b is, for example, a storage device that allows the CPU 20a to directly read and write data. For example, an operating system, application programs, data, drivers for controlling peripheral devices, and the like are read into the main storage device 20b, and the CPU 20a executes a series of operations by executing the operating system and the like read into the main storage device 12. Perform the process. For example, a high-speed storage element such as a semiconductor memory is used as the main storage device 20b, and the physical address in the main storage device 20b is a virtual address of the external storage device 20c by a method such as a paging method or a segmentation method. Associated with space.
[0024]
The external storage device 20c is, for example, a hard disk device that records data by rotating a thin disk deposited with a magnetic material at high speed and magnetizing the magnetic material with a magnetic head.
The input device 20d is an input / output device such as a keyboard and a mouse, for example. The recording medium read / write device 20e is, for example, a device that reads and writes information on a flexible disk and the like, and reads information from a compact disk and the like.
The output device 20f is, for example, a CRT (Cathode-ray Tube) display that displays an image by applying an electron beam to a fluorescent material on the screen surface, or a liquid crystal whose molecular arrangement changes when a voltage is applied. A liquid crystal display or the like that is used, and displays a predetermined video based on the supplied analog signal.
[0025]
The communication control device 20g is, for example, a general-purpose synchronous / asynchronous transmission / reception circuit such as USART (Universal Synchronous and Asynchronous Receiver-Transmitter), and performs serial conversion of data during data transmission / reception via the network 40. The bus 20d includes, for example, a data bus, an address bus, a control bus, and the like, and includes a CPU 20a, a main storage device 20b, an external storage device 20c, an input device 20d, a recording medium read / write device 20e, an output device 20f, and a communication control device 20g. Exchange data, address information, and control information between them.
[0026]
Although not described here, the security device 30 also has a hardware configuration similar to that of the security device 20, for example.
FIG. 4 exemplifies the processing function of the security device 20 constructed by specific means in which the hardware and software cooperate by executing a predetermined program (software) in the hardware illustrated in FIG. It is a functional block diagram.
As illustrated in FIG. 4, the security device 20 of this example uses a common polynomial generator 21 that generates a common polynomial of integer coefficients shared with a communication partner, and a common polynomial generated by the common polynomial generator 21 as a communication partner. Common polynomial disclosure means 22 to be disclosed, parameter setting means 23 for setting a first number of parameters configured by a set of a first integer parameter and a second integer parameter, an integer coefficient shared with a communication partner Let a (x) be the common polynomial of, let deg a (x) be the degree of the common polynomial, and let s be the first integer parametermAnd 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 nna (x) / n!) modI calculation to generate a first calculation result, a linear action calculation means 24, and a calculation result disclosure means 25 for disclosing the generated first calculation result to the communication partner. , The calculation result acquisition means 26 for acquiring the second calculation result calculated by the communication partner, the second calculation result acquired by the calculation result acquisition means 26 as c (x), and the second calculation result c (x ) Is the degree deg c (x), and the first integer parameter is smAnd the second integer parameter is qm, Where the first number is r, ∂ is the differential operator, and the ideal set is In = 0 deg c (x)Σm = 0 r(qmsm nnc (x) / n!) The linear function calculation means 27 for calculating modI, the control means 28 for controlling the entire security device 20, and the storage means 29 for storing various information are provided as processing functions.
[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 parameter setting unit 23 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. It has an integer value calculation means 23b for generating a predetermined integer value using the pseudo random number generated by the generation means 23a. Further, in this example, the linear action computing means 24 includes an integer computing means 24 a that performs integer computation, a polynomial addition means 24 b that performs polynomial addition computation, and a polynomial differentiation means 24 c that performs polynomial differentiation computation. Includes an integer arithmetic means 27a for performing integer arithmetic, a polynomial addition means 27b for performing polynomial addition arithmetic, and a polynomial differentiating means 27c for performing polynomial differential arithmetic.
[0028]
Further, as illustrated in FIG. 4, the common polynomial generation unit 21, the common polynomial disclosure unit 22, the parameter setting unit 23, the linear action calculation unit 24, the calculation result disclosure unit 25, the calculation result acquisition unit 26, and the linear action calculation unit 27. The storage means 29 is configured to be capable of at least one of providing information to the control means 28 and obtaining information from the control means 28, and the common polynomial disclosure means 22 and the calculation result disclosure means 25 include: For providing information to the network 40, the calculation result acquisition means 26 is configured to be able to acquire information from the network 40, respectively.
[0029]
FIG. 5 illustrates the processing function of the security device 30 constructed by specific means in which the hardware and software cooperate by executing a predetermined program (software) in the hardware illustrated in FIG. 3. It is a functional block diagram.
As illustrated in FIG. 5, the security device 30 of this example includes a common polynomial acquisition unit 32 that receives a common polynomial of integer coefficients shared with a communication partner, a parameter setting unit 33, a linear action calculation unit 34, and calculation result disclosure. Means 35, calculation result acquisition means 36, linear action calculation means 37, control means 38 for controlling the entire security device 30, and storage means 29 are provided as processing functions.
[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. Means 33a and an integer value calculating means 33b for generating a predetermined integer value using the pseudo random number generated by the pseudo random number generating means 33a. Further, in this example, the linear action computing means 34 includes an integer computing means 34 a that performs integer computation, a polynomial addition means 34 b that performs polynomial addition computation, and a polynomial differentiation means 34 c that performs polynomial differentiation computation, and a linear action computation means 37. Includes an integer arithmetic unit 37a that performs integer arithmetic, a polynomial addition unit 37b that performs addition operation of polynomials, and a polynomial differentiation unit 37c that performs differential operation of polynomials.
[0031]
Further, as illustrated in FIG. 5, the common polynomial acquisition unit 32, the parameter setting unit 33, the linear action calculation unit 34, the calculation result disclosure unit 35, the calculation result acquisition unit 36, the linear action calculation unit 37, and the storage unit 39 include: It is configured so that at least one of provision of information to the control unit 38 and acquisition of information from the control unit 38 is possible, and the operation result disclosure unit 35 provides information to the network 40 by means of common polynomial acquisition unit. 32 and the calculation result acquisition means 36 are configured to be able to acquire information from the network 40, respectively.
[0032]
Next, processing operations of the security system 10 and the security devices 20 and 30 in this embodiment will be described.
FIG. 6 is a flowchart for explaining an example of processing operations of the security system 10 and the security devices 20 and 30 in this embodiment. The solid-line arrows in this flowchart exemplify a series of processing flow in the entire security system 10, and the broken-line arrows indicate a series of processing flow in the entire security system 10 and the security devices 20 and 30, respectively. FIG. 6 illustrates the processing flow of the security devices 20 and 30 alone with respect to portions where the processing flow differs. Here, for ease of explanation, the processing operation will be described along the processing flow as shown in FIG. 6 for the sake of convenience. However, the security devices 20 and 30 are each in an order different from the flow of this flowchart. Processing may be performed, and the security devices 20 and 30 may perform each processing simultaneously in parallel.
[0033]
Hereinafter, description will be given along this flowchart.
Step S1:
In this step, the security device 20 sets a common polynomial a (x) of integer coefficients.
The setting of the common polynomial a (x) is performed by, for example, the common polynomial generation unit 21 of the security device 20. Specifically, for example, first, pseudo-random number generation means 21a generates pseudo-random numbers using a pseudo-random number generation algorithm based on the computational complexity theory configured using a one-way hash function such as SHA-1. Next, in the polynomial generation means 21b, the pseudo random number is processed into a predetermined number of digits, and further, an integer coefficient of the polynomial is set by subtracting a predetermined value, etc., and this integer coefficient is used in common. Set the polynomial a (x).
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 storage unit 29 is recorded in the storage unit 29 and used for specifying the common polynomial a (x) sent to the common polynomial disclosure unit 22, for example. The information is used for the next step S2.
[0034]
Step S2:
In this step, the security device 20 transmits the common polynomial a (x).
The transmission of the common polynomial a (x) is performed by, for example, the common polynomial disclosure unit 22 of the security device 20. Specifically, for example, information for identifying the common polynomial a (x) is presented to an e-mail addressed to the security device 30 from the security device 20 or a homepage on the Internet that can be browsed by the security device 30 And uploading information for specifying the common polynomial a (x).
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 security device 30 receives the common polynomial a (x).
The reception of the common polynomial a (x) is performed by, for example, the common polynomial acquisition unit 32 of the security device 30. Specifically, for example, the security device 30 accesses a mail server on the Internet and receives an e-mail addressed to the security device 30 sent from the security device 20, or specifies the common polynomial a (x) This is done by accessing a homepage on the Internet on which information for uploading is uploaded.
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 security device 20 sets r integer sets (s, q).
The setting of r integer sets (s, q) is performed by the parameter setting means 23 of the security device 20, for example. Specifically, for example, first, pseudo-random number generation means 23a generates pseudo-random numbers using 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. Next, in the integer value calculation means 23b, this pseudo random number is processed into a predetermined number of digits, and further, a predetermined value is subtracted, etc., so that a predetermined r number of integer sets (s, q), that is, , S = (s1, s2,…, Sr) And q = (q1, q2,…, Qr) And set.
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 security device 20 calculates a polynomial.
The calculation of the polynomial in this step is performed, for example, in the linear action calculation means 24 of the security device 20. When performing this polynomial calculation, for example, first, the control means 28 reads information for specifying the common polynomial a (x) stored in the storage means 29 in step S1, and uses the information as the linear action calculation means 24. Send to. The linear action computing means 24 to which this information has been sent calculates Σ to the common polynomial a (x) through a calculation using this information and the information sent in the process of step S4.m = 0 rqm(1-δ)smPerform the process to act. In this example, this common polynomial a (x)m = 0 rqm(1-δ)smAs a specific calculation method for operating the linear action calculation means 24, an integer calculation means 24a, a polynomial addition means 24b and a polynomial differentiation means 24c are used, and b (x) = Σn = 0 deg a (x)Σm = 0 r(qmsm nna (x) / n!) modI is calculated. Here, the reason why the remainder operation is performed by such an ideal set I will be described later.
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 result disclosing means 25, the process proceeds to step S6.
[0038]
Step S6:
In this step, the security device 20 transmits the polynomial b (x).
The transmission of the polynomial b (x) is performed by, for example, the calculation result disclosure means 25 of the security device 20, but at this time, the r integer sets (s, q) are not disclosed, and the r integer sets ( s, q) is kept secret on the security device 20 side. Specifically, for example, information for specifying this polynomial b (x) and information for specifying r integer sets (s, q) in an e-mail addressed to the security device 30 from the security device 20 The information for specifying the polynomial b (x) is specified on the Internet homepage that can be viewed by the security device 30 without disclosure, and r integer sets (s, q) are specified. For uploading without disclosing information.
When the polynomial b (x) is thus transmitted, the process proceeds to step S7.
[0039]
Step S7:
In this step, the security device 30 receives the polynomial b (x).
Reception of the polynomial b (x) is performed, for example, by the calculation result acquisition means 36 of the security device 30. Specifically, for example, the security device 30 accesses a mail server on the Internet and receives an e-mail addressed to the security device 30 sent from the security device 20, or specifies a polynomial b (x). For example, by accessing a homepage on the Internet on which information for uploading is uploaded.
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 security device 30 sets t integer groups (u, v).
The setting of t integer sets (u, v) is performed by the parameter setting means 33 of the security device 30, for example. Specifically, for example, first, pseudo-random number generation means 33a generates pseudo-random numbers using a pseudo-random number generation algorithm based on the computational complexity theory that is configured using a one-way hash function such as SHA-1. Next, in the integer value calculation means 33b, this pseudo random number is processed into a predetermined number of digits, and further, a predetermined value is subtracted, etc., so that a predetermined t integer set (u, v), that is, , U = (u1, u2, ..., ut) And v = (v1, v2, ..., vt) And set.
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 security device 30 calculates a polynomial.
The calculation of the polynomial in this step is performed, for example, in the linear action calculation means 34 of the security device 30. When performing this polynomial calculation, for example, first, the control means 38 reads information for specifying the common polynomial a (x) stored in the storage means 39 in step S3, and uses the information as the linear action calculation means 34. Send to. The linear action calculating means 34 to which this information is sent calculates Σ to the common polynomial a (x) by calculation using this information and the information sent in the process of step S8.m = 0 tvm(1-δ)umPerform the process to act. In this example, this common polynomial a (x)m = 0 rvm(1-δ)umAs a specific calculation method for operating the linear action calculation means 34, an integer calculation means 34a, a polynomial addition means 34b and a polynomial differentiation means 34c are used, and c (x) = Σn = 0 deg a (x)Σm = 0 t(vmum nna (x) / n!) modI is calculated. Here, the reason why the remainder operation is performed by such an ideal set I will be described later.
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 security device 30 transmits the polynomial c (x).
The transmission of the polynomial c (x) is performed by, for example, the calculation result disclosure means 35 of the security device 30. At this time, the t integer sets (u, v) are not disclosed, and the t integer sets ( This is performed with u, v) kept secret on the security device 30 side. Specifically, for example, information for specifying this polynomial c (x) and information for specifying t integer sets (u, v) in an e-mail addressed to the security device 20 from the security device 30 Information for specifying the polynomial c (x) is specified on a homepage on the Internet that can be browsed by the security device 20 and t integer sets (u, v) are specified. For uploading without disclosing information.
When the polynomial c (x) is thus transmitted, the process proceeds to step S11.
[0043]
Step S11:
In this step, the security device 20 receives the polynomial c (x).
The reception of the polynomial c (x) is performed by, for example, the calculation result acquisition unit 26 of the security device 20. Specifically, for example, the security device 20 accesses a mail server on the Internet and receives an e-mail addressed to the security device 20 sent from the security device 30 or specifies the polynomial c (x). For example, by accessing a homepage on the Internet on which information for uploading is uploaded.
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 security device 20 calculates the common key k (x). The calculation of the common key k (x) in this step is performed by, for example, the linear action computing unit 27 of the security device 20. When calculating the common key k (x), for example, first, the control unit 28 stores the r integer sets (s, q) stored in the storage unit 29 in step S4 and the storage unit 29 in step S11. Information for specifying the stored polynomial c (x) is read, and the information is sent to the linear action computing means 27. When this information is sent to the linear action calculator 27, for example, the linear action calculator 27 converts the polynomial c (x) to Σm = 0 rqm(1-δ)smPerform the process to act. In the case of this example, the integer operation means 27a, the polynomial addition means 27b, and the polynomial differentiation means 27c of the linear action calculation means 27 are used, and Σn = 0 deg c (x)Σm = 0 r(qmsm nnc (x) / n!) modI is calculated and the result is output as a common key k (x). Here, the reason why the remainder operation is performed by such an ideal set I will be described later.
[0045]
Step S13:
In this step, the security device 30 calculates the common key k (x). The calculation of the common key k (x) in this step is performed by, for example, the linear action computing unit 37 of the security device 30. When calculating the common key k (x), for example, first, the control unit 38 stores t integer sets (u, v) stored in the storage unit 39 in step S8 and the storage unit 39 in step S7. The stored information for specifying the polynomial b (x) is read, and the information is sent to the linear action computing means 37. When this information is sent to the linear action calculating means 37, for example, the linear action calculating means 37 converts the polynomial b (x) into Σm = 0 tvm(1-δ)umPerform the process to act. In this example, the integer operation means 37a, the polynomial addition means 37b and the polynomial differentiation means 37c of the linear action calculation means 37 are used, and Σn = 0 deg b (x)Σm = 0 t(vmum nnb (x) / n!) modI is calculated and the result is output as a common key k (x).
[0046]
Through the above processing, the common key k (x) is distributed between the security devices 20 and 30. Next, the common key k (x) calculated by each of the security devices 20 and 30 is transmitted. The reason why the remainder operation is performed by the above-described ideal set I in the above-described steps S5, S9, S12, and S13 will be described.
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 security device 20, b (x ) To calculate k (x) in order to calculate k (x) in the security device 30 after performing a remainder operation on I to calculate (1)u, I.e., a calculation result in which b (xu) is associated with b (x), and security device 30 calculates (1-δ) to a (x) in order to calculate c (x). )uThat is, after making a (xu) correspond to a (x), the security device 20 is equal to the result of performing a remainder operation on I to calculate k (x). I can say that. The same applies to s. As a result, when the remainder operation is performed by the ideal set I as described above, the common key k (x) calculated by each of the security devices 20 and 30 is the same.
[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 security devices 20 and 30 during key distribution increases. As a result, the convenience is greatly improved as compared with the conventional Diffile-Hellman key distribution method in which the amount of calculation increases depending on the size of the secret parameter.
[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 action calculating means 24, 27, 34, 37.n = 0 deg a (x)Σm = 0 r(qmsm nna (x) / n!) modI, c (x) = Σn = 0 deg a (x)Σm = 0 t(vmum nna (x) / n!) modI, k (x) = Σn = 0 deg c (x)Σm = 0 r(qmsm nnc (x) / n!) modI, k (x) = Σn = 0 deg b (x)Σm = 0 t(vmum nnb (x) / n!) modI is calculated, so that even when the size of the secret parameter (r, s, k, t, u, v) is increased, the security device 20 is used during key distribution. , 30 does not increase the number of arithmetic operations performed, and as a result, the convenience is greatly improved compared to the conventional Diffile-Hellman key distribution method in which the amount of calculation increases depending on the size of the secret parameter. .
[0051]
Further, in the linear action calculation means 24 and 34, b (x) = Σn = 0 deg a (x)Σm = 0 r(qmsm nna (x) / n!) modI, c (x) = Σn = 0 deg a (x)Σm = 0 t(vmum nna (x) / n!) modI is calculated, the calculation results are disclosed to the communication partner in the calculation result disclosing means 25 and 35, and the calculation calculated by the communication partner is calculated in the calculation result acquiring means 26 and 36. The result is obtained, and k (x) = Σ in the linear action calculation means 27 and 37.n = 0 deg c (x)Σm = 0 r(qmsm nnc (x) / n!) modI, k (x) = Σn = 0 deg b (x)Σm = 0 t(vmum nnb (x) / n!) modI is calculated, so that even when the size of the secret parameter (r, s, k, t, u, v) is increased, the security device 20 is used during key distribution. , 30 does not increase the number of arithmetic operations performed, and as a result, the convenience is greatly improved compared to the conventional Diffile-Hellman key distribution method in which the amount of calculation increases depending on the size of the secret parameter. .
[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 security devices 20 and 30 is the same, and the key distribution in this embodiment is substantially Is possible.
In the example of this embodiment, r integer sets (s, q) are kept secret on the security device 20 side, and t integer sets (u, v) are kept secret on the security device 30 side. The key distribution between the security devices 20 and 30 is possible without the third party knowing the contents of the common key k (x).
[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 security device 20, and are generated by the pseudo random number generation means 33a of the security device 30. T integer sets (u, v) are generated using the random numbers generated, so the maintainability of r integer sets (s, q) and t integer sets (u, v) is improved. As a result, the security for the common key k (x) is improved.
The present invention is not limited to the embodiment described above. For example, in the present embodiment, the security devices 20 and 30 in the present embodiment are configured by causing a computer to execute a predetermined program. However, at least a part of these processing contents is implemented in hardware by an electronic circuit. It may be realized.
[0054]
Further, in this embodiment, in the linear action calculating means 24, 27, 34, 37, a linear operator Σ for a (x), b (x) or c (x).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.
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 security system 50 in the present embodiment.
As illustrated in FIG. 7, the security system 50 includes security devices 51 and 52, and generates a ciphertext in the security device 52 using a public key disclosed by the security device 51, Decryption is performed in the security device 51.
In the case of this example, the security device 51 includes a first parameter setting unit 51a configured to set a first number of parameters configured by a set of a first integer parameter and a second integer parameter, and a set. For the first integer parameter 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-δ)smSimilarly, the security device 52 has a second number set of parameters, each of which includes a third integer parameter and a fourth integer parameter. For the second parameter setting means 52a to be set and the set, the third integer parameter is set to umAnd the fourth integer parameter is vmΣ in the case where the second number is t and δ is an operator that associates a polynomial g (x) -g (x-1) with an arbitrary polynomial g (x).m = 0 tvm(1-δ)umThe linear action calculating means 52b and 52c are provided.
[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 nna (x) / n!) modI is a means for calculating. The same applies to the linear action calculation means 51c, 52b, and 52c.
[0057]
In the security system 50 according to the present embodiment, when encryption is performed by the public key cryptosystem in the security device 51 and decryption is performed in the security device 52, for example, the security device 51 first has a common polynomial a which is a polynomial of integer coefficients. (x) is generated, and the generated common polynomial a (x) is transmitted to the security device 52.
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 action calculating means 51b.m = 0 rqm(1-δ)smAct. Specifically, for example, s = (s1, s2,…, Sr) And q = (q1, q2,…, Qr), And in the linear action calculation means 51b, Σn = 0 deg a (x)Σm = 0 r(qmsm nna (x) / n!) modI is calculated.
[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 nna (x) / n!) modI calculation result b (x) is, for example, in a state where r, s, q (secret key) are kept secret on the security device 2 side where these integer parameters are set. It is transmitted to the security device 52 as a public key.
On the other hand, the plaintext M to be encrypted is M∈ {0,1}lThe security device 52 determines t integer sets (u, v) in the parameter setting means 52a, and adds a linear operator Σ to b (x) transmitted from the security device 51.m = 0 tvm(1-δ)umAct. Specifically, for example, in the parameter setting means 52a, u = (u1, u2, ..., ur) And v = (v1, v2, ..., vr), And in the linear action calculation means 52b, Σn = 0 deg b (x)Σm = 0 t(vmum nnb (x) / n!) modI is calculated to generate a common key k (x). Thereafter, for this common key k (x), a hash function H having a value in a polynomial (preferably a set having a sufficiently large range of operation results is obtained.80H (k (x)) ∈ {0,1}lGet. Then, the exclusive OR (H (k (x)) (+) M) of H (k (x)) and plaintext M is calculated as a ciphertext. In FIG. 7 and the description of this embodiment, “a (+) b” means an exclusive OR of a and b.
[0059]
In addition, the security device 52 uses the linear operator Σ for the common polynomial a (x) in the linear action calculation means 52b.m = 0 tvm(1-δ)umAct. Specifically, for example, in the linear action calculating means 52b, Σn = 0 deg a (x)Σm = 0 t(vmum nna (x) / n!) modI is calculated and the calculation result c (x) is generated. And (H (k (x)) (+) M) and c (x) generated in this way are ciphertext C = (c (x), H (k (x)) (+) M ) Is transmitted to the security device 51.
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 action calculating means 51c, Σn = 0 deg c (x)Σm = 0 r(qmsm nnc (x) / n!) modI is calculated to generate k (x). Then, the same hash function H as that used in the security device 52 is applied to the operation result k (x), so that H (k (x)) ∈ {0,1}lAfter that, the exclusive OR of H (k (x)) obtained in this way and H (k (x)) (+) M of ciphertext C is calculated.
(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 security device 52 are the same. Therefore, the operation result of this H (k (x)) (+) (H (k (x)) (+) M) is M, and thus the plaintext M is decrypted.
[0060]
Here, the number of four arithmetic operations necessary for the polynomial operation performed in the linear action calculating means 51b, 51c, 52b, 52c described above is the secret parameter (r, s, k, t, It does not depend on the size of u, v). 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 devices 51 and 52 at the time of encryption or decryption increases. As a result, the convenience is greatly improved as compared with the public key cryptosystem applying the conventional Diffile-Hellman key distribution scheme in which the amount of calculation increases depending on the size of the secret parameter.
[0061]
Next, details of this embodiment will be described.
FIG. 8 is a diagram illustrating the overall configuration of the security system 60 in the present embodiment.
As illustrated in FIG. 8, the security system 60 connects the security devices 70 and 80 that perform encryption and decryption of plaintext and the security devices 70 and 80 so that they can communicate with each other by, for example, public key cryptography. The network includes a network 90, and the security devices 70 and 80 are electrically connected to or connected to each other via a network 90 so that information can be exchanged between them. Yes. The details of the overall configuration are the same as those described in the first embodiment, for example, and the hardware configuration of the security devices 70 and 80 is, for example, the security in the first embodiment. The hardware configuration of the devices 20 and 30 (FIG. 3) is the same.
[0062]
FIG. 9 illustrates the processing function of the security device 70 constructed by specific means in which the hardware and software cooperate by causing a predetermined program (software) to be executed in the hardware illustrated in FIG. 3. It is a functional block diagram.
As illustrated in FIG. 9, the security device 70 of this example uses a common polynomial generation unit 71 that generates a common polynomial of integer coefficients shared with a communication partner, and a common polynomial generated by the common polynomial generation unit 71 as a communication partner. Common polynomial disclosure means 72 to be disclosed, parameter setting means 73 for setting a first number of parameters, which is constituted by a set of a first integer parameter and a second integer parameter, an integer coefficient shared with a communication partner Let a (x) be the common polynomial of, let deg a (x) be the degree of the common polynomial, and let s be the first integer parametermAnd 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 nna (x) / n!) modI operation to generate a first operation result, linear action operation means 74, and public key release means 75 for making the generated first operation result public as a public key. The ciphertext acquisition means 76 for acquiring the second calculation result calculated by the communication partner and the ciphertext, the decryption means 77 for decryption, the control means 78 for controlling the entire security device 70, and various information A storage means 79 for storing is provided as a processing function.
[0063]
In this example, the common polynomial generator 71 uses a pseudo-random number generation algorithm based on the computational complexity theory, which is configured by using a one-way hash function such as SHA-1, and generates pseudo-random numbers. Generating means 71a and a pseudorandom number generated by the pseudorandom number generating means 71a, generating a predetermined integer value, and having a polynomial generating means 71b for generating a common polynomial having the generated integer value as a coefficient, The parameter setting means 73 is a pseudo-random number generating means 73a that generates a pseudo-random number using a pseudo-random number generation algorithm based on the computational complexity theory, etc., which is configured using a one-way hash function such as SHA-1, and a pseudo-random number. It has an integer value calculation means 73b that generates a predetermined integer value using the pseudo random number generated by the generation means 73a. In this example, the linear action calculation means 74 includes an integer calculation means 74a that performs integer calculation, a polynomial addition means 74b that performs polynomial addition calculation, and a polynomial differentiation means 74c that performs polynomial differentiation. The means 77 sets the second calculation result acquired by the ciphertext acquisition means 76 to c (x), sets the order of the second calculation result to deg c (x), and sets the first integer parameter to smAnd the second integer parameter is qm, Where the first number is r, ∂ is the differential operator, and the ideal set is In = 0 deg c (x)Σm = 0 r(qmsm nnc (x) / n!) modI operation to generate a third operation result, a linear action operation unit 77a, a hash function operation unit 77b to perform a hash function H operation in common with the security device 80, and An exclusive OR operation means 77c for calculating the exclusive OR of the generated third operation result and the ciphertext is provided. Further, the linear action calculating unit 77a in this example includes an integer calculating unit 77aa that performs integer calculation, a polynomial addition unit 77ab that performs addition operation of polynomials, and a polynomial differentiation unit 77ac that performs differential operation of polynomials.
[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 polynomial generation unit 71, a common polynomial disclosure unit 72, a parameter setting unit 73, a linear action calculation unit 74, a public key disclosure unit 75, a ciphertext acquisition unit 76, a decryption unit 77, and The storage unit 79 is configured to be capable of at least one of providing information to the control unit 78 and acquiring information from the control unit 78, and the common polynomial disclosure unit 72 and the public key disclosure unit 75 include the network 90. The ciphertext acquisition unit 76 is configured to be able to acquire information from the network 90.
[0066]
FIG. 10 illustrates the processing function of the security device 80 constructed by specific means in which the hardware and software cooperate by executing a predetermined program (software) in the hardware illustrated in FIG. It is a functional block diagram.
As illustrated in FIG. 10, the security device 80 of this example includes a common polynomial acquisition unit 82 that receives a common polynomial of integer coefficients shared with a communication partner, and a set of a third integer parameter and a fourth integer parameter. A parameter setting unit 83 for setting a second number of parameters, a public key acquisition unit 84 for acquiring a first calculation result disclosed by a communication partner as a public key, and generating a ciphertext. The ciphertext generation means 85, the common polynomial of the integer coefficient shared with the communication partner is a (x), the degree of the common polynomial is deg a (x), and the first integer parameter is umAnd the second integer parameter is vm, Where the first number is t, ∂ is the differential operator, and the ideal set is In = 0 deg a (x)Σm = 0 t(vmum nna (x) / n!) modI operation to generate a third operation result, a linear action operation means 86, a ciphertext calculated by the exclusive OR operation means 85c described below, and a linear action The ciphertext disclosure means 87 for disclosing the third calculation result generated by the calculation means 85a, the control means 88 for controlling the entire security device 80, and the storage means 89 for storing various information are provided as processing functions. Yes.
[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. Means 83a and an integer value calculating means 83b for generating a predetermined integer value using the pseudo random number generated by the pseudo random number generating means 83a are provided. Further, in this example, the ciphertext generation unit 85 sets the first calculation result acquired by the public key acquisition unit 84 as b (x), sets the degree of the first calculation result as deg b (x), An integer parameter of 1mAnd the second integer parameter is vmAnd the first number is t, ∂ is the differential operator, and the result of the operation of the polynomial, which is an ideal and is obtained by adding an arbitrary integer value to the integer coefficient polynomial variable, is performed on the ideal. Again, when the ideal set that is the set that is the ideal is I, Σn = 0 deg b (x)Σm = 0 t(vmum nnb (x) / n!) modI operation to generate a second operation result, a linear action operation unit 85a, a hash function operation unit 85b to perform a hash function H operation in common with the security device 70, and It has an exclusive OR operation means 85c for calculating the exclusive OR of the generated second operation result and the plaintext as communication contents as a ciphertext, and the linear action operation means 85a is an integer. An integer operation means 85aa for performing an operation, a polynomial addition means 85ab for performing an addition operation of a polynomial, a polynomial differentiation means 85ac for performing a differentiation operation of a polynomial, a linear action operation means 86, an integer operation means 86a, a polynomial addition means 86b, and a polynomial differentiation. Each has a means 86c.
[0068]
Further, as illustrated in FIG. 10, the common polynomial acquisition unit 82, parameter setting unit 83, public key acquisition unit 84, ciphertext generation unit 85, linear action calculation unit 86, ciphertext disclosure unit 87, and storage unit 89 include The ciphertext disclosure unit 87 is configured to provide information to the network 90 and to acquire information from the control unit 88 and to acquire information from the control unit 88. The means 82 and the public key acquisition means 84 are configured to be able to acquire information from the network 90, respectively.
[0069]
Next, processing operations of the security system 60 and the security devices 70 and 80 in this embodiment will be described.
FIG. 11 is a flowchart for explaining an example of processing operations of the security system 60 and the security devices 70 and 80 in this embodiment. The solid-line arrows in this flowchart exemplify a series of processing flows in the entire security system 60, and the broken-line arrows indicate a series of processing flows in the entire security system 60 and the security devices 70 and 80, respectively. FIG. 6 illustrates the processing flow of the security devices 70 and 80 alone with respect to the different processing flow. Here, for ease of explanation, the processing operation will be described along the processing flow as shown in FIG. 11 for the sake of convenience. However, the security devices 70 and 80 are in a different order from the flow of this flowchart. Processing may be performed, or the security devices 70 and 80 may perform each processing simultaneously in parallel.
[0070]
Hereinafter, description will be given along this flowchart.
Step S20:
In this step, the security device 70 sets the common polynomial a (x).
The setting of the common polynomial a (x) is performed in, for example, the common polynomial generation unit 71 of the security device 70. Specifically, for example, first, pseudo-random number generation means 71a generates pseudo-random numbers using 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. Next, in the polynomial generating means 71b, this pseudo random number is processed into a predetermined number of digits, and further, an integer coefficient of the polynomial is set by subtracting a predetermined value, etc. Set the polynomial a (x).
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 storage unit 79 is recorded in the storage unit 79 and used to specify the common polynomial a (x) sent to the common polynomial disclosure unit 72, for example. The information is used for the next step S21.
[0071]
Step S21:
In this step, the security device 70 transmits the common polynomial a (x).
The transmission of the common polynomial a (x) is performed by the common polynomial disclosure means 72 of the security device 70, for example. Specifically, for example, information for specifying the common polynomial a (x) is presented in an e-mail addressed to the security device 80 from the security device 70, or a homepage on the Internet that can be browsed by the security device 80 And uploading information for specifying the common polynomial a (x).
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 security device 80 receives the common polynomial a (x).
The reception of the common polynomial a (x) is performed by, for example, the common polynomial acquisition unit 82 of the security device 80. Specifically, for example, the security device 80 accesses a mail server on the Internet and receives an e-mail addressed to the security device 80 sent from the security device 70 or specifies a common polynomial a (x) This is done by accessing a homepage on the Internet on which information for uploading is uploaded.
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 storage unit 89 is stored in the storage unit 89, for example, and the process proceeds to the next step S23.
[0073]
Step S23:
In this step, the security device 70 sets r integer groups (s, q).
The setting of r integer sets (s, q) is performed by the parameter setting means 73 of the security device 70, for example. Specifically, for example, first, pseudo-random numbers are generated in the pseudo-random number generating means 73a using a pseudo-random number generation algorithm based on the computational complexity theory configured using a one-way hash function such as SHA-1. Next, in the integer value calculation means 73b, the pseudo-random number is processed into a predetermined number of digits, and further, a predetermined value is subtracted, etc., so that a predetermined r number of integer sets (s, q), that is, , S = (s1, s2,…, Sr) And q = (q1, q2,…, Qr) And set.
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 security device 70 calculates a polynomial.
The calculation of the polynomial in this step is performed, for example, in the linear action calculation means 74 of the security device 70. When performing this polynomial operation, for example, first, the control means 78 reads information for specifying the common polynomial a (x) stored in the storage means 79 in step S20, and uses this information as the linear action calculation means 74. Send to. The linear action calculating means 74 to which this information has been sent calculates Σ to the common polynomial a (x) by calculation using this information and the information sent in the process of step S23.m = 0 rqm(1-δ)smPerform the process to act. In this example, this common polynomial a (x)m = 0 rqm(1-δ)smAs a specific calculation method for operating the linear action calculation means 74, an integer calculation means 74a, a polynomial addition means 74b and a polynomial differentiation means 74c are used, and b (x) = Σn = 0 deg a (x)Σm = 0 r(qmsm nna (x) / n!) modI is calculated.
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 key disclosing means 75. When this information is sent to the public key disclosure means 75, the process proceeds to step S25.
[0075]
Step S25:
In this step, the security device 70 transmits the polynomial b (x) as a public key.
The transmission of the polynomial b (x) is performed by, for example, the public key disclosure unit 75 of the security device 70. At this time, the r integer sets (s, q) are not disclosed, and the r integer sets ( s, q) is kept secret on the security device 70 side. Specifically, for example, information for identifying this polynomial b (x) and information for identifying r integer sets (s, q) in an email addressed to the security device 80 from the security device 70 The information for specifying the polynomial b (x) is specified on the home page on the Internet that can be browsed by the security device 80 without disclosure, and r integer sets (s, q) are specified. For uploading without disclosing information.
When the polynomial b (x) is thus transmitted, the process proceeds to step S26.
[0076]
Step S26:
In this step, the security device 80 receives the polynomial b (x).
The reception of the polynomial b (x) is performed by, for example, the calculation result acquisition unit 86 of the security device 80. Specifically, for example, the security device 80 accesses a mail server on the Internet and receives an e-mail addressed to the security device 80 sent from the security device 70, or the calculation result of the polynomial b (x) This is performed by accessing a homepage on the Internet on which information for specifying the URL is uploaded.
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 storage unit 89 is stored in the storage unit 89, for example, and the process proceeds to the next step S27.
[0077]
Step S27:
In this step, the security device 80 sets t integer groups (u, v).
The setting of t integer sets (u, v) is performed by the parameter setting means 83 of the security device 80, for example. Specifically, for example, first, the pseudo-random number generator 83a generates pseudo-random numbers using a pseudo-random number generation algorithm based on the computational complexity theory configured using a one-way hash function such as SHA-1. Next, in the integer value calculation means 83b, this pseudo random number is processed into a predetermined number of digits, and further, a predetermined value is subtracted, etc., so that a predetermined t integer set (u, v), that is, , U = (u1, u2, ..., ut) And v = (v1, v2, ..., vt) And set.
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 security device 80 calculates a polynomial.
The calculation of the polynomial in this step is performed, for example, in the linear action calculation means 86 of the security device 80. When performing this polynomial calculation, for example, first, the control means 88 reads information for specifying the common polynomial a (x) stored in the storage means 89 in step S3, and uses the information as the linear action calculation means 86. Send to. The linear action calculating means 86 to which this information is sent calculates Σ to the common polynomial a (x) by calculation using this information and the information sent in step S27.m = 0 tvm(1-δ)umPerform the process to act. In this example, this common polynomial a (x)m = 0 rvm(1-δ)umAs a specific calculation method for operating the linear action calculation means 86, an integer calculation means 86a, a polynomial addition means 86b and a polynomial differentiation means 86c are used, and c (x) = Σn = 0 deg a (x)Σm = 0 t(vmum nna (x) / n!) modI is calculated.
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 storage unit 89 is stored in the storage unit 89, for example, and the process proceeds to the next step S29.
[0079]
Step S29:
In this step, the security device 80 generates a ciphertext C by calculation.
The calculation of the ciphertext C is performed, for example, in the ciphertext generation unit 85 of the security device 80. Here, plaintext M∈ {0,1}lAn example of encrypting the password will be described.
When performing the operation on the ciphertext C, the security device 80 first stores, for example, information for specifying the polynomial b (x) stored in the storage unit 89 in step S26 by the control unit 88 and in step S26. Information for specifying t integer sets (u, v) stored in the means 89 is read, and these pieces of information are sent to the ciphertext generating means 85. The ciphertext generation means 85 to which these pieces of information are sent, for example, in the linear action calculation means 85a, converts the polynomial b (x) to Σm = 0 tvm(1-δ)umPerform the process to act. In this example, this polynomial b (x)m = 0 rvm(1-δ)umAs a specific calculation method for operating the linear action calculation means 85a, the integer calculation means 85aa, the polynomial addition means 85ab, and the polynomial differentiation means 85ac are used, and k (x) = Σn = 0 deg b (x)Σm = 0 t(vmum nnb (x) / n!) modI is calculated.
[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 security device 80 transmits the ciphertext C.
The ciphertext C is transmitted by, for example, the ciphertext disclosure means 87 of the security device 80. At this time, the t integer sets (u, v) are not disclosed, and the t integer sets (u, v) are not disclosed. v) is performed with the security device 80 kept secret. Specifically, for example, information for specifying this ciphertext C and information for specifying t integer pairs (u, v) are disclosed in an email addressed to the security device 70 from the security device 80 Information for specifying this ciphertext C and information for specifying t integer sets (u, v) on a homepage on the Internet that can be presented without security or browsed by the security device 70 This is done by uploading without disclosure.
When the ciphertext C is thus transmitted, the process proceeds to step S31.
[0082]
Step S31:
In this step, the security device 70 receives the ciphertext C.
The ciphertext C is received by, for example, the ciphertext acquisition unit 76 of the security device 70. Specifically, for example, the security device 70 accesses a mail server on the Internet and receives an e-mail addressed to the security device 70 sent from the security device 80, or for specifying the ciphertext C This is done by accessing a website on the Internet where information is uploaded.
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 security device 70 decrypts the ciphertext C.
The decryption of the ciphertext C is performed by, for example, the decryption unit 77 of the security device 70. Specifically, for example, first, in the linear action calculation unit 77a of the decryption unit 77, a polynomial constituting the ciphertext C = (c (x), H (k (x)) (+) M) received in step S31. c (x) is Σm = 0 rqm(1-δ)smPerform the process to act. In this example, this polynomial c (x)m = 0 rqm(1-δ)smAs a specific calculation method for operating the linear action calculation means 77a, the integer calculation means 77aa, the polynomial addition means 77ab and the polynomial differentiation means 77ac are used, and k (x) = Σn = 0 deg c (x)Σm = 0 r(qmsm nnc (x) / n!) modI is calculated.
When this calculation is performed, for example, the same hash function H as that used in the security device 80 is then applied to the calculation result k (x) by the hash function calculation means 77b, and H (k (x) ) ∈ {0,1}lGet. Thereafter, for example, in the exclusive OR operation means 77c, H (k (x)) thus obtained and the ciphertext C = (c (x), H (k (x)) ( Calculates an exclusive OR with H (k (x)) (+) M that constitutes (+) M) (H (k (x)) (+) H (k (x)) (+) M) . As a result, the plaintext M is decrypted as described above.
[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 security devices 70 and 80 does not increase, and as a result, the calculation amount increases depending on the size of the secret parameter. Compared with the method, the convenience is greatly improved.
[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 action calculating means 74, 77, 85a, 86.n = 0 deg a (x)Σm = 0 r(qmsm nna (x) / n!) modI, c (x) = Σn = 0 deg a (x)Σm = 0 t(vmum nna (x) / n!) modI, k (x) = Σn = 0 deg c (x)Σm = 0 r(qmsm nnc (x) / n!) modI, k (x) = Σn = 0 deg b (x)Σm = 0 t(vmum nnb (x) / n!) modI is calculated, so even when the size of the secret parameters (r, s, k, t, u, v) is increased, the plaintext is generated when the public key is generated. The number of arithmetic operations performed by the security devices 70 and 80 during encryption and decryption of ciphertext does not increase, and as a result, the amount of calculation increases depending on the size of the secret parameter. Compared with the public key cryptosystem that applies the key distribution method, the convenience is greatly improved.
[0086]
Further, in the security device 70 in the example of the present embodiment, the linear action calculation means 74 performs the Σn = 0 deg a (x)Σm = 0 r(qmsm nna (x) / n!) modI is performed to generate a polynomial b (x) as the first calculation result, and the public key public means 75 discloses the polynomial b (x) as a public key. The ciphertext acquisition means 76 acquires the polynomial c (x), which is the second calculation result calculated by the security device 80, and the ciphertext (H (k (x)) (+) M)), In the linear action calculating means 77a, Σn = 0 deg c (x)Σm = 0 r(qmsm nnc (x) / n!) modI is calculated to generate a polynomial k (x) as the third calculation result. In the exclusive OR operation means 77c, k (x) and H (k (x)) (+) M) and the exclusive OR of them, so even if the size of the secret parameters (r, s, k, t, u, v) is increased, The number of arithmetic operations performed by the security devices 70 and 80 does not increase at the time of public key generation, plaintext encryption, and ciphertext decryption. As a result, the amount of calculation depends on the size of the secret parameter. Compared with the public key cryptosystem that applies the conventional Diffile-Hellman key distribution scheme, the convenience is greatly improved.
[0087]
Further, in the security device 80 in the example of the present embodiment, the public key acquisition unit 84 acquires the polynomial b (x) that is the first calculation result disclosed by the security device 70 as the public key, and the linear action calculation unit 85a. Σn = 0 deg b (x)Σm = 0 t(vmum nnb (x) / n!) modI is calculated to generate a polynomial k (x) that is the second calculation result. In the exclusive OR operation means 85c, the polynomial k (x) and communication contents are used. An exclusive OR with a certain plaintext M is calculated as a ciphertext (H (k (x)) (+) M), and the linear action calculation means 86n = 0 deg a (x)Σm = 0 t(vmum nna (x) / n!) modI is calculated to generate a polynomial c (x) which is the third calculation result, and the ciphertext disclosure unit 87 calculates the result by the exclusive OR calculation unit 85c. Since the ciphertext (H (k (x)) (+) M) and the polynomial c (x) generated by the linear action calculation means 86 are disclosed, the secret parameters (r, s, k, t, Even when the size of u, v) is increased, the number of arithmetic operations performed by the security devices 70 and 80 is increased at the time of public key generation, plaintext encryption, and ciphertext decryption. As a result, the convenience is greatly improved as compared with the public key cryptosystem applying the conventional Diffile-Hellman key distribution scheme, which increases the calculation amount depending on the size of the secret parameter.
[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 security devices 70 and 80 is the same. Since H (k (x)), which is the result of applying the same hash function to the same, is also the same, decryption in this embodiment is substantially possible.
[0089]
Furthermore, in the example of this embodiment, r integer sets (s, q) are kept secret on the security device 70 side, and t integer sets (u, v) are kept secret on the security device 80 side. The decryption between the security devices 70 and 80 is possible without the third party knowing the content of the parameters for decryption.
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 security device 70, and are generated by the pseudo random number generation means 83a of the security device 80. T integer sets (u, v) are generated using the random numbers generated, so the maintainability of r integer sets (s, q) and t integer sets (u, v) is improved. As a result, the security against encryption is improved.
[0090]
The present invention is not limited to the embodiment described above. For example, in this embodiment, the security devices 70 and 80 in this embodiment are configured by causing a computer to execute a predetermined program. However, at least a part of these processing contents is implemented in hardware by an electronic circuit. It may be realized.
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 security devices 101 and 102, and the digital signature generated by the security device 101 is verified by the security device 102.
[0092]
In the case of this example, the security device 101 includes a first parameter setting unit 101a that sets a first number of parameters configured by a set of a first integer parameter and a second integer parameter, a third parameter A second parameter setting means 101b for setting a second number of parameters configured by a set of an integer parameter and a fourth integer parameter, and a first integer parameter 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-δ)smLinear action calculation means 101c and 101d for causing
[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 nna (x) / n!) modI is a means for calculating. This also applies to the linear action computing unit 101d.
[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 security device 102 and the security device 102. G (x) is generated, and the parameter setting means 101a generates r integer sets (s, q), specifically s = (s1, s2,…, Sr) And q = (q1, q2,…, Qr) Is set.
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 action calculating means 51b, Σn = 0 deg a (x)Σm = 0 r(qmsm nna (x) / n!) modI is calculated. This common polynomial a (x) has a linear operator Σm = 0 rqm(1-δ)smThat is, that is, Σn = 0 deg a (x)Σm = 0 r(qmsm nna (x) / n!) modI calculation result b (x) is, for example, in a state where r, s, q (secret key) are kept secret on the security device 101 side where these integer parameters are set. It is transmitted to the security device 102 as a public key.
[0095]
Next, for example, the security device 101 uses the parameter setting unit 101b to set t integer sets (u, v), specifically u = (u1, u2, ..., ut) And v = (v1, v2, ..., vt) And the linear operator Σ for the common polynomial a (x)m = 0 tvm(1-δ)umAct. In the case of this example, specifically, for example, in the linear action calculation unit 101d, Σn = 0 deg a (x)Σm = 0 t(vmum nna (x) / n!) modI is calculated, and the calculation result c (x) is calculated. Further, the security device 101 uses the set r integer sets (s, q), t integer sets (u, v), and the polynomial c (x), and Σm = 0 tvmxum+ Σm = 0 rqmxsmThe calculation of H (M, c (x)) is performed, and the calculation result d (x) is calculated. Here, M means a message to be signed, and H means a hash function having a value in a polynomial commonly used in the security devices 101 and 102. The polynomials c (x) and d (x) generated in this way are transmitted to the security device 102 as a polynomial pair (c (x), d (x)), which functions as a signature. At this time, r integer sets (s, q) and t integer sets (u, v) are kept secret on the security device 101 side, and these parameters r, s, q, u, v are It is not open to the public.
[0096]
On the other hand, the polynomial pair (S1, S2) Is transmitted to the security device 102 as to whether or not this signature is valid, that is, S1= c (x) and S2Verify whether = d (x) is satisfied. In order to perform this verification, the security device 102 generates a common polynomial a (x) that is a polynomial of integer coefficients common to the security device 102, and g (x) that is a polynomial common to the security device 102, and V ( x) = S2(1-δ) a (x) -H (M, S1(x)) (1-δ) b (x) -S1(x) Calculate modI. If this signature is valid, S1= c (x) and 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) From the definition of b (x) and 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 holds. Therefore, it can be determined from the calculation result that V (x) = 0 that the signature is valid. In this case, the security device 102 outputs that the signature is valid. On the other hand, as described above, d (x) = Σm = 0 tvmxum+ Σm = 0 rqmxsmSince the parameters r, s, q, u, v constituting H (M, c (x)) are kept secret on the security device 101 side, these parameters r, s, q, u, v cannot be selected properly, the result is S2= d (x) and V (x) = 0. Therefore, based on the calculation result that V (x) = 0 does not hold, the security device 102 can determine that the verified signature is invalid. In this case, the security device 102 indicates that the signature is invalid. Output.
[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 security system 110 according to this embodiment.
As illustrated in FIG. 13, the security system 110 includes, for example, a security device 120 that performs a digital signature, a security device 130 that verifies the digital signature, and a network 140 that connects the security devices 120 and 130 so that they can communicate with each other. The security devices 120 and 130 are electrically connected by wire or wireless so that they can exchange information with each other via the network 140, or are in a connectable state. The details of the overall configuration are the same as those described in the first embodiment, for example, and the hardware configuration of the security devices 120 and 130 is, for example, the security in the first embodiment. The hardware configuration of the devices 20 and 30 (FIG. 3) is the same.
[0099]
FIG. 14 exemplifies the processing function of the security device 120 constructed by specific means in which the hardware and software cooperate by executing a predetermined program (software) in the hardware illustrated in FIG. 3. It is a functional block diagram.
As illustrated in FIG. 14, the security device 120 of this example sets a first number set of parameters configured by a set of a first integer parameter and a second integer parameter, and sets a third integer. A parameter setting means 121 for setting a second number of parameters configured by a set of a parameter and a fourth integer parameter, and a common polynomial of integer coefficients shared with a communication partner is a (x), and a common polynomial Deg a (x) and the first integer parameter is 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 nna (x) / n!) modI operation to generate the first operation result, and the first operation result generated by the linear operation operation unit 122 is disclosed as a public key. Public key public means 123, signature generation means 124 for generating a signature, polynomial pair transmission means 125 for transmitting the generated polynomial pair to a communication partner, and a common polynomial generation for generating a common polynomial of integer coefficients shared with the security device 130 Means 126, information storage means 127 for storing various information, and control means 128 for controlling the entire security device 120 are provided as processing functions.
[0100]
In this example, the parameter setting unit 121 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. Means 121a and pseudo random numbers generated by the pseudo random number generator 121a have integer value arithmetic means 121b that generates a predetermined integer value. The linear action arithmetic means 122 performs integer arithmetic to perform integer arithmetic. Means 122a, polynomial addition means 122b for performing addition of polynomials, and polynomial differentiation means 122c for performing differentiation of polynomials. The signature generation means 124 sets the common polynomial to a (x), sets the degree of the common polynomial to deg a (x), and sets the third integer parameter to u.mAnd the fourth integer parameter is vm, Where the second number is t, ∂ is the differential operator, and the ideal set is I.n = 0 deg a (x)Σm = 0 t(vmum nna (x) / n!) modI operation to generate a second operation result, a linear action operation unit 124a, a hash function operation unit 124b to perform a hash function H operation in common with the security device 130, and S the first integer parametermAnd the second integer parameter is qm, The first number is r, and the third integer parameter is umAnd the fourth integer parameter is vmΣ in the case where t is the second number, H is the hash function shared with the communication partner, M is the plaintext, and c (x) is the second operation result.m = 0 tvmxum+ Σm = 0 rqmxsmIt has a polynomial pair generation means 124c that performs an operation of H (M, c (x)) and generates a polynomial pair (c (x), d (x)) when the operation result is d (x). ing. In the example of the third embodiment, the hash function H calculated by the hash function calculating unit 124b is, for example, {0, 1}*× Z (x) / I1→ This function performs Z (x) calculation. Further, the linear action calculation unit 124a includes an integer calculation unit 124aa that performs integer calculation, a polynomial addition unit 124ab that performs addition operation of polynomials, and a polynomial differentiation unit 124ac that performs differential operation of polynomials.
[0101]
Further, as illustrated in FIG. 14, the parameter setting unit 121, the linear action calculation unit 122, the public key disclosure unit 123, the signature generation unit 124, the polynomial pair transmission unit 125, the common polynomial generation unit 126, and the information storage unit 127 are The public key disclosure unit 123 and the polynomial pair transmission unit 125 are configured to provide information to the network 140. The public key disclosure unit 123 and the polynomial pair transmission unit 125 are configured to be capable of providing information to the control unit 128 and acquiring information from the control unit 128. Is configured to be possible.
FIG. 15 illustrates the processing function of the security device 130 constructed by specific means in which the hardware and software cooperate by causing a predetermined program (software) to be executed in the hardware illustrated in FIG. 3. It is a functional block diagram.
[0102]
As illustrated in FIG. 15, the security device 130 of this example receives a public key acquisition unit 131 that receives a public key disclosed by a communication partner, and a polynomial pair that includes a first polynomial and a second polynomial. The polynomial pair acquisition means 132 for performing the processing, the common polynomial of the integer coefficients shared with the communication partner is a (x), the public key is b (x), and the first polynomial is S1And the second polynomial in the previous term is S2H 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 any polynomial g (x) An ideal set that is an ideal that is obtained by adding an arbitrary integer value to a variable of an integer coefficient polynomial performed on the ideal. Where S is I2(1-δ) a (x) -H (M, S1(x)) (1-δ) b (x) -S1(x) modI operation is performed, and when the operation result is 0, the signature is output to be valid, and when the operation result is not 0, the signature is invalid A signature verification unit 133 that outputs a message, a common polynomial generation unit 134 that generates a common polynomial shared with the security device 120, a storage unit 135 that stores various types of information, and a control unit 136 that controls the entire security device 130. It has a processing function. In this example, the signature verification means 133 is a hash common to the integer arithmetic means 133 a that performs integer arithmetic, the polynomial addition means 133 b that performs polynomial addition arithmetic, the polynomial differentiation means 133 c that performs polynomial differential arithmetic, and the security device 120. A hash function calculation unit 133d for calculating the function H and a polynomial comparison unit 133e for comparing polynomials are provided.
[0103]
Also, as illustrated in FIG. 15, the public key acquisition unit 131, the polynomial pair acquisition unit 132, the signature verification unit 133, the common polynomial generation unit 134, and the storage unit 135 provide information to the control unit 136 and control unit The public key acquisition unit 131 and the polynomial pair acquisition unit 132 are configured to be able to acquire information from the network 140.
Next, processing operations of the security system 110 and the security devices 120 and 130 in this embodiment will be described.
[0104]
FIG. 16 is a flowchart for explaining an example of processing operations of the security system 110 and the security devices 120 and 130 in this embodiment. The solid-line arrows in this flowchart exemplify a series of processing flows in the entire security system 110, and the broken-line arrows indicate a series of processing flows in the entire security system 110 and the security devices 120 and 130, respectively. FIG. 9 illustrates an example of the flow of processing in the security devices 120 and 130 alone with respect to portions where the processing flow differs. Here, for ease of explanation, the processing operation will be described along the processing flow as shown in FIG. 16 for the sake of convenience. However, the security devices 120 and 130 are each in an order different from the flow of this flowchart. Processing may be performed, or the security devices 120 and 130 may perform each processing simultaneously in parallel.
[0105]
Hereinafter, description will be given along this flowchart.
Step S40:
In this step, the security device 120 sets common polynomials a (x) and g (x) of integer coefficients.
The common polynomials a (x) and g (x) are set by, for example, the common polynomial generation unit 126 of the security device 120. The common polynomials a (x) and g (x) are set so that the set common polynomials a (x) and g (x) are the same as the common polynomial set by the security device 130. Is called. Specifically, for example, a common polynomial a (x) shared by the security devices 120 and 130 by performing a predetermined hash operation using a hash function commonly held by the security devices 120 and 130, Generate g (x).
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 storage unit 127 is recorded in the storage unit 127, for example.
[0106]
Step S41:
In this step, the security apparatus 130 sets common polynomials a (x) and g (x) of integer coefficients.
The setting of the common polynomials a (x) and g (x) is performed by, for example, the common polynomial generation unit 134 of the security device 130. The common polynomials a (x) and g (x) are set so that the set common polynomials a (x) and g (x) are the same as the common polynomial set in the security device 120. Is called. Specifically, for example, a common polynomial a (x) shared by the security devices 120 and 130 by performing a predetermined hash operation using a hash function commonly held by the security devices 120 and 130, Generate g (x).
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 storage unit 135 is recorded in the storage unit 135, for example.
[0107]
Step S42:
In this step, the security device 120 sets r integer sets (s, q).
The setting of r integer sets (s, q) is performed by the parameter setting means 121 of the security device 120, for example. Specifically, for example, first, pseudo-random number generation means 121a generates pseudo-random numbers using a pseudo-random number generation algorithm based on the computational complexity theory configured using a one-way hash function such as SHA-1. Next, in the integer value calculation means 121b, this pseudo random number is processed into a predetermined number of digits, and further, a predetermined value is subtracted, etc., so that a predetermined r number of integer sets (s, q), that is, , S = (s1, s2,…, Sr) And q = (q1, q2,…, Qr) And set.
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 security device 120 calculates a polynomial.
The calculation of the polynomial in this step is performed, for example, in the linear action calculation means 122 of the security device 120. When performing this polynomial operation, for example, first, the control unit 128 reads information for specifying the common polynomials a (x) and g (x) stored in the storage unit 127 in step S40, and stores the information. This is sent to the linear action calculation means 122. The linear action computing means 122 to which this information has been sent calculates Σ to the common polynomial a (x) by computing using this information and the information sent in the process of step S42.m = 0 rqm(1-δ)sm(Note that, as described above, δ is an operator that associates a polynomial g (x) -g (x-1) with an arbitrary polynomial g (x)). In this example, this common polynomial a (x)m = 0 rqm(1-δ)smAs a specific calculation method for operating the linear action calculation means 122, the integer calculation means 122a, the polynomial addition means 122b, and the polynomial differentiation means 122c are used, and b (x) = Σn = 0 deg a (x)Σm = 0 r(qmsm nna (x) / n!) modI is calculated. Information for specifying the polynomial b (x) indicating the result of such calculation is sent to, for example, the control means 128, and the control means 128 uses information for specifying the sent polynomial b (x). To the public key disclosing means 123. When this information is sent to the public key disclosing means 123, the process proceeds to step S44.
[0109]
Step S44:
In this step, the security device 120 discloses the calculation result polynomial b (x) as a public key.
The disclosure of the polynomial b (x) is performed by, for example, the public key disclosure unit 123 of the security device 120. At this time, the r integer sets (s, q) are not disclosed, and the r integer sets ( s, q) is kept secret on the security device 120 side. Specifically, for example, information for specifying this polynomial b (x) and information for specifying r integer sets (s, q) in an email addressed to the security device 130 from the security device 120 The information for specifying this polynomial b (x) is specified on the Internet homepage that can be viewed by the security device 130 without disclosure, and r integer sets (s, q) are specified. For uploading without disclosing information.
When the polynomial b (x) is disclosed in this manner, the process proceeds to step S45.
[0110]
Step S45:
In this step, the security apparatus 130 receives the polynomial b (x). The reception of the polynomial b (x) is performed by, for example, the public key acquisition unit 131 of the security device 130. Specifically, for example, the security device 130 accesses a mail server on the Internet and receives an e-mail addressed to the security device 130 sent from the security device 120 or specifies the polynomial b (x). For example, by accessing a homepage on the Internet on which information for uploading is uploaded.
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 storage unit 135 is stored in the storage unit 135, for example.
[0111]
Step S46:
In this step, the security device 120 sets t integer groups (u, v).
The setting of t integer sets (u, v) is performed, for example, by the parameter setting means 121 of the security device 120 in the same manner as in step S42, whereby predetermined t integer sets (u, v) are set. ), That is, u = (u1, u2, ..., ut) And v = (v1, v2, ..., vt) And set.
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 security device 120 calculates a polynomial.
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 control unit 128 reads information for specifying the common polynomials a (x) and g (x) stored in the storage unit 127 in step S40, and stores the information. It is sent to the linear action calculation means 124a of the signature generation means 124. The linear action computing means 124a to which this information has been sent calculates Σ to the common polynomial a (x) by computing using this information and the information sent in the process of step S46.m = 0 tvm(1-δ)umPerform the process to act. In this example, this common polynomial a (x)m = 0 rvm(1-δ)umAs a specific calculation method for operating the linear action calculation means 124a, the integer calculation means 124aa, the polynomial addition means 124ab, and the polynomial differentiation means 124ac are used, and c (x) = Σn = 0 deg a (x)Σm = 0 t(vmum nna (x) / n!) modI is calculated.
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 security device 120 generates a polynomial pair. The generation of the polynomial pair in this step is performed in, for example, the hash function calculation unit 124b and the polynomial pair generation unit 124c of the signature generation unit 124. When generating this polynomial pair, for example, first, the control unit 128 extracts information for specifying the polynomial c (x) from the storage unit 127, and sends the extracted information to the signature generation unit 124. When information for specifying the polynomial c (x) is sent to the signature generation means 124, for example, the hash function calculation means 124b then has a value in the polynomial for the message M and the polynomial c (x) for signing. The hash function H is applied (H (M, c (x)). After that, for example, r integer sets (s, q) and t pieces stored in the storage means 127 in the processing of steps S42 and S46. The integer pair (u, v) is extracted by the control means 128 and sent to the polynomial pair generation means of the signature generation means 124. The polynomial pair generation means 124c to which these pieces of information have been sent includes these information, the hash Using the calculation result (H (M, c (x))) of the function calculation means 124b, Σm = 0 tvmxum+ Σm = 0 rqmxsmThe calculation of H (M, c (x)) is performed, and the calculation result d (x) is calculated.
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 security device 120 transmits the polynomial pair (c (x), d (x)).
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 security device 120 to the email addressed to the security device 130 using parameters r, s, q, u , v for specifying the polynomial pair (c (x), d (x)) on the homepage on the Internet that can be presented without disclosing information for specifying the security device 130 This is done by uploading information without disclosing information for specifying parameters r, s, q, u, v. When transmission of the polynomial pair (c (x), d (x)) is performed in this way, the process proceeds to step S50.
[0115]
Step S50:
In this step, the security device 130 receives the polynomial pair (c (x), d (x)).
The reception of the polynomial pair (c (x), d (x)) is performed by the polynomial pair acquisition unit 132 of the security device 130, for example. Specifically, for example, the security device 130 accesses a mail server on the Internet and receives an email addressed to the security device 130 sent from the security device 120, or a polynomial pair (c (x), This is done by accessing a homepage on the Internet where information for specifying d (x)) is uploaded.
The polynomial pair (c (x), d (x)) received by the polynomial pair acquisition unit 132 is sent to the signature verification unit 133, for example, and used for the next step S51.
[0116]
Step S51:
In this step, the security device 130 verifies the signature.
The signature verification in this step is performed by, for example, the signature verification apparatus 133. For example, the signature is a polynomial pair (S1, S2) Is transmitted to the security device 130, first, the control means 136 causes the common polynomials a (x), g (x) and polynomial b (x) stored in the storage means 135 by the processing of steps S41 and S45. And the extracted information is sent to the signature verification means 133. The signature verification means 133 to which these pieces of information are sent next uses, for example, an integer calculation means 133a, a polynomial addition means 133b, a polynomial differentiation means and a hash function calculation means 133d, and V (x) = S2(1-δ) a (x) -H (M, S1(x)) (1-δ) b (x) -S1(x) modI is calculated and the calculation result is sent to the polynomial comparison means 133e. As described above, the polynomial comparison means 133e to which the calculation result is sent determines that the signature is valid when the calculation result is V (x) = 0, and indicates that the signature is valid. If the calculation result is not V (x) = 0, it is determined that the signature is invalid, and output indicating that the signature is invalid.
[0117]
As described above, in the example of the present embodiment, the parameter setting unit 121 includes a first number of parameters (r integer groups (s, q), t integer sets (u, v)) are set, and in the linear action computing means 122, 124a, for the set (a (x)), Σm = 0 rqm(1-δ)smOr Σm = 0 tvm(1-δ)umEven if the size of the secret parameters (r, s, k, t, u, v) is increased, the four rules performed by the security device 120 at the time of public key generation and signature generation The number of operations does not increase, and as a result, the convenience is greatly improved compared to the digital signature method that applies the difficulty of the conventional discrete logarithm problem, which increases the amount of calculation depending on the size of the secret parameter. .
[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 nna (x) / n!) modI, c (x) = Σn = 0 deg a (x)Σm = 0 t(vmum nna (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 security device 120 does not increase, and as a result, a digital signature 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 Compared with the method, the convenience is greatly improved.
[0119]
Further, in the security device 120 in the example of the present embodiment, the linear action calculation unit 122 performs Σn = 0 deg a (x)Σm = 0 r(qmsm nna (x) / n!) modI is calculated to generate a first calculation result b (x). In the public key disclosure unit 123, the calculation result b (x generated by the linear action calculation unit 122 is generated. ) As a public key, and in the linear action calculation means 124a, Σn = 0 deg a (x)Σm = 0 t(vmum nna (x) / n!) modI is calculated to generate a second calculation result c (x). In the polynomial pair generation unit 124c, Σm = 0 tvmxum+ Σm = 0 rqmxsmH (M, c (x)) is calculated to generate a polynomial pair (c (x), d (x)), and the polynomial pair transmission unit 125 transmits the generated polynomial pair to the security device 130. Therefore, even when the size of the secret parameters (r, s, k, t, u, v) is increased, the four arithmetic operations performed by the security device 120 at the time of public key generation and signature generation The number of times does not increase, and 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 calculation amount increases depending on the size of the secret parameter.
[0120]
Further, in the security device 130 according to the present embodiment, the public key acquisition unit 131 receives the polynomial b (x) that is the public key released by the security device 120, and the polynomial pair acquisition unit 132 receives the first polynomial and the first polynomial. A polynomial pair consisting of two polynomials (S1, S2) And the signature verification means 133 receives S2(1-δ) a (x) -H (M, S1(x)) (1-δ) b (x) -S1(x) modI operation is performed, and if the operation result is 0, the signature is output to be valid, and if the operation result is not 0, the signature is invalid In the security device 120, even when the size of the secret parameter (r, s, k, t, u, v) is increased, the public key is generated and the signature is generated. The number of four arithmetic operations performed by the security device 120 does not increase, and as a result, compared with a digital signature method 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. , Greatly improve convenience.
[0121]
Further, in the example of this embodiment, r integer sets (s, q) and t integer sets (u, v) are kept secret on the security device 120 side, so that the security of the signature is ensured. .
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 pseudo-random number generator 121a of the security device 120. Therefore, the maintainability of r integer sets (s, q) and t integer sets (u, v) is improved, and as a result, the security for the signature is improved.
The present invention is not limited to the embodiment described above. For example, in the present embodiment, the security devices 120 and 130 in the present embodiment are configured by causing a computer to execute a predetermined program. However, at least a part of these processing contents is implemented in hardware by an electronic circuit. It may be realized.
[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 security devices 1, 2, 20, 30, 51, 52, 70, 80, 101, 102, 120, and 130 should have are described by a program (security program). By executing the above, the above processing functions can be realized on a computer.
[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)

通信相手と共通鍵 k(x) を共有化するセキュリティ装置において、
第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 nna(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 nnc(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 nn 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.
第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 nna(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 nnc(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 nn 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 nn 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の整数パラメータと第2の整数パラメータとの組によって構成される、第1の個数組のパラメータを設定する第1のパラメータ設定手段と、
通信相手によって公開された第1の演算結果を、公開鍵として受信する公開鍵取得手段と、
前記公開鍵取得手段によって受信された前記第1の演算結果をb(x)とし、前記第1の演算結果の次数をdeg b(x)とし、前記第1の整数パラメータをumとし、前記第2の整数パラメータをvmとし、前記第1の個数をtとし、∂を微分作用素とし、イデアルであって、該イデアルに対して行われた、整数係数の多項式の変数を任意の整数値だけ加算した該多項式の演算結果が、再び、該イデアルとなる集合であるイデアル集合をIとした場合における、Σn=0 deg b(x)Σm=0 t(vmum nnb(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 nna(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 nn 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 nn 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.
第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 nna(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 nna(x)/n!)modIの演算を行うことにより、第2の演算結果を生成する第2の線形作用演算手段と、
前記第1の整数パラメータをsmとし、前記第2の整数パラメータをqmとし、前記第1の個数をrとし、前記第3の整数パラメータをumとし、前記第4の整数パラメータをvmとし、前記第2の個数をtとし、前記通信相手と共用される多項式に値を持つハッシュ関数をHとし、平文をMとし、前記第2の演算結果をc(x)とした場合におけるΣm=0 tvmxumm=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 nn 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 nn 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)}によって生成される集合であること、
を特徴とする請求項からの何れかに記載のセキュリティ装置。
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の整数パラメータ、前記第2の整数パラメータ、前記第3の整数パラメータ及び前記第4の整数パラメータは、該整数パラメータを設定したセキュリティ装置側において秘密に保たれる秘密情報であることを特徴とする請求項1からの何れかに記載のセキュリティ装置。The first integer parameter, the second integer parameter, the third integer parameter, and the fourth integer parameter are secret information that is kept secret on the security device side that sets the integer parameter. The security device according to any one of claims 1 to 6 , wherein 暗号技術を利用して第1のセキュリティ装置と第2のセキュリティ装置とで共通鍵 k(x) を共有化するセキュリティ方法において、
前記第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 nna(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 nnc(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 nna(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 nnb(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 nn 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 nn 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 nna(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 nnb(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 nna(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 nnc(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 nn 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 nn, 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 nn 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 nn 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 nna(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 nna(x)/n!)modIの演算を行うことにより、第2の演算結果を生成し、
前記第1の整数パラメータをsmとし、前記第2の整数パラメータをqmとし、前記第1の個数をrとし、前記第3の整数パラメータをumとし、前記第4の整数パラメータをvmとし、前記第2の個数をtとし、前記第2のセキュリティ装置と共用される多項式に値を持つハッシュ関数をHとし、平文をMとし、前記第2の演算結果をc(x)とした場合におけるΣm=0 tvmxumm=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 nn 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 nn 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)}によって生成される集合であること、
を特徴とする請求項から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.
前記第1の個数、前記第1の整数パラメータ、前記第2の整数パラメータ、前記第2の個数、前記第3の整数パラメータ及び前記第4の整数パラメータは、該整数パラメータを設定したセキュリティ装置側において秘密に保たれる秘密情報であることを特徴とする請求項から11の何れかに記載のセキュリティ方法。The first number, the first integer parameter, the second integer parameter, the second number, the third integer parameter, and the fourth integer parameter are the security device side on which the integer parameter is set. security method according to any one of claims 8, characterized in that the secret information to be kept secret 11 in. 請求項1からの何れかに記載されたセキュリティ装置としてコンピュータを機能させるためのセキュリティプログラム。Security program for causing a computer to function as a security device according to any of claims 1 to 7. 請求項13記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。A computer-readable recording medium on which the program according to claim 13 is recorded.
JP2002279664A 2002-09-25 2002-09-25 Security device, security method, security program, and recording medium Expired - Fee Related JP3883942B2 (en)

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)

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