"準同型性を持つ暗号方式において秘密鍵を用いたデータ暗号化を実行し、該暗号化データをサーバに送信するクライアントと、クライアントから受信した暗号化データに対して準同型性を有する演算処理を実行し、該演算結果をクライアントに返信するサーバとを含むコンピュータシステムであって、前記クライアントは、所定基準以下の大きさのエラーベクトルを平文に加えて前記データ暗号化を実行する処理と、前記秘密鍵が生成する格子の部分格子基底からなる抑制情報を前記サーバに送信する処理を実行するものであり、前記サーバは、前記クライアントから前記抑制情報を受信して記憶装置に保持する処理と、前記クライアントから受信した暗号化データに対する準同型性を有する演算処理に際し、演算処理中ないし演算処理結果の暗号文のビット長が、所定閾値以上である場合、該当暗号文のベクトルを、前記保持する抑制情報に対応した部分格子基底が成す領域内に平行移動させ、前記暗号文のビット長を所定閾値以下に低減する処理を実行するものである、ことを特徴とする秘匿計算システム。前記クライアントは、記憶装置に保持する秘密鍵行列と、所定の整数係数正則行列との行列積を実行し、該行列積の結果である行列を、前記抑制情報としてサーバに送信するものである、ことを特徴とする請求項1に記載の秘匿計算システム。前記サーバは、前記クライアントから受信した抑制情報が示す、抑制情報行列の列ベクトルからなる一次結合で、係数の絶対値が1以下のベクトル全体の中で、原点からのユークリッド距離が最も大きいものを特定し、該特定したベクトルと原点との距離を前記所定閾値とするものである、ことを特徴とする請求項1に記載の秘匿計算システム。準同型性を持つ暗号方式において秘密鍵を用いたデータ暗号化を実行し、該暗号化データをサーバに送信するクライアントと、クライアントから受信した暗号化データに対して準同型性を有する演算処理を実行し、該演算結果をクライアントに返信するサーバとを含むコンピュータシステムにおける、前記クライアントが、所定基準以下の大きさのエラーベクトルを平文に加えて前記データ暗号化を実行する処理と、前記秘密鍵が生成する格子の部分格子基底からなる抑制情報を前記サーバに送信する処理を実行し、前記サーバが、前記クライアントから前記抑制情報を受信して記憶装置に保持する処理と、前記クライアントから受信した暗号化データに対する準同型性を有する演算処理に際し、演算処理中ないし演算処理結果の暗号文のビット長が、所定閾値以上である場合、該当暗号文のベクトルを、前記保持する抑制情報に対応した部分格子基底が成す領域内に平行移動させ、前記暗号文のビット長を所定閾値以下に低減する処理を実行する、ことを特徴とする秘匿計算方法。準同型性を持つ暗号方式において秘密鍵を用いたデータ暗号化を実行し、該暗号化データをサーバに送信するクライアントと、クライアントから受信した暗号化データに対して準同型性を有する演算処理を実行し、該演算結果をクライアントに返信するサーバとを含むコンピュータシステムにおける、前記クライアントに、所定基準以下の大きさのエラーベクトルを平文に加えて前記データ暗号化を実行する処理と、前記秘密鍵が生成する格子の部分格子基底からなる抑制情報を前記サーバに送信する処理を実行させることを特徴とする秘匿計算プログラム。準同型性を持つ暗号方式において秘密鍵を用いたデータ暗号化を実行し、該暗号化データをサーバに送信するクライアントと、クライアントから受信した暗号化データに対して準同型性を有する演算処理を実行し、該演算結果をクライアントに返信するサーバとを含むコンピュータシステムにおける、前記サーバに、前記クライアントから、前記秘密鍵が生成する格子の部分格子基底からなる抑制情報を受信して記憶装置に保持する処理と、前記クライアントから受信した暗号化データに対する準同型性を有する演算処理に際し、演算処理中ないし演算処理結果の暗号文のビット長が、所定閾値以上である場合、該当暗号文のベクトルを、前記保持する抑制情報に対応した部分格子基底が成す領域内に平行移動させ、前記暗号文のビット長を所定閾値以下に低減する処理と、を実行させることを特徴とする秘匿計算プログラム。上述した従来技術などにおいては、平文bitデータに、エラーベクトルを加える事で暗号化を行っている。しかし、暗号化データをブール演算する度に、暗号化データ内のエラーベクトルの大きさは増大する。エラーベクトルの大きさが特定の閾値を超えると、復号化アルゴリズムで正しい関数値が算出されない確率が高くなる。この問題に対し従来技術では、暗号化データ内のエラーベクトルを小さくするために、暗号化済みの復号関数回路に暗号化データと暗号化した復号用秘密鍵を入力し、平文を変えずに、エラーベクトルのより小さい暗号化データに再暗号化する方法が提案されている。エラーベクトルの小さい暗号文に再暗号化する事によって、エラーベクトルが閾値に達するまで、再びブール演算が実行可能となる。しかし、この方法を実行するには、復号関数回路を計算する際に発生するエラーベクトルの増大量が、閾値以下である必要がある。始めに平文bitを暗号化する際に、加えるエラーベクトルの大きさを十分小さくとる事で、エラーベクトルの増大を閾値以下にする事が出来る。しかし、エラーベクトルを小さく取ると、公開鍵を用いた格子簡約攻撃が可能となり、セキュリティの観点から適切ではない。そこで、従来技術においては、squahingという方法を用いて復号関数回路計算時に発生するエラーベクトルの増大を抑え、再暗号化を実行する技術が提案されている。ただし、このsquahingによって、暗号化データのデータ長や再暗号化に必要な計算量が大幅に増大する問題が挙げられており、現実的な対策とは言い難い。そこで上記に鑑み本発明は、データ預託先のコンピュータにおいて、良好なセキュリティを維持しつつ、秘匿した状態での預託データに関する効率的な演算を実行可能とする、ことを目的とする。を目的としている。上記課題を解決する本発明の秘匿計算システムは、準同型性を持つ暗号方式において秘密鍵を用いたデータ暗号化を実行し、該暗号化データをサーバに送信するクライアントと、クライアントから受信した暗号化データに対して準同型性を有する演算処理を実行し、該演算結果をクライアントに返信するサーバとを含むコンピュータシステムであって、前記クライアントは、所定基準以下の大きさのエラーベクトルを平文に加えて前記データ暗号化を実行する処理と、前記秘密鍵が生成する格子の部分格子基底からなる抑制情報を前記サーバに送信する処理を実行するものであり、前記サーバは、前記クライアントから前記抑制情報を受信して記憶装置に保持する処理と、前記クライアントから受信した暗号化データに対する準同型性を有する演算処理に際し、演算処理中ないし演算処理結果の暗号文のビット長が、所定閾値以上である場合、該当暗号文のベクトルを、前記保持する抑制情報に対応した部分格子基底が成す領域内に平行移動させ、前記暗号文のビット長を所定閾値以下に低減する処理を実行するものである、ことを特徴とする。本発明によれば、データ預託先のコンピュータにおいて、良好なセキュリティを維持しつつ、秘匿した状態での預託データに関する効率的な演算が実行可能となる。---システム構成---以下に本発明の実施形態について図面を用いて詳細に説明する。図1は、本実施形態の秘匿計算システム10の構成例を示す図である。図1に示す秘匿計算システム10以下、システム10は、準同型性を持つ暗号方式において秘密鍵を用いたデータ暗号化を実行し、該暗号化データをサーバに送信するクライアントと、クライアントから受信した暗号化データに対して準同型性を有する演算処理を実行し、該演算結果をクライアントに返信するサーバとを含むコンピュータシステムであって、データ預託先のコンピュータにおいて、良好なセキュリティを維持しつつ、秘匿した状態での預託データに関する効率的な演算を実行可能とするコンピュータシステムである。図1に示すように、本実施形態における前記システム10は、本発明で言うところのクライアントたるクライアント端末100、本発明で言うところのサーバたる秘匿計算サーバ200、を備え、クライアント端末100と秘匿計算サーバ200とは、ネットワーク300を介して相互にデータ授受可能となっている。こうした前記システム10を構成するクライアント端末100、秘匿計算サーバ200のハードウェア構成は以下の如くとなる。図2は本実施形態におけるクライアント端末100の構成例を示す図である。図示するように、クライアント端末100は、CPU101、ハードディスクドライブなど適宜な不揮発性記憶装置で構成される補助記憶装置102、RAMなど揮発性記憶装置で構成されるメモリ103、耐タンパ記憶装置105、処理データの表示を行うディスプレイ等の表示装置106、キーボードやマウスなど入出力インターフェイス107、および、ネットワーク300と接続し秘匿計算サーバ200との通信処理を担う通信装置108が、内部信号線104で連結し構成される。前記CPU101は、前記補助記憶装置102に保持されるプログラムをメモリ103に読み出すなどして実行しクライアント端末100自体の統括制御を行なうとともに各種判定、演算及び制御処理を行なう演算装置である。また、前記補助記憶装置102には、プログラムの他に、暗号化対象となる平文データ、および暗号化に用いる秘密鍵が予め格納されているものとする。図3は本実施形態における秘匿計算サーバ200の構成例を示す図である。また、前記秘匿計算サーバ200は、CPU201、ハードディスクドライブなど適宜な不揮発性記憶装置で構成される補助記憶装置202、RAMなど揮発性記憶装置で構成されるメモリ203、処理データの表示を行うディスプレイ等の表示装置206、キーボードやマウスなど入出力インターフェイス207、および、ネットワーク300と接続しクライアント端末100との通信処理を担う通信装置208が、内部信号線204で連結し構成される。前記CPU201は、前記補助記憶装置202に保持されるプログラムをメモリ203に読み出すなどして実行し、秘匿計算サーバ200自体の統括制御を行なうとともに各種判定、演算及び制御処理を行なう演算装置である。続いて、本実施形態の秘匿計算システム10を構成する、前記クライアント端末100、および秘匿計算サーバ200が備える機能について説明する。上述したように、以下に説明する機能は、クライアント端末100、および秘匿計算サーバ200らが、それぞれ補助記憶装置にて備えるプログラムを各々実行することで実装される機能と言える。なお、本実施形態において実行される暗号化は、準同型性を持つ暗号方式において秘密鍵を用いた暗号化であるものとする。前記システム10のうち前記クライアント端末100は、所定基準以下の大きさのエラーベクトルを、補助記憶装置102から読み出した平文データに加えて当該平文データの暗号化を実行する機能を備える。暗号化が施されたデータ、すなわち暗号化データは、クライアント端末100から秘匿計算サーバ200に対し送信される。クライアント端末100から秘匿計算サーバ200に送られる前記暗号化データは、準同型性を有する演算処理の対象となる。また前記クライアント端末100は、補助記憶装置102から読み出した秘密鍵が生成する格子の部分格子基底からなる暗号文抑制情報抑制情報を、前記秘匿計算サーバ200に送信する機能を備える。また前記クライアントは、補助記憶装置102に保持する秘密鍵行列と、所定の整数係数正則行列との行列積を実行し、該行列積の結果である行列を、前記暗号文抑制情報として、前記秘匿計算サーバ200に送信する機能を備える、とすれば好適である。一方、前記秘匿計算サーバ200は、前記クライアント端末100から前記暗号文抑制情報を受信して、補助記憶装置102ないしメモリ203に保持する機能を備える。また、前記秘匿計算サーバ200は、前記クライアント端末100から前記暗号化データを受信し、この暗号化データに対する準同型性を有する演算処理を実行する機能を備える。秘匿計算サーバ200は、この演算処理に際し、演算処理中ないし演算処理結果の暗号文のビット長が、所定閾値以上である場合、該当暗号文のベクトルを、前記保持する暗号文抑制情報に対応した部分格子基底が成す領域内に平行移動させ、前記暗号文のビット長を所定閾値以下に低減する機能を備える。また前記秘匿計算サーバ200は、前記クライアント端末100から受信した暗号文抑制情報が示す、抑制情報行列の列ベクトルからなる一次結合で、係数の絶対値が1以下のベクトル全体の中で、原点からのユークリッド距離が最も大きいものを特定し、該特定したベクトルと原点との距離を前記所定閾値とする機能を備えるとすれば好適である。---用語の定義---ここではまず、本実施形態において使用する用語について定義しておく。1イデアル格子基底B=b1,b2,,bn:非特許文献1と同様の定義とする。つまり、イデアル格子の条件を満足するn次元整数係数ベクトル基底である。2暗号文抑制情報:暗号文生成用秘密鍵であるイデアル格子基底B=b1,b2,,bnと、ランダムに生成したn×n整数係数正則行列Uとの行列積をとった格子基底P=p1,p2,,pnとする。3秘匿計算プログラム:本実施形態における暗号文暗号化データを入力値とし、m回のブール演算ステップを行う処理とする。4秘匿計算関数用内部変数:秘匿計算プログラムの各ステップの出力値を格納し、それを次のステップに対する入力値として利用する変数の変数名とする。5秘匿計算用引数:秘匿計算プログラムの入力値として、クライアント端末100が生成する、準同型性の暗号方式の暗号文もしくは、暗号文の組である。6ノルム:ユークリッドノルムを指す。つまり、n次元整数係数ベクトルv1,v2,,vnに対して、S=v1×v1v2×v2vn×vnとし、値Sの平方根をn次元整数係数ベクトルv1,v2,,vnのノルムとする。7閾値L:暗号文抑制情報である格子基底P=p1,p2,,pnに対して、実係数一次結合a1×p1a2×p2an×pn:ただし0<ai<=1とするとき、この一次結合の全体の中で、ノルムが最大であるベクトルのノルムをLとする。---全体処理フロー---以下、本実施形態における秘匿計算方法の実際手順について図に基づき説明する。以下で説明する秘匿計算方法に対応する各種動作は、前記システム10を構成するクライアント端末100や秘匿計算サーバ200らがそれぞれメモリ等に読み出して実行するプログラムによって実現される。そして、このプログラムは、以下に説明される各種の動作を行うためのコードから構成されている。図4は本実施形態における秘匿計算方法の処理手順例1を示すフロー図であり、具体的には、クライアント端末100と秘匿計算サーバ200との間で、秘匿計算用の各種データ送受信を示すフローである。この場合、クライアント端末100は、例えば入出力インターフェイス107で受けたユーザ指示に応じ、暗号文生成用秘密鍵生成プログラムを実行し、暗号文生成用秘密鍵を生成するS100。この暗号文生成用秘密鍵を生成する処理については後に詳述する。続いてクライアント端末100は、ユーザ指示を受けて、或いは、前記ステップS100の実行を受けて、暗号文抑制情報生成プログラムを実行し、暗号文抑制情報の生成を行うS200。またクライアント端末100は、ここで生成した暗号文抑制情報D100を、通信装置108を用いてネットワーク300上の秘匿計算サーバ200に送信する。この暗号文抑制情報生成の処理については後に詳述する。次にクライアント端末100は、ユーザ指示を受けて、或いは、前記ステップS200の実行を受けて、秘匿計算用引数生成プログラムを実行し、秘匿計算プログラムに入力するための暗号文を生成しS300、それを秘匿計算用引数D200として通信装置108を用いて秘匿計算サーバ200に送信する。この秘匿計算用引数生成の処理については後に詳述する。一方、秘匿計算サーバ200は、前記クライアント端末100より、前記暗号文抑制情報D100と、秘匿計算用引数D200を受信し、これらを入力値として、秘匿計算プログラムによる秘匿計算処理を実行するS400。また、秘匿計算サーバ200は、前記秘匿計算プログラムの出力値である秘匿計算結果D300を、通信装置203を用いて、ネットワーク300上のクライアント端末100に送信する。この秘匿計算の処理については後に詳述する。他方、前記クライアント端末100は、前記秘匿計算サーバ200より秘匿計算結果D300を受信し、ここで受信した秘匿計算結果D300を入力値とする復号処理プログラムによる復号処理を実行するS500。前記クライアント端末100は、当該復号プログラムの出力値である計算結果を得て本処理を終了する。この復号処理については後に詳述する。---暗号文生成用秘密鍵生成処理---次に、暗号文生成用秘密鍵生成処理について図に基づき説明する。図5は、本実施形態における秘匿計算方法の処理手順例2を示すフロー図であり、具体的には、図4の処理フローにおける暗号文生成用秘密鍵生成プログラムの処理S100を示す図である。この場合、前記クライアント端末100は、所定の秘密鍵用イデアル格子生成アルゴリズムを用いて、n次元のイデアル格子基底B=b1,b2,,bnを生成しS110、生成したイデアル格子基底を暗号文生成用秘密鍵として耐タンパ記憶装置105に格納する。なお、本実施形態で用いる、暗号文生成用秘密鍵生成プログラムにおける秘密鍵用イデアル格子生成アルゴリズム、暗号化関数、復号化関数については、非特許文献1にある従来技術秘密鍵生成プログラム、暗号化関数プログラム、復号化関数プログラムを用いてもよい。---暗号文抑制情報生成処理---次に、暗号文抑制情報生成処理について図に基づき説明する。図6は本実施形態における秘匿計算方法の処理手順例3を示すフロー図であり、具体的には、図4の処理フローにおける暗号文抑制情報生成プログラムの処理S200を示す図である。この場合、前記クライアント端末100は、暗号文生成用秘密鍵生成プログラム図5:S100で生成した暗号文生成用秘密鍵である、n次元のイデアル格子基底B=b1,b2,,bnを、例えばメモリ103にて計算用に確保した記憶領域に格納するS210。続いて前記クライアント端末100は、ランダムなn×n整数係数正則行列Uを、既存技術による所定アルゴリズムにて生成しS220、このランダムなn×n整数係数正則行列Uを、前記メモリ103にセッティングしたn次元のイデアル格子基底B=b1,b2,,bnに対して乗じるS230。クライアント端末100は、前記ステップS230による行列積の結果を、P=p1,p2,,pnといった行列たる暗号文抑制情報として出力する。この暗号文抑制情報は、クライアント端末100から前記秘匿計算サーバ200に送信されることになる。---秘匿計算用引数生成処理---次に、秘匿計算用引数生成処理について図に基づき説明する。図7は本実施形態における秘匿計算方法の処理手順例4を示すフロー図であり、具体的には、図4の処理フローにおける秘匿計算用引数生成プログラムの処理S300を示す図である。この場合、前記クライアント端末100は、k個の関数引数用の平文m1,m2,,mk、すなわち、秘匿計算対象となる暗号化データの元となるデータを、入出力インターフェイス107で受けたユーザ指示に応じて補助記憶装置102から読み出し、例えばメモリ103にて計算用に確保した記憶領域に格納するS310。またクライアント端末100は、前記暗号文生成用秘密鍵生成プログラムの処理S100で生成している暗号文生成用秘密鍵Bを秘密鍵として、前記メモリ103にセッティングした各平文m1,m2,,mkを、準同型性の暗号方式に対応した所定の暗号化関数既存のものでよいを用いて暗号化し、それらk個の各暗号文を、c1,c2,,ckの行列としS320、秘匿計算用引数として秘匿計算サーバ200に出力する。---秘匿計算処理---次に、秘匿計算処理について図に基づき説明する。図8は本実施形態における秘匿計算方法の処理手順例5を示すフロー図であり、図9は本実施形態における秘匿計算方法の処理手順例6を示すフロー図である。具体的には、図4の処理フローにおける秘匿計算サーバ200が行う秘匿計算処理フローS400を示す図である。この場合、前記秘匿計算サーバ200は、前記クライアント端末100が前記ステップS200で生成した暗号文抑制情報P=p1,p2,,pnを、前記クライアント端末100から受信するS410。また秘匿計算サーバ200は、前記クライアント端末100が前記ステップS300で生成した秘匿計算用引数c1,c2,,ckを、前記クライアント端末100が前記ステップから受信するS420。秘匿計算用引数の具体例としては、例えば、秘匿性を維持しつつも、統計処理を必要とする個人情報などが想定できる。本実施形態では、例えば、統計対象の個人がm人だけ存在し、各人の個人情報が示す所定値を合算するため、第1~第mの計mステップにわたって、秘匿計算を行う例を想定する。前記秘匿計算サーバ200は、秘匿計算関数用内部変数Zを初期化しS430、前記ステップS420で得た秘匿計算用引数c1,c2,,ckをコマンド引数とする秘匿計算関数の第1ステップを計算し、その出力を秘匿計算関数用内部変数Zに格納するS440。秘匿計算関数は、暗号文に対して平文や秘密鍵なしで演算可能な準同型暗号方式において、加法や乗法のような二項演算を行う関数である。秘匿計算サーバ200は当然ながら、こうした秘匿計算関数のプログラムを補助記憶装置102等に予め保持している。次に、前記秘匿計算サーバ200は、秘匿計算関数用内部変数Zのノルムと閾値Lとを比較しS450、ノルムの値が閾値L以下であればS450:ノルム<L、秘匿計算関数の第2ステップに処理を移行する。一方、前記ノルムが閾値Lを超えていればS450:ノルム>L、秘匿計算サーバ200は、暗号文抑制情報P=p1,p2,,pnを用いて秘匿計算関数用内部変数ZのノルムをL以下に変形し、その値を秘匿計算関数用内部変数Zに格納し、秘匿計算関数の第2ステップに処理を移行するS460。なお、前記閾値Lは、秘匿計算サーバ200が、暗号文抑制情報の行列の列ベクトルからなる一次結合で、係数の絶対値が1以下のベクトル全体の中で、原点からのユークリッド距離が最も大きいものを特定し、該特定したベクトルと原点との距離を閾値Lとして採用したものである。また、暗号文抑制情報P=p1,p2,,pnを用いて、秘匿計算関数用内部変数ZのノルムをL以下に変形する処理、すなわち、暗号文抑制処理については図11に基づき後述する。次に、秘匿計算サーバ200は、秘匿計算用引数c1,c2,,ckと秘匿計算関数用内部変数Zをコマンド引数とする秘匿計算関数の第2ステップを計算し、その出力を秘匿計算関数用内部変数Zに格納するS470。ここで秘匿計算サーバ200は、秘匿計算関数用内部変数Zのノルムと閾値Lとを比較しS480、前記ノルムの値が閾値L以下であればS480:ノルム<L、秘匿計算関数の第3ステップに処理を移行する。他方、ノルムが閾値Lを超えていればS480:ノルム>L、秘匿計算サーバ200は、暗号文抑制情報P=p1,p2,,pnを用いて秘匿計算関数用内部変数ZのノルムをL以下に変形し、その値を秘匿計算関数用内部変数Zに格納し、秘匿計算関数の第3ステップに処理を移行するS490。次に、秘匿計算サーバ200は、秘匿計算用引数c1,c2,,ckと秘匿計算関数用内部変数Zをコマンド引数とする秘匿計算関数の第3ステップを計算し、その出力を秘匿計算関数用内部変数Zに格納するS411。次に秘匿計算サーバ200は、秘匿計算関数用内部変数Zのノルムと閾値Lとを比較しS421、ノルムの値が閾値L以下であればS421:ノルム<L、秘匿計算関数の第4ステップに処理を移行する。他方、ノルムが閾値Lを超えていればS421:ノルム>L、秘匿計算サーバ200は、暗号文抑制情報P=p1,p2,,pnを用いて秘匿計算関数用内部変数ZのノルムをL以下に変形し、その値を秘匿計算関数用内部変数Zに格納し、秘匿計算関数の第4ステップに処理を移行するS431。以下、上述した秘匿計算関数の第1ステップ~第3ステップまでと同様の手続きで、秘匿計算関数の第4ステップから秘匿計算関数の第m-1ステップまで計算するS441。続いて秘匿計算サーバ200は、秘匿計算用引数c1,c2,,ckと秘匿計算関数用内部変数Zをコマンド引数とする秘匿計算関数の第mステップを計算し、その出力を秘匿計算関数用内部変数Zに格納するS451。また、秘匿計算サーバ200は、秘匿計算関数用内部変数Zのノルムと閾値Lとを比較しS461、ノルムの値が閾値L以下であればS461:ノルム<L、秘匿計算用内部変数Zを秘匿計算結果Rとして出力する。他方、ノルムが閾値Lを超えていればS461:ノルム<L、秘匿計算サーバ200は、暗号文抑制情報P=p1,p2,,pnを用いて秘匿計算関数用内部変数Zの係数ノルムをL以下に変形し、その値を秘匿計算関数用内部変数Zに格納し、秘匿計算用内部変数Zを秘匿計算結果Rとして出力するS471。この秘匿計算結果Rは、秘匿計算サーバ200から前記クライアント端末100に返信されるものである。上記例の場合、秘匿計算結果Rは、m人の個人情報が示す所定値の合算値に対応したものとなる。---復号処理---次に、復号処理について図に基づき説明する。図10は本実施形態における秘匿計算方法の処理手順例7を示すフロー図であり、具体的には、図4の処理フローにおける復号処理プログラムによる処理S500を示す図である。この場合、前記クライアント端末100は、前記秘匿計算サーバ200から、前記秘匿計算結果RD200を受信するS510。また前記クライアント端末100は、上述した暗号文生成用秘密鍵生成プログラムの処理図4、図5:S100で生成してある暗号文生成用秘密鍵Bを秘密鍵として、前記秘匿計算結果Rを、所定の復号化関数を用いて復号するS520。クライアント端末100は、ここで復号した値を計算結果として表示装置105にて出力する。上記例の場合、表示装置105にて出力する計算結果は、統計対象であるm人の個人に関する、個人情報の合算値となる。---暗号文抑制処理---次に、暗号文抑制処理について図に基づき説明する。図11は本実施形態における秘匿計算方法の処理手順例8を示すフロー図であり、具体的には、図8と図9の秘匿計算処理フローS400における暗号文抑制処理を示す図である。この場合、前記秘匿計算サーバ200は、暗号文抑制情報P=p1,p2,,pnを用いて、秘匿計算関数用内部変数Zをベクトル基底表現する。つまり、実数係数a1,a2,,anで、Z=a1×p1a2×p2an×pnとなる表示を求めるS610。次に、秘匿計算サーバ200は、前記ステップS610で求めた各aii=1~nに対して、実数aiを超えない最大の整数たる[ai]を減算し、各係数aiをai-[ai]の値に更新するS620。例えば、a1が3.5である時、実数3.5を超えない最大の整数たる3で3.5を減算し、係数a1を0.5の値に更新する。続いて秘匿計算サーバ200は、前記ステップS620で求めた、各係数aiを用いて、秘匿計算関数用内部変数Zを、Z=a1×p1a2×p2an×pn、に更新しS630、秘匿計算関数用内部変数Zを出力する。こうした処理は、すなわち、抑制前の暗号文のベクトルaiが1を越えているを、前記暗号用抑制情報に対応した部分格子基底が成す領域内に平行移動させaiを1以下とする、前記暗号文のビット長を所定値以下に低減する処理となる。なお、上記実施形態においては、暗号文抑制情報を生成する際に、ランダムなn×n整数係数正則行列Uを生成しているが、行列式の値がある条件を満足するランダムなn×n整数係数正則行列Uとしてもよい。また、上記実施形態においては、ベクトルのノルム計算方法として、ユークリッドノルム計算法を利用しているが、その他の従来技術であるノルム計算法を用いてもよい。また、上記実施形態においては、秘匿計算用内部変数を一つの変数Zとしているが、秘匿計算用内部変数を複数の変数の組Z1,Z2,,Zkとしてもよい。以上、本発明を実施するための最良の形態などについて具体的に説明したが、本発明はこれに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能である。こうした本実施形態においては、従来の課題であった再暗号化時に発生するエラーベクトルの増大を抑制するために、平文bitを暗号化する際に、クライアント端末100が加えるエラーベクトルの大きさを十分小さくとり、さらに、エラーベクトルが小さくことにより懸念される格子簡約攻撃を防ぐため、従来公開していた公開鍵は秘匿する方式となっている。また、秘匿計算サーバ200は、従来の公開鍵とは異なる暗号文抑制情報生成暗号文のビット長をある定数以下に抑えるための情報をクライアント端末100から得て、暗号文のノルム増大問題を解決している。暗号文抑制情報は、秘密鍵が生成する格子の部分格子基底からなり、暗号文ベクトルを常にこの部分格子基底の生成する基本領域に平行移動する事で、ノルム増大を防いでいる。この時、ベクトルを平行移動する際、加えるベクトルは部分格子のベクトルのため、暗号文ベクトルの平文情報を変更する事無く、ノルムを小さくできる。また、前記暗号文抑制情報は、秘密鍵である格子の部分格子基底であるため、従来の公開鍵を用いた暗号化アルゴリズムにはそもそも利用できず、本実施形態の秘匿計算システムにおける暗号文抑制情報に対して格子簡約攻撃がなされるとしても、暗号文が解読され平文が出力されてしまう確率は非常に低い。実際、秘密鍵の格子基底のなす行列の行列式の絶対値をD、暗号文抑制情報の格子基底のなす行列の行列式の絶対値をD’とすると、暗号文解読の確率は、D/D’程度となる。従って、D’を十分大きく取る事によって、前記確率は、現実的には問題にならない程度に小さくする事が可能である。しかして本実施形態によれば、平文bitデータに加えるエラーベクトルを従来より低減し、暗号化データのブール演算によるエラーベクトル増大を抑制する一方、エラーベクトルが小さい場合に懸念される従来の格子簡約攻撃を回避することが可能である。従って、squahingの如き、計算量や計算時間が非常大きい手法を採用する必要も無い。つまり、データ預託先のコンピュータにおいて、良好なセキュリティを維持しつつ、秘匿した状態での預託データに関する効率的な演算が実行可能となる。本明細書の記載により、少なくとも次のことが明らかにされる。すなわち、前記秘匿計算システムにおいて、前記クライアントは、記憶装置に保持する秘密鍵行列と、所定の整数係数正則行列との行列積を実行し、該行列積の結果である行列を、前記抑制情報としてサーバに送信するものである、としてもよい。また、前記秘匿計算システムにおいて、前記サーバは、前記クライアントから受信した抑制情報が示す、抑制情報行列の列ベクトルからなる一次結合で、係数の絶対値が1以下のベクトル全体の中で、原点からのユークリッド距離が最も大きいものを特定し、該特定したベクトルと原点との距離を前記所定閾値とするものである、としてもよい。"