(57)【要約】      （修正有）【課題】２次双曲線群を用いた暗号化・複合化装置においてどのような装置構成、ファイル構成、及び文字形式を採用すれば実用的であるのか検証する。【解決手段】双曲線暗号の暗号・復号装置は、暗号装置、復号装置、FTP制御BOX、FTPサーバ、及び暗証端末を有し、仮想サロゲート・ペアを用いたファイル構成を採用し、暗号化及び復号化の作業の流れが分るように「装置結合線」で表示された装置構成を有する。暗号化装置は、平文や装置状態の保存ファイル等の内容を「UTF-16」の文字列として取り扱い、所定の公開鍵と秘密鍵の下で暗号化し、暗号文を生成する。暗号文は、仮想サロゲート・ペアを用いて変換し、表示し、固有のファイル作成を可能にする。【選択図】図１
2012132953.tif 000002
【特許請求の範囲】
【請求項１】
複数の暗号化装置が巡回接続され、前の装置の演算結果が後の装置の演算回数に反映され、当該演算が一巡したときの状態を生成鍵とし、平文を前記生成鍵により暗号化するする暗号化装置と、暗号文を前記復号鍵により平文化するする復号化装置とを有し、前記暗号化装置及び前記復号化装置の初期化若しくは演算が公開鍵と秘密鍵を用いて行われる場合において、前記演算が２次双曲線群による群演算であることを特徴とする装置。
【請求項２】
請求項１の装置において、一の暗号化装置若しくは復号化装置が他の暗号化装置若しくは復号化装置の状態を反映した演算回数を設定することを特徴とする装置。
【請求項３】
請求項１の装置において、一の暗号化装置の演算回数を他の暗号化装置の状態および平文データに依存して定めることにより暗号化し、一の復号化装置の演算回数を他の復号化装置の状態および既に復号化された前記平文データに依存して定めることにより復号化することを特徴とする装置。
【請求項４】
請求項１の装置において、生成された16ビット暗号化データがUTF-16のサロゲート・ペアの範囲にある場合に、固定のデータと前記暗号化データを組み合わせてサロゲート・ペアを生成する方法。
【請求項５】
請求項１の装置において、その一の状態を保存するために、公開鍵と、暗号文若しくは平文の何れか若しくは双方を請求項４に係るサロゲート・ペアを用いたUTF-16のテキストによりファイル化する方法。
【請求項６】
請求項１の装置及びネットワーク制御装置を有し、請求項５に係るファイルをネットワーク上の保護された領域に保存する方法。
【請求項７】
請求項１の装置をウィンドウ上に配置し、各装置間を装置結合線で結合することにより装置間の連動関係を表示することを特徴とするソフトウェア。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、２次双曲線群の離散対数を利用した双曲線暗号のアプリケーション・ソフトウェア、暗号化装置、及び復号化装置に関するものである。
【背景技術】
【０００２】
２００５年の７月に楕円曲線暗号に代わる双曲線暗号の探索において２次双曲線群が発見された後、その成果は２００７年２月特許出願された「二次双曲線群を使用する鍵生成方法、復号方法、署名検証方法、鍵ストリーム生成方法および装置」(特許文献１)及び２００８年３月の特許出願「双曲線暗号の鍵生成方法」(特許文献２)に開示されるに至った。その後、本発明に係るソフトウェアの開発に先行した「双曲線暗号の設計ツール」が特許出願され(特願2009-296536号、特許出願日2009年12月26日)、双曲線暗号の利用に便宜が図られたが、同時に２次双曲線群に係る理論的背景も強化された。
【特許文献１】特開2008-203548号
【特許文献２】特開2009-223035号
【特許文献３】特願2009-296536号
【０００３】
双曲線暗号は、２次双曲線群という新しい数学的な背景を基礎に構築されているので未知な領域が多い。２次双曲線群は離散対数を基礎とする加法群であって巡回群の一種であるが、従来の乗法群を基礎とする有限群とは一線を画す性質を有している。例えば、乗法群で当然に適用される置換群との対応、シロー(Sylow)の定理は、そのまま適用することはできない。しかし、発見された拡張オイラー関数(GCD totient)は２次双曲線群の共役部分群の個数を与える明確な意味を有していた。
自然なオイラー関数(Euler’s totient) の拡張になっていて、オイラー関数に成立する定理が類似の形で拡張オイラー関数に係る定理として成立することが分っている。
双曲線暗号では２次双曲線群の位数が一定であるという利点を活用し、楕円曲線暗号と比べて暗号装置を容易に構成でき、かつ、容易に解読困難性を付加できる利点を有していた。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
２次双曲線群は、その位数が一定で初等的取り扱い方が可能であることからその理解に困難な点はないが、実際に暗号化装置を構成できるのか試されたことがない。実際に暗号化装置を構成してみれば、理論的な不備、不足が明らかになったり、暗号復号装置に必要な条件、環境、及び機能を知り、引いてはその整備や進歩に寄与できる可能性が高い。環境面では、特に、暗号化に際してどのようなファイル構成、文字形式を採用するかが重要である。近年のPCの傾向では、多言語に対応させるために文字形式に「UTF-16」を採用することが標準になりつつある。
「UTF-16」ではサロゲート・ペア(surrogate pair)と呼ぶ拡張形式が採用され、その場合は16ビットではなく所定の変換規則に従い32ビットで1文字を表す方式が採用されている。他方、ファイルの構成はバイナリ・ファイル(binary
file)ではなく、文字形式のファイルが便利である。データファイルや暗号ファイルも文字形式で記載してあれば、直接平文や公開鍵を読むことができ、その入出力も容易になる。暗号装置の状態を文字で保存してあれば、その保存・復帰を容易に取り扱うことができる。
しかし、暗号文は通常乱数であって、上記文字形式及び変換規則に一切対応していないことに注意しなければならない。仮に「UTF-16」を採用するにしても、サロゲート・ペアの取り扱いをどのようにするかの明確な取り決めはない。これが本発明の主要な課題である。
【０００５】
暗号化装置の方にも課題は多い。暗号化の対象となるのは原則としてファイルであるが、ファイルにはさまざまな形式があり、統一的な取り扱いを行おうとすればバイナリ・ファイルでしか取り扱えない。しかし、通常暗号においては平文を暗号文に変換し、若しくはその逆の操作を行わせるのであるから、できる限り文字形式のファイルを採用したい。その場合、データ量が多ければその一部しか表示できず、取り扱いに不便することになる。
暗号ファイル等の保存はセキュリティで保護されたネットワーク上の置き場所にアップロードして保存し、若しくは必要に応じてダウンロードしてその内容を知りたいときがある。その場合、簡易に暗号化、復号化でき、送受信でき、かつ、視覚的にもその取り扱いが便利な構成を有する装置が望ましい。
【０００６】
本発明に係る双曲線暗号では暗号化のための曲線パラメータの組み等が公開鍵として採用されるので、公開鍵の表示も必要になる。秘密鍵は、PC上の安全な場所に保管するとともに、定期的に変更することが望ましく、その変更が容易で暗号文毎に対応できる構成が望ましい。曲線パラメータの組みは、同時に開発された先の特許出願(特許文献３)にかかる設計ツールを使えば容易に作成することができる。しかし、或る程度の変更が可能であれば、それに越したことはない。
【課題を解決するための手段】
【０００７】
本発明に係る双曲線暗号の暗号・復号装置(HCC Test Application)は、暗号装置、復号装置、FTP制御BOX、FTPサーバ、及び暗証端末を有し、仮想サロゲート・ペアを用いたファイル構成を採用し、暗号化及び復号化の作業の流れが分るように「装置結合線」で表示された装置構成を有する。従って、この装置があれば、双曲線暗号に係る暗号文の作成、復号、曲線パラメータの指定、装置状態の保存・復帰を、その全体を見ながら統合的に行うことができ、データの取り扱いの自由度と安心を確保できる。その他、バイナリ・ファイルの取り扱いを可能にしたので、指定ファイルを除き、どのような種類のファイルも暗号化ファイルとすることができる。この暗号化は2次双曲線群の離散対数を利用した解読困難性を有するので、少ないビット数を取り扱う暗号化においても高い解読困難性を有することを特徴とする。
【発明の効果】
【０００８】
本発明に係る仮想サロゲート・ペアは本来の「UTF-16」の形式を維持しているが、データの内容は暗号文であったり、バイナリ・データだったりする。従って、それ自体に文字としての意義を有しておらず、形式上文字の体裁を有するだけである。
しかし、文字形式を採用するので容易にファイル構成を採用することができ、仮にアプリケーション・ソフトウェアで文法上のチェックを行っている場合でも、そのチェックをすり抜けることができる。また、暗号化/復号化装置の状態を文字で保存できる利点がある。更に、ソフトウェア上でデータを視覚化することができるので、少なくとも同一の暗号文、若しくはバイナリ・データであるかを識別することができる。
【０００９】
また、本発明に固有の「装置結合線」は、視覚化されたウィンドウ上で、分布する暗号化装置等の相互の作用・機能関係を明示することができ、現在行っている作業を常に全体の一部の作業として意識させる効果を有する。ソフトウェア上に装置間の作用・機能関係を視覚化させたという点では画期的である。
【実施例１】
【００１０】
図1は、本発明に係る双曲線暗号の暗号・復号装置の全体図である。全体を縦に3分割すれば、左側の装置が暗号化装置、右側の装置が復号化装置、中央がその他の装置に分けることができる。その他の装置としては、FTP制御BOX、FTPサーバ(主に、リスト表示)、及び暗証装置がある。このソフトウェアの開発は、２００８年５月からマイクロソフト社の「Visual
Studio 2008」を用いて、VC++で行われた。NET.Framework V3.5の「Windows」（登録商標です。）プログラムである。開発開始後、約半年の作業で原型が出来上がったが、先の特許出願(特許文献３)にかかるツールの開発を優先したために、その後1年半掛けてバグ抜きや改良が行われた。このソフトウェアでは、先のツールで採用された２次双曲線群のパラメータファイルが利用できる構成が採用されている。
【００１１】
暗号化装置は、平文や装置状態の保存ファイル等を「UTF-16」で取り扱う。その内容を「UTF-16」の文字列として取り扱い、所定の公開鍵と秘密鍵の下で暗号化し、暗号文を生成する。暗号文は、本発明に係る仮想サロゲート・ペアを用いて変換し、表示し、本発明に固有のテキスト・ファイル作成が可能になっている。作成した暗号ファイルは、ネットワーク上、若しくはPC上に保管し、若しくは読み込みすることができる。また、暗号化装置の自在性を確保するために、通常のファイル操作を始めとする様々な機能が盛り込まれている。
「UTF-16」以外の文字形式、例えば「Shift-JIS」のファイルではその読み込みは文字化けの表示になる。しかし、バイナリ・ファイルとしての扱い、若しくは文字化けのまま復号化したときは元のファイルに戻すことができる。幸いなことに「Windows」ではコピー、貼り付けを行う一時記憶「Clipboard」は、「UTF-16」で行われているので、その内容をコピー、貼り付けすれば自動的に「UTF-16」で取り扱うことができる。
【００１２】
仮想サロゲート・ペアの方式は様々な態様が考えられる。ここでは所定の変換規則に従い、16ビット乱数から仮想的な「UTF-16」のサロゲート・ペア(32ビット)に変換する方法を採用する。従って、該当乱数の分だけデータ量は増えることになる。この場合に、本発明に係る暗号文は全くの乱数として生成されるので、偶然に「UTF-16」のサロゲート・ペアであることもあるし、その片方の場合もある。しかし、そのことは全く考慮されず、機械的な変換が行われる。この結果、暗号文には本発明に係る仮想サロゲート・ペアしか含まれず、それ故文字表示が可能であり、容易にファイル構成を採用することができる。
【００１３】
本発明に係る仮想サロゲート・ペアは所定の規則により行われるので、その暗号文の復号化はその逆変換により行われる。即ち、暗号文に係る「UTF-16」のサロゲート・ペア(32ビット)は、前記復号化により元の16ビットの乱数に戻され、その後本発明に係る復号化が行われる。
【００１４】
図２は、本発明に係る双曲線暗号の暗号化装置の図である。図2で、装置間結合線で連結された各装置として、左側に8個の16ビット暗号化装置があり、右側に平文領域、128ビット生成鍵、暗号文領域、及び公開鍵領域があり、下側には初期化ボタン、暗号化ボタン、及び「AllClear」ボタンがある。「装置結合線」は、Windowsで提供されるパーツ、例えば「Label」、「TextBox」、若しくは「ListBox」のような長方形のソフトウェア部品の大きさを最小にすることにより、擬似的な「線」を作り出している。
【００１５】
平文領域に読み込まれた平文等は128ビット生成鍵により暗号文になり、暗号文領域に「UTF-16」文字として保存される。128ビット生成鍵は、8個の16ビット暗号化装置の組み合わせにより生成される。暗号化は最初に初期化ボタンで初期化され、暗号化ボタンにより暗号化され、空白となった暗号文領域に記録される。ここでは暗号文が、本発明に係る仮想サロゲート・ペアを用いた「UTF-16」文字として保存されることに注意する。文字でファイル化し、表示することが可能である。
【００１６】
暗号文は平文と乱数とのXOR論理により生成される(暗号化)。従って、同じ乱数を用いて再度XOR論理を適用すれば元の平文が出現する(復号化)。このような単純な暗号化であっても、乱数の性質が維持されている限り元の平文を再生することはできない。この乱数は、純粋の乱数ではなく本発明に係る2次双曲線群を使用する演算結果を用いる。しかし、離散対数を基礎とする演算であるので、容易に元のデータを知ることはできず、事実上の乱数として扱うことができる。
【００１７】
本発明に係る仮想サロゲート・ペアは、生成された暗号文を表示し、ファイル化し、その後保存等を行うために使用される。その変換規則はかなり自由に決められるが、この実施例では以下のように行っている。
第1に、暗号文の16ビット値がサロゲート・ペアの何れかの領域にある場合に仮想サロゲート・ペアが生成される。暗号文が16ビットの整数倍値である場合には、その個々の16ビット値を対象とする。
第2に、対象となった16ビット値を所定の規則に従い32ビットのサロゲート・ペアに変換する。
この変換により暗号文のデータ量は平文に比べ増えるが、変換を要する16ビット値の出現頻度はかなり低いので、不都合が生じることはほとんどない。
なお、エンディアン(endian)を判別するBOM(Byte Order Mark)を付加することが考えられるが、暗号文はファイルの先頭アドレスに置かれることはないので、その考慮をする必要はない。
【００１８】
当該規則として、この実施例では固定の先頭値(16ビット)を用いている。
例えば、l_s=0xD800, u_s=0xDFFFの間の領域の16ビット値に対して変換を行う。この領域は、サロゲート・ペアの双方の値が入る領域である。ｘ値が、l_s≦x≦u_sの関係にあるとき、
x=x1x2x3x4と4個のHEX値x1,x2,x3,x4で表示したとき、
上位サロゲート=0xD8x1x2
下位サロゲート=0xDCx3x4
とする。即ち、上位8ビットを前記領域内の固定値とし、下位8ビットをｘ値を2分割した8ビットにそれぞれ割り当てる方式である。
【００１９】
暗号文の16ビット値の中には、当該言語で「UTF-16」文字として未定義で割り当てられていない領域がある。そのような文字の表示をどのように扱うかは当該表示を行うソフトウェアの対応で決まる。例えば、「Windows」のアクセサリに付属する「Notepad(メモ帳)」では、同一の表示「┃」や「・」を割り当てて表示する。通常当該文字に対応する表示フォントを有する場合には、当該ソフトウェアはその表示を行うことができるが、有しない場合には同一の代替文字を割り当てる。ただ、これは表示だけの問題で、ファイル上のデータは何等変更されない。従って、ファイルの入出力で何等情報は失われてはいない。
【００２０】
図2で、8個の16ビット暗号化装置は、装置間結合線でループ上に結合している。これは、或る暗号化装置で所定回数回だけ2次双曲線群の群演算を行った結果を次の暗号化装置の群演算の回数に反映させる構成を採用するからである。本発明では、全ての装置が所定回だけ群演算を終えた状態を取り出し、128ビット生成鍵（乱数）として採用している。解読困難性向上のため128ビット生成鍵を各暗号化装置の状態を引数とする関数とすることは容易である。
前記演算回数は、通常他の暗号化装置の状態、平文データ等に依存した関数として決定される。
この実施例では暗号化方式として
（１）無相関方式(各装置間に相関がない。)
（２）直前装置との相関を有する方式
（３）全装置との相関を有する方式
（４）データ依存方式(（３）方式との組み合わせが有効である。)
を準備した。通常は（３）、（４）の方式が使われるが、実験できるようにしてある。
（３）方式は、128ビット暗号化装置と比べてその能力に近い乱数を発生させるわけではないが、16ビット暗号化装置と比べ格段に高いランダム性を有する乱数を発生することができる。（４）方式は、例えばデータが1文字で埋め尽くされた平文に対しては、その解読困難性を向上する効果は見込めない。しかし、（３）方式と組み合わせた方式を採用すると、通常の文章であっても、データ依存により格段に高いランダム性を有する乱数を発生させることができる。ただ、復号化の際に支障とならないように、既に復号化された平文若しくはデータを使う構成を採用する。言わば、データ依存性に「時差」を設けてある。この実施例では、簡便のため直前の装置のデータに対する依存性を採用した。
【００２１】
図2の下側には、上記何れの暗号化方式を採用するかの番号が、その方式とともに表示されている。平文を暗号化するための初期化は通常、秘密鍵を関連させつつ所定回数だけ群演算を実行することにより行われる。「初期巡回設定回数」、「鍵幅のマージン」、「初期作業鍵」、及び「初期ベースポイント」等は初期化の際に必要になるデータであり、公開鍵の一部として公開鍵領域に表示される。「初期化」ボタンにより初期化が行われると、「Ready」ラジオボタンが点灯する。
ソフトウェア構成を簡明にするためには、「初期化工程」を「暗号化工程」に含ませ、次々に実行させるのが便宜であるかも知れない。しかし、この実施例では平文等をその暗号化前で初期化の後に入れ替えることができるように、使い勝手を向上させる方式を採用した。
【００２２】
「AllClear」ボタンは、暗号化装置の全ての状態をクリアにする。他方、「データクリア」ボタンはデータ領域のデータのみをクリアにする。「Binary」ラジオボタンは、そのクリックによりデータ内容を文字表示からバイナリ表示にすることができる。カーソルを「Binary」ラジオボタンに近接させると、カーソルが矢印から「手のひらマーク」に変更されるので、その表示変更機能に気づく。「Binary」ラジオボタンの点灯中に再度クリックすると、データ内容をバイナリ表示から文字表示に戻すことができる。この機能は単にデータの確認等のために視覚化を行うだけの目的で付加された。この実施例では、暗号化等は常に文字データ等の16ビット値を対象にして行われる。
【００２３】
図３は、本発明に係る双曲線暗号の復号化装置の図である。図３で、縦の装置間結合線で分けて、右側に8個の16ビット暗号化装置があり、左側に平文領域、128ビット生成鍵、暗号文領域、及び公開鍵領域があり、下側には初期化ボタン、復号化ボタン、及び「AllClear」ボタンがある。
【００２４】
暗号文領域に読み込まれた暗号文は128ビット生成鍵により平文になり、平文領域に「UTF-16」文字として保存される。128ビット生成鍵は、8個の16ビット暗号化装置の組み合わせにより生成される。復号化は最初に初期化ボタンで初期化され、復号化ボタンにより復号化され、空白となった平文領域に記録される。ここでは暗号文は、本発明に係る仮想サロゲート・ペアを用いた「UTF-16」文字として存在することに注意する。その意味は読み取れない暗号文であるが、文字でファイル化し、表示することが可能である。
【００２５】
復号化装置の初期化は、暗号化装置の初期化と全く同じ工程で行われる。全く同じ乱数を発生させてXOR論理を取り、元の平文を復活させるためである。即ち、初期化は秘密鍵を関連させつつ所定回数だけ群演算を実行することにより行われる。「初期巡回設定回数」、「鍵幅のマージン」、「初期作業鍵」、及び「初期ベースポイント」等は初期化の際に必要になるデータであり、公開鍵の一部として公開鍵領域に表示される。「初期化」ボタンにより初期化が行われると、「Ready」ラジオボタンが点灯する。
この状態で暗号文を入れ替えれば、異なる暗号文の復号を行わせることができる。しかし、暗号文は公開鍵とセットであるのでその機能は付加しないことにした。従って、復号化の場合の「初期化」ボタンは、視覚的な左右対称を維持するためのものに留まる。ソフトウェアを簡便にさせるためには「初期化工程」を「暗号化工程」に含ませるのが便宜であろう。
【００２６】
この発明では、平文ばかりでなく、バイナリ・ファイルをも対象にすることにした。実際的な使い勝手を考慮したからである。バイナリ・ファイルの取り扱いには、本発明の実施例に係るファイル構成と密接な関係にあるので、それを先に説明したい。
この実施例に固有のファイル構成を図4に示した。それぞれ拡張子として「hcd」、「hcb」、「hcp」、「hcr」、及び「hcs」を有している。HCCデータファイル(hcd)は、暗号装置の現在の状態を保存するためのファイルである。HCCバイナリファイル（hcb）も、暗号装置の現在の状態を保存するためのファイルであるが、バイナリ・データを対象とする。HCC暗号ファイル（hcr）は、暗号文ファイルである。HCCバイナリ暗号ファイル（hcs）も、暗号文ファイルであるが、バイナリ・データを対象とする。HCCパラメータファイル（hcp）は、公開鍵を保存するファイルである。
【００２７】
図5には、ファイル構成を説明するのに便宜であるので、上記HCCデータファイルの印刷見本を掲げておいた。これによれば、上から順に公開鍵領域、装置データ保存領域、FTPデータ領域、平文領域、及び暗号文領域があり、公開鍵領域の先頭には初期設定値領域が設けられている。また、各領域は識別子「####」で区分されている。
公開鍵領域は、どのファイルでも共通であり、HCCパラメータファイル（hcp）は公開鍵だけから構成される。HCC暗号ファイル（hcr）は、公開鍵と暗号文で構成される。HCCバイナリ暗号ファイル（hcs）も公開鍵と暗号文で構成されるが、バイナリ・データを対象とする。HCCデータファイル(hcd)は、公開鍵、平文、暗号文、及びその他の情報で構成される。HCCバイナリファイル(hcb)も、公開鍵、平文、暗号文、及びその他の情報で構成されるが、バイナリ・データを対象とする。
HCCバイナリファイル(hcb)の平文領域は16進数(HEX)表示で行われるが、保存の場合には本発明に係る仮想サロゲート・ペアを用いて文字化されている。従って、平文領域に係る保存ファイルの容量は元のバイナリ・ファイルの容量とあまり変わらない、ということに注意したい。同様に、暗号化された後のHCCバイナリ暗号ファイル（hcs）も、元のバイナリ・ファイルの容量とあまり変わらない。
【００２８】
ファイル名については、原則拡張子以外は自由に命名できる。しかし、HCCバイナリファイル(hcb)とHCCバイナリ暗号ファイル（hcs）には命名規則が定められている。元のバイナリ・ファイル名を残すためである。例えば、「app.ico」というバイナリ・ファイルを開き、データ保存した場合には、「app.ico.hcb」というファイル名になり、拡張子「.hcb」が付加される。また、暗号化し、ファイル化した場合には、「app.ico.hcs」というファイル名になり、拡張子「.hcs」が付加される。復号化の際に上記拡張子を外し、元のバイナリ・ファイル名を復活させることができる。
【００２９】
ファイル名の変更は比較的自由にできる。しかし、上記命名規則に違反する場合、その変更は暗号化等の際に警告を受けることになる。ファイルを開くと、対象となった領域の上部に当該ファイル名が表示される。マウスを動かしカーソルをそのファイル名に近接させると、カーソルの形が「矢印」から「手のひら」マークに変化し、ファイル名変更が可能であることを知ることができる。
【００３０】
この実施例ではネットワークと接続し、暗号化ファイルをネットワーク上に保管できる構成を採用した。保管場所はFTPサーバの保護されたフォルダである。FTPサーバとの接続にはIDやパスワードが要求されるので、そのセキュリティは高い。最も暗号化ファイルについては、秘密鍵が明らかでない限りその解読は難しい。
【００３１】
図６は、FTP制御BOXとFTPサーバをこのソフトウェア上で表現している。FTP制御BOXの「送信ボタン」を押すと、送信ファイル名の記入と、その後にFTPサーバにログオンするためのFTP設定確認画面が出現する。「OKボタン」の押し下げで、当該ファイル名で当該FTPサーバに保管される。FTPサーバへの保管の後に「FTPファイルリスト」は更新されるので、当該保管の確認ができる。  
「受信ボタン」押し下げは、「FTPファイルリスト」内の1ファイルが選択された後に行われる。HCC暗号ファイル等の受信が正常に行われると、復号化装置の暗号文領域に暗号文が、公開鍵領域にその公開鍵がそれぞれ表示され、ファイル名の表示も行われる。
「FTPファイルリスト」は、原則として現在FTPサーバの所定フォルダに存在する関連ファイルのみを表示する。右クリックすると、様々な機能を有するショートカット(後述)を表示する。
【００３２】
図７は、秘密鍵の入力を行う暗証端末である。「暗証入力ボタン」を押すと暗証入力画面が現れ、「OKボタン」の押し下げで新しい秘密鍵を確定することができる。秘密鍵は「暗証表示BOX」に伏せ字で表示される。「keep」ラジオボタンは、秘密鍵の保持のために使われる。秘密鍵は本来暗号文毎に異なるべきであるが、同一の秘密鍵を使用したいときにはこの機能が役に立つ。「keep」ラジオボタンが点灯していないときに暗号文ファイルを開くと、秘密鍵は削除される。
【００３３】
図7は、図1のウィンドウ上部にある「File」メニューであり、通常のファイル操作を行えるように設けられた。「Open」メニュー、「Save」メニュー、「Save
As」メニュー、「Page Setting」メニュー、「Print」メニュー、及び「Close」メニューである。図1上段には、「Tool Strip」上にそれぞれのアイコンが表示されている。最下段の「File
Use Record」メニューは、ファイルの使用履歴である。
【００３４】
「Open」メニューでは、図4に示した本発明に固有のファイル、及びバイナリ・ファイルを開くことができる。当初はバイナリ・ファイルを別の扱いにしていたが、拡張子に応じた処理を行うことで、このメニュー1個で足りるように構成した。
或るファイルを開くと、そのファイルが有するデータ領域だけが更新される。例えば、HCCパラメータファイル（hcp）を開くと、公開鍵領域のデータだけが更新されファイル名が切り替わる。これは平文が同一で公開鍵を変更した暗号化を行うときに便宜である。最も装置状態を保存するHCCデータファイル(hcd)等を開けば全ての領域でデータの更新が行われる。バイナリ・ファイルを開くと、データ領域に当該ファイルのデータが16進(HEX)で表示され、同時に「Binary」ラジオボタンが点灯する。また、開いたファイルの名前が表示される。
HCC暗号ファイル（hcr）等は、通常復号化装置の方で開く。その際、復号化の便宜のためにデータ領域をクリアする。暗号化装置にするか復号化装置にするかの切り分けは、この実施例ではマウスが直前にどの位置を指していたかで判定される。誤って別の場所に開かないためには、ショートカット・メニューで開くと良い。
【００３５】
「Save」メニューは、ファイルの上書き保存を行う。「Save As」メニューは、ファイルに別名をつけて保存する。この場合に、ファイルの拡張子を変更すると、拡張子に合わせたファイルの内容になることに注意する。セーブされるデータの内容は、図4の構成に従う。名前を変更したときには、表示されていたファイル名は更新される。
【００３６】
「Page Setting」メニューは印刷設定を行う。「Print」メニューは、本実施例に係るファイルの印刷を行う。既に、図５に「hcd」ファイルの印刷見本を開示しておいた。印刷は「Windows」の印刷機能を利用している。ヘッダーとフッターの指定をし、所定行数で改行し、ファイルに書き込む。「Close」メニューでは、このプログラムを終了させる。
印刷と類似の機能に、「ToolTips」機能がある。所定のウィンドウにマウスを近づけると、そのウィンドウの内容が「ToolTips」としてソフトウェア最上面に表示される。この機能はウィンドウが小さくてその全体を見ることができない場合に有効である。データ量が多い場合には、そのウィンドウにマウスを近づける動作に従ってページが更新される。この実施例ではボタン等にマウスを近づけた場合にも、「ToolTips」によりその機能表示を行うことにした。
【００３７】
「File Use Record」メニューは、ファイルの使用履歴である。使用履歴等は「Windows」のレジストリ(registry)に保存される。この実施例では、使用履歴は6個まで用意された。該当ファイル名をクリックすると、そのファイルがレジストリのデータを参照して開かれる。6個より前の履歴は残らない。
【００３８】
この実施例では様々なショートカットを用意して、便利な機能を簡単に使えるようにした。ショートカットの起動はマウスを右クリックすると現れるメニューの押し下げで行われる。
【００３９】
図９にはデータ領域のショートカット・メニューを表した。「Cut」メニューは、データ領域の選択した行を切り取り、同時に「Clipboard」に貼り付ける。「Copy」メニューは、データ領域の選択した行を「Clipboard」に貼り付けるだけである。「Paste」メニューは、現在「Clipboard」に存在するデータを、前記データ領域の形式に合わせて貼り付ける。「Clipboard」に置かれたデータは、他の「Windows」アプリケーションで自由に利用することができる。従って、外部において、本発明に固有のファイルをテキスト・ファイルから構成することを容易に行うことができる。
「Select All」メニューや「Clear Sellected」メニューは選択の自由を確保するために作られた。「Open」メニューや「Save
As」メニューを重ねて設けた理由は、取り扱うデータを暗号化装置か復号化装置の何れかで利用するのかの判定を確実にするためである。
【００４０】
図１０には公開鍵領域のショートカット・メニューを表した。「Refresh ListBox」メニューは、ソフトウェアの都合で改定された公開鍵のデータが正しく反映されていないときに使われる。「Edit
ParamList」メニューは、公開鍵に係る数値を個別に改定するときに利用される。「Open」メニューや「Save As」メニューを重ねて設けた理由は、同じである。
【００４１】
図１１は、「Edit ParamList」を実行したときのパラメータ・リストである。これは前記特許文献3に係る「双曲線暗号の設計ツール」と同じものである。ただ、このソフトウェアでは編集を主目的としていないので、ショートカット・メニューを省略してある。従って、公開鍵の一部訂正を行う程度の機能しか有していない。曲線パラメータを変更したときには、少なくともベースポイントの適合性だけは検証しなければならない。
【００４２】
図１２は、FTPファイルリストのショートカット・メニューである。ここではFTPクライアント・ソフトウェアの機能の一部を盛り込んである。
「Receive Ftpfile」メニューは、図6の「受信ボタン」と同じ機能を有する。「Rename」メニューは、FTPサーバ上の選択ファイルのファイル名を変更する。「Delete」メニューは、FTPサーバ上の選択ファイルを全て削除する。「View
FtpFile」メニューは、FTPサーバ上の選択ファイルを表示してくれる。「Save As」メニューは、FTPサーバ上の選択ファイルを別名保存してくれる。「Refresh
FtpList」メニューは、図6の「リスト更新」ボタンと同じ機能を有する。「Select All」メニューと「Clear Selected」メニューは、それぞれ選択の自由を確保するためにある。
【００４３】
図１３は、「Option」メニューに関する。上段図は、図1の左上にある「Option」メニュー下の「Ftp
Settings」メニューを押すと現れる。FTPサーバにログオンするための設定をここで入力する。一旦入力されると、レジストリに記録され「NextSet」ボタンで複数のFTPサーバを選択できるようになる。
下段図は、図1の左上にある「Option」メニュー下の「About」メニューを押すと現れる。このソフトウェアのバージョン情報等を開示する。
【００４４】
＜2次双曲線群の理論＞
これから後は本発明に係る暗号方式の主要な理論的背景である2次双曲線群の理論を開示する。この開示は、本発明に係る暗号方式の数学的な背景を強化するものである。理論の説明の多くは上記特許文献１、２、及び３に開示されている。ここではその後に明らかになった成果を中心に記載したい。
【００４５】
[拡張オイラー関数の計算] 
2次双曲線群の拡張オイラー関数(GCD totient)Φ(kg)は、法ｎが生成するm=ω(n)個の生成群の次数kgを有するもので、共役部分群となっているものの個数を与えることが知られていて、数学的にも重要な関数のひとつと考えられる。しかし、法ｎに依存しているので、Ф(x)はｎ値が定まらないと決まらない、多値関数である。
x値を与えてФ(x)の可能な取り得る値を定めるには、ｘを素因数分解して、その素因数の組み合わせに付き全て検討し、下記に示す全ての条件を満たす組み合わせを残す方法を採用する。他方で、２次双曲線群では判別式Ｄの性質により位数が異なることから、Jacobiの記号で(D/pi)=+1,-1の何れの場合も考慮する必要がある。
【００４６】
Ф(x)の具体的計算は、x=kq(部分群位数kiの最小公倍数)と考えて行う方法（以下、LCM推定法という。）で行う。法がnである場合に、
【数１】
2012132953.tif 000003
とし、各素因数「
2012132953.tif 000004
より派生する」部分群Q(x)の位数kiは、一般的に様々な形があると予想されるが、２次双曲線群では法n=peiの下でJacobiの記号を用いて
【数２】
2012132953.tif 000005
【数３】
2012132953.tif 000006
となる。部分群位数kiは、判別式D値が平方剰余であるか平方非剰余であるかによってその値が定まる。ここで「
2012132953.tif 000007
より派生する」と記載した理由は、法n=peiの場合は法n=pの構造が積層した構造を有するだけで、法n=pの構造が基本になっている、と考えるからである。
派生した部分群Q(x)は、法n=peiの下では以下のように定義される。
【数４】
2012132953.tif 000008
群演算「＋」は、Z/nZで実質的3次関数である2次双曲線と直線との交点が作る半演算を2回繰り返した操作と等価である。P(x)はベースポイントであり、kgが部分群位数である。x値が定まるとP(x)値が定まり、これをベースポイントとするQ(x)も定まる。なお、2次双曲線群では、t値が異なることにより出現の順番は異なるが、全体としては共通の元が出現する部分群同士を「共役」であるという。
【００４７】
因みに２次双曲線群Gはその元Pにつき以下のように定義される。
【数５】
2012132953.tif 000009
ここで群位数kは部分群位数kiの積、kqはそれ等の最小公倍数(LCM) であり
【数６】
2012132953.tif 000010
、
2012132953.tif 000011
である。一般的に群位数k と最大位数kqとは異なる。群位数k は群Gの元の個数であって、最大位数kq は巡回群の最大周期である。(数4)式との関係ではkg|kqである。但し、ｍ値は法nを構成する異なる素因数の個数であり、「O」は群Gのゼロ元である。
仮にJacobi の記号の正負の組み合わせを採用すると拡張２次双曲線半群が出現する。一般的には法nは合成数であるが、実用的な２次双曲線群G はn=pやn=peの下で成立するものに留まる(m=1)。また、部分群の最大位数kqは部分群位数ki等の最小公倍数(LCM)であるので、最大位数kqに含まれる異なる素因数は群位数kのそれと一致する。
当然Gの元 
2012132953.tif 000012
につき、
2012132953.tif 000013
のように加法群が成立する。これに対し部分群Q(x)では、
2012132953.tif 000014
につき
2012132953.tif 000015
のように群演算「＋」に関し閉じていて、Gの部分集合を形成する。群演算「＋」は、Z/nZ上の加算と区別できるので同じ記号を使用した。
【００４８】
このときGCD totient Φm(x)は、
【数７】
2012132953.tif 000016
で計算できる。但し、簡略化のためΦm(x)をΦ(x)と記載することがある。
特にx=kqのときは、理論的な証明がある。そこで、Ф(x)が与えられたとき、本発明に係る「LCM推定法」に従い、x=kqと考えてその値を求めてみる。x=kqであれば、ｘ値の素因数は、部分群Q(x)の位数kiの素因数を全て含み、かつ、その次数は最大値に一致する。このことから、位数kiを推定し、法ｎを確定する。
【００４９】
図１４は、Ф(x)の具体的計算を行うフロー図である。Ф(x)は多値関数なので、1個のФ(x)を与える法ｎは、一般に複数個存在する。このフロー図は、最初にｘ値の素因数分解を行い、次に部分群位数kiの「候補」である約数ｄの組を作って各約数の満たすべき約数要件及び位数要件をチェックし、可能性の有る約数ｄをリスト化しておいて、最後にLCM要件及び特定の定理を満たすか調べる、という方法を採用した。
（１）[素因数分解]  最初に値ｘを素因数分解して、全ての素因数を求める。例えば、m個の素因数で
【数８】
2012132953.tif 000017
とする。但し、x=kq, ei>=1である。
【００５０】
（２）[LCM要件]  次に、ｘをn個の約数ｄの組でLCMを使って
【数９】
2012132953.tif 000018
と表す。各diは言わば部分群位数kiの「候補」である。各diは素因数qiから派生するので全て異なる値でなければならない(当該約数は共通の素因数qiを有していても良い)。同一の値が有れば、それは同一の素因数piを法ｎ(値ｘではない)が有していたことになり、法ｎの素因数分解の結果に反するからである。約数ｄiはx=kqの約数でもあるので、約数ｄiの素因数は全てｘ値に含まれており、その次数はkqの次数と同じか小さく、かつ、kq=[d1,,,,dm]でなければならない(以下、LCM要件と言う)。全てのdiの組み合わせで、LCM要件を満たさない組み合わせは、kiの「候補」の組ではなかったことになる。なお、約数ｄiは、di>1であることから、少なくとも１個の素因数を有していなければならない。
【００５１】
（３）[約数要件]  約数ｄの定め方を記載する。
ここでの考え方は、各約数に、各素因数qiの次数(最大でei個)を振り分ける組み合わせであり、振り分けない場合も含める。その全ての組み合わせは
2012132953.tif 000019
通りである。
即ち、
【数１０】
2012132953.tif 000020
で0≦eij≦eiである。但し、上記LCM要件、（数９）式を満たさなければならない。若干複雑になるが、d1を選択した後はx/d1の中からd2の候補を選択するという方法を採用したとすれば、約数の組を高速に検証することができる。
【００５２】
（４）[位数要件]  各ｄを調べ、kiの各要件(位数要件と言う。) を満たすかを調べる。上記（数２）式若しくは（数３）式が満たされているのならば、
[1]dj>1でなければならない。＞約数に１は含めない。
[2]kq=[d1,,,dm]でなければならない。＞（２）に従えば自動的に満たされる。
[3]求められた素因数piは全て素数(１を除く)であり、かつ、
[4]全ての素数が異ならなければならない。＞（３）に従えば自動的に満たされる。
【００５３】
２次双曲線群では群位数kiは
【数１１】
2012132953.tif 000021
であり、di=kiであるとすれば、次の２条件の何れかが満たされていなければならない。
[1]diの最大素因数pMがpiに一致する場合はkM=kiである。その理由は(pi±1)/2から生じる素因数は常にpiによりも小さいからである。そこで、検証ではdiの最大素因数pMeMを求め、それにより
【数１２】
2012132953.tif 000022
を計算し、diと一致するか確かめる。(数１２)式で指数がeM-1でないことに注意する。
[2]diの最大素因数がpiに一致しない場合には、(pi±1)/2=diを確かめる。
何れの場合でも一致しない場合には、当該diは位数要件を満たさず、ｘ値のその様な約数diを有する分解は意味を持たない。なお、求められた素因数piは全て素数(１を除く)でなければならないが、この検証では素因数分解しているので、その確認は済んでいる。
【００５４】
（５）[リスト化]  このようなdiをリスト化して置き、その組み合わせで上記LCM要件(数９)式が成立するのかを検証する。同じdi値は含まれていない、ことに注意する。また、約数の定義によりdi>1である。diを小さい順にリスト化し、その一部組み合わせの最小公倍数(LCM)がｘ値と一致する組み合わせを考える。具体的には、N=2k通りの組み合わせを考え、当該約数の組み合わせの最小公倍数[...dj...]がｘ値と一致するか検証する。ただ、計算量を減らすために、当該約数の組み合わせの積Πdjがｘ値より小さい組み合わせは除かれる。ｘ値の最小公倍数との性格に因る。
【００５５】
（６）LCM要件を含めた上記全ての要件を満たす約数ｄの組み合わせ(複数)を解、即ちkiの組とする。
【００５６】
（７）kiの組が定められると、法nを決定できる。
[1]diの最大素因数pMで位数kMを求め、dx=kMである場合、法ｎへの寄与はpMeM+1である。指数部は最大素因数の指数値eMではなく、eM+1である。
[2]dx=kMでなかった場合、法ｎへの寄与はpi=2di-1であって、pMではない。
【００５７】
（８）複数のФ(x)値のうち、φ(x)で割り切れないものを除外する。法ｎが合成数で、生成される部分群がどの様な構造であっても、定理により、Ф(x)/φ(x)は整数でなければならない。
【００５８】
図１４のФ(x)の具体的計算を行うフロー図に従い、具体的な計算を行ったので、その計算結果に付き検証してみる。この計算例はx=234の場合で、法nとФ(x)値を求めてみた。
φ(234)=72
Φ(234) [mod 13689]=72 for(D/p)=-1
Φ(234) [mod 177957]=72 for(D/p)=-1
Φ(234) [mod 2313441]=72 for(D/p)=-1
Φ(234) [mod 369603]=216 for(D/p)=+1
Φ(234) [mod 62462907]=216 for(D/p)=+1
なお、(D/p)=+1と(D/p)=-1の場合は、別々に計算している。
本発明に係る「LCM推定法」により発見された法nの個数は5個であった。
【００５９】
求められた拡張オイラー関数値の検証を行ってみた。
x=234, n=13689ではΦ(234)=72で、オイラー関数値φ(234)と一致する。
n=13689=3^4*13^2で、k1=3^3(3+1)/2=54, k2=13(13+1)/2=91で、kq=(54,91)=4914である。
以下は、n値を指定して法nを先に確定した場合の、前記特許文献３に係るツールによる自動計算のリストである。
「
EHCG modulo: n=13689=3^4*13^2
GruopRank: k=4914=54*91
Max rank of sub-groups: kq=4914;
The number of Q(x) with kg is total Φ(kg).
φ(4914)=1296;Φ(4914)=1296;Rc=1;Rt=1;Φ(4914):=+4914*1-2457*1-1638*1
+819*1-702*1+351*1+234*1-117*1-378*1+189*1+126*1-63*1+54*1-27*1-18*1+9*1
--------(中間省略)--------
φ(234)=72;Φ(234)=72;Rc=1;Rt=1;Φ(234):=+234*1-117*1-78*1+39*1-18*1+9*1+6*1-3*1
--------(中間省略)--------
Σφ(d|kq)=4914;ΣΦ(d|kq)=4914=1*kq;
Σ(-1)^(kq/d)Φ(d|kq)=0
=-1296+1296-432+432-216-144-108+216+144-72+108-72-36+72+72-24+36-18-12+24+18-12+12-6-6+12+6+6-2+2-1+1
Presentation of the GCD Set
Dim1: h(1)=54; h(2)=91; Dim2: h(12)=1; 
」
上記リストで、下線部の「φ(234)=72;Φ(234)=72;」で上記計算結果との一致を確認することができる。
【００６０】
[拡張オイラー関数の一般化] 
前記特許文献３で、
【数１３】
2012132953.tif 000023
の証明が残っていた。この式は、kg=1,kg=kqでは成立するが、その中間(kg|kq)で成立することの証明ができていなかった。しかし、群演算の集計結果はその成立を支持していた。
【００６１】
[定理１−１]
2012132953.tif 000024
及び
2012132953.tif 000025
のとき、kg|kqに対し
（数１３）式が成立する。
【００６２】
[証明]
いま、
2012132953.tif 000026
とすると
2012132953.tif 000027
であり、
2012132953.tif 000028
としたとき、
2012132953.tif 000029
、
2012132953.tif 000030
、
2012132953.tif 000031
と対応をつけられる。
従って、唯一成立する（数１３）式で、
【数１４】
2012132953.tif 000032
の対応が成立する。
【００６３】
図１５に拡張オイラー関数の一般化に関する包含関係を示しておいた。
kg|kqの条件化では、図１５の上段図より
2012132953.tif 000033
2012132953.tif 000034
2012132953.tif 000035
が成立する。
更に、d|kgで、図１５の下段図より
2012132953.tif 000036
であるから、
2012132953.tif 000037
が成立する。
[q.e.d]
【００６４】
これは、メービウスの反転公式を使うと、kg|kqに対し
【数１５】
2012132953.tif 000038
を意味する。
【００６５】
[拡張オイラー関数に係る定理の証明の厳密化] 
前記特許文献３で、
【数１６】
2012132953.tif 000039
という定理を証明する際に、
【数１７】
2012132953.tif 000040
を使っていたが、その証明がズサン(宜い加減)だったので、もう少し丁寧に説明する。
【００６６】
[定理２−１]
法ｎの素因数piから生じる部分群の位数kiが、単一の素因数ｐのみで構成され、かつ、ki=kqのものがt個存在するとき、
【数１８】
2012132953.tif 000041
である。但し、
2012132953.tif 000042
及び
2012132953.tif 000043
とする。
【００６７】
[証明]kiが単一の素因数ｐのみで構成されるとき、
2012132953.tif 000044
であって、
2012132953.tif 000045
、
2012132953.tif 000046
と置ける。 
従って、ei=efとなるものがt個存在し、ei=ef-1となるものがu個存在し、それ以下の総個数をv個とするとする。
また、kqは最小公倍数であるので、
2012132953.tif 000047
としたとき
2012132953.tif 000048
、かつ、群位数  
2012132953.tif 000049
である。
【数１９】
2012132953.tif 000050
となる。
ただし、es=tef+u(ef-1)+vである。従って、
2012132953.tif 000051
となる。
これを群位数kと
2012132953.tif 000052
の最小公倍数kqで表せば、
2012132953.tif 000053
となる。
[q.e.d]
【００６８】
[定理２−２]
法ｎの素因数piから生じる部分群の位数kiが、単一の素因数ｐのみで構成され、かつ、前記部分群が2次双曲線群であるとき、
【数２０】
2012132953.tif 000054
である。但し、
2012132953.tif 000055
及び
2012132953.tif 000056
とする。
【００６９】
[証明]2次双曲線群では法ｎの1の素因数から生成される部分群位数kiが前記単一の素因数ｐのみで構成され、
2012132953.tif 000057
という形をしていた場合、
全て
2012132953.tif 000058
という形をしている。仮に、e≧1で
2012132953.tif 000059
という形であれば、素因数がｐ以外に存在する(pj)ことになり、矛盾するからである。
また、i≠jで、ki=kjならば、
2012132953.tif 000060
となって、矛盾する。従って、部分群の位数kiはその中に同一のものがない、ということになる。
これは[定理２−１]で、t=1を意味する。
[q.e.d]
【００７０】
[定理２−３]
2次双曲線群では
【数２１】
2012132953.tif 000061
が成立する。
【００７１】
[証明]（数１７）式では、
2012132953.tif 000062
であるので、全てのkiが単一の素因数pにより構成され、[定理２−２]の適用がある。ここで、（数２１）式で
左辺＝
2012132953.tif 000063
である。然るに、
2012132953.tif 000064
であるから、
2012132953.tif 000065
と表せ、左辺＝
2012132953.tif 000066
である。
[定理２−２]により2次双曲線群では
2012132953.tif 000067
であるから、
左辺＝
2012132953.tif 000068
[q.e.d]
【００７２】
（定理２−３）の証明から、一般の素数pにつき（数２１）式が成立するが、p=2以外で左辺＝０になることはない。p=2は
（数１７）式  
2012132953.tif 000069
を意味し、特殊ケースとして成立するだけである。
【００７３】
[2次双曲線群と置換群]
2次双曲線群は巡回群の一種であるので、置換を定義することができる。2次双曲線群の元はP(x)という形をしており、例えば（数４）式に係る位数kgを有する部分群Q(x)で、ベースポイントP(x)につき演算結果で出現する元を
2012132953.tif 000070
等と2次双曲線群の元の形で記載すれば、
【数２２】
2012132953.tif 000071
とkg個の元で表すことができる。但し、
2012132953.tif 000072
である。また、明らかに
2012132953.tif 000073
である。
【００７４】
ここで  同一部分群位数kgを有する部分群間の置換  
2012132953.tif 000074
を考えてみる。
【数２３】
2012132953.tif 000075
関数Iは添え字変換である。Q1(x)がQ(x)の共役部分群であれば、含まれる元は一致するので、「置換」を定義することができる。しかし、その元の出現する順番は、ベースポイントと群演算「＋」により制限されている。即ち、勝手に項の入れ替えをすることはできない。他方で、「出現の順番」を無視すれば、位数kgの共役部分群は1個しかないことになる。これは、群演算を考慮していないので、意味を持たない。従って、「出現の順番」を考慮すると、置換Sが常に存在する、と言うことはできない。しかし、以下に記載するように、特殊なケースが存在する。
【００７５】
さて、数学上の置換は、全ての元につき1対1で対応させる。置換同士の積も定義できて、何れかの元Xから他の元Yへの置換と元Yからその他の元Zに対応させる組み合わせになる。しかし、2次双曲線群では全ての元、置換を取り扱うことができず、その一部のみに止まる。部分群位数kg|kqが同一の共役部分群(
2012132953.tif 000076
個)同士を対応させる置換は、kg個の中から2個を選択する組み合わせであるので、形式上
2012132953.tif 000077
の置換が存在する。「形式上」としたのは、乗法群と異なり、群演算がベースポイント(始点)に依存しているので、群演算の途中で出現する元は必ずしも同一の部分群位数kgを有するベースポイントにはならず、一般に位数kgの約数d|kgを有するからである。或る部分群Q(x)のベースポイントP(x)のt回目の演算で出現する元P1(x)=tP(x)は、(t,kg)=1のときのみ同一の部分群位数kgを有するベースポイントになり、従って同一の部分群位数kgを有する別の共役部分群Q1(x)を与える。
【００７６】
法nが素数pである場合であっても、当該素数ｐがGermann素数でない場合には部分群位数kgは素数にならず、従って(t,kg)=1ということにもならない。しかし、法nがGermann素数であれば、ゼロ元Ｏを除く全ての元は同一の部分群位数kgを与えるので、従来の置換群を定義できることになる。特殊ケースである。置換Sはゼロ元Ｏを除いたkg-1個の元の間で定義され、そこではベースポイントの異なるkg-1個の部分群Q(x)が存在するが、元の出現の順番が固定されていることに注意しなければならない。この出現の順番は、演算に係る関数、より正確には関数パラメータに依存して定まり、どのような選択をすればその順番を指定できるか、未だ判っていない。従って、残された自由度はベースポイントの入れ替えのみである。これは実質的に１次の置換しか有しないことを意味している。
【００７７】
[2次双曲線群とシローの定理]
群論におけるSylowの定理は、以下のようである。
[Sylowの定理] p を素数、G を群とする。|G|＝mpn、(m，p)=1ならば次が成り立つ。
（１）位数が pnになる部分群が存在する。これを G のSylow
p-部分群という。
（２）二つのSylow p一部分群は共役である。即ち、Pl、P2をSylow
p-部分群とする
と、或るx∈Gが存在してPl＝xP2x−1となる。
（３）任意のp-部分群は或るSylow p-部分群に含まれる。
（４）Sylow p-部分群の個数はpを法として1に合同で、|G|の約数である。
【００７８】
次に、Sylowの定理を2次双曲線群で検証してみる。
2次双曲線群の位数ｋは法n=peで、
【数２４】
2012132953.tif 000078
であり、m=(p+1)/2、n=e-1とすれば、ｍはｐ以下の整数であるので、明らかに(m，p)=1である。従って、形式上シローの定理が適用できる。
【００７９】
（１）位数が pnになる部分群が存在する。
2次双曲線群の位数ｋはk=mpnの形であるので、素因数ｐの最大べき数nは最大位数kqの有する素因数ｐのべき数と一致する。従って、位数kg=pnはkqの約数であり、このような位数kgを有する部分群は常に存在する。但し、群位数ｋの約数であっても、kqの約数とならないものは存在できない。
【００８０】
（２）二つのSylow p一部分群は共役である。
2次双曲線群では、同一の位数kgを有する部分群は、互いに共役である。即ち、部分群Q(x)のベースポイントP(x)で、位数kgを有するものの作り出す元全体が部分群Q(x)に含まれ、その出現の順番が異なるだけである。部分群Q(x)の全ての元の中で、位数kgと共通の素因数を有しない順番t((kg,t)=1,tP(x)=P(y))を有する元P(y)だけが、位数kgを有する部分群Q(y)を作り出し、その個数は法n=pのときはφ(kg)個、一般にはΦ(kg)個である。ただ、「共役」の概念が異なっていて、「出現の順番」が考慮されなければならない。
【００８１】
（３）任意のp-部分群は或るSylow p-部分群に含まれる。
2次双曲線群では、任意の部分群は最大位数kqを有する部分群に包含される。任意のp-部分群は、その位数が素因数ｐの最大べき数nを持つ位数kg=pnの約数であるので、当該位数kg=pnを有する部分群＝Sylow p-部分群に包含される。
【００８２】
（４）Sylow p-部分群の個数はpを法として1に合同で、|G|の約数である。
残念ながら、この主張は2次双曲線群では、成立しない。
ここで（４）でSylow p-部分群の個数に言及していることに着目する。2次双曲線群では、位数kgの部分群の個数は
2012132953.tif 000079
個であった。（４）によれば、
【数２５】
2012132953.tif 000080
及びkg=pnで、
2012132953.tif 000081
でなければならないことになる。
しかし、例えば（数１９）式より法ｎの素因数piから生じる部分群の位数kiが、単一の素因数ｐのみで構成され、かつ、ki=kqのものがu個存在するとき、
2012132953.tif 000082
となる。
2012132953.tif 000083
が満たされないことは明らかである。
【００８３】
この原因は、シローの定理が乗法群を対象とし、離散対数に係る有限群を対象としていないからである。即ち、シローの定理では群演算につき制限があることが見落とされており、乗法群と加法群である2次双曲線群とはその構造が全く異なる。例えば、一般にｋ個の元の中で任意にkg個を選択して有限群(2次双曲線群)を構成する、ということができない。
2次双曲線群ではｋ個の元の何れもが位数kq以下の部分群の何れかにに属するが、元の全部が入っている群(kg>kq)は存在せず、同じ位数kgであっても、その元の組み合わせは自由ではない。
【００８４】
また、既約剰余群Z/pZの「位数」が
2012132953.tif 000084
であるのに対し、2次双曲線群では法ｐを有する1次(m=1)の2次双曲線群の「共役な群の個数」が
2012132953.tif 000085
である。概念的に上位の意味を有する。従って、乗法群の位数（元の個数）に関する性質が、2次双曲線群では「群の個数」につき成立することがある。
【００８５】
2次双曲線群では群位数
2012132953.tif 000086
の関係にあるが、一般に群位数ｋが部分群の個数
2012132953.tif 000087
で割り切れる、ということにはならない。しかし、2次双曲線群のSylow
p-部分群に関しては、（数１９）式より、ｐ群の個数
2012132953.tif 000088
は
2012132953.tif 000089
の約数になることがある。また、2次双曲線群では、常に部分群の最大位数kqは群位数ｋの約数である。更に、法nの2次双曲線群の場合に(m>1)、位数kgを有する部分群の個数
2012132953.tif 000090
は
2012132953.tif 000091
で割り切れることが証明されている。
【００８６】
[拡張オイラー関数の上限]
拡張オイラー関数の積表示は、前記特許文献３に示しておいた。
それによれば、x|kqなるx値につき
【数２６】
2012132953.tif 000092
であり、kiは法nの素因数から派生する部分群の位数、
2012132953.tif 000093
は、それぞれ値nと値xの異なる素因数の個数で、αjは当該素因数pjの指数部が値xのそれに等しいかより大きいkiの個数である。従って、
2012132953.tif 000094
である。一般的に  
2012132953.tif 000095
及び
2012132953.tif 000096
の双方が成立するので、
2012132953.tif 000097
としたとき
【数２７】
2012132953.tif 000098
と評価できる。この右辺で、「x|kqなるx値」という限定から値xの素因数の個数m1はkqを構成する素因数の個数mに等しいかより小さい。従って、
2012132953.tif 000099
である。Jm(x)はｍ次ジョルダン・オイラー関数である。拡張オイラー関数がオイラー関数で割り切れることを考慮すると
【数２８】
2012132953.tif 000100
という極めて簡明な関係が成立していることが知れる。
本発明にかかる拡張オイラー関数(GCD totient)Φ(x)はジョルダン・オイラー関数(Jordan’s
totient)とオイラー関数(Euler’s totient)の中間に位置し、汎用性の高い関数であったわけである。
【００８７】
[予想される定理]
(数２７)式及び(数２８)式から拡張オイラー関数に係る恒等式が成立するのではないか、と予想している。これは、以下に記載するジョルダン・オイラー関数に係る恒等式と関連する。
[定理３−１]  恒等式
【数２９】
2012132953.tif 000101
を証明する。
【００８８】
[証明]
ジョルダン・オイラー関数の積表示  
2012132953.tif 000102
を用いたとして、その積はｈに含まれる素因数に亘るので
2012132953.tif 000103
個の素因数に及ぶ。
2012132953.tif 000104
、
2012132953.tif 000105
とすると、
2012132953.tif 000106
2012132953.tif 000107
2012132953.tif 000108
然るに
2012132953.tif 000109
につき  
2012132953.tif 000110
であるから、
2012132953.tif 000111
である。
[q.e.d]
m=1の場合が、オイラー関数の恒等式である。
【００８９】
上記（定理３−１）、 (数２７)式、及び(数２８)式から下記の拡張オイラー関数に係る恒等式が成立すると予想する。
[定理３−２]  h1|kq,h2|kqにつき
【数３０】
2012132953.tif 000112
が成立する。但し、（数６）式の関係にあり、
2012132953.tif 000113
とする。
[証明]この定理は特許出願の直前に考え付いたので、まだ証明されていない。
【００９０】
先の数値計算リストで、
EHCG modulo: n=13689=3^4*13^2
GruopRank: k=4914=54*91
Max rank of sub-groups: kq=4914;であったが、
例えばh1=6,h2=39,h=3で、h1h2=234,k1=54,k2=91
Φ(234)=72, Φ(6)=2, Φ(39)=24, Φ(3)=2,Π(ki,h)=3x1=3であり、
それ故72=2x24x3/2
となって、その成立を推定できる。
【００９１】
[2次双曲線群と1次変換]
2次双曲線群では2次双曲線  
【数３１】
2012132953.tif 000114
と直線との交点をその演算結果とする半演算を2回行うことで群演算を定義していた。このとき、群の構成条件に
【数３２】
2012132953.tif 000115
という要件が付加されていて、判別式
2012132953.tif 000116
に依存してその群位数kが定まり、
例えば  法n=peの場合は
【数３３】
2012132953.tif 000117
であった。
【００９２】
2次方程式の判別式
2012132953.tif 000118
については、1次変換
【数３４】
2012132953.tif 000119
に対し、
【数３５】
2012132953.tif 000120
になるので、判別式Dの平方剰余に関する性質は不変である。即ち、
【数３６】
2012132953.tif 000121
である。
これは、2次双曲線群の位数にかかる性質が1次変換でも変わらないことを示す。
【産業上の利用可能性】
【００９３】
以上のように、双曲線暗号は、２次双曲線群という新しい数学的な背景を基礎に構築された。特に、位数が一定であるという利点を生かして、楕円曲線暗号と比べて暗号装置を容易に構成でき、かつ、容易に解読困難性を付加できる優位性を有していた。このソフトウェア・装置では、そのような理論的背景の上に実際的な暗号アプリケーションを確立することができた。暗号文の作成と復号を一体のものとして有し、装置状態の保全、バイナリ・ファイルへの対応、及びネットワークへの対応など、実際的な機能を盛り込んである。またソフトウェアとしても、「装置結合線」を使って装置間の連動を明確にすることができたので、イメージ上、若しくは概念的な使い易さが向上している。
更に、2次双曲線群の理論面では、従来の乗法群との差異が明確になり、離散対数を背景とする加群としての特有の性格が明らかになった。「有限群」の歴史上画期的である。
【００９４】
暗号の世界では、ＤＥＳ、ＲＳＡ暗号が依然有用と考えられているが、要求されるセキュリティのレベルも向上して、ビット数の増大で計算負担も増大し、暗号の簡単な利用ができない状況に至っている。双曲線暗号は、少ないビット数計算でも多ビット暗号と等価の計算困難性を容易に付加できるので、次世代の暗号として普及する可能性がある。
双曲線暗号の広告・普及は依然として進んでいないが、数学的な優位性を背景に次第にその認識が深まると考えている。
【図面の簡単な説明】
【００９５】
【図１】本発明に係る暗号化・復号化装置の全体図である。
【図２】本発明に係る暗号化装置の図である。
【図３】本発明に係る復号化装置の図である。
【図４】本発明に特有のファイルの構成図である。
【図５】本発明に係るデータファイルの印刷見本である。
【図６】本発明に係るFTP制御BOXとFTPサーバの図である。
【図７】本発明に係る暗証端末の図である。
【図８】本発明に係る暗号化・復号化装置の「File」メニューの図である。
【図９】本発明に係る暗号化・復号化装置のデータ領域のショートカット・メニューの図である。
【図１０】本発明に係る暗号化・復号化装置の公開鍵領域のショートカット・メニューの図である。
【図１１】「Edit ParamList」を実行したときのパラメータ・リストである。
【図１２】本発明に係る暗号化・復号化装置のFTPファイルリストのショートカット・メニューの図である。
【図１３】本発明に係る暗号化・復号化装置の「Option」メニューの図である。
【図１４】2次双曲線群の理論によりФ(x)に係る法nを求める方法のフロー図である。
【図１５】2次双曲線群の理論により拡張オイラー関数の一般化を説明する図である。
【符号の説明】
【００９６】
省略した。
【図１】
2012132953.tif 000122
【図２】
2012132953.tif 000123
【図３】
2012132953.tif 000124
【図４】
2012132953.tif 000125
【図５】
2012132953.tif 000126
【図６】
2012132953.tif 000127
【図７】
2012132953.tif 000128
【図８】
2012132953.tif 000129
【図９】
2012132953.tif 000130
【図１０】
2012132953.tif 000131
【図１１】
2012132953.tif 000132
【図１２】
2012132953.tif 000133
【図１３】
2012132953.tif 000134
【図１４】
2012132953.tif 000135
【図１５】
2012132953.tif 000136