2011 Fiscal Year Annual Research Report
ソフトウェアプロテクションのための超難読言語Malbolgeの研究
Project/Area Number |
22650003
|
Research Institution | Nagoya University |
Principal Investigator |
酒井 正彦 名古屋大学, 大学院・情報科学研究科, 教授 (50215597)
|
Co-Investigator(Kenkyū-buntansha) |
坂部 俊樹 名古屋大学, 大学院・情報科学研究科, 教授 (60111829)
|
Keywords | チューリング完全 / 高級アセンブリ言語 / ソフトウェア保護 |
Research Abstract |
本研究の目的は、プログラムの解読・改ざんが大変困難なプログラム言語であるMalbogeを、ソフトウェア保護の目的に利用できるようにすることである。最も大きな問題点は、該当の言語でのプログラム作成が不可能といわれるほど難しいことにある。本研究ではその常識を覆し、Malbolgeのチューリング完全性を示し、また、Malbolgeプログラム作成手法の確立を目指すものである。 今年度は、以下の成果が得られた。 1.昨年度に作成した3進数の筆算に近い方法による加算プログラムの手法を整理し、これを高級アセンブリ言語にライブラリとして組み込み、実装した。ライブラリを呼び出すために用いている低級アセンブリ言語プログラムの変更には、大変緻密な職人的作業が必要であった。一方で、この実装によりMalbolgeの仮想機械のメモリ空間である3の10乗のうち、プログラムを置くための空間が残り少なくなり、大きなプログラ秦の実装が不可能になるという問題点がわかった。 2.昨年度にMalbolgeの弱チューリング完全性を証明しているが、変数に格納できる値の最大値があり、また、配列のようなデータ列を扱う機能を持っていないことから、チューリング完全性を持つとは言い難い。今年度は、配列データを扱うための基本機能である、インデックスレジスタの機能を高級アセンブリ言語に導入し、それを低級アセンブラで実現しライブラリとして組み込んだ。これにより、メモリがいくらでも増やせる環境であれば、真の意味でのチューリング完全性をもつことの証明が可能になる。
|
Current Status of Research Progress |
Current Status of Research Progress
2: Research has progressed on the whole more than it was originally planned.
Reason
インデックスレジスタの機能が実現できたため、プログラム可能な範囲が理論的には十分になった。一方で、実際の仮想機械のメモリ空間が少なく、現実のプログラムはそのままでは困難であることも判明した。
|
Strategy for Future Research Activity |
メモリ空間の問題が明らかになったため、これを3の20乗に増やした仮想機械を定義する。定義自体は簡単であるが、その実行系の実現にはページング機能の組込が必要である。一方で、低級アセンブラはワード長に強く依存するため、再設計が必要となる。 高級アセンブリプログラムは、現在、インタプリタ方式で実行されるように、Malbolgeプログラムに変換されるように設計されているが、これから元のプログラムを抽出することはそれほど難しくなくできることが判明した。依然として、プログラム改ざんは困難ではあるものの、リバースエンジニアリングを防ぐためにインタプリタ方式による実装から、コンパイル方式への展開が必要と考えられる。
|
Research Products
(1 results)