C言語とGAPによる

暗号と代数プログラミング

(プラタンBOOKS)

澤田秀樹 著

好評の前著『暗号理論と代数学』のプログラミング版ともいえる本書は、C言語のプログラムで実際に暗号を解読しながら暗号理論を学ぶとともに、その基礎となっている代数学をオープンソースプログラムであるGAPを用いて解説する。
[2002年6月、2版発行]

書籍データ

発行年月 2000年4月
判型 A5
ページ数 208ページ
定価 本体2,400円+税
ISBNコード 978-4-303-72370-5

amazon 7net

概要

 オープンソースによるソフトウエア開発方式の浸透により教育・研究の現場でも安価で質の良いOSと開発環境そして様々なソフトウエアが自由に使えるようになった。研究者としての立場からは、このオープンソースソフトウエア開発は基礎科学の成果が人類共通の財産として誰にでもフリーに提供されるというアカデミズムの伝統にも結び付くところがあり、国籍や収入に関係なく皆が平等に知的な活動に参加できることを保証するこのシステムはきわめて貴重で重要に思える。
 前著『暗号理論と代数学』の知識を仮定してそこに使われる代数学をプログラミングによって解説したとも言える本書が可能になったのもオープンソース方式の恩恵に拠るところきわめて大である。本書のTeX原稿、C言語やGAPプログラミングもすべて著者のLINUXサーバ上で書かれている。
 第1章では暗号系について簡単に復習する。前著の秘密性は守秘性と改め、さらに代数的暗号系の定義もより精密にした。第2章ではプログラマの教養とも言える計算量理論から現代暗号を理解するのに必要なNP完全について触れた。第3章はC言語プログラミングで、演習にも独習にも使えるように初歩的なことから説明した。古典暗号の解読法はすでに確立されているが、このプログラム例にあるように実際に解読してみれば暗号理論がよりいっそう身近なものになると思う。第4章はオープンソースプログラムとして代数学の研究者にも広く使用されているGAP (Groups, Algorithms and Programming)の1999年7月26日リリースの最新安定版4.1を使った暗号理論に必要な代数学の解説である。第5章ではGAPのインストールについて説明する。(「はじめに」より)

目次

第1章 暗号とは
 1.1 暗号系の定義
 1.2 公開鍵暗号系
 1.3 代数的暗号系

第2章 NP完全について
 2.1 計算モデル
 2.2 問題とアルゴリズム
 2.3 多項式時間と指数時間
 2.4 非決定性計算モデル
 2.5 NP完全性

第3章 C言語に親しむ
 3.1 コンピュータとは
 3.2 プログラミングを始める前に
 3.3 端末の扱いかた
 3.4 文字列の操作
 3.5 コンパイルについて
 3.6 UNIXに慣れる
 3.7 古典暗号を書く
 3.8 古典暗号を解く
 3.9 初等整数論から、計算のプログラム
 3.10 関 数
 3.11 ポインタ

第4章 GAPを使う
 4.1 始めると終える
 4.2 単純な計算
 4.3 整数の計算
 4.4 群の計算I
 4.5 群を定義する
 4.6 群の計算II
 4.7 有限体
 4.8 有限体上の楕円曲線

第5章 GAP覚え書き
 5.1 GAPのホームページ
 5.2 GAP4.1のインストール(LINUX)
 5.3 GAP4.1のインストール(WINDOWS)
 5.4 GAP3.4.4について