(57)【要約】【課題】  テキスト形式のままで実行されるプログラムの場合では、その内部処理が明らかになってしまう。【解決手段】  送信側システム１は第１の暗号鍵Ｋ１Ａで暗号化したプログラムＰＲ１と、第２の暗号鍵Ｋ２Ａで暗号化した第１の復号鍵Ｋ１Ｂを受信側システム２に送信し、受信側システム２は内部に隠蔽されている第２の復号鍵Ｋ２Ｂで第１の復号鍵Ｋ１Ｂを抽出し、それを用いてプログラムＰＲ１を抽出し内部的にプログラムＰＲ１を実行する。【選択図】  図２
2005275694.tif 000002
【特許請求の範囲】
【請求項１】
プログラムを実行するプログラム処理系においてプログラムを内部解析から保護する方法であって、
暗号化された暗号化プログラムを読み込むステップと、
前記プログラム処理系内に隠蔽された復号鍵に基づいて前記暗号化プログラムを復号し復号済プログラムを得るステップと
を有する方法。
【請求項２】
プログラムを実行するプログラム処理系においてプログラムを内部解析から保護する方法であって、
第１の暗号鍵を用いて暗号化した暗号化プログラムを読み込むステップと、
前記第１の暗号鍵とともに第１の鍵セットを構成する第１の復号鍵を前記第１の暗号鍵とは異なる第２の暗号鍵により暗号化した暗号化復号鍵を読み込むステップと、
プログラム処理系内に隠蔽され前記第２の暗号鍵とともに第２の鍵セットを構成する第２の復号鍵に基づいて前記暗号化復号鍵を復号し復号済の第１の復号鍵を得るステップと、
前記復号済の第１の復号鍵により前記暗号化プログラムを復号し復号済プログラムを得るステップと
を有する方法。
【請求項３】
第１のプログラムを暗号化する第１の暗号化処理によって得られる暗号化プログラムと、
第１の復号鍵を暗号化する第２の暗号化処理によって得られる暗号化復号鍵と、
復号および実行処理系を実現する処理系であって、その内部に前記暗号化復号鍵を復号する第２の復号鍵を有し、該第２の復号鍵によって前記暗号化復号鍵を復号し、得られた復号済みの前記第１の復号鍵により前記暗号化プログラムを復号し、得られた復号済みの第１のプログラムにより処理を実行する処理系と
を有するシステム。
【請求項４】
プログラムを内部解析から保護する機構を有するシステムであって、
暗号化された暗号化プログラムを出力する暗号化プログラム出力手段と、
プログラムを実行するプログラム処理系であって、その内部に隠蔽された状態の復号鍵と、受け取った前記暗号化プログラムを、該復号鍵に基づいて復号する復号化手段と、を有するプログラム処理系と
を備えたシステム。
【請求項５】
プログラムを内部解析から保護する機構を有するシステムであって、
前記プログラムを暗号化し暗号化プログラムを作成する第１の暗号鍵と、該第１の暗号鍵とともに第１の鍵セットを構成する第１の復号鍵と、
前記第１の復号鍵を暗号化し暗号化復号鍵を作成する第２の暗号鍵と、プログラムを実行するプログラム処理系内に隠蔽され前記暗号化復号鍵を復号する第２の復号鍵と、を含む第２の鍵セットと、
前記暗号化プログラムと前記暗号化復号鍵とを取得して前記第２の復号鍵により前記暗号化復号鍵を復号して得た第１の復号鍵を用いて前記暗号化プログラムを復号し復号済プログラムを作成し、該復号済プログラムにより処理を実行するプログラム処理系と
を備えたシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラムを内部解析から保護する技術に関し、特に、テキスト形式のような非バイナリ系の言語で実行されるプログラムを第３者などによる内部解析から保護する技術に関する。
【背景技術】
【０００２】
従来、プログラムを内部解析から保護する方法として、例えば、特許文献１に記載の技術が知られている。この技術は、仮想オペレーションコードを実行する仮想機械を実装するためのコードを生成し、プログラムのソースコードを仮想オペレーションコードからなる仮想オブジェクトコードに変換し、仮想オブジェクトコードを暗号化し、この暗号化仮想オブジェクトコードを復号するコードを生成する。これにより、プログラムを内部解析から保護することができる。
【０００３】
【特許文献１】特開２００２−１３２３６４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、特開２００２−１３２３６４号公報に記載の方法は、Ｃ言語などで代表されるコンパイラ型言語のプログラムを対象とした技術であり、インタプリタ型言語のプログラムや、Perlなどに代表されるようなスクリプト型プログラムなど、テキスト形式のままで実行されるプログラムの内部処理を隠蔽することはできない。すなわち、プログラム処理がテキスト形式のままで実行されると、簡単にその内部処理を解析することができてしまうという問題がある。
【０００５】
本発明の目的は、テキスト形式のままで実行されるプログラムの内部処理を利用者から隠蔽し、隠蔽したままの形式でプログラムを実行することにより内部解析から保護する技術を提供することである。
【課題を解決するための手段】
【０００６】
本発明の一観点によれば、プログラムを実行するプログラム処理系においてプログラムを内部解析から保護する方法であって、暗号化された暗号化プログラムを読み込むステップと、前記プログラム処理系内に隠蔽された復号鍵に基づいて前記暗号化プログラムを復号し復号済プログラムを得るステップとを有する方法が提供される。
【０００７】
また、プログラムを実行するプログラム処理系においてプログラムを内部解析から保護する方法であって、第１の暗号鍵を用いて暗号化した暗号化プログラムを読み込むステップと、前記第１の暗号鍵とともに第１の鍵セットを構成する第１の復号鍵を前記第１の暗号鍵とは異なる第２の暗号鍵により暗号化した暗号化復号鍵を読み込むステップと、プログラム処理系内に隠蔽され前記第２の暗号鍵とともに第２の鍵セットを構成する第２の復号鍵に基づいて前記暗号化復号鍵を復号し復号済の第１の復号鍵を得るステップと、前記復号済の第１の復号鍵により前記暗号化プログラムを復号し復号済プログラムを得るステップとを有する方法が提供される。
【０００８】
本発明の他の観点によれば、第１のプログラムを暗号化する第１の暗号化処理によって得られる暗号化プログラムと、第１の復号鍵を暗号化する第２の暗号化処理によって得られる暗号化復号鍵と、復号および実行処理系を実現する第２のプログラムであって、その内部に前記暗号化復号鍵を復号する第２の復号鍵を有し、該第２の復号鍵によって前記暗号化復号鍵を復号し、得られた復号済みの前記第１の復号鍵により前記暗号化プログラムを復号し、得られて復号済みの第１のプログラムにより処理を実行する第２のプログラムとを有するシステムが提供される。
【０００９】
また、プログラムを内部解析から保護する機構を有するシステムであって、暗号化された暗号化プログラムを出力する暗号化プログラム出力手段と、プログラムを実行するプログラム処理系であって、その内部に隠蔽された状態の復号鍵と、受け取った前記暗号化プログラムを前記復号鍵に基づいて復号する復号化手段と、を有するプログラム処理系とを備えたシステムが提供される。
【００１０】
また、プログラムを内部解析から保護する機構を有するシステムであって、前記プログラムを暗号化し暗号化プログラムを作成する第１の暗号鍵と、該第１の暗号鍵とともに第１の鍵セットを構成する第１の復号鍵と、前記第１の復号鍵を暗号化し暗号化復号鍵を作成する第２の暗号鍵と、プログラムを実行するプログラム処理系内に隠蔽され前記暗号化復号鍵を復号する第２の復号鍵と、を含む第２の鍵セットと、  前記暗号化プログラムと前記暗号化復号鍵とを取得して前記第２の復号鍵により前記暗号化復号鍵を復号して得た復号済復号鍵を用いて前記暗号化プログラムを復号し復号済プログラムを作成し、該復号済プログラムにより処理を実行するプログラム処理系とを備えたシステムが提供される。
【発明の効果】
【００１１】
以上、本発明によれば、プログラムの内部処理を隠蔽し、第３者による内部解析からプログラムの内容を保護し、そのままの形態でプログラムを実行できるようになるという利点がある。
【発明を実施するための最良の形態】
【００１２】
本明細書において、送信側とは、プログラムを暗号化し送信する側を指す。受信側とは、プログラムを受信して復号し実行する側を指す。
【００１３】
以下、本発明の実施の形態によるプログラムを内部解析から保護するための構成について図面を参照しつつ説明を行う。図１は本実施の形態によるプログラムを内部解析から保護する保護システムの構成例を示す図である。図１に示すように実施の形態による保護システムは、暗号送信側システム１と、受信側システム２及びその間をつなぐネットワーク３と、を含んで構成される。送信側システム１は、送信するプログラムを作成する際などに使用する入力装置１１及び出力装置１２と、処理部１３と、で構成される。処理部１３には、第１鍵セット生成部１３１と、暗号化処理部１３２と、送信部１３３と、第２暗号鍵保持部１３４と、が含まれる。受信側システム２は、入力装置２１と、出力装置２２と、処理部２３と、を有しており、処理部２３は復号処理部２３１と、復号済プログラム実行部２３２と、受信部２３３と、第２復号鍵保持部２３４と、を含む。送信側システム１の第１鍵セット生成部１３１、暗号化処理部１３２、送信部１３３、受信側システムの復号処理部２３１、復号済プログラム実行部２３２、受信部２３３は、それぞれプログラムとして実装され、送信側システム１の第２暗号鍵保持部１３４、受信側システム２の第２復号鍵保持部２３４は、図示しない記憶装置内に生成される。処理部１３及び処理部２３には、その他プログラム実行のための中央処理装置なども含まれるが、自明であるため図示はしていない。また、本実施の形態では受信側システム２が１つの場合についてのみ説明を行うが複数の受信側システム２が存在してもよい。
【００１４】
図２は、本実施の形態によるプログラムを内部解析から保護する保護システムの処理手順を示すブロック図である。本実施の形態によるプログラムを内部解析から保護するシステムでは、公開鍵暗号系の鍵セットを２セット利用する。尚、公開鍵暗号系には、素因数分解を利用した系、楕円曲線を利用した系など様々な種類の系が存在するが、その種類は問わない。
【００１５】
第１鍵セットＫ１は、送信側システム１が提供するプログラムＰＲ１に関するセキュリティの管理を行うために設けられ、送信側システム１において任意のパスフレーズを設定し準備することができる。この第１鍵セットＫ１は暗号通信の安全性を高めるため、プログラムの送付の度に毎回作りなおすようにすることが望ましい。一方、第２鍵セットＫ２は、暗号化されたプログラム（暗号化プログラム）ＰＲ２を復号処理しプログラムに基づく処理を実行するための受信側システム２で利用するものであり、送信側システム１には、第２鍵セットＫ２のうち暗号鍵Ｋ２Ａのみが開示される。第２鍵セットＫ２のうちの復号鍵Ｋ２Ｂは、受信側システム２の内部にのみ保持されており、受信側システム２の利用者が参照することはできない。本実施の形態では第２の鍵セットは受信側システム２毎に固定でユニークなものであることにするが、受信側システムにも第２鍵セット生成部を実装し、送信側からプログラム送信の通知がある毎に第２の鍵セットを生成し暗号鍵を送信側システムに提供するようにしてもよい。
【００１６】
以下、図２と図１とを参照して上記プログラムを内部解析から保護するシステムにおける処理の流れについて説明を行う。まず送信側利用者が、入力装置１１などを使用して受信側システムに送信するプログラムＰＲ１を作成する。プログラムＰＲ１は、内部解析を保護する必要性のあるプログラムであり、その内容はPerlなどのスクリプト言語やオペレーティングシステムが提供するコマンドを羅列したテキスト形式のバッチ処理プログラムであるため、そのままではその内部処理はプログラムを渡される受信側システムの利用者も簡単に参照することができてしまう。次に、第１鍵セット生成部１３１がプログラムＰＲ１を保護・管理するための鍵セットＫ１を生成する。鍵セットＫ１は第１の暗号鍵Ｋ１Ａと第１の復号鍵Ｋ１Ｂとからなる公開鍵暗号系の鍵セットである。次に、暗号化処理Ｓ１において暗号化処理部１３２が第１の暗号鍵Ｋ１Ａを用いてプログラムＰＲ１を暗号化し、暗号化プログラムＰＲ２を作成する。
【００１７】
次いで、暗号化処理Ｓ２において受信側システム２が提供し（換言すれば受信側システム２内に隠蔽された復号鍵Ｋ２Ｂとセットになった）第２暗号鍵保持部１３４に格納されている第２の暗号鍵Ｋ２Ａを用いて暗号化処理部１３２が復号鍵Ｋ１Ｂを暗号化し、暗号化復号鍵Ｋ１Ｃを作成する。このようにして作成された暗号化プログラムＰＲ２と暗号化復号鍵Ｋ１Ｃが送信部１３３からネットワーク３を経由して受信側システム２に送信される。
【００１８】
次に、暗号化プログラム２を実行する受信側システム２について説明する。まず、復号処理Ｓ３において、復号処理部２３１が、受信部２３３が受信した暗号化復号鍵Ｋ１Ｃを、第２復号鍵保持部２３４に格納されている第２の復号鍵Ｋ２Ｂにより復号し、復号鍵Ｋ１Ｄ（＝第１の復号鍵Ｋ１Ｂ）を抽出する。尚、この処理において復号できなかった場合は、受け取った暗号化復号鍵Ｋ１Ｃが不正なものと判断され、その旨を受信側システム２の出力装置に表示して処理を終了する。次に、復号処理Ｓ４において、復号処理部２３１が、受信部２３３が受信した暗号化プログラムＰＲ２を復号処理Ｓ３で抽出した復号鍵Ｋ１Ｄ（＝第１の復号鍵Ｋ１Ｂ）を用いて復号し、復号済プログラムＰＲ３（＝プログラムＰＲ１）を得る。この処理において復号に失敗した場合は、受け取った暗号化復号鍵Ｋ１Ｃが不正なものと判断され、その旨を受信側システム２の出力装置に表示して処理を終了する。最後に実行処理Ｓ５において、復号済プログラム実行部２３２で復号済プログラムＰＲ３（＝プログラムＰＲ１）の処理を実行する。復号済プログラムＰＲ３の処理を実行する際には、プログラムの種類に応じてインタプリタコマンドなどを呼び出す必要があるが、この場合オペレーティングシステムが提供するプロセス間通信機能や、プロセス間パイプ機能などを利用して、復号済プログラムＰＲ３をファイルシステム上に一時ファイルとして作成しないようにするなどの対処が必要である。
【００１９】
以上に説明したように、暗号化プログラムＰＲ２と暗号化復号鍵Ｋ１Ｃが送信側システムから受信側システムに渡され、受信側システムは、暗号化復号鍵Ｋ１Ｃを用いて暗号化プログラムＰＲ２を復号することにより、受信側システム２の内部において復号済プログラムＰＲ３を実行させることができる。復号済プログラムＰＲ３は受信側システム２の内部において実行されるため、受信側システムの利用者は復号済みプログラムＰＲ３の内容を参照することはできない。すなわち、受信側システムの利用者からは隠蔽された状態でプログラムが実行される。加えて、暗号化プログラムＰＲ２の復号鍵Ｋ１Ｂは、受信側システムの保持する第２の複合鍵Ｋ２Ｂとセットになった第２の暗号鍵Ｋ２Ａで暗号化され暗号化復号鍵Ｋ１Ｃとして送信されるため、第２の復号鍵Ｋ２Ｂを保持する受信側システムのみで暗号化プログラムＰＲ２の復号／実行が可能となり、いわば２重の保護を図ることができる。
【００２０】
図３は、図２に示す受信側システム２での処理の流れを示すフローチャート図である（図１及び図２も参照して説明を行う）。まず、ステップＰ１において、受信した暗号化復号鍵Ｋ１Ｃをメモリ上に読み込む。次に、ステップＰ２において、受信側システム２自身が保持する復号鍵Ｋ２Ｂを用いて、読み込んだ暗号化復号鍵Ｋ１Ｃの復号を行う。ステップＰ２において暗号化復号鍵Ｋ１Ｃの復号に失敗した場合は鍵が適正なものではないと判断され、ステップＰ９においてエラーメッセージを表示し処理を終了する。ステップＰ２において暗号化復号鍵Ｋ１Ｃの復号に成功した場合は、ステップＰ３に進む。ステップＰ３において、受信した暗号化プログラムＰＲ２をメモリ上に読み込む。次いで、ステップＰ４において、ステップＰ２で得られた復号鍵Ｋ１Ｄを利用して読み込んだ暗号化プログラムＰＲ２の復号を行う。ステップＰ２の場合と同様に、復号に失敗した場合はステップＰ９に進みエラーメッセージを表示して処理を終了する。
【００２１】
ステップＰ４において、暗号化プログラムＰＲ２の復号に成功した場合には、ステップＰ５に進み、復号済プログラムＰＲ３を実行するために必要な子プロセスを生成し、次いで、ステップＰ６において、復号済プログラムＰＲ３を実行するために必要な処理系を子プロセス内で起動する。ここで、復号したプログラムを実行するために必要な処理系とは、同プログラムがPerl言語で記述されていればＰｅｒｌ、シェルスクリプトで記述されていればそのシェルである。通常、テキスト形式で記載されたプログラムは、プログラム内又はプログラムファイル名などに、そのプログラムを実行するのに必要な処理系に関する情報が埋め込まれている。受信側システム２では、その情報に基づいて、実行に必要となる処理系を起動する。尚、実装方法にも依存するが、必要であれば対象のプログラム中にコメント行などで起動に必要な処理系に関する記述を埋め込んでおき、実行時に本処理系がその情報を元に必要な処理系を起動するようにすることも可能である。
【００２２】
次に、ステップＰ７において、例えば、処理を実行しているオペレーティングシステムがサポートするプロセス間通信機能を利用し、復号済プログラムＰＲ３を子プロセスに送信し、ステップＰ８において、そのプログラムＰＲ３を実行する。インタプリタ型言語やスクリプト型言語は、多くが標準入力からのプログラムコードの入力をサポートしているため、それらの処理系については復号したプログラムコードを子プロセスの標準出力に直接送信することでプログラムの実行が自動的に開始される。標準入力からのプログラムコードの入力をサポートしていない処理系では、一時ファイルなどを作成してプログラムコードの受け渡しが必要になる。この場合は一時ファイルの作成場所を考慮する必要がある。例えば、可能であればメモリ上に仮想一時ファイルを作成し、これを利用してプログラムコードを受け渡すのが好ましい。メモリ上での一時ファイルの作成をサポートしていないオペレーティングシステム環境では、ファイルシステム中で一般ユーザのアクセスできない（すなわち参照できない）場所に一時ファイルを作成するなどの工夫が必要となる。
【００２３】
図４は実際のオペレーティングシステム環境において、システムの利用者側から見た実行例を示す模式的な図である。図４においては、オペレーティングシステム環境としてＵＮＩＸを、また対象プログラムとしてｓｈのシェルスクリプトを例に説明を行う。尚、ファイルを暗号化するための公開鍵暗号化プログラムは任意であるが、ここでは仮にｐｋｃというコマンドが存在するものとする。コマンドｐｋｃは、「ｐｋｃ−ｅｎｃｒｙｐｔ 鍵ファイル対象ファイル」の書式で、鍵ファイルを利用して対象ファイルを暗号化し、その結果を標準出力に出力する。
【００２４】
以下、図４に関して図２も参照して説明する。図４に示すように、送信側システム１は、まず処理の対象となるプログラム(シェルスクリプト)Ｆ１（＝ＰＲ１）をエディタなどにより作成する。次いで、暗号化のために用意した第１の暗号鍵ファイルＦ３（＝Ｋ１Ａ）を利用してプログラムＦ１を暗号化する(コマンドラインＣ１)。コマンドラインＣ１は、”ｓａｍｐｌｅ.ｓｈ”で示されるプログラムＦ１（＝プログラムＰＲ１）を第１の暗号鍵”ｋｅｙ１.ｐｕｂ”によって暗号化し”ｓａｍｐｌｅ.ｓｈ.ｅｎｃ”で示される暗号化プログラムファイルＦ２（＝ＰＲ２）を生成する旨のコマンドである。
【００２５】
次に、送信側システム１は第１の暗号鍵ファイルＦ３と対となる第1の復号鍵ファイルＦ４（＝Ｋ１Ｂ）を、受信側システム２が保持する第２の復号鍵Ｆ７（＝Ｋ２Ｂ）と対をなす第２の暗号鍵ファイルＦ６（＝Ｋ２Ａ）を利用して復号化する(コマンドラインＣ２)。コマンドラインＣ２は、”ｋｅｙ１.ｓｅｃ”で示される第１の復号鍵Ｆ４（＝Ｋ１Ｂ）を第２の暗号鍵”ｋｅｙ２.ｐｕｂ”によって暗号化し”ｋｅｙ１.ｓｅｃ.ｅｎｃ”で示される暗号化復号鍵ファイルＦ５（＝Ｋ１Ｃ）を生成する旨のコマンドである。
【００２６】
受信側は暗号化されたプログラムファイルＦ２（＝ＰＲ２）を実行するために、コマンドラインＣ３を実行する。コマンドラインＣ３は、受信側システム２が内部に保持する第２の復号鍵Ｆ７（＝Ｋ２Ｂ）を利用して暗号化秘密鍵ファイルＦ５(＝Ｋ１Ｃ)を復号し、その結果得られる復号鍵Ｋ１Ｄ（＝第１の復号鍵Ｋ１Ｂ）を利用して暗号化プログラムファイルＦ２（＝ＰＲ２）を復号し、復号済みプログラムＰＲ３を実行するコマンド"ｒｕｎｃｍｄ"を記したコマンドラインである。ここでは暗号化複合鍵ファイルＦ５(ｋｅｙ１.ｓｅｃ.ｅｎｃ)と暗号化プログラムファイルＦ２（ｓａｍｐｌｅ.ｓｈ.ｅｎｃ）はコマンド"ｒｕｎｃｍｄ"の内部で読み込まれ処理されることとしている。この時、受信側システムの出力装置にはコマンド名”ｒｕｎｃｍｄ”は表示されるが、その内容（Ｆ１）は表示されない。受信側システム利用者には内部処理を隠蔽した状態で復号／実行処理が行われるため、プログラムＦ１（プログラム１）の内容を隠蔽し保護することができる。
【００２７】
以上に説明したように、送信側はテキスト形式など見ただけで内容がわかってしまう状態で実行される形態のプログラムを送信時に暗号化し、受信側システムの内部で復号／実行することにより、そのプログラムの処理を隠蔽することができ受信側システム利用者及び第３者の内部処理解析から保護することができる。
【００２８】
また、受信側システム２による暗号化プログラムＰＲ２を実行するには、該受信側システム２が第２の復号鍵Ｋ２Ｂを保持していることが必須となるため、特定の受信者にのみ安全に対象となるプログラム機能を提供することができる。
【図面の簡単な説明】
【００２９】
【図１】本発明の一実施の形態のプログラムを内部解析から保護するシステムを説明するシステム構成図である。
【図２】本発明の一実施の形態のプログラムを内部解析から保護する方法を説明するブロック図である。
【図３】受信側システムのプログラムフローを説明するブロック図である。
【図４】オペレーティングシステム環境での実行例を示す図である。
【符号の説明】
【００３０】
１…送信側システム、１１…送信側システムの入力装置、１２…送信側システムの出力装置、１３…送信側システムの処理部、１３１…第１鍵セット生成部、１３２…暗号化処理部、１３３…送信部、１３４…第２暗号鍵保持部、２…受信側システム、２１…受信側システムの入力装置、２２…受信側システムの出力装置、２３…受信側システムの処理部、２３１…復号処理部、２３２…復号済プログラム実行部、２３３…受信部、２３４…第２復号鍵保持部、３…ネットワーク、ＰＲ１…プログラム、ＰＲ２…暗号化プログラム、ＰＲ３…復号済プログラム、Ｋ１…利用者の鍵セット、Ｋ１Ａ…Ｋ１の暗号鍵、Ｋ１Ｂ…Ｋ１の復号鍵、Ｋ１Ｃ…Ｋ１ＢをＫ２Ａで暗号化した鍵データ、Ｋ１Ｄ…Ｋ１ＣをＫ２Ｂで復号した鍵データ（内容はＫ１Ｂと等しい）、Ｋ２…暗号化／送信処理系の鍵セット、Ｋ２Ａ…Ｋ２の暗号鍵、Ｋ２Ｂ…Ｋ２の復号鍵、Ｓ１…暗号化ステップ、Ｓ２…暗号化ステップ、Ｓ３…復号ステップ、Ｓ４…復号ステップ、Ｓ５…実行ステップ、Ｐ１〜Ｐ９…復号／実行処理系の処理ステップ、Ｆ１…サンプルプログラム (シェルスクリプト)、Ｆ２…サンプルプログラムＦ１を暗号化したデータファイル、Ｆ３…利用者の公開鍵ファイル、Ｆ４…利用者の秘密鍵ファイル、Ｆ５…秘密鍵ファイルＦ４を暗号化したデータファイル、Ｆ６…暗号／実行処理系の公開鍵ファイル、Ｆ７…復号／実行処理系の秘密鍵ファイル、Ｆ８…復号／実行処理系のプログラム本体(コマンド名: ｒｕｎｃｍｄ)、Ｃ１〜Ｃ３…コマンドライン例。
【図１】
2005275694.tif 000003
【図２】
2005275694.tif 000004
【図３】
2005275694.tif 000005
【図４】
2005275694.tif 000006