塩田研究室の研究分野

数論

 数の美しさを愛でる学問です。 たとえば 1729 を取り上げてみましょう。
 日々何十個という公式を生み出す魔術師のような数学者がいました。 インドの数学者ラマヌジャンです。 彼の才能に惚れ込んだハーディ教授からケンブリッジ大学に招聘されますが、 まもなく病を得て療養所に入ることになります。 ハーディ教授が彼を彼を見舞った際、
「自分の乗ってきたタクシーのナンバーは 1729 というつまらない数だったよ。」
と言ったのに対し、ラマヌジャンは
「そんなことはありません。それは、2通りに、2つの立方数の和に書ける、最小の数です。」 と即答したといいます。
1729 = 13 + 123 = 93 + 103
この逸話をもとに 1729 は「タクシー数」と呼ばれています。
 公開鍵暗号の分野では150桁や300桁といった大きな素数を必要とし、 その為に高速な素数判定法がいくつも考案されています。 その中のひとつフェルマーテストは、しかし、「カーマイケル数」と呼ばれる合成数を見逃してしまいます。 厄介なことにカーマイケル数は無限個あることが知られており、 1729 は 3 番目に小さなカーマイケル数です。
 1729 は等差数列を成す 3 つの素数の積です : 1729 = 7 × 13 × 19
 1729 は、10進数としての桁の数を足した数 x と、x の桁を逆にした数 y の積が元の数になるような最大の自然数です :
x = 1 + 7 + 2 + 9 = 19,   y = 91,   19 × 91 = 1729
[オンライン整数列大辞典]
 塩田は博士論文で行った保型形式の実験中に 「階数4の非同値な整数係数二次形式で同じテータ級数を持つ例」を発見しました。 これとは独立に A. Schiemann は 同様な例の発見を目的とした組織的な検索を行い、 そのような二次形式の行列式の最小のものは 1729 であることを突き止めています。 [R.Scharlau, Martin Kneser's Work on Quadratic Forms and Algebraic Groups, p.14, 下から4行目から]
 たった一つの数にもこれだけの顔があります。 こちらが見る眼を養えば養うほど、数はその輝きを増してゆきます。

まずは純粋に数の美しさを愛でることから始めましょう。

楕円曲線

 暗号関係者には   y2 = x3 + a x + b   という式で知られている代数曲線です。  代数曲線の中では直線、2次曲線(円)に次いで次数が小さく、簡単なものかと思いきや、 群構造、虚数乗法、ヴェイユ対(つい)、テイト対(つい)、など実に多彩な構造を持っている優れものです。
 複素数体の上で考える限りは、図形としては円環面(トーラス)、群構造は円( = R / Z )2つの直積というシンプルな姿をしていますが、 定義体を数体や有限体にすると俄然面白さが増してきます。例えば、
 標数 p = 35222204513 の有限体 Fp 上の楕円曲線
E: y2 = x3 + 33787287483 x + 30917453423
Fp-有理点のなす群は位数 35222008847 = 391332 × 23 の可換群であり、その群構造は
E(Fp) = (Z/39133Z)2 × (Z/23Z)
です。この曲線を用いると 39133-分点を用いたヴェイユ対やテイト対が有限体 Fp 上で計算することができます。
 保型形式の整数論においては随所にその姿を現し、 また暗号理論においても上述のような構造を活かして幅広く応用されています。 塩田研究室ではその両面で楕円曲線との長い付き合いが続いています。

計算代数

 整数関数、多倍精度整数、法演算、有限体、多項式、行列、楕円曲線等の計算を 計算機上で実現するためのアルゴリズムを扱う学問です。
 塩田研究室では、保型形式の研究においては例えば数百次の整数係数行列を扱っており、 その固有多項式の係数は10進数で数百桁に及びます(データの例)。 暗号理論においても常に実用レベルの数値を扱い、例えば RSA 暗号の鍵であれば 2048ビット程度の整数を用いています。 それらを実際に計算するプログラムを作成するためには欠かせない学問分野です。

公開鍵暗号

 暗号化鍵を一般に公開し、秘密の復号鍵で復号を行う暗号方式を公開鍵暗号と言い、 不特定多数がネット上で通信を行う現代では不可欠な技術です。 RSA暗号、ElGamal暗号、楕円曲線暗号など、実用になっているものは全て整数論に基づいていおり、 整数論、計算代数、計算量理論等、広範な知識を必要とする研究分野です。

保型形式の整数論

 ここでは一変数の保型形式を紹介します。複素上半平面
H = {τC | Im(τ) > 0 }
上の解析関数であって、モジュラー群 Γ の作用に関して一定の変換則を満たすものをモジュラー形式(一変数の保型形式)と言います。 商空間 Γ\H のコンパクト化 (Γ\H)* はリーマン面の構造を持ち、 モジュラー形式はそのリーマン面上の関数や微分形式として捉えることができます。 このとき、 Γ や (Γ\H)* の持つ整数構造が、モジュラー形式や、それに付随する L-関数に反映し、 それらの整数構造を研究する分野が保型形式の整数論です。
楕円モジュラー関数 j (τ) の例
 j (τ) は次のような性質を持ちます:
  1. τ → (a τ + b) / (c τ + d)    ( a, b, c, d ∈ , a d - b c = 1 ) という変換に関して不変である
  2. j (τ) = 1/q + 744 + 196884 q + 21493760 q2 + …    ( q = e2πiτ ) という整数係数の展開式を持つ
  3. τH が二次の数ならば、j (τ) は代数的整数であり、かつ τ の生成する二次体の類体に属する
  4. 複素トーラス C/( Z+Zτ) を 上の楕円曲線とみなすと、その j-不変量は j (τ) になる
例えば τ = (1 + sqrt(163) i) / 2 のとき、二次体 Q(τ) = Q(sqrt(-163)) の類数は 1 ですので j (τ) の値は整数になりますが、 q = e2πiτ = -e-sqrt(163)π の値はとても小さいので
esqrt(163)π = -j (τ) + 744 + 196884 q + … ≒ -j (τ) + 744
となり、esqrt(163)π は極めて整数に近い値を示します:
  esqrt(163)π
    = 262537412640768743.999999999999250072597198185688879...
esqrt(163)π は、Baker の定理により整数でないことがわかっているにもかかわらず、整数に見えてしまう、という面白い数です。
 特に合同部分群 Γ= Γ0(N) に関する重さ2のモジュラー形式は、 ヘッケ作用素の同時固有関数であるとき、有理数体上の楕円曲線を与えます(そのようにして得られる楕円曲線を「モジュラーである」と言います)。
レベル 11 の例
 レベル N = 11 の場合、(Γ0(11)\H)* はそのままで楕円曲線であり、定義方程式は
E : y2 + y = x3 - x2 - 10 x - 20
で与えられます。Γ0(11) に関する重さ2のモジュラー形式は
f = q × {(1-q)(1-q2)(1-q3)...}2 × {(1-q11)(1-q22)(1-q33)...}2
という積の形で書くことができます。f を展開して
f = q - 2 q2 - q3 + 2 q4 + q5 + ... = q + a(2) q2 + a(3) q3 + ...
のように係数を表すとき、各素数 p について、E の mod p での解の個数 Np(無限遠点含む)と係数 a(p) の間には
Np = 1 - a(p) + p
の関係が成り立ちます。
 志村五郎先生は 「有理数体上の楕円曲線は全てモジュラーである」 という予想を立てられました(「志村予想」)。 この予想は、情報科学コースの創設者である長沼英久先生が指導教官の土井公二先生と共に創られた「土井-長沼膨張写像」の理論がきっかけとなって ワイルズによって証明され、その帰結として350年間未解決だった難問「フェルマ予想」も肯定的に解決されました。この分野の1990年代のできごとです。
 塩田の修士論文 ・ 博士論文では次のような成果を得ました:
 修士論文では、ネーベン型と呼ばれる保型形式から構成される、実2次体上の「志村の楕円曲線」の定義方程式を決定しました。 2次体上の楕円曲線を数値計算した魁(さきがけ)だと思われます。
 博士論文では「志村予想」の主役である重さ2の保型形式を構成する数値実験を行い、 50年間未解決であった「ヘッケの予想」の反例を発見したり、 上述(数論の項参照)のように二次形式の専門家たちが探していた例をおまけで発見したりしました。

誤り訂正符号

 ディジタル信号に生じるビット誤りを一定の範囲で自動訂正できるように符号設計する理論です。 誤り訂正能力、冗長率、符号化速度、復号化速度、装置のコスト等、 状況に応じて優先すべき性能を見定め適切な符号を設計しなければならず、 有限体、線形代数、多項式環、有限幾何、組合せ論などさまざまな数理構造が利用されています。

アルゴリズム的グラフ理論

 グラフ理論は鈴木先生が専門家であって、塩田は、研究分野と言うよりは、グラフ・アルゴリズムを実際にプログラミングして楽しませています。

使ったことのあるプログラム言語

  • Fortran ... 学部生の頃授業で習って、円周率100桁の計算などをやりました。
  • Precision Basic ... 修士論文の計算はこれ。精度付き計算をしてくれる Basic でしたが、今はありません。
  • PASCAL ... 博士論文の計算は PASCAL で書きました。
  • C ... 就職した年に覚えました。(学生の頃はまだ出始めでした。)
  • python ... 菊地先生のお勧めで使い始め、整数論に暗号理論に、実に重宝しています。
  • Visual Basic ... グラフ描画ツールはこれで作りました。
  • Java ... コンパイラ型言語で多倍長整数計算ができる BigInteger が使いたくて覚えました。
  • C++ ... 多倍長整数計算ルーティンを作ろうと思って 2015年に勉強しました。

戻る