1.初等整数論
1.1 約数,倍数とユークリッドアルゴリズム
1.1.1 約数,倍数,素数
1.1.2 最大公約数,最小公倍数,素因数分解
1.1.3 整数とユークリッドアルゴリズム
1.1.4 拡張ユークリッドアルゴリズム
1.1.5 演習:拡張ユークリッドアルゴリズム
1.2 剰余系
1.2.1 剰余類の定義
1.2.2 剰余類の計算
1.2.3 中国の補題
1.2.4 105減算
1.3 素体とフェルマーの定理
1.3.1 素体における逆元の計算
1.3.2 演習:素体における逆数
1.3.3 素数に関するフェルマーの定理
1.3.4 素数の積に関するフェルマーの定理
1.4 フェルマーの判定法と素数定理
1.4.1 素数の密度
1.4.2 Nまでの数で最初のk個の素数で割り切れない確率
1.4.3 素数判定
1.4.4 剰余類の高速べき計算
1.4.5 演習:高速べき計算と素数判定
1.5 素体上の多項式
1.5.1 体上の多項式
1.5.2 体上の多項式の割り算アルゴリズム
1.5.3 演習:素体上の多項式
1.5.4 演習:多項式と代入
1.5.5 体と多項式での約数,倍数
1.5.6 多項式のユークリッドアルゴリズム
1.5.7 演習:多項式のユークリッドアルゴリズム
1.5.8 多項式における合同類別
1.6 既約多項式とガロア体
1.6.1 既約多項式と素因子分解の存在
1.6.2 ガロア体
1.6.3 演習:ガロア体
1.6.4 最小多項式
1.6.5 原始根の存在定理
1.6.6 ガロア体のフロベニウス写像
1.6.7 演習:ガロア体を係数とする多項式
2.暗号理論
2.1 暗号理論の概要
2.1.1 暗号化と復号
2.1.2 公開鍵暗号
2.1.3 鍵共有と鍵の配送問題
2.2 RSA 暗号
2.2.1 フェルマーの定理とRSA暗号
2.2.2 現在のRSAの問題と世界記録
2.2.3 演習:RSA暗号,鍵の生成と復号
2.3 ディフィー・ヘルマン鍵共有
2.3.1 離散対数問題
2.3.2 ディフィー・ヘルマン鍵共有のプロトコル
2.3.3 エルガマル暗号
2.3.4 演習:ディフィー・ヘルマン鍵共有とエルガマル暗号
2.4 楕円曲線
2.4.1 楕円曲線の定義
2.4.2 座標を使った楕円曲線の和の計算
2.4.3 素体上の楕円曲線の和の例
2.4.4 演習:有限体上の楕円曲線
2.4.5 楕円曲線上の点の自然数倍の高速計算
2.4.6 演習:楕円曲線の点の高速倍数計算
2.5 楕円曲線暗号
2.5.1 楕円曲線ディフィー・ヘルマン鍵共有
2.5.2 楕円曲線エルガマル暗号
2.5.3 一般の整数から楕円曲線の点を作る
2.5.4 演習:楕円曲線ディフィー・ヘルマン鍵共有
2.6 電子署名
2.6.1 電子署名に必要な要件
2.6.2 電子署名の概要
2.6.3 電子署名の準備(ハッシュ)
2.6.4 電子署名の実際
2.6.5 RSA暗号による実装
3.符号理論
3.1 体とベクトル空間
3.1.1 行列の計算
3.1.2 抽象ベクトル空間
3.1.3 部分ベクトル空間と次元
3.2 ベクトル空間と線型写像
3.2.1 線型写像と行列
3.2.2 同型と基底,像と核
3.2.3 行列式
3.2.4 行列式と逆行列,基底
3.3 誤り訂正符号
3.3.1 ブロック符号
3.3.2 ハミング距離
3.3.3 誤り訂正の原理
3.3.4 線型符号と最小ハミング長さ
3.3.5 シングルトン限界
3.3.6 生成行列と組織的符号化
3.3.7 (7,4,3)ハミング符号と誤り訂正
3.3.8 誤り検出とシンドローム行列
3.4 リード・ソロモン符号
3.4.1 符号多項式とリード・ソロモン符号
3.4.2 リード・ソロモン符号の例
3.4.3 リード・ソロモン符号の最小ハミング長さ
3.4.4 リード・ソロモン符号の組織的符号化
3.4.5 演習:リード・ソロモン符号の組織的符号化
3.4.6 (参考)点評価型のリード・ソロモン符号
3.5 リード・ソロモン符号の誤り訂正
3.5.1 シンドローム多項式
3.5.2 変形拡張ユークリッドアルゴリズムと誤り位置多項式
3.5.3 誤り多項式の計算
3.5.4 演習:リード・ソロモン符号の誤り訂正
3.6 巡回符号,BCH符号
3.6.1 巡回符号
3.6.2 BCH符号
3.7 BCH符号の誤り訂正アルゴリズム
3.7.1 シンドローム多項式
3.7.2 誤り位置多項式,誤り多項式の計算
付録A:Pythonによるプログラミング
A.1 Pythonの基本的な使い方
A.1.1 プログラムを始める前の一般的な常識
A.1.2 Spyderのインストール
A.1.3 プログラム環境
A.1.4 言語Pythonについての一般的注意
A.1.5 デバッグについて
A.2 Pythonの文法の基本
A.2.1 変数,リスト,条件分岐
A.2.2 リストの使い方
A.2.3 整数の割り算
A.2.4 インデントと条件分岐if文,else文,elif文
A.2.5 ループを制御するfor文,while文,break文
A.3 関数,クラス,インポート
A.3.1 関数
A.3.2 クラス
A.3.3 演算子オーバロード
A.3.4 データのファイルへの保存
付録B:群論と原始根
B.1 群と巡回群
B.1.1 群の定義
B.1.2 元の位数,同型と巡回群
B.1.3 原始根の存在
B.2 原始根の存在定理
付録C:楕円曲線の和についての結合法則
C.1 射影幾何学と同次多項式のアファイン化
C.2 射影幾何における楕円曲線
C.3 射影幾何における楕円曲線の和
C.4 結合法則について
例題解答
索引