【事件の表示】
　特願２０１５−　１２１２５「新暗号規格（ＡＥＳ）向けの柔軟なアーキテクチャおよび命令」拒絶査定不服審判事件〔平成２７年　５月２１日出願公開，特開２０１５−　９６９７６〕について，次のとおり審決する。
【結　論】
　本件審判の請求は，成り立たない。
【理　由】
第１．手続の経緯
　本願は，平成２５年１０月２５日に出願した特願２０１３−２２２４６６号の一部を，特許法第４４条第１項の規定により，平成２７年１月２６日に新たな特許出願としたものであって，
　平成２７年１月２６日付けで特許法第３６条の２第２項の規定による外国語書面，及び，外国語要約書面の日本語による翻訳文が提出され，平成２７年２月２５日付けで審査請求がなされる共に手続補正がなされ，平成２７年１２月８日付けで審査官により拒絶理由が通知され，これに対して平成２８年６月１５日付けで意見書が提出されると共に手続補正がなされたが，平成２８年８月３１日付けで審査官により拒絶査定がなされ（謄本送達;平成２８年９月６日），これに対して平成２９年１月６日付けで審判請求がなされると共に手続補正がなされ，平成２９年２月２２日付けで審査官により特許法第１６４条第３項の規定に基づく報告がなされたものである。
　
第２．平成２９年１月６日付けの手続補正の却下の決定
　
　［補正却下の決定の結論］
　
　平成２９年１月６日付け手続補正を却下する。
　
　［理由］
　
１．補正の内容
　平成２９年１月６日付けの手続補正（以下，「本件手続補正」という）により，平成２８年６月１５日付けの手続補正により補正された特許請求の範囲，
「　【請求項１】
　ＡＥＳ（Ａｄｖａｎｃｅｄ　Ｅｎｃｒｙｐｔｉｏｎ　Ｓｔａｎｄａｒｄ）シングルラウンド暗号化演算を実行するべく，１２８ビットの入力データを格納する１２８ビットソース／宛先レジスタ及び１２８ビットのラウンド鍵を格納するソースレジスタを特定するシングルラウンド暗号化命令を復号化する復号化部と，
　前記シングルラウンド暗号化命令に基づいてマイクロ演算を実行する実行部であって，前記１２８ビットの入力データ及び前記１２８ビットのラウンド鍵を受信し，前記ラウンド鍵を用いて前記１２８ビットの入力データに対して前記ＡＥＳシングルラウンド暗号化演算を実行し，１２８ビットの結果データを前記１２８ビットソース／宛先レジスタに格納する実行部と
　を備える汎用プロセッサ。
　　【請求項２】
　ＡＥＳ（Ａｄｖａｎｃｅｄ　Ｅｎｃｒｙｐｔｉｏｎ　Ｓｔａｎｄａｒｄ）シングルラウンド復号化演算を実行するべく，１２８ビットの入力データを格納する１２８ビットソース／宛先レジスタ及び１２８ビットのラウンド鍵を格納するソースレジスタを特定するシングルラウンド復号化命令を復号化する復号化部と，
　前記シングルラウンド復号化命令に基づいてマイクロ演算を実行する実行部であって，前記１２８ビットの入力データ及び前記１２８ビットのラウンド鍵を受信し，前記ラウンド鍵を用いて前記１２８ビットの入力データに対して前記ＡＥＳシングルラウンド復号化演算を実行し，１２８ビットの結果データを前記１２８ビットソース／宛先レジスタに格納する実行部と
　を備える汎用プロセッサ。
　　【請求項３】
　格納デバイスと，
　前記格納デバイスとの通信を制御する格納Ｉ／Ｏコントローラと，
　ダブルデータレートＲＡＭと，
　前記ダブルデータレートＲＡＭとの通信を制御するメモリコントローラと，
　前記格納Ｉ／Ｏコントローラ及び前記メモリコントローラに接続された汎用プロセッサであって，
　ＡＥＳ（Ａｄｖａｎｃｅｄ　Ｅｎｃｒｙｐｔｉｏｎ　Ｓｔａｎｄａｒｄ）シングルラウンド暗号化演算を実行するべく，１２８ビットの入力データを格納する１２８ビットソース／宛先レジスタ及び１２８ビットのラウンド鍵を格納するソースレジスタを特定するシングルラウンド暗号化命令を復号化する復号化部と，
　前記シングルラウンド暗号化命令に基づいてマイクロ演算を実行する実行部であって，前記１２８ビットの入力データ及び前記１２８ビットのラウンド鍵を受信し，前記ラウンド鍵を用いて前記１２８ビットの入力データに対して前記ＡＥＳシングルラウンド暗号化演算を実行し，１２８ビットの結果データを前記１２８ビットソース／宛先レジスタに格納する実行部と
　を有する汎用プロセッサと
　を備えるシステム。
　　【請求項４】
　格納デバイスと，
　前記格納デバイスとの通信を制御する格納Ｉ／Ｏコントローラと，
　ダブルデータレートＲＡＭと，
　前記ダブルデータレートＲＡＭとの通信を制御するメモリコントローラと，
　前記格納Ｉ／Ｏコントローラ及び前記メモリコントローラに接続された汎用プロセッサであって，
　ＡＥＳ（Ａｄｖａｎｃｅｄ　Ｅｎｃｒｙｐｔｉｏｎ　Ｓｔａｎｄａｒｄ）シングルラウンド復号化演算を実行するべく，１２８ビットの入力データを格納する１２８ビットソース／宛先レジスタ及び１２８ビットのラウンド鍵を格納するソースレジスタを特定するシングルラウンド復号化命令を復号化する復号化部と，
　前記シングルラウンド復号化命令に基づいてマイクロ演算を実行する実行部であって，前記１２８ビットの入力データ及び前記１２８ビットのラウンド鍵を受信し，前記ラウンド鍵を用いて前記１２８ビットの入力データに対して前記ＡＥＳシングルラウンド復号化演算を実行し，１２８ビットの結果データを前記１２８ビットソース／宛先レジスタに格納する実行部と
　を有する汎用プロセッサと
　を備えるシステム。
　　【請求項５】
　汎用プロセッサであって，
　１２８ビットの入力データを格納する第１の１２８ビットソース／宛先レジスタ及び１２８ビットのラウンド鍵を格納する第２の１２８ビットレジスタを含むレジスタファイルと，
　ＡＥＳ（Ａｄｖａｎｃｅｄ　Ｅｎｃｒｙｐｔｉｏｎ　Ｓｔａｎｄａｒｄ）シングルラウンド暗号化演算を実行するべく，前記第１の１２８ビットソース／宛先レジスタ及び前記第２の１２８ビットレジスタを特定するシングルラウンド暗号化命令を復号化する復号化部と，
　複数のポートであって，それぞれに，整数演算又は浮動小数点演算をパラレルにサポートするための１以上の実行リソースが関連付けられた複数のポートと，
　前記複数のポートのうちの選択されたポートに，前記ＡＥＳシングルラウンド暗号化演算を発行する発行制御ロジックと
　を備え，
　前記選択されたポートに関連付けられた前記１以上の実行リソースは，前記１２８ビットのラウンド鍵を用いて前記１２８ビットの入力データに対して前記シングルラウンド暗号化演算を実行し，前記第１の１２８ビットソース／宛先レジスタに格納する１２８ビット出力データを生成するためのものである，汎用プロセッサ。
　　【請求項６】
　汎用プロセッサであって，
　１２８ビットの入力データを格納する第１の１２８ビットソース／宛先レジスタ及び１２８ビットのラウンド鍵を格納する第２の１２８ビットレジスタを含むレジスタファイルと，
　ＡＥＳ（Ａｄｖａｎｃｅｄ　Ｅｎｃｒｙｐｔｉｏｎ　Ｓｔａｎｄａｒｄ）シングルラウンド復号化演算を実行するべく，前記第１の１２８ビットソース／宛先レジスタ及び前記第２の１２８ビットレジスタを特定するシングルラウンド復号化命令を復号化する復号化部と，
　複数のポートであって，それぞれに，整数演算又は浮動小数点演算をパラレルにサポートするための１以上の実行リソースが関連付けられた複数のポートと，
　前記複数のポートのうちの選択されたポートに，前記ＡＥＳシングルラウンド復号化演算を発行する発行制御ロジックと
　を備え，
　前記選択されたポートに関連付けられた前記１以上の実行リソースは，前記１２８ビットのラウンド鍵を用いて前記１２８ビットの入力データに対して前記シングルラウンド復号化演算を実行し，前記第１の１２８ビットソース／宛先レジスタに格納する１２８ビット出力データを生成するためのものである，汎用プロセッサ。
　　【請求項７】
　格納デバイスと，
　前記格納デバイスとの通信を制御する格納Ｉ／Ｏコントローラと，
　ダブルデータレートＲＡＭと，
　前記ダブルデータレートＲＡＭとの通信を制御するメモリコントローラと，
　前記格納Ｉ／Ｏコントローラ及び前記メモリコントローラに接続された汎用プロセッサであって，
　１２８ビットの入力データを格納する第１の１２８ビットソース／宛先レジスタ及び１２８ビットのラウンド鍵を格納する第２の１２８ビットレジスタを含むレジスタファイルと，
　ＡＥＳ（Ａｄｖａｎｃｅｄ　Ｅｎｃｒｙｐｔｉｏｎ　Ｓｔａｎｄａｒｄ）シングルラウンド暗号化演算を実行するべく，前記第１の１２８ビットソース／宛先レジスタ及び前記第２の１２８ビットレジスタを特定するシングルラウンド暗号化命令を復号化する復号化部と，
　複数のポートであって，それぞれに，整数演算又は浮動小数点演算をパラレルにサポートするための１以上の実行リソースが関連付けられた複数のポートと，
　前記複数のポートのうちの選択されたポートに，前記ＡＥＳシングルラウンド暗号化演算を発行する発行制御ロジックと
　を有し，
　前記選択されたポートに関連付けられた前記１以上の実行リソースは，前記１２８ビットのラウンド鍵を用いて前記１２８ビットの入力データに対して前記シングルラウンド暗号化演算を実行し，前記第１の１２８ビットソース／宛先レジスタに格納する１２８ビット出力データを生成するためのものである，汎用プロセッサと
　を備えるシステム。
　　【請求項８】
　格納デバイスと，
　前記格納デバイスとの通信を制御する格納Ｉ／Ｏコントローラと，
　ダブルデータレートＲＡＭと，
　前記ダブルデータレートＲＡＭとの通信を制御するメモリコントローラと，
　前記格納Ｉ／Ｏコントローラ及び前記メモリコントローラに接続された汎用プロセッサであって，
　１２８ビットの入力データを格納する第１の１２８ビットソース／宛先レジスタ及び１２８ビットのラウンド鍵を格納する第２の１２８ビットレジスタを含むレジスタファイルと，
　ＡＥＳ（Ａｄｖａｎｃｅｄ　Ｅｎｃｒｙｐｔｉｏｎ　Ｓｔａｎｄａｒｄ）シングルラウンド復号化演算を実行するべく，前記第１の１２８ビットソース／宛先レジスタ及び前記第２の１２８ビットレジスタを特定するシングルラウンド復号化命令を復号化する復号化部と，
　複数のポートであって，それぞれに，整数演算又は浮動小数点演算をパラレルにサポートするための１以上の実行リソースが関連付けられた複数のポートと，
　前記複数のポートのうちの選択されたポートに，前記ＡＥＳシングルラウンド復号化演算を発行する発行制御ロジックと
　を有し，
　前記選択されたポートに関連付けられた前記１以上の実行リソースは，前記１２８ビットのラウンド鍵を用いて前記１２８ビットの入力データに対して前記シングルラウンド復号化演算を実行し，前記第１の１２８ビットソース／宛先レジスタに格納する１２８ビット出力データを生成するためのものである，汎用プロセッサと
　を備えるシステム。
　　【請求項９】
　複数の１２８ビットレジスタと，
　ＡＥＳ（Ａｄｖａｎｃｅｄ　Ｅｎｃｒｙｐｔｉｏｎ　Ｓｔａｎｄａｒｄ）暗号化ラウンドを実行するための命令を格納する命令キャッシュと，
　前記ＡＥＳ暗号化ラウンドを実行するための命令であって，前記複数の１２８ビットレジスタのうちの暗号化される情報を含む第１の１２８ビットソース／宛先レジスタを示し，前記複数の１２８ビットレジスタのうちの前記ＡＥＳ暗号化ラウンドのためのラウンド鍵を含む第２の１２８ビットレジスタを示す命令を受信し，その命令の演算コードを復号化する復号化部と，
　前記復号化部及び前記複数の１２８ビットレジスタに連結された実行部であって，前記命令に応じて，前記ラウンド鍵を用いて前記ＡＥＳ暗号化ラウンドによって変換された前記第１の１２８ビットソース／宛先レジスタからの前記情報を含む結果を，前記命令の前記第１の１２８ビットソース／宛先レジスタに格納する実行部と
　を備える汎用プロセッサ。
　　【請求項１０】
　前記実行部は，前記命令に応じて，Ｓ−ボックスルックアップ，行シフト，列混合，及びラウンド鍵加算を実行する，請求項９に記載の汎用プロセッサ。
　　【請求項１１】
　複数の１２８ビットレジスタと，
　ＡＥＳ（Ａｄｖａｎｃｅｄ　Ｅｎｃｒｙｐｔｉｏｎ　Ｓｔａｎｄａｒｄ）復号化ラウンドを実行するための命令を格納する命令キャッシュと，
　前記ＡＥＳ復号化ラウンドを実行する命令であって，前記複数の１２８ビットレジスタのうちの復号化される情報を含む第１の１２８ビットソース／宛先レジスタを示し，前記複数の１２８ビットレジスタのうちの前記ＡＥＳ復号化ラウンドのためのラウンド鍵を含む第２の１２８ビットレジスタを示す命令を受信し，その命令の演算コードを復号化する復号化部と，
　前記復号化部及び前記複数の１２８ビットレジスタに連結された実行部であって，前記命令に応じて，前記ラウンド鍵を用いて前記ＡＥＳ復号化ラウンドによって変換された前記第１の１２８ビットソース／宛先レジスタからの前記情報を含む結果を，前記命令の前記第１の１２８ビットソース／宛先レジスタに格納する実行部と
　を備える汎用プロセッサ。
　　【請求項１２】
　汎用プロセッサであって，
　ＡＥＳ（Ａｄｖａｎｃｅｄ　Ｅｎｃｒｙｐｔｉｏｎ　Ｓｔａｎｄａｒｄ）ラウンドを実行するための第１の命令を格納する命令キャッシュと，
　ＡＥＳアルゴリズムの前記ＡＥＳラウンドを実行するべく，前記第１の命令であって，前記ＡＥＳラウンドのための入力データを含むためのソースオペランドと，前記ＡＥＳラウンドのためのラウンド鍵を含むソースオペランドであって前記汎用プロセッサのレジスタに格納されるソースオペランドとを有する前記第１の命令を受信し，前記第１の命令の演算コードを復号化する復号化部と，
　前記復号化部に連結された実行部であって，前記第１の命令に応じて，前記ＡＥＳラウンドによって前記ラウンド鍵を用いて変換された前記入力データを含む結果を，１２８ビットソース／宛先レジスタである，前記第１の命令の宛先に格納する実行部と
　を備える汎用プロセッサ。
　　【請求項１３】
　前記第１の命令は，ＡＥＳ暗号化ラウンドを実行するための命令である，請求項１２記載の汎用プロセッサ。
　　【請求項１４】
　前記第１の命令は，ＡＥＳ復号化ラウンドを実行するための命令である，請求項１２に記載の汎用プロセッサ。
　　【請求項１５】
　前記入力データを含むための前記ソースオペランドは，レジスタに格納され，
　前記ラウンド鍵を含むための前記ソースオペランドは，レジスタに格納される，請求項１２に記載の汎用プロセッサ。
　　【請求項１６】
　前記レジスタは，１２８ビットレジスタである，請求項１５に記載の汎用プロセッサ。
　　【請求項１７】
　前記実行部は，前記第１の命令に応じて，前記入力データを前記結果で上書きする，請求項１３から１６のいずれか一項に記載の汎用プロセッサ。
　　【請求項１８】
　前記実行部は，前記第１の命令に応じて，Ｓ−ボックスルックアップ，行シフト，列混合，及びラウンド鍵加算を実行する，請求項１２に記載の汎用プロセッサ。」（以下，上記引用の請求項各項を，「補正前の請求項」という）は，
「　【請求項１】
　汎用プロセッサであって，
　ＡＥＳ（Ａｄｖａｎｃｅｄ　Ｅｎｃｒｙｐｔｉｏｎ　Ｓｔａｎｄａｒｄ）シングルラウンド暗号化演算を実行するべく，１２８ビットの入力データを格納する１２８ビットソース／宛先レジスタ及び１２８ビットのラウンド鍵を格納するソースレジスタを特定するシングルラウンド暗号化命令を復号化する前記汎用プロセッサの復号化部であって，前記シングルラウンド暗号化命令は，ｏｐｃｏｄｅを含み，前記シングルラウンド暗号化命令は，復号化を示す１の代わりに暗号化を示す０である前記演算の方向を示すビットを含む，復号化部と，
　前記シングルラウンド暗号化命令に基づいてマイクロ演算を実行する実行部であって，前記１２８ビットの入力データ及び前記１２８ビットのラウンド鍵を受信し，前記ラウンド鍵を用いて前記１２８ビットの入力データに対して前記ＡＥＳシングルラウンド暗号化演算を実行し，１２８ビットの結果データを前記１２８ビットソース／宛先レジスタに格納する実行部と
　を備える汎用プロセッサ。
　　【請求項２】
　汎用プロセッサであって，
　ＡＥＳ（Ａｄｖａｎｃｅｄ　Ｅｎｃｒｙｐｔｉｏｎ　Ｓｔａｎｄａｒｄ）シングルラウンド復号化演算を実行するべく，１２８ビットの入力データを格納する１２８ビットソース／宛先レジスタ及び１２８ビットのラウンド鍵を格納するソースレジスタを特定するシングルラウンド復号化命令を復号化する前記汎用プロセッサの復号化部であって，前記シングルラウンド復号化命令は，ｏｐｃｏｄｅを含み，前記シングルラウンド復号化命令は，暗号化を示す０の代わりに復号化を示す１である前記演算の方向を示すビットを含む，復号化部と，
　前記シングルラウンド復号化命令に基づいてマイクロ演算を実行する実行部であって，前記１２８ビットの入力データ及び前記１２８ビットのラウンド鍵を受信し，前記ラウンド鍵を用いて前記１２８ビットの入力データに対して前記ＡＥＳシングルラウンド復号化演算を実行し，１２８ビットの結果データを前記１２８ビットソース／宛先レジスタに格納する実行部と
　を備える汎用プロセッサ。
　　【請求項３】
　格納デバイスと，
　前記格納デバイスとの通信を制御する格納Ｉ／Ｏコントローラと，
　ダブルデータレートＲＡＭと，
　前記ダブルデータレートＲＡＭとの通信を制御するメモリコントローラと，
　前記格納Ｉ／Ｏコントローラ及び前記メモリコントローラに接続された汎用プロセッサであって，
　ＡＥＳ（Ａｄｖａｎｃｅｄ　Ｅｎｃｒｙｐｔｉｏｎ　Ｓｔａｎｄａｒｄ）シングルラウンド暗号化演算を実行するべく，１２８ビットの入力データを格納する１２８ビットソース／宛先レジスタ及び１２８ビットのラウンド鍵を格納するソースレジスタを特定するシングルラウンド暗号化命令を復号化する復号化部であって，前記シングルラウンド暗号化命令は，ｏｐｃｏｄｅを含み，前記シングルラウンド暗号化命令は，復号化を示す１の代わりに暗号化を示す０である前記演算の方向を示すビットを含む，復号化部と，
　前記シングルラウンド暗号化命令に基づいてマイクロ演算を実行する実行部であって，前記１２８ビットの入力データ及び前記１２８ビットのラウンド鍵を受信し，前記ラウンド鍵を用いて前記１２８ビットの入力データに対して前記ＡＥＳシングルラウンド暗号化演算を実行し，１２８ビットの結果データを前記１２８ビットソース／宛先レジスタに格納する実行部と
　を有する汎用プロセッサと
　を備えるシステム。
　　【請求項４】
　格納デバイスと，
　前記格納デバイスとの通信を制御する格納Ｉ／Ｏコントローラと，
　ダブルデータレートＲＡＭと，
　前記ダブルデータレートＲＡＭとの通信を制御するメモリコントローラと，
　前記格納Ｉ／Ｏコントローラ及び前記メモリコントローラに接続された汎用プロセッサであって，
　ＡＥＳ（Ａｄｖａｎｃｅｄ　Ｅｎｃｒｙｐｔｉｏｎ　Ｓｔａｎｄａｒｄ）シングルラウンド復号化演算を実行するべく，１２８ビットの入力データを格納する１２８ビットソース／宛先レジスタ及び１２８ビットのラウンド鍵を格納するソースレジスタを特定するシングルラウンド復号化命令を復号化する復号化部であって，前記シングルラウンド復号化命令は，ｏｐｃｏｄｅを含み，前記シングルラウンド復号化命令は，暗号化を示す０の代わりに復号化を示す１である前記演算の方向を示すビットを含む，復号化部と，
　前記シングルラウンド復号化命令に基づいてマイクロ演算を実行する実行部であって，前記１２８ビットの入力データ及び前記１２８ビットのラウンド鍵を受信し，前記ラウンド鍵を用いて前記１２８ビットの入力データに対して前記ＡＥＳシングルラウンド復号化演算を実行し，１２８ビットの結果データを前記１２８ビットソース／宛先レジスタに格納する実行部と
　を有する汎用プロセッサと
　を備えるシステム。
　　【請求項５】
　汎用プロセッサであって，
　１２８ビットの入力データを格納する第１の１２８ビットソース／宛先レジスタ及び１２８ビットのラウンド鍵を格納する第２の１２８ビットレジスタを含むレジスタファイルと，
　ＡＥＳ（Ａｄｖａｎｃｅｄ　Ｅｎｃｒｙｐｔｉｏｎ　Ｓｔａｎｄａｒｄ）シングルラウンド暗号化演算を実行するべく，前記第１の１２８ビットソース／宛先レジスタ及び前記第２の１２８ビットレジスタを特定するシングルラウンド暗号化命令を復号化する前記汎用プロセッサの復号化部であって，前記シングルラウンド暗号化命令は，ｏｐｃｏｄｅを含み，前記シングルラウンド暗号化命令は，復号化を示す１の代わりに暗号化を示す０である前記演算の方向を示すビットを含む，復号化部と，
　複数のポートであって，それぞれに，整数演算又は浮動小数点演算をパラレルにサポートするための１以上の実行リソースが関連付けられた複数のポートと，
　前記複数のポートのうちの選択されたポートに，前記ＡＥＳシングルラウンド暗号化演算を発行する発行制御ロジックと
　を備え，
　前記選択されたポートに関連付けられた前記１以上の実行リソースは，前記１２８ビットのラウンド鍵を用いて前記１２８ビットの入力データに対して前記シングルラウンド暗号化演算を実行し，前記第１の１２８ビットソース／宛先レジスタに格納する１２８ビット出力データを生成するためのものである，汎用プロセッサ。
　　【請求項６】
　汎用プロセッサであって，
　１２８ビットの入力データを格納する第１の１２８ビットソース／宛先レジスタ及び１２８ビットのラウンド鍵を格納する第２の１２８ビットレジスタを含むレジスタファイルと，
　ＡＥＳ（Ａｄｖａｎｃｅｄ　Ｅｎｃｒｙｐｔｉｏｎ　Ｓｔａｎｄａｒｄ）シングルラウンド復号化演算を実行するべく，前記第１の１２８ビットソース／宛先レジスタ及び前記第２の１２８ビットレジスタを特定するシングルラウンド復号化命令を復号化する前記汎用プロセッサの復号化部であって，前記シングルラウンド復号化命令は，ｏｐｃｏｄｅを含み，前記シングルラウンド復号化命令は，暗号化を示す０の代わりに復号化を示す１である前記演算の方向を示すビットを含む，復号化部と，
　複数のポートであって，それぞれに，整数演算又は浮動小数点演算をパラレルにサポートするための１以上の実行リソースが関連付けられた複数のポートと，
　前記複数のポートのうちの選択されたポートに，前記ＡＥＳシングルラウンド復号化演算を発行する発行制御ロジックと
　を備え，
　前記選択されたポートに関連付けられた前記１以上の実行リソースは，前記１２８ビットのラウンド鍵を用いて前記１２８ビットの入力データに対して前記シングルラウンド復号化演算を実行し，前記第１の１２８ビットソース／宛先レジスタに格納する１２８ビット出力データを生成するためのものである，汎用プロセッサ。
　　【請求項７】
　格納デバイスと，
　前記格納デバイスとの通信を制御する格納Ｉ／Ｏコントローラと，
　ダブルデータレートＲＡＭと，
　前記ダブルデータレートＲＡＭとの通信を制御するメモリコントローラと，
　前記格納Ｉ／Ｏコントローラ及び前記メモリコントローラに接続された汎用プロセッサであって，
　１２８ビットの入力データを格納する第１の１２８ビットソース／宛先レジスタ及び１２８ビットのラウンド鍵を格納する第２の１２８ビットレジスタを含むレジスタファイルと，
　ＡＥＳ（Ａｄｖａｎｃｅｄ　Ｅｎｃｒｙｐｔｉｏｎ　Ｓｔａｎｄａｒｄ）シングルラウンド暗号化演算を実行するべく，前記第１の１２８ビットソース／宛先レジスタ及び前記第２の１２８ビットレジスタを特定するシングルラウンド暗号化命令を復号化する復号化部であって，前記シングルラウンド暗号化命令は，ｏｐｃｏｄｅを含み，前記シングルラウンド暗号化命令は，復号化を示す１の代わりに暗号化を示す０である前記演算の方向を示すビットを含む，復号化部と，
　複数のポートであって，それぞれに，整数演算又は浮動小数点演算をパラレルにサポートするための１以上の実行リソースが関連付けられた複数のポートと，
　前記複数のポートのうちの選択されたポートに，前記ＡＥＳシングルラウンド暗号化演算を発行する発行制御ロジックと
　を有し，
　前記選択されたポートに関連付けられた前記１以上の実行リソースは，前記１２８ビットのラウンド鍵を用いて前記１２８ビットの入力データに対して前記シングルラウンド暗号化演算を実行し，前記第１の１２８ビットソース／宛先レジスタに格納する１２８ビット出力データを生成するためのものである，汎用プロセッサと
　を備えるシステム。
　　【請求項８】
　格納デバイスと，
　前記格納デバイスとの通信を制御する格納Ｉ／Ｏコントローラと，
　ダブルデータレートＲＡＭと，
　前記ダブルデータレートＲＡＭとの通信を制御するメモリコントローラと，
　前記格納Ｉ／Ｏコントローラ及び前記メモリコントローラに接続された汎用プロセッサであって，
　１２８ビットの入力データを格納する第１の１２８ビットソース／宛先レジスタ及び１２８ビットのラウンド鍵を格納する第２の１２８ビットレジスタを含むレジスタファイルと，
　ＡＥＳ（Ａｄｖａｎｃｅｄ　Ｅｎｃｒｙｐｔｉｏｎ　Ｓｔａｎｄａｒｄ）シングルラウンド復号化演算を実行するべく，前記第１の１２８ビットソース／宛先レジスタ及び前記第２の１２８ビットレジスタを特定するシングルラウンド復号化命令を復号化する復号化部であって，前記シングルラウンド復号化命令は，ｏｐｃｏｄｅを含み，前記シングルラウンド復号化命令は，暗号化を示す０の代わりに復号化を示す１である前記演算の方向を示すビットを含む，復号化部と，
　複数のポートであって，それぞれに，整数演算又は浮動小数点演算をパラレルにサポートするための１以上の実行リソースが関連付けられた複数のポートと，
　前記複数のポートのうちの選択されたポートに，前記ＡＥＳシングルラウンド復号化演算を発行する発行制御ロジックと
　を有し，
　前記選択されたポートに関連付けられた前記１以上の実行リソースは，前記１２８ビットのラウンド鍵を用いて前記１２８ビットの入力データに対して前記シングルラウンド復号化演算を実行し，前記第１の１２８ビットソース／宛先レジスタに格納する１２８ビット出力データを生成するためのものである，汎用プロセッサと
　を備えるシステム。
　　【請求項９】
　汎用プロセッサであって，
　複数の１２８ビットレジスタと，
　ＡＥＳ（Ａｄｖａｎｃｅｄ　Ｅｎｃｒｙｐｔｉｏｎ　Ｓｔａｎｄａｒｄ）暗号化ラウンドを実行するための命令を格納する命令キャッシュであって，前記命令は，ｏｐｃｏｄｅを含み，前記命令は，復号化を示す１の代わりに暗号化を示す０である前記ラウンドの方向を示すビットを含む，命令キャッシュと，
　前記ＡＥＳ暗号化ラウンドを実行するための命令であって，前記複数の１２８ビットレジスタのうちの暗号化される情報を含む第１の１２８ビットソース／宛先レジスタを示し，前記複数の１２８ビットレジスタのうちの前記ＡＥＳ暗号化ラウンドのためのラウンド鍵を含む第２の１２８ビットレジスタを示す命令を受信し，その命令の演算コードを復号化する復号化部と，
　前記復号化部及び前記複数の１２８ビットレジスタに連結された前記汎用プロセッサの実行部であって，前記命令に応じて，前記ラウンド鍵を用いて前記ＡＥＳ暗号化ラウンドによって変換された前記第１の１２８ビットソース／宛先レジスタからの前記情報を含む結果を，前記命令の前記第１の１２８ビットソース／宛先レジスタに格納する実行部と
　を備える汎用プロセッサ。
　　【請求項１０】
　前記実行部は，前記命令に応じて，Ｓ−ボックスルックアップ，行シフト，列混合，及びラウンド鍵加算を実行する，請求項９に記載の汎用プロセッサ。
　　【請求項１１】
　汎用プロセッサであって，
　複数の１２８ビットレジスタと，
　ＡＥＳ（Ａｄｖａｎｃｅｄ　Ｅｎｃｒｙｐｔｉｏｎ　Ｓｔａｎｄａｒｄ）復号化ラウンドを実行するための命令を格納する命令キャッシュであって，前記命令は，ｏｐｃｏｄｅを含み，前記命令は，暗号化を示す０の代わりに復号化を示す１である前記ラウンドの方向を示すビットを含む，命令キャッシュと，
　前記ＡＥＳ復号化ラウンドを実行する命令であって，前記複数の１２８ビットレジスタのうちの復号化される情報を含む第１の１２８ビットソース／宛先レジスタを示し，前記複数の１２８ビットレジスタのうちの前記ＡＥＳ復号化ラウンドのためのラウンド鍵を含む第２の１２８ビットレジスタを示す命令を受信し，その命令の演算コードを復号化する復号化部と，
　前記復号化部及び前記複数の１２８ビットレジスタに連結された実行部であって，前記命令に応じて，前記ラウンド鍵を用いて前記ＡＥＳ復号化ラウンドによって変換された前記第１の１２８ビットソース／宛先レジスタからの前記情報を含む結果を，前記命令の前記第１の１２８ビットソース／宛先レジスタに格納する前記汎用プロセッサの実行部と
　を備える汎用プロセッサ。
　　【請求項１２】
　汎用プロセッサであって，
　ＡＥＳ（Ａｄｖａｎｃｅｄ　Ｅｎｃｒｙｐｔｉｏｎ　Ｓｔａｎｄａｒｄ）ラウンドを実行するための第１の命令を格納する命令キャッシュであって，前記第１の命令は，ｏｐｃｏｄｅを含み，前記第１の命令は，暗号化および復号化のいずれかであるものとして前記ラウンドの方向を示すビットを含む，命令キャッシュと，
　ＡＥＳアルゴリズムの前記ＡＥＳラウンドを実行するべく，前記第１の命令であって，前記ＡＥＳラウンドのための入力データを含むためのソースオペランドと，前記ＡＥＳラウンドのためのラウンド鍵を含むソースオペランドであって前記汎用プロセッサのレジスタに格納されるソースオペランドとを有する前記第１の命令を受信し，前記第１の命令の演算コードを復号化する復号化部と，
　前記復号化部に連結された実行部であって，前記第１の命令に応じて，前記ＡＥＳラウンドによって前記ラウンド鍵を用いて変換された前記入力データを含む結果を，１２８ビットソース／宛先レジスタである，前記第１の命令の宛先に格納する前記汎用プロセッサの実行部と
　を備える汎用プロセッサ。
　　【請求項１３】
　前記第１の命令は，ＡＥＳ暗号化ラウンドを実行するための命令である，請求項１２記載の汎用プロセッサ。
　　【請求項１４】
　前記第１の命令は，ＡＥＳ復号化ラウンドを実行するための命令である，請求項１２に記載の汎用プロセッサ。
　　【請求項１５】
　前記入力データを含むための前記ソースオペランドは，レジスタに格納され，
　前記ラウンド鍵を含むための前記ソースオペランドは，レジスタに格納される，請求項１２に記載の汎用プロセッサ。
　　【請求項１６】
　前記レジスタは，１２８ビットレジスタである，請求項１５に記載の汎用プロセッサ。
　　【請求項１７】
　前記実行部は，前記第１の命令に応じて，前記入力データを前記結果で上書きする，請求項１３から１６のいずれか一項に記載の汎用プロセッサ。
　　【請求項１８】
　前記実行部は，前記第１の命令に応じて，Ｓ−ボックスルックアップ，行シフト，列混合，及びラウンド鍵加算を実行する，請求項１２に記載の汎用プロセッサ。」（以下，上記引用の請求項各項を，「補正後の請求項」という）に補正された。
　
２．補正の適否
（１）新規事項
　本件手続補正が，特許法第１７条の２第３項の規定を満たすものであるか否か，即ち，本件手続補正が，平成２７年１月２６日付けで提出された特許法第３６条の２第２項の規定による外国語書面，及び，外国語要約書面の日本語による翻訳文（以下，これを「当初明細書等」という）に記載した事項の範囲内でなされたものであるかについて，以下に検討する。
　
ア．本件手続補正は，補正前の請求項１に記載の「シングルラウンド暗号化命令」に対して，「シングルランド暗号化命令は，ｏｐｃｏｄｅを含み，前記シングルラウンド暗号化命令は，復号化を示す１の代わりに暗号化を示す０である前記演算の方向を示すビットを含む」という限定事項を付加することを含むものである。
　
イ．上記ア．において指摘の限定事項について検討すると，当初明細書等には，「シングルランド暗号化命令は，ｏｐｃｏｄｅを含み，前記シングルラウンド暗号化命令は，復号化を示す１の代わりに暗号化を示す０である前記演算の方向を示すビットを含む」という記載は存在しない。
　そこで，当初明細書等から，当該限定事項に相当する構成が読み取れるかについて，以下に検討する。
　
ウ．当初明細書等には，次の記載が存在する。
　
ａ．「【００２７】
　一実施形態では，暗号化ラウンド，復号化ラウンド，暗号化復号化最終ラウンド最終ラウンドを行い，ラウンド暗号鍵またはラウンド復号鍵を算出するのに，それぞれ別個のＡＥＳ命令を含むＡＥＳ命令セットが提供される。一実施形態では，ＡＥＳ命令セットが６つのＡＥＳ命令を含む。各ＡＥＳラウンド命令は，固有演算コード（ｏｐｃｏｄｅ）を有する。固定幅ラウンド鍵の一実施形態（例えば１２８ビット）におけるＡＥＳ命令セットのＡＥＳラウンド命令を，以下の表１に示す。
　　【表１】
　
【００２８】
　ＡＥＳ命令セットは，４つのＡＥＳラウンド命令（暗号化，復号化，暗号化最終ラウンド，復号化最終ラウンド），および２つのＡＥＳラウンド鍵命令（次のラウンド鍵および前のラウンド鍵）を含む。ＡＥＳ命令セットのＡＥＳラウンド命令は，最終ラウンド以外の全てのラウンドに利用される暗号化および復号化ラウンド演算を行うシングルラウンド演算を含む。例えば，表１の
AESENCRYPTRoundのシングルラウンド命令
１２８ビットxmmsrcdstレジスタに格納されている入力データ（ソース）に対してＡＥＳラウンド演算を行い，１２８ビットxmmsrcdstレジスタに格納されている入力データを，ラウンド演算実行結果で上書きする
　
ｂ．「【００３１】
　ＡＥＳ命令セットの他の２つのＡＥＳ命令は，鍵のサイズ（つまり，１２８ビット，１９２ビット，または２５６ビット）に応じてＡＥＳラウンド用のラウンド鍵を生成する。これらＡＥＳラウンド鍵命令の一方は暗号化演算に利用されるラウンド鍵を生成し，他方は復号化演算に利用されるラウンド鍵を生成する。AESNextRoundKey AESPreviousRoundKey命令における直近のフィールドは，鍵のサイズを特定する｛１２８，１９２，２５６｝。」
　
ｃ．「【００７２】
　図８は，
ラウンド鍵を生成し暗号化および復号化を行うのに利用されうる直近のバイトを有するＡＥＳラウンド命令の一実施形態を示す。表１に示すＡＥＳ命令セットの代わりに単一のＡＥＳラウンド命令を提供することで，ＡＥＳ命令セットの機能を行う。単一のＡＥＳ命令が行う特定の機能は，直近のバイト（key_select_modifier）内のビットに暗号化されている。直近のバイトにより，ＡＥＳラウンド命令は，各命令が固有演算コードを有する複数の新たな命令を作成する代わりに，新たな特徴を追加するよう拡張される
　【００７３】
　
ＡＥＳラウンド命令は，記号として以下のように定義されうる
　
dest:=aes_key_round(source2,source1),key_select_modifier」
　
ｄ．「【００７５】
　
図８を参照すると，destはラウンドＮに対して１２８ビットの拡張鍵を格納し，ソース２はラウンドＮ−１に対して１２８ビットの拡張鍵を格納し，ソース１はラウンドＮ−２に対して１２８ビットの拡張鍵を格納する。key_select_modifierは，現在のラウンド数（Ｎ），演算の方向（暗号化／復号化），およびＡＥＳ鍵のサイズを提供するのに利用される８ビットの直近の値である
　
ｅ．「【００７７】
　
直近のバイトのビット４は演算の方向（暗号化または復号化）を示す（例えば一実施形態では０＝暗号，および１＝復号，また別の実施形態では１＝暗号，および０＝復号，というように）
（この段落，以下省略。）」
　
ｆ．「
」
　
エ．上記ｃの「ラウンド鍵を生成し暗号化および復号化を行うのに利用されうる直近のバイトを有するＡＥＳラウンド命令の一実施形態を示す。表１に示すＡＥＳ命令セットの代わりに単一のＡＥＳラウンド命令を提供することで，ＡＥＳ命令セットの機能を行う」という記載（なお，引用記載中の「直近」は，英語原文は“immediate”であり，当該技術分野においては，通常「即値」と日本語訳する。以下，同じ），同じく，上記ｃの「単一のＡＥＳ命令が行う特定の機能は，直近のバイト（key_select_modifier）内のビットに暗号化されている。直近のバイトにより，ＡＥＳラウンド命令は，各命令が固有演算コードを有する複数の新たな命令を作成する代わりに，新たな特徴を追加するよう拡張される」という記載，同じく上記ｃの「ＡＥＳラウンド命令は，記号として以下のように定義されうる。　dest:=aes_key_round(source2,source1),key_select_modifier」という記載，上記ｄの「図８を参照すると，destはラウンドＮに対して１２８ビットの拡張鍵を格納し，ソース２はラウンドＮ−１に対して１２８ビットの拡張鍵を格納し，ソース１はラウンドＮ−２に対して１２８ビットの拡張鍵を格納する。key_select_modifierは，現在のラウンド数（Ｎ），演算の方向（暗号化／復号化），およびＡＥＳ鍵のサイズを提供するのに利用される８ビットの直近の値である」という記載，同じく，上記ｄの「key_select_modifierは，現在のラウンド数（Ｎ），演算の方向（暗号化／復号化），およびＡＥＳ鍵のサイズを提供するのに利用される８ビットの直近の値である」という記載，及び，上記ｅの「直近のバイトのビット４は演算の方向（暗号化または復号化）を示す（例えば一実施形態では０＝暗号，および１＝復号，また別の実施形態では１＝暗号，および０＝復号，というように）」という記載から，上記ｃに「表１に示すＡＥＳ命令セットの代わりに単一のＡＥＳラウンド命令を提供することで，ＡＥＳ命令セットの機能を行う」旨の記載はあるものの，同じく，上記ｄの「destはラウンドＮに対して１２８ビットの拡張鍵を格納し，ソース２はラウンドＮ−１に対して１２８ビットの拡張鍵を格納し，ソース１はラウンドＮ−２に対して１２８ビットの拡張鍵を格納する」という記載から，上記ｃの「dest:=aes_key_round(source2,source1),key_select_modifier」という「ＡＥＳラウンド命令」は，「暗号化」，或いは，「復号化」に用いる「ラウンド鍵」の生成に関する命令であると読み取ることができる。そうすると，当該「ＡＥＳラウンド命令」における「key_select_modifier」に，「演算の方向（暗号化／復号化）」を示す情報が含まれているとしても，当該ＡＥＳラウンド命令」は，上記ａ，及び，ｂに引用した，「表１に示すＡＥＳ命令セット」のうち，「AESENCRYPTRoundのシングルラウンド命令」に相当する「１２８ビットxmmsrcdstレジスタに格納されている入力データ（ソース）に対してＡＥＳラウンド演算を行い，１２８ビットxmmsrcdstレジスタに格納されている入力データを，ラウンド演算実行結果で上書きする」といった処理を読み取ることはできず，高々，「暗号化」，或いは，「復号化」に用いる「ラウンド鍵」を生成することが読み取れるに止まる。
　したがって，上記ｅに「直近のバイトのビット４は演算の方向（暗号化または復号化）を示す（例えば一実施形態では０＝暗号，および１＝復号，また別の実施形態では１＝暗号，および０＝復号，というように）」という記載が存在しているとしても，当該「０」，「１」は，生成されるラウンド鍵が，「暗号化」に用いられるか，「復号化」に用いるかを示す情報に過ぎず，当初明細書等の記載内容からは，補正後の本願の請求項１に記載されているような，「１２８ビットの入力データを格納する１２８ビットソース／宛先レジスタ及び１２８ビットのラウンド鍵を格納するソースレジスタを特定するシングルラウンド暗号化命令・・・・は，ｏｐｃｏｄｅを含み，前記シングルラウンド暗号化命令は，復号化を示す１の代わりに暗号化を示す０である前記演算の方向を示すビットを含む」，「シングルラウンド暗号化命令」を読み取ることはできない。
　よって，本件手続補正は，当初明細書等の記載の範囲内でなされたものでない。
　
３．補正却下むすび
　したがって，本件手続補正は，特許法第１７条の２第３項の規定に違反するので，同法第１５９条第１項において読み替えて準用する同法第５３条第１項の規定により却下すべきものである。
　
　よって，補正却下の決定の結論のとおり決定する。
　
第３．本願発明について
　平成２９年１月６日付けの手続補正は，上記のとおり却下されたので，本願の請求項１に係る発明（以下，これを「本願発明」という）は，平成２８年６月１５日付けの手続補正により補正された特許請求の範囲の請求項１に記載された，上記「第２．平成２９年１月６日付けの手続補正の却下の決定」の「１．補正の内容」において，補正前の請求項１として引用した，次のとおりのものである。
　
「ＡＥＳ（Ａｄｖａｎｃｅｄ　Ｅｎｃｒｙｐｔｉｏｎ　Ｓｔａｎｄａｒｄ）シングルラウンド暗号化演算を実行するべく，１２８ビットの入力データを格納する１２８ビットソース／宛先レジスタ及び１２８ビットのラウンド鍵を格納するソースレジスタを特定するシングルラウンド暗号化命令を復号化する復号化部と，
　前記シングルラウンド暗号化命令に基づいてマイクロ演算を実行する実行部であって，前記１２８ビットの入力データ及び前記１２８ビットのラウンド鍵を受信し，前記ラウンド鍵を用いて前記１２８ビットの入力データに対して前記ＡＥＳシングルラウンド暗号化演算を実行し，１２８ビットの結果データを前記１２８ビットソース／宛先レジスタに格納する実行部と
　を備える汎用プロセッサ。」
　
第４．引用文献に記載の事項
１．原審における平成２７年１２月８日付けの拒絶理由（以下，これを「原審拒絶理由」という）に引用された，本願の原出願の第１国出願前に既に公知である，「．Implementing the Advanced Encryption Standard on Xtensa Processors，Application note [online], 2005年11月, Tensilica, Inc.p1-75」（以下，これを「引用文献１」という）には，関連する図面と共に，次の事項が記載されている。　
Ａ．「
」（５頁下から１９行〜６頁４行）
（
ＴＩＥ言語は，カスタム・レジスタ・ファイルによって拡張されるＸｔｅｎｓａプロセッサを可能にする
ＡＥＳエンジンは，ＡＥＳレジスタ・ファイルと名付けられた，１２８ビット幅のレジスタ・ファイルによって，プロセッサを拡張することで，この機能を活用する
　
ＡＥＳレジスタ・ファイルをサポートするために，アセンブリ言語を記述する必要はない。そのＣコンパイラは，自動的に，ＡＥＳレジスタ・ファイルをサポートするように拡張される。ＴＩＥ言語は，あなたに，ソフトウエア・プログラムと共に用いられ得る，カスタム・データ・タイプを定義することを許可する。丁度，Ｃの組込データ・タイプ（ｉｎｔ，ｓｈｏｒｔ，ｃｈａｒ，ｅｔｃ．）のように，コンパイラは，カスタム・レジスタ・ファイルのための，カスタム・データ・タイプのプログラム変数のレジスタ配分を管理する。
もし，ソフトウエア・プログラムが，カスタム・データ・タイプの多くのインスタンスを用いるなら，レジスタ・ファイル内で，レジスタの数を増やすことによって，性能を良くすることができるであろう
　
　//Declare 128bit regfile aes
  regfile   aes  128      2       aes 
　当審にて訳出。以下，同じ。）
　
Ｂ．「
」（１７頁１行〜同頁７行）
（暗号化に先立って，いくつかの初期化が行われる。暗号鍵が，鍵スケジュールにおいて，既に拡張されていると仮定すると，ポインタｐ＿ｋｅｙは，鍵スケジュールのベース・アドレスと共に初期化される。同様に，ポインタｐ＿ｉｎは，平文人力バッファのアドレスと共に初期化される。
　
暗号化は，ポインタｐ＿ｉｎから，変数ｍｙ＿ｓｔａｔｅの中に割り当てられている平文から開始する。
コンパイラは，ＡＥＳレジスタ・ファイル内のレジスタを，ｍｙ＿ｓｔａｔｅ変数に割り当て，平文テキストデータを，割り当てられたレジスタの中にロードするために，ａｅｓ＿ｌｉ命令を推測する
　
Ｃ．「
」（１７頁２１行〜同頁４１行）
（１０　最適化：命令結合
前章において，
ＡＥＳ変換と，これらＡＥＳ変換を実行するために生成された，個々のＴＩＥ命令が，考察された
我々は，個々のＴＩＥ命令をまとめて，結合されたＴＩＥ命令とすることで，暗号化の効率を上げることができ，それぞれの暗号化ラウンドのために，シングル命令を発行し得る
号化ラウンドは，ラウンド０と，ラウンド１０を除いて，変換の全てを用いることを思い出せ
　
　生成された３つのＴＩＥ命令は：
　
・
ＥＮＳＴＥＰ０，それは，ＲｏｕｎｄＫｅｙ変換のみを実行する
　
・
ＥＮＳＴＥＰ１，それは，全ての変換を実行する
　　
・ＥＮＳＴＥＰ２，それは，ＭｉｘＣｏｌｕｍｎｅｓ以外のすべての変換を実行する。
　
３つの命令全てに関して，別々の変換をサポートするために，独立したロジックを生成することは，多少，無駄があるかもしれない。ＥＮＳＴＥＰ０と，ＥＮＳＴＥＰ２は，ＥＮＳＴＥＰ１命令に含まれている，処理のサブセットを実行するので，ロジックは，それらの命令の間で，共有することができる。この共有は，全ての変換ステージを含む，ＴＩＥセマンティック・ブロックと共になされる。セマンティック・ブロックを介するデータ・フローは，取得された命令に基づいて，選択的に送られる。これは，以下に要約したＴＩＥコードによって示される。）
　
Ｄ．「
」（１９頁下から１２行〜同頁下から５行）
（パイプライン制御論理が，命令間のレジスタ依存状態を認めたときはいつでも，パイプライン・バブルが挿入される。
ＥＮＳＴＥＰ１命令は，ａｅｓ０レジスタ（２レジスタＡＥＳレジスタ・ファイルのレジスタ０）を，入力として,使用し，ａｅｓ０レジスタの中に書き戻すための，新しい値を計算するために，２サイクルを使用する
　
２．原審拒絶理由に引用された，本願の原出願の第１国出願前に既に公知である，「Bertoni, G. M., et al., Speeding Up AES Extending a 32bit Processor Instruction Set, International Conference on Application-specific Systems, Architectures and Processors, 2006, 2006年」（以下，これを「引用文献２」という）には，関連する図面と共に，次の事項が記載されている。
　
Ｅ．「5.1 Byte oriented solution
　In the byte-oriented solution the used instructions are the byte-wise versions of both the SBox and the SMix instructions. Considering the status matrix stored in the in the registers R0-R3 and the round key stored in the registers R4-R7, the assembler code that performs one AES round is depicted on the left of Figure 3. For the last round the code is the same, but the SMix instruction must be replaced by SBox. At the beginning of the computation, four Xor instructions are sufficient to calculate the first key addition. Consider the current contribute stored in the registers R4-R7, and the round constant stored in R8; the assembler code that calculates the next contribute of the key schedule is shown on the right of Figure 3.」（４頁左欄下から４行〜同頁右欄１０行）
（バイト指向の解法において，用いられる命令は，ＳＢｏｘ命令と，ＳＭｉｘ命令の両方の，バイト拡張版である。レジスタＲ０−Ｒ３に格納された，ステータス・マトリクスと，レジスタＲ４−Ｒ７に格納された，ラウンド鍵を考慮して，１つのＡＥＳラウンドを行う，アセンブラ・コードは，図３の左側に描かれている。最後のラウンドのために，コードは同じであるが，ＳＭｉｘ命令は，ＳＢｏｘによって置き換えられねばならない。計算の開始において，４つのＸｏｒ命令は，最初の鍵加算を計算するのに十分である。レジスタＲ４−Ｒ７に格納されている，現在の貢献と，Ｒ８に格納されている，ラウンド定数を考察せよ；鍵スケジュールの次の貢献を計算するアセンブラ・コードは，図３の右側に示されている。）
　
３．原審拒絶理由に引用された，本願の原出願の第１国出願前に既に公知である，米国特許出願公開第２００４／０２５５１３０号明細書（２００４年１２月１６日公開，以下，これを「引用文献３」という）には，関連する図面と共に，次の事項が記載されている。
　
Ｆ．「[0011]　Several classes of algorithms are currently used to encrypt and decrypt data. ・・・（中略）・・・ For example, AES performs cryptographic operations on blocks 128 bits in size, and uses cryptographic key sizes of 128-, 192-, and 256-bits. Other symmetric key algorithms such as the Rijndael Cipher allow for 192- and 256-bit data blocks as well. Accordingly, for a block encryption operation, a 1024-bit plaintext message is encrypted as eight 128-bit blocks.」
（アルゴリズムのそれぞれのクラスは，今，暗号化，復号に用いられている。・・・（中略）・・・例えば，ＡＥＳは，大きさ１２８ビットのブロックの，暗号処理を実行し，１２８−，１９２−，及び，２５６−ビット長の暗号鍵を用いる。ラインデール暗号といった，他の対称暗号も，同様に，１９２−，及び，２５６−ビットのデータ・ブロックを考慮に入れている。その結果，ブロック暗号処理において，１０２４ビットの平文メッセージは，８個の１２８−ビット・ブロックとして，暗号化される。）
　
Ｇ．「[0059]　Responsive to fetching an XCRYPT instruction as described above, the translation logic 602 generates associated micro instructions that direct logic within subsequent stages 605 - 608, 618, 619 of the microprocessor 600 to perform the prescribed cryptographic operation. The particular construct of the associated micro instructions is determined in part by the value of a keygen field within a control word 323 pointed to by contents of a control word register 308, as will be further detailed below. For example, if the value of the keygen field specifies that a user-generated key schedule is to be employed during execution of a prescribed cryptographic operation, then the keygen logic 640 will construct the associated sequence of micro instructions to direct the microprocessor 600 to retrieve the user-generated key schedule from the memory locations 324 pointed to by contents of the key pointer register 309, to load the user-generated key schedule into key RAM within the cryptography unit 617 as will be further detailed below, and to employ the user-generated key schedule during execution of the prescribed cryptographic operation. If the value of the keygen field specifies that a key schedule is to be automatically generated using a cryptographic key that is provided, then the keygen logic 640 will construct the associated sequence of micro instructions to direct the microprocessor 600 to retrieve the provided cryptographic key from the memory locations 324 pointed to by contents of the key pointer register 309, to load the key into key RAM within the cryptography unit 617, to expand the key into a key schedule, and to employ the expanded key schedule during execution of the prescribed cryptographic operation. The size of the cryptographic key is programmed by establishing the value of a keysize field within the control word. In one embodiment, values of the keysize field allow for prescription of a 128-bit cryptographic key, a 192-bit cryptographic key, and a 256-bit cryptographic key.」
（上述したような，ＸＣＲＹＰＴ命令をフェッチすることに応答して，変換論理６０２が，規定の暗号処理を実行するために，マイクロプロセッサ６００の，サブシーケンス・ステージ６０５−６０８，６１８，６１９の中で，論理を管理する，関連したマイクロ命令を生成する。関連するマイクロ命令の，特別な構成は，以下に，さらに詳細に示すように，制御語レジスタ３０８のコンテンツによって指し示される，制御語３２３の中で，キージェン領域の値によって，部分的に決定される。例えば，キージェン領域の値が，ユーザに生成された鍵スケジュールが，規定の暗号処理の実行中に用いられるためのものとして，特定されるものであるとすると，そのとき，キージェン論理６４０は，キー・ポインタ・レジスタ３０９のコンテンツによって指し示される，メモリ・ロケーション３２４から，ユーザに生成された鍵スケジュールを読み出し，以下に，さらに詳細に示すように，暗号ユニット６１７の中の，鍵ＲＡＭの中へ，ユーザに生成された鍵スケジュールをロードし，そして，規定の暗号処理の実行の間，ユーザに生成された鍵スケジュールを使用するために，マイクロプロセッサ６００を管理するよう，マイクロ命令の関連するシーケンスを生成する。もし，キージェン領域の値が，鍵スケジュールが，提供される暗号鍵を用いることを，自動的に生成するためのものとして，特定されるものであるとすると，そのとき，キージェン論理６４０は，キー・ポインタ・レジスタ３０９のコンテンツによって指し示される，メモリ・ロケーション３２４から，規定の暗号鍵を読み出し，暗号ユニット６１７の中の，鍵ＲＡＭの中へ，その鍵をロードし，鍵スケジュールのなかで，その鍵を拡張し，そして，規定の暗号処理の実行の間，拡張された鍵スケジュールを使用するために，マイクロプロセッサ６００を管理するよう，マイクロ命令の関連するシーケンスを生成する。暗号鍵のサイズは，制御語の中の，鍵サイズ領域に設定されている値によって，プログラムされる。１実施例においては，鍵サイズ領域の値は，１２８−ビット暗号鍵，１９２−ビット暗号鍵，及び，２５６−ビット暗号鍵の規定を考慮する。）
　
第５．引用文献１に記載の発明
１．上記Ａの「The TIE language enables the Xtensa processor to be extended with custom register files（ＴＩＥ言語は，カスタム・レジスタ・ファイルによって拡張されるＸｔｅｎｓａプロセッサを可能にする）」という記載，及び，同じく，上記Ａの「The AES engine can take advantage of this capability by extending the processor with a 128-bit wide register file ，named the AES register file（ＡＥＳエンジンは，ＡＥＳレジスタ・ファイルと名付けられた，１２８ビット幅のレジスタ・ファイルによって，プロセッサを拡張することで，この機能を活用する）」という記載から，引用文献１においては，
“ＡＥＳ暗号化を実行するものであって，ＡＥＳレジスタ・ファイルと呼ばれる，１２８ビット幅のレジスタ・ファイルを有する，Ｘｔｅｎｓａプロセッサ”が記載されていることが読み取れる。
　
２．上記Ａの「If a software program uses many instances of the custom data type,you could improve performance by increasing the number of registers in the register file（もし，ソフトウエア・プログラムが，カスタム・データ・タイプの多くのインスタンスを用いるなら，レジスタ・ファイル内で，レジスタの数を増やすことによって，性能を良くすることができるであろう）」という記載と，上記１．において検討した事項から，引用文献１においては，
“ＡＥＳ暗号化を実行するものであって，ＡＥＳレジスタ・ファイルと呼ばれる，１２８ビット幅のレジスタ・ファイルの中に，複数のレジスタを有する，Ｘｔｅｎｓａプロセッサ”が記載されていることが読み取れる。
　
３．上記Ｂの「The compiler allocates a register in the AES register file to the my_state variable and infers the aes_li instruction to load the plaintext data into the allocated register（コンパイラは，ＡＥＳレジスタ・ファイル内のレジスタを，ｍｙ＿ｓｔａｔｅ変数に割り当て，平文テキストデータを，割り当てられたレジスタの中にロードするために，ａｅｓ＿ｌｉ命令を推測する）」という記載と，上記１．において検討した事項から，引用文献１からは，
“コンパイラによってコンパイルされた，平文テキストを，割り当てられたレジスタにロードするという命令を実行する，Ｘｔｅｎｓａプロセッサ”が読み取れる。
　
４．上記Ｃの「AES transformations and created individual TIE instructions to perform these transformations were discussed（ＡＥＳ変換と，これらＡＥＳ変換を実行するために生成された，個々のＴＩＥ命令が，考察された）」という記載と，同じく，上記Ｃの「We may increase the encryption performance by merging the individual TIE instructions into a combined TIE instruction and issue the single instruction for each encryption round（我々は，個々のＴＩＥ命令をまとめて，結合されたＴＩＥ命令とすることで，暗号化の効率を上げることができ，それぞれの暗号化ラウンドのために，シングル命令を発行し得る）」という記載，及び，同じく，上記Ｃの「Recall that the encryption rounds use all the transformations with the exception of round 0 and round 10（暗号化ラウンドは，ラウンド０と，ラウンド１０を除いて，変換の全てを用いることを思い出せ）」という記載から，引用文献１においては，
“各ＡＥＳ暗号化ラウンドの為に，生成された複数のＴＩＥ命令を結合し，シングル命令が発行され，前記シングル命令が実行される”ものであることが読み取れる。
　
５．上記Ｃの「ENSTEP0 instruction that only performs the RoundKey transformation（ＥＮＳＴＥＰ０，それは，ＲｏｕｎｄＫｅｙ変換のみを実行する）」という記載，同じく，上記Ｃの「ENSTEP1 instruction that performs all transformations（ＥＮＳＴＥＰ１，それは，全ての変換を実行する）」という記載，及び，上記Ｄの「The ENSTEP1 instruction takes the aes0 register(register0 of the 2 register AES register file) as an input and takes 2 cycles to calculate the new value to be written back into the aes0 register（ＥＮＳＴＥＰ１命令は，ａｅｓ０レジスタ（２レジスタＡＥＳレジスタ・ファイルのレジスタ０）を，入力として,使用し，ａｅｓ０レジスタの中に書き戻すための，新しい値を計算するために，２サイクルを使用する）」という記載と，上記１．において検討した事項から，「ａｅｓ０レジスタ」が，「１２８ビット幅」であることは明らかであることから，引用文献１においては，
“ラウンド０と，ラウンド１０以外で実行される，ＲｏｕｎｄＫｅｙ変換命令を含む，ＥＮＳＴＥＰ１命令は，１２８ビット幅のａｅｓ０レジスタに入力されたデータに対して，暗号化ラウンドを実行し，結果を，同じ，１２８ビット幅のａｅｓ０レジスタに書き戻す”ものであることが読み取れる。
　
６．以上，１．〜５．において検討した事項から，引用文献１には，次の発明（以下，これを「引用発明」という）が記載されているものと認める。
　
「ＡＥＳ暗号化を実行するものであって，ＡＥＳレジスタ・ファイルと呼ばれる，１２８ビット幅のレジスタ・ファイルの中に，複数のレジスタを有し，
　コンパイラによってコンパイルされた，平文テキストを，割り当てられたレジスタにロードするという命令を実行し，
　各ＡＥＳ暗号化ラウンドの為に，生成された複数のＴＩＥ命令を結合し，シングル命令が発行され，前記シングル命令が実行され，
　ラウンド０と，ラウンド１０以外で実行される，ＲｏｕｎｄＫｅｙ変換命令を含む，ＥＮＳＴＥＰ１命令は，１２８ビット幅のａｅｓ０レジスタに入力されたデータに対して，暗号化ラウンドを実行し，結果を，同じ，１２８ビット幅のａｅｓ０レジスタに書き戻す，Ｘｔｅｎｓａプロセッサ。」
　
第６．本願発明と引用発明との対比
１．引用発明において，「Ｘｔｅｎｓａプロセッサ」は，「ラウンド０」以外の，「ＡＥＳ暗号化ラウンド」において，「１２８ビット幅のａｅｓ０レジスタに入力されたデータに対して，暗号化ラウンドを実行し」ているのであるから，「入力されたデータ」の暗号化を行っていることは明らかであって，
　引用発明における「コンパイラ」が，「暗号化ラウンドを実行」するのに必要な，「ＥＮＳＴＥＰ１命令」等をコンパイルすることは明らかであり，当該「ＥＮＳＴＥＰ１命令」が，「ＡＥＳ暗号化ラウンド」において，
　引用発明における「ＡＥＳ暗号化を実行するものであって」が，「１２８ビット幅のａｅｓ０レジスタに入力されたデータ」を，暗号化する命令であるから，
　引用発明における「ＥＮＳＴＥＰ１命令」と，
　本願発明における「シングルラウンド暗号化命令」とは，
“暗号化用シングルラウンド命令”である点で共通するので，
　引用発明における「ＡＥＳ暗号化を実行するものであって，ＡＥＳレジスタ・ファイルと呼ばれる，１２８ビット幅のレジスタ・ファイルの中に，複数のレジスタを有し，
　コンパイラによってコンパイルされた，平文テキストを，割り当てられたレジスタにロードするという命令」と，
　本願発明における「ＡＥＳ（Ａｄｖａｎｃｅｄ　Ｅｎｃｒｙｐｔｉｏｎ　Ｓｔａｎｄａｒｄ）シングルラウンド暗号化演算を実行するべく，１２８ビットの入力データを格納する１２８ビットソース／宛先レジスタ及び１２８ビットのラウンド鍵を格納するソースレジスタを特定するシングルラウンド暗号化命令を復号化する復号化部」とは，
“ＡＥＳ（Ａｄｖａｎｃｅｄ　Ｅｎｃｒｙｐｔｉｏｎ　Ｓｔａｎｄａｒｄ）シングルラウンド暗号化演算を実行するべく，暗号化用シングルラウンド命令を復号化する復号化部”である点で共通する。
　
２．引用発明においては，「各ＡＥＳ暗号化ラウンドの為に，シングル命令が発行され，前記命令が実行され，ラウンド０と，ラウンド１０以外で実行される，ＲｏｕｎｄＫｅｙ変換命令を含む，ＥＮＳＴＥＰ１命令は，１２８ビット幅のａｅｓ０レジスタに入力されたデータに対して，暗号化ラウンドを実行し，結果を，同じ，１２８ビット幅のａｅｓ０レジスタに書き戻す」ものであるから，
　引用発明においては，「入力されたデータ」が１２８ビットであることは明らかである。
　このことから，引用発明における「ＡＥＳ暗号化ラウンド」で用いられる，ラウンド鍵も，１２８ビットであること，及び，引用発明が，当該ＡＥＳ暗号化ラウンドを実行する実行手段を有することは明らかであって，
　引用発明における「１２８ビット幅のａｅｓ０レジスタ」が，
　本願発明における「１２８ビットソース／宛先レジスタ」に相当し，
　引用発明において，「Ｘｔｅｎｓａプロセッサ」が，「入力データ」と，ラウンド鍵を入力されること，即ち，「受信する」ことも明らかであるから，
　引用発明における「各ＡＥＳ暗号化ラウンドの為に，生成された複数のＴＩＥ命令を結合し，シングル命令が発行され，前記シングル命令が実行され，ラウンド０と，ラウンド１０以外で実行される，ＲｏｕｎｄＫｅｙ変換命令を含む，ＥＮＳＴＥＰ１命令は，１２８ビット幅のａｅｓ０レジスタに入力されたデータに対して，暗号化ラウンドを実行し，結果を，同じ，１２８ビット幅のａｅｓ０レジスタに書き戻す」ことと，
　本願発明における「シングルラウンド暗号化命令に基づいてマイクロ演算を実行する実行部であって，前記１２８ビットの入力データ及び前記１２８ビットのラウンド鍵を受信し，前記ラウンド鍵を用いて前記１２８ビットの入力データに対して前記ＡＥＳシングルラウンド暗号化演算を実行し，１２８ビットの結果データを前記１２８ビットソース／宛先レジスタに格納する実行部」こととは，
“暗号化シングルラウンド命令に基づいて演算を実行する実行部であって，前記１２８ビットの入力データ及び前記１２８ビットのラウンド鍵を受信し，前記ラウンド鍵を用いて前記１２８ビットの入力データに対して前記ＡＥＳシングルラウンド暗号化演算を実行し，１２８ビットの結果データを前記１２８ビットソース／宛先レジスタに格納する実行部”である点で共通する。
　
３．以上，１．，及び，２．において検討した事項から，本願発明と，引用発明との一致点，及び，相違点は，次のとおりである。
　
［一致点］
　ＡＥＳ（Ａｄｖａｎｃｅｄ　Ｅｎｃｒｙｐｔｉｏｎ　Ｓｔａｎｄａｒｄ）シングルラウンド暗号化演算を実行するべく，シングルラウンド暗号化命令を復号化する復号化部と，
　シングルラウンド暗号化命令に基づいて演算を実行する実行部であって，１２８ビットの入力データ及び１２８ビットのラウンド鍵を受信し，前記ラウンド鍵を用いて前記１２８ビットの入力データに対して前記ＡＥＳシングルラウンド暗号化演算を実行し，１２８ビットの結果データを前記１２８ビットソース／宛先レジスタに格納する実行部と
　を備える汎用プロセッサ。
　
［相違点１］
“暗号化用シングルラウンド命令”に関して，
　本願発明においては，「１２８ビットの入力データを格納する１２８ビットソース／宛先レジスタ及び１２８ビットのラウンド鍵を格納するソースレジスタを特定するシングルラウンド暗号化命令」であるのに対して，
　引用発明においては，「ＥＮＳＴＥＰ１命令」が，「１２８ビットの入力データを格納する１２８ビットソース／宛先レジスタ及び１２８ビットのラウンド鍵を格納するソースレジスタを特定する」ことに関しての言及がない点。
　
［相違点２］
“暗号化シングルラウンド命令に基づいて演算を実行する”に関して，
　本願発明においては，「シングルラウンド暗号化命令に基づいてマイクロ演算を実行する」ものであるのに対して，
　引用発明においては，「マイクロ演算」を行う点についての言及がない点。
　
第７．相違点についての当審の判断
１．［相違点１］について
　上記Ｅに引用した，引用文献２の記載にもあるとおり，ＡＥＳのラウンドにおいて，処理対処のデータと，ラウンド鍵とを，レジスタを指定して格納することは，本願の原出願の第１国出願前に当業者には広く知られた技術である。
　ここで，引用発明においても，“平文テキストを指定されたレジスタにロードという命令”のようにレジスタを指定して実行する命令について言及されており，引用発明における「ＡＥＳ暗号化ラウンド」で実行される「シングル命令」は，複数のＴＩＥ命令を結合したものであるから，引用発明においても，“レジスタを指定する命令”を，必要に応じて，「シングル命令」に組み込むように構成することは，当業者が適宜なし得る事項である。
　よって，［相違点１］は，格別のものではない。
　
２．［相違点２］について
　上記Ｆ，及び，Ｇに引用した，引用文献３の記載にもあるとおり，ＡＥＳ暗号処理において，「マイクロ命令」を実行することは，本願の原出願の第１国出願前に当業者には広く知られた技術であり，引用発明においても，「ＡＥＳ暗号化ラウンド」において，「マイクロ命令」による「マイクロ演算」を実行するよう構成することは，当業者が適宜なし得る事項である。
　よって，［相違点２］は，格別のものではない。
　
３．以上，上記１．，及び，２．において検討したとおり，［相違点１］，及び，［相違点２］は，いずれも格別のものではなく，そして，本願発明の構成によってもたらされる効果も，当業者であれば容易に予測できる程度のものであって，格別なものとは認められない。
　
第８．むすび
　したがって，本願発明は，本願の特許出願前に日本国内又は外国において頒布された刊行物に記載された発明又は電気通信回線を通じて公衆に利用可能となった発明に基づいて当業者が容易に発明をすることができたものであるので，特許法第２９条第２項の規定により特許を受けることができない。
　
　よって，結論のとおり審決する。