【事件の表示】
　平成　９年特許願第５３１２７２号「実行可能なプログラムのエンコード方法」拒絶査定不服審判事件〔平成　９年　９月１２日国際公開、ＷＯ９７／３３２１６、平成１１年１０月　５日国内公表、特表平１１−５１１５８２〕について、次のとおり審決する。
【結　論】
　本件審判の請求は、成り立たない。
【理　由】
（一）．手続の経緯および本願発明　
　本願は、１９９６年１２月１９日（パリ条約による優先権主張日；１９９６年３月７日，米国）を国際出願日とする出願であって、その請求項１乃至請求項２に係る発明は、補正された明細書および図面の記載からみて、その特許請求の範囲の請求項１乃至請求項２に記載された次の事項により特定されるものである。　
「【請求項１】実行可能なプログラムに含まれる情報の改ざん防止および隠匿を行うため、前記実行可能なプログラムをエンコードし、このエンコードされたプログラムを実行可能な状態に維持する、当該実行可能なプログラムのエンコード方法において、
　ａ）前記実行可能なプログラムの１あるいはそれ以上の基本ブロック各々に対して、１あるいはそれ以上のチェック・カスケードを生成するステップであって、各チェック・カスケードは、前記基本ブロック各々に類似する、当該ステップと、ｂ）個々のチェック・カスケード全てについて２あるいはそれ以上の同一コピーを生成するステップと、ｃ）前記チェック・カスケードのコピーに分散された周期的なチェック・コードを挿入するステップであって、前記チェック・コードは、前記実行可能なプログラム中の所定ポイントにおいて前記チェック・カスケードの予測出力を監視する、当該ステップと、
　ｄ）前記実行可能なプログラムと前記チェック・カスケードとを相互に絡み合わせて、前記エンコードされた実行可能なプログラムの出力が、前記実行可能なプログラムおよびチェック・カスケードの全ての入力に依存するようにするステップとを備えることを特徴とする実行可能なプログラムのエンコード方法。
【請求項２】　さらに、履歴チェック・コードを挿入して、実行経路の改ざんを検出するステップと、
　前記履歴チェック・コードと、実行可能なプログラムおよび他のカスケードとを相互に関連させるステップとを備えることを特徴とする請求項１記載の実行可能なプログラムのエンコード方法。」
　
（二）．当審の拒絶の理由の概要　
　当審において平成１７年１１月２２日付けで通知した拒絶の理由の概要は次のとおりのものである。
「Ａ．この出願は、下記の点で、特許法第３６条第４項に規定する要件を満たしていない。
　　　　　　　　　　　　　　　　記
…（中略）…
１１．【００５２】に「動作保全」、「近接反転」とあるが、説明不足で技術内容が不明である。
１２．【００５３】に「＜近接反転＞プログラムＰは、Ｐを僅かに変更したことで、Ｐの動作に大きな変化をもたらす場合、近接反転する。」とあるが、説明不足で技術内容が不明である。
　また、『ＥＩＳエンコーディングは、通常のプログラムＰを使って、Ｐと同一の動作を有する近接反転プログラムＱを出力する。ある意味で、「明瞭な設計原理」は、近接を保持することを目的としており、領域（普通、モジュールと呼ばれる）を生成してまでも、近接を制限しようとする。先に述べたように、「不明瞭」設計によって、近接反転が保証されるわけではなく、近接反転を積極的には妨害しないだけである。』とも記載されているが、『近接を保持することを目的としており、領域（普通、モジュールと呼ばれる）を生成してまでも、近接を制限しようとする。』とか『「不明瞭」設計によって、近接反転が保証されるわけではなく、近接反転を積極的には妨害しないだけである。』といったことについての技術説明が不足で内容が不明である。
１３．【００５４】に「カスケードは非巡回ＤＦＧであり、各出力ポートが、全ての入力ポートに依存している。その意図は、どの入力値を変化させても、出力値のほとんど全てを高い確率で変化させることである。」とあるが、説明不足で技術内容が不明である。
　また、「そのカスケードの従属性グラフ（ｄｅｐｅｎｄｅｎｃｙ　ｇｒａｐｈ）を見るものがある。この従属性グラフとは、独立したサブ・グラフのない、１つの単一稠密グラフ（ｓｉｎｇｌｅ　ｄｅｎｓｅ　ｇｒａｐｈ）のことである。」とあるが、技術内容が不明である。そもそも、従属性グラフ、単一稠密グラフとは何か。
１４．【００５５】に『カスケードは、主に、稠密従属性グラフ（ｄｅｎｓｅ　ｄｅｐｅｎｄｅｎｃｙ　ｇｒａｐｈ）の「バックボーン」として用いられる。すなわち、各基本ブロックに対するカスケードは、制御グラフを用いて共に接続されており、元のプログラムを並列にするプログラムを形成するが、このプログラムは、稠密かつ複雑な従属性を有する。唯一の関心が従属性グラフにあるので、演算結果は問題とはならない。』とあるが、説明不足で技術内容が不明である。
　また「図４に示すように、クロック・カスケードやチェック・カスケードＣ１，Ｃ２のような、元のプログラムに類似する様々なカスケードを生成することが可能である。」とあるが、元のプログラムに類似するとはどういうことか、あるいはどういうものか不明である。具体的に示されたい。
…（中略）…
１７．【００５８】に「２入力、２出力の相互関連付け機能」とあるが、相互関連付けとはどういう技術内容のことか。また、具体的にいって、相互関連付け機能とはどういう技術内容か。
　また、「この結果できたネットワークは、カスケードとなる。規則的な構成を有するカスケードを用いても十分であるが、明らかに、不規則な構造のカスケードを用いるのが望ましい。」とあるが、説明不足で技術内容が不明である。
１８．【００５９】に、「Ｍ−＞Ｎ（ＭからＮへ）の相互関連付け機能Ｆは、Ｍ個の入力とＮ個の出力を有する機能である。Ｆは、（大抵いつも）反転可能であることが要求され、各出力は、全ての入力に依存する。」「より正式には、相互関連付け機能は、多数の入力と出力を有するサブＤＦＧであり、どの出力も、１を越える入力機能となり、入力から出力への集約演算（ａｇｇｒｅｇａｔｅ　ｆｕｎｃｔｉｏｎ）は、高い確率で反転可能（つまり、情報を保持する）となる。」とあるが、説明不足で技術内容が不明である。
　また、サブＤＦＧ、集約演算とは何か、１９．【００６０】に「ネットワークを、スイッチ・ネットワークからカスケードへ変換するには、各スイッチ・ノードを、そのスイッチ・ノードと同じ数の入力と出力を有する相互関連付け機能と置き換える。」とあるが、具体的には、どのようになるのか、できれば、図解して示されたい。
…（中略）…
２２．【００６８】に、「１２０：入力プログラムをＤＦＧ（データ・フロー・グラフ）に変えて、入力プログラムの準備をする。」とあるが、【００４０】辺りとも関連するが、具体的にどう変換するのか。
　また、「いくつかのクロック・カスケード、例えば、インクリメントする異なる方法、インクリメントの異なる量等を生成する。」、「異なるカスケードのコピー数がいくつかを決定する。」とあるが、具体的にどうするのか。
　さらに、「各カスケードの相互関連付けの強さを決定する。」とあるが、技術説明が不足で内容が不明である。
　さらにまた、「元のプログラムと同じ、ランダムな基本ブロックを生成する（例えば、元のＢＢをコピーして、わずかに摂動する）。」とあるが、技術説明が不足で内容が不明である。
…（中略）…
２４．【００７０】に「カスケード演算値が予想と異なる場合には、改ざんフラグを設定し、タイマを始動する。」とあるが、予想とは何か、いつ予想したのか、どこで予想するのか。
　また、「ウェーブフロント」とあるが、何か。
　さらに、「相互に関連させるため、準備されたウェーブフロントからランダムな値の対を選ぶ。」とあるが、術説明が不足で内容が不明である。
　さらにまた、「ランダムなデコイ演算（ｄｅｃｏｙ　ｃｏｍｐｕｔａｉｏｎ）をも付加して、演算の対が相互に関連するようにする。」、「さらに、ランダムなデコイ演算を付加して、真の従属性グラフを隠蔽する。」、「ランダムな相互関連付け機能を選ぶ。」、「２つの個別の演算を、相互関連付け機能の単一の演算と置き換える。」、「ウェーブフロントを更新する」、「ウェーブフロントが空きでなければ、ステップ３６０へ進む。」とあるが、術説明が不足で内容が不明である。
　
Ｂ．この出願は、特許請求の範囲が下記の点で、特許法第３６条第６項第１号、２号に規定する要件を満たしていない。
　　　　　　　　　　　　　　　　　記
１．請求項１について(1)「基本ブロック」とあるが、これが何か明確でない。
（２）「チェック・カスケードを生成する」とあるが、チェック・カスケードが何か明確でない。
（３）「チェック・カスケードは、前記基本ブロックに類似し、」とあるが、何がどのように類似するのか明確でない。
（４）「セキュリティ・レベルに関するサイズ」とは、どのような概念であり、どのようにして生成されるのか、発明の詳細な説明を参酌しても不明であり、また、当該「サイズ」が、プログラム実行時にどのように用いられるのかも具体的に想定することができない。
（５）「チェック・カスケードのコピーに分散された周期的なチェック・コード」とあるが、分散されたとはどういうことか明確でない。また、「周期的なチェック・コード」とは何か明確でない。
（６）「チェック・コードは、前記実行可能なプログラム中の所定ポイントにおいて前記チェック・カスケードの予測出力を監視する」とあるが、「予測出力」は、単なる「出力」とどのように異なるのか不明である。
（７）「前記実行可能なプログラムと前記チェック・カスケードとを相互に関連付けて、」とあるが、相互に関連付けるとは、どういうこと、あるいは、どのようにするのか明確でない。
２．請求項２について（１）「改ざんフラグとクロックを保持するクロック・カスケード」とあるが、明細書のどこに記載されているのか明確でない。また、クロックを保持するという技術概念が不明である。
（２）「１あるいはそれ以上の選択されたポイント」とあるが、選択されたポイントとは何か明確でない。
（３）「１ティック分だけ進んでいる」とあるが、どういう意味か不明である。
（４）　ｆ）に、「相互に関連付ける」とあるが、どういうこと、あるいは、どのようにするのか明確でない。
３．請求項３について(1)「このトラップ・コードは、前記改ざんフラグとクロックに応じて実行され、」とあるが、「・・・応じて」実行すると表現したのでは、どのように実行するのか明確でない。
４．請求項４について(1)「クロック・カスケードに、１あるいはそれ以上のトラップ・コードを付加する」とあるが、クロックカスケードは、請求項２によれば、改ざんフラグとクロックを保持するものであり、これにタラップ・コードを付加するとはどういうことか不明である。そもそも「クロック・カスケード」が何のためにあるのか、明細書の記載をみても明確でない。
（２）「トラップ・コードは、前記改ざんフラグとクロックに応じて実行される」とあるが、クロックカスケードに付加されたトラップ・コードがどうして、あるいは、どのようにして、改ざんフラグとクロックに応じて実行されることになるのか不明である。
（３）「再帰的に繰り返して」とあるが、「再帰的に」との技術的意味が不明である。
５．請求項５について（１）明細書のどの記載にこの請求項５の根拠があるのか不明である。
（２）「いずれもが、・・・」とあるが、（１）と（２）とは同時に実行できないのではないか。
（３）「（３）前記トラップ・コード内で無限に循環するプログラムを実行するステップ」とあるが、トラップコード内にプログラムがあるとはどういうことか不明である。
６．請求項６について（１）明細書のどの記載にこの請求項６の根拠があるのか不明である。
（２）「相互関連付けの強さを制御して、前記エンコードされたプログラムのセキュリティと性能を変更するステップ」とあるが、「相互関連付けの強さを制御」するとはどういうことか技術内容が不明である。また、プログラムの性能を変更するとはどういうことか技術内容が不明である。
７．請求項７、８について（１）明細書のどの記載にこの請求項７、８の根拠があるのか不明である。
（２）「・・・サイズと多重度を制御して」とあるが、どういうことか技術内容が不明である。また、プログラムの性能を変更するとはどういうことか技術内容が不明である。
８．請求項９について（１）「・・・カスケードについての相互関連付けの強さを制御して、前記エンコードされたプログラムのセキュリティと性能をさらに変更するステップ」とあるが、「相互関連付けの強さを制御」するとはどういうことか技術内容が不明である。また、プログラムの性能を変更するとはどういうことか技術内容が不明である。
９．請求項１０について（１）明細書のどの記載にこの請求項１０の根拠があるのか不明である。
（２）「クロック読出しコード」とは何か不明である。
（３）「このトラップ・コードが実行される前に可変時間遅延をもたらすようにするステップを備えること」とあるが、可変遅延時間とは何か、また、その技術的意味は何か。
１０．請求項１１について（１）明細書のどの記載にこの請求項１１の根拠があるのか不明である。
（２）「出口セル」とは何か。また、出口セルの位置を決めるとはどういうことか、技術内容が不明である。
（３）「前記関連するカスケードのサイズと多重度を制御して、前記エンコードされたプログラムのセキュリティを増大させるステップとを備えた」とあるが、「サイズと多重度を制御」するとはどういうことか技術内容が不明である。また、その制御によりどうしてセキュリティが増大するのか不明である。
…（中略）…
　
Ｄ．本件の請求項１乃至１２に係る各発明は、下記の点で、特許法第２９条第１項柱書の発明に当たらない。
　　　　　　　　　　　　　　　　　記
　本件の各発明は、プログラムに特定のコードを付加又は挿入し相互に関連付けるエンコード手法に係るものであるが、当該エンコード手法自体は、人為的な取決めのみに基づいたものであって、自然法則を利用したものではない。また、当該エンコード手法は、コードの付加、挿入、変換といった抽象的なデータ操作のみから構成されており、何らのハードウェア資源も利用していない。」
　
（三）．請求人の主張
（１）請求人は、平成１８年５月２９日付け補正書を提出し、同日付けの意見書において、概略、次の旨述べている。
「【意見の内容】
…（中略）…
２．理由Ａについて
　次に、発明の詳細な説明の記載に不備の指摘事項（理由Ａ）について説明する。
…（中略）…
Ａ１１．（指摘事項）
【００５２】に「動作保全」、「近接反転」とあるが、説明不足で技術内容が不明である
。
（見解）
　「動作保全」は、エンコードされたという事実に係わらず、動作が維持されることを示すもので、分かり易くするために、「動作維持」に補正する。「近接」は「似ていること」「類似していること」を示し、「近接反転」は、プログラム中の小さな変化がプログラムの動作の大きな変化を引き起こすことをいう。「近接反転」は、分かり易くするために、「近接性の反転」に補正する。
　　段落【００５２】については、別途提出する手続き補正書で補正を行う。これにより、かかる記載は明瞭になったものと確信する。
　
Ａ１２．（指摘事項）
【００５３】に「＜近接反転＞プログラムＰは、Ｐを僅かに変更したことで、Ｐの動作に大きな変化をもたらす場合、近接反転する。」とあるが、説明不足で技術内容が不明である。
　また、『ＥＩＳエンコーディングは、通常のプログラムＰを使って、Ｐと同一の動作を有する近接反転プログラムＱを出力する。ある意味で、「明瞭な設計原理」は、近接を保持することを目的としており、領域（普通、モジュールと呼ばれる）を生成してまでも、近接を制限しようとする。先に述べたように、「不明瞭」設計によって、近接反転が保証されるわけではなく、近接反転を積極的には妨害しないだけである。』とも記載されているが、『近接を保持することを目的としており、領域（普通、モジュールと呼ばれる）を生成してまでも、近接を制限しようとする。』とか『「不明瞭」設計によって、近接反転が保証されるわけではなく、近接反転を積極的には妨害しないだけである。』といったことについての技術説明が不足で内容が不明である。
（見解）
　　段落【００５３】については、別途提出する手続き補正書で補正を行う。これにより、かかる記載は明瞭になったものと確信する。
　
Ａ１３．（指摘事項）
【００５４】に「カスケードは非巡回ＤＦＧであり、各出力ポートが、全ての入力ポートに依存している。その意図は、どの入力値を変化させても、出力値のほとんど全てを高い確率で変化させることである。」とあるが、説明不足で技術内容が不明である。
　また、「そのカスケードの従属性グラフ（ｄｅｐｅｎｄｅｎｃｙ　ｇｒａｐｈ）を見るものがある。この従属性グラフとは、独立したサブ・グラフのない、１つの単一稠密グラフ（ｓｉｎｇｌｅ　ｄｅｎｓｅ　ｇｒａｐｈ）のことである。」とあるが、技術内容が不明である。そもそも、従属性グラフ、単一稠密グラフとは何か。
（見解）
　　段落【００５４】については、別途提出する手続き補正書で補正を行う。これにより、かかる記載は明瞭になったものと確信する。
　
Ａ１４．（指摘事項）
【００５５】に『カスケードは、主に、稠密従属性グラフ（ｄｅｎｓｅ　ｄｅｐｅｎｄｅｎｃｙ　ｇｒａｐｈ）の「バックボーン」として用いられる。すなわち、各基本ブロックに対するカスケードは、制御グラフを用いて共に接続されており、元のプログラムを並列にするプログラムを形成するが、このプログラムは、稠密かつ複雑な従属性を有する。唯一の関心が従属性グラフにあるので、演算結果は問題とはならない。』とあるが、説明不足で技術内容が不明である。
　また「図４に示すように、クロック・カスケードやチェック・カスケードＣ１，Ｃ２のような、元のプログラムに類似する様々なカスケードを生成することが可能である。」とあるが、元のプログラムに類似するとはどういうことか、あるいはどういうものか不明である。具体的に示されたい。
（見解）
　カスケードは図４に表示されている。
元のプログラムに類似するといのは、文字通り、元のプログラムと似ているということである。
　段落【００５５】については、別途提出する手続き補正書で補正を行う。これにより、かかる記載は明瞭になったものと確信する。
　
Ａ１５．（指摘事項）
【００５６】に「そこで、元のプログラムは、これらのカスケードと関連づけられ、」とあるが、説明不足で技術内容が不明である。どういうことか具体的に説明されたい。
また、『元の従属性グラフが「隠される」ことになる。言い換えれば、元の従属性グラフ（これを、非常に、通常および／または簡単なものにできる）が、人為的に構成された異形なものに「併合」される。これによって、元の従属性グラフを再生することが、非常に困難になる（よって、リバース・エンジニアリングの主たる手段の１つを無効にできる）
。』とあるが、説明不足で技術内容が不明である。どういうことか具体的に説明されたい。
（見解）
　段落【００５６】については、別途提出する手続き補正書で補正を行う。これにより、かかる記載は明瞭になったものと確信する。
　
Ａ１６．…（中略）…
Ａ１７．（指摘事項）
【００５８】に「２入力、２出力の相互関連付け機能」とあるが、相互関連付けとはどういう技術内容のことか。また、具体的にいって、相互関連付け機能とはどういう技術内容か。
　また、「この結果できたネットワークは、カスケードとなる。規則的な構成を有するカスケードを用いても十分であるが、明らかに、不規則な構造のカスケードを用いるのが望ましい。」とあるが、説明不足で技術内容が不明である。
（見解）
　「相互関連付け」は意味が分かりにくいので「相互絡み合わせ」と補正する。「相互絡み合わせ」とは、オリジナルプログラムやカスケードを相互に絡み合わせて接続することを意味する。すなわち、これらを分離が困難なように相互に絡み合わせ接続するものである。
　段落【００５８】については、別途提出する手続き補正書で補正を行う。これにより、かかる記載は明瞭になったものと確信する。
　
Ａ１８．（指摘事項）
【００５９】に、「Ｍ−＞Ｎ（ＭからＮへ）の相互関連付け機能Ｆは、Ｍ個の入力とＮ個の出力を有する機能である。Ｆは、（大抵いつも）反転可能であることが要求され、各出力は、全ての入力に依存する。」「より正式には、相互関連付け機能は、多数の入力と出力を有するサブＤＦＧであり、どの出力も、１を越える入力機能となり、入力から出力への集約演算（ａｇｇｒｅｇａｔｅ　ｆｕｎｃｔｉｏｎ）は、高い確率で反転可能（つまり、情報を保持する）となる。」とあるが、説明不足で技術内容が不明である。
　また、サブＤＦＧ、集約演算とは何か、
（見解）
　サブＤＦＧとは、完全な形のＤＦＧではなく、その一部を構成するＤＦＧである。
「集約演算」は「収束演算」と補正する。この「収束演算」は入力を出力に収束させるための演算をいう。
段落【００５９】については、別途提出する手続き補正書で補正を行う。これにより、かかる記載は明瞭になったものと確信する。
　
Ａ１９．（指摘事項）
【００６０】に「ネットワークを、スイッチ・ネットワークからカスケードへ変換するには、各スイッチ・ノードを、そのスイッチ・ノードと同じ数の入力と出力を有する相互関連付け機能と置き換える。」とあるが、具体的には、どのようになるのか、できれば、図解して示されたい。
（見解）
　上記において、「相互関連付け機能」の表現を「相互絡み合わせ機能」と補正したので理解が容易になったものと思料する。すなわち、上記の文意は、スイッチ・ノードを、それと同じ数の入力と出力を有し相互絡み合わせ機能を有するサブＤＦＧと置き替えることである。
　段落【００６０】については、別途提出する手続き補正書で補正を行う。これにより、かかる記載は明瞭になったものと確信する。
　
Ａ２０．（指摘事項）
【００６１】に「演算についての独立したストランド（すなわち、その１つの出力が、他の入力に依存しない）があり、そのストランドへの入力を相互に関連させることで、従属性の小さいグラフと従属性の大きいグラフを結合させることができる。図５は、元のプログラムとクロックという、２つのストランドを有する簡単な場合を示している。」とあるが、図５において、ストランド（すなわち、その１つの出力が、他の入力に依存しない）
とは、どういうことになるのか。また、そもそもストランドとは何か。
（見解）
別途提出する手続き補正書中で「ストランド」を「分岐」と補正した。
独立した分岐演算は、１つの機能の入力がもう１つの機能の入力に依存しない機能をいう。すなわち、ここでの分岐は、ツリー構造における分岐を意味する。
　段落【００６１】については、別途提出する手続き補正書で補正を行う。これにより、かかる記載は明瞭になったものと確信する。
　
Ａ２１．…（中略）…
Ａ２２．（指摘事項）
【００６８】に、「１２０：入力プログラムをＤＦＧ（データ・フロー・グラフ）に変えて、入力プログラムの準備をする。」とあるが、【００４０】辺りとも関連するが、具体的にどう変換するのか。
　また、「いくつかのクロック・カスケード、例えば、インクリメントする異なる方法、インクリメントの異なる量等を生成する。」、「異なるカスケードのコピー数がいくつかを決定する。」とあるが、具体的にどうするのか。
　さらに、「各カスケードの相互関連付けの強さを決定する。」とあるが、技術説明が不足で内容が不明である。
　さらにまた、「元のプログラムと同じ、ランダムな基本ブロックを生成する（例えば、元のＢＢをコピーして、わずかに摂動する）。」とあるが、技術説明が不足で内容が不明である。
（見解）
　これは、入力プログラムを図２に示した基本ブロックＢＢの形式にして、ＤＦＧに変えてエンコード処理する実際のプロセスを説明したものである。クロック・カスケードの数や、カスケードのコピーの数は、いくつでも良い。
　段落【００６８】については、別途提出する手続き補正書で補正を行う。これにより、かかる記載は明瞭になったものと確信する。
　
Ａ２３．（指摘事項）
【００６９】に「クロック・カスケードを選び、このＢＢに対してコピーする。」とあるが、何から選ぶのか（選ぶ母集団は何か）。
　また、「非エントリＢＢ」とあるが、これは何か。
（見解）
　カスケードは、入力プログラムに類似したもので、単に、クロック・カスケードを選択する、又は、１つの利用可能なクロック・カスケードを選択すれば良い。「非エントリＢＢ」は、エントリ点で、データ・フロー・グラフに供給されない基本ブロックである。
　段落【００６９】については、別途提出する手続き補正書で補正を行う。これにより、かかる記載は明瞭になったものと確信する。
　
Ａ２４．（指摘事項）
【００７０】に「カスケード演算値が予想と異なる場合には、改ざんフラグを設定し、タイマを始動する。」とあるが、予想とは何か、いつ予想したのか、どこで予想するのか。
　また、「ウェーブフロント」とあるが、何か。
　さらに、「相互に関連させるため、準備されたウェーブフロントからランダムな値の対を選ぶ。」とあるが、術説明が不足で内容が不明である。
　さらにまた、「ランダムなデコイ演算（ｄｅｃｏｙ　ｃｏｍｐｕｔａｉｏｎ）をも付加して、演算の対が相互に関連するようにする。」、「さらに、ランダムなデコイ演算を付加して、真の従属性グラフを隠蔽する。」、「ランダムな相互関連付け機能を選ぶ。」、「２つの個別の演算を、相互関連付け機能の単一の演算と置き換える。」、「ウェーブフロントを更新する」、「ウェーブフロントが空きでなければ、ステップ３６０へ進む。」
とあるが、技術説明が不足で内容が不明である。
（見解）
　「ウェーブフロント」は「ｗａｖｅｆｒｏｎｔ」の訳であり、空間において、信号等が同時に到着した面のことをいう。例えば、水の表面に水滴を一滴落とした時に波が広がる面をいい、一般的な技術用語である。本願明細書では、「波面値」と訳した。
　段落【００７０】については、別途提出する手続き補正書で補正を行う。これにより、かかる記載は明瞭になったものと確信する。
　
３．理由Ｂについて
　次に、特許請求の範囲の記載に不備の指摘事項（理由Ｂ）について説明する。
Ｂ１．請求項１について（Ｂ１−１）（指摘事項）
「基本ブロック」とあるが、これが何か明確でない。
（見解）
　基本ブロックは、制御フロー・グラフを表すもので、段落【００４３】〜【００４６】及び図３に詳細に示されている。
（Ｂ１−２）（指摘事項）
「チェック・カスケードを生成する」とあるが、チェック・カスケードが何か明確でない。
（見解）
　本発明は、実行可能なプログラムを、実行可能を維持しつつ、改竄防止及び隠匿を行うために、エンコードするもので、実行可能なプログラムと類似するプログラムと絡み合わせて、エンコードを行うものである。カスケードは、段落【００５４】に示すように、各出力ポートが全ての入力ポートに依存するもので、入力値を変化させると、出力値が高い確率で変化する。カスケードは、実行可能プログラムに類似したものが用いられる。チェック・カスケードは、改竄等が行われた場合の整合性をチェックするためのカスケードである。
（Ｂ１−３）（指摘事項）
「チェック・カスケードは、前記基本ブロックに類似し、」とあるが、何がどのように類似するのか明確でない。
（見解）
　これは、「実行可能なプログラムの基本ブロックに類似する」という意味である。プログラムに類似するカスケードを形成することは、段落【００５５】に記載されている。
（Ｂ１−４）（指摘事項）
…（中略）…
（Ｂ１−６）（指摘事項）
「チェック・コードは、前記実行可能なプログラム中の所定ポイントにおいて前記チェック・カスケードの予測出力を監視する」とあるが、「予測出力」は、単なる「出力」とどのように異なるのか不明である。
（見解）
　「予測出力」とは、改竄がされていない場合に想定される出力である。
（Ｂ１−７）（指摘事項）
「前記実行可能なプログラムと前記チェック・カスケードとを相互に関連付けて、」とあるが、相互に関連付けるとは、どういうこと、あるいは、どのようにするのか明確でない。
（見解）
　「関連付け」については、理解を容易とするために、「関連付け」を「絡み合わせ」と補正する。「絡み合わせ」は、互いに容易に分離できないように、結合するものであり、段落【００５９】に記載されている。
…（中略）…
　
４．理由Ｄについて（指摘事項）
　拒絶理由通知書によれば、本件の請求項１乃至１２に係る各発明は、特許法第２９条第１項柱書の発明に当たらないと指摘されている。すなわち、本件の各発明は、プログラムに特定のコードを付加又は挿入し相互に関連付けるエンコード手法に係るものであるが、当該エンコード手法自体は、人為的な取決めのみに基づいたものであって、自然法則を利用したものではない。また、当該エンコード手法は、コードの付加、挿入、変換といった抽象的なデータ操作のみから構成されており、何らのハードウェア資源も利用していないとされている。
（見解）
　本願は、ソフトウエア・プログラムまたはハードウェア設計の構成プロセスに関し、詳細には、ソフトウエアまたはハードウェアに含まれる情報が知得されたり、改ざんされるのを防ぐためのエンコード・プロセスに関するものであり、自然法則を利用した技術的思想であると思料する。また、エンコード手法は、確かに、コードの付加、挿入、変換といったデータ操作を行うものであるが、信号処理を伴うソフトウエア・プログラムまたはハードウェア設計に関するものであるので、単なる抽象的なデータ操作には当たらないものと思料する。
（以下略）」
　
（四）．当審の判断　
理由Ａについて
ア．前記拒絶理由Ａにおける、１１．〜１２．の点については、「動作保全」、「近接反転」をそれぞれ分かり易く「動作維持」、「近接性の反転」に補正し、段落【００５２】【００５３】を補正したとしているが、これらの補正は単に文言を言い換えたにすぎないものであり、実質的で具体的な技術内容は明細書中に説明されておらず、意見書中においても説明されていない。例えば、前記動作維持や近接性の反転が、図１乃至図６のどこが対応しており、どれが前記近接性の反転であるのか具体的に技術的内容を説明しておらず、また、Ｐと同一の動作をする近接反転プログラムＱとは、Ｐ、Ｑが、例えば図１乃至図６でいえばどこの部分がＰであり、どこの部分がＱに対応するのか、具体的に技術的内容を説明しておらず、依然として、発明の詳細な説明は、当業者が発明の実施をすることができる程度に明確かつ十分に記載したものとなっていない。
イ．前記拒絶理由Ａにおける、１３．〜１４．の点については、「１つの単一稠密」を「単一の密度」に、「元のプログラムに類似する」については、文字通り、「元のプログラムと似ている」ということである旨説明しているが、これらの補正は、単に文言を言い換えた程度であり、技術的内容を説明しておらず、図４にカスケードが表示されていると主張しているが、図４にはオリジナル（元の）プログラムとＣＬＫ（クロック）カスケードとチェック・カスケードＣ１，Ｃ２等は示されていても、オリジナル（元の）プログラムとどこがどのようであれば類似しているといえるのか説明されているわけではないので意味内容が明確でなく、発明の詳細な説明は、当業者が発明の実施をすることができる程度に明確かつ十分に記載したものとなっていない。
　例えば、図５（ＦＩＧ．５）のように、オリジナルなプログラムが（ａ＋ｂ）の合計を出力するプログラムであり、カスケードがクロックカスケードであり、旧クロック（旧ＣＬＫ）に対して１が＋され新クロック（新ＣＬＫ）が出力される場合であったとしても、オリジナルなプログラムとクロック・カスケードのどこがどのようであれば類似しているといえるのか、技術的な説明もされておらず、結局、類似しているとは、文字通り、「元のプログラムと似ている」としか開示していないので、発明の詳細な説明は、当業者が発明の実施をすることができる程度に明確かつ十分に記載したものとなっていない。
ウ．前記拒絶理由Ａにおける、１５．の点については、依然として技術内容について具体的に説明されておらず、仮に、図５のコードに対して一つの相互絡み合わせを適用した場合のものが図６に一例として示され、図６は元の依存グラフが隠されるものにあたるとしても、【００５６】段落の説明と図５、図６の関連については何ら技術的な説明もされておらず、発明の詳細な説明は、当業者が発明の実施をすることができる程度に明確かつ十分に記載したものとなっていない。
エ．前記拒絶理由Ａにおける、１７．の点については、「相互関連付け」を「相互絡み合わせ」と補正するとともに【００５８】段落を補正しているが、相互絡み合わせと補正することは抽象的な概念で単に文言上、言い換えた程度であって、意見書中にも技術的内容を具体的に説明しておらず、補正された【００５８】段落において、カスケードを構成する簡単な方法が、２×２のスイッチ素子を置き換えるのではなく、相互に絡み合わせる機能を有するスイッチを２×２のスイッチ素子に置き換えることによりなぜなされるかも明らかでない。
　相互絡み合わせ機能については、前記拒絶理由Ａにおける、１８．においても指摘されているが、ここでは、集約演算を収束演算と文言を言い換え、【００５８】段落を補正している。しかし、１８．における反転や収束とは、図２乃至図７のどこが反転に対応しており、どこが収束演算であって収束に対応しているのか、発明の詳細な説明や意見書中でも説明されておらず、当業者が発明の実施をすることができる程度に明確かつ十分に記載したものとなっていない。
オ．前記拒絶理由Ａにおける、２２．の点については、「各カスケードの相互関連付けの強さを決定する」を「各カスケードの相互絡み合いの強さを決定する」とし、及び「わずかに摂動する」を「わずかにかき乱す」にすることを含む【００６８】段落の補正により明瞭になった旨、請求人は述べているが、これは単に文言を言い換えたにすぎないもので、依然として技術的内容について具体的にどうするのか説明されておらず、発明の詳細な説明は、当業者が発明の実施をすることができる程度に明確かつ十分に記載されていない。
カ．前記拒絶理由Ａにおける、２４．の点については、「カスケード演算値が期待値と異なる場合には、改ざんフラグを設定し、タイマを始動する」とは、第２図乃至第７図と関連して具体的に説明がされておらず、【００７０】の記載のみではどこでどのようにして期待値と異なる場合とするのか不明瞭であり、発明の詳細な説明は、当業者が発明の実施をすることができる程度に明確かつ十分に記載されているとはいえない。
　
理由Ｂについて
キ．前記拒絶理由Ｂの、１．請求項１についての（２）、（３）において、「チェックカスケードを生成する」及び「チェックカスケードは、前記基本ブロックに類似し」は、依然として、どのように類似するのか明確でないので、結果的に、類似する事項を有するチェックカスケードも明確でない。請求人は、【００５５】段落にプログラムに類似するカスケードを形成することは記載されている旨主張しているが、当該段落の記載を参照しても、図４を参照しても、 図４に示すように、クロック・カスケードやチェック・カスケードＣ１、Ｃ２は、オリジナルのプログラムに類似するという以上の具体的な類似の技術的内容は出てこず、図４からはそれぞれのカスケードが元のプログラムにどのように類似しているのか明確でない。よって、「類似する」が明確でないので、この構成を有する特許を受けようとする発明が明確であるとはいえない。
ク．前記拒絶理由Ｂの、１．請求項１についての（７）において、「前記実行可能なプログラムと前記チェック・カスケードとを相互に絡み合わせて」と補正されたが、依然として、「相互に絡み合わせて」は、どのようにするのか明確でなく、請求人が「絡み合わせ」が記載されているとする【００５９】段落の記載を参照しても（前掲の拒絶理由Ａの１７．の項参照）、どのようにするのか明確でない。
　
理由Ｄについて
（１）拒絶の理由における、理由Ｄの概要は、本件の各請求項に係る発明は、プログラムに特定のコードを付加又は挿入し相互に関連付けるエンコード手法に係るものであるが、当該エンコード手法自体は、人為的な取決めのみに基づいたものであって、自然法則を利用したものではない。また、当該エンコード手法は、コードの付加、挿入、変換といった抽象的なデータ操作のみから構成されており、何らのハードウェア資源も利用していない、というものである。
（２）請求人は、特許請求の範囲を前記１．のように補正し、本願は、ソフトウエア・プログラムまたはハードウェア設計の構成プロセスに関し、詳細には、ソフトウエアまたはハードウェアに含まれる情報が知得されたり、改ざんされるのを防ぐためのエンコード・プロセスに関するものであり、自然法則を利用した技術的思想であるとともに、エンコード手法は、確かに、コードの付加、挿入、変換といったデータ操作を行うものであるが、信号処理を伴うソフトウエア・プログラムまたはハードウェア設計に関するものであるので、単なる抽象的なデータ操作には当たらない旨主張している。
（３）前記補正された請求項１乃至請求項２は、各請求項に記載された各ステップを実行するソフトウエア・プログラムを排除するものではないから、ソフトウェア関連発明である。
　このソフトウェア関連発明が「自然法則を利用した技術的思想の創作」である要件を備えるかどうかについて検討する。
（３．１）請求項１に係る発明に対して
　請求項１の構成である、「実行可能なプログラムに含まれる情報の改ざん防止および隠匿を行うため、前記実行可能なプログラムをエンコードし、このエンコードされたプログラムを実行可能な状態に維持する、当該実行可能なプログラムのエンコード方法において」は、その実行可能なプログラムのエンコード方法に係り、ハードウェア資源が構成として特定されているものでもなければ、ソフトウェアによる情報処理が、ハードウェア資源を用いて具体的に実現されているとは認められないので、この構成に「自然法則を利用した技術的思想の創作」にあたるところはない。
　また、ａ）前記実行可能なプログラムの１あるいはそれ以上の基本ブロック各々に対して、１あるいはそれ以上のチェック・カスケードを生成するステップであって、各チェック・カスケードは、前記基本ブロック各々に類似する、当該ステップ、
ｂ）個々のチェック・カスケード全てについて２あるいはそれ以上の同一コピーを生成するステップ、
は、それぞれ、ハードウェア資源が構成として特定されているものでもなければ、ソフトウェアによる情報処理が、ハードウェア資源を用いて具体的に実現されているとは認められないので、この構成に「自然法則を利用した技術的思想の創作」にあたるところはない。
　また、ｃ）前記チェック・カスケードのコピーに分散された周期的なチェック・コードを挿入するステップであって、前記チェック・コードは、前記実行可能なプログラム中の所定ポイントにおいて前記チェック・カスケードの予測出力を監視する、当該ステップは、前記の予測出力を監視する点についてみると特別なハードウェアの監視手段によるものではなく、詳細な説明及び図面を参照すると、【００７０】段落に、カスケード演算値が期待値と異なる場合（あるいは異ならない場合）が対応していると認められ、このステップは、いわばプログラム技術における分岐の技術にあたるもので、特別に、ハードウェア資源が構成として特定されているものでもなければ、ソフトウェアによる情報処理が、ハードウェア資源を用いて具体的に実現されているとは認められないので、この構成に「自然法則を利用した技術的思想の創作」にあたるところはない。
　また、ｄ）前記実行可能なプログラムと前記チェック・カスケードとを相互に絡み合わせて、前記エンコードされた実行可能なプログラムの出力が、前記実行可能なプログラムおよびチェック・カスケードの全ての入力に依存するようにするステップ、
は、ハードウェア資源が構成として特定されているものでもなければ、ソフトウェアによる情報処理が、ハードウェア資源を用いて具体的に実現されているとは認められないので、この構成に「自然法則を利用した技術的思想の創作」にあたるところはない。
　また、請求項１における、前記それぞれの構成に関連して、プログラムがコンピュータ・システムに実行させる操作や動作の各ステップは、ソフトウェアとハードウェア資源とが協働した具体的手段によって、使用目的に応じた情報（データ）の演算、加工を実現することにより、使用目的に応じた特有の情報処理装置又はその動作方法が構築されているものではなく、単に、各ステップにおけるエンコード手法、つまり、例えばコードの付加、挿入、変換といったデータの操作に係り、チェック・カスケードを生成したり、同一のコピーを生成したり、チェック・コードを挿入したり、監視（前記分岐）したり、相互に絡み合わせたりするだけで、各ステップのそれぞれについて、例えば、前記生成するという処理において、該処理とハードウェア資源とがどのように協働しているのか記載されているものではないので、エンコード方法のステップ全体をみても、エンコードに係るソフトウェアがコンピュータ・システムに実行させる操作や、動作に、自然法則を利用した技術的思想の創作があるとは認められない。
　
（３．２）請求項２に係る発明に対して
　履歴チェック・コードを挿入して、実行経路の改ざんを検出するステップ、前記履歴チェック・コードと、実行可能なプログラムおよび他のカスケードとを相互に関連させるステップ、
のそれぞれは、ハードウェア資源が構成として特定されているものでもなければ、ソフトウェアによる情報処理が、ハードウェア資源を用いて具体的に実現されているとは認められないので、この構成に「自然法則を利用した技術的思想の創作」にあたるところはない。
　各実行するステップが、ハードウェア資源と協働して具体的にどのように実現されているかの構成が記載されていないので、請求項１の構成に更にこれらの構成を加えたとしても、全体として、自然法則を利用した技術的思想の創作であるとは認めることはできない。
　
（五）．むすび　
　したがって、本願は、特許法第３６条第４項及び第６項に規定する要件を満たしていないので、拒絶をすべきものである。
　また、本願請求項１乃至請求項２に係る発明は、特許法第第２９条第１項柱書に規定する要件を満たしていないので、特許を受けることができない。
　よって、結論のとおり、審決する。