【事件の表示】
　特願２００３−１１５７８６「ハッシュ・アルゴリズムを実装するためのシステム及び方法」拒絶査定不服審判事件〔平成１６年　１月　８日出願公開、特開２００４−　　４７８４〕について、次のとおり審決する。
【結　論】
　本件審判の請求は、成り立たない。
【理　由】
 １．手続の経緯
　出願日　　　　　　　　　　　　　　平成１５年４月２１日
　　　　　　　　　　　　　（優先権主張日２００２年４月２２日，米国）
　拒絶理由　　　　　　　　　　　　　平成１８年１月２５日　
　意見書及び手続補正書　　　　　　　平成１８年４月２１日　
　拒絶査定　　　　　　　　　　　　　平成１８年６月１２日　
　審判請求　　　　　　　　　　　　　平成１８年７月１８日　
　手続補正書　　　　　　　　　　　　平成１８年７月１８日　
　
２．平成１８年７月１８日付の手続補正について
 （１）本件補正
　平成１８年７月１８日付の手続補正（以下、「本件補正」という。）により特許請求の範囲の請求項１乃至請求項２９は次のように補正された。
（本件補正後の特許請求の範囲）
「　…（中略）…
【請求項１５】
　コンピュータにメッセージ・ダイジェストを生成させるためのプログラムであって、
　コンピュータに、
　データ・ブロックを受ける受付手順と、
　メッセージ・ダイジェストを得るために前記データ・ブロックを処理するための処理手順と、
　前記処理手順は、サイクル＝（ｔ−ｘ）における値に基いてサイクル＝ｔにおける前記データ・ブロックを算定する算定手順と、
　前記算定手順に連動して（ｘ−１）サイクルの処理をスキップするスキップ手順と、
を含み、
　処理された前記メッセージ・ダイジェストを記憶する記憶手順と
、
値により実行させるための
　
…（中略）…
　
 【請求項１９】
　コンピュータにメッセージ・ダイジェストを生成させるためのプログラムであって、
　コンピュータに、
　データ・ブロックを受ける受付手順と、
　メッセージ・ダイジェストを得るために前記データ・ブロックを処理する処理手順と、
　処理された前記メッセージ・ダイジェストを記憶する記憶手順と、を備え、
　前記処理手順は、
　あらかじめ定められた初期値をＨ０、Ｈ１、Ｈ２、Ｈ３に設定する手順と、
　Ａ＝Ｈ０、Ｂ＝Ｈ１、Ｃ＝Ｈ２、Ｄ＝Ｈ３を算定する手順と、
　反復実行する場合に使用される値を記憶するためのｔと呼ばれるサイクルを設定する手順と、
　前記サイクルｔの初期値と最終値とを設定する手順と、
　Ｍｊ、Ｔｔ、Ｍ（ｔ）、Ｆ（ｔ）、Ｔ（ｔ）、Ｓ、Ｓａ、ＳｂはＭＤ５に基づくハッシュ関数で決められた値であって、
　下記の方程式により算定
する手順と、
　
を実行させるための
　
…（中略）…」
　
（本件補正前の特許請求の範囲）
「　…（中略）…
　
【請求項１５】
　コンピュータにメッセージ・ダイジェストを生成させるためのプログラムであって、
　コンピュータに、
　データ・ブロックを受ける受付手順と、
　メッセージ・ダイジェストを得るために前記データ・ブロックを処理するための処理手順と、
　前記処理手順は、サイクル＝（ｔ−ｘ）における値に基いてサイクル＝ｔにおける前記データ・ブロックを算定する算定手順と、
　前記算定手順に連動して（ｘ−１）サイクルの処理をスキップするスキップ手順と、を含み、
　処理された前記メッセージ・ダイジェストを記憶する記憶手順と、を備え、　ｘは２よりも大きいか又は２に等しいプログラム。
　
…（中略）…
　
 【請求項１９】
　コンピュータにメッセージ・ダイジェストを生成させるためのプログラムであって、
　コンピュータに、
　データ・ブロックを受ける受付手順と、
　メッセージ・ダイジェストを得るために前記データ・ブロックを処理する処理手順と、
　処理された前記メッセージ・ダイジェストを記憶する記憶手順と、を備え、
　前記処理手順は、
　あらかじめ定められた初期値をＨ０、Ｈ１、Ｈ２、Ｈ３に設定する手順と、
　Ａ＝Ｈ０、Ｂ＝Ｈ１、Ｃ＝Ｈ２、Ｄ＝Ｈ３を算定する手順と、
　反復実行する場合に使用される値を記憶するためのｔと呼ばれるサイクルを設定する手順と、
　前記サイクルｔの初期値と最終値とを設定する手順と、
　Ｍｊ、Ｔｔ、Ｍ（ｔ）、Ｆ（ｔ）、Ｔ（ｔ）、Ｓ、Ｓａ、ＳｂはＭＤ５に基づくハッシュ関数で決められた値であって、
　下記の方程式により算定される、
Ｄ［ｔ−１］＝Ｂ［ｔ−２］＋（（Ｆ（Ｂ［ｔ−２］，Ｃ［ｔ−２］，Ｄ［ｔ−２］）＋Ａ［ｔ−２］＋Ｍ［ｊａ］＋Ｔ［ｔ−１］）＜＜＜Ｓａ）＋（（Ｄ［ｔ−２］＋Ｆ（（Ｂ［ｔ−２］＋（（Ｆ（Ｂ［ｔ−２］，Ｃ［ｔ−２］，Ｄ［ｔ−２］）＋Ａ［ｔ−２］＋Ｍ［ｊａ］＋Ｔ［ｔ−１］）＜＜＜Ｓａ）），Ｂ［ｔ−２］，Ｃ［ｔ−２］）＋Ｍ［ｊｂ］＋Ｔ［ｔ−１］）＜＜＜Ｓｂ）；及びＢ［ｔ］＝Ｄ［ｔ−１］＋（（Ｃ［ｔ−１］＋ｆｔ（Ｄ［ｔ−１］，Ａ［ｔ−１］，Ｂ［ｔ−１］）＋Ｍｊ＋Ｔｔ−１）＜＜＜Ｓ）＋（（Ｂ［ｔ−１］＋ｆｔ（（Ｄ［ｔ−１］＋（（Ｃ［ｔ−１］＋ｆｔ（Ｄ［ｔ−１］，Ａ［ｔ−
１］，Ｂ［ｔ−１］）Ｍｊ＋Ｔｔ−１）＜＜＜Ｓ）），Ｄ［ｔ−１］，Ａ［ｔ−１］）＋Ｍｊ＋Ｔｔ）＜＜＜Ｓ）
　プログラム。
　
…（中略）…」
 
（２）補正の適否の判断
（２．１）本件補正が、願書に最初に添付した明細書又は図面（以下、「当初明細書」という。）に記載した事項の範囲内においてされたものであるか検討する。
　前記補正において、その下線部の補正については当初明細書の【０００６】【０００７】段落の記載に基づいており、当初明細書に記載した事項の範囲内においてされたものであると認められる。
　よって、本件補正は、特許法第１７条の２第３項の規定に適合する。
　
（２．２）本件補正について、特許請求の範囲についてされた補正の目的を検討する。
  前記補正は、拒絶理由において示された、発明のカテゴリーが不明であるという事項に対してされた、明りょうでない記載の釈明を目的とするものにあたる。
　よって、本件補正は、誤記の訂正、又は、明瞭でない記載の釈明を目的とするものであるから、特許法第１７条の２第４項第２号乃至第４号の規定に適合する。
　
（２．３）むすび
　以上のとおり、本件補正は、特許法第１７条の２第３項から第４項の規定に適合する。
　
３．本願発明について
（１）前記のように、本件補正は適法になされたものである。
　本願の請求項１に係る発明は、平成１８年７月１８日付の手続補正書における特許請求の範囲の請求項１に記載された次のとおりのものである。（以下、「本願発明」という。）
　
「メッセージ・ダイジェストを生成する生成装置であって、
　データ・ブロックを受ける受付手段と、
　メッセージ・ダイジェストを得るために前記データ・ブロックを処理する処理手段と、
　前記処理手段は、サイクル＝（ｔ−ｘ）における値に基いてサイクル＝ｔにおける前記データ・ブロックを算定する算定手段と、
　前記算定手段に連動して（ｘ−１）サイクルの処理をスキップするスキップ手段と、
を含み、
　処理された前記メッセージ・ダイジェストを記憶する記憶手段と、を備え、
　ｘは２よりも大きいか又は２に等しい生成装置。」
　
 （２）引用刊行物
　原審の拒絶の理由に引用された、本願優先権主張日前頒布された刊行物である、HANDBOOK OF APPLIED CRYPTOGRAPHY, CRC Press, 1997年, p.343-351 （以下、「刊行物１」という。）には、次の事項が記載されている。
Ａ．「Number 4 in a series of hash functions (Message Digest algorithms ), MD4 was designed specifically for software implementation on 32-bit machines.」（３４３頁下から３行〜下から２行）
訳；ハッシュ関数のシリーズにおける４番（メッセージダイジェスト　アルゴリズム）、ＭＤ４は３２ビットマシンにインプリメントするソフトウェアのために特別にデザインされた。
Ｂ．第３４８頁９．５３アルゴリズムの段落には、各１６ワードメッセージが８０ワードメッセージに拡張されて入力される入力データブロック（expand 16-word block into 80-word block ;let Xj denote X[ j]）for j from 16 to 79)に対してメッセージダイジェストを生成する、ＳＨＡ−１のアルゴリズムが具体的に記載されている。前記アルゴリズムにおいて、ｊはサイクルに応じ１つずつ増えてゆく漸化式に係る変数であることは明らかであるから、サイクル＝（ｔ−ｘ；ｘ＝１）における値に基いてサイクル＝ｔにおける前記データ・ブロックを算定する算定手段を備えることが読み取れる。
　これらの点をふまえれば、刊行物１には、メッセージダイジェストを生成する次の装置が示されている。
　
  メッセージ・ダイジェストを生成する生成装置であって、
　データ・ブロックを受ける受付手段と、
　メッセージ・ダイジェストを得るために前記データ・ブロックを処理する処理手段と、
　前記処理手段は、サイクル＝（ｔ−ｘ）における値に基いてサイクル＝ｔにおける前記データ・ブロックを算定する算定手段と、
　を含み、
　処理された前記メッセージ・ダイジェストを記憶する記憶手段と、を備え、
　ｘは１に等しい生成装置。
　
　同じく、原審の拒絶の理由に引用された、本願優先権主張日前頒布された刊行物である、特開平２−４１５６３号公報には、図面とともに次の事項が記載されている。
「（発明が解決しようとする問題点）
　このような従来の方式では、ベクトル・プロセッサでベクトル漸化式命令を実行することにより、スカラ・プロセッサの数倍の性能は得られているのであるが、それでも演算の逐次性のための十分な性能が得られていない。
　また、本来ベクトル・プロセッサをｎ多重化するのは、各ＶＰＵを同時に動作させ、ベクトル計算実行速度をｎ倍にするためであるが、従来のベクトル漸化式命令の場合、その演算の逐次性のために多重化されていることによる効果はない。
（問題を解決するための手段）
　上で説明したように、ベクトル漸化式命令の実行時には各パイプライン演算器はほんの一部の期間しか処理を行わず、他のほとんどの期間は空いている。そこで、まず与えられた線形漸化式に対して、数値計算の分野でよく知られている次のような変形をほどこす。
例えば、Ａ（Ｉ）＝Ｂ（Ｉ）Ａ（Ｉ−１）＋Ｃ（Ｉ）　（Ｉ＝１〜ｎ）の計算について考えると、
　Ａ（Ｉ−１）＋Ｂ（Ｉ−１）Ａ（Ｉ−２）＋Ｃ（Ｉ−１）　　　…{1}
（{ }は丸文字を表わす。以下同様。）
　Ａ（Ｉ）＝Ｂ（Ｉ）Ａ（Ｉ−１）＋Ｃ（Ｉ）　　　　　　　　　…{2}
であるので、式{1}を式{2}に代入すると、
　Ａ（Ｉ）＝Ｂ（Ｉ）Ｂ（Ｉ−１）Ａ（Ｉ−２）
　　＋Ｂ（Ｉ）Ｃ（Ｉ−１）十Ｃ（Ｉ）
となる。こうするとＡ（１−２）からＡ（Ｉ）を求めることができ、またＡ（Ｉ−１）からＡ（Ｉ＋１）を求めることができる。すなわち次のようになる。
　Ａ（Ｉ）＝｛Ｂ（Ｉ）Ｂ（Ｉ−１）｝Ａ（Ｉ−２）
　　＋｛Ｂ（Ｉ）Ｃ（Ｉ−１）＋Ｃ（Ｉ）｝
　Ａ（Ｉ＋１）＝｛Ｂ（Ｉ＋１）Ｂ（Ｉ）｝Ａ（Ｉ−１）
　　＋｛Ｂ（Ｉ＋１）Ｃ（Ｉ）十Ｃ（Ｉ＋１）｝
ここで、
　　Ｐ（Ｉ）＝Ｂ（Ｉ）Ｂ（Ｉ−１）　　　　　　　　　　　　　…{3}
　　Ｑ（Ｉ）＝Ｂ（Ｉ）Ｃ（Ｉ−１）＋Ｃ（Ｉ）　　　　　　　　…{4}
とすると、{3}，{4}式は
　　Ａ（Ｉ）＝Ｐ（Ｉ）Ａ（Ｉ−２）＋Ｑ（Ｉ）　　　　　　　　…{5}
　　Ａ（Ｉ＋１）＝Ｐ（Ｉ＋１）Ａ（Ｉ−１）＋Ｑ（Ｉ＋１）　　…{6}
となる。これらの２つの式のうち、式{5}でＡ（１），Ａ（３），Ａ（５）…を計算し、式{6}でＡ（２），Ａ（４），Ａ（６）…を計算すると、それらの２つの計算は同時に実行できる。同様に代入して行くと、漸化式Ａ（Ｉ）＝Ｂ（Ｉ）Ａ（Ｉ−１）＋Ｃ（Ｉ）は、並列に実行できるｎ個のｎとびの漸化式に分解できる。
　例えば、上で述べたように
Ａ（Ｉ）＝Ｂ（Ｉ）Ａ（１−１）＋Ｃ（Ｉ）　（ｉ＝１〜ｎ）を２個の２とびの漸化式に分解した場合について第７図に示す。２個の２とびの漸化式が並列に実行可能であることが分かる。また、４個の４とびの漸化式に分解した場合について第８図に示す。４個の４とびの漸化式が並列に実行可能であることがわかる。
　このようにして、代入を続ければ続けるほど、漸化式の並列度は上がる。」（第２頁右下欄６行〜第３頁右上欄１８行）（なお、前記{2}式中、Ｃ（Ｉ）は＋Ｃ（Ｉ）の誤記と認めて訂正した。）
　
　前記与えられた線形漸化式に対して、式{1}を式{2}に代入することによりほどこされた変形、
　Ａ（Ｉ）＝Ｂ（Ｉ）Ｂ（Ｉ−１）Ａ（Ｉ−２）
　　＋Ｂ（Ｉ）Ｃ（Ｉ−１）十Ｃ（Ｉ）
をみると、Ａ（Ｉ）に関しては、Ａ（Ｉ−２）からＡ（Ｉ）に２とびの漸化式となっていてＡ（Ｉ−１）のステップがスキップされている。
　即ち、「算定手段に連動して（ｘ−１）サイクルの処理をスキップするスキップ手段」に相当する事項が示されている。
　また、前記２とびはｘが２にあたり、（ｘ−１）にｘ＝２を代入すると（２−１）＝１サイクルとびとなり、前記２とびあるいは４とびを換言すれば、ｘは２よりも大きいか又は２に等しいといえる。
　
（３）対比・判断
　本願発明と刊行物１の発明とを対比すると、次の生成装置である点で一致し、そして、次の点で相違する。
〈一致点〉
　メッセージ・ダイジェストを生成する生成装置であって、
　データ・ブロックを受ける受付手段と、
　メッセージ・ダイジェストを得るために前記データ・ブロックを処理する処理手段と、
　前記処理手段は、サイクル＝（ｔ−ｘ）における値に基いてサイクル＝ｔにおける前記データ・ブロックを算定する算定手段と、
　を含み、
　処理された前記メッセージ・ダイジェストを記憶する記憶手段と、を備え、
　ｘは１に等しい生成装置。
　
〈相違点１〉本願発明が、算定手段に連動して（ｘ−１）サイクルの処理をスキップするスキップ手段を備えるのに対し、刊行物１の発明はそのような手段を備えていない点。
〈相違点２〉サイクル＝（ｔ−ｘ）とスキップする（ｘ−１）サイクル処理に係るパラメータｘが、本願発明は、２よりも大きいか又は２に等しいのに対し、刊行物１の発明は１である点。
　
〈当審判断〉
〈相違点１〉について
　算定手段に連動して（ｘ−１）サイクルの処理をスキップするスキップ手段は本願優先権主張日前公知の技術にすぎない。刊行物２には、演算の逐次性のための性能を得るための手段であって、「算定手段に連動して（ｘ−１）サイクルの処理をスキップするスキップ手段」に相当する手段が示されている。
　刊行物１の発明において、算定手段に連動して（ｘ−１）サイクルの処理をスキップするスキップ手段を備えることは、前記公知の手段を参酌することにより当業者が容易になし得ることである。
〈相違点２〉について
　前記（ｘ−１）サイクルの処理をスキップするスキップ手段を備えることとした場合に、パラメータｘを決めることは単なる設計的事項にすぎず、ｘは２よりも大きいか又は２に等しいことも刊行物２に示されている。
　刊行物１の発明において、サイクル＝（ｔ−ｘ）とスキップする（ｘ−１）サイクル処理に係るパラメータｘを２よりも大きいか又は２に等しいとすることは格別なことではなく、当業者が適宜決定し得ることである。
　
４．むすび
　以上のとおり、本願発明は、刊行物１に記載された発明、及び、刊行物２に記載された発明に基いて、当業者が容易に発明をすることができたものであるから、特許法第２９条第２項の規定により特許を受けることができない。
　よって、結論のとおり審決する。