(57)【要約】      （修正有）【課題】拡張オイラー関数(GCD totient)等の整数論的関数のように増加等の程度が極めて遅く、例えばｘ値につきloglogｘ程度の増加率であり、通常のグラフ表示ではその特徴を表示することができないものに対し表示を優先した見易い関数表示を得ることができる「対数グラフ」の作成、表示方法を提供する。【解決手段】グラフ上で構成されたＸＹ軸を常用対数目盛で表示し、そのX値(引数値)若しくはY値(関数値)ではなく、グラフ表示上の整数点の座標を換算したＸ値若しくはＹ値を用いて、そこでの関数値の表示を行う。その際、ＸＹ軸に付したラベルを使用して、平行移動表示のような柔軟な動的表示を可能にする。【選択図】図１
2015125201.tif 000002
【特許請求の範囲】
【請求項１】
整数論的関数の対数グラフをＸＹ軸、座標補助線、及び座標補助ラベルで構成し、当該対数グラフを画面上で表示する場合において、前記座標補助ラベルを参照して前記画面の表示ドットのＸ値及び関数値（Ｙ値) を決め、前記画面上の当該ドット位置に図形を表示する方法。
【請求項２】
請求項１の表示方法において、前記座標補助ラベルの更新に基づいて新規グラフを再表示するに際し、更新された前記座標補助ラベルを参照して前記画面の表示ドットの位置を決め、前記画面上の当該位置に図形を表示する方法。
【請求項３】
請求項１の表示方法において、画面上のマウスのクリック若しくは表示位置のＸ値の指定により定まるＸ値及び関数値（Ｙ値)で定まる指定点に図形表示する場合において、当該指定点に図形表示し、併せて当該指定点のＸ値及び関数値（Ｙ値)を前記画面上に表示する方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、２次双曲線群の離散対数を利用した双曲線暗号の設計用ソフトウェアに関連して創作され、対数群の諸要素及び拡張オイラー関数(GCD totient)を表示若しくは動的再表示するに際し開発された、対数目盛グラフの構成方法及び装置に関するものである。
【背景技術】
【０００２】
2005年の７月に楕円曲線暗号に代わる双曲線暗号(Hyperbolic
Curve Group Cryptosystem)の探索において２次双曲線群(Quadratic Hyperbolic Curve Group)が発見された後、その成果は２００７年２月特許出願された「二次双曲線群を使用する鍵生成方法、復号方法、署名検証方法、鍵ストリーム生成方法および装置」(特許文献１)及び２００８年３月の特許出願「双曲線暗号の鍵生成方法」(特許文献２)に開示されるに至った。その後、「双曲線暗号の設計ツール」(特許文献３)が特許出願され、双曲線暗号の利用に便宜が図られたし、アプリケーションとしての暗号作成ツールも「仮想サロゲート・ペアを用いた双曲線暗号の構成方法及び装置」(特許文献４)として開示され、最近そのソフトウェアも「Easy PublicKey CryptoSystem using Logarithmic Group」として作成されるに至った。更に、これ等の特許出願公開後、開発されたソフトウェアが「HCG Test Tools」等として米国及び日本で公開され、無料提供できる状態に置かれている。
同時に２次双曲線群に係る理論的背景も強化された。これは上記各ツール・装置の数学的な基礎を与えるものであるので、第三者の理解のためにも、その基盤を強固にしておく必要性があったからである。
【特許文献１】特開2008-203548号(米国特許庁US20100020964)
【特許文献２】特開2009-223035号
【特許文献３】特開2011-137897号
【特許文献４】特開2012-132953号
【０００３】
双曲線暗号は、２次双曲線群という新しい数学的な背景を基礎に構築されているので今日に至っても未知な領域が多い。２次双曲線群は離散対数を基礎とする加法群であって巡回群の一種であるが、従来の乗法群を基礎とする有限群とは一線を画す性質を有している。例えば、発見された拡張オイラー関数(GCD Totient)は２次双曲線群の共役部分群の個数を与える明確な意味を有していた。
これは、２次双曲線群が乗法群よりも概念上一つ上位のカテゴリーに属することを意味し、謂わば「対数群」(後述)としての性格を有している。また、拡張オイラー関数は自然なオイラー関数(Euler’s totient) の拡張になっていて、オイラー関数に成立する定理が類似の形で拡張オイラー関数に係る定理として成立することが分っている。
双曲線暗号では利用する２次双曲線群(複数)の位数が一定であるという利点を有していて、楕円曲線暗号と比べて暗号装置を容易に構成でき、かつ、容易に解読困難性を付加できる利点を有していた。特に、少ないビット数での暗号装置を多数組み合わせる方式で解読困難性を増加させる方法は、32ビットもしくは64ビットの高速プロセッサー処理により短時間に暗号を作成し、若しくは復号させる方法に、よく適合している。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
2008年に「双曲線暗号の設計ツール」(特許文献３)が特許出願され、双曲線暗号の利用に便宜が図られたが、その際拡張オイラー関数の重要な意義に鑑み、簡易なグラフ・ツールを作成し、ソフトウェアにも組み込んでおいた。しかし、拡張オイラー関数等の整数論的関数はその増加等の程度が極めて遅く、例えばloglogx程度の増加率であり、通常のグラフ表示ではその特徴を表示することができないものが多い。狭い範囲での単純な関数値や直線の表示しかできないのである。そこで対数軸グラフを作成し、幾分でも広範囲の表示ができることにしたい。
しかしながら、実際にどのようにして「対数軸グラフ」の作成、表示、特に動的再表示を行うかの具体的な方法はまだ知られていない。また、動的再表示の際に、グラフ上でマウスで特定した点の実座標を取得する方法、その他の表示は具体的にどうすべきであろうか。更に、広範囲の表示を可能にするために表示の平行移動等ができれば便利であるが、この方法も具体的にどのようにすべきだろうか。
対数軸グラフではX軸が大きくなるとその聖数点が急増し、実際には全部の表示が困難になる。この対処方法も考えねばならないが、実際には所定の規則下で間引いて表示することになるだろう。
また、拡張オイラー関数(GCD Totient)の重要性に鑑み関連する諸々の値、例えば、オイラー関数値φ(kg)、拡張オイラー関数値G(kg)、その相互比(ratio)、最大位数kq、該当位数kg、法ｎ等を表示することも必要であるので、前記動的再表示に際し表示上格別の工夫を行う必要がある。
本発明が目的とする対数軸グラフの実現は容易には構成できないのである。
【課題を解決するための手段】
【０００５】
本発明では、表示領域の中にX軸及びY軸を交差して構成し、「座標補助線」及び「座標補助ラベル」を使用して、その常用対数の目盛を表示する。それ等は初期状態画面（リセット状態）のときに、既に表示されている。座標補助線間は、表示領域の一部であるので有限個の表示点しか有していない。当該表示点の個々のX値を知るために、最初に左側X軸座標補助ラベルが参照され、座標補助ラベルと座標補助線の対応表によりそのX値が決定される。ここでは、前記有限個の表示点、特に現に表示しようとする表示ドットの座標値が決められ、これを表示点のX値とする。次に当該X値から関数値が計算され、これがY値に相当する。しかしながら、このY値が表示領域の如何なる表示点に相当するか、そのままでは分らない。そこで、今度は逆のプロセスが採用される。今度は当該Y値がY軸座標補助ラベルのY値と比較され、下側Y軸座標補助ラベルが決定される。更に、当該Y値がY軸表示点の何れに近いかでそのY軸近似点が決定される。その後、前記Y軸近似点に対応する表示ドットに表示が行われる。その表示は、指定に従い、円表示、x文字表示、若しくはX軸との間の直線表示で行われる。「座標補助ラベル」を重点的に使用する表示方法である。
本発明では、座標補助ラベルを使用する動的表示も行う。表示範囲には限界があるので、特に対数軸の平行移動等ができると便利である。座標軸の移動が指示されたとき、最初に初期状態画面（リセット状態）が表示される。これは、移動後の姿であるので、当然に「座標補助線」及び「座標補助ラベル」が更新されている。その再表示は、最も左側の座標補助ラベルを参照し、上記方法により決定されるX値及びY値に基づき、行われる。
本発明では、この他に対数群の諸要素及び拡張オイラー関数(GCD totient)を表示する。この値は表示領域の上部に、個別に表示領域を設けて行う。マウスのクリック等で特定のX値が指定されると、その値に基づき計算された対数群の諸要素及び拡張オイラー関数値が、上記方法により決定され、表示される。
【発明の効果】
【０００６】
本発明では、「座標補助ラベル」を中心に表示領域上の表示点が決定されることから、表示方法が一貫しており、動的表示等に便宜である。特に、対数グラフで徒にその全てのX値に対応する表示を行うのではなく、定められた表示ドットにおいてのみ表示を行うので、非常に見易く、奇麗な表示を得ることができる。また、対数群の諸要素及び拡張オイラー関数値の表示を別に行うので、現在取り扱っている表示点でのそれ等の値を容易に知ることができる。
【発明を実施するための最良の形態】
【０００７】
以下、本発明の最良の実施形態を添付した図面に基いて説明する。
このソフトウェア「HCG Test Tools」の開発は、２００８年５月に導入したマイクロソフト社の「Visual Studio 2008」を用いて、言語VC++で行われた。NET.Framework V3.5の「Windows」（登録商標です。）プログラムである。開発開始後、約半年の作業で原型が出来上がったが、その後5年を掛けてバグ抜きや改良が行われた。このソフトウェアでは、２次双曲線群のパラメータファイルが容易に作成でき、このファイルはその後作成された暗号作成ツールで利用できる利便がはかられている。その詳細については特許出願「仮想サロゲート・ペアを用いた双曲線暗号の構成方法及び装置」(特許文献４)に詳しい。
本発明に係る「Graphics」ツールは当初からその原型がこのソフトウェアに添付されていたが、その図形表示等は不十分、かつ、稚拙なものであったので、本発明に係る新技術も採用されていなかった。この発明に関する新プログラムは2012年から開始され、プログラム名も「HCG Test Tools with GCD totient Graphics」と改名された。 
言語VC++では、図形表示用部品として「PictureBox」がツールボックスに標準装備されている。その「PictureBox」上では、さまざまな図形を描画できる。その際「Windows」（登録商標です。）の構成では、その座標原点は左上と定められ、ｘ軸は右側に開かれ、ｙ軸は下側に開かれている。ｘｙ座標軸の象限でいえば、第４象限に相当する。また、その軸上の点は「ドット(点)」を単位とした整数点しか存在せず、アナログ座標には対応していない。要約の代表図面である[図1]
は、「PictureBox」を利用した表示でもある。
この場合に対数グラフをX-Y軸で実現するには、等間隔の１０のべき乗倍に相当する直線(図中点線)で仕切り、座標軸を容易に把握できるようにする。この直線を「座標補助線」という。座標補助線には各々そのＸ軸若しくはＹ軸にその値を表示するラベルが添付されている。このラベルも前記ツールボックスに標準装備された部品「Label」であり、本発明では「座標補助ラベル」というが、本発明ではこの座標補助ラベルが重要な役割を果たす。具体的には、このラベルには、X軸につき「X=1」、「X=10」、「X＝10^2」、「X=10^3」、及び「X=10^4」と記載されている。また、Y軸につき「Y=1」、「Y=10」、「Y＝10^2」、及び「Y=10^3」と記載されている。Y軸の方がその個数が少ないが、これは前記整数論関数等のloglogx程度の増加率に対応させているからである。
【０００８】
[図2] に、X座標値を具体的に定める方法をフロー図で示した。マウスをクリックした際の現カーソル位置は、マウス・クリック・イベントのインスタンス(e)より得られる。例えば、それは  e>x, e>yにより、その「PictureBox」上の相対座標（x-y軸）を得る。この段階では実座標（X-Y軸）と直接の結びつきはない。しかし、以下のようにして関連を作り出してゆく。
即ち、最初に前記座標補助ラベルの位置座標との比較を行う。これにより、クリック点がどの座標補助ラベルの右側に隣接するかを知ることができる。その座標補助ラベルを特定し、今度はそのテキスト文字であるX値の10のべき乗値であるX_bekiに変換する。次に、クリック点が前記座標補助ラベルの右側のどの相対位置にあるかを、前記座標補助ラベル間の間隔との比、x_ratioで求める。これは常用対数軸上の相対値であるので、
【数１】
2015125201.tif 000003
を求めれば、これが マウスのクリック点のX座標値を与えることになる。Y座標値も、同様に求められる。
【数２】
2015125201.tif 000004
である。
【０００９】
今度は上記説明を、[図３]
を用いて視覚的に再度行う。[図３] は、本発明の実施例に係る表示形式を説明する図面で、上記「PictureBox」を4個表示している。その左上図は「Reset表示」、右上図は「Circle表示」、左下図は「Cross表示」、及び右下図は「Line表示」である。「Reset表示」は、所謂初期画面であって、この画像ソフト起動時及びリセット時に表示される画面である。データは表示されていない。これに対し、以下の3形式は、ここでは「DispAll」ボタンを押したときの表示形式であって、データが表示されている場合にのみ現れる。「Circle表示」はデホルト(default)の表示形式であって、表示形式選択窓においてリセット時にこの形式になる。データは小円で表示される。その実体は図形「○」の描画表示である。「Cross表示」は、表示形式選択窓において「Cross」を選択するとその表示が行われる。その実体は文字「ｘ」の文字表示である。実際には「Reset表示」画面からデータの再描画が行われる。「Line表示」は、表示形式選択窓において「Line」を選択するとその表示が行われる。実際には「Reset表示」画面からデータの再描画が行われる。その線はX軸からデータ値に至る実線である。
白黒画面では判別しがたいが、何れの場合も「GCD totient」G(X)値を赤色(Red)で、「Euler totient」φ(X)値を青色(Blue)でその関数値を表示している。その対応は画面上部中央に大きく関数値表示として明示されている。本発明に係る数学的な理論ではφ(X)≦ G(X)であって、双方の値は一致することも多い。その場合表示文字等が上書きされることになり最初に描画された文字等の存在が判別できない。そこで実際にはその表示を1ドット分シフトしてその上書きを行い、双方の表示が現れるようにしている。前記一致する値は、１ドットずれて重なり、画面上色濃く現れている。
【００１０】
[図４] は、本発明の実施例に係る平行移動表示を説明する図面である。その左下図は、Reset時表示で「Base」状態にあり、X軸及びY軸の何れも平行移動していない。このとき左下の「X-slide」窓において「Right」を選択すると、右下図のX軸平行移動後の表示になる。また、「Base」状態で左下の「Y-slide」窓において「Up」を選択すると、左上図のY軸平行移動後の表示になる。このとき、更に左下の「X-slide」窓において「Right」を選択すると、右上図のX軸及びY軸平行移動後の表示になる。この移動は数10の倍数を単位として行われ、現在の常用対数表示であれば何れも定間隔の移動表示になる。
実際には、移動後のリセット画面において再描画が行われる。この描画は、整数点の増加に伴い、実際にはグラフ上の座標点の値が採用されて、その点に対応するX値の計算値を求め、その描画が行われる。X軸上の総ての整数点の表示が行われたわけではないが、上記関数の凡その傾向は表示されることになる。
【００１１】
[図１] は、本発明の実施例に係るX軸指定表示を説明する図面である。X軸指定入力窓において具体的にX値を指定した場合、即ち「X=638」とテキスト入力し、かつ、「Express」ボタンを押下した場合には、「DispAll」表示において、そのX値における「GCD totient」G(X)値及び「Euler totient」φ(X)値がデータを表す小円によりその関数値が表示される。また、マウスのカーソルで当該点をクリックしても、Y値によらず、同じ表示が現れる。
指定点のデータ表示は実際にはシアン色（上部点) 及びこげ茶色(下部点)であり、関数値表示(Red,Blue)と区別されている。この指定点の関数値は画面上部において、同色の枠により対応する関数値が示される。この対応は図面上矢印で示されている。一度表示された指定値のデータ表示は修正が効かないので、「Refresh」ボタンで再表示するほかはない。このプログラムでは事前の操作が記憶されていて、指定前の表示の再描画が行われる。
【００１２】
グラフ上で構成されたXY軸を常用対数目盛で表示し、そのX値(引数値)若しくはY値(関数値)ではなく、グラフ表示上の整数点の座標を換算したX値若しくはY値を用いて、そこでの関数値の表示を行う。この方法により、表示を優先した見易い関数表示を得ることができる。実際には、XY軸に付したラベルを使用して、平行移動表示のような柔軟な動的表示を可能にする。
【００１３】
これから先は、２次双曲線群や拡張オイラー関数(GCD totient)等の数学的背景について説明する。これ等は従来の数学の範囲に含まれていないので、詳しく説明する必要があるからである。最初は「GCD totient」の概観に相当し、併せて最近の研究成果についての概略を示すことにする。その後、詳細な説明でその結果の証明等を与える。若干付言するなら、それ等の「説明」は厳密な数学的証明というものではない。しかし、輝かしい新事実を羅列しており、その成果が褪せることはないだろう。近年の数学はやたら複雑で記号だらけであるが、大した成果もなく先人の築いた重箱の隅をつつくことも多いのであるから、その「説明」にも何等かの意義があるはずである。
【００１４】
＜＜GCD
totientの概観＞＞
（１）定義
「GCD
totient」は、「Euler
totient」や「Jordan
totient」の仲間ではあるが、より原始的(primitive)であり、以下の説明のように簡単に導入することができる。
法ｎの剰余環Z/nZにおいて、ｎ値を合成数とするとき
【数３】
2015125201.tif 000005
のように素因数分解で表示することができる。この素因数
pi はランクkiの巡回群Liを生成するので、法ｎで見るとそれ等の組み合わせである直積(direct
product)群
【数４】
2015125201.tif 000006
が生成され、そのランクｋにつき
【数５】
2015125201.tif 000007
となる。この直積群は巡回群全体の元の個数を与えるが、必ずしも巡回群の最大位数kqを与えるものではなくkq≦k である最大位数kqが存在すると考えることは自然である。ここでは巡回群の「最大周期」の意味である。各巡回群Liのランクkiの最小公倍数(L.C.M)がこのような必要条件を満たすことは明らかであるが、十分条件であるか否かは分らない。それ等の中間にあってkqよりも大きい周期に見えるものも、実際にはkqより小さい周期の巡回群の「継続接続」と捉えるのである。ここでは上記の意味でkqを最大周期と呼ぶことがある。
取りあえず、最小公倍数kqを
【数６】
2015125201.tif 000008
と定義する。然らば (kq,ki)=kiであるので、
【数７】
2015125201.tif 000009
となる。  次に、この直積群をランクd|kqを有する巡回群の個数G(d)で類別することにする。これは
【数８】
2015125201.tif 000010
を意味し、
【数９】
2015125201.tif 000011
が成立する。ここで、変数ｄ及びkqに関するメービウス反転公式(Mebius inversion formula)を上式に適用すると、
【数１０】
2015125201.tif 000012
という関係式を得ることができる。私はこれを「GCD totient」と呼んでいるが、その理由はその性質の多くが「Euler
totient」に類似するからである。上式は容易にkg|kqの場合に拡張でき
【数１１】
2015125201.tif 000013
と表現できるが、自然数空間Nで定義されていないので、この点は「Euler totient」と異なっている。
【００１５】
（２）性質(最近の成果)
現在までの研究結果につき、以下に陳列する。その証明は後記する詳細な説明を参照して欲しい。
【００１６】
(1) G(1)=1, G(2)=2s-1
ここでは「GCD totient」の簡単な値につき開示する。G(1)=1は「Euler totient」φ(1)=1に対応する。G(2)は、前記巡回群Liのランクkiが要素２を有する場合で、値ｓはそのようなkiの個数である。G(2)= 2s-1という結果は、その値が法ｎに依存して多くの値に成り得ることを意味するが、常に2s-1型の奇数であることを示す。
【００１７】
(2) G(kg)は、「Euler totient」φ(kg)で割り切れる。別の表現をすれば、
【数１２】
2015125201.tif 000014
である。
[図５] は、法ｎが合成数である場合の拡張オイラー関数値の数表であり、オイラー関数値との差異が示されている。この[図５] において、n=r*sで、r=29,s=59,n=1711の場合を例示する。
kg=15の場合、上式からの直接代入計算で
【数１３】
2015125201.tif 000015
2015125201.tif 000016
.
となり、上記 [図５] の各値が計算できる。
【００１８】
(3) 不等式
【数１４】
2015125201.tif 000017
ここではG(x)を次数ｍを入れた表現Gm(x)とするが、これはｍ次「Jordan totient」Jm(x)に対応させたからである。それ故、我々は「GCD totient」が「Euler totient」や「Jordan totient」の仲間であり、それ等の中間の関数であり、より原始的であることを知った。
【００１９】
(4) 積表示
【数１５】
2015125201.tif 000018
「Euler
totient」の積表示やゼータ関数ζ(s)の積表示は有名であるが、「GCD totient」でも上記積表示を得ることができた。ここで、αjは、素因数pjに関しｘ値のベキ数ejと等しいかそれ以上のベキ数値を有するkiの個数である。
【００２０】
(5) kqが奇数であるならば、
【数１６】
2015125201.tif 000019
であり、kqが偶数であるならば
【数１７】
2015125201.tif 000020
であり、特別の場合、即ち
【数１８】
2015125201.tif 000021
の条件を満たす場合には、
【数１９】
2015125201.tif 000022
である。但し、素因数２に関し、値ｋのベキ数をesとし値kqのベキ数をeとした。
【００２１】
以下は、前記ソフトウェア「HCG Test Tools」の出力結果である。
｜計算例１｜：kqが奇数の場合
[1]Basics
EHCG modulus: n=493=17^1*29^1; ω(n)=2;
GruopRank:
k=135=9(k1)*15(k2);
Max
rank of sub-groups: kq=45=3^2*5^1;
[3]Theories
kq=Σφ(d)=45; k=ΣG(d)=135=3*kq;
Σ(-1)^(kq/d)・G(d):=-72-32-18-4-8-1=-135(kq:odd);
｜計算例２｜：kqが偶数の場合（前記条件を満たし、その値は0になる。)
[1]Basics
EHCG modulus: n=11339=17^1*23^1*29^1; ω(n)=3;
GruopRank:
k=1620=9(k1)*12(k2)*15(k3);
Max
rank of sub-groups: kq=180=2^2*3^2*5^1;
[3]Theories
kq=Σφ(d)=180; k=ΣG(d)=1620=9*kq;
Σ(-1)^(kq/d)・G(d):=-432+216-208+216-108+104-8+54+104-52+4+54+26+4-2+26+1+1=0
=0*kq(kq:even;
G(2^2)=2:2^(2-1)=2;);
【００２２】
(6) 拡張定理
【数２０】
2015125201.tif 000023
任意の整数aにつき、上式が成立する。上式は、汎用性ある定理L.Gegenbauer(1910)の結果を利用している。
【００２３】
(7) (r,s)=1であれば、
【数２１】
2015125201.tif 000024
が成立する。この結果は、G(x)が乗積的(multiplicative)であることを意味する。整数論の基本的な関数はこの性質を有するものが多い。
【００２４】
(8) G(x)の級数展開における各係数は倍率関数と呼ぶF(d)より形成される。
【数２２】
2015125201.tif 000025
d|kgとkg|kqの組み合わせでマトリックスを形成したとき、そのマトリックスは三角行列を形成し、
【数２３】
2015125201.tif 000026
であり、Smithの行列式(1875)に対応する。
数値例としてn=493を挙げると、その行列は以下のようになる。
d(n)=6;
det[F(d)]=3^4;
[
3-3-3 0 3 0]
[ 0
3 0-1-3 1]
[ 0
0 3 0-3 0]
[ 0
0 0 1 0-1]
[ 0
0 0 0 3-1]
[ 0
0 0 0 0 1] 
【００２５】
(9)
G(x)は多値関数であり、法ｎに依存して多くの値を持ち得る。例えば、x=234である場合、以下のように複数の値を有する。
G(234)
[mod 13689]=72 where 13689=3^4*13^2
G(234)
[mod 177957]=72 where 177957=3^4*13^3
G(234)
[mod 2313441]=72 where 2313441=3^4*13^4
G(234)
[mod 369603]=216 where 369603=3^7*13^2
G(234)
[mod 62462907]=216 where 62462907=3^7*13^4
【００２６】
(10) 法ｎが無限大に近づく場合において、２次双曲線群における群位数k及び最大位数kqの関係を求めると、荒い仮定と幾何平均(Geometric
Mean)を用いて
【数２４】
2015125201.tif 000027
【数２５】
2015125201.tif 000028
であることが見出された。
【００２７】
(11) G(x)は、2次双曲線群の生成群Q(x)の個数を与える。この事実は、従来の乗法群と一線を画す固有の性質であって、乗法群が「元の個数」を与えるのに対し、2次双曲線群が「群の個数」、即ち上位概念を与えることを意味する。2次双曲線群の「対数群」としての性質を反映している、のである。
例えば、2次双曲線群(法n=677、 係数a=166, b=431, c=93, d=372)の場合、
Ｑ(x)
with kg=339 is G(kg)= 224.
Ｑ(x)
with kg=113 is G(kg)=112.
Ｑ(x)
with kg=3 is G(kg)=2.
Ｑ(x)
with kg=1 is G(kg)=1.
を得る。
（３）参照
ソフトウェアや資料のダウンロードは、下記のWEBサイトで行える。
【ＵＲＬ１】
【００２８】
http://www.din.or.jp/~horie
上記最近の成果についてはその証明等が詳しく与えられていて、それは「対数群入門(Introduction to Logarithmic Gruop)」に掲載されたものとほぼ同じ内容である。
【００２９】
＜＜GCD
totientの詳細＞＞
始めに：
2005年の2次双曲線群の発見以来、その研究が継続され、今や対数群(Logarithmic Group)と呼べる整数論上の領域が明らかになってきた。ここで開示される多くの成果は、主に日本特許庁の公開特許文献として開示されているが、その総括と呼べる文献はまだ存在していなかった。そこでこの分野の新規参入者のための入門書を書くことにし、この特許文献でも同じ内容を開示しておくことにした。その開示の全体は、以下の項目を有する。
（１）3次関数と直線の交点が作り出す幾つかの群
（２）群演算に関する仮説と対数群の構築
（３）対数群の特性、群演算、及び離散対数
（４）楕円曲線群との関係
（５）2次双曲線群の構築
（６）GCD集合と拡張オイラー関数(GCD
totient)
（７）拡張オイラー関数の理論
（８）対数群を利用した暗号システム
（９）対数群に関する諸問題
覚書：「対数群」に関する理論は何れも初等的ではあるが、非常に複雑で、多くの検証が必要な状況にある。しかし、その結果は明白で、実戦的でさへある。この文献の読者は、新たな概念が登場したとき躊躇するかも知れないが、しかし、それは対数群と謂う概念が新規のものである以上避けられないことである。今日の数学は対数群という新たな領域を追加することになった。
【００３０】
（１）3次関数と直線の交点が作り出す幾つかの群
[1-1] 準備
仮に読者に「群論入門」を最初に解説したら、読者は直ちにこの文章に興味を失うかも知れない。そこで、対数群に係る重要なポイントを先に説明しておこう。
数学ではよく知られているが、4次関数まではその解法が知られていて、その解はその関数の係数(coefficients)に関する関数で明示される。3次関数でも同様であって、その3根は
【数２６】
2015125201.tif 000029
であるときに、f(x)=0 を満たす3根x1, x2, x3 である。仮に
【数２７】
2015125201.tif 000030
という係数でその3次関数が表現されていれば、その係数a, b, cにつき、以下の関係が成立する。
【数２８】
2015125201.tif 000031
【数２９】
2015125201.tif 000032
【数３０】
2015125201.tif 000033
この3根の関係式は、何れかの2根が残りの1根を定めると考えると、一種の演算と考えることが可能である。このような演算は、群論では、加法、乗法のみならず、幾何学的な操作、例えば回転とか平行移動とかの図形操作にも適用できることが、良く知られている。
ここでは、半演算の演算子を「*」とした場合、2根x1,x2を通過する直線は3次関数に対し第3の交点x3を有することになり、x3=x1*x2と表示される。そして、前記直線が傾きAで、Y軸との交点がBであるとき、
【数３１】
2015125201.tif 000034
を満たすことになる。全体の次数は変わらず、3次関数に止まることに留意したい。後出する2次双曲線群では2次双曲線と直線との交点を対象とするが、その結果は上記数式と同様の3次式になり、群構成が可能になっている。
【００３１】
[1-2]
半演算「*」の不都合
半演算の演算子は、2根x1,x2を通過する直線は3次関数に対し第3の交点x3を与えることになるが、これをそのまま群演算の演算子とするには不都合がある。第1に、前記直線上ではx1*x2→x3と置いた場合に、同時にx2*x3→x1及び x3*x1→x2も成立することになる。それ故、これ等の演算対象うち何れを選択するかの基準が存在しない。第2に、直線上の向き(演算方向)を考えると、x1とx2を交換したx2*x1→∞が同時に成立し、可換性(commutative)が満たされない。その交点は、一方はx3を与え、他方は無限遠点となってしまうからである。 第3に、3根のうちの1つが単位元(e)であった場合、前記3次関数が束縛を受け、他の2根は同一値であって重根を有することになってしまう。例えば、x2=eであったとき、x1*x2=x1*e(→x1)→x3で、x1=x3となってしまう。
【００３２】
[1-3]
第2の半演算の導入
[図6] は、2回の半演算を行う時の説明図で、3次関数と2本の直線が作り出す交点の間の関係を説明する図面である。 ここで、第2の半演算を導入して、これ等の矛盾を解決する。そこでは、第2の半演算が前記第1の半演算の結果(x3)と固定点x0との間で行われる。その演算結果は、前記2点が形成する第2の直線と前記3次関数との交点(x4)ということになる。即ち、x1*x2→x3及びx3*x0→x4である。この第2の直線は、通常、第1の直線と異なるので、第1の半演算の結果(x3)と第2の半演算の結果(x4)とは異なることになる。その結果、前記不都合が解消される。
第1に、2本の直線を順次辿るので、方向性が決定される。その結果、同一直線上のx2*x3という演算対象とx3*x1という演算対象が排除され、x1*x2という演算対象が選択されることになった。第2に、可換性の問題も解消する。継続する半演算を2回行うために、x1とx2を交換したx2*x1→∞の方の結果を採用する余地はなくなったからである。x1とx2を交換した場合であっても、x2*x1→x3が採用される。
第3に、単位元による重根の問題も解消する。例えば、x2=eであったとき、第2の半演算の結果、(x1*x2)*x0=(x1*e)*x0≠x3で、一般的にx1≠x3となる。
2回の連続した半演算の採用は、実際には固定点x0を単位元とすることを意味する。この場合、2回目の半演算を形成する直線は第1の演算の直線と同一になる。直線上のある向きが反射関係で逆の向きをたどり、結局元の位置に戻ることになり、固定点x0が単位元の役割を果たす。
このように２回の半演算を続けて行う操作を群演算「＋」として導入できる。例えば、x1で指定される元P(x1)とx2で指定される元P(x2)との間の群演算はP(x1)+P(x2)であって、この群演算によりx4で指定される元P(x4)が一意に定まり、その演算結果となる。特に、剰余環Z/nZ上で定義された群演算は、2次双曲線群や対数群の演算として採用されている。
【００３３】
[1-4]
数学における群とは何か？
ここでは、整数論における「群(group)」について復習してみる。群とは、集合の要素間で定義される演算につき、一定の秩序・対称性を有する場合に、その集合と演算との組み合わせをいう。この演算には幾何学的な操作も含まれているが、ここでは２項演算のみを対象とする。そして、その演算結果は同じ集合上の第３の元を指定する。例えば、集合が元x,y,zを有し、x,y間で演算「*」が定義されていれば、z=x*yとなることをいう。
(1)演算子「*」の適用がその集合の全ての組み合わせで定義でき、その演算結果もその集合の元であること。即ち、集合Sの任意の元x,y⊂Sならば、常にz=x*y⊂Sであること。これを「群演算の閉鎖性(closed)」という。逆に、z⊂Sでなければ、その集合は十分な秩序を有せず、最早「群」を構成していない。ここで、演算の順序を考える。前例で、y*xは異なる値になるのか否か。一般的には異なるが、ここではz=y*x=x*yの場合にしか取り扱わない。これを可換性(commutative)といい、元が有限個しかない時にその群をアーベル群(Abelian)ということがある。剰余環Z/ｎZ上で関数等を取り扱えば、当然可換になる。
(2)その集合内に単位元を有すること。単位元とは、それをeとした場合、その集合の全ての元xに対しx*e=xが成立するような元をいう。仮にその集合に単位元が存在しなかった場合、演算の結果、無限の異なる元が生成され、その集合は無限集合になってしまう。そのような無秩序は受け入れ難い。また、単位元が存在しないと、次に明示する逆元の概念を導入できない。
(3)その集合の全ての元が逆元を有すること。演算結果が単位元である場合に、その演算対象の一方の元は他方の元の逆元の関係に立つ、という。例えば、単位元eにつき、e=x*y であるとき、x⊂Sに対しy⊂S は逆元となり、その逆の関係も成立する。最も、逆元が存在しなくても単位元さへ存在すれば、一定の秩序は保たれるので、この場合を半群(semi-group)ということがある。
(4)その演算の順序につき交換法則(associative
law)を満たすこと。演算の順序は、内側の括弧を優先する規則を採用した場合、異なる順序で続けて演算を2回行った結果が互いに異なってはいけない、という要請である。具体的には、元x, y, z⊂Sにつき、x*(y*z)=(x*y)*zを満たさなければならない。この交換法則は必ずしも自明ではないので、その証明が必要なこともある。3次関数と直線の交点が構成する群については、既に一般的な証明が存在する。下記引用文献１を参照してほしい。ただ、2次双曲線群等では個別に証明を与えたことがある。
【引用文献１】
【００３４】
「射影平面曲線の代数幾何」(今野 一宏  大阪大学大学院理学研究科)
【ＵＲＬ２】
【００３５】
http://www.math.sci.osaka-u.ac.jp/~konno
[1-5]
剰余群Z/nZ及び剰余環Z/nZ
ここでは2次双曲線群等の下地になっている剰余群Z/nZで、その群構造をみる。これは整数空間Zにおける元を、法ｎ(modulus n)により割り算した時の剰余(商の方ではない。)が構成する群であり、その集合は｛0,1,...n-1｝であって、その元の総個数はｎ個である。元x,y⊂Z/nZ につき加算‘+’が導入され
z=x+y(mod n)であり、もう一つの演算は乗算‘*’であって、 z=x*y(mod n)である。何れの場合も単独で群を構成できる。このように2個の演算を導入した群は、双方の演算に交換法則を認めたとき、その秩序の一定のレベルをを認めて「環(ring)」と呼ぶが、ここでは剰余環Z/nZである。それ等の演算の単位元はそれぞれ加算‘+’につき‘0’、乗算 ‘*’につき‘1’である。割り算は導入されていないが、群であって逆元が存在するので、その操作が割り算に相当する。後出する2次双曲線群等は、総てこの剰余環Z/nZ上で形成される群である。言い換えれば、上記2個の演算が行われた場合でも、その結果は元の集合に属する。
【００３６】
（２）群演算に関する仮説と対数群の構築
前章で、3次関数と直線との交点は新たな3次関数の3根と一致し、その係数と3根との関係が3個有することが知られた。それ等の3個の関係は、固有の群と結びついており、以下に示すように3根の独立性に対応して各々独立の成立式である。
[図7] では、3次関数の3根とその係数との関係式がもたらす3個の群の独立性を明示した。
【００３７】
[2-1]
加法群の生成
前記したように根と係数の関係、[数式２８] a=-x1-x2-x3
から、自明な群を構成してみたい。ここでの半演算「*」は半加算「+」である。単位元をx0とした場合に、最初の半演算でx1+x2+x3=const.という関係が成立し、その演算結果x3に対し第2の半演算でx3+x0+x4=const.となる。この2個の関係式から
【数３２】
2015125201.tif 000035
という新たな関係式が出てくる。この式は元x1と元x2の間の加算(2回の半加算)により、演算結果として元x4を得るという関係になる。単位元は、上式でx4=x1のときのx2がそれになる。即ち、x2=x0であり、単位元はx0である、と知られた。次に逆元を求めてみよう。それは上式でx4=x0のときのx2がそれになる。即ち、x2=-x1+2x0であって、これがx1の逆元になる。仮にx0=0という関係を定めれば、それは通常の加算と一致する。
【００３８】
[2-2]
乗法群の生成
前記したように根と係数の関係、[数式３０] c=-x1x2x3
から、自明な群を構成してみたい。ここでの半演算「*」は半乗算「*」である。単位元をx0とした場合に、最初の半演算でx1x2x3
=const.という関係が成立し、その演算結果x3に対し第2の半演算でx3x0x4
=const.となる。この2個の関係式から
【数３３】
2015125201.tif 000036
という新たな関係式が出てくる。この式は元x1と元x2の間の乗算(2回の半乗算)により、演算結果として元x4を得るという関係になる。単位元は、上式でx4=x1のときのx2がそれになる。即ち、x2=x0であり、単位元はx0である、と知られた。次に逆元を求めてみよう。それは上式でx4=x0のときのx2がそれになる。即ち、x2=x02/x1であって、これがx1の逆元になる。仮にx0=1という関係を定めれば、それは通常の乗算と一致する。なお、乗算の演算子は表示を省略することがある。
【００３９】
[2-3]
対数群の生成
上記加法群及び乗法群の形成が根と係数の関係式1個から各々生じたように、[数式２９]
b=x1x2+x2x3+x3x1からも、第3の演算子と第3の群が構成できる。この関係式は「内積」と呼ばれており、変数間で対称式になっていて、3次以上でも定義できる。
最初の半演算でx1x2+x2x3+x3x1=const.が成立し、第2の半演算で単位元をx0とした場合にx3x0+x0x4+x4x3=const.が成立するので、x3x0+x0x4+x4x3=
x1x2+x2x3+x3x1が成立する。更に、定数bを導入して変数x3を消去し、x4を明示すれば
【数３４】
2015125201.tif 000037
となる。この関係式は加法群や加算群の場合と同様の式ではあるが、式の複雑さにも拘わらず或る特徴を有している。
即ち、内包する関数は変数x1,x2に関する対称式x1x2及びx1+x2しか含まれていない、という事実である。これはこの新たな群が加法群と乗法群の双方に近いが、特殊の条件で出現する「特異解」の如き群であることを、意味する。私は、これを「対数群(Logarithmic Group)」と呼んでいる。よく知られたように対数関数は
【数３５】
2015125201.tif 000038
と、変数xに関するの無限和で表示できるが、実際には固有の超越関数(transcendental)であって、変数xに関する有限多項式とは異なる性質のものである。
後記するように、2次双曲線群の演算にも、より複雑ではあるが、対称式x1x2及びx1+x2しか含まれていないという事実があり、これも対数群の仲間と判断できる。
なお、これも後記するが、群演算を有効に定義するためには、[数式３４]においてその分母が０になる変数x1,x2の組み合わせを採用することはできない。
【００４０】
[2-4]
群演算仮説
この仮説は、「3次関数と直線の交点が作り出す群演算は3個のみで、各々独立であり、それは加法群、乗法群、及び対数群である」、というものである。3次関数の根と係数の関係が3個あり、3根が独立であるという事実から、証明なしで、私が主張するものである。この関係は [図7] においても明示されている。
このうち、対数群は、3根の「内積」の関係から発生するもので、これを私は「対数演算」と呼んでいる。従来、この内積の関係から群の生成はないと考えられたが、特殊の条件下で群が生成されることが発見され、その群は従来の乗法群よりもカテゴリーが高い群であることが知られた。即ち、それは乗法群でも加法群でもない。
2005年に発見された2次双曲線群は元より前記条件下で成立するのであるが、当初対数群の仲間であると認識されていなかった。しかし、その後対称式x1x2及びx1+x2しか含まれていないという特殊性が認識され、これも対数群の仲間と判断されることになった。
【００４１】
[2-5]
3次関数と2次関数の交点が作り出す群演算の検討
3次関数と2次関数の交点が作り出す群演算も、最終的には3次関数に帰結するので、「群」を構成できるのではないか、と考える人もいるだろう。しかし、これは不都合を有し、群の構成はできない。仮に、2回の半演算を行ったとして、2次関数では反射的な関係を構築できないから、前記固定点x0を単位元とすることができないのである。これを詳しく説明する。
最初に、第1の半演算記号を‘*1’とし、第2の半演算記号‘*2 ’と区別することにする。前記直線の場合では、x3=x0*2(x1*1x2)であり、仮に単位元をx2とすれば、x2=x0、かつ、x3=x1が成立した。その原因は、演算操作が同一直線上で行われるので双方の半演算はその方向が異なるだけだからである(反射的な関係)。これは直線に固有の性質であって、2次関数ではこうは行かない。異なる方向に曲線を辿った、その場所に存在するのは、別の交点である。したがって、固定点x0と演算結果x0*2(x1*1x0)とは一致しない。「反射的な関係」を構築できないのである。また、2次関数では可換性も構築できない。x1*1x2
とx2*1x1とでは曲線を辿る方向が異なるので、当然交点も異なる。一方は有限点でも、他方は、無限遠点(±∞)となるだろう。
【００４２】
[2-6]形式群との関係
変数XとYに関する多項式で、その次数を１以下に制約する形式群(Formal
Group)と呼ぶ群が、対数群と似ているのではないか、と考えることができる。その加算は
【数３６】
2015125201.tif 000039
mod(deg 2)
で定義され、その乗算は
【数３７】
2015125201.tif 000040
mod(deg 2)
であり、夫々の単位元は０及び１で、夫々の逆元は-X及び-X/(1+X)である。何れの演算でも群の構成が可能なので、これは環(ring)を形成できる。さらに、この加算を
【数３８】
2015125201.tif 000041
mod(deg 2)
に変更した場合にも、群の要件が満たされる。前の章で我々は対数群に係る演算出は変数としてx1x2及びx1+x2のみ出現する、と指摘しておいた。然るに上記和演算は正にこの構成を有している。そこで、対数群に係る演算(内積)が単に加算の性質しか有していないのではないか、との疑問を生じる。しかし、私は、以下の点において、双方の群演算は異なるものである、と考える。
(1)
対数群は、3次関数の根と係数の関係から生じる内積関係を出発点としており、その演算は加算や乗算と異なる、独立の演算と考える。
(2)
対数群における位数kgを有する共役部分群の個数は、乗法群の位数に対応しており、対数群ではその概念が上位の構成を有する。しかも、「共役」の意味が類似するも、より原始的であること。
(3)対数群ではP(d)のような単位元で構成されるが、形式群等の単位元は０又は１である。
(4)対数群では曲線係数を取り込んだ複雑な演算を有するが、形式群では次数を制限する特殊性は有するものの、加算や乗算は通常の演算として実行されること。
(5)対数群は巡回群の一種であり、群位数kと最大位数kqとは通常異なっている。そのような結果を生成する対数演算を通常の加算と区別すべきである。
【００４３】
（３）対数群の特性、群演算、及び離散対数
我々は3次関数の根と係数の関係から、内積の結果が定数であり、その2回の半演算が対数群を形成すると既に知っている。しかし、その詳細については未だ開示されていなかった。そこでこの章で詳しく議論し、検証したい。対数群に係る数学は、従来のものと若干異なっている。特に、群を構成する条件に柔軟性が見られる。前記内積から構成される対数群は最も単純なもので、この「単純」とは後記する2次双曲線群(QHCG: quadratic hyperbolic curve group)との関係で使われる。
[3-1] 対数群の単位元
対数群の群演算において
【数３９】
2015125201.tif 000042
と置いたときのx2値が単位元を与える。このとき
【数４０】
2015125201.tif 000043
が導かれ、通常x12+b≠0であるので、x2=x0であり、x0が単位元を与えることが分かった。これを対数群Lの元の表現で表すと、P(x1),P(x2)⊂ Lという2個の元の間の群演算「＋」により、新たな元P(x4)= P(x1)＋P(x2)⊂ Lが求められ、P(x1)= P(x4)である結果、単位元はO=P(x0)⊂ Lであることが判明した、ということになる。
【００４４】
[3-2]逆元の存在条件
この条件は対数群の理論で重要な部分であり、群の位数の大きさを制限する条件でもある。群演算において、x4=x0を満たすx2がx1の逆元を求めることである。その結果、
【数４１】
2015125201.tif 000044
が、x1の逆元を指定することになる。これを対数群Lの元の表現で表すと、P(x1),P(x2)⊂ Lという2個の元の間の群演算「＋」により、新たな元P(x4)= P(x1)＋P(x2)⊂ Lが求められたが、O=P(x0)=P(x4)である結果、P(x1)の逆元はP(x2)であることが判明した、ということになる。このx2値を求め得るのは、上式でその分母が0であってはならない。これが、逆元の存在条件の非等式である。即ち、
【数４２】
2015125201.tif 000045
である。視点を変えて、上式を変数x0の2次関数と考え、その判別式(discriminant)Dを考える。
【数４３】
2015125201.tif 000046
そこで、実数空間Rにおける実根(real root)の不存在条件が (x12+b)<0である、と知られる。この条件を実数空間Rで常に満たすことは難しい。更に、剰余空間Z/nZでは負数が存在しないし、判別式D自体が平方数でない場合が存在する。
ここで、上式を満たす新たな条件が提案された。最初に前記逆元の存在条件を変形し
【数４４】
2015125201.tif 000047
を得る。この変形は右辺が非平方数であれば、常に成立する。これは、
【数４５】
2015125201.tif 000048
という形で表現できる。(x/p)は、ヤコビの記号(Jacobi's symbol)で、その値は、素数ｐに対し、ｘが平方数(quadratic number)であれば＋１に、非平方数(non-quadratic
number)であれば−１になる。これはフェルマーの小定理(Fermat‘s little theorem)と関係していて、それは法ｎと素であるような自然数aにつき、
【数４６】
2015125201.tif 000049
が成立する、という定理である。ここでn=pと限定してその適用を調べると、素数ｐより小さい数aにつき、上式は
【数４７】
2015125201.tif 000050
が成立する、ということでもある。右辺で、その値が＋１の場合を「aが平方数」といい、その値が−１の場合を「aが非平方数」といい、前記ヤコビの記号の根拠になっている。実際に左辺の計算を行えば、何れかの値になり、その値aの判別ができることから、その実用性は高く、これをオイラーの基準(Euler’s
criterion)と呼んでいる。
【００４５】
[3-3]群演算の閉鎖性
群演算の結果は、その群の元を指定するものでなければならない。即ち、群演算「*」のもとで、x,y⊂S及びz=x*yであれば、z⊂Sでなければならない。これを群演算の閉鎖性(closed characteristics)と呼ぶことにする。ここで、内積が齎す群演算において、(x42+b)を求める形式に変形してみる。その結果は、
【数４８】
2015125201.tif 000051
であり、前記非平方数の条件は、対数群Lの元O=P(x0), P(x1),P(x2)が全て
【数４９】
2015125201.tif 000052
であるときに、対数群Lの元P(x4)につき
【数５０】
2015125201.tif 000053
であるので、群演算の閉鎖性はこの条件により完全に満たされることが判明した。
この条件式は、変数x1等を直接制限するものではなく、その2次関数を制限するという柔軟性ある条件になっていて、従来の群を構成する制限とは一線を画する、即ち、「画期的な群の構成要件となっている」ことに、留意したい。これが21世紀まで対数群等の発見が遅れた最大の要因である。
【００４６】
[3-4]クラス関係
対数群Lの構成要件である非平方数の要件を満たすか否かで、剰余環Z/nZの元をクラス分けすることができる。その一のクラスは
【数５１】
2015125201.tif 000054
という性質のｘ値を有し、その別のクラスは、これと相容れない
【数５２】
2015125201.tif 000055
を満たすｘ値を有している。しかも、これは群演算の分母が０であってはならない、という要請と密接に関連している。その分母から、演算対象の組は
【数５３】
2015125201.tif 000056
という関係を非等式の関係を満たさねばならず、仮にこれが等式であった場合には
【数５４】
2015125201.tif 000057
という関係式で互いに結ばれている。これによれば、対数群Lの要素の表現で表すと、P(x1),P(x2)という2個の要素の間では、
【数５５】
2015125201.tif 000058
であることから、同じクラスになることは絶対にない、ということが分かる。即ち、(x12+b) が平方数であるときには (x12+b)
は必ず非平方数で、その逆も成立する。これは、対数群Lの表現では、群演算の分母を０にするようなｘ値があっても、その組み合わせx1,x2においてP(x1)⊂ Lであれば、P(x2)⊂ Lでなく、その逆も成立することを意味し、この関係により剰余環Z/nZの元であるｘ値をクラス分けすることができる、ことを意味する。
【００４７】
[3-5]対数群Lの定義
上記非平方数の条件を加えて、以下のように、剰余環Z/nZ上、及び群演算「＋」の下で対数群Lを定義することができる。法n=ｐを2以上の素数としたとき、前記内積演算(＝対数群演算)から導かれる対数群Lpは
【数５６】
2015125201.tif 000059
と、定義できる。P(x1),P(x2)⊂Lであれば、P(x1)＋P(x2)⊂Lであり、可換であるので
P(x1)＋P(x2)= P(x2)＋P(x1)が成立し、P(x1)の逆元P(x2)はP(x1)＋P(x2)= Oの関係を満たす。更に演算子「＋」につき交換法則(associative
law)を満たす。
【数５７】
2015125201.tif 000060
この交換法則については、必ずしも自明ではなく、証明が必要な場合がある。しかしながら、対数群においては、群演算において対数群Lの元P(x4)につき出現するヤコビ値の積の形が、既に対数群の交換法則が成立することを明示している。即ち、
【数５８】
2015125201.tif 000061
という積を何回続けても、その演算の順番によらず、ヤコビ値が不変であり、その積の交換が可能であることは明らかである。
【００４８】
[3-6]対数群Lpの位数
その群を構成する元の総個数を位数(rank)といい、前記定義における対数群Lpの位数は、定義中にある非平方数の条件を満たすｘ値と一対一で対応し、その個数は凡そ法ｐの半分の値を有する。以下、その個数を実際に求めてみる。ここでは、対数群Lpの元P(x)等を直接求めているわけではないことに、注意したい。
最初に(x12+b)が平方数y2である場合を検討する。
【数５９】
2015125201.tif 000062
と、置ける。この式から、
【数６０】
2015125201.tif 000063
と、変数x-y,x+yの積(complementary
pair)の形に変形できる。この積は、法ｐの下の所謂「配偶」(spouse)に対応する。この配偶につき、下記引用文献2に有名な次の定理が記載されている。
[定理] ａをｐで割り切れない整数とすれば、集合Ａ＝｛１，２，…，ｐ−２，
ｐ−１｝の中の任意の整数ｒに対して、ｒｓ≡ａ（ｍｏｄ ｐ）を満たす整数ｓが集合Ａ
の中にただ一つ存在する。当該整数ｓをｒの配偶と呼ぶとき、ｓの配偶はｒであり、同一
の数の配偶はただ一つに限る。したがって、配偶の組み合わせは、原則として、
（ｐ−１）／２個存在する。ただし、ａが平方剰余であるときは、ｒの配偶ｓがｒである場合並びにｐ−ｒの配偶ｓがｐ−ｒである場合が存在する。これらの２つの場合を例外として除外すれば、配偶の組み合わせは、（ｐ−３）／２個存在する。[定理終わり]
【引用文献２】
【００４９】
「初等整数論講義」第2版、高木  貞治著
この定理は、原始根を導入し、その冪数を論じると容易に証明できる。この定理の援用で、条件式を満たすｘ値の個数 #xは、
【数６１】
2015125201.tif 000064
若しくは、
【数６２】
2015125201.tif 000065
と、求められる。定数「-b」が平方数か非平方数かに依存して、その個数が変化するのである。剰余環Z/nZの元は全て平方数か非平方数かに類別できるので、非平方数であるｘ値の個数は p-#x個であり、これが位数ｋを与える。
【数６３】
2015125201.tif 000066
【数６４】
2015125201.tif 000067
である。因みに、2次双曲線群の章で後記するが、法ｎが合成数であるような一般の場合、法n=peのような特殊の場合は、後に2次双曲線群で詳しく論じることにする。ここでは、定数「-b」は2次関数の判別式(discriminant)Dに対応する、と覚えておいてほしい。即ち、対数群の群位数は判別式が平方数か否かに依存して定まる。
【００５０】
[3-7]対数群L11の例示
[図8] に、対数群に係る理論の説明を優先させたが、ここでは対数群L11の具体例を示した。法p=11の場合である。係数b=1と置き、単位元をx0=3で指定し、[図8]で示した数表を得る。生成群の群位数kgは、各元を自ら加算してゆくときに、単位元Oに辿り着く回数である。即ち、O=kgP(x)=P(x)+,,,+P(x)(kg回加算する)である。
例えば、単位元P(3)の下でP(1)を自ら加算しmP(1)を計算してみる。
【数６５】
2015125201.tif 000068
【数６６】
2015125201.tif 000069
のようになる。この結果、P(1)を生成元(ベースポイント)とする生成群Q(1)の群位数kgはkg=3であることが確認できる。この計算表から係数b=1と置き、単位元をP(3)とした場合の対数群L11の集合は L11={P(1),P(3),P(4),P(7),P(8),P(10)}であり、群位数k=6である。ここでは、生成群の群位数kgが、必ず群位数k(最大位数kqと一致)の約数であることを確認しておきたい。なお、理論値での群位数は、(-b/p)=(-1/11)=-1であるので、k=(p+1)/2=(11+1)/2=6と計算でき、群演算を行わずとも計算できることに注意したい。即ち、群演算の位数は当初から明示され、その構造が確定しているのである。
[図９] は、巡回群を強調する対数群の群演算結果の表示である。 法P=11の対数群L11 (最大位数k=6)で、実線はベースポイントをP(8)とした場合の巡回群で、ゼロ元P(3)に至り、その直後に最初のベースポイントに戻るまでの行く先(実線矢印)は、全部で6個、従って生成群位数kg=6を与える。これに対し、ベースポイントをP(4)とした場合の巡回群(点線矢印)では、全部で3個、生成群位数kg=3を与える。この巡回群はp=11で素数位数であるので、元として可能性のあるものは11個あるが、実際には上記曲線パラメータの制限のために最大でも生成群位数kg=6しか与えない。
【００５１】
[3-8]離散対数
対数群は、剰余環Z/nZに下で定義される有限群である。その元P(x)を指定するｘ値は、当然法ｎの下で定義される。その群位数がｋであれば、kP(x)=Oであって、その群演算の結果が無限大に増加してゆくことはない。しかしながら、ｍ回の演算の後にmP(x)=P(y)に到達したとして、P(y)を知ってそのｍ値を計算できるであろうか？これはP(x)を既に知っていれば困難ではない。単に群演算を繰り返しP(y)に到達することを確認すればよいからである。問題はその計算量である。最初からｍ値を知っている場合には、前の演算結果を利用して比較的速く計算が可能である。例えば、ｍ値を2のベキ上で展開して、前のベキ2倍計算結果を使えば、計算回数を大幅に節約できる。その計算回数はlog2 m回程度である。然るに、ｍ値が不明である場合、手当たり次第に(通常ｍ値の小さい順に）計算してその照合を行う必要があり、結局ｍ回の計算が必須である。従って、計算量の比は  m/log2 mである。この計算困難性を「離散対数の問題」と云う。
法ｎが大きな数値である場合、特に大きな素数ｐである場合には、通常ｍ値も大きくなる。そこでは、逆元計算が大変になる。およそ、逆元計算でp-1回の積をｍ回繰り返すと、その計算回数はm(p-1)回で、ビット数の大きな数同士の積和を行う必要があり、計算の負担は大きくなる。この負担が現実時間内でなくなると、暗号等での利用が可能になる。
対数群では、総当たりの計算量は若干少なくなる。最初に最大位数kqを知っていれば、全ての生成群はその約数を群位数とする。後記するように生成群位数kgを有する生成群の個数はG(kg)個である。然るに、各生成群の元はその出現の順番が異なるだけで、全ての計算を行う必要なく、P(y)が出現したか否かの判断ができる。従って、最低の計算回数はkgの総和で済ませることができる。これも後記するが、kgは最大位数kqの約数に限られる。そこで総計算回数はkqの約数の総和σ(kq)程度ということになる。但し、
【数６７】
2015125201.tif 000070
である。従って、総計算回数はkq程度で大きくはない。後記するように、荒い仮定と幾何平均(Geometric
Mean)を用いて
【数６８】
2015125201.tif 000071
【数６９】
2015125201.tif 000072
であるので、法ｎが大きな数値である場合に、比n/kqは緩く増加し、幾分計算回数が少なくなる。ただ、群演算の計算が逆元を計算する手間が必要なので、総計算回数はそれ程少なくならない。
【００５２】
[3-10]
巡回群としての対数群
既に、対数群は有限群であってその群位数は自然数ｋであって、全ての元P(x)につきkP(x)=Oが成立する、と知っている。元P(x)の選択次第では値ｋの約数kgにつきkgP(x)=Oが成立することもある。これは対数群が巡回群の一種であり、「素数ｐの生成する群」に属することを示している。しかし、対数群は従来の乗法群と決定的に異なる点がある。乗法群であれば、「原始根ρ」を用いた割り当てが可能であるけれども、対数群ではこのような割り当てができない。例えば、乗法群では、異なるベキ数を有する同一原始根同士の積は、当該原始根のベキ数同士の和と一致する。しかし、対数群ではこのような秩序を欠いている。例えば、対数群の群演算「＋」において、P(x)=ρex,
P(y)=ρey, P(z)=ρezと割り当て、P(x)＋
P(y)=P(z)という結果を得たとする。このとき原始根ρを用いたとしても、一般に
【数７０】
2015125201.tif 000073
となる。言い換えれば、対数群では乗法群の有する幾つかの秩序が成立しないが、それでも有限巡回群としての性質は有している、と謂うことである。議論の詳細は、[特許文献２]を参照して欲しい。
【００５３】
（４）楕円曲線群と対数群との関係
私は、対数群が現在日本で良く研究されている楕円曲線群とどの様に異なるのか、議論する能力に欠ける。しかし、この章で若干議論してみようう。
【００５４】
[4-1]
群成立条件の比較
楕円曲線の有名なワイヤシュトラウスの標準形(Weierstrass’s standard form)は、以下のようである。
【数７１】
2015125201.tif 000074
ここでは左辺が平方数である形に注目する。剰余環Z/pZの下では、これは
【数７２】
2015125201.tif 000075
を意味する。このような条件を満たすｘ値の集合が、その群演算につき閉鎖的等の要件を満たすとき、初めて群として成立する。これも有名なハッセの定理(Hasse in 1934)によれば、楕円曲線群の群位数ｋは、剰余環Z/pZの下で
【数７３】
2015125201.tif 000076
という不等式を満たし、ｐ値に近い値を有するという。しかしながら、明示の表現で群位数を指定することはできていない。対数群の成立条件が
【数７４】
2015125201.tif 000077
であることを考えると、楕円曲線で上記条件を満たすことはかなり難しいことが分かる。しかし、仮に
【数７５】
2015125201.tif 000078
のように素因数分解できるのであれば状況は近づいてくる。そこでは、
【数７６】
2015125201.tif 000079
の組み合わせ、若しくは
【数７７】
2015125201.tif 000080
を満たすx値の集合が議論されるだろう。その際、大事なことは、対数群では群位数ｋは2次関数の判別式Dが平方剰余であるか否かに依存して定まっていた、ということである。
[数式７６]では、(x+d)が非平方数である個数は数０を加えて(p+1)/2個であり、そのうち(x2+ex+f)が非平方数である個数は群位数の式、[数式６３] 及び[数式６４]からして凡そその半分である。従って[数式７６]を満たす値ｘの個数はその半分のp/4程度、同様に、[数式７７]を満たす値ｘの個数はp/4程度で、全体ではやはりp/2個程度の解を有する、ということができる。もう少し踏み込んで謂えば、[数式７６]の2条件をを満たす数値の項数はそれよりも若干少ない、はずである。従って、[数式７１]を満たす楕円曲線群の位数は、p/2より若干少ない程度と見積もれると謂えるだろう。ハッセの定理である[数式７３]の制限内であろうが、3次関数を素因数分解できた形であるので、その秩序は高く、この場合はよりp/2個に近い群位数であろう。
私は、楕円曲線の場合もその3次関数の判別式D、即ち、
【数７８】
2015125201.tif 000081
及びそのヤコビ値
【数７９】
2015125201.tif 000082
に依存して定まると考えている。
【００５５】
（５）2次双曲線群の構築
[5-1]2次双曲線群の発見
最初に言明していたように、2次双曲線群は、私が3次関数と直線との交点が作り出す群を2003年頃から探求し続けた際に、2005年に至って発見された新たな群である。対数群の発見はその後かなり遅れての発見であり、既に2次双曲線群の研究が先行していて、そこでは2次双曲線群の多くの特性が発見され、証明されていた。その探究対象は、主に
【数８０】
2015125201.tif 000083
という関数である。最も初期には
【数８１】
2015125201.tif 000084
という関数が検討され、その際選ばれた係数表示が残存した経歴的な形式になっている。この関数が選定された理由は、「係数aが非平方数であれば、ｘ値に制約なく分母が0にならない」という理由であった。即ち、
【数８２】
2015125201.tif 000085
である。上記関数が直線Ax+Bと交点を作ると、
【数８３】
2015125201.tif 000086
になり、その全体は3次関数になる。ここで注意したいのは、実数空間Rでの2次双曲線関数では以上の話は正当化できるが、剰余環Z/nZではどのように扱うべきなのか、ということである。剰余環Z/nZでは分数は存在しない。ここでは「分数」ではなく、剰余空間Z/nZでの「逆元」としての取り扱いがなされる。当初から「整数論的関数(integer function)」として、取り扱うのである。
2回の半演算の結果、単位元をP(d)とする群演算
【数８４】
2015125201.tif 000087
が導かれる。そして、複雑な関数でありながら、そこには対数群の特徴であるx1x2,x1+x2の2個の形の変数しか現れてない。この事実が、後に2次双曲線群を対数群の仲間と認識する理由になった。
【００５６】
[5-2]2次双曲線群の特性
2次双曲線の群としての成立条件は
【数８５】
2015125201.tif 000088
であり、この条件は逆元の存在条件
【数８６】
2015125201.tif 000089
が常時成立するために要請された。これは、「同値対(equal
pair)」と呼ぶ元P(x1)
と P(x2)の組が、互いに群の要素から排除し合う関係に立つことを要請する。
【００５７】
[5-3]対数群の位数、特に法ｎが合成数である場合
既に対数群の群位数は求めておいたが、2次双曲線群でもその群位数ｋは同様に求めることができる。
【数８７】
2015125201.tif 000090
【数８８】
2015125201.tif 000091
ここで、値Dは2次双曲線の分母を与える2次曲線の判別式であり、
【数８９】
2015125201.tif 000092
である。詳しく記載すると、2次双曲線の分母で
【数９０】
2015125201.tif 000093
と変形し、更に
【数９１】
2015125201.tif 000094
という積の表現に持って行く。この形は、前記「配偶」に相当する。ここでは、判別式Dが平方数か非平方数かに依存してこのような積を許容する配偶の個数が定まる。
【００５８】
[5-3]法ｎが合成数の場合の対数群の群位数
次に、法ｎが合成数で
【数９２】
2015125201.tif 000095
である場合を検討する。「配偶」という概念は剰余環Z/pZ上で素数pの作用により生成されるものである、ということに注意する必要がある。上記位数の場合、この素数ｐが作り出す構造を幾つ有しているか、が問題となる。これはオイラー関数φの次の式により示されている。
【数９３】
2015125201.tif 000096
これによれば、法n=peの場合、法n=pの構造がpe-1回繰り返される構造になっている。この事実から次のように群位数が定まる。
【数９４】
2015125201.tif 000097
【数９５】
2015125201.tif 000098
既に群演算の式から生成群の群位数が多数計算され、この事実が推定されていたが、合理的な説明が追加されることになった。次に、法ｎが合成数で2個の素因数の積
【数９６】
2015125201.tif 000099
の場合を表示する。これは各素数に対する判別式Dのヤコビ値の組み合わせにより定まる。
【数９７】
2015125201.tif 000100
【数９８】
2015125201.tif 000101
【数９９】
2015125201.tif 000102
【数１００】
2015125201.tif 000103
結局、対数群Lnは、以下のようにその定義を与えることができる。
【数１０１】
2015125201.tif 000104
次に、この詳しい議論を行うことにする。
【００５９】
[5-4]
拡張対数群の問題点
上記対数群の定義では、法ｎが合成数である場合に、その各素因数piごとに
【数１０２】
2015125201.tif 000105
の条件を要請したが、これが平方数の場合をも含む定義、即ち拡張対数群ELnを
【数１０３】
2015125201.tif 000106
と定義した拡張対数群の場合、どのような問題点が生じるのか検討する。
前記条件で異なるヤコビ値を有する変数x1,x2の組が演算対象となったとき、演算結果であるx4に係る前記条件は何れになるのか、私は、これは決定できないと考える。何故なら前記クラス分けされた2個のクラスを演算の度に入れ替えることになり、その際逆元の存在条件をクリアできないと考えるからである。更に、ヤコビ値が＋１であるクラスでは、「値０が平方数である」ために、逆元の存在条件をクリアすることは難しい。これが、対数群Lnの定義において非平方数のクラスのみを扱う理由である。
次に法ｎが合成数である場合の幾つかの問題点を指摘する。
第1に、対数群の逆元存在条件が元の個数を半減させるということであり、これは各素因数毎に行われる。したがって、法ｎが多くの素因数を含む程、対数群Lnの群位数は減じることになる。
第2に、法ｎが合成数である場合は、対数群Lnの群位数も合成数になることが避けられない、ということである。これ等の性質は、法ｎが合成数の場合に、その暗号等の応用分野での利用を妨げることになるだろう。
第3に、法ｎが合成数である場合の群位数は、各素因数についての判別式Dに対するヤコビ値に依存して定まる、ということである。この性質は法ｎの各素因数が各々独立であり、対数群Lnがそれ等の複合構造を有することから来ている。
ついでに法n=p=2の場合につき記述しておく。この場合には2個の異なるように見える元は何れも単位元であり（私は、「偶単位元」という。）その区別はできないので、1個と数える。法ｎの素因数の1個がp=2を含む場合、この関係はp=2e(e>1)のときのみ群位数を増加する。
（６）GCD集合と拡張オイラー関数(GCD
totient)
【００６０】
この章では「GCD集合(GCD
set)」と呼ぶ新たな集合につき開示する。
[6-1] GCD集合の必要性
法ｎが合成数の場合、その素因数は各々対数群を形成できる。例えば、
【数１０４】
2015125201.tif 000107
で、複数の素因数を有する場合である。各pi は対数群Lpiを生成し、その直積である全体の対数群Lnはそれ等の直積として表現される。ここで、値ｍは、異なる素因数の個数である。
【数１０５】
2015125201.tif 000108
この場合に、対数群Lpiは群位数kiを有するのであるが、全体の対数群Lnの群位数ｋはそれ等の積の形を有する。
【数１０６】
2015125201.tif 000109
然るに、各kiは、同一若しくは異なる素因数pjで構成されており、その素因数が同一の場合にどのような関係を生じるのかを調べなければならない。これが、GCD集合を考える理由である。
【００６１】
[6-2]
GCD集合の定義
敢えて集合の定義を与えるなら、各ki等のGCDで表現される要素hをその直接の要素とする集合Sであるが、各群位数kiを構成する素因数pj等をその最終要素とし、各群位数kiにおいて積演算でその結合が表現される集合Sである。
【数１０７】
2015125201.tif 000110
通常i≠jならば、(ki,kj)≠1である。
【００６２】
[6-3]
GCD集合の例示
[図１０] において、次数4のGCD集合を例示してみた。この図で、各楕円1個は群位数kiを表し、その内部領域は、それを構成する素因数pjで形成され、それ等の積はkiと一致する。ここでは、法ｎを形成する素因数piは、各群位数kiを形成している素因数pjと区別されていることに、特に素因数pjしか表示されていないことに注意したい。
この図はn=4であって、各hの下付き添え字は、GCD(最大公約数)の対象となるki等の添え字を全て列記した形式を採用する。ここで表現されているのは4次の対数群
【数１０８】
2015125201.tif 000111
である。例えば、中央の領域は
【数１０９】
2015125201.tif 000112
である。例外としては、添え字が1個のみ有するhiがそれで、各kiに固有の成分であるので、GCDの形にならない。また、全体要素「１」は、謂わばバック・グラウンドであって、これもGCD表示されない。この図では、同次数の要素の総個数がki等の組み合わせで決まることに、注意したい。
例えば、2次の要素はh12,h23,h34,h14,h13,h24の6個であるが、これは
【数１１０】
2015125201.tif 000113
という組み合わせに依存している。また、図面上同次数の領域は、点接触して連結し、かつ、それ等がリングになっていることに着目したい。仮に、現在ｍ次の対数群に、新たな群位数km+1を追加したとすると、hi1…iaという要素から１次数高いhi1…ia,m+1という要素が生じ、元の要素であるkm+1やhi1…iaは残存する。
[図１１]にこの状況を示した。全体の要素の数を組み合わせにより計算すると、全体要素「１」を追加して
【数１１１】
2015125201.tif 000114
がm次の場合の総個数になる。従って、現在2m個の要素が存在し、これに新たに新たな群位数km+1を追加したとすると、全個数が2(m+1)個に増加することになる。
【００６３】
[6-3]同次GCD積の導入
GCD集合の特性を明らかにするために同次GCD積の概念を使う。先に示したように次数aのGCD要素haは、リングを形成して連なっており、その他の同次数の要素は存在しない。従って、同次GCD積を用いれば一括した議論ができる。
いま、ｍ個の群位数kiを有するｍ次対数群Lmを考えれば、次数aの同次数GCD積は
mCa個存在するので、添え字を同じくし、その位置を変えた別の表現
【数１１２】
2015125201.tif 000115
により表すことにする。ここでは任意のa個のGCDの全ての組み合わせが(i1,i2,,,ia)という表示で表され、その全ての積の形で表現されている。但し、同一の添え字は排除される。先の議論から、新たな群位数km+1を追加したとすると、新たな同次GCD積
【数１１３】
2015125201.tif 000116
を生じる。Damは、CamやCam+1と比べて1次高い次数を有する。この関係は、積表現で
【数１１４】
2015125201.tif 000117
となる。元の表現で示せば、
【数１１５】
2015125201.tif 000118
である。これは丁度、有名な組み合わせ公式
【数１１６】
2015125201.tif 000119
を反映している。
【００６４】
[6-4]
群位数ｋの最大位数kqによる表現
ここでｍ次対数群の各群位数kiのLCM(最小公倍数)を考える。
【数１１７】
2015125201.tif 000120
であり、これを使って群位数ｋを表現したい。後の利用のためである。先のGCD集合では、各kiのLCMは重なりのない1次の「平地(plain
land)」を表している。即ち、1次の単純積(simple
product)である。例えば、前記4次の対数群で、kq=[k1,k2,k3,k4]であり、これは各次数の単純積の寄せ集めとして
【数１１８】
2015125201.tif 000121
を意味する。LCMは重なりのない1次の平地で表現できる。この考え方は高次LCMについての知見をも与える。例えば、2次LCMは次数２の「台地(higher land)」である。LCMを得る方法は、丁度「宅地の整地」に似ている。これは有名な公式
【数１１９】
2015125201.tif 000122
からも理解できることである。先の例で謂えば、「現在ｍ次の対数群に、新たな群位数km+1を追加したとすると、hi1…iaという要素から１次数高いhi1…ia,m+1という要素が生じ、元の要素hi1…iaやkm+1は残存する。」ということから、
【数１２０】
2015125201.tif 000123
と表現され、1次高い領域 hi1…ia,m+1は
【数１２１】
2015125201.tif 000124
の意味である。これは両要素の重なりであるので、その分を除去することが「整地」に相当する。
次に、この議論を踏まえて同次GCD積の構造を明らかにする。対数群Lpiは群位数kiを有するのであるが、全体の対数群Lnの群位数ｋはそれ等の積の形を有していた。これを同次GCD積で見ると
【数１２２】
2015125201.tif 000125
ということになる。その中には既に見たように1次高い同次GCD積が重複して含まれており、kqを得るための操作、即ち台地を作るために、これを取り除く整地を必要とする。その重なりの全部は、やはり同次GCD積C2mであるので
【数１２３】
2015125201.tif 000126
としなければならない。然るに同次GCD積C2mの中にも1次高い同次GCD積が重複して含まれる。そこで、次の段階は
【数１２４】
2015125201.tif 000127
であり、最後の同次GCD積Cmmは1個であるので、その重複がなく
【数１２５】
2015125201.tif 000128
という等号でこの操作は完結する。この式から
【数１２６】
2015125201.tif 000129
を得ることができた。これは群位数ｋの最大位数kqによる表現に近い。そこで、前半部を
【数１２７】
2015125201.tif 000130
と置くことにする。これは次数ｍが奇数の場合で、次数ｍが偶数のときは
【数１２８】
2015125201.tif 000131
と表現される。ここでの当面の目標は
【数１２９】
2015125201.tif 000132
と、同次GCD積Emをkqの関数として表現することである。メービウスの反転公式(Mebius inversion formula)の適用のためである。
【００６５】
[6-5]
変数d|kqの導入
変数dをkqの約数d|kqとして導入するのは、Emをkqの関数として表現するためである。最初に、新たに1次分次数の高いEm+1を導びく。新しい群位数km+1を導入すると
【数１３０】
2015125201.tif 000133
となるが、整理のために新たな同次GCD積
【数１３１】
2015125201.tif 000134
を使うことにする。上式は
【数１３２】
2015125201.tif 000135
と書き直せる。最も、次数ｍの偶奇に従い同次GCD積Emの分子と分母が反転することがあることに注意する。また、最大次数ｍにおいて、同次GCD積は1個であるので
【数１３３】
2015125201.tif 000136
が成立することに注意すると、上式は
【数１３４】
2015125201.tif 000137
と漸化式により簡潔に表現できる。ここで、
【数１３５】
2015125201.tif 000138
である。このとき、新たな変数dをd=km+1 により導入する。新たに追加した群位数を変数として利用する奇策を使うのである。その結果
【数１３６】
2015125201.tif 000139
となるが、実は導入されたのが変数ｄであって群位数ではないので、次数ｍはその値を変えない。従って
【数１３７】
2015125201.tif 000140
という表現は、実際には
【数１３８】
2015125201.tif 000141
を意味していることになる。改めて、次数ｍの偶奇に従い同次GCD積Emの分子と分母が反転することがあることに注意して置く。この式でd=kqと置くと、当面の目的である、同次GCD積Emをkqの関数として表現することは達成される。少なくとも、上式が同次GCD積による表現であると、覚えておきたい。
【００６６】
[6-6]簡単化定理
ここで、私が「簡単化定理」と呼ぶ、上記同次GCD積Fmの簡易表現を導く。新たな変数dをd=km+1 により導入した場合、全体の群位数ｋはkdになり、群位数ｋをkqで表現した式は
【数１３９】
2015125201.tif 000142
に更新される。然るにd|kqであるので、
【数１４０】
2015125201.tif 000143
であり、上記は漸化式は
【数１４１】
2015125201.tif 000144
となって、同次GCD積Emの表現だけに収まる。これにより、複雑な同次GCD積Fmが、
【数１４２】
2015125201.tif 000145
と簡易表現できることが知られた。
【００６７】
[6-7]
群位数ｋとメービウス反転公式
[6-5]章で示したd=kqと置く代入を行うと、
【数１４３】
2015125201.tif 000146
を得る。この結果は
【数１４４】
2015125201.tif 000147
と書き直せる。これで群位数ｋを最大位数kqで表現することができた。
メービウス反転公式は、或る値ｎとその約数d|nで表現される関数級数和
【数１４５】
2015125201.tif 000148
が、当該関数を級数和自体で表現できるとする公式で、その場合
【数１４６】
2015125201.tif 000149
と、メービウス関数(Mebius function) μを用いて表現される。但し、
【数１４７】
2015125201.tif 000150
【数１４８】
2015125201.tif 000151
【数１４９】
2015125201.tif 000152
と定義され、素数pとその指数eにつきそれぞれ値が異なる。一般の場合は、メービウス関数μが乗積的(multiplicative)である性質
【数１５０】
2015125201.tif 000153
により導かれる。
メービウス反転公式の適用は次の生成群の紹介の後とする。
【００６８】
[6-8] 元P(x)が生成する生成群Q(x)
元P(x)を何回も群演算「＋」で加算しmP(x)=P(y)を生成すると、対数群が有限群であることから、kg回目に
【数１５１】
2015125201.tif 000154
に達する。この間に生成された元P(y)の全てを集めた集合Q(x)は、当然に群を形成する。
その定義は
【数１５２】
2015125201.tif 000155
のように表示される。これは対数群Lpの部分群であり、元P(x)が生成する生成群(generated group)である。しかしながら、群位数kgを有する生成群は1個とは限らない。それ等の生成群の間の関係はどのようなものであろうか？
私は、対数群における同一の群位数kgを有する生成群達を互いに「共役(conjugate)」と呼んでいる。それ等は、群演算に対する出現の順番が異なるだけで、その構成要素は全く同じである。従って、その出現の順番を考慮した「共役」の概念は対数群に固有(intrinsic)であって、乗法群のものと異なり、より原始的(primitive)な概念になっている。
実際、(m,kg)=1であるときに、生成群Q(x)とQ(y)が共役であれば、
mP(x)=P(y)⊂Lpであるような関係を持つｍ値が常に存在する。この事実は、群位数kgを有する生成群の総個数がφ(kg)個であることを教えてくれる。即ち、φ(kg)とはkgよりも小さく、かつ、kgと素であるような数値の個数である。生成群の総個数がφ(kg)個という関係が、常に成立するわけではない。対数群の構造はモット複雑で込み入っている。
【００６９】
[6-9] 群位数kgを有する生成群の個数と拡張オイラー関数G(kg)
拡張オイラー関数G(kg)の詳細を明らかにするために、ここでは群位数dを有する生成群の総個数をG(d)個としておく。然らば、対数群全体の群位数ｋは
【数１５３】
2015125201.tif 000156
と表現できる。何故なら全ての元P(x)につき生成群が生成され、勘定されるからである。
ここで、級数和の対象となるｄ値につき検討しておく。先にメービウス関数μの定義を与えておいた。仮に群位数ｄが最大位数kqよりも大きいとする。然らばkqがLCMであることからd=x*kq  かつ  x|kqである。これは指数部が2以上の素因数が必ず含まれることを意味するので、μ(d)=0を意味する。これは級数和を取るときにこの値ｄを考慮しなくてよいことを示している。即ち、級数和はkqの約数のみを考慮すれば足り、d|kqに制限できるのである。従って、上式の替わりに
【数１５４】
2015125201.tif 000157
を採用できる。これが、私がkqを「最大位数」と呼ぶ理由である。
いよいよメービウス反転公式の適用を行う準備が整った。群位数ｋを最大位数kqで表現することができたことから、公式の適用により
【数１５５】
2015125201.tif 000158
が明示の形で求め得た。ここで、G(kq)は群位数kqを有する生成群の総個数である。Fmの形については、既に簡易化定理で求めておいたので、それを代入すると
【数１５６】
2015125201.tif 000159
を得る。私は、群論において、部分群の位数を明示の形で表現できたことは、大変に珍しい事と考える。最も、この関数は特定の条件下でφ(kq)と一致するので、特別なことではないのかもしれない。しかし、対数群の対称性の高さを示すものに違いない。この式は、同次GCD積の議論から導かれたが、もっと簡単な議論からも導出できる。
[数式１２２]及び[数式１２３]の構成のときは、常に(kq,ki)=kiが成立するので、
【数１５７】
2015125201.tif 000160
.
となる。そこで変数ｄとkqとの間でメービウス反転公式の適用を行うと、簡単に
【数１５８】
2015125201.tif 000161
を得る。この事実は、関数G(d)が非常に基本的な関数であることを示唆する。
ついでにこの式をkg|kqの場合まで拡張しておく。
【数１５９】
2015125201.tif 000162
；
2015125201.tif 000163
；
であるときにこれらの群位数kigに係るLCMを
【数１６０】
2015125201.tif 000164
とし、かつ、
【数１６１】
2015125201.tif 000165
, 
2015125201.tif 000166
；
2015125201.tif 000167
；
と対応付ける。然らば、
【数１６２】
2015125201.tif 000168
を得る。上式は、整数ｘについてのG(x)の場合まで拡張できそうであるが、ここでは考えないことにする。
さて、対数群の部分群である生成群Q(x)の個数が求められたわけであるが、これが群の元の個数ではないことに注目する必要がある。対数群では概念的に1ランク上の特徴が出ており、これは乗法群と大きく異なる性質である。
【００７０】
[6-10]
数値例
上式から、我々は群計算を行う前から対数群の構造を明らかにできることになった。例えば、法ｎが合成数でn=r*s という素因数2個の積であり、 r=29,s=59,n=1711、及び2次双曲線の曲線パラメータを a=9,c=1,d=7としてみよう。
[図12]は、 G(kg)の数値例としての計算結果を示す数表である。そしてこの計算結果は、群演算のみの適用により導かれた結果を集計したものとと完全に一致する。試みにk1=15,k2=30の組み合わせを考えてみると、GCD(k1,k2)=15であり、最大位数はkq=LCM(k1,k2)=LCM(15,30)=30である。それ故kqの約数ではないkg=9,25の場合は、上表に現われて来ない。kg=15の場合を、直接計算で求めてみると、
【数１６３】
2015125201.tif 000169
2015125201.tif 000170
となり、これは上表の数値と一致する。
【００７１】
[6-11]
GCD集合における高次LCM
我々は、既に最小公倍数(LCM:least
common multiple)と通常呼んでいるものが1次LCMであると、認識している。それは山を崩して平地を作る作業だった。2次以上のLCMは、謂わば山を崩して台地を得る作業である。試みに2次LCMをC2mから形成してみよう。先と同様のプロセスを経て
【数１６４】
2015125201.tif 000171
を得る。ここで、ｍ値が奇数の場合にはCmmは分子側に来るし、ｍ値が偶数の場合にはCmmは分母側に来る。次数aのLCMは、同様にして
【数１６５】
2015125201.tif 000172
となる。この式から1次高いLCMは
【数１６６】
2015125201.tif 000173
若しくは
【数１６７】
2015125201.tif 000174
から、容易に計算できることが知られる。
【００７２】
（７）拡張オイラー関数の理論
[7-1] 拡張オイラー関数の積表示
拡張オイラー関数(GCD totient)については、既に詳しく研究されており、その幾つかの性質が定理等の形で纏められている。さて、オイラー関数は
【数１６８】
2015125201.tif 000175
という積表示が知られている。そこで、拡張オイラー関数の積表示を最初に求めてみる。
n=peである場合に前記明示式から、各群位数ki(i=1,,,m)につき
【数１６９】
2015125201.tif 000176
となる。特にm=1の場合は
【数１７０】
2015125201.tif 000177
である。m>1の場合は
【数１７１】
2015125201.tif 000178
【数１７２】
2015125201.tif 000179
と、正整数αをm用いて表現できる。ここで、値αは、その各群位数kiの含有する素因数ｐのベキ値eiが、法ｎを構成する素因数ｐのベキ値eよりも大きいか等しい時の、その各群位数kiの個数である。そこで上式2個を1個に纏めて
【数１７３】
2015125201.tif 000180
若しくは
【数１７４】
2015125201.tif 000181
と表現できる。残念ながら正整数αを明示の形で示すことができない。
一般の場合は、後出する拡張オイラー関数の乗積的(multiplicative)性質から
【数１７５】
2015125201.tif 000182
となる。これが拡張オイラー関数の積表示である。
【００７３】
[7-2]
拡張オイラー関数(GCD
totient)とオイラー関数(Euler totient)との関係
最初に拡張オイラー関数が部分群位数kiに依存して定まるために単純な構造を有してはいない、ということを確認しよう。オイラー関数では、φ(pe)=pe-1φ(p)であるのでφ(pe)は常にφ(p)で割り切れる。しかし、拡張オイラー関数G(pe)はG (p)で割り切れるとは限らない。例えば、法n=12345の場合、最大位数kq=1236であるが、 
φ(4)=2; G(4)=4; Ratio=2; G(4):=+4*2-2*2;
φ(2)=1; G(2)=3; Ratio=3; G(2):=+2*2-1*1;
であるので、 G(4) はG(2) で割り切れない。
これを詳細に確認してみよう。前章の内容から
【数１７６】
2015125201.tif 000183
と表示できるが、これは整数とは限らない。一般に指数α≠βのとき、(pα-1)は(pβ-1)とは異なる素因数を生成するからである。しかし、拡張オイラー関数G(pe)は、常にオイラー関数φ(pe)で割り切れることが知られている。
[定理7-1] 素数ｐが正指数eを有するときに
拡張オイラー関数G(pe)は、オイラー関数φ(pe)で割り切れる。
[証明] 前章の結果から
【数１７７】
2015125201.tif 000184
とすることができるが、正整数αにつき(pα-1)は常に(p
-1)で割り切れる。
【数１７８】
2015125201.tif 000185
である。他方
【数１７９】
2015125201.tif 000186
で、この値は１か素数ｐの1以上の整数指数部を有する。従って、上式右辺は1以上の整数である。
[証明終わり]
【００７４】
一般の場合は、後出する拡張オイラー関数の乗積的性質から
[定理7-2]
kq=[k1,k2,,,km]、かつ、整数x|kqのとき
拡張オイラー関数G(x)は、オイラー関数φ(x)で割り切れる。即ち、
【数１８０】
2015125201.tif 000187
である。
[証明省略]
ここで法ｎがn=11399であるような対数群L3での数値例を示す。k1=9,k2=12,k3=15,kq=180であるので、kg=3の場合φ(3)=2である。このとき拡張オイラー関数G(pe)は
【数１８１】
2015125201.tif 000188
であり、G(3)/φ(3)=13である。これを定理(7-1)より確認すれば、p=3,e=1,α=3なので
【数１８２】
2015125201.tif 000189
となる。新たに現れた素数13は、素数p=3の級数和が生成したものである。
【００７５】
次に、宿題となっていた拡張オイラー関数Gの乗積的性質(multiplicative)を証明しておく。
[定理7-3] (r,s)=1であれば
【数１８３】
2015125201.tif 000190
が成立する。
[証明] 拡張オイラー関数Gの級数表示から
【数１８４】
2015125201.tif 000191
【数１８５】
2015125201.tif 000192
とd1|r,d2|sにつき表示できるが、これより
【数１８６】
2015125201.tif 000193
を考える。約数d1|r,
d2|sを与えたとき、(r,s)=1であるので当然に
(d1,d2)=1,
(r/d1,s/d2)=1である。最大公約数も乗積的であるので(x,r)(x,s)=(x,rs)も成立する。また、メービウス関数μも乗積的であるので  μ(r)μ(s)=μ(rs)である。
そこで、上式は  d=d1d2を用いて
【数１８７】
2015125201.tif 000194
【数１８８】
2015125201.tif 000195
と変形できる。
[証明終わり]
【００７６】
次に、拡張オイラー関数が特定の条件下でオイラー関数に帰結することを示す。
[定理7-4] 全ての部分群位数間で(ki, kj)=1(i≠j)であれば、kq=[k1,k2,,,km]、かつ、整数x|kqのとき
【数１８９】
2015125201.tif 000196
である。
[証明] 拡張オイラー関数G(x)の級数表示において(ki, kj)=1(i≠j)であれば、
【数１９０】
2015125201.tif 000197
であるが、右辺は(x/d)|kqであるので
【数１９１】
2015125201.tif 000198
になる。従って、
【数１９２】
2015125201.tif 000199
である。
[証明終わり]
これは、対数群Lnにおいて部分群位数間で(ki, kj)=1(i≠j)であれば、その位数kgを有する共役部分群の個数はφ(kg)個であることを示す。
次に最大位数kqの約数kgが織りなす群構造の全体を概観してみよう。
[図13]は、法n=91の場合の、対数群の群構造を示す。対数群Lnでn=91,k1=4,k2=7,k=28であり、 (ki, kj)=1
が満たされる場合、約数kg|kq(kq=28)のそれぞれの値毎に共役部分群の集合を形成し、対数群の元P(x)が生成する生成群Q(x)につき、[図13]のような包含関係、階層構造を有する。ただ、この例はG(kg)=φ(kg)という条件下でのもので、(ki, kj)=h≠1であるような一般の場合にはその共役部分群の個数はG(kg)個であって、その包含図も更に複雑な構造を示す。
詳しくは、引用文献２「JPA2009-223035」を参照して欲しい。
【００７７】
[7-3]
拡張オイラー関数G(x)の特別値
拡張オイラー関数G(x)の値は法ｎに依存して定まり、具体的には法ｎを構成する素因数が作り出す部分群の群位数kiに依存して定まる。単純ではないのである。ここでは特別な値G(1)及びG(2)を具体的に求めてみる。拡張オイラー関数G(x)の級数表示において
【数１９３】
2015125201.tif 000200
であり、これは群位数kiに依存していない。しかし、前記級数表示の展開形
【数１９３】
2015125201.tif 000201
において、p=2,e=1の場合
【数１９４】
2015125201.tif 000202
である。但し、正整数ｓは素因数２を有するkiの個数である。従って、G(2)は常に2s-1の型の奇数である。この様にかなり簡単な場合であっても群位数kiに依存して定まる。
【００７８】
[7-4]
拡張オイラー関数(GCD
totient)とジョルダン関数(Joradan totient)との関係
整数論によれば、オイラー関数の仲間としてジョルダン関数が知られている。ｍ次ジョルダン関数Jmは
【数１９５】
2015125201.tif 000203
と表される。但し、m1=ω(x)である。この積表示を拡張オイラー関数の積表示と比べると、
【数１９６】
2015125201.tif 000204
であるので、似ていることが分かる。但し、形状を合わせるために添え字ｍを追加してGm(x)と表示しておいた。
[定理7-5] 全ての部分群位数kiにつきki=k0(固定)であれば、
kq=[k1,k2,,,km]、かつ、整数x|kqのとき
m次拡張オイラー関数Gmはｍ次ジョルダン関数Jmに一致する。
[証明] 全ての部分群位数kiにつきki=k0(固定)であれば、最大位数kq=LCM(k0,k0,,,k0)=k0であり、整数x|kqにつき(k0,x)=xである。また、値αは、その各群位数kiの含有する素因数ｐのベキ値eiが、法ｎを構成する素因数ｐのベキ値eよりも大きいか等しい時の、その各群位数kiの個数である。ki=k0(固定)であれば、αj=mかαj=0であるが、αj≧1であるのでαj=mになる。そこで
【数１９７】
2015125201.tif 000205
が成立する。
[証明終わり]
【００７９】
定理(7-5)の結果と定理(7-2)の結果を併せると、次の示唆深い定理を得る。
[定理7-5] 部分群位数kiにつきkq=[k1,k2,,,km]、かつ、整数x|kqのとき
【数１９８】
2015125201.tif 000206
である。
[証明] GCDの性質から(ki,x)≦xであり、値αは、その各群位数kiの含有する素因数ｐのベキ値eiが、法ｎを構成する素因数ｐのベキ値eよりも大きいか等しい時の、その各群位数kiの個数であるので、α≦mである。それ故、
【数１９９】
2015125201.tif 000207
が常に成立する。そこで
【数２００】
2015125201.tif 000208
である。また、定理(7-2)の結果、正整数ｓにつきGm(x)=sφ(x)であるので、Gm(x)≧φ(x)でもある。
[証明終わり]
結局、拡張オイラー関数(GCD totient)はオイラー関数(Euler totient)とジョルダン関数(Joradan totient)との中間に位置する関数であって、その対称性も高く有用な関数と考えられるが、それ等と比べるとより原始的(primitive)な関数と謂うことができる。
【００８０】
[7-5]
オイラー関数に係る定理の拡張オイラー関数への適用
オイラー関数に係る定理の幾つかは類似の形で拡張オイラー関数でも成立する。最初に拡張オイラー関数に関する予備定理を積み上げておく。目標は幾つかの準備の後に得られる。
[定理7-6] 全ての部分群位数kiにつき最大位数kq=[k1,k2,,,km]とし、kiに含まれる素因数ｐに着目し、kqにおける素因数ｐの指数efと一致する指数を有する部分群位数kiの個数をｔ個とすれば、群位数ｋの素因数ｐに係る指数es につき
【数２０１】
2015125201.tif 000209
と表現できる。
[証明] ここでは拡張オイラー関数の乗積的性質(定理(7-3))に鑑み、部分群位数kiに含まれるその他の素因数を無視して、素因数ｐのみを考える。そこではki=pei(i=1,,,m)であるので、kq=[k1,k2,,,km]=pef,
ef=MAX(e1,,,em)である。このとき、指数eiを分別し、kqの素因数ｐに係る指数efに一致するものをt個(
2015125201.tif 000210
)、ei=ef-1であるものをu個、及びei<ef-1であるものの総和をv個とする。然らば、GCDの性質より
【数２０２】
2015125201.tif 000211
である。それ故
【数２０３】
2015125201.tif 000212
であるが、ここで群位数ｋの素因数ｐに係る指数es につき、部分群位数kiの全ての積であることから、es=t*ef+u*(ef-1)+vでもある。それ故、上式は
【数２０４】
2015125201.tif 000213
と置き換えることができる。
[証明終わり]
【００８１】
今度は拡張オイラー関数の乗積的性質を使って一般の場合に拡張して置く。
[定理7-7] 全ての部分群位数kiにつき最大位数kq=[k1,k2,,,km]とし、kiに含まれる素因数pjに着目し、kqにおける素因数pjの指数efjと一致する指数を有する部分群位数kiの個数をtj個とすれば、
【数２０５】
2015125201.tif 000214
と表現できる。 但し、k=Πim
kiである。
[証明] 群位数ｋの素因数ｐjに係る指数をesj であるとすれば当然に
【数２０６】
2015125201.tif 000215
である。そこで定理(7-6)により、拡張オイラー関数の乗積的性質(定理(7-3))を用いて
【数２０７】
2015125201.tif 000216
と表わされる。
[証明終わり]
この定理(7-7)は、拡張オイラー関数G(x)は、オイラー関数φ(x)で割り切れる定理(7-2)を思い起こさせる。 それによれば
【数２０８】
2015125201.tif 000217
、かつ、
【数２０９】
2015125201.tif 000218
であり、
【数２１０】
2015125201.tif 000219
はtjが正整数であることから、常に
【数２１１】
2015125201.tif 000220
で割り切れる。
ここで全てのtjにつきtj=1である場合を拡張オイラー関数Gに適用すると、
【数２１２】
2015125201.tif 000221
であり、
【数２１３】
2015125201.tif 000222
が成立し、更にkg|kqまで拡張し、
【数２１４】
2015125201.tif 000223
を得る。私は、拡張オイラー関数G(x)とオイラー関数φ(x)との比関数Fを倍数関数(multiple function)と呼んでいる。
【００８２】
いよいよ拡張オイラー関数に固有の定理で、正にオイラー関数の定理の拡張であるものを提示する段階になった。そのオイラー関数の定理は、以下のものである。
[定理] 正整数ｎ及びその約数d|nにつき
【数２１５】
2015125201.tif 000224
が成立する。
[証明省略]
【００８３】
そして、前記拡張オイラー関数に固有の定理とは以下のものである。
[定理7-8] 全ての部分群位数kiにつき最大位数kq=[k1,k2,,,km]とし、群位数ｋを各kiの全積とすると、kqが奇数の場合
【数２１６】
2015125201.tif 000225
であり、kqが偶数の場合
【数２１７】
2015125201.tif 000226
であり、群位数ｋの素因数ｐの指数esが最大位数kqの素因数ｐの指数eにつき
【数２１８】
2015125201.tif 000227
の場合に限り、
【数２１９】
2015125201.tif 000228
である。
[証明] kqが奇数の場合、部分群位数kiは全て素因数２を有していないので、その約数d|kq及びkq/dは常に奇数である。それ故
【数２２０】
2015125201.tif 000229
が成立する。
kqが偶数の場合、kq=2ekg,
d=2fdg、かつ、kg及びdgを奇数と置くことができる。
このときkg/dgも常に奇数である。そこで
【数２２１】
2015125201.tif 000230
のように変数分離することができ、右辺を整理すれば
【数２２２】
2015125201.tif 000231
と表現できる。上式で
【数２２３】
2015125201.tif 000232
と置き、ksを奇数とすれば、ksは常にkgで割り切れて
【数２２４】
2015125201.tif 000233
、かつ、
【数２２５】
2015125201.tif 000234
.
である。そこで上式変数分離の左項は
【数２２６】
2015125201.tif 000235
と変形できる。更に、この式は群位数ｋの前記偶数部より
【数２２７】
2015125201.tif 000236
まで変形できる。上式は最大位数kqの偶数部2eで割り切れるが、それはG(2e)が
φ(2e)=2e-1で割り切れ、かつ、e≦esだからである。以上から、上式変数分離の左項は
ks2eで割り切れ、当然にkg2e=kqで割り切れる。但し、kqが偶数という条件下である。
特別の場合として、
【数２２８】
2015125201.tif 000237
の場合
【数２２９】
2015125201.tif 000238
であるが、そこでは群位数ｋの素因数２に係る指数がesであった。
[証明終わり]
この定理は、対数群に固有の定理であって、オイラーに係る定理の拡張に当たる。
上記G(2e)=2es-1の条件は緩いもので、数値計算では頻出する。特に、拡張オイラー関数とオイラー関数との関係が
【数２３０】
2015125201.tif 000239
を満たす場合、e=esとなって、直ちに上記条件を満たす。
定理(7-8)の数値例を以下に示す。
例１：最大位数kqが奇数の場合
法n=493=17^1*29^1; ω(n)=2;
群位数 k=135=9(k1)*15(k2);
最大位数kq=45=3^2*5^1;
理論値：kq=Σφ(d)=45; k=ΣG(d)=135=3*kq;
Σ(-1)^(kq/d)・G(d):=-72-32-18-4-8-1=-135(kq:odd);
である。
例２：最大位数kqが偶数で上記条件具備の場合
法n=11339=17^1*23^1*29^1; ω(n)=3;
群位数 k=1620=9(k1)*12(k2)*15(k3);
最大位数kq=180=2^2*3^2*5^1;
理論値：kq=Σφ(d)=180; k=ΣG(d)=1620=9*kq;
Σ(-1)^(kq/d)・G(d):=-432+216-208+216-108+104-8+54+104-52+4+54+26+4-2+26+1+1=0
=0*kq(kq:偶数;
G(2^2)=2:2^(2-1)=2;);
である。
例３：最大位数kqが偶数で上記条件不備の場合
法n=1245=3^1*5^1*83^1; ω(n)=3;
群位数 k=252=2(k1)*3(k2)*42(k3);
最大位数kq=42=2^1*3^1*7^1;
理論値：kq=Σφ(d)=42; k=ΣG(d)=252=6*kq;
Σ(-1)^(kq/d)・G(d):=-144+48-18+6-24+8-3+1=-126
=-3*kq(kq:偶数;
G(2^1)=3:2^(2-1)=2;);
である。
【００８４】
次に、L.Gegenbauer(1910)氏の有名な定理を利用して、定理(7-8)の一般化を図る。Gegenbauer氏の定理とは、
【数２３１】
2015125201.tif 000240
であれば、整数aについて
【数２３２】
2015125201.tif 000241
が成立する、というものである。
[定理7-9] 全ての部分群位数kiにつき最大位数kq=[k1,k2,,,km]とし、群位数ｋを各kiの全積とすると、整数aについて
【数２３３】
2015125201.tif 000242
が成立する。
[証明] 最初に拡張オイラー関数Gの定義及び群位数ｋの構造から
【数２３４】
2015125201.tif 000243
は明らかである。これにGegenbauer氏の定理を適用すれば、整数aについて
【数２３５】
2015125201.tif 000244
が導かれる。
[証明終わり]
定理(7-9)で、a=-1とすれば定理(7-8)を得る。
【００８５】
最後に、スミスの行列式(Smith's determinant(1875))に関し、拡張オイラー関数G(d)の級数表示における係数を行列として捉えてみる。この行列は、約数d|kqにつき大きい順に並べるので、最大位数kqの約数の個数を次数とする正方行列を構成でき、必然的に三角行列(triangle matrix)となる。従って、その行列式は対角成分(diagonal
terms)の積になる。
【数２３６】
2015125201.tif 000245
であり、ここで
【数２３７】
2015125201.tif 000246
である。それ故、
【数２３８】
2015125201.tif 000247
と求めることができた。Smith氏は行列の各要素をGCDでとらえ、その結果としてオイラー関数の積若しくはジョルダン関数の積を得たが、拡張オイラー関数ではそれ等の中間のGCD積の積を得ることになった。
ここでも数値例をn=493につき提示する。F(d)のマトリックス表現は: 約数の数d(n)=6、行列式はdet[F(d)]=3^4で、以下のようである。
[
3-3-3 0 3 0]
[ 0
3 0-1-3 1]
[ 0
0 3 0-3 0]
[ 0
0 0 1 0-1]
[ 0
0 0 0 3-1]
[ 0
0 0 0 0 1]
【００８６】
（８）対数群を利用した暗号システム
対数群も有限群であり巡回群の一種であるので公開鍵暗号システムや署名システムを構築できる。それ等のソフトウェアは一部既に開発が終了し、公開されている。私は、対数群を利用する暗号システムは、その知名度は低いけれども、非常に有用で、将来性が高いと考えている。ただ、対数群は新しい数学の一分野であり、その暗号システムが普及するには何十年も要するであろう。
【００８７】
[8-1]
楕円曲線暗号システムと対数群利用暗号システムとの比較
現在普及している楕円曲線暗号は、基本的には対数群と同じで、楕円曲線と直線との交点を2回求める操作で定義される楕円曲線群にその基礎を置いている。その群演算により、ベースポイントと呼ぶ始点P(x1,y1)をｍ回加算すると
mP(x1,y1)=
P(x2,y2)に至るが、始点P(x1,y1)及び終点P(x2,y2)を知るのが難しい、という原理に従っている。その計算量が、当初からｍ値を知っている場合と、それを知らずに闇雲に全ての計算を行いその照合をすると場合とでは、その計算量に大きな違いがあり、特に法ｐが大きな数値である場合に後者の計算量が事実上計算不可能という時に、それを「離散対数 (discrete logarithm)」問題と呼んでその暗号解読の困難性の根拠とするのである。然るに、対数群を利用する暗号システムは、楕円曲線暗号システムに比べ、以下の点で基本的に優れている。
第1に、対数群の群位数は一定であり明示で求め得ることから、暗号システム構築以前にその位数、特に素数位数を提供できる利点を有している。これに対し、楕円曲線群では、その位数は曲線パラメータの試行錯誤の組み合わせで決定され、当初から素数位数を提供できない欠点がある。最も、対数群の群位数は一定であるといっても、その群位数は2次曲線の判別式Dが平方数か否かに依存しており、間接的に曲線パラメータに依存していることに違いない。
第2に、楕円曲線群では、同一位数を有する複数の暗号システムを提供できない。試行錯誤で求めた素数位数が同じで、その曲線パラメータが異なる楕円曲線群を作り出すことは難しい。これは、対数群利用暗号システムが、構造的で(systematic)有用な暗号システム(smart crypto-system)、特にその群位数が同一の素数位数を有する複合システムの構築に、非常に有用であることを意味している。そのシステムでは、事実上の取り扱いビット数の倍増が可能であり、計算困難性が著しく高まる。
【００８８】
[8-2]
HC-ElGamal暗号システム
対数群を利用した公開鍵暗号システムはElGamal氏の暗号システムを利用すると容易に構築でき、既に楕円曲線暗号でもこれを利用する暗号システムが出来上がっている。ここでは、2次双曲線群(quadratic hyperbolic curve group)の研究の途上で構築されたHC-ElGamal暗号システムを紹介する。
最初は暗号構築の原理である。第1に、2次双曲線群の群位数ｋを定める。これは勿論素数(k=p)であることが望ましい。第2に乱数ｓ(1<s<k)を定め、作業鍵Y=sPを群演算[+]により計算する。ここで、元Pはベースポイント(base point)と呼ばれ、群演算は基礎となる剰余環Z/pZ上での演算で行われる。ここでは公開鍵は、曲線パラメータa,b,c,dを含めた組(a,b,c,d,p,P,Y)になる。
秘密鍵ｓを知らない者は、公開鍵から秘密鍵を知ることができるが、それは原則として全てのｓ値を試み、作業鍵Yとの一致を調べなければならない。この計算量は多大である。これに対し、当初からｓ値を知る者は、
【数２３９】
2015125201.tif 000248
により、倍数演算2iPを利用でき、その計算量はlog(s)の程度に軽減される。前者の計算量が、素数ｐが大きい数値であるために現実時間で計算困難であるとき、秘密鍵ｓの守秘性は保たれる。
次にHC-ElGamal暗号システムである。送信者は、公開鍵及び新たな乱数ｒ(1<r<k)を利用してＣ1＝ｒＰ,Ｃ２＝ｒＹを計算し、及びメッセージｍを用いてＣ３＝ｍＣ２を計算する。相手側に渡される暗号文は((Ｃ1)ｘ,(Ｃ３)ｘ）である。但し、(Ｃ1)ｘとはＣ1のX成分の意味である。正当な受信者は秘密鍵ｓを保有しているのでｍ＝(Ｃ３)ｘ/(sＣ1)ｘを計算し、メッセージｍを知ることができる。
【００８９】
このようなHC-ElGamal暗号システムの数値例を以下に示す。最初に2次双曲線群を特定するためにp=97177,q=48589,c=12345,a=23459,d=34568,b=45679,x=56791とする。ｘ値はベースポイントP(x)を指定する。 ゼロ元はＯ(d)＝Ｏ(34568)である。ここで秘密鍵をs=32109 (1<s<q)と任意に定め、作業鍵Ｙ＝ｓＰ＝Ｙ(66629)を計算しておく。これにより公開鍵
(a,b,c,d,p,Ｐ,Ｙ)=(23459,45679,12345,34568,97177,Ｐ(56791),Ｙ(66629))が定まる。
次に送信者は自己のメッセージｍをm=21098に、任意に採用した乱数ｒをr=43210と定め
Ｃ１＝Ｃ１(21600), Ｃ２＝Ｃ２(2965),
and Ｃ３＝Ｃ３(70759)を計算し、相手方に渡す暗号文を((Ｃ1)ｘ,(Ｃ３)ｘ）=(21600,70759)とする。
暗号文を受け取った者は同じ秘密鍵ｓを用いてメッセージm=(Ｃ３)ｘ/(sＣ1)ｘを計算する。そこでは(sＣ1)ｘ=2965, １／(sＣ1)ｘ=88885であり、 m=21098と計算される。秘密鍵ｓを知らない者も同様の計算はできるが、前記現実時間内の計算困難性が避けられない。最もこの数値例で与えた法p=97177は小さいので、計算困難性を言うには、この数値が100ビット以上の大きさでなければならないだろう。
【００９０】
[8-3]
HC-ElGamal署名システム
インターネット上では冒認、盗聴、及び成り済まし等の行為が日常茶飯事であり、信頼のおけるメッセージか否か、その受信者が確認したい場合があり、その手段としてデジタル署名がある。ここでは、2次双曲線群を利用したHC-ElGamal署名システム(HC-ElGamal signature)を紹介する。
最初はデジタル署名構築の原理である。第1に、2次双曲線群の群位数ｋを定める。これは勿論素数(k=p)であることが望ましい。第2に乱数ｓ(1<s<k)を定め、作業鍵Y=sPを群演算[+]により計算する。ここで、元Pはベースポイント(base point)と呼ばれ、群演算は基礎となる剰余環Z/pZ上での演算で行われる。ここでは公開鍵は、曲線パラメータa,b,c,dを含めた組(a,b,c,d,p,Ｐ,Ｙ)になる。
次に、メッセージｍを用いたハッシュ値h(m)及び乱数ｒ(1<r<k)を採用する。ここで秘密鍵ｓを用いて
Ｒ＝rＰ 及びt＝(h(m)-s(Ｒ)x)r-1 (mod q)を計算する。そしてその数値の組(Ｒ,t)がメッセージｍと共にその署名として添付される。受信者は署名(Ｒ,t)とメッセージｍを受信した後、その署名の確認を以下のようにして行う。最初にメッセージｍを用いたハッシュ値h(m)を計算し、前記署名と公開鍵からh(m)Ｐ＝tＲ＋(Ｒ)xＹが成立することを確認する。前記署名は秘密鍵ｓを所有する送信者のみが形成できるので、この一致により受信者はこのメッセージｍが信頼できるものと知ることができる。但し、値ｑは2次双曲線群の群位数で、法ｐの場合、q=(p+1)/2である。
【００９１】
ここでもHC-ElGamal署名の数値例を示す。送信者は、最初に2次双曲線群を特定するために法ｐ、群位数q、曲線パラメータ、及びベースポイントを指定する。
それは、p=97177,q=48589,c=12345,a=23459,d=34568,b=45679,x=56791である。ここでも作業鍵Yを乱数s=39876 (1<s<q)により計算し、Ｙ＝ｓＰ＝Ｙ(16537)とする。これにより公開鍵(a,b,c,d,p,Ｐ,Ｙ)=(23459,45679,12345,34568,97177,Ｐ(56791),Ｙ(16537))が定まる。次にメッセージｍからそのハッシュ値h(m)=28765を作成し、乱数r=47654 (1<r<q)を用いて、公開鍵からＲ＝rＰ、r-1 (mod q)=39183、及びt＝(h(m)-s(Ｒ)x)r-1
(mod q)=24878と順次計算し、署名(Ｒ,t)=(Ｒ(27753),24878)を作成して、これをメッセージｍと共に受信者に渡す。受信者は、最初にメッセージｍよりそのハッシュ値h(m)=28765を作成しておき、署名(Ｒ,t)=(Ｒ(27753),24878)と公開鍵を用いて(Ｒ)xＹ=12249
及び(tＲ＋(Ｒ)xＹ)x=17781を計算する。この値が(h(m)Ｐ)x=17781と一致することから、受信者は、このメッセージｍに添付された署名が秘密鍵ｓを知る送信者が作成した真正なものである、と確信できる。
【００９２】
[8-4]鍵ストリーム装置
[図１４]に示した鍵ストリーム装置は、乱数類似の数列を所定のアルゴリズムに従い生成する装置であり、これを利用してメッセージを秘匿することができる。この鍵ストリーム装置は、最初に2次双曲線群の曲線パラメータ、ベースポイント、秘密鍵、更には、置換テーブルT、攪拌関数ST、サイズチェック装置SC、及びゼロ元チェック装置等を有し、入力されたメッセージ(本文)につき鍵ストリームKとのEOR論理を取って暗号文を生成する。2次双曲線群を利用する鍵ストリーム装置については、詳しくは引用文献日本特許庁JPA2008-203548(米国特許庁US20100020964)を参照して欲しい。
【００９３】
[8-4]
2次双曲線群の設計ツール
[図１5]に示されたこのソフトウェア(起動画面)は、既に「双曲線暗号の設計ツール」(特許文献３、特開2011-137897号)において開示された設計ツール「HCG Test
Tools」であり、本発明の本体であり、本発明はこの本体のグラフィクス・ツールに関する。2次双曲線群は法ｎで定まる明示の位数を有し、通常素数ｐを用いた法ｐにより暗号等の利用を図るのであるが、その曲線パラメータ等は所定の規則により制限されている。その制限はそれほど複雑ではないが、その制限を満たすよう曲線パラメータを決める手間を所定のツールにより軽減するメリットも大きい。この設計ツールでは、素数判定ツールを有し、採用する素数ｐの選定に便宜を与える。最も、法ｐの最大値は、このツールが実用よりはテスト用の簡易なツールであることからして、大きな数値を採用することはできない。また、曲線パラメータが2次曲線の判別式Dを定め、その判別式が平方剰余であるか否かで群位数が変化することから、その条件を満たす曲線パラメータの選定に便宜を与えている。更に、選定された曲線パラメータを有する2次双曲線群の、その構造を明らかにする解析ツールを有しており、簡単な2次双曲線群であればそれが有する生成群の構成を知ることができる。その他、拡張2次双曲線群の構造を知るツールや前記グラフィクス・ツールを有する。その詳細については、私のWEBサイト[URL2]若しくは米国配布先
【ＵＲＬ３】
【００９４】
http://download.cnet.com/HCG-Test-Tools
を参照してほしい。
注意すべきことは、このソフトウェアが「.NET Framework 3.5」対応の「Windows」(登録商標）プログラムであり、インストール時にその要件を備えていなければならないことである。「Windows7」(登録商標）では、アクセス制限のために動作しないことがある。
[8-5]
2次双曲線群を用いた暗号作成ツール
[図１６]に示されたこのソフトウェア(起動画面)は、既に「仮想サロゲート・ペアを用いた双曲線暗号の構成方法及び装置」(特許文献４、特開2012-132953号)において開示された設計ツールであり、メッセージを暗号化し、その復号を行うことができるが、その他にFTPプロトコルを用いてネットワーク上での保存に便宜を図っている。また、最近のソフトウェアの更新では、基本となる「UTF-16」符号化の他に、ビット表示や一般ファイルの暗号化も行えるように改良されている。
注意すべきことは、このソフトウェアが「.NET Framework 3.5」対応の「Windows」(登録商標）プログラムであり、インストール時にその要件を備えていなければならないことである。「Windows7」(登録商標）では、アクセス制限のために動作しないことがある。
【００９５】
（９）対数群に関する諸問題
対数群は整数論における新参者であるので、従来の加法群や乗法群とは非常に異なった側面を有している。従って、そこには多くの新課題が存在する。しかし、私は工業技術発明者の一角に居るに過ぎないので、数学上の諸問題を解決する能力を有しているわけではない。けれども、ここに提示する諸問題は、数学を志し、新分野を求める諸学士にそのヒントを与えるかも知れない。最も、その理解に高等数学の知識が要求されているわけではない。その多くは拡張オイラー関数(GCD totient) G(x) 若しくは Gm(x)に関する。
[9-1]
拡張オイラー関数は、法ｎに依存した多値関数である。
既に、拡張オイラー関数G(x)は、明示的に
【数２４０】
2015125201.tif 000249
と表示することができたが、法ｎが異なり、従ってその構成素因数piが異なり、生成される生成群の位数kiが異なることから、拡張オイラー関数は、法ｎに依存した多値関数である、と謂える。そこで、このような多値を網羅的に求める課題が存在する。ここでは、私が「LCM推定法」(LCM Estimation Method)と呼ぶ方法を紹介する。
最初に上式でx=kqと考えてその値を求めてみる。x値が最大位数kqであれば、ｘ値の素因数は、生成群Q(x)の位数kiの素因数を全て含み、かつ、その次数は最大値に一致する。このことから、位数kiを推定し、法ｎを確定する。
[図１７]に示されたこのフロー図は、最初にｘ値の素因数分解を行い、次に部分群位数kiの「候補」である約数ｄの組を作って各約数の満たすべき「約数要件」及び「位数要件」をチェックし、可能性の有る約数ｄをリスト化しておいて、その全ての組み合わせにおいてLCM要件及び特定の定理を満たすか調べる、という方法を採用した。具体的には、以下の様である。
{1} [素因数分解]  最初に値ｘを素因数分解して、全ての素因数を求める。例えば、m個の素因数で
【数２４１】
2015125201.tif 000250
とする。但し、x=kq, ei≧1である。
{2} [LCM要件]  次に、ｘをn個の約数ｄの組でLCMを使って
【数２４２】
2015125201.tif 000251
と表す。各diは言わば部分群位数kiの「候補」である。各diは素因数qiから派生するので全て異なる値でなければならない(当該約数は共通の素因数qiを有していても良い)。同一の値が有れば、それは同一の素因数piを法ｎ(値ｘではない)が有していたことになり、法ｎの素因数分解の結果に反するからである。約数ｄiはx=kqの約数でもあるので、約数ｄiの素因数は全てｘ値に含まれており、その次数はkqの次数と同じか小さく、かつ、kq=[d1,,,,dm]でなければならない(以下、「LCM要件」と言う)。全てのdiの組み合わせで、LCM要件を満たさない組み合わせは、kiの「候補」の組ではなかったことになる。なお、約数ｄiは、di>1であることから、少なくとも１個の素因数を有していなければならない。
{3} [約数要件]  約数ｄの定め方を記載する。
ここでの考え方は、各約数に、各素因数qiの次数(最大でei個)を振り分ける組み合わせであり、振り分けない場合も含める。その全ての組み合わせはL=Πim(1+ei)通りである。即ち、
【数２４３】
2015125201.tif 000252
で0≦eij≦eiである。但し、上記LCM要件を満たさなければならない。若干複雑になるが、d1を選択した後はx/d1の中からd2の候補を選択するという方法を採用したとすれば、約数の組を高速に検証することができる。
{4} [位数要件]  各ｄを調べ、kiの各要件(以下、「位数要件」と言う。) を満たすかを調べる。上記LCM要件若しくは約数要件が満たされているのならば、
(1) dj>1でなければならない。＞約数に１は含めない。
(2) kq=[d1,,,dm]でなければならない。＞上記LCM要件に従えば自動的に満たされる。
(3) 求められた素因数piは全て素数(１を除く)であり、かつ、
(4) 全ての素数が異ならなければならない。＞上記約数要件に従えば自動的に満たされる。
２次双曲線群では群位数kiは
【数２４４】
2015125201.tif 000253
であり、di=kiであるとすれば、次の２条件の何れかが満たされていなければならない。但し、2次双曲線群では、群位数kiは分母である2次関数の判別式Dが平方剰余か否かに依存するので、何れの場合にもその検証を必要とする。
(5) diの最大素因数pMがpiに一致する場合はkM=kiである。その理由は(pi±1)/2から生じる素因数は常にpiによりも小さいからである。そこで、検証ではdiの最大素因数pMeMを求め、それにより
【数２４５】
2015125201.tif 000254
を計算し、diと一致するか確かめる。上式で指数がeM-1でないことに注意する。
(6) diの最大素因数がpiに一致しない場合には、(pi±1)/2=diを確かめる。
何れの場合でも一致しない場合には、当該diは位数要件を満たさず、ｘ値のその様な約数diを有する分解は意味を持たない。なお、求められた素因数piは全て素数(１を除く)でなければならないが、この検証では素因数分解しているので、その確認は済んでいる。
{5} [リスト化]  このようなdiをリスト化して置き、その組み合わせで上記LCM要件(数９)式が成立するのかを検証する。同じdi値は含まれていない、ことに注意する。また、約数の定義によりdi>1である。diを小さい順にリスト化し、その一部組み合わせの最小公倍数(LCM)がｘ値と一致する組み合わせを考える。具体的には、N=2k通りの組み合わせを考え、当該約数の組み合わせの最小公倍数[...dj...]がｘ値と一致するか検証する。ただ、計算量を減らすために、当該約数の組み合わせの積Πdjがｘ値より小さい組み合わせは除かれる。ｘ値の最小公倍数との性格に因る。
{6} LCM要件を含めた上記全ての要件を満たす約数ｄの組み合わせ(複数)を解、即ちkiの組とする。
{7} kiの組が定められると、法nを決定できる。
(1)diの最大素因数pMで位数kMを求め、dx=kMである場合、法ｎへの寄与はpMeM+1である。指数部は最大素因数の指数値eMではなく、eM+1である。
(2)dx=kMでなかった場合、法ｎへの寄与はpi=2di-1であって、pMではない。
{8}複数のG(x)値のうち、φ(x)で割り切れないものを除外する。法ｎが合成数で、生成される部分群がどの様な構造であっても、定理により、G(x)/φ(x)は整数でなければならない。
[図１７]のG(x)の具体的計算を行うフロー図に従い、具体的な計算を行ったので、その計算結果に付き検証してみる。この計算例はx=234の場合で、法nとG(x)値を求めてみた。
φ(234)=72
G(234) [mod 13689]=72
G(234) [mod 177957]=72
G(234) [mod 2313441]=72
G(234) [mod 369603]=216
G(234) [mod 62462907]=216
本発明に係る「LCM推定法」により発見された法nの個数は5個であった。
法ｎを完全に決定する方法、若しくは決定する関数が、存在するか否かは不明である。
【００９６】
[9-2]
2次双曲線半群(QHCS:
Quadratic Hyperbolic Curve Semi-group)
「半群」というのは、「群」の成立要件のうち逆元に関するものを満たさず、しかし、単位元を有するような集合及び群演算の組である。先の議論で、対数群の元の個数が逆元の存在条件を満たさないために、凡そ法ｐの半分の個数しか有しない、と説明していた。しかし、より柔軟な思考でこの逆元問題を解決して、元の個数を増やすことができる。
新たな半群では、逆元の代わりに、その分母及び分子の値を1個の組と考え、この組を半群の元に割り当てる。例えば
【数２４６】
2015125201.tif 000255
のように表示して、逆元を考えない。例えば、
【数２４７】
2015125201.tif 000256
では、x1=(x11, x12) 、x2=(x21, x22)と考え、対応する元もP(x11, x12) 、Q(x21,
x22)と考え、その演算結果もR(x31, x32)として扱うのである。この半群の演算「＋」は、本来
【数２４８】
2015125201.tif 000257
であるが、逆元演算を含まない2個の関係式
【数２４９】
2015125201.tif 000258
【数２５０】
2015125201.tif 000259
を個別に行う演算、と新たに定義するのである。元の演算との対応では、x1=(x11,１) 、x2=(x21,１)のように考える。単位元はP(d,1)となる。元の間の一致は、カッコ内の第1項と第2項の双方の一致で、始めて同一値とみなせる。2次元に拡大して逆元の制限を逃れた、とも考えることができる。そこでは、P(x,0)のような元が存在するが、加法と乗法のみの演算なので、群演算に支障はない。
先に、逆元の計算が最も困難で計算量を要すると説明していたが、上記演算方法を個別に行い、最後に逆元を計算する方法、即ち「逆元計算後回し法(LIEC: Last inverse element calculation method)」がその計算時間削減に有効である。この方法は、2次双曲線群等の群演算の高速化に威力を発揮した。  2次双曲線半群(QHCS)の研究はまだ十分に行われていない。これからの研究課題である。
【００９７】
[9-3]素因数分解問題への応用
法ｎが非常に大きな素数の積で与えられるとき(例えば、n=pq)、法ｎを知っても高速にその素数を求めること(素因数分解)が難しいとされ、楕円曲線群を用いる方法等が研究されている。2次双曲線群も巡回群の一種であるから、似たような方法が有効であろう。2次双曲線群では、その群位数が、当該2次曲線の判別式Dに依存するものの、明示の形で事前に知れている。従って、素因数分解に対し2次双曲線群を用いる方法が、より有効であろうと考えられる。
ここでは、法ｎが2個の素数で構成される場合(n=p1p2)を以下のフロー図で説明する。
楕円曲線群を利用して、大きな合成数(特にn=pq)の素因数分解に威力を有する方法が研究されている。対数群も巡回群の一種であるので、同様の方法を試すことができる。この場合に、群位数ｋが判別式Ｄに対する属性により変化することが、素因数の発見に有効に機能する、と考えられる。
ここでは、[図１８]のフローチャートにて示される２次双曲線群を用いて法ｎ（n=p1p2）を構成する素因数p1及びp2を求める分解方法について説明する。最初に、利用する２次双曲線群の特定を行うこととし、以下の手順に従い、2次双曲線の曲線パラメータを決定する。但し、
【数２５１】
2015125201.tif 000260
で、簡略化表記のために導入した。
第1に、法ｎに対し平方非剰余数Ｄで、できる限り小さな値を有するものを求める。このとき平方剰余の相互法則の適用ができるように、Ｄ値を(D/n)=+1を満たす奇数値で小さなものに選ぶ。一般的に、判別式Ｄの属性で、法ｎを構成する素因数p1等の何れかに係るものが平方剰余である場合は、群演算の途中でゼロ割が発生するので、その選択が正しくなかったことだけは判断できる。経験では、Ｄ値が５０以下の奇素数１４個のうち、少なくとも３個程度(1/4相当)は
【数２５２】
2015125201.tif 000261
の双方を満たすＤ値であり、拡張２次双曲線群の曲線パラメータの指定に利用できることが分かっている。
第2に、D/4=c2+4aに従い、これもできる限り小さな値を有するものをa,cに適当に指定する。なお、判別式D/4と判別式Dを同一視することがあるが、これは値４が通常平方数だからである。
第3に、τ(x)値を計算し、τ(x)が奇数であるものの中から、(τ(x)/n)=+1を満たすｘ値を集める。即ち、τ(x)が奇数である場合には、(τ(x)/n)の値を平方剰余の相互法則を使って求め、そのx値を記録して置く。ここでｘ値の指定はベースポイントＰ(x)を指定すること、ｄ値の指定はゼロ元Ｐ(d)を指定することに、それぞれ対応している。
第4に、記録したｘ値の中から、τ(x)が各素因数に付き平方非剰余であると予想されるものを選択する。一般的に、τ(x)は平方非剰余だがｄ値は平方剰余である場合、即ちゼロ元とベースポイントの間で属性の不一致がある場合は、群演算の途中でゼロ割が発生する。このときは、前記選択が悪かったということなので、中途で計算を打ち切り、他の試数をｘ値又はｄ値として採用する。
第5に、２次双曲線群等の位数計算を行う。ここで、ｍＰ(x)を計算し、ｍＰ＝Ｏとなるｍ値を計算で求めた場合に、一般的にはｍ値は最大位数kqの約数kgになることに注意しなければならない。しかし、最大位数を与える生成群の個数が最も多いので、任意に選択しても最大位数を与えるｘ値を選択する可能性は大きい、と言える。この確率は
【数２５３】
2015125201.tif 000262
程度ということになり、倍率関数の逆数で与えられる。最も正しくパラメータを選択したために最初から最大位数kqを与えるベースポイントを選択していると、n/4回程度の群演算を行わなければゼロ元に至らないので、その演算時間は長大なものになってしまう。
第６に、ｍＰ＝Ｏとなるｍ値を計算で求めた場合に、当該ｍ値を記録して置く。一般的にはｍ値は最大位数kqの約数kgになるので、最大位数kqの主要な因数でない可能性がある。
第７に、群演算の回数が√n回を越えた場合には、最大位数kqを与えるｘ値を選択した可能性が大きいので、試行したｘ値の再選択を行う。再選択するｘ値が尽きた場合には、得られたデータを分析する。
第８に、得られた位数kgのうち特に最大のものを選択し、若しくは最小公倍数を計算する。これ等から、最大位数kqを確定し、素因数p1,p2の計算を行う。通常は、
【数２５４】
2015125201.tif 000263
である。特別な場合、German素数やSophie-German素数の場合には、この計算は容易であるが、一般の場合には最大公約数なども考慮して、決める。
【００９８】
さて、未知の数n=1474289が２つの素因数を有しているものとして、実際に上記方法により値ｎだけからその素因数を求めてみることにする。
（１）平方剰余の相互法則を用いた計算では、D=5,9,11,17,23に対し、全て奇数で、かつ、(D/n)=+1であったので、最小奇素数D=5に指定し、パラメータをa=1,c=1に選択した。
（２）前記パラメータのもとでτ(x)を幾つか計算し、奇数であるものを選択する。
その中から(τ(x)/n)=+1であるようなｘ値を集める。平方剰余の相互法則を用いた計算では、x=2,3,5,8,9に対し、τ(x)=5,11,29,71,89で、全て奇数で、かつ、(D/n)=+1であった。
（３）収集したｘ値から、適当にベースポイントＰ(x)及びゼロ元Ｏ＝Ｐ(d)に割り当てて、位数計算を行う。
（４）ｍＰ＝Ｏとなるｍ値を求め、√n≒1214回の群演算でもゼロ元Ｏに至らない場合には、その位数計算を打ち切る。
（５）前記ｘ値を試行値とし、ｄ値としてd=3とした場合、以下の結果を得ることができた。
n=1474289,c=1,a=1,d=3;で
x= 2 打ち切り
x= 3 完了:位数
kg= 1 
x= 5 打ち切り
x= 8 打ち切り
x= 9 打ち切り
この結果は、最大位数kqを与えるベースポイントが連続したために、目的とした位数kg≦√nを得ることができなかったことを示している。
（６）今度は判別式Ｄの属性を変更してみる。平方剰余の相互法則を用いた計算では、D=3,7,13,15,19に対し、全て奇数で、かつ、(D/n)=-1であったので、D=13に指定し、パラメータをa=3,c=1に選択した。(D/n)=-1は、各素因数に対する属性が互いに異なることを意味しているので、群位数が前回と異なる2次双曲線群を利用することになる。
（７）前記パラメータのもとでτ(x)を幾つか計算し、奇数であるものを選択する。その中から(τ(x)/n)=+1であるようなｘ値を集める。平方剰余の相互法則を用いた計算では、x=3,4,13,16に対し、τ(x)=9,17,179,269で、全て奇数で、かつ、(D/n)=+1であった。
（８）前記ｘ値を試行値とし、ｄ値としてd=3とした場合、以下の結果を得ることができた。
n=1474289,c=1,a=3,d=3;で
x= 3 完了:位数
kg= 1 
x= 4 完了:位数
kg= 585 
x= 13 打ち切り
x= 16 打ち切り
この結果、目的とした位数kg≦√nを１個得ることができ、それがkg=585であったことを示している。
（９）判別式Ｄ値の属性が(D/n)=-1であったので、その最大位数kqは上式で与えられる。法ｎに係る仮の素因数をqとした場合、q=2kg±1=1170±1である。そこで実際に法ｎをこのｑ値で割ってみると、q=1171で割り切れて、p1=1171,p2=1259と決定することができた。
【００９９】
以上の結果を総括する。２次双曲線群で適当にパラメータを定めて位数計算を行った結果、最大位数kqを与えるベースポイントが連続したために打ち切りが続き、当初求める位数を有する生成群を発見できなかった。そこで、判別式Ｄ値の属性変更を行い、今度は群位数が前回と異なる２次双曲線群で適当にパラメータを定めて位数計算を行った結果、求める位数を有する生成群を発見でき、上式により、法ｎを構成する素因数を定めることができた。改めて、２次双曲線群において判別式Ｄ値の属性にその群位数が依存することの特徴が、素因数分解に対し有効であることを、確認することができた。
ＲＳＡ暗号は、２個の素数p,qが不明で、その積n=pqのみが知られている場合に、ｎ値を知ってもその素因数であるp,qを知ることが難しいという、所謂素因数分解の数学的困難性に基礎を置いている、と言われている。φ(n)よりも小さい自然数eで、φ(n)と互いに素であるようなものを選択し、更にde=1 (modφ(n))であるような自然数dを選択する。このとき、公開鍵を(n,e)の組、秘密鍵をdとする公開鍵暗号化方式を構成できる。平文ｍにつき、公開鍵を使って暗号文c=me (mod n)を計算し相手方に送付する。その相手方は、秘密鍵を使って前記平文をm=cd (mod n)により復号できる。
ＲＳＡ暗号は、２個の素数の積n=pqを使うので、上記２次双曲線群を使用する方法で、その素因数を求めることができることがある。素因数p,qを知れば、φ(n)=(p-1)(q-1)を珪酸できるので、逆元計算によって公開鍵eから秘密鍵dを求めることができ、その解読も容易である。しかし、本発明に係る方法の計算量は√n回程度の群演算を必要とするので、必ずしも高速に求めることはできない。実用上は、log nに比例する計算量でなければならないだろう。しかし、２次双曲線群の研究は未だ始まったばかりであり、計算量を削減する余地は十分にあると考えられる。
【０１００】
[9-5]対数群の漸近特性
拡張オイラー関数(GCD totient)の法ｎが無限大である時の漸近形は、
φ(n)≦Gm(n)≦Jm(n)という不等式よりして初等的ではないと考えられるが、しかし、対数群の諸概念の漸近特性は対数群全体を把握するのに便宜である。そこで、この章でその把握を試みてみたい。数学の教科書によれば、オイラー関数(Euler’s totient)φ(n)の漸近形は
【数２５５】
2015125201.tif 000264
で与えられ、定数γ≒0.5772をオイラー定数(Euler’s constant)と云う。これは、調和級数とlog(n)の差が、法ｎが無限大であるときの差分として定義される。
【数２５６】
2015125201.tif 000265
拡張オイラー関数につき考えると、最初に考えるべきは、法ｎを構成する素因数の数ω(n)である。これも数学の教科書によれば、
【数２５７】
2015125201.tif 000266
であり、同様に、約数和の関数σ(n)は
【数２５８】
2015125201.tif 000267
である、と云う。これ等の準備の後に、対数群の群位数ｋにつき考えれば、法n=peの場合
【数２５９】
2015125201.tif 000268
であるので、一般的には
【数２６０】
2015125201.tif 000269
という形になる。この形から、直ちに
【数２６１】
2015125201.tif 000270
ということが知られる。では、法ｎと群位数ｋとはどの程度漸近するのであろうか？
群位数の一般形からは、
【数２６２】
2015125201.tif 000271
であることには違いない。但し、Ψ(n)はデデキンド関数(Dedekind’s arithmetic function) 
【数２６３】
2015125201.tif 000272
である。また、オイラー関数φ(n)の積表示を用いた。デデキンド関数は、前記約数和関数σ(n)とΨ(n)≦σ(n)の関係にあるので、
【数２６４】
2015125201.tif 000273
であり、結局、比k/nにつき
【数２６５】
2015125201.tif 000274
という漸近式を得る。しかし、この両限界は余りに広すぎ、全体の漸近形を知るのに不便である。その解決には、以下に述べる幾何平均(Geometric Mean)を利用する。
先に、比k/kqにつき検討する。最大位数kqについては、対数群では
【数２６６】
2015125201.tif 000275
となり、法ｎが無限遠での挙動をこの式から探るのは難しい。そこで、私は、大胆な仮定のもとに概略を知ろうと試みた。その仮定とは、「LCMの各項が、その主要素因数を除き、共通の値を有するものとし、その値を各項の平均値とする。」というものである。これについては何等の根拠もないが、最大位数kqに近い挙動を示すと考えた。その平均値は、
【数２６７】
2015125201.tif 000276
であるので、法ｎが無限遠では
【数２６８】
2015125201.tif 000277
となる。比k/nの漸近式より比k/kqは
【数２６９】
2015125201.tif 000278
と、求められた。法ｎを構成する素因数の数ω(n)を代入すれば、最終的には
【数２７０】
2015125201.tif 000279
である。上式左辺の傾向を知るために、以下の関数
【数２７１】
2015125201.tif 000280
を調べると、
【数２７２】
2015125201.tif 000281
であるので、減少関数である。即ち、比k/kqは非常に緩く減少する。逆に右辺はlog(n)の程度で増加する。この場合も上式の両限界は余りに広なり過ぎ、全体の漸近形を知るのに不便である。その解決には幾何平均(Geometric Mean)を利用する。
【０１０１】
[9-6]
幾何平均の利用
一般的には、集合{a1,a2,,,,am}の幾何平均は
【数２７３】
2015125201.tif 000282
であるが、m=2の特別の場合でその要素が2個の関数f(x)
及びg(x)であれば
【数２７４】
2015125201.tif 000283
が、その幾何平均ということになる。前の章で、不等式
【数２７５】
2015125201.tif 000284
を知っていたが、この場合Gm(x)の両端から見た幾何平均は
【数２７６】
2015125201.tif 000285
というように求められ、この関数がGm(x)の平均的挙動を示すと考える。そこで、係る方法に従い対数群の諸要素につき、法ｎが無限遠でのその平均的な挙動をとらえてみよう。
第１に、群位数ｋの限界
【数２７７】
2015125201.tif 000286
から、群位数ｋの両端から見た幾何平均
【数２７８】
2015125201.tif 000287
を得る。上式につき、既知の不等式
【数２７９】
2015125201.tif 000288
の両端から見た幾何平均√J2(n)=0.88nを、更に用いる。但し、ゼータ関数ζ(2)=π2/6≒1.645である。それは
【数２８０】
2015125201.tif 000289
となって、厳密ではないが、比k/nの幾何平均的な漸近形を知ることができた。
同様の手法を、既に求めた比k/nの不等式
【数２８１】
2015125201.tif 000290
に適用すれば
【数２８２】
2015125201.tif 000291
を得る。この場合も比k/nの、その幾何平均的な漸近形は、前記方法の結果に近似する。
同様の手法を、比k/kqについての不等式
【数２８３】
2015125201.tif 000292
に適用すれば、
【数２８４】
2015125201.tif 000293
を求めることができる。即ち、比k/kqの幾何平均的な挙動は素因数の個数ω(n)に近いということができる。ここでは、前記「大胆な仮定」を忘れてはなるまい。しかしながら、対数群の主要な構成要素が、法ｎが大きくなった場合にどのような漸近形を有するか知られていることは、対数群全体の把握に重要なことである。
【０１０２】
[9-6]
諸定理と拡張オイラー関数の関係
オイラー関数φについては、h=(x,y)とした場合に、
【数２８５】
2015125201.tif 000294
という関係式が成立し、ジョルダン関数Jm(x)については 
【数２８６】
2015125201.tif 000295
という関係式が成立する。そこで、
【数２８７】
2015125201.tif 000296
という関係から、拡張オイラー関数Gm(x)につき
【数２８８】
2015125201.tif 000297
という関係式が期待される。数値計算ではFm(h)が整数関数であることは知られているが、その具体形は明らかにされていない。しかし、拡張オイラー関数Gm(x)の幾何平均
【数２８９】
2015125201.tif 000298
であれば、前記両式の幾何平均を考えれば、それぞれの辺辺を掛け合わせて
【数２９０】
2015125201.tif 000299
ということになる。
【０１０３】
[9-7]
ゼータ関数と拡張オイラー関数の関係
数学の教科書によれば、オイラー関数φ(x)とゼータ関数(zeta function)ζ(s)の間には
【数２９１】
2015125201.tif 000300
という関係式があり、ジョルダン関数Jm(x)との間には
【数２９２】
2015125201.tif 000301
という関係がある。そこで、両関数との関係を考えれば
【数２９３】
2015125201.tif 000302
がどの様にゼータ関数ζ(x)と関係するのか知りたいものである。残念ながら、私にはその解決のアイデアが浮かばない。しかし、拡張オイラー関数Gm(x)の幾何平均ならその解決の具体性を与えられるかも知れない。
【数２９４】
2015125201.tif 000303
最も、私には、この場合も解決のアイデアが何等浮かんでいない。両辺の幾何平均を考えれば
【数２９５】
2015125201.tif 000304
に近似するであろうと、言えるだけである。
【０１０４】
終わりに：
本発明に係る数学的な背景として対数群の簡単な説明を与えた。この内容は既に「Introduction to
Logarithmic Gruop」(英文)に掲載されたものとほぼ同じ内容の日本語訳「対数群入門」である。対数群の発見は2005年の2次双曲線群の発見に始まるが、2013年に至るまで比較的順調に進展してきた、と謂えるだろう。その間5回ほど数学的な基礎に疑問を抱いたが、今日ではその成果が揺らぐことはない、と考えている。この分野は、初等的な数学的知識で理解でき、多少複雑ではあるが、実用性の高い数学分野である、と考える。記号や複雑さを競う近代の数学とは異なっている。
【産業上の利用可能性】
【０１０５】
本発明は、拡張オイラー関数(GCD Totient)等の整数論的関数の対数グラフをＸＹ軸、座標補助線、及び座標補助ラベルで構成し、当該対数グラフを画面上で表示する場合において、前記座標補助ラベルを参照して前記画面の表示ドットのＸ値及び関数値（Ｙ値) を決め、前記画面上の当該ドット位置に図形を表示する方法であって、「座標補助ラベル」を中心に表示領域上の表示点が決定されることから、表示方法が一貫しており、動的表示等に便宜である。特に、対数グラフで徒にその全てのX値に対応する表示を行うのではなく、定められた表示ドットにおいてのみ表示を行うので、非常に見易く、奇麗な表示を得ることができる。
また、本発明を実践した新プログラム「HCG Test Tools with GCD totient Graphics」では、対数群、特に2次双曲線群の把握とそれを利用する暗号等の構造設計・教育の分野で役に立つだろう。
【０１０６】
更に、双曲線暗号は、２次双曲線群という新しい数学的な背景を基礎に構築された。特に、位数が一定であるという利点を生かして、楕円曲線暗号と比べて暗号装置を容易に構成でき、かつ、容易に解読困難性を付加できる優位性を有していた。このソフトウェア・装置では、そのような理論的背景の上に実際的な暗号アプリケーション「Easy PublicKey CryptoSystem using Logarithmic Group」を作成することができた。
更に、対数群、特に2次双曲線群の理論面では、従来の乗法群との差異が明確になり、離散対数を背景とする加群としての特有の性格が明らかになった。「有限群」の歴史上画期的である。暗号の世界では、ＤＥＳ、ＲＳＡ暗号が依然有用と考えられているが、要求されるセキュリティのレベルも向上して、ビット数の増大で計算負担も増大し、暗号の簡単な利用ができない状況に至っている。双曲線暗号は、少ないビット数計算でも多ビット暗号と等価の計算困難性を容易に付加できるので、次世代の暗号として普及する可能性がある。
双曲線暗号の広告・普及は依然として進んでいないが、数学的な優位性を背景に次第にその認識が深まると考えている。
【図面の簡単な説明】
【０１０７】
【図１】本発明の実施例に係るX軸指定表示を説明する図面である。
【図２】本発明の実施例に係るX座標値を具体的に定める方法のフロー図である。
【図３】本発明の実施例に係る表示形式を説明する図面で、「PictureBox」を4個表示している。
【図４】本発明の実施例に係る平行移動表示を説明する図面である。
【図５】法ｎが合成数である場合の拡張オイラー関数値の数表であり、オイラー関数値との差異が示されている。
【図６】３次関数と2本の直線が作り出す交点の間の関係を説明する図面である。
【図７】３次関数の3根とその係数との関係式がもたらす3個の群の独立性を明示する。
【図８】対数群L11の具体例を示した。
【図９】巡回群を強調する対数群の群演算結果の表示である。
【図１０】次数4のGCD集合のを例示である。
【図１１】現在ｍ次の対数群に、新たな群位数km+1を追加したときの状況図である。
【図１２】拡張オイラー関数G(kg)の数値例を示す数表である。
【図１３】法n=91の場合の、対数群の群構造を示す。
【図１４】2次双曲線群を利用した乱数類似の数列を所定のアルゴリズムに従い生成する鍵ストリーム装置である。
【図１５】双曲線暗号の設計ツール「HCG Test Tools」の起動画面である。
【図１６】仮想サロゲート・ペアを用いた双曲線暗号装置「EasyPublicKey CryptoSystem using Logarithmic Group」の起動画面である。
【図１７】拡張オイラー関数の多値性を調べる「LCM推定法」のフロー図である。
【図１８】２次双曲線群を用いて法ｎ（n=p1p2）を構成する素因数p1及びp2を求める分解方法について説明するフロー図である。
【図１】
2015125201.tif 000305
【図２】
2015125201.tif 000306
【図３】
2015125201.tif 000307
【図４】
2015125201.tif 000308
【図５】
2015125201.tif 000309
【図６】
2015125201.tif 000310
【図７】
2015125201.tif 000311
【図８】
2015125201.tif 000312
【図９】
2015125201.tif 000313
【図１０】
2015125201.tif 000314
【図１１】
2015125201.tif 000315
【図１２】
2015125201.tif 000316
【図１３】
2015125201.tif 000317
【図１４】
2015125201.tif 000318
【図１５】
2015125201.tif 000319
【図１６】
2015125201.tif 000320
【図１７】
2015125201.tif 000321
【図１８】
2015125201.tif 000322