JP2004158951A - セキュリティ装置、セキュリティ方法、プログラム及び記録媒体 - Google Patents
セキュリティ装置、セキュリティ方法、プログラム及び記録媒体 Download PDFInfo
- Publication number
- JP2004158951A JP2004158951A JP2002320883A JP2002320883A JP2004158951A JP 2004158951 A JP2004158951 A JP 2004158951A JP 2002320883 A JP2002320883 A JP 2002320883A JP 2002320883 A JP2002320883 A JP 2002320883A JP 2004158951 A JP2004158951 A JP 2004158951A
- Authority
- JP
- Japan
- Prior art keywords
- polynomial
- multivariable
- result
- integer
- exponent
- 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.)
- Granted
Links
Images
Abstract
【解決手段】セキュリティ装置10から多変数共通多項式a(x1,x2,…,xn)をセキュリティ装置20に送信し、さらに、セキュリティ装置10設定の整数組s(s0,s1,s2,…,sn)を用い、演算手段2a、2bで演算した多変数多項式b(x1,x2,…,xn)=a(x1+s1,x2+s2,…,xn+sn)s0modIをセキュリティ装置20に送信する。一方、セキュリティ装置20において、セキュリティ装置20設定の整数組t(t0,t1,t2,…,tn)を用い、演算手段3a、3bで演算した多変数多項式c(x1,x2,…,xn)=a(x1+t1,x2+t2,…,xn+tn)s0modIをセキュリティ装置10に送信する。そして、共通鍵として、演算手段2a、2bでc(x1+s1,x2+s2,…,xn+sn)s0modIを、演算手段3a、3bでb(x1+t1,x2+t2,…,xn+tn)t0modIを演算する。
【選択図】 図1
Description
【発明の属する技術分野】
この発明は、情報の保守に利用されるセキュリティ装置、セキュリティ方法、その機能をコンピュータに実行させるためのセキュリティプログラム及びそれを格納したコンピュータ読み取り可能な記録媒体に関し、特に、離散対数問題を利用したセキュリティ装置、セキュリティ方法、その機能をコンピュータに実行させるためのセキュリティプログラム及びそれを格納したコンピュータ読み取り可能な記録媒体に関する。
【0002】
【従来の技術】
従来より、離散対数問題を応用したDiffile−Hellman鍵配送方式(例えば、非特許文献1参照)及びその応用としての公開鍵暗号方式が提案されている。
まず、この従来のDiffile−Hellman鍵配送方式による鍵配送手順について説明する。なお、甲乙間は、安全でない通信回線によって結ばれているものとする。
鍵の配送を行う場合、甲は、まず、擬似乱数生成装置を用いてあるN以下の整数aを定め、このaを通信回線を介して乙に送信する。次に、甲は、擬似乱数生成装置を用いてある整数sを定めた後、整数演算装置を用いてb=asmodNを計算し、整数sを秘密に保ったまま、計算したbを乙に送信する。
【0003】
これに対し、乙は、擬似乱数生成装置を用いてある整数tを定めた後、整数演算装置を用いてc=atmodNを計算し、整数sを秘密に保ったまま、計算したcを甲に送信する。また、乙は、整数演算装置を用い、甲から送信されたbから、鍵k=btmodNを求める。
一方、甲は、整数演算装置を用い、乙から送信されたcから、鍵k=csmodNを求める。
ここで、乙が求めた鍵kは、k=btmodN=astmodNとなり、甲が求めた鍵k=csmodN=astmodNと一致することになる。これにより、甲乙間で、共通鍵kの配送が行われたことになる。
【0004】
つぎに、この従来のDiffile−Hellman鍵配送方式を応用した公開鍵暗号方式について説明する。以下では、乙から甲へ暗号文を送信し、甲が送られた暗号文を復号するものとする。
この場合、甲は、まず、擬似乱数生成装置を用いてあるN以下の整数aを定め、このaを通信回線を介して乙に送信する。次に、甲は、擬似乱数生成装置を用いてある整数sを定めた後、整数演算装置を用いてb=asmodNを計算し、整数sを秘密に保ったまま、計算したbを乙に送信する。この整数sが秘密鍵として機能し、bが公開鍵として機能することになる。
これに対し、乙は、擬似乱数生成装置を用いてある整数tを定めた後、整数演算装置を用いてc=atmodNを計算し、整数sを秘密に保ったまま、計算したcを甲に送信する。また、乙は、整数演算装置を用い、甲から送信されたbからk=btmodNを求め、このkで平文Mを暗号化した後、この暗号文と計算したcとを、甲に送信する。
これを受け取った甲は、整数演算装置を用い、送られたcからk=csmodNを計算し、このkを用い、送られた暗号文を復号する。
【0005】
【非特許文献1】
岡本龍明、山本博資、「現代暗号」pp.200〜201、1997年6月30日、産業図書株式会社 ISBN4−7828−5353−X
【0006】
【発明が解決しようとする課題】
しかし、従来のDiffile−Hellman鍵配送方式及びその応用としての公開鍵暗号方式では、b及びcの計算に必要な四則演算の回数が、秘密パラメータであるs、tの大きさに依存して増大してしまう。そのため、秘密パラメータs、tを大きくした場合、鍵配送時、暗号・復号時における計算量が増大し、実用面での利便性に問題があるという課題がある。
一方、秘密パラメータs、tの値が十分大きくない場合、高速指数計算法等の攻撃アルゴリズムを用いることにより、第三者が比較的容易にkを計算できることが知られており、この場合、安全性に問題が生じることとなる。
本発明はこのような点に鑑みてなされたものであり、利用時における利便性を保ちつつ、第三者からの攻撃に対する安全性の向上を図ることが可能なセキュリティ装置を提供することを目的とする。
【0007】
また、この発明の他の目的は、利用時における利便性を保ちつつ、第三者からの攻撃に対する安全性の向上を図ることが可能なセキュリティ方法を提供することである。
さらに、この発明の他の目的は、利用時における利便性を保ちつつ、第三者からの攻撃に対する安全性の向上を図ることが可能なセキュリティ機能を、コンピュータに実行させるためのセキュリティプログラムを提供することである。
また、この発明の他の目的は、利用時における計算量の増大を抑制することによって利便性を保ちつつ、第三者からの攻撃に対する安全性の向上を図ることが可能なセキュリティ機能を、コンピュータに実行させるためのセキュリティプログラムを格納したコンピュータ読み取り可能な記録媒体を提供することである。
【0008】
【課題を解決するための手段】
この発明では上記課題を解決するために、セキュリティ装置において、整数係数の多変数多項式の任意の変数に、概変数ごとに独立した第1の整数組を加算した該多変数多項式の演算を行い、この演算の結果に対し、第1の整数を指数とする指数演算を行い、該演算結果を、イデアルであって、該イデアルに対して行われた、整数係数の多変数多項式の任意の変数について任意の整数値だけ加算した該多項式の演算結果が、再び、該イデアルとなるイデアル集合、によって剰余演算する。
【0009】
ここで、整数係数の多変数多項式の任意の変数に、第1の整数組を加算した該多変数多項式の演算と、この演算の結果に対し、第1の整数を指数とする指数演算を行い、該演算結果を上述のイデアル集合によって剰余演算する演算と、を組み合わせることにより、従来のように単一の離散対数問題のみを用い、例えば鍵配送方式や公開鍵暗号方式を構成していたのに比べ、第三者からの攻撃に対する安全性を向上させることができる。また、この発明では、多変数多項式の任意の変数に、概変数ごとに独立した第1の整数組を加算した該多変数多項式の演算を行うため、単一変数多項式に対する同様な演算を行う構成と比べても、その安全性は高い。さらに、上述の剰余演算において上述のイデアル集合を用いることにより、上述の演算の組み合わせが実質的に可能となる。
【0010】
【発明の実施の形態】
以下、この発明における第1の実施の形態を図面を参照して説明する。
図1は、本形態におけるセキュリティシステム1の概略を説明するための図である。
図1に例示するように、セキュリティシステム1は、セキュリティ装置2、3によって構成されている。この例の場合、セキュリティ装置2、3は、それぞれ、整数係数の多変数多項式の任意の変数に、概変数ごとに独立した第1の整数組を加算した、該多変数多項式の演算を行う演算手段2a、3a、及び演算手段2a、3aによって行われた演算の結果に対し、第1の整数を指数とする指数演算を行い、該演算結果を、イデアルであって、該イデアルに対して行われた、整数係数の多変数多項式の任意の変数について任意の整数値だけ加算した該多項式の演算結果が、再び、該イデアルとなるイデアル集合、によって剰余演算する演算手段2b、3bを有している。
【0011】
なお、この「イデアル」という用語に関し、例えば、可換環Rの部分集合Iがイデアルであるとは、任意のx,y∈Iについてx+y∈Iが成り立ち、かつ任意のx∈Rとy∈Iについてxy∈Iが成り立つことを意味する。また、上述のイデアル集合の具体例としては、例えば、整数係数の多項式がなす環のイデアルであって、δiを任意の多変数多項式g(x1,x2,…,xn)に対して多変数多項式g(x1,x2,…,xi,…,xn)−g(x1,x2,…,xi−1,…,xn)を対応させる作用素とし、degif(x1,x2,…,xn)をf(x1,x2,…,xn)のxiについての次数とし、(p1,p2,…,pn)∈Nnとした場合における、{Σ(p1,p2,…,pn)(Πi=1 nδi pi)f(x1,x2,…,xn)}によって生成されるイデアルが挙げられる。また、この例の場合、セキュリティ装置2、3は、図示していないセキュリティ装置2、3で共通の自然数n及び整数係数の多変数多項式f(x1,x2,…,xn)を生成する手段を有しており、上記{Σ(p1,p2,…,pn)(Πi=1 nδi pi)f(x1,x2,…,xn)}にあるn及びf(x1,x2,…,xn)は、この手段によって生成されたものである。なお、「Nn」とは、n個の自然数の集合を意味する。
【0012】
本形態におけるセキュリティシステム1において共通鍵k(x1,x2,…,xn)の配送を行う場合、例えば、まず、セキュリティ装置2は、整数係数の多変数多項式である多変数共通多項式a(x1,x2,…,xn)を生成し、生成した多変数共通多項式a(x1,x2,…,xn)をセキュリティ装置3に送信する。そして、例えば次に、セキュリティ装置2は、整数組s=(s0,s1,s2,…,sn)を定め、この整数組s=(s0,s1,s2,…,sn)及び多変数共通多項式a(x1,x2,…,xn)を用い、演算手段2aにおいて、多変数共通多項式a(x1,x2,…,xn)の任意の変数に、概変数ごとに独立した整数組(s1,s2,…,sn)を加算した該多変数多項式の演算を行い、この演算の結果に対し、演算手段2bにおいて、整数(s0)を指数とする指数演算を行い、該演算結果を、上述したイデアル集合(I)によって剰余演算する(b(x1,x2,…,xn)=a(x1+s1,x2+s2,…,xn+sn)s0modI)。この演算結果である多変数多項式b(x1,x2,…,xn)は、例えば、整数組s=(s0,s1,s2,…,sn)が秘密に保たれた状態で、セキュリティ装置3に送信される。
【0013】
一方、セキュリティ装置3は、例えば、整数組t=(t0,t1,t2,…,tn)を定め、この整数組t=(t0,t1,t2,…,tn)、及びセキュリティ装置2から送信された多変数共通多項式a(x1,x2,…,xn)を用い、演算手段3aにおいて、多変数共通多項式a(x1,x2,…,xn)の任意の変数に、概変数ごとに独立した整数組(t1,t2,…,tn)を加算した該多変数多項式の演算を行い、この演算の結果に対し、演算手段3bにおいて、整数(t0)を指数とする指数演算を行い、該演算結果を、上述したイデアル集合(I)によって剰余演算する(c(x1,x2,…,xn)=a(x1+t1,x2+t2,…,xn+tn)t0modI)。この演算結果である多変数多項式c(x1,x2,…,xn)は、例えば、整数組t=(t0,t1,t2,…,tn)が秘密に保たれた状態で、セキュリティ装置2に送信される。
セキュリティ装置3から多変数多項式c(x1,x2,…,xn)が送信されたセキュリティ装置2は、例えば、演算手段2aにおいて、多変数多項式c(x1,x2,…,xn)の任意の変数に、概変数ごとに独立した整数組(s1,s2,…,sn)を加算した該多変数多項式の演算を行い、この演算の結果に対し、演算手段2bにおいて、整数(s0)を指数とする指数演算を行い、該演算結果を、上述したイデアル集合(I)によって剰余演算し(k(x1,x2,…,xn)=c(x1+s1,x2+s2,…,xn+sn)s0modI)、共通鍵k(x1,x2,…,xn)を求める。
【0014】
一方、セキュリティ装置2から多変数多項式b(x1,x2,…,xn)が送信されたセキュリティ装置3は、例えば、演算手段3aにおいて、多変数多項式b(x1,x2,…,xn)の任意の変数に、概変数ごとに独立した整数組(t1,t2,…,tn)を加算した該多変数多項式の演算を行い、この演算の結果に対し、演算手段3bにおいて、整数(t0)を指数とする指数演算を行い、該演算結果を、上述したイデアル集合(I)によって剰余演算し(k(x1,x2,…,xn)=b(x1+t1,x2+t2,…,xn+tn)t0modI)、共通鍵k(x1,x2,…,xn)を求める。
ここで、上述した演算手段2a、3aにおいて行われる演算(a(x1+s1,x2+s2,…,xn+sn)、a(x1+t1,x2+t2,…,xn+tn)、c(x1+s1,x2+s2,…,xn+sn)、b(x1+t1,x2+t2,…,xn+tn))は、入力される多変数多項式をa(x1,x2,…,xn)とし、概変数ごとに独立した第1の整数組を(s1,s2,…,sn)とし、p=(p1,p2,…,pn)∈Nnとし、sp=s1 p1s2 p2…sn pnとし、p!=p1!p2!…,pn!とし、(∂/∂x)p=(∂/∂x1)p1(∂/∂x2)p2…(∂/∂xn)pnとした場合における、Σpsp(1/p!)(∂/∂x)pa(x1,x2,…,xn)という一般式を用いて行うことが可能であることが知られている。そして、この例においても、上述の演算手段2a、3aにおける演算は、この一般式によって行うものとする。
【0015】
この一般式が示す通り、この演算に必要な四則演算の回数は、秘密パラメータ((s1,s2,…,sn)や(t1,t2,…,tn))の大きさに依存しない。したがって、この秘密パラメータの大きさを大きくした場合であっても、鍵配送時において、この演算手段2a、3aにおいて行われる演算に起因した四則演算の回数が増大することはなく、結果、秘密パラメータの大きさに依存して計算量が増大する従来のDiffile−Hellman鍵配送方式に比べ、大幅に利便性が向上する。
また、この形態では、演算手段2a、3aによって行われる、整数係数の多変数多項式の任意の変数に、概変数ごとに独立した第1の整数組を加算した該多変数多項式の演算と、演算手段2b、3bによって行われる、第1の整数を指数とする指数演算を行い、該演算結果をイデアル集合によって剰余演算する演算と、を組み合わせることによって離散対数問題を構成し、この離散対数問題を交換することにより、共通鍵k(x1,x2,…,xn)の配送を行うこととしたため、指数演算のみによって構成される離散対数問題によって共通鍵の配送を行っていた従来のDiffile−Hellman鍵配送方式に比べ、第三者がこの共通鍵の解読を行うことが困難となり、結果、共通鍵に対する安全性が大幅に向上する。特に、1変数多項式ではなく、多変数多項式の任意の変数に、概変数ごとに独立した整数組を加算する演算によって離散対数問題を生成する本形態の例では、その効果はより大きなものとなる。
【0016】
次に、本形態の詳細について説明を行う。
図2は、本形態におけるセキュリティシステム10の全体構成を例示した図である。
図2に例示するように、セキュリティシステム10は、例えば、離散対数問題を利用し、相互に共通鍵の配送を行うセキュリティ装置20、30、及びセキュリティ装置20、30相互を通信可能なように接続するネットワーク40を有しており、このセキュリティ装置20、30は、ネットワーク40を介し、相互に情報のやり取りが可能なように、有線又は無線によって電気的に接続され、或いは接続可能な状態となっている。
セキュリティ装置20、30は、例えば、モデム、DSU(Digital Service Unit)、NCU(Network Control Unit)、TA(Terminal Adapter)等のデータ回線終端装置を具備し、或いは接続されたコンピュータによって構成されている。そして、このセキュリティ装置20、30には、所定のメールソフトウェアやWWWブラウザがインストールされており、このメールソフトウェアやWWWブラウザを用いることにより、図示していないメールサーバやWWWサーバを介し、セキュリティ装置20、30相互間の通信が可能な構成となっている。
ネットワーク40は、例えば、インターネット、イントラネット、エクストラネット、LAN(Local Area Network)、WAN(Wide Area Network)、VAN(Value Added Network)等であり、その形態について特に制限はない。
なお、図2では、2つのセキュリティ装置20、30によってセキュリティシステム10を構成しているが、セキュリティ装置20、30を、これより多く設け、それらのセキュリティ装置相互間で共通鍵の配送を行う構成としてもよい。
【0017】
図3は、セキュリティ装置20のハードウェア構成を例示したブロック図である。
図3に例示するように、セキュリティ装置20は、例えば、CPU(Central processing Unit:中央処理装置)21、主記憶装置22、外部記憶装置23、入力装置24、記録媒体読書き装置25、出力装置26、通信制御装置27及びバス28を有しており、通信制御装置27を介し、ネットワーク40と通信可能なように接続され、或いは接続可能なように構成されている。
CPU21は、例えば、制御装置と演算装置を有するCISC(Complex Instruction Set Computer)方式、或いはRISC(Reduced Instruction Set Computer)方式の中央処理装置であり、図示していない発信器から供給されるクロック信号に同期し、主記憶装置22に格納されたオペレーティングシステム、アプリケーションプログラム等の各種プログラムの実行を行い、周辺機器の制御、必要データの呼び出し、呼び出したデータの演算・加工、演算・加工後のデータのメモリへの格納、周辺機器への出力等の各種処理を行う。
【0018】
主記憶装置22は、例えば、CPU21が直接データを読み書きできる記憶装置である。主記憶装置22には、例えば、オペレーティングシステム、アプリケーションプログラム、データ、周辺機器を制御するドライバ等が読み込まれ、CPU21は、この主記憶装置22に読み込まれたオペレーティングシステム等を実行することにより、一連の処理を行う。主記憶装置22には、例えば、半導体メモリ等の高速処理可能な記憶素子を用い、この主記憶装置22内の物理アドレスは、ページング方式、セグメンテーション方式等の方法により、外部記憶装置23の仮想アドレス空間に対応付けられる。
外部記憶装置23は、例えば、磁性体が蒸着された薄い円盤を高速回転させ、この磁性体を磁気ヘッドによって磁化することでデータの記録を行うハードディスク装置等である。
入力装置24は、例えば、キーボードやマウス等の入出力デバイスである。
記録媒体読書き装置25は、例えば、フレキシブルディスク等への情報の読書き、コンパクト・ディスク等からの情報の読み出し等を行う装置である。
【0019】
出力装置26は、例えば、画面表面の蛍光素材に電子ビームを当てることによって映像の表示を行うCRT(Cathode−ray Tube)ディスプレイ、或いは、電圧を加えた際に分子配列が変化する液晶の性質を利用した液晶ディスプレイ等であり、供給されたアナログ信号をもとに、所定の映像の表示を行う。
通信制御装置27は、例えば、例えば、USART(Universal Synchronous and Asynchronous Receiver−Transmitter)等の汎用同期・非同期送受信回路であり、ネットワーク40を介したデータ送受信時にデータの直列変換等を行う。
バス28は、例えば、データバス、アドレスバス、コントロールバス等によって構成され、CPU21、主記憶装置22、外部記憶装置23、入力装置24、記録媒体読書き装置25、出力装置26、通信制御装置27間のデータ、アドレス情報、制御情報の受け渡しを行う。
なお、ここでは説明を省略するが、セキュリティ装置30も、例えばこのセキュリティ装置20と同様なハードウェア構成をとるものとする。
【0020】
図4は、図3に例示したハードウェアにおいて所定のプログラム(ソフトウェア)を実行させることにより、このハードウェアとソフトウェアとが協働した具体的手段によって構築されるセキュリティ装置20の処理機能を例示した機能ブロック図である。
図4に例示するように、この例のセキュリティ装置20は、共通鍵の配送相手と共用される整数係数の多変数共通多項式を生成する共通多項式生成手段20a、多変数共通多項式を開示する共通多項式開示手段20b、整数組を生成する整数組生成手段20c、離散対数問題を構成する多項式の演算を行う多項式演算手段20d、第1の多変数多項式を、共通鍵の配送相手に開示する多項式開示手段20e、共通鍵の配送相手によって演算された第2の多変数多項式、を取得する多項式取得手段20f、共通鍵を算出する共通鍵算出手段20g、各種情報を記憶する記憶手段20h、セキュリティ装置20、30で共通の自然数、及び整数係数の多変数多項式を生成する共通要素生成手段20j、及びセキュリティ装置20全体を制御する制御手段20kを、処理機能として有している。
【0021】
また、この例では、共通多項式生成手段20aは、SHA−1等の一方向性ハッシュ関数を用いて構成される、計算量理論に基づく擬似乱数生成アルゴリズム等を用い、擬似乱数を発生させる擬似乱数発生手段20aa、及び擬似乱数発生手段20aaによって発生させた擬似乱数を用いて所定の整数値を生成し、生成した整数値を係数とする多変数共通多項式を生成する多項式生成手段20abを有しており、整数組生成手段20cは、SHA−1等の一方向性ハッシュ関数を用いて構成される、計算量理論に基づく擬似乱数生成アルゴリズム等を用い、擬似乱数を発生させる擬似乱数発生手段20ca、及び擬似乱数発生手段20caよって発生させた擬似乱数を用いて、所定の整数値を生成する整数値演算手段20cbを有している。
【0022】
さらに、この例の多項式演算手段20dは、共通鍵の配送相手と共用される整数係数の多変数共通多項式の任意の変数に、概変数ごとに独立した第1の整数組を加算した、該多変数多項式の演算を行う第3の演算手段である演算手段20da、及び演算手段20daによって行われた演算の結果に対し、第1の整数を指数とする指数演算を行い、該演算結果を、前述したイデアル集合によって剰余演算する第4の演算手段である演算手段20dbを有しており、この例の多項式演算手段20gは、多項式取得手段20fによって取得された第2の多変数多項式の任意の変数に、第1の整数組を加算した、該多変数多項式の演算を行う第5の演算手段である演算手段20ga、及び演算手段20gaによって行われた演算の結果に対し、第1の整数を指数とする指数演算を行い、該演算結果を、前述したイデアル集合によって剰余演算した結果を、共通鍵として出力する第6の演算手段である演算手段20gbを有している。
【0023】
また、図4に例示するように、共通多項式生成手段20a、共通多項式開示手段20b、整数組生成手段20c、多項式演算手段20d、多項式開示手段20e、多項式取得手段20f、共通鍵算出手段20g、記憶手段20h、及び共通要素生成手段20jは、制御手段20kとの情報のやり取りが可能なように構成されており、共通多項式開示手段20b、多項式開示手段20e、及び多項式取得手段20fは、ネットワーク40を介した通信が可能なように構成されている。
【0024】
図5は、図3に例示したハードウェアにおいて所定のプログラム(ソフトウェア)を実行させることにより、このハードウェアとソフトウェアとが協働した具体的手段によって構築されるセキュリティ装置30の処理機能を例示した機能ブロック図である。
図5に例示するように、この例のセキュリティ装置30は、セキュリティ装置20によって開示された多変数共通多項式を取得する共通多項式取得手段30b、整数組を生成する整数組生成手段30c、離散対数問題を構成する多項式の演算を行う多項式演算手段30d、第1の多変数多項式を共通鍵の配送相手に開示する多項式開示手段30e、セキュリティ装置20によって演算された第2の多変数多項式を取得する多項式取得手段30f、共通鍵の算出を行う共通鍵算出手段30g、各種の情報を記憶する記憶手段30h、セキュリティ装置20、30で共通の自然数及び整数係数の多変数多項式を生成する共通要素生成手段30j、及びセキュリティ装置30全体を制御する制御手段30kを、処理機能として有している。
また、この例では、整数組生成手段30cは、SHA−1等の一方向性ハッシュ関数を用いて構成される、計算量理論に基づく擬似乱数生成アルゴリズム等を用い、擬似乱数を発生させる擬似乱数発生手段30ca、及び擬似乱数発生手段30caよって発生させた擬似乱数を用いて、所定の整数値を生成する整数値演算手段30cbを有している。
【0025】
さらに、この例の多項式演算手段30dは、共通鍵の配送相手と共用される整数係数の多変数共通多項式の任意の変数に、概変数ごとに独立した第1の整数組を加算した、該多変数多項式の演算を行う第3の演算手段である演算手段30da、及び演算手段30daによって行われた演算の結果に対し、第1の整数を指数とする指数演算を行い、該演算結果を、前述したイデアル集合によって剰余演算する第4の演算手段である演算手段30dbを有しており、この例の多項式演算手段30gは、多項式取得手段30fによって取得された第2の多変数多項式の任意の変数に、第1の整数組を加算した、該多変数多項式の演算を行う第5の演算手段である演算手段30ga、及び演算手段30gaによって行われた演算の結果に対し、第1の整数を指数とする指数演算を行い、該演算結果を、前述したイデアル集合によって剰余演算した結果を、共通鍵として出力する第6の演算手段である演算手段30gbを有している。
また、図5に例示するように、共通多項式取得手段30b、整数組生成手段30c、多項式演算手段30d、多項式開示手段30e、多項式取得手段30f、共通鍵算出手段30g、記憶手段30h、及び共通要素生成手段30jは、制御手段30kとの情報のやり取りが可能なように構成されており、共通多項式取得手段30b、多項式開示手段30e及び多項式取得手段30fは、ネットワーク40を介した通信が可能なように構成されている。
次に、本形態におけるセキュリティシステム10、セキュリティ装置20、30の処理動作について説明する。
【0026】
図6は、本形態におけるセキュリティシステム10、セキュリティ装置20、30の処理動作の一例を説明するためのフローチャートである。なお、このフローチャートにおける実線の矢印は、セキュリティシステム10全体における一連の処理の流れを例示したものであり、破線の矢印は、セキュリティシステム10全体における一連の処理の流れと、セキュリティ装置20、30それぞれ単体での処理の流れが異なる部分について、セキュリティ装置20、30単体での処理の流れを例示したものである。また、ここでは、説明を容易にするため、便宜的に図6のような処理の流れにそって処理動作の説明を行うが、セキュリティ装置20、30それぞれが、このフローチャートの流れと異なる順序で処理を行うこととしてもよく、また、セキュリティ装置20、30が、平行して、同時にそれぞれの処理を行うこととしてもよい。
【0027】
以下、このフローチャートに沿って説明を行う。
ステップS1:
本ステップでは、セキュリティ装置20において多変数共通多項式a(x1,x2,…,xn)の設定を行う。
多変数共通多項式a(x1,x2,…,xn)の設定は、例えば、セキュリティ装置20の共通多項式生成手段20aにおいて行われる。具体的には、例えば、まず、擬似乱数発生手段20aaにおいて擬似乱数を発生させ、次に、多項式生成手段20abにおいて、この擬似乱数を所定の桁数に加工し、さらに、所定の値を減算すること等により、多変数多項式の整数係数を設定し、この整数係数を用いて多変数共通多項式a(x1,x2,…,xn)の設定を行う。なお、「n」は、セキュリティ装置20、30の共通要素生成手段20j、30jでそれぞれ生成された共通の自然数である(以下、同様)。
このように設定された多変数共通多項式a(x1,x2,…,xn)を特定するための情報は、例えば、制御手段20kに送られ、制御手段20kは、送られた多変数共通多項式a(x1,x2,…,xn)を特定するための情報を、共通多項式開示手段20b及び記憶手段20hに送る。記憶手段20hに送られた多変数共通多項式a(x1,x2,…,xn)を特定するための情報は、例えば、記憶手段20hに記録され、共通多項式開示手段20bに送られた多変数共通多項式a(x1,x2,…,xn)を特定するための情報は、次のステップS2の処理に使用される。
【0028】
ステップS2:
本ステップでは、ステップS1で設定された多変数共通多項式a(x1,x2,…,xn)を、セキュリティ装置30に送信する。
多変数共通多項式a(x1,x2,…,xn)の送信は、例えば、セキュリティ装置20の共通多項式開示手段20bによって行われる。具体的には、例えば、セキュリティ装置20からセキュリティ装置30宛の電子メールに、この多変数共通多項式a(x1,x2,…,xn)を特定するための情報を提示し、或いは、セキュリティ装置30が閲覧可能なインターネット上のホームページに、この多変数共通多項式a(x1,x2,…,xn)を特定するための情報をアップロードすることによって行われる。
このように多変数共通多項式a(x1,x2,…,xn)の送信が行われると、次に、ステップS3の処理に移る。
【0029】
ステップS3:
本ステップでは、ステップS2でセキュリティ装置20から送信された多変数共通多項式a(x1,x2,…,xn)をセキュリティ装置30において受信する。
多変数共通多項式a(x1,x2,…,xn)の受信は、例えば、セキュリティ装置30の共通多項式取得手段30bにおいて行われる。具体的には、例えば、セキュリティ装置30が、インターネット上のメールサーバにアクセスし、セキュリティ装置20から送られたセキュリティ装置30宛の電子メールを受け取ることにより、または、多変数共通多項式a(x1,x2,…,xn)を特定するための情報がアップロードされたインターネット上のホームページにアクセスすること等により行われる。
このように受信された多変数共通多項式a(x1,x2,…,xn)を特定するための情報は、例えば、制御手段30kに送られ、制御手段30kは、送られた多変数共通多項式a(x1,x2,…,xn)を特定するための情報を記憶手段30hに送る。記憶手段30hに送られた多変数共通多項式a(x1,x2,…,xn)を特定するための情報は、例えば、記憶手段30hに記憶され、次のステップS4の処理に移る。
【0030】
ステップS4:
本ステップでは、セキュリティ装置20において整数組s=(s0,s1,s2,…,sn)の設定を行う。
整数組s=(s0,s1,s2,…,sn)の設定は、例えば、セキュリティ装置20の整数組生成手段20cによって行われる。具体的には、例えば、まず、擬似乱数発生手段20caにおいて擬似乱数を発生させ、次に、整数値演算手段20cbにおいて、この擬似乱数を所定の桁数に加工し、さらに、所定の値を減算すること等により、所定の整数組s=(s0,s1,s2,…,sn)を設定する。
設定された整数組s=(s0,s1,s2,…,sn)を特定するための情報は、例えば、制御手段20kに送られ、制御手段20kは、送られた整数組s=(s0,s1,s2,…,sn)を特定するための情報を、多項式演算手段20d及び記憶手段20hに送る。記憶手段20hに送られた整数組s=(s0,s1,s2,…,sn)を特定するための情報は、例えば、記憶手段20hに記憶され、多項式演算手段20dに送られた整数組s=(s0,s1,s2,…,sn)を特定するための情報は、ステップS5の処理に使用される。
【0031】
ステップS5:
本ステップでは、多変数多項式b(x1,x2,…,xn)の演算を行う。
多変数多項式b(x1,x2,…,xn)の演算は、例えば、セキュリティ装置20の多項式演算手段20dにおいて行われる。多変数多項式b(x1,x2,…,xn)の演算の演算を行う場合、例えば、まず、制御手段20kは、ステップS1において記憶手段20hに記憶された多変数共通多項式a(x1,x2,…,xn)を特定するための情報を読み込み、その情報を多項式演算手段20dに送る。この情報が多項式演算手段20dに送られると、例えば、演算手段20daは、この多変数共通多項式a(x1,x2,…,xn)の任意の変数に、整数組(s1,s2,…,sn)を加算した該多変数共通多項式(a(x1+s1,x2+s2,…,xn+sn))の演算を行う。具体的には、例えば、前述した一般式Σpsp(1/p!)(∂/∂x)pa(x1,x2,…,xn)(以下、単に「一般式」という。)を用いて行う。
【0032】
次に、例えば、演算手段20dbにおいて、この演算手段20daによって行われた演算の結果に対し、整数s0を指数とする指数演算を行い、該演算結果を、前述したイデアル集合Iによって剰余演算する(b(x1,x2,…,xn)=a(x1+s1,x2+s2,…,xn+sn)s0modI)。なお、前述のように、このイデアル集合Iの生成には、例えば、セキュリティ装置20、30で共通する整数係数の多変数多項式f(x1,x2,…,xn)が使用されるが、この多変数多項式f(x1,x2,…,xn)は、共通要素生成手段20jにおいて生成されるものである(後述するステップS12の処理においても同様)。また、ここで、このようなイデアル集合Iによって剰余演算を行う理由については後述する。
この演算結果である多変数多項式b(x1,x2,…,xn)を特定するための情報は、例えば、制御手段20kに送られ、制御手段20kは、送られた多変数多項式b(x1,x2,…,xn)を特定するための情報を、多項式開示手段20eに送る。多項式開示手段20eにこの情報が送られると、次に、ステップS6の処理に移る。
【0033】
ステップS6:
本ステップでは、演算手段20dbによって演算された多変数多項式b(x1,x2,…,xn)を、セキュリティ装置30に送信する。
多変数多項式b(x1,x2,…,xn)の送信は、例えば、セキュリティ装置20の多項式開示手段20eによって行われるが、この際、整数組s=(s0,s1,s2,…,sn)は開示されず、この整数組s=(s0,s1,s2,…,sn)をセキュリティ装置20側で秘密に保った状態で行われる。具体的には、例えば、セキュリティ装置20からセキュリティ装置30宛の電子メールに、この多変数多項式b(x1,x2,…,xn)を特定するための情報を、整数組s=(s0,s1,s2,…,sn)を特定するための情報を開示することなく提示し、或いは、セキュリティ装置30が閲覧可能なインターネット上のホームページに、この多変数多項式b(x1,x2,…,xn)を特定するための情報を、整数組s=(s0,s1,s2,…,sn)を特定するための情報を開示することなくアップロードすることによって行われる。
このように多変数多項式b(x1,x2,…,xn)の送信が行われると、次に、ステップS7の処理に移る。
【0034】
ステップS7:
本ステップでは、ステップS6でセキュリティ装置20から送信された多変数多項式b(x1,x2,…,xn)をセキュリティ装置30において受信する。
多変数多項式b(x1,x2,…,xn)の受信は、例えば、セキュリティ装置30の多項式取得手段30fにおいて行われる。具体的には、例えば、セキュリティ装置30が、インターネット上のメールサーバにアクセスし、セキュリティ装置20から送られたセキュリティ装置30宛の電子メールを受け取ることにより、または、多変数多項式b(x1,x2,…,xn)を特定するための情報がアップロードされたインターネット上のホームページにアクセスすること等により行われる。
このように受信された多変数多項式b(x1,x2,…,xn)を特定するための情報は、例えば、制御手段30kに送られ、制御手段30kは、送られた多変数多項式b(x1,x2,…,xn)を特定するための情報を記憶手段30hに送る。記憶手段30hに送られた多変数多項式b(x1,x2,…,xn)を特定するための情報は、例えば、記憶手段30hに記憶され、次のステップS8の処理に移る。
【0035】
ステップS8:
本ステップでは、セキュリティ装置30において整数組t=(t0,t1,t2,…,tn)の設定を行う。
整数組t=(t0,t1,t2,…,tn)の設定は、例えば、セキュリティ装置30の整数組生成手段30cによって行われる。具体的には、例えば、まず、擬似乱数発生手段30caにおいて擬似乱数を発生させ、次に、整数値演算手段30cbにおいて、この擬似乱数を所定の桁数に加工し、さらに、所定の値を減算すること等により、所定の整数組t=(t0,t1,t2,…,tn)を設定する。
設定された整数組t=(t0,t1,t2,…,tn)を特定するための情報は、例えば、制御手段30kに送られ、制御手段30kは、送られた整数組t=(t0,t1,t2,…,tn)を特定するための情報を、多項式演算手段30d及び記憶手段30hに送る。記憶手段30hに送られた整数組t=(t0,t1,t2,…,tn)を特定するための情報は、例えば、記憶手段30hに記憶され、多項式演算手段30dに送られた整数組t=(t0,t1,t2,…,tn)を特定するための情報は、ステップS9の処理に使用される。
【0036】
ステップS9:
本ステップでは、多変数多項式c(x1,x2,…,xn)の演算を行う。
多変数多項式c(x1,x2,…,xn)の演算は、例えば、セキュリティ装置30の多項式演算手段30dにおいて行われる。多変数多項式c(x1,x2,…,xn)の演算の演算を行う場合、例えば、まず、制御手段30kは、ステップS3において記憶手段30hに記憶された多変数共通多項式a(x1,x2,…,xn)を特定するための情報を読み込み、その情報を多項式演算手段30dに送る。この情報が多項式演算手段30dに送られると、例えば、演算手段30daは、この多変数共通多項式a(x1,x2,…,xn)の任意の変数に、整数組(t1,t2,…,tn)を加算した該多変数共通多項式(a(x1+t1,x2+t2,…,xn+tn))の演算を行う。この演算は、具体的には、例えば、前述した一般式を用いて行う。
【0037】
次に、例えば、演算手段30dbにおいて、この演算手段30daによって行われた演算の結果に対し、整数t0を指数とする指数演算を行い、該演算結果を、前述したイデアル集合Iによって剰余演算する(c(x1,x2,…,xn)=a(x1+t1,x2+t2,…,xn+tn)t0modI)。なお、前述のように、このイデアル集合Iの生成には、例えば、セキュリティ装置20、30で共通する整数係数の多変数多項式f(x1,x2,…,xn)が使用されるが、この多変数多項式f(x1,x2,…,xn)は、共通要素生成手段30jにおいて生成されるものである(後述するステップS13の処理においても同様)。また、ここで、このようなイデアル集合Iによって剰余演算を行う理由については後述する。
この演算結果である多変数多項式c(x1,x2,…,xn)を特定するための情報は、例えば、制御手段30kに送られ、制御手段30kは、送られた多変数多項式c(x1,x2,…,xn)を特定するための情報を、多項式開示手段30eに送る。多項式開示手段30eにこの情報が送られると、次に、ステップS10の処理に移る。
【0038】
ステップS10:
本ステップでは、演算手段30dbによって演算された多変数多項式c(x1,x2,…,xn)を、セキュリティ装置20に送信する。
多変数多項式c(x1,x2,…,xn)の送信は、例えば、セキュリティ装置30の多項式開示手段30fによって行われるが、この際、整数組t=(t0,t1,t2,…,tn)は開示されず、この整数組t=(t0,t1,t2,…,tn)をセキュリティ装置30側で秘密に保った状態で行われる。具体的には、例えば、セキュリティ装置30からセキュリティ装置20宛の電子メールに、この多変数多項式c(x1,x2,…,xn)を特定するための情報を、整数組t=(t0,t1,t2,…,tn)を特定するための情報を開示することなく提示し、或いは、セキュリティ装置20が閲覧可能なインターネット上のホームページに、この多変数多項式c(x1,x2,…,xn)を特定するための情報を、整数組t=(t0,t1,t2,…,tn)を特定するための情報を開示することなくアップロードすることによって行われる。
このように多変数多項式c(x1,x2,…,xn)の送信が行われると、次に、ステップS11の処理に移る。
【0039】
ステップS11:
本ステップでは、ステップS10でセキュリティ装置30から送信された多変数多項式c(x1,x2,…,xn)をセキュリティ装置20において受信する。
多変数多項式c(x1,x2,…,xn)の受信は、例えば、セキュリティ装置20の多項式取得手段20fにおいて行われる。具体的には、例えば、セキュリティ装置20が、インターネット上のメールサーバにアクセスし、セキュリティ装置30から送られたセキュリティ装置20宛の電子メールを受け取ることにより、または、多変数多項式c(x1,x2,…,xn)を特定するための情報がアップロードされたインターネット上のホームページにアクセスすること等により行われる。
このように受信された多変数多項式c(x1,x2,…,xn)を特定するための情報は、例えば、制御手段20kに送られ、制御手段20kは、送られた多変数多項式c(x1,x2,…,xn)を特定するための情報を記憶手段20hに送る。記憶手段20hに送られた多変数多項式c(x1,x2,…,xn)を特定するための情報は、例えば、記憶手段20hに記憶され、次のステップS12の処理に移る。
【0040】
ステップS12:
本ステップでは、セキュリティ装置20において、共通鍵k(x1,x2,…,xn)の算出を行う。
共通鍵k(x1,x2,…,xn)の算出は、例えば、セキュリティ装置20の共通鍵算出手段20gにおいて行われる。共通鍵k(x1,x2,…,xn)の算出を行う場合、例えば、まず、制御手段20kは、ステップS11において記憶手段20hに記憶された多変数多項式c(x1,x2,…,xn)を特定するための情報を読み込み、その情報を共通鍵算出手段20gに送る。この情報が共通鍵算出手段20gに送られると、例えば、この共通鍵算出手段20gは、演算手段20gaによって、この多変数多項式c(x1,x2,…,xn)の変数に、整数組(s1,s2,…,sn)を加算した該多変数多項式の演算(c(x1+s1,x2+s2,…,xn+sn))を行い、演算手段20gbによって、この演算結果に対し、整数s0を指数とする指数演算を行い、該演算結果に対し、前述したイデアル集合によって剰余演算した結果(c(x1+s1,x2+s2,…,xn+sn)s0)を共通鍵k(x1,x2,…,xn)として出力する。なお、この場合も、c(x1+s1,x2+s2,…,xn+sn)の演算は、例えば、前述した一般式を用いて行う。
【0041】
ステップS13:
本ステップでは、セキュリティ装置30において、共通鍵k(x1,x2,…,xn)の算出を行う。
共通鍵k(x1,x2,…,xn)の算出は、例えば、セキュリティ装置30の共通鍵算出手段30gにおいて行われる。共通鍵k(x1,x2,…,xn)の算出を行う場合、例えば、まず、制御手段30kは、ステップS7において記憶手段30hに記憶された多変数多項式b(x1,x2,…,xn)を特定するための情報を読み込み、その情報を共通鍵算出手段30gに送る。この情報が共通鍵算出手段30gに送られると、例えば、この共通鍵算出手段30gは、演算手段30gaによって、この多変数多項式b(x1,x2,…,xn)の変数に、整数組(t1,t2,…,tn)を加算した該多変数多項式の演算(b(x1+t1,x2+t2,…,xn+tn))を行い、演算手段30gbによって、この演算結果に対し、整数t0を指数とする指数演算を行い、該演算結果に対し、前述したイデアル集合によって剰余演算した結果(b(x1+t1,x2+t2,…,xn+tn)t0)を共通鍵k(x1,x2,…,xn)として出力する。なお、この場合も、b(x1+t1,x2+t2,…,xn+tn)の演算は、例えば、前述した一般式を用いて行う。
【0042】
以上の処理により、セキュリティ装置20、30間において共通鍵k(x1,x2,…,xn)の配送が行われたことになるが、次に、このセキュリティ装置20、30それぞれで算出された共通鍵k(x1,x2,…,xn)の同一性、及び上述のステップS5、S9、S12、S13の処理において、前述のイデアル集合Iによって剰余演算を行った理由について説明する。
前述のように、イデアル集合Iは、イデアルであって、該イデアルに対して行われた、整数係数の多変数多項式の任意の変数について任意の整数値だけ加算した該多項式の演算結果が、再び、該イデアルとなる集合である。この場合、この整数係数の多変数多項式をg(x1,x2,…,xn)、任意の整数組を(d1,d2,…,dn)とすると、このイデアル集合I に対し、g(x1,x2,…,xn)∈Iならばg(x1+d1,x2+d2,…,xn+dn)∈Iであるという関係が満たされることとなる。
【0043】
ここで、h(x1,x2,…,xn)≡r(x1,x2,…,xn)modIとする。つまり、g(x1,x2,…,xn)∈Iとp(x1,x2,…,xn)∈Z[x1,x2,…,xn]が存在して、h(x1,x2,…,xn)=p(x1,x2,…,xn)・g(x1,x2,…,xn)+r(x1,x2,…,xn)と書けるとする。なお、ここで、Z[x1,x2,…,xn]は、整数係数の多変数多項式全体の集合を表す。この式の両辺について、(x1,x2,…,xn)を(x1+d1,x2+d2,…,xn+dn)で置き換えると、h(x1+d1,x2+d2,…,xn+dn)=p(x1+d1,x2+d2,…,xn+dn)・g(x1+d1,x2+d2,…,xn+dn)+r(x1+d1,x2+d2,…,xn+dn)となるが、上述のように、g(x1+d1,x2+d2,…,xn+dn)∈Iが満たされるため、h(x1+d1,x2+d2,…,xn+dn)≡r(x1+d1,x2+d2,…,xn+dn)modIという関係も成立することになる。すなわち、前述のようなイデアル集合Iである限り、h(x1,x2,…,xn)≡r(x1,x2,…,xn)modIという関係が成立すれば、必ず、h(x1+d1,x2+d2,…,xn+dn)≡r(x1+d1,x2+d2,…,xn+dn)modIという関係も成立することになる。これは、このイデアル集合Iの代わりに、このイデアル集合Iでない集合で剰余演算を行った場合には、必ずしも成立しない関係である。
さらに、このように、h(x1,x2,…,xn)≡r(x1,x2,…,xn)modIという関係が成立すれば、必ず、h(x1+d1,x2+d2,…,xn+dn)≡r(x1+d1,x2+d2,…,xn+dn)modIという関係も成立するということが言える場合、任意の整数組(d1,d2,…,dn)と任意の多変数多項式h(x1,x2,…,xn)について、Iでの剰余演算を行った後に、(x1,x2,…,xn)を(x1+d1,x2+d2,…,xn+dn)に置き換えた多項式と、(x1,x2,…,xn)を(x1+d1,x2+d2,…,xn+dn)に置き換えた後に、Iでの剰余演算を行った多項式とは同一となることが言える。
【0044】
そして、任意の整数組(d1,d2,…,dn)と任意の多変数多項式h(x1,x2,…,xn)について、Iでの剰余演算を行った後に、(x1,x2,…,xn)を(x1+d1,x2+d2,…,xn+dn)に置き換えた多項式と、(x1,x2,…,xn)を(x1+d1,x2+d2,…,xn+dn)に置き換えた後に、Iでの剰余演算を行った多項式とは同一となることが言える場合、例えば、セキュリティ装置20において、b(x1,x2,…,xn)を算出するためにIでの剰余演算を行った後に、セキュリティ装置30において、k(x1,x2,…,xn)を算出するために(x1,x2,…,xn)を(x1+t1,x2+t2,…,xn+tn)に置き換えた多項式の演算結果と、セキュリティ装置30において、c(x1,x2,…,xn)を算出するために(x1,x2,…,xn)を(x1+t1,x2+t2,…,xn+tn)に置き換えた後に、セキュリティ装置30において、k(x1,x2,…,xn)を算出するためにIで剰余演算を行った結果とは等しくなることが言える(交換可能)。これは、(s1,s2,…,sn)についても同様である。
一方、指数演算に関して交換可能なことは、従来のDiffile−Hellman鍵配送方式と同様、明らかである。
以上より、前述したようなイデアル集合Iである場合、セキュリティ装置20、30それぞれで算出された共通鍵k(x1,x2,…,xn)は同一であることが言える。
【0045】
このように、この形態の例では、演算手段20da、30daによって、共通鍵の配送相手と共用される整数係数の多変数共通多項式の任意の変数に、概変数ごとに独立した第1の整数組を加算した、該多変数多項式の演算を行い(a(x1+s1,x2+s2,…,xn+sn)、a(x1+t1,x2+t2,…,xn+tn))、演算手段20db、30dbによって、演算手段20da、30daによって行われた演算の結果に対し、第1の整数を指数とする指数演算を行い、該演算結果を、前述したイデアル集合によって剰余演算し(a(x1+s1,x2+s2,…,xn+sn)s0modI、a(x1+t1,x2+t2,…,xn+tn)t0modI)、多項式開示手段20e、30eによって、演算手段20db、30dbによる演算結果である第1の多変数多項式(b(x1,x2,…,xn)、c(x1,x2,…,xn))を、共通鍵の配送相手に開示する。そして、多項式取得手段20f、30fにおいて、共通鍵の配送相手によって演算された第2の多変数多項式(c(x1,x2,…,xn)、b(x1,x2,…,xn))を取得し、演算手段20ga、30gaによって、多項式取得手段20f、30fによって取得された第2の多変数多項式の任意の変数に、第1の整数組をした、該多変数多項式の演算を行い(c(x1+s1,x2+s2,…,xn+sn)、b(x1+t1,x2+t2,…,xn+tn))、演算手段20gb、30gbによって、演算手段20ga、30gaによって行われた演算の結果に対し、第1の整数を指数とする指数演算を行い、該演算結果を、前述のイデアル集合によって剰余演算した結果(c(x1+s1,x2+s2,…,xn+sn)s0modI、b(x1+t1,x2+t2,…,xn+tn)t0modI)を、共通鍵として出力することとした。
【0046】
前述のように、演算手段20da、20ga、30da、30gaにおいて行われる演算に必要な四則演算の回数は、秘密パラメータ((s1,s2,…,sn)等)の大きさに依存せず、この秘密パラメータの大きさを大きくした場合であっても、鍵配送時において、この演算手段20da、20ga、30da、30gaにおいて行われる演算に起因した四則演算の回数が増大することはない。結果、秘密パラメータの大きさに依存して計算量が増大する従来のDiffile−Hellman鍵配送方式に比べ、大幅に利便性が向上する。
また、この形態の例では、演算手段20da、20ga、30da、30gaによって行われる、整数係数の多変数多項式の任意の変数に、第1の整数組を加算した該多変数多項式の演算と、演算手段20db、20gb、30db、30gbによって行われる、第1の整数を指数とする指数演算を行い、該演算結果を前述のイデアル集合によって剰余演算する演算と、を組み合わせることによって離散対数問題を構成し、この離散対数問題を交換することにより、共通鍵k(x1,x2,…,xn)の配送を行うこととしたため、指数演算のみによって構成される離散対数問題によって共通鍵の配送を行っていた従来のDiffile−Hellman鍵配送方式に比べ、第三者がこの共通鍵の解読を行うことが困難となり、結果、共通鍵に対する安全性が大幅に向上する。
【0047】
さらに、この形態の例では、イデアル集合を、整数係数の多項式がなす環のイデアルであって、δiを任意の多変数多項式g(x1,x2,…,xn)に対して多変数多項式g(x1,x2,…,xi,…,xn)−g(x1,x2,…,xi−1,…,xn)を対応させる作用素とし、degif(x1,x2,…,xn)をf(x1,x2,…,xn)のxiについての次数とし、(p1,p2,…,pn)∈Nnとした場合における、{Σ(p1,p2,…,pn)(Πi=1 nδi pi)f(x1,x2,…,xn)}によって生成されるイデアルであることとしたため、前述のように、セキュリティ装置20、30のそれぞれで算出された共通鍵k(x1,x2,…,xn)が同一となり、本形態における鍵配送が実質的に可能となる。
また、この形態の例では、演算手段20da、20ga、30da、30gaにおいて、多変数多項式a(x1,x2,…,xn)に対し、第1の整数組を(s1,s2,…,sn)とし、p=(p1,p2,…,pn)∈Nnとし、sp=s1 p1s2 p2…sn pnとし、p!=p1!p2!…,pn!とし、(∂/∂x)p=(∂/∂x1)p1(∂/∂x2)p2…(∂/∂xn)pnとした場合における、Σpsp(1/p!)(∂/∂x)pa(x1,x2,…,xn)の演算を行うこととしたため、演算手段20da、20ga、30da、30gaにおいて行われる演算に必要な四則演算の回数が、秘密パラメータ((s1,s2,…,sn)や(t1,t2,…,tn))の大きさに依存することはない。したがって、この秘密パラメータの大きさを大きくした場合であっても、鍵配送時において、この演算手段20da、20ga、30da、30gaにおいて行われる演算に起因した四則演算の回数が増大することはなく、結果、秘密パラメータの大きさに依存して計算量が増大する従来のDiffile−Hellman鍵配送方式に比べ、大幅に利便性が向上する。
【0048】
なお、この発明は上述の実施の形態に限定されるものではない。例えば、この形態の例では、第1の演算手段である演算手段20da等において、多変数多項式(a(x1,x2,…,xn)等)の全ての変数に、整数組((s1,s2,…,sn)等)を加算した当該多変数多項式の演算を行う場合を例示したが、多変数多項式の一部の変数(例えば、a(x1,x2,…,xn)における(x1,x2,…,xn)のうちの一部)のみに整数組を加算した当該多変数多項式の演算を行うこととしてもよい。
また、この形態の例では、セキュリティ装置20で生成した多変数共通多項式を、セキュリティ装置20からセキュリティ装置30へ送信する構成としたが、セキュリティ装置30で生成した多変数共通多項式をセキュリティ装置30からセキュリティ装置20へ送信する構成としてもよく、さらに、セキュリティ装置20、30双方で、セキュリティ装置20、30に共通する多変数共通多項式を生成する構成としてもよい。
【0049】
さらに、この形態では、コンピュータ上で所定のプログラムを実行させることにより、セキュリティ装置20、30を構成することとしたが、これらの処理内容の少なくとも一部を電子回路によってハードウェア的に実現することとしてもよい。
次に、この発明における第2の実施の形態について説明する。
ここでも、まず、本形態の概略について説明を行い、その後、本形態の詳細について説明を行っていく。
【0050】
図7は、本形態におけるセキュリティシステム100の概略を説明するための図である。
図7に例示するように、セキュリティシステム100は、セキュリティ装置102、103によって構成されており、セキュリティ装置103からセキュリティ装置102に暗号文Cを送信し、セキュリティ装置102が、送られた暗号文Cを復号するものとする。
この例の場合、セキュリティ装置102、103は、それぞれ、整数係数の多変数多項式の任意の変数に、概変数ごとに独立した第1の整数組を加算した、該多変数多項式の演算を行う演算手段102a、103a、及び演算手段102a、103aによって行われた演算の結果に対し、第1の整数を指数とする指数演算を行い、該演算結果を、前述したイデアル集合によって剰余演算する演算手段102b、103bを有している。
【0051】
この形態におけるセキュリティシステム100において、暗号化・復号を行う場合、例えば、まず、セキュリティ装置102は、整数係数の多変数多項式である多変数共通多項式a(x1,x2,…,xn)を生成し、生成した多変数共通多項式a(x1,x2,…,xn)をセキュリティ装置103に送信する。そして、例えば次に、セキュリティ装置102は、秘密鍵となる整数組s=(s0,s1,s2,…,sn)を定め、この整数組s=(s0,s1,s2,…,sn)及び多変数共通多項式a(x1,x2,…,xn)を用い、演算手段102aにおいて、多変数共通多項式a(x1,x2,…,xn)の任意の変数に、整数組(s1,s2,…,sn)を加算した該多変数多項式の演算を行い、この演算の結果に対し、演算手段102bにおいて、整数(s0)を指数とする指数演算を行い、該演算結果を、前述したイデアル集合(I)によって剰余演算する(b(x1,x2,…,xn)=a(x1+s1,x2+s2,…,xn+sn)s0modI)。この演算結果である多変数多項式b(x1,x2,…,xn)は、例えば、整数組s=(s0,s1,s2,…,sn)が秘密に保たれた状態で、公開鍵としてセキュリティ装置103に送信される。
【0052】
一方、セキュリティ装置103は、例えば、整数組t=(t0,t1,t2,…,tn)を定め、この整数組t=(t0,t1,t2,…,tn)、及びセキュリティ装置102から送信された多変数共通多項式a(x1,x2,…,xn)を用い、演算手段103aにおいて、多変数共通多項式a(x1,x2,…,xn)の任意の変数に、整数組(t1,t2,…,tn)を加算した該多変数多項式の演算を行い、この演算の結果に対し、演算手段103bにおいて、整数(t0)を指数とする指数演算を行い、該演算結果を、前述したイデアル集合(I)によって剰余演算する(c(x1,x2,…,xn)=a(x1+t1,x2+t2,…,xn+tn)t0modI)。
また、暗号化する平文Mが、M∈[0,1]lである場合、セキュリティ装置103は、例えば、演算手段103aにおいて、送信された多変数多項式b(x1,x2,…,xn)の任意の変数に、整数組(t1,t2,…,tn)を加算した該多変数多項式の演算を行い、この演算の結果に対し、演算手段103bにおいて、整数(t0)を指数とする指数演算を行い、該演算結果を、前述したイデアル集合(I)によって剰余演算する(b(x1+t1,x2+t2,…,xn+tn)t0modI)。その後、この演算結果に対し、ハッシュ関数H(演算結果の値域が十分大きい集合となることが好ましく、この値域が、例えば、280項以上程度の元からなる集合であるものがより好ましい)を作用させ、H(b(x1+t1,x2+t2,…,xn+tn)t0modI)∈[0,1]lを得る。そして、このH(b(x1+t1,x2+t2,…,xn+tn)t0modI)と平文Mとの排他的論理和(H(b(x1+t1,x2+t2,…,xn+tn)t0modI)(+)M)を暗号文として演算する。なお、図7及びこの形態の説明において、「A(+)B」は、AとBとの排他的論理和を意味するものとする。
【0053】
その後、このように演算されたc(x1,x2,…,xn)と、H(b(x1+t1,x2+t2,…,xn+tn)t0modI)(+)Mとは、例えば、整数組t=(t0,t1,t2,…,tn)が秘密に保たれた状態で、暗号文C=(c(x1,x2,…,xn),H(b(x1+t1,x2+t2,…,xn+tn)t0modI)(+)M)として、セキュリティ装置102に送信される。
暗号文Cが送信されたセキュリティ装置102は、例えば、演算手段102aによって、暗号文Cを構成する多変数多項式c(x1,x2,…,xn)の任意の変数に、整数組(s1,s2,…,sn)を加算した該多変数多項式の演算を行い、この演算の結果に対し、演算手段102bにおいて、整数(s0)を指数とする指数演算を行い、該演算結果を、前述したイデアル集合(I)によって剰余演算する(c(x1+s1,x2+s2,…,xn+sn)s0modI)。そして、この演算結果に対し、セキュリティ装置103で用いたものと同じハッシュ関数Hを作用させ、H(c(x1+s1,x2+s2,…,xn+sn)s0modI)∈[0,1]lを得る。その後、このように得られたH(c(x1+s1,x2+s2,…,xn+sn)s0modI)と、暗号文Cを構成するH(b(x1+t1,x2+t2,…,xn+tn)t0modI)(+)Mとの排他的論理和を演算する(H(c(x1+s1,x2+s2,…,xn+sn)s0modI)(+)H(b(x1+t1,x2+t2,…,xn+tn)t0modI)(+)M)。ここで、前述した第1の実施の形態の場合と同様、c(x1+s1,x2+s2,…,xn+sn)s0modIの演算結果と、b(x1+t1,x2+t2,…,xn+tn)t0modIの演算結果とは同一となっているため、これらに対して同一のハッシュ関数を作用させた結果であるH(c(x1+s1,x2+s2,…,xn+sn)s0modI)及びH(b(x1+t1,x2+t2,…,xn+tn)t0modI)も同一となっている。そのため、H(c(x1+s1,x2+s2,…,xn+sn)s0modI)(+)H(b(x1+t1,x2+t2,…,xn+tn)t0modI)(+)Mの演算結果はMとなり、これにより、平文Mが復号されたことになる。
【0054】
ここで、この例では、上述した演算手段102a、103aにおいて行われる演算(a(x1+s1,x2+s2,…,xn+sn)、a(x1+t1,x2+t2,…,xn+tn)、c(x1+s1,x2+s2,…,xn+sn)、b(x1+t1,x2+t2,…,xn+tn))は、前述した一般式によって行うものとする。そのため、これらの演算に必要な四則演算の回数は、秘密パラメータ((s1,s2,…,sn)や(t1,t2,…,tn))の大きさに依存しない。したがって、この秘密パラメータの大きさを大きくした場合であっても、公開鍵生成時、暗号文生成時、及び復号時において、この演算手段102a、103aにおいて行われる演算に起因した四則演算の回数が増大することはなく、結果、秘密パラメータの大きさに依存して計算量が増大する従来のDiffile−Hellman鍵配送方式を応用した公開鍵暗号方式に比べ、大幅に利便性が向上する。
【0055】
また、この形態では、演算手段102a、103aによって行われる、整数係数の多変数多項式の任意の変数に、概変数ごとに独立した第1の整数組を加算した該多変数多項式の演算と、演算手段102b、103bによって行われる、第1の整数を指数とする指数演算を行い、該演算結果を前述のイデアル集合によって剰余演算する演算と、を組み合わせることによって離散対数問題を構成し、この離散対数問題を用いて暗号化及び復号を行うため、単一の離散対数問題を用いて暗号化及び復号を行っていた従来のDiffile−Hellman鍵配送方式を応用した公開鍵暗号方式に比べ、暗号に対する安全性が大幅に向上する。特に、1変数多項式ではなく、多変数多項式の任意の変数に、概変数ごとに独立した整数組を加算する演算によって離散対数問題を生成する本形態の例では、その効果はより大きなものとなる。
【0056】
次に、本形態の詳細について説明を行う。
図8は、本形態におけるセキュリティシステム110の全体構成を例示した図である。
図8に例示するように、セキュリティシステム110は、例えば、公開鍵暗号方式によって、平文の暗号化及び復号を行うセキュリティ装置120、130、及びセキュリティ装置120、130相互を通信可能なように接続するネットワーク140を有しており、このセキュリティ装置120、130は、ネットワーク140を介し、相互に情報のやり取りが可能なように、有線又は無線によって電気的に接続され、或いは接続可能な状態となっている。なお、この全体構成についての詳細は、例えば、第1の実施の形態で説明したものと同様であり、また、セキュリティ装置120、130のハードウェア構成は、例えば、第1の実施の形態におけるセキュリティ装置20のハードウェア構成(図3)と同様のものとする。
【0057】
図9は、図3に例示したハードウェアにおいて所定のプログラム(ソフトウェア)を実行させることにより、このハードウェアとソフトウェアとが協働した具体的手段によって構築されるセキュリティ装置120の処理機能を例示した機能ブロック図である。
図9に例示するように、この例では、セキュリティ装置120は、通信相手であるセキュリティ装置130と共用される整数係数の多変数共通多項式を生成する共通多項式生成手段120a、共通多項式生成手段120aによって生成された多変数共通多項式をセキュリティ装置130に開示する共通多項式開示手段120b、発生させた乱数を用い、整数組を生成する整数組生成手段120c、離散対数問題を構成することとなる多変数多項式を演算する多項式演算手段120d、多項式演算手段120dによって演算された多変数多項式を公開鍵として公開する公開鍵公開手段120e、セキュリティ装置130によって演算された多変数多項式と暗号文とを取得する暗号文取得手段120fと、暗号文取得手段120fによって取得された多変数多項式と暗号文とから、平文を復号する復号手段120g、各種情報を記憶する記憶手段120h、セキュリティ装置120、130で共通の自然数、及び整数係数の多変数多項式を生成する共通要素生成手段120j、及びセキュリティ装置120全体を制御する制御手段120kを処理機能として有している。
【0058】
また、この例では、共通多項式生成手段120aは、SHA−1等の一方向性ハッシュ関数を用いて構成される、計算量理論に基づく擬似乱数生成アルゴリズム等を用い、擬似乱数を発生させる擬似乱数発生手段120aa、及び擬似乱数発生手段120aaによって発生させた擬似乱数を用いて所定の整数値を生成し、生成した整数値を係数とする多変数共通多項式を生成する多項式生成手段120abを有しており、整数組生成手段120cは、SHA−1等の一方向性ハッシュ関数を用いて構成される、計算量理論に基づく擬似乱数生成アルゴリズム等を用い、擬似乱数を発生させる擬似乱数発生手段120ca、及び擬似乱数発生手段120caよって発生させた擬似乱数を用いて、所定の整数値を生成する整数値演算手段120cbを有している。
【0059】
さらに、この例の多項式演算手段120dは、通信相手と共用される整数係数の多変数多項式の任意の変数に、概変数ごとに独立した第1の整数組を加算した、該多変数多項式の演算を行う第3の演算手段である演算手段120da、及び演算手段120daによって行われた演算の結果に対し、第1の整数を指数とする指数演算を行い、該演算結果を、前述したイデアル集合によって剰余演算する第4の演算手段である演算手段120dbを有している。また、この例の復号手段120gは、暗号文取得手段120fによって取得された第2の多変数多項式の任意の変数に、第1の整数組を加算した、該多変数多項式の演算を行う第1の第5の演算手段である演算手段120ga、演算手段120gaによって行われた演算の結果に対し、第1の整数を指数とする指数演算を行い、該演算結果を、前述したイデアル集合によって剰余演算する第6の演算手段である演算手段120gb、セキュリティ装置130と共通のハッシュ関数Hの演算を行うハッシュ関数演算手段120gc、及び演算手段120gbによる演算結果と、暗号文と、の排他的論理和を演算する排他的論理和演算手段120gdを有している。
【0060】
なお、この例では、ハッシュ関数Hは、例えば、Z(x1,x2,…,xn)/I1→[0,1]lの演算を行う関数である。ここで、Z(x1,x2,…,xn)/I1とは、整数係数の多変数多項式環Z(x1,x2,…,xn)とそのイデアルI1とが与えられ、p,q∈Z(x1,x2,…,xn)についてp−q∈I1を満たす場合に、このpとqとを同一の類とみなしてZ(x1,x2,…,xn)の元を類別し、その類別された類ひとつひとつを新たに元とみなした場合に作られる集合(Z(x1,x2,…,xn)のIによる剰余環)を意味する。また、前述のように、ハッシュ関数Hは、その演算結果の値域が十分大きい集合となることが望ましいが、このようなハッシュ関数Hの構成は、例えば、ブックバーガーのアルゴリズム等を用い、Z(x1,x2,…,xn)のイデアルI1についてグレブナー基底を1つ定め、このグレブナー基底により、Z(x1,x2,…,xn)/I1のそれぞれの類において、その類を代表する多項式を定めることによって行う。
【0061】
また、図9に例示するように、共通多項式生成手段120a、共通多項式開示手段120b、整数組生成手段120c、多項式演算手段120d、公開鍵公開手段120e、暗号文取得手段120f、復号手段120g、記憶手段120h、共通要素生成手段120jは、制御手段120kとの情報のやり取りが可能なように構成されており、共通多項式開示手段120b、公開鍵公開手段120e及び暗号文取得手段120fは、ネットワーク140を介した通信が可能なように構成されている。
【0062】
図10は、図3に例示したハードウェアにおいて所定のプログラム(ソフトウェア)を実行させることにより、このハードウェアとソフトウェアとが協働した具体的手段によって構築されるセキュリティ装置130の処理機能を例示した機能ブロック図である。
図10に例示するように、この例のセキュリティ装置130は、セキュリティ装置120によって開示された多変数共通多項式を取得する共通多項式取得手段130b、発生させた乱数を用い、整数組を生成する整数組生成手段130c、離散対数問題を構成する多変数多項式の演算を行う多項式演算手段130d、セキュリティ装置120によって公開された多変数多項式を公開鍵として取得する公開鍵取得手段130e、公開鍵取得手段130eによって取得された多変数多項式を用い、通信内容である平文を暗号化する暗号文生成手段130f、暗号文生成手段130fによって生成された暗号文と、多項式演算手段130dによって生成された多変数多項式とを開示する暗号文開示手段130g、各種情報を記憶する記憶手段130h、セキュリティ装置120、130で共通の自然数、及び整数係数の多変数多項式を生成する共通要素生成手段130j、及びセキュリティ装置130全体を制御する制御手段130kを有している。
【0063】
また、この例の整数組生成手段130cは、SHA−1等の一方向性ハッシュ関数を用いて構成される、計算量理論に基づく擬似乱数生成アルゴリズム等を用い、擬似乱数を発生させる擬似乱数発生手段130ca、及び擬似乱数発生手段130caよって発生させた擬似乱数を用いて、所定の整数値を生成する整数値演算手段130cbを有している。
さらに、この例の多項式演算手段130dは、通信相手と共用される整数係数の多変数共通多項式の任意の変数に、概変数ごとに独立した第1の整数組を加算した、該多変数多項式の演算を行う第5の演算手段である演算手段130da、及び演算手段130daによって行われた演算の結果に対し、第1の整数を指数とする指数演算を行い、該演算結果を、前述したイデアル集合によって剰余演算する第6の演算手段である演算手段130dbを有している。またさらに、この例の暗号文生成手段130fは、公開鍵取得手段130eによって取得された第1の多変数多項式の任意の変数に、第1の整数組を加算した、該多変数多項式の演算を行う第3の演算手段である演算手段130fa、演算手段130faによって行われた演算の結果に対し、第1の整数を指数とする指数演算を行い、該演算結果を、前述したイデアル集合によって剰余演算する第4の演算手段である演算手段130fb、セキュリティ装置120と共通のハッシュ関数Hの演算を行うハッシュ関数演算手段130fc、及び演算手段130fbによる演算結果と通信内容である平文との排他的論理和を暗号文として演算する排他的論理和演算手段130fdを有している。
【0064】
また、図10に例示するように、共通多項式取得手段130b、整数組生成手段130c、多項式演算手段130d、公開鍵取得手段130e、暗号文生成手段130f、暗号文開示手段130g、記憶手段130h、共通要素生成手段130jは、制御手段130kとの情報のやり取りが可能なように構成されており、共通多項式取得手段130b、公開鍵取得手段130e及び暗号文開示手段130gは、ネットワーク140を介した通信が可能なように構成されている。
次に、本形態におけるセキュリティシステム110、セキュリティ装置120、130の処理動作について説明する。
【0065】
図11は、本形態におけるセキュリティシステム110、セキュリティ装置120、130の処理動作の一例を説明するためのフローチャートである。このフローチャートにおける実線の矢印は、セキュリティシステム110全体における一連の処理の流れを例示したものであり、破線の矢印は、セキュリティシステム110全体における一連の処理の流れと、セキュリティ装置120、130それぞれ単体での処理の流れが異なる部分について、セキュリティ装置120、130単体での処理の流れを例示したものである。なお、ここでは、説明を容易にするため、便宜的に図11のような処理の流れにそって処理動作の説明を行うが、セキュリティ装置120、130それぞれが、このフローチャートの流れと異なる順序で処理を行うこととしてもよく、また、セキュリティ装置120、130が、平行して、同時にそれぞれの処理を行うこととしてもよい。
以下、このフローチャートに沿って説明を行う。
【0066】
ステップS20:
本ステップでは、セキュリティ装置120において多変数共通多項式a(x1,x2,…,xn)の設定を行う。
多変数共通多項式a(x1,x2,…,xn)の設定は、例えば、セキュリティ装置120の共通多項式生成手段120aにおいて行われる。具体的には、例えば、まず、擬似乱数発生手段120aaにおいて、SHA−1等の一方向性ハッシュ関数を用いて構成される、計算量理論に基づく擬似乱数生成アルゴリズム等を用いて擬似乱数を発生させ、次に、多項式生成手段120abにおいて、この擬似乱数を所定の桁数に加工し、さらに、所定の値を減算すること等により、多変数多項式の整数係数を設定し、この整数係数を用いて多変数共通多項式a(x1,x2,…,xn)の設定を行う。なお、「n」は、セキュリティ装置120、130の共通要素生成手段120j、130jでそれぞれ生成された共通の自然数である(以下、同様)。
【0067】
このように設定された多変数共通多項式a(x1,x2,…,xn)を特定するための情報は、例えば、制御手段120kに送られ、制御手段120kは、送られた多変数共通多項式a(x1,x2,…,xn)を特定するための情報を、共通多項式開示手段120b及び記憶手段120hに送る。記憶手段120hに送られた多変数共通多項式a(x1,x2,…,xn)を特定するための情報は、例えば、記憶手段120hに記録され、共通多項式開示手段120bに送られた多変数共通多項式a(x1,x2,…,xn)を特定するための情報は、次のステップS21の処理に使用される。
【0068】
ステップS21:
本ステップでは、ステップS20で設定された多変数共通多項式a(x1,x2,…,xn)を、セキュリティ装置130に送信する。
多変数共通多項式a(x1,x2,…,xn)の送信は、例えば、セキュリティ装置120の共通多項式開示手段120bによって行われる。具体的には、例えば、セキュリティ装置120からセキュリティ装置130宛の電子メールに、この多変数共通多項式a(x1,x2,…,xn)を特定するための情報を提示し、或いは、セキュリティ装置130が閲覧可能なインターネット上のホームページに、この多変数共通多項式a(x1,x2,…,xn)を特定するための情報をアップロードすることによって行われる。
このように多変数共通多項式a(x1,x2,…,xn)の送信が行われると、次に、ステップS22の処理に移る。
【0069】
ステップS22:
本ステップでは、ステップS21でセキュリティ装置120から送信された多変数共通多項式a(x1,x2,…,xn)をセキュリティ装置130において受信する。
多変数共通多項式a(x1,x2,…,xn)の受信は、例えば、セキュリティ装置130の共通多項式取得手段130bにおいて行われる。具体的には、例えば、セキュリティ装置130が、インターネット上のメールサーバにアクセスし、セキュリティ装置120から送られたセキュリティ装置130宛の電子メールを受け取ることにより、または、多変数共通多項式a(x1,x2,…,xn)を特定するための情報がアップロードされたインターネット上のホームページにアクセスすること等により行われる。
このように受信された多変数共通多項式a(x1,x2,…,xn)を特定するための情報は、例えば、制御手段130kに送られ、制御手段130kは、送られた多変数共通多項式a(x1,x2,…,xn)を特定するための情報を記憶手段130hに送る。記憶手段130hに送られた多変数共通多項式a(x1,x2,…,xn)を特定するための情報は、例えば、記憶手段130hに記憶され、次のステップS23の処理に移る。
【0070】
ステップS23:
本ステップでは、セキュリティ装置120において整数組s=(s0,s1,s2,…,sn)の設定を行う。
整数組s=(s0,s1,s2,…,sn)の設定は、例えば、セキュリティ装置120の整数組生成手段120cによって行われる。具体的には、例えば、まず、擬似乱数発生手段120caにおいて、SHA−1等の一方向性ハッシュ関数を用いて構成される、計算量理論に基づく擬似乱数生成アルゴリズム等を用いて擬似乱数を発生させ、次に、整数値演算手段120cbにおいて、この擬似乱数を所定の桁数に加工し、さらに、所定の値を減算すること等により、所定の整数組s=(s0,s1,s2,…,sn)を設定する。
【0071】
設定された整数組s=(s0,s1,s2,…,sn)を特定するための情報は、例えば、制御手段120kに送られ、制御手段120kは、送られた整数組s=(s0,s1,s2,…,sn)を特定するための情報を、多項式演算手段120d及び記憶手段120hに送る。記憶手段120hに送られた整数組s=(s0,s1,s2,…,sn)を特定するための情報は、例えば、記憶手段120hに記憶され、多項式演算手段120dに送られた整数組s=(s0,s1,s2,…,sn)を特定するための情報は、ステップS24の処理に使用される。
【0072】
ステップS24:
本ステップでは、多変数多項式b(x1,x2,…,xn)の演算を行う。
多変数多項式b(x1,x2,…,xn)の演算は、例えば、セキュリティ装置120の多項式演算手段120dにおいて行われる。多変数多項式b(x1,x2,…,xn)の演算の演算を行う場合、例えば、まず、制御手段120kは、ステップS20において記憶手段120hに記憶された多変数共通多項式a(x1,x2,…,xn)を特定するための情報を読み込み、その情報を多項式演算手段120dに送る。この情報が多項式演算手段120dに送られると、例えば、演算手段120daは、この多変数共通多項式a(x1,x2,…,xn)の任意の変数に、整数組(s1,s2,…,sn)を加算した該多変数共通多項式(a(x1+s1,x2+s2,…,xn+sn))の演算を行う。この演算は、具体的には、例えば、前述した一般式を用いて行う。
【0073】
次に、例えば、演算手段120dbにおいて、この演算手段120daによって行われた演算の結果に対し、整数s0を指数とする指数演算を行い、該演算結果を、前述したイデアル集合Iによって剰余演算する(b(x1,x2,…,xn)=a(x1+s1,x2+s2,…,xn+sn)s0modI)。なお、前述のように、このイデアル集合Iの生成には、例えば、セキュリティ装置120、130で共通する整数係数の多変数多項式f(x1,x2,…,xn)が使用されるが、この多変数多項式f(x1,x2,…,xn)は、共通要素生成手段120jにおいて生成されるものである(後述するステップS32の処理においても同様)。
この演算結果である多変数多項式b(x1,x2,…,xn)を特定するための情報は、例えば、制御手段120kに送られ、制御手段120kは、送られた多変数多項式b(x1,x2,…,xn)を特定するための情報を、公開鍵公開手段120eに送る。公開鍵公開手段120eにこの情報が送られると、次に、ステップS25の処理に移る。
【0074】
ステップS25:
本ステップでは、演算手段120dbによって演算された多変数多項式b(x1,x2,…,xn)を、セキュリティ装置130に送信する。
多変数多項式b(x1,x2,…,xn)の送信は、例えば、セキュリティ装置120の公開鍵公開手段120eによって行われるが、この際、整数組s=(s0,s1,s2,…,sn)は開示されず、この整数組s=(s0,s1,s2,…,sn)をセキュリティ装置120側で秘密に保った状態で行われる。具体的には、例えば、セキュリティ装置120からセキュリティ装置130宛の電子メールに、この多変数多項式b(x1,x2,…,xn)を特定するための情報を、整数組s=(s0,s1,s2,…,sn)を特定するための情報を開示することなく提示し、或いは、セキュリティ装置130が閲覧可能なインターネット上のホームページに、この多変数多項式b(x1,x2,…,xn)を特定するための情報を、整数組s=(s0,s1,s2,…,sn)を特定するための情報を開示することなくアップロードすることによって行われる。
このように多変数多項式b(x1,x2,…,xn)の送信が行われると、次に、ステップS26の処理に移る。
【0075】
ステップS26:
本ステップでは、ステップS25でセキュリティ装置120から送信された多変数多項式b(x1,x2,…,xn)をセキュリティ装置130において受信する。
多変数多項式b(x1,x2,…,xn)の受信は、例えば、セキュリティ装置130の公開鍵取得手段130eにおいて行われる。具体的には、例えば、ステップS22と同様な方法により行われる。
受信された多変数多項式b(x1,x2,…,xn)を特定するための情報は、例えば、制御手段130kに送られ、制御手段130kは、送られた多変数多項式b(x1,x2,…,xn)を特定するための情報を記憶手段130hに送る。記憶手段130hに送られた多変数多項式b(x1,x2,…,xn)を特定するための情報は、例えば、記憶手段130hに記憶され、次のステップS27の処理に移る。
【0076】
ステップS27:
本ステップでは、セキュリティ装置130において整数組t=(t0,t1,t2,…,tn)の設定を行う。
整数組t=(t0,t1,t2,…,tn)の設定は、例えば、セキュリティ装置130の整数組生成手段130cによって行われる。具体的には、例えば、まず、擬似乱数発生手段130caにおいて、SHA−1等の一方向性ハッシュ関数を用いて構成される、計算量理論に基づく擬似乱数生成アルゴリズム等を用いて擬似乱数を発生させ、次に、整数値演算手段130cbにおいて、この擬似乱数を所定の桁数に加工し、さらに、所定の値を減算すること等により、所定の整数組t=(t0,t1,t2,…,tn)を設定する。
設定された整数組t=(t0,t1,t2,…,tn)を特定するための情報は、例えば、制御手段130kに送られ、制御手段130kは、送られた整数組t=(t0,t1,t2,…,tn)を特定するための情報を、多項式演算手段130d及び記憶手段130hに送る。記憶手段130hに送られた整数組t=(t0,t1,t2,…,tn)を特定するための情報は、例えば、記憶手段130hに記憶され、多項式演算手段130dに送られた整数組t=(t0,t1,t2,…,tn)を特定するための情報は、ステップS28の処理に使用される。
【0077】
ステップS28:
本ステップでは、多変数多項式c(x1,x2,…,xn)の演算を行う。
多変数多項式c(x1,x2,…,xn)の演算は、例えば、セキュリティ装置130の多項式演算手段130dにおいて行われる。多変数多項式c(x1,x2,…,xn)の演算の演算を行う場合、例えば、まず、制御手段130kは、ステップS22において記憶手段130hに記憶された多変数共通多項式a(x1,x2,…,xn)を特定するための情報を読み込み、その情報を多項式演算手段130dに送る。この情報が多項式演算手段130dに送られると、例えば、演算手段130daは、この多変数共通多項式a(x1,x2,…,xn)の任意の変数に、整数組(t1,t2,…,tn)を加算した該多変数共通多項式(a(x1+t1,x2+t2,…,xn+tn))の演算を行う。この演算は、具体的には、例えば、前述した一般式を用いて行う。
【0078】
次に、例えば、演算手段130dbにおいて、この演算手段130daによって行われた演算の結果に対し、整数t0を指数とする指数演算を行い、該演算結果を、前述したイデアル集合Iによって剰余演算する(c(x1,x2,…,xn)=a(x1+t1,x2+t2,…,xn+tn)t0modI)。なお、前述のように、このイデアル集合Iの生成には、例えば、セキュリティ装置120、130で共通する整数係数の多変数多項式f(x1,x2,…,xn)が使用されるが、この多変数多項式f(x1,x2,…,xn)は、共通要素生成手段130jにおいて生成されるものである(後述するステップS29の処理においても同様)。
この演算結果である多変数多項式c(x1,x2,…,xn)を特定するための情報は、例えば、制御手段130kに送られ、制御手段130kは、送られた多変数多項式c(x1,x2,…,xn)を特定するための情報を、記憶手段130hに送る。記憶手段130hに送られた多変数多項式c(x1,x2,…,xn)を特定するための情報は、例えば、記憶手段130hに記憶され、次のステップS29の処理に移る。
【0079】
ステップS29:
本ステップでは、暗号文Cの演算を行う。
暗号文Cの演算は、例えば、セキュリティ装置130の暗号文生成手段130fにおいて行われる。なお、ここでは、平文M∈[0,1]lを暗号化する場合を例にとって説明する。
暗号文Cの演算を行う場合、例えばまず、制御手段130kは、ステップS26において記憶手段130hに記憶された多変数多項式b(x1,x2,…,xn)を特定するための情報、及びステップS26において記憶手段130hに記憶された整数組t=(t0,t1,t2,…,tn)を特定するための情報を読み込み、これらの情報を暗号文生成手段130fに送る。これらの情報が送られた暗号文生成手段130fは、例えば、演算手段130faによって、多変数多項式b(x1,x2,…,xn)の任意の変数に、整数組(t1,t2,…,tn)を加算した該多変数共通多項式(b(x1+t1,x2+t2,…,xn+tn))の演算を行う。この演算は、具体的には、例えば、前述した一般式を用いて行う。
【0080】
次に、例えば、演算手段130fbにおいて、この演算手段130faによって行われた演算の結果に対し、整数t0を指数とする指数演算を行い、該演算結果を、前述したイデアル集合Iによって剰余演算する(b(x1+t1,x2+t2,…,xn+tn)t0modI)。
その後、例えば、ハッシュ関数演算手段130fcによって、この演算結果に対し、ハッシュ関数Hを作用させ(H(b(x1+t1,x2+t2,…,xn+tn)t0modI)∈[0,1]l)、排他的論理和演算手段130fdによって、この演算結果(H(b(x1+t1,x2+t2,…,xn+tn)t0modI)と平文Mとの排他的論理和(H(b(x1+t1,x2+t2,…,xn+tn)t0modI)(+)M)を暗号文として演算する。
【0081】
そして、このように演算されたH(b(x1+t1,x2+t2,…,xn+tn)t0modI)(+)Mと、ステップS28で生成され記憶手段130hに記憶されている多変数多項式c(x1,x2,…,xn)とにより、暗号文C=(c(x1,x2,…,xn),H(b(x1+t1,x2+t2,…,xn+tn)t0modI)(+)M)を生成する。
生成された暗号文Cは、例えば、制御手段130kに送られ、制御手段130kは、送られた暗号文Cを暗号文開示手段130gに送る。暗号文Cが暗号文開示手段130gに送られると、次に、ステップS30の処理に移る。
【0082】
ステップS30:
本ステップでは、暗号文生成手段130gにおいて生成された暗号文Cを、セキュリティ装置120に送信する。
暗号文Cの送信は、例えば、セキュリティ装置130の暗号文開示手段130gによって行われるが、この際、整数組t=(t0,t1,t2,…,tn)は開示されず、この整数組t=(t0,t1,t2,…,tn)をセキュリティ装置130側で秘密に保った状態で行われる。具体的には、例えば、セキュリティ装置130からセキュリティ装置120宛の電子メールに、この暗号文Cを特定するための情報を、整数組t=(t0,t1,t2,…,tn)を特定するための情報を開示することなく提示し、或いは、セキュリティ装置120が閲覧可能なインターネット上のホームページに、この暗号文Cを特定するための情報を、整数組t=(t0,t1,t2,…,tn)を特定するための情報を開示することなくアップロードすることによって行われる。
このように暗号文Cの送信が行われると、次に、ステップS31の処理に移る。
【0083】
ステップS31:
本ステップでは、ステップS30でセキュリティ装置130から送信された暗号文Cをセキュリティ装置120において受信する。
暗号文Cの受信は、例えば、セキュリティ装置120の暗号文取得手段120fにおいて行われる。具体的には、例えば、セキュリティ装置120が、インターネット上のメールサーバにアクセスし、セキュリティ装置130から送られたセキュリティ装置120宛の電子メールを受け取ることにより、または、暗号文Cを特定するための情報がアップロードされたインターネット上のホームページにアクセスすること等により行われる。
このように受信された暗号文Cを特定するための情報は、例えば、制御手段120kに送られ、制御手段120kは、送られた暗号文Cを特定するための情報を復号手段120gに送り、次のステップS32の処理に移る。
【0084】
ステップS32:
本ステップでは、セキュリティ装置120において、暗号文Cの復号を行う。暗号文Cの復号は、例えば、セキュリティ装置120の復号手段120gにおいて行われる。
具体的には、例えばまず、復号手段120gの演算手段120gaによって、暗号文C=(c(x1,x2,…,xn),H(b(x1+t1,x2+t2,…,xn+tn)t0modI)(+)M)における多変数多項式c(x1,x2,…,xn)の任意の変数に、整数組(s1,s2,…,sn)を加算した該多変数共通多項式(c(x1+s1,x2+s2,…,xn+sn))の演算を行う。この演算は、具体的には、例えば、前述した一般式を用いて行う。
次に、例えば、演算手段120gbにおいて、この演算手段120gaによって行われた演算の結果に対し、整数s0を指数とする指数演算を行い、該演算結果を、前述したイデアル集合Iによって剰余演算する(c(x1+s1,x2+s2,…,xn+sn)s0modI)。そして、この演算結果に対し、ハッシュ関数演算手段120gcによって、セキュリティ装置130で用いたものと同じハッシュ関数Hを作用させ、H(c(x1+s1,x2+s2,…,xn+sn)s0modI)∈[0,1]lを得る。その後、排他的論理和演算手段120gdにおいて、このように得られたH(c(x1+s1,x2+s2,…,xn+sn)s0modI)と、暗号文C=(c(x1,x2,…,xn),H(b(x1+t1,x2+t2,…,xn+tn)t0modI)(+)M)のH(b(x1+t1,x2+t2,…,xn+tn)t0modI)(+)Mとの排他的論理和を演算する(H(c(x1+s1,x2+s2,…,xn+sn)s0modI)(+)H(b(x1+t1,x2+t2,…,xn+tn)t0modI)(+)M)。これにより、前述のように平文Mの復号が行われたことになる。
【0085】
このように、この形態の例では、セキュリティ装置120の演算手段120daにおいて、通信相手と共用される整数係数の多変数多項式の任意の変数に、概変数ごとに独立した第1の整数組を加算した、該多変数多項式の演算を行い(a(x1+s1,x2+s2,…,xn+sn))、演算手段120dbにおいて、演算手段120daによって行われた演算の結果に対し、第1の整数を指数とする指数演算を行い、該演算結果を、前述のイデアル集合によって剰余演算し(a(x1+s1,x2+s2,…,xn+sn)s0modI)、公開鍵公開手段120eにおいて、演算手段120dbによる演算結果である第1の多変数多項式(b(x1,x2,…,xn))を、公開鍵として公開する。そして、セキュリティ装置130の公開鍵取得手段130eによって、通信相手によって公開された第1の多変数多項式を、公開鍵として取得し、演算手段130faにおいて、この第1の多変数多項式の任意の変数に、第1の整数組を加算した、該多変数多項式の演算を行い(b(x1+t1,x2+t2,…,xn+tn))、演算手段130fbにおいて、この演算結果に対し、第1の整数を指数とする指数演算を行い、該演算結果を、前述のイデアル集合によって剰余演算し(b(x1+t1,x2+t2,…,xn+tn)t0modI)、排他的論理和演算手段と130fdにおいて、ハッシュ関数Hを作用させた 演算手段130fbによる演算結果と、通信内容である平文Mと、の排他的論理和を、暗号文として演算する(H(b(x1+t1,x2+t2,…,xn+tn)t0modI)(+)M)。また、演算手段130daにおいて、通信相手と共用される整数係数の多変数共通多項式の任意の変数に、第1の整数組を加算した、該多変数多項式の演算を行い(a(x1+t1,x2+t2,…,xn+tn))、演算手段130dbにおいて、演算手段130daによって行われた演算の結果に対し、第1の整数を指数とする指数演算を行い、該演算結果を、前述のイデアル集合によって剰余演算し(a(x1+t1,x2+t2,…,xn+tn)t0modI)、暗号文開示手段130gにおいて、排他的論理和演算手段130fdによって演算された暗号文と、第6の演算手段による演算結果である第2の多変数多項式とを開示する(C=(c(x1,x2,…,xn),H(b(x1+t1,x2+t2,…,xn+tn)t0modI)(+)M))。開示された第2の多変数多項式と、暗号文とは、セキュリティ装置120の暗号文取得手段120fによって取得され、演算手段120gaにおいて、暗号文取得手段120fによって取得された第2の多変数多項式の任意の変数に、第1の整数組を加算した、該多変数多項式の演算を行い(c(x1+t1,x2+t2,…,xn+tn))、演算手段120gbにおいて、演算手段120gaによって行われた演算の結果に対し、第1の整数を指数とする指数演算を行い、該演算結果を、前述のイデアル集合によって剰余演算し(c(x1+t1,x2+t2,…,xn+tn)t0modI)、排他的論理和演算手段120gdにおいて、ハッシュ関数Hを作用させた120gb演算手段による演算結果と、暗号文と、の排他的論理和を演算する(H(c(x1+s1,x2+s2,…,xn+sn)s0modI)(+)H(b(x1+t1,x2+t2,…,xn+tn)t0modI)(+)M)ことにより、平文Mを復号する。そして、前述のように、演算手段120da、120ga、130da、130faにおいて行われる演算に必要な四則演算の回数は、秘密パラメータ((s1,s2,…,sn)等)の大きさに依存せず、この秘密パラメータの大きさを大きくした場合であっても、公開鍵生成時、暗号化時及び復号時において、この演算手段120da、120ga、130da、130faにおいて行われる演算に起因した四則演算の回数が増大することはない。結果、秘密パラメータの大きさに依存して計算量が増大する従来のDiffile−Hellman鍵配送方式を応用した公開鍵暗号方式に比べ、大幅に利便性が向上する。
【0086】
また、この形態の例では、演算手段120da、120ga、130da、130faによって行われる、整数係数の多変数多項式の任意の変数に第1の整数組を加算した該多変数多項式の演算と、演算手段120db、120gb、130db、130fbによって行われる、第1の整数を指数とする指数演算を行い、該演算結果を前述のイデアル集合によって剰余演算する演算と、を組み合わせることによって離散対数問題を構成し、この離散対数問題を用いて、公開鍵生成、暗号化及び復号を行うこととしたため、指数演算のみによって構成される離散対数問題によって、公開鍵生成、暗号化及び復号を行っていた従来のDiffile−Hellman鍵配送方式を応用した公開鍵暗号方式に比べ、暗号に対する安全性が大幅に向上する。
【0087】
さらに、この形態の例では、イデアル集合を、整数係数の多項式がなす環のイデアルであって、δiを任意の多変数多項式g(x1,x2,…,xn)に対して多変数多項式g(x1,x2,…,xi,…,xn)−g(x1,x2,…,xi−1,…,xn)を対応させる作用素とし、degif(x1,x2,…,xn)をf(x1,x2,…,xn)のxiについての次数とし、(p1,p2,…,pn)∈Nnとした場合における、{Σ(p1,p2,…,pn)(Πi=1 nδi pi)f(x1,x2,…,xn)}によって生成されるイデアルであることとしたため、前述のように、セキュリティ装置120、130のそれぞれで算出されたH(c(x1+s1,x2+s2,…,xn+sn)s0modI)とH(b(x1+t1,x2+t2,…,xn+tn)t0modI)との演算結果が同一となり、本形態における暗号文の復号が実質的に可能となる。
【0088】
また、この形態の例では、演算手段120da、120ga、130da、130faにおいて、多変数多項式a(x1,x2,…,xn)に対し、第1の整数組を(s1,s2,…,sn)とし、p=(p1,p2,…,pn)∈Nnとし、sp=s1 p1s2 p2…sn pnとし、p!=p1!p2!…,pn!とし、(∂/∂x)p=(∂/∂x1)p1(∂/∂x2)p2…(∂/∂xn)pnとした場合における、Σpsp(1/p!)(∂/∂x)pa(x1,x2,…,xn)の演算を行うこととしたため、演算手段120da、120ga、130da、130faにおいて行われる演算に必要な四則演算の回数が、秘密パラメータ((s1,s2,…,sn)や(t1,t2,…,tn))の大きさに依存することはない。したがって、この秘密パラメータの大きさを大きくした場合であっても、鍵配送時において、この演算手段120da、120ga、130da、130faにおいて行われる演算に起因した四則演算の回数が増大することはなく、結果、秘密パラメータの大きさに依存して計算量が増大する従来のDiffile−Hellman鍵配送方式を応用した公開鍵暗号方式に比べ、大幅に利便性が向上する。
【0089】
なお、この発明は上述の実施の形態に限定されるものではない。例えば、この形態の例では、第1の演算手段である演算手段120da等において、多変数多項式(a(x1,x2,…,xn)等)の全ての変数に、整数組((s1,s2,…,sn)等)を加算した当該多変数多項式の演算を行う場合を例示したが、多変数多項式の一部の変数(例えば、a(x1,x2,…,xn)における(x1,x2,…,xn)のうちの一部)のみに整数組を加算した当該多変数多項式の演算を行うこととしてもよい。
また、この形態の例では、セキュリティ装置120で生成した多変数共通多項式を、セキュリティ装置120からセキュリティ装置130へ送信する構成としたが、セキュリティ装置130で生成した多変数共通多項式をセキュリティ装置130からセキュリティ装置120へ送信する構成としてもよく、さらに、セキュリティ装置120、130双方で、セキュリティ装置120、130に共通する多変数共通多項式を生成する構成としてもよい。
【0090】
さらに、この形態では、コンピュータ上で所定のプログラムを実行させることにより、セキュリティ装置120、130を構成することとしたが、これらの処理内容の少なくとも一部を電子回路によってハードウェア的に実現することとしてもよい。
また、第1の実施の形態及び第2の実施の形態で説明した通り、上記の処理機能は、コンピュータによって実現することができる。この場合、セキュリティ装置2、3、20、30、102、103、120、130が有すべき機能の処理内容はプログラムによって記述され、このプログラムをコンピュータで実行することにより、上記処理機能をコンピュータ上で実現することができる。
【0091】
また、この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよいが、具体的には、例えば、磁気記録装置として、ハードディスク装置、フレキシブルディスク、磁気テープ等を、光ディスクとして、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)等を用いることができる。
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
【0092】
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。
なお、上記におけるプログラムとは、電子計算機に対する指令であって、一の結果を得ることができるように組合されたものをいい、その他電子計算機による処理の用に供する情報であってプログラムに準ずるものをも含むものとする。
【0093】
【発明の効果】
以上説明したようにこの発明では、第1の演算手段によって、整数係数の多変数多項式の任意の変数に、概変数ごとに独立した第1の整数組を加算した、該多変数多項式の演算を行い、第2の演算手段によって、第1の演算手段によって行われた演算の結果に対し、第1の整数を指数とする指数演算を行い、該演算結果を、イデアルであって、該イデアルに対して行われた、整数係数の多変数多項式の任意の変数について任意の整数値だけ加算した該多項式の演算結果が、再び、該イデアルとなるイデアル集合、によって剰余演算することとしたため、例えば鍵配送や暗号文通信時における利便性を保ちつつ、第三者からの攻撃に対する安全性の向上を図ることが可能となる。
【0094】
特に、この発明では、1変数多項式ではなく、多変数多項式の任意の変数に、概変数ごとに独立した整数組を加算する演算によって離散対数問題を生成することとしたため、第三者からの攻撃に対する安全性をより大きなものとすることができる。
【図面の簡単な説明】
【図1】セキュリティシステムの概略を説明するための図。
【図2】セキュリティシステムの全体構成を例示した図。
【図3】セキュリティ装置のハードウェア構成を例示したブロック図。
【図4】セキュリティ装置の処理機能を例示した機能ブロック図。
【図5】セキュリティ装置の処理機能を例示した機能ブロック図。
【図6】セキュリティシステム、セキュリティ装置の処理動作の一例を説明するためのフローチャート。
【図7】セキュリティシステムの概略を説明するための図。
【図8】セキュリティシステムの全体構成を例示した図。
【図9】セキュリティ装置の処理機能を例示した機能ブロック図。
【図10】セキュリティ装置の処理機能を例示した機能ブロック図。
【図11】セキュリティシステム、セキュリティ装置の処理動作の一例を説明するためのフローチャート。
【符号の説明】
1、10、100、110 セキュリティシステム
2、3、20、30、102、103、120、130 セキュリティ装置
2a、2b、3a、3b、20da、20db、20ga、20gb、30da、30db、30ga、30gb、102a、102b、103a、103b、120da、120db、120ga、120gb、130da、130db、130fa、130fb 演算手段
Claims (10)
- 離散対数問題を利用したセキュリティ装置において、
整数係数の多変数多項式の任意の変数に、概変数ごとに独立した第1の整数組を加算した、該多変数多項式の演算を行う第1の演算手段と、
前記第1の演算手段によって行われた演算の結果に対し、第1の整数を指数とする指数演算を行い、該演算結果を、イデアルであって、該イデアルに対して行われた、整数係数の多変数多項式の任意の変数について任意の整数値だけ加算した該多項式の演算結果が、再び、該イデアルとなるイデアル集合、によって剰余演算する第2の演算手段と、
を有することを特徴とするセキュリティ装置。 - 共通鍵の配送相手と共用される整数係数の多変数共通多項式の任意の変数に、前記第1の整数組を加算した、該多変数多項式の演算を行う第1の演算手段である第3の演算手段と、
前記第3の演算手段によって行われた演算の結果に対し、前記第1の整数を指数とする指数演算を行い、該演算結果を、前記イデアル集合によって剰余演算する第2の演算手段である第4の演算手段と、
前記第4の演算手段による演算結果である第1の多変数多項式を、前記共通鍵の配送相手に開示する多項式開示手段と、
前記共通鍵の配送相手によって演算された第2の多変数多項式、を取得する多項式取得手段と、
前記多項式取得手段によって取得された前記第2の多変数多項式の任意の変数に、前記第1の整数組を加算した、該多変数多項式の演算を行う第1の演算手段である第5の演算手段と、
前記第5の演算手段によって行われた演算の結果に対し、前記第1の整数を指数とする指数演算を行い、該演算結果を、前記イデアル集合によって剰余演算した結果を、前記共通鍵として出力する第2の演算手段である第6の演算手段と、
を有することを特徴とする請求項1記載のセキュリティ装置。 - 通信相手と共用される整数係数の多変数多項式の任意の変数に、前記第1の整数組を加算した、該多変数多項式の演算を行う第1の演算手段である第3の演算手段と、
前記第3の演算手段によって行われた演算の結果に対し、前記第1の整数を指数とする指数演算を行い、該演算結果を、前記イデアル集合によって剰余演算する第2の演算手段である第4の演算手段と、
前記第4の演算手段による演算結果である第1の多変数多項式を、公開鍵として公開する公開鍵公開手段と、
前記通信相手によって演算された第2の多変数多項式と、暗号文とを、取得する暗号文取得手段と、
前記暗号文取得手段によって取得された前記第2の多変数多項式の任意の変数に、前記第1の整数組を加算した、該多変数多項式の演算を行う第1の演算手段である第5の演算手段と、
前記第5の演算手段によって行われた演算の結果に対し、前記第1の整数を指数とする指数演算を行い、該演算結果を、前記イデアル集合によって剰余演算する第2の演算手段である第6の演算手段と、
前記第6の演算手段による演算結果と、前記暗号文と、の排他的論理和を演算する排他的論理和演算手段と、
を有することを特徴とする請求項1記載のセキュリティ装置。 - 通信相手によって公開された第1の多変数多項式を、公開鍵として取得する公開鍵取得手段と、
前記公開鍵取得手段によって取得された前記第1の多変数多項式の任意の変数に、前記第1の整数組を加算した、該多変数多項式の演算を行う第1の演算手段である第3の演算手段と、
前記第3の演算手段によって行われた演算の結果に対し、前記第1の整数を指数とする指数演算を行い、該演算結果を、前記イデアル集合によって剰余演算する第2の演算手段である第4の演算手段と、
前記第4の演算手段による演算結果と、通信内容である平文と、の排他的論理和を、暗号文として演算する排他的論理和演算手段と、
前記通信相手と共用される整数係数の多変数共通多項式の任意の変数に、前記第1の整数組を加算した、該多変数多項式の演算を行う第1の演算手段である第5の演算手段と、
前記第5の演算手段によって行われた演算の結果に対し、前記第1の整数を指数とする指数演算を行い、該演算結果を、前記イデアル集合によって剰余演算する第2の演算手段である第6の演算手段と、
前記排他的論理和演算手段によって演算された前記暗号文と、前記第6の演算手段による演算結果である第2の多変数多項式とを開示する暗号文開示手段と、
を有することを特徴とする請求項1記載のセキュリティ装置。 - 前記イデアル集合は、
整数係数の多項式がなす環のイデアルであって、δiを任意の多変数多項式g(x1,x2,…,xn)に対して多変数多項式g(x1,x2,…,xi,…,xn)−g(x1,x2,…,xi−1,…,xn)を対応させる作用素とし、degif(x1,x2,…,xn)をf(x1,x2,…,xn)のxiについての次数とし、(p1,p2,…,pn)∈Nnとした場合における、{Σ(p1,p2,…,pn)(Πi=1 nδi pi)f(x1,x2,…,xn)}によって生成されるイデアルであること、
を特徴とする請求項1から4の何れかに記載のセキュリティ装置。 - 前記第1の演算手段は、
多変数多項式a(x1,x2,…,xn)に対し、前記第1の整数組を(s1,s2,…,sn)とし、p=(p1,p2,…,pn)∈Nnとし、sp=s1 p1s2 p2…sn pnとし、p!=p1!p2!…,pn!とし、(∂/∂x)p=(∂/∂x1)p1(∂/∂x2)p2…(∂/∂xn)pnとした場合における、Σpsp(1/p!)(∂/∂x)pa(x1,x2,…,xn)の演算を行う手段である、
ことを特徴とする請求項1から5の何れかに記載のセキュリティ装置。 - 離散対数問題を利用したセキュリティ方法において、
第1のセキュリティ装置において行われる、
第2のセキュリティ装置と共用される整数係数の多変数共通多項式の任意の変数に、概変数ごとに独立した第1の整数組を加算した、該多変数多項式の演算を行う第1の演算ステップと、
前記第1の演算ステップによって行われた演算の結果に対し、第1の整数を指数とする指数演算を行い、該演算結果を、イデアルであって、該イデアルに対して行われた、整数係数の多変数多項式の任意の変数について任意の整数値だけ加算した該多項式の演算結果が、再び、該イデアルとなるイデアル集合によって剰余演算する第2の演算ステップと、
前記第2の演算ステップによる演算結果である第1の多変数多項式を、前記第2のセキュリティ装置に開示する第1の多項式開示ステップと、
前記第2のセキュリティ装置によって演算された第2の多変数多項式、を取得する第1の多項式取得ステップと、
前記第1の多項式取得ステップによって取得された前記第2の多変数多項式の任意の変数に、前記第1の整数組を加算した、該多変数多項式の演算を行う第3の演算ステップと、
前記第3の演算ステップによって行われた演算の結果に対し、前記第1の整数を指数とする指数演算を行い、該演算結果を、前記イデアル集合によって剰余演算した結果を、前記共通鍵として出力する第4の演算ステップと、
前記第2のセキュリティ装置において行われる、
前記多変数共通多項式の任意の変数に、概変数ごとに独立した第2の整数組を加算した、該多変数多項式の演算を行う第5の演算ステップと、
前記第5の演算ステップによって行われた演算の結果に対し、第2の整数を指数とする指数演算を行い、該演算結果を、前記イデアル集合によって剰余演算する第6の演算ステップと、
前記第6の演算ステップによる演算結果である前記第2の多変数多項式を、前記第1のセキュリティ装置に開示する第2の多項式開示ステップと、
前記第1のセキュリティ装置によって演算された前記第1の多変数多項式、を取得する第2の多項式取得ステップと、
前記第2の多項式取得ステップによって取得された前記第1の多変数多項式の任意の変数に、前記第2の整数組を加算した、該多変数多項式の演算を行う第7の演算ステップと、
前記第7の演算ステップによって行われた演算の結果に対し、前記第2の整数を指数とする指数演算を行い、該演算結果を、前記イデアル集合によって剰余演算した結果を、前記共通鍵として出力する第8の演算ステップと、
を有することを特徴とするセキュリティ方法。 - 離散対数問題を利用したセキュリティ方法において、
第1のセキュリティ装置において行われる、
第2のセキュリティ装置と共用される整数係数の多変数多項式の任意の変数に、概変数ごとに独立した第1の整数組を加算した、該多変数多項式の演算を行う第1の演算ステップと、
前記第1の演算ステップによって行われた演算の結果に対し、第1の整数を指数とする指数演算を行い、該演算結果を、イデアルであって、該イデアルに対して行われた、整数係数の多変数多項式の任意の変数について任意の整数値だけ加算した該多項式の演算結果が、再び、該イデアルとなるイデアル集合によって剰余演算する第2の演算ステップと、
前記第2の演算ステップによる演算結果である第1の多変数多項式を、公開鍵として公開する公開鍵公開ステップと、
前記第2のセキュリティ装置において行われる、
公開された前記第1の多変数多項式を取得する公開鍵取得ステップと、
前記公開鍵取得ステップによって取得された前記第1の多変数多項式の任意の変数に、概変数ごとに独立した第2の整数組を加算した、該多変数多項式の演算を行う第3の演算ステップと、
前記第3の演算ステップによって行われた演算の結果に対し、第2の整数を指数とする指数演算を行い、該演算結果を、前記イデアル集合によって剰余演算する第4の演算ステップと、
前記第4の演算ステップによる演算結果と、通信内容である平文と、の排他的論理和を、暗号文として演算する排他的論理和演算ステップと、
前記多変数共通多項式の任意の変数に、前記第2の整数組を加算した、該多変数多項式の演算を行う第5の演算ステップと、
前記第5の演算ステップによって行われた演算の結果に対し、前記第2の整数を指数とする指数演算を行い、該演算結果を、前記イデアル集合によって剰余演算する第2の演算ステップである第6の演算ステップと、
前記排他的論理和演算ステップによって演算された前記暗号文と、前記第6の演算ステップによる演算結果である第2の多変数多項式とを開示する暗号文開示ステップと、
前記第1のセキュリティ装置において行われる、
開示された前記第2の多変数多項式と、前記暗号文とを、取得する暗号文取得ステップと、
前記暗号文取得ステップによって取得された前記第2の多変数多項式の任意の変数に、前記第1の整数組を加算した、該多変数多項式の演算を行う第7の演算ステップと、
前記第7の演算ステップによって行われた演算の結果に対し、前記第1の整数を指数とする指数演算を行い、該演算結果を、前記イデアル集合によって剰余演算する第8の演算ステップと、
前記第8の演算ステップによる演算結果と、前記暗号文と、の排他的論理和を演算する排他的論理和演算ステップと、
を有することを特徴とするセキュリティ方法。 - 請求項1から6のいずれかに記載されたセキュリティ装置としてコンピュータを機能させるためのプログラム。
- 請求項9記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002320883A JP4014490B2 (ja) | 2002-11-05 | 2002-11-05 | セキュリティ装置、セキュリティ方法、プログラム及び記録媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002320883A JP4014490B2 (ja) | 2002-11-05 | 2002-11-05 | セキュリティ装置、セキュリティ方法、プログラム及び記録媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004158951A true JP2004158951A (ja) | 2004-06-03 |
JP4014490B2 JP4014490B2 (ja) | 2007-11-28 |
Family
ID=32801599
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002320883A Expired - Lifetime JP4014490B2 (ja) | 2002-11-05 | 2002-11-05 | セキュリティ装置、セキュリティ方法、プログラム及び記録媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4014490B2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013066151A (ja) * | 2011-08-29 | 2013-04-11 | Sony Corp | 情報処理装置、情報処理方法、及びプログラム |
WO2013129134A1 (ja) * | 2012-03-02 | 2013-09-06 | ソニー株式会社 | 演算装置、制御方法、及びプログラム |
-
2002
- 2002-11-05 JP JP2002320883A patent/JP4014490B2/ja not_active Expired - Lifetime
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013066151A (ja) * | 2011-08-29 | 2013-04-11 | Sony Corp | 情報処理装置、情報処理方法、及びプログラム |
WO2013129134A1 (ja) * | 2012-03-02 | 2013-09-06 | ソニー株式会社 | 演算装置、制御方法、及びプログラム |
US9672007B2 (en) | 2012-03-02 | 2017-06-06 | Sony Corporation | Device for performing arithmetic operations of multivariate polynomials, control method, and program |
Also Published As
Publication number | Publication date |
---|---|
JP4014490B2 (ja) | 2007-11-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111106936B (zh) | 一种基于sm9的属性加密方法与系统 | |
EP2656537B1 (en) | Cryptography module for use with fragmented key and methods for use therewith | |
JP4369618B2 (ja) | 高速復号化を備えた暗号システムおよび方法 | |
EP2656539B1 (en) | Elliptic curve cryptography with fragmented key processing and methods for use therewith | |
US7162032B2 (en) | Encryption of programs represented as polynomial mappings and their computations | |
JP4071870B2 (ja) | 秘密鍵生成方法 | |
US20210036849A1 (en) | Methods and systems for encryption and homomorphic encryption systems using geometric algebra and hensel codes | |
JP6556955B2 (ja) | 通信端末、サーバ装置、プログラム | |
JPH11317734A (ja) | デ―タの暗号化復号化方法および、それを用いたネットワ―クシステム | |
CN111740988A (zh) | 云存储数据加密方法、系统和存储介质 | |
JP2001202010A (ja) | メッセージの公開型且つ非可換性の符号化方法及び暗号化方法 | |
JP2006311383A (ja) | データ管理方法、データ管理システムおよびデータ管理装置 | |
CN117134906A (zh) | 多方隐私求交方法及相关装置 | |
JP7125857B2 (ja) | 暗号化システム、暗号化装置、復号装置、暗号化方法、復号方法、及びプログラム | |
JP4014490B2 (ja) | セキュリティ装置、セキュリティ方法、プログラム及び記録媒体 | |
US20040105546A1 (en) | Geometry-Based Symmetric Cryptosystem Method | |
KR101133988B1 (ko) | 해쉬 트리 기반의 스트림 암호화 및 복호화 방법과 암호 파일 시스템 | |
JP2019215391A (ja) | 復号装置、暗号化装置及び暗号システム | |
JP4685621B2 (ja) | 鍵生成装置、暗号化装置、復号化装置、乗法型ナップザック暗号システム、乗法型ナップザック暗号復号方法およびプログラム | |
CN110912673A (zh) | 具有双解密机制的加性同态加解密方法 | |
JP7486693B2 (ja) | 暗号文変換システム、暗号文変換方法、及び暗号文変換プログラム | |
JP3883933B2 (ja) | セキュリティ装置、セキュリティ方法、セキュリティプログラム及び記録媒体 | |
JP7486688B2 (ja) | 暗号文変換システム、暗号文変換方法、及び暗号文変換プログラム | |
JP3883942B2 (ja) | セキュリティ装置、セキュリティ方法、セキュリティプログラム及び記録媒体 | |
CN115865531B (zh) | 一种代理重加密数字资产授权方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050120 |
|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20061018 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070619 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070806 |
|
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: 20070904 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070911 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100921 Year of fee payment: 3 |
|
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: 20100921 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110921 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120921 Year of fee payment: 5 |