• ポートフォリオ機能


ポートフォリオを新規に作成して保存
既存のポートフォリオに追加保存

  • この表をプリントする
PDF PDFをダウンロード
審決分類 審判 査定不服 特17条の2、3項新規事項追加の補正 特許、登録しない。 G09C
審判 査定不服 2項進歩性 特許、登録しない。 G09C
管理番号 1341757
審判番号 不服2017-206  
総通号数 224 
発行国 日本国特許庁(JP) 
公報種別 特許審決公報 
発行日 2018-08-31 
種別 拒絶査定不服の審決 
審判請求日 2017-01-06 
確定日 2018-06-27 
事件の表示 特願2015- 12125「新暗号規格(AES)向けの柔軟なアーキテクチャおよび命令」拒絶査定不服審判事件〔平成27年 5月21日出願公開,特開2015- 96976〕について,次のとおり審決する。 
結論 本件審判の請求は,成り立たない。 
理由 第1.手続の経緯
本願は,平成25年10月25日に出願した特願2013-222466号の一部を,特許法第44条第1項の規定により,平成27年1月26日に新たな特許出願としたものであって,
平成27年1月26日付けで特許法第36条の2第2項の規定による外国語書面,及び,外国語要約書面の日本語による翻訳文が提出され,平成27年2月25日付けで審査請求がなされる共に手続補正がなされ,平成27年12月8日付けで審査官により拒絶理由が通知され,これに対して平成28年6月15日付けで意見書が提出されると共に手続補正がなされたが,平成28年8月31日付けで審査官により拒絶査定がなされ(謄本送達;平成28年9月6日),これに対して平成29年1月6日付けで審判請求がなされると共に手続補正がなされ,平成29年2月22日付けで審査官により特許法第164条第3項の規定に基づく報告がなされたものである。

第2.平成29年1月6日付けの手続補正の却下の決定

[補正却下の決定の結論]

平成29年1月6日付け手続補正を却下する。

[理由]

1.補正の内容
平成29年1月6日付けの手続補正(以下,「本件手続補正」という)により,平成28年6月15日付けの手続補正により補正された特許請求の範囲,
「 【請求項1】
AES(Advanced Encryption Standard)シングルラウンド暗号化演算を実行するべく,128ビットの入力データを格納する128ビットソース/宛先レジスタ及び128ビットのラウンド鍵を格納するソースレジスタを特定するシングルラウンド暗号化命令を復号化する復号化部と,
前記シングルラウンド暗号化命令に基づいてマイクロ演算を実行する実行部であって,前記128ビットの入力データ及び前記128ビットのラウンド鍵を受信し,前記ラウンド鍵を用いて前記128ビットの入力データに対して前記AESシングルラウンド暗号化演算を実行し,128ビットの結果データを前記128ビットソース/宛先レジスタに格納する実行部と
を備える汎用プロセッサ。
【請求項2】
AES(Advanced Encryption Standard)シングルラウンド復号化演算を実行するべく,128ビットの入力データを格納する128ビットソース/宛先レジスタ及び128ビットのラウンド鍵を格納するソースレジスタを特定するシングルラウンド復号化命令を復号化する復号化部と,
前記シングルラウンド復号化命令に基づいてマイクロ演算を実行する実行部であって,前記128ビットの入力データ及び前記128ビットのラウンド鍵を受信し,前記ラウンド鍵を用いて前記128ビットの入力データに対して前記AESシングルラウンド復号化演算を実行し,128ビットの結果データを前記128ビットソース/宛先レジスタに格納する実行部と
を備える汎用プロセッサ。
【請求項3】
格納デバイスと,
前記格納デバイスとの通信を制御する格納I/Oコントローラと,
ダブルデータレートRAMと,
前記ダブルデータレートRAMとの通信を制御するメモリコントローラと,
前記格納I/Oコントローラ及び前記メモリコントローラに接続された汎用プロセッサであって,
AES(Advanced Encryption Standard)シングルラウンド暗号化演算を実行するべく,128ビットの入力データを格納する128ビットソース/宛先レジスタ及び128ビットのラウンド鍵を格納するソースレジスタを特定するシングルラウンド暗号化命令を復号化する復号化部と,
前記シングルラウンド暗号化命令に基づいてマイクロ演算を実行する実行部であって,前記128ビットの入力データ及び前記128ビットのラウンド鍵を受信し,前記ラウンド鍵を用いて前記128ビットの入力データに対して前記AESシングルラウンド暗号化演算を実行し,128ビットの結果データを前記128ビットソース/宛先レジスタに格納する実行部と
を有する汎用プロセッサと
を備えるシステム。
【請求項4】
格納デバイスと,
前記格納デバイスとの通信を制御する格納I/Oコントローラと,
ダブルデータレートRAMと,
前記ダブルデータレートRAMとの通信を制御するメモリコントローラと,
前記格納I/Oコントローラ及び前記メモリコントローラに接続された汎用プロセッサであって,
AES(Advanced Encryption Standard)シングルラウンド復号化演算を実行するべく,128ビットの入力データを格納する128ビットソース/宛先レジスタ及び128ビットのラウンド鍵を格納するソースレジスタを特定するシングルラウンド復号化命令を復号化する復号化部と,
前記シングルラウンド復号化命令に基づいてマイクロ演算を実行する実行部であって,前記128ビットの入力データ及び前記128ビットのラウンド鍵を受信し,前記ラウンド鍵を用いて前記128ビットの入力データに対して前記AESシングルラウンド復号化演算を実行し,128ビットの結果データを前記128ビットソース/宛先レジスタに格納する実行部と
を有する汎用プロセッサと
を備えるシステム。
【請求項5】
汎用プロセッサであって,
128ビットの入力データを格納する第1の128ビットソース/宛先レジスタ及び128ビットのラウンド鍵を格納する第2の128ビットレジスタを含むレジスタファイルと,
AES(Advanced Encryption Standard)シングルラウンド暗号化演算を実行するべく,前記第1の128ビットソース/宛先レジスタ及び前記第2の128ビットレジスタを特定するシングルラウンド暗号化命令を復号化する復号化部と,
複数のポートであって,それぞれに,整数演算又は浮動小数点演算をパラレルにサポートするための1以上の実行リソースが関連付けられた複数のポートと,
前記複数のポートのうちの選択されたポートに,前記AESシングルラウンド暗号化演算を発行する発行制御ロジックと
を備え,
前記選択されたポートに関連付けられた前記1以上の実行リソースは,前記128ビットのラウンド鍵を用いて前記128ビットの入力データに対して前記シングルラウンド暗号化演算を実行し,前記第1の128ビットソース/宛先レジスタに格納する128ビット出力データを生成するためのものである,汎用プロセッサ。
【請求項6】
汎用プロセッサであって,
128ビットの入力データを格納する第1の128ビットソース/宛先レジスタ及び128ビットのラウンド鍵を格納する第2の128ビットレジスタを含むレジスタファイルと,
AES(Advanced Encryption Standard)シングルラウンド復号化演算を実行するべく,前記第1の128ビットソース/宛先レジスタ及び前記第2の128ビットレジスタを特定するシングルラウンド復号化命令を復号化する復号化部と,
複数のポートであって,それぞれに,整数演算又は浮動小数点演算をパラレルにサポートするための1以上の実行リソースが関連付けられた複数のポートと,
前記複数のポートのうちの選択されたポートに,前記AESシングルラウンド復号化演算を発行する発行制御ロジックと
を備え,
前記選択されたポートに関連付けられた前記1以上の実行リソースは,前記128ビットのラウンド鍵を用いて前記128ビットの入力データに対して前記シングルラウンド復号化演算を実行し,前記第1の128ビットソース/宛先レジスタに格納する128ビット出力データを生成するためのものである,汎用プロセッサ。
【請求項7】
格納デバイスと,
前記格納デバイスとの通信を制御する格納I/Oコントローラと,
ダブルデータレートRAMと,
前記ダブルデータレートRAMとの通信を制御するメモリコントローラと,
前記格納I/Oコントローラ及び前記メモリコントローラに接続された汎用プロセッサであって,
128ビットの入力データを格納する第1の128ビットソース/宛先レジスタ及び128ビットのラウンド鍵を格納する第2の128ビットレジスタを含むレジスタファイルと,
AES(Advanced Encryption Standard)シングルラウンド暗号化演算を実行するべく,前記第1の128ビットソース/宛先レジスタ及び前記第2の128ビットレジスタを特定するシングルラウンド暗号化命令を復号化する復号化部と,
複数のポートであって,それぞれに,整数演算又は浮動小数点演算をパラレルにサポートするための1以上の実行リソースが関連付けられた複数のポートと,
前記複数のポートのうちの選択されたポートに,前記AESシングルラウンド暗号化演算を発行する発行制御ロジックと
を有し,
前記選択されたポートに関連付けられた前記1以上の実行リソースは,前記128ビットのラウンド鍵を用いて前記128ビットの入力データに対して前記シングルラウンド暗号化演算を実行し,前記第1の128ビットソース/宛先レジスタに格納する128ビット出力データを生成するためのものである,汎用プロセッサと
を備えるシステム。
【請求項8】
格納デバイスと,
前記格納デバイスとの通信を制御する格納I/Oコントローラと,
ダブルデータレートRAMと,
前記ダブルデータレートRAMとの通信を制御するメモリコントローラと,
前記格納I/Oコントローラ及び前記メモリコントローラに接続された汎用プロセッサであって,
128ビットの入力データを格納する第1の128ビットソース/宛先レジスタ及び128ビットのラウンド鍵を格納する第2の128ビットレジスタを含むレジスタファイルと,
AES(Advanced Encryption Standard)シングルラウンド復号化演算を実行するべく,前記第1の128ビットソース/宛先レジスタ及び前記第2の128ビットレジスタを特定するシングルラウンド復号化命令を復号化する復号化部と,
複数のポートであって,それぞれに,整数演算又は浮動小数点演算をパラレルにサポートするための1以上の実行リソースが関連付けられた複数のポートと,
前記複数のポートのうちの選択されたポートに,前記AESシングルラウンド復号化演算を発行する発行制御ロジックと
を有し,
前記選択されたポートに関連付けられた前記1以上の実行リソースは,前記128ビットのラウンド鍵を用いて前記128ビットの入力データに対して前記シングルラウンド復号化演算を実行し,前記第1の128ビットソース/宛先レジスタに格納する128ビット出力データを生成するためのものである,汎用プロセッサと
を備えるシステム。
【請求項9】
複数の128ビットレジスタと,
AES(Advanced Encryption Standard)暗号化ラウンドを実行するための命令を格納する命令キャッシュと,
前記AES暗号化ラウンドを実行するための命令であって,前記複数の128ビットレジスタのうちの暗号化される情報を含む第1の128ビットソース/宛先レジスタを示し,前記複数の128ビットレジスタのうちの前記AES暗号化ラウンドのためのラウンド鍵を含む第2の128ビットレジスタを示す命令を受信し,その命令の演算コードを復号化する復号化部と,
前記復号化部及び前記複数の128ビットレジスタに連結された実行部であって,前記命令に応じて,前記ラウンド鍵を用いて前記AES暗号化ラウンドによって変換された前記第1の128ビットソース/宛先レジスタからの前記情報を含む結果を,前記命令の前記第1の128ビットソース/宛先レジスタに格納する実行部と
を備える汎用プロセッサ。
【請求項10】
前記実行部は,前記命令に応じて,S-ボックスルックアップ,行シフト,列混合,及びラウンド鍵加算を実行する,請求項9に記載の汎用プロセッサ。
【請求項11】
複数の128ビットレジスタと,
AES(Advanced Encryption Standard)復号化ラウンドを実行するための命令を格納する命令キャッシュと,
前記AES復号化ラウンドを実行する命令であって,前記複数の128ビットレジスタのうちの復号化される情報を含む第1の128ビットソース/宛先レジスタを示し,前記複数の128ビットレジスタのうちの前記AES復号化ラウンドのためのラウンド鍵を含む第2の128ビットレジスタを示す命令を受信し,その命令の演算コードを復号化する復号化部と,
前記復号化部及び前記複数の128ビットレジスタに連結された実行部であって,前記命令に応じて,前記ラウンド鍵を用いて前記AES復号化ラウンドによって変換された前記第1の128ビットソース/宛先レジスタからの前記情報を含む結果を,前記命令の前記第1の128ビットソース/宛先レジスタに格納する実行部と
を備える汎用プロセッサ。
【請求項12】
汎用プロセッサであって,
AES(Advanced Encryption Standard)ラウンドを実行するための第1の命令を格納する命令キャッシュと,
AESアルゴリズムの前記AESラウンドを実行するべく,前記第1の命令であって,前記AESラウンドのための入力データを含むためのソースオペランドと,前記AESラウンドのためのラウンド鍵を含むソースオペランドであって前記汎用プロセッサのレジスタに格納されるソースオペランドとを有する前記第1の命令を受信し,前記第1の命令の演算コードを復号化する復号化部と,
前記復号化部に連結された実行部であって,前記第1の命令に応じて,前記AESラウンドによって前記ラウンド鍵を用いて変換された前記入力データを含む結果を,128ビットソース/宛先レジスタである,前記第1の命令の宛先に格納する実行部と
を備える汎用プロセッサ。
【請求項13】
前記第1の命令は,AES暗号化ラウンドを実行するための命令である,請求項12記載の汎用プロセッサ。
【請求項14】
前記第1の命令は,AES復号化ラウンドを実行するための命令である,請求項12に記載の汎用プロセッサ。
【請求項15】
前記入力データを含むための前記ソースオペランドは,レジスタに格納され,
前記ラウンド鍵を含むための前記ソースオペランドは,レジスタに格納される,請求項12に記載の汎用プロセッサ。
【請求項16】
前記レジスタは,128ビットレジスタである,請求項15に記載の汎用プロセッサ。
【請求項17】
前記実行部は,前記第1の命令に応じて,前記入力データを前記結果で上書きする,請求項13から16のいずれか一項に記載の汎用プロセッサ。
【請求項18】
前記実行部は,前記第1の命令に応じて,S-ボックスルックアップ,行シフト,列混合,及びラウンド鍵加算を実行する,請求項12に記載の汎用プロセッサ。」(以下,上記引用の請求項各項を,「補正前の請求項」という)は,
「 【請求項1】
汎用プロセッサであって,
AES(Advanced Encryption Standard)シングルラウンド暗号化演算を実行するべく,128ビットの入力データを格納する128ビットソース/宛先レジスタ及び128ビットのラウンド鍵を格納するソースレジスタを特定するシングルラウンド暗号化命令を復号化する前記汎用プロセッサの復号化部であって,前記シングルラウンド暗号化命令は,opcodeを含み,前記シングルラウンド暗号化命令は,復号化を示す1の代わりに暗号化を示す0である前記演算の方向を示すビットを含む,復号化部と,
前記シングルラウンド暗号化命令に基づいてマイクロ演算を実行する実行部であって,前記128ビットの入力データ及び前記128ビットのラウンド鍵を受信し,前記ラウンド鍵を用いて前記128ビットの入力データに対して前記AESシングルラウンド暗号化演算を実行し,128ビットの結果データを前記128ビットソース/宛先レジスタに格納する実行部と
を備える汎用プロセッサ。
【請求項2】
汎用プロセッサであって,
AES(Advanced Encryption Standard)シングルラウンド復号化演算を実行するべく,128ビットの入力データを格納する128ビットソース/宛先レジスタ及び128ビットのラウンド鍵を格納するソースレジスタを特定するシングルラウンド復号化命令を復号化する前記汎用プロセッサの復号化部であって,前記シングルラウンド復号化命令は,opcodeを含み,前記シングルラウンド復号化命令は,暗号化を示す0の代わりに復号化を示す1である前記演算の方向を示すビットを含む,復号化部と,
前記シングルラウンド復号化命令に基づいてマイクロ演算を実行する実行部であって,前記128ビットの入力データ及び前記128ビットのラウンド鍵を受信し,前記ラウンド鍵を用いて前記128ビットの入力データに対して前記AESシングルラウンド復号化演算を実行し,128ビットの結果データを前記128ビットソース/宛先レジスタに格納する実行部と
を備える汎用プロセッサ。
【請求項3】
格納デバイスと,
前記格納デバイスとの通信を制御する格納I/Oコントローラと,
ダブルデータレートRAMと,
前記ダブルデータレートRAMとの通信を制御するメモリコントローラと,
前記格納I/Oコントローラ及び前記メモリコントローラに接続された汎用プロセッサであって,
AES(Advanced Encryption Standard)シングルラウンド暗号化演算を実行するべく,128ビットの入力データを格納する128ビットソース/宛先レジスタ及び128ビットのラウンド鍵を格納するソースレジスタを特定するシングルラウンド暗号化命令を復号化する復号化部であって,前記シングルラウンド暗号化命令は,opcodeを含み,前記シングルラウンド暗号化命令は,復号化を示す1の代わりに暗号化を示す0である前記演算の方向を示すビットを含む,復号化部と,
前記シングルラウンド暗号化命令に基づいてマイクロ演算を実行する実行部であって,前記128ビットの入力データ及び前記128ビットのラウンド鍵を受信し,前記ラウンド鍵を用いて前記128ビットの入力データに対して前記AESシングルラウンド暗号化演算を実行し,128ビットの結果データを前記128ビットソース/宛先レジスタに格納する実行部と
を有する汎用プロセッサと
を備えるシステム。
【請求項4】
格納デバイスと,
前記格納デバイスとの通信を制御する格納I/Oコントローラと,
ダブルデータレートRAMと,
前記ダブルデータレートRAMとの通信を制御するメモリコントローラと,
前記格納I/Oコントローラ及び前記メモリコントローラに接続された汎用プロセッサであって,
AES(Advanced Encryption Standard)シングルラウンド復号化演算を実行するべく,128ビットの入力データを格納する128ビットソース/宛先レジスタ及び128ビットのラウンド鍵を格納するソースレジスタを特定するシングルラウンド復号化命令を復号化する復号化部であって,前記シングルラウンド復号化命令は,opcodeを含み,前記シングルラウンド復号化命令は,暗号化を示す0の代わりに復号化を示す1である前記演算の方向を示すビットを含む,復号化部と,
前記シングルラウンド復号化命令に基づいてマイクロ演算を実行する実行部であって,前記128ビットの入力データ及び前記128ビットのラウンド鍵を受信し,前記ラウンド鍵を用いて前記128ビットの入力データに対して前記AESシングルラウンド復号化演算を実行し,128ビットの結果データを前記128ビットソース/宛先レジスタに格納する実行部と
を有する汎用プロセッサと
を備えるシステム。
【請求項5】
汎用プロセッサであって,
128ビットの入力データを格納する第1の128ビットソース/宛先レジスタ及び128ビットのラウンド鍵を格納する第2の128ビットレジスタを含むレジスタファイルと,
AES(Advanced Encryption Standard)シングルラウンド暗号化演算を実行するべく,前記第1の128ビットソース/宛先レジスタ及び前記第2の128ビットレジスタを特定するシングルラウンド暗号化命令を復号化する前記汎用プロセッサの復号化部であって,前記シングルラウンド暗号化命令は,opcodeを含み,前記シングルラウンド暗号化命令は,復号化を示す1の代わりに暗号化を示す0である前記演算の方向を示すビットを含む,復号化部と,
複数のポートであって,それぞれに,整数演算又は浮動小数点演算をパラレルにサポートするための1以上の実行リソースが関連付けられた複数のポートと,
前記複数のポートのうちの選択されたポートに,前記AESシングルラウンド暗号化演算を発行する発行制御ロジックと
を備え,
前記選択されたポートに関連付けられた前記1以上の実行リソースは,前記128ビットのラウンド鍵を用いて前記128ビットの入力データに対して前記シングルラウンド暗号化演算を実行し,前記第1の128ビットソース/宛先レジスタに格納する128ビット出力データを生成するためのものである,汎用プロセッサ。
【請求項6】
汎用プロセッサであって,
128ビットの入力データを格納する第1の128ビットソース/宛先レジスタ及び128ビットのラウンド鍵を格納する第2の128ビットレジスタを含むレジスタファイルと,
AES(Advanced Encryption Standard)シングルラウンド復号化演算を実行するべく,前記第1の128ビットソース/宛先レジスタ及び前記第2の128ビットレジスタを特定するシングルラウンド復号化命令を復号化する前記汎用プロセッサの復号化部であって,前記シングルラウンド復号化命令は,opcodeを含み,前記シングルラウンド復号化命令は,暗号化を示す0の代わりに復号化を示す1である前記演算の方向を示すビットを含む,復号化部と,
複数のポートであって,それぞれに,整数演算又は浮動小数点演算をパラレルにサポートするための1以上の実行リソースが関連付けられた複数のポートと,
前記複数のポートのうちの選択されたポートに,前記AESシングルラウンド復号化演算を発行する発行制御ロジックと
を備え,
前記選択されたポートに関連付けられた前記1以上の実行リソースは,前記128ビットのラウンド鍵を用いて前記128ビットの入力データに対して前記シングルラウンド復号化演算を実行し,前記第1の128ビットソース/宛先レジスタに格納する128ビット出力データを生成するためのものである,汎用プロセッサ。
【請求項7】
格納デバイスと,
前記格納デバイスとの通信を制御する格納I/Oコントローラと,
ダブルデータレートRAMと,
前記ダブルデータレートRAMとの通信を制御するメモリコントローラと,
前記格納I/Oコントローラ及び前記メモリコントローラに接続された汎用プロセッサであって,
128ビットの入力データを格納する第1の128ビットソース/宛先レジスタ及び128ビットのラウンド鍵を格納する第2の128ビットレジスタを含むレジスタファイルと,
AES(Advanced Encryption Standard)シングルラウンド暗号化演算を実行するべく,前記第1の128ビットソース/宛先レジスタ及び前記第2の128ビットレジスタを特定するシングルラウンド暗号化命令を復号化する復号化部であって,前記シングルラウンド暗号化命令は,opcodeを含み,前記シングルラウンド暗号化命令は,復号化を示す1の代わりに暗号化を示す0である前記演算の方向を示すビットを含む,復号化部と,
複数のポートであって,それぞれに,整数演算又は浮動小数点演算をパラレルにサポートするための1以上の実行リソースが関連付けられた複数のポートと,
前記複数のポートのうちの選択されたポートに,前記AESシングルラウンド暗号化演算を発行する発行制御ロジックと
を有し,
前記選択されたポートに関連付けられた前記1以上の実行リソースは,前記128ビットのラウンド鍵を用いて前記128ビットの入力データに対して前記シングルラウンド暗号化演算を実行し,前記第1の128ビットソース/宛先レジスタに格納する128ビット出力データを生成するためのものである,汎用プロセッサと
を備えるシステム。
【請求項8】
格納デバイスと,
前記格納デバイスとの通信を制御する格納I/Oコントローラと,
ダブルデータレートRAMと,
前記ダブルデータレートRAMとの通信を制御するメモリコントローラと,
前記格納I/Oコントローラ及び前記メモリコントローラに接続された汎用プロセッサであって,
128ビットの入力データを格納する第1の128ビットソース/宛先レジスタ及び128ビットのラウンド鍵を格納する第2の128ビットレジスタを含むレジスタファイルと,
AES(Advanced Encryption Standard)シングルラウンド復号化演算を実行するべく,前記第1の128ビットソース/宛先レジスタ及び前記第2の128ビットレジスタを特定するシングルラウンド復号化命令を復号化する復号化部であって,前記シングルラウンド復号化命令は,opcodeを含み,前記シングルラウンド復号化命令は,暗号化を示す0の代わりに復号化を示す1である前記演算の方向を示すビットを含む,復号化部と,
複数のポートであって,それぞれに,整数演算又は浮動小数点演算をパラレルにサポートするための1以上の実行リソースが関連付けられた複数のポートと,
前記複数のポートのうちの選択されたポートに,前記AESシングルラウンド復号化演算を発行する発行制御ロジックと
を有し,
前記選択されたポートに関連付けられた前記1以上の実行リソースは,前記128ビットのラウンド鍵を用いて前記128ビットの入力データに対して前記シングルラウンド復号化演算を実行し,前記第1の128ビットソース/宛先レジスタに格納する128ビット出力データを生成するためのものである,汎用プロセッサと
を備えるシステム。
【請求項9】
汎用プロセッサであって,
複数の128ビットレジスタと,
AES(Advanced Encryption Standard)暗号化ラウンドを実行するための命令を格納する命令キャッシュであって,前記命令は,opcodeを含み,前記命令は,復号化を示す1の代わりに暗号化を示す0である前記ラウンドの方向を示すビットを含む,命令キャッシュと,
前記AES暗号化ラウンドを実行するための命令であって,前記複数の128ビットレジスタのうちの暗号化される情報を含む第1の128ビットソース/宛先レジスタを示し,前記複数の128ビットレジスタのうちの前記AES暗号化ラウンドのためのラウンド鍵を含む第2の128ビットレジスタを示す命令を受信し,その命令の演算コードを復号化する復号化部と,
前記復号化部及び前記複数の128ビットレジスタに連結された前記汎用プロセッサの実行部であって,前記命令に応じて,前記ラウンド鍵を用いて前記AES暗号化ラウンドによって変換された前記第1の128ビットソース/宛先レジスタからの前記情報を含む結果を,前記命令の前記第1の128ビットソース/宛先レジスタに格納する実行部と
を備える汎用プロセッサ。
【請求項10】
前記実行部は,前記命令に応じて,S-ボックスルックアップ,行シフト,列混合,及びラウンド鍵加算を実行する,請求項9に記載の汎用プロセッサ。
【請求項11】
汎用プロセッサであって,
複数の128ビットレジスタと,
AES(Advanced Encryption Standard)復号化ラウンドを実行するための命令を格納する命令キャッシュであって,前記命令は,opcodeを含み,前記命令は,暗号化を示す0の代わりに復号化を示す1である前記ラウンドの方向を示すビットを含む,命令キャッシュと,
前記AES復号化ラウンドを実行する命令であって,前記複数の128ビットレジスタのうちの復号化される情報を含む第1の128ビットソース/宛先レジスタを示し,前記複数の128ビットレジスタのうちの前記AES復号化ラウンドのためのラウンド鍵を含む第2の128ビットレジスタを示す命令を受信し,その命令の演算コードを復号化する復号化部と,
前記復号化部及び前記複数の128ビットレジスタに連結された実行部であって,前記命令に応じて,前記ラウンド鍵を用いて前記AES復号化ラウンドによって変換された前記第1の128ビットソース/宛先レジスタからの前記情報を含む結果を,前記命令の前記第1の128ビットソース/宛先レジスタに格納する前記汎用プロセッサの実行部と
を備える汎用プロセッサ。
【請求項12】
汎用プロセッサであって,
AES(Advanced Encryption Standard)ラウンドを実行するための第1の命令を格納する命令キャッシュであって,前記第1の命令は,opcodeを含み,前記第1の命令は,暗号化および復号化のいずれかであるものとして前記ラウンドの方向を示すビットを含む,命令キャッシュと,
AESアルゴリズムの前記AESラウンドを実行するべく,前記第1の命令であって,前記AESラウンドのための入力データを含むためのソースオペランドと,前記AESラウンドのためのラウンド鍵を含むソースオペランドであって前記汎用プロセッサのレジスタに格納されるソースオペランドとを有する前記第1の命令を受信し,前記第1の命令の演算コードを復号化する復号化部と,
前記復号化部に連結された実行部であって,前記第1の命令に応じて,前記AESラウンドによって前記ラウンド鍵を用いて変換された前記入力データを含む結果を,128ビットソース/宛先レジスタである,前記第1の命令の宛先に格納する前記汎用プロセッサの実行部と
を備える汎用プロセッサ。
【請求項13】
前記第1の命令は,AES暗号化ラウンドを実行するための命令である,請求項12記載の汎用プロセッサ。
【請求項14】
前記第1の命令は,AES復号化ラウンドを実行するための命令である,請求項12に記載の汎用プロセッサ。
【請求項15】
前記入力データを含むための前記ソースオペランドは,レジスタに格納され,
前記ラウンド鍵を含むための前記ソースオペランドは,レジスタに格納される,請求項12に記載の汎用プロセッサ。
【請求項16】
前記レジスタは,128ビットレジスタである,請求項15に記載の汎用プロセッサ。
【請求項17】
前記実行部は,前記第1の命令に応じて,前記入力データを前記結果で上書きする,請求項13から16のいずれか一項に記載の汎用プロセッサ。
【請求項18】
前記実行部は,前記第1の命令に応じて,S-ボックスルックアップ,行シフト,列混合,及びラウンド鍵加算を実行する,請求項12に記載の汎用プロセッサ。」(以下,上記引用の請求項各項を,「補正後の請求項」という)に補正された。

2.補正の適否
(1)新規事項
本件手続補正が,特許法第17条の2第3項の規定を満たすものであるか否か,即ち,本件手続補正が,平成27年1月26日付けで提出された特許法第36条の2第2項の規定による外国語書面,及び,外国語要約書面の日本語による翻訳文(以下,これを「当初明細書等」という)に記載した事項の範囲内でなされたものであるかについて,以下に検討する。

ア.本件手続補正は,補正前の請求項1に記載の「シングルラウンド暗号化命令」に対して,「シングルランド暗号化命令は,opcodeを含み,前記シングルラウンド暗号化命令は,復号化を示す1の代わりに暗号化を示す0である前記演算の方向を示すビットを含む」という限定事項を付加することを含むものである。

イ.上記ア.において指摘の限定事項について検討すると,当初明細書等には,「シングルランド暗号化命令は,opcodeを含み,前記シングルラウンド暗号化命令は,復号化を示す1の代わりに暗号化を示す0である前記演算の方向を示すビットを含む」という記載は存在しない。
そこで,当初明細書等から,当該限定事項に相当する構成が読み取れるかについて,以下に検討する。

ウ.当初明細書等には,次の記載が存在する。

a.「【0027】
一実施形態では,暗号化ラウンド,復号化ラウンド,暗号化復号化最終ラウンド最終ラウンドを行い,ラウンド暗号鍵またはラウンド復号鍵を算出するのに,それぞれ別個のAES命令を含むAES命令セットが提供される。一実施形態では,AES命令セットが6つのAES命令を含む。各AESラウンド命令は,固有演算コード(opcode)を有する。固定幅ラウンド鍵の一実施形態(例えば128ビット)におけるAES命令セットのAESラウンド命令を,以下の表1に示す。
【表1】


【0028】
AES命令セットは,4つのAESラウンド命令(暗号化,復号化,暗号化最終ラウンド,復号化最終ラウンド),および2つのAESラウンド鍵命令(次のラウンド鍵および前のラウンド鍵)を含む。AES命令セットのAESラウンド命令は,最終ラウンド以外の全てのラウンドに利用される暗号化および復号化ラウンド演算を行うシングルラウンド演算を含む。例えば,表1のAESENCRYPTRoundのシングルラウンド命令では,入力データが128ビットレジスタ(xmmsrcdst)に格納され,ラウンド鍵が別の128ビットレジスタ(xmm)に格納される。この命令は,128ビットxmmsrcdstレジスタに格納されている入力データ(ソース)に対してAESラウンド演算を行い,128ビットxmmsrcdstレジスタに格納されている入力データを,ラウンド演算実行結果で上書きする。故に,xmmsrcdstは当初は入力データを,そして後には,AESラウンド演算結果を格納する。」

b.「【0031】
AES命令セットの他の2つのAES命令は,鍵のサイズ(つまり,128ビット,192ビット,または256ビット)に応じてAESラウンド用のラウンド鍵を生成する。これらAESラウンド鍵命令の一方は暗号化演算に利用されるラウンド鍵を生成し,他方は復号化演算に利用されるラウンド鍵を生成する。AESNextRoundKey AESPreviousRoundKey命令における直近のフィールドは,鍵のサイズを特定する{128,192,256}。」

c.「【0072】
図8は,ラウンド鍵を生成し暗号化および復号化を行うのに利用されうる直近のバイトを有するAESラウンド命令の一実施形態を示す。表1に示すAES命令セットの代わりに単一のAESラウンド命令を提供することで,AES命令セットの機能を行う。単一のAES命令が行う特定の機能は,直近のバイト(key_select_modifier)内のビットに暗号化されている。直近のバイトにより,AESラウンド命令は,各命令が固有演算コードを有する複数の新たな命令を作成する代わりに,新たな特徴を追加するよう拡張される。
【0073】
AESラウンド命令は,記号として以下のように定義されうる。
dest:=aes_key_round(source2,source1),key_select_modifier」

d.「【0075】
図8を参照すると,destはラウンドNに対して128ビットの拡張鍵を格納し,ソース2はラウンドN-1に対して128ビットの拡張鍵を格納し,ソース1はラウンドN-2に対して128ビットの拡張鍵を格納する。key_select_modifierは,現在のラウンド数(N),演算の方向(暗号化/復号化),およびAES鍵のサイズを提供するのに利用される8ビットの直近の値である。AES-128では,ソース1は不要であるので無視される。実行部はAES部であり,フラグ(整数または浮動小数点)は利用されない。」

e.「【0077】
直近のバイトのビット4は演算の方向(暗号化または復号化)を示す(例えば一実施形態では0=暗号,および1=復号,また別の実施形態では1=暗号,および0=復号,というように)。
(この段落,以下省略。)」

f.「



エ.上記cの「ラウンド鍵を生成し暗号化および復号化を行うのに利用されうる直近のバイトを有するAESラウンド命令の一実施形態を示す。表1に示すAES命令セットの代わりに単一のAESラウンド命令を提供することで,AES命令セットの機能を行う」という記載(なお,引用記載中の「直近」は,英語原文は“immediate”であり,当該技術分野においては,通常「即値」と日本語訳する。以下,同じ),同じく,上記cの「単一のAES命令が行う特定の機能は,直近のバイト(key_select_modifier)内のビットに暗号化されている。直近のバイトにより,AESラウンド命令は,各命令が固有演算コードを有する複数の新たな命令を作成する代わりに,新たな特徴を追加するよう拡張される」という記載,同じく上記cの「AESラウンド命令は,記号として以下のように定義されうる。 dest:=aes_key_round(source2,source1),key_select_modifier」という記載,上記dの「図8を参照すると,destはラウンドNに対して128ビットの拡張鍵を格納し,ソース2はラウンドN-1に対して128ビットの拡張鍵を格納し,ソース1はラウンドN-2に対して128ビットの拡張鍵を格納する。key_select_modifierは,現在のラウンド数(N),演算の方向(暗号化/復号化),およびAES鍵のサイズを提供するのに利用される8ビットの直近の値である」という記載,同じく,上記dの「key_select_modifierは,現在のラウンド数(N),演算の方向(暗号化/復号化),およびAES鍵のサイズを提供するのに利用される8ビットの直近の値である」という記載,及び,上記eの「直近のバイトのビット4は演算の方向(暗号化または復号化)を示す(例えば一実施形態では0=暗号,および1=復号,また別の実施形態では1=暗号,および0=復号,というように)」という記載から,上記cに「表1に示すAES命令セットの代わりに単一のAESラウンド命令を提供することで,AES命令セットの機能を行う」旨の記載はあるものの,同じく,上記dの「destはラウンドNに対して128ビットの拡張鍵を格納し,ソース2はラウンドN-1に対して128ビットの拡張鍵を格納し,ソース1はラウンドN-2に対して128ビットの拡張鍵を格納する」という記載から,上記cの「dest:=aes_key_round(source2,source1),key_select_modifier」という「AESラウンド命令」は,「暗号化」,或いは,「復号化」に用いる「ラウンド鍵」の生成に関する命令であると読み取ることができる。そうすると,当該「AESラウンド命令」における「key_select_modifier」に,「演算の方向(暗号化/復号化)」を示す情報が含まれているとしても,当該AESラウンド命令」は,上記a,及び,bに引用した,「表1に示すAES命令セット」のうち,「AESENCRYPTRoundのシングルラウンド命令」に相当する「128ビットxmmsrcdstレジスタに格納されている入力データ(ソース)に対してAESラウンド演算を行い,128ビットxmmsrcdstレジスタに格納されている入力データを,ラウンド演算実行結果で上書きする」といった処理を読み取ることはできず,高々,「暗号化」,或いは,「復号化」に用いる「ラウンド鍵」を生成することが読み取れるに止まる。
したがって,上記eに「直近のバイトのビット4は演算の方向(暗号化または復号化)を示す(例えば一実施形態では0=暗号,および1=復号,また別の実施形態では1=暗号,および0=復号,というように)」という記載が存在しているとしても,当該「0」,「1」は,生成されるラウンド鍵が,「暗号化」に用いられるか,「復号化」に用いるかを示す情報に過ぎず,当初明細書等の記載内容からは,補正後の本願の請求項1に記載されているような,「128ビットの入力データを格納する128ビットソース/宛先レジスタ及び128ビットのラウンド鍵を格納するソースレジスタを特定するシングルラウンド暗号化命令・・・・は,opcodeを含み,前記シングルラウンド暗号化命令は,復号化を示す1の代わりに暗号化を示す0である前記演算の方向を示すビットを含む」,「シングルラウンド暗号化命令」を読み取ることはできない。
よって,本件手続補正は,当初明細書等の記載の範囲内でなされたものでない。

3.補正却下むすび
したがって,本件手続補正は,特許法第17条の2第3項の規定に違反するので,同法第159条第1項において読み替えて準用する同法第53条第1項の規定により却下すべきものである。

よって,補正却下の決定の結論のとおり決定する。

第3.本願発明について
平成29年1月6日付けの手続補正は,上記のとおり却下されたので,本願の請求項1に係る発明(以下,これを「本願発明」という)は,平成28年6月15日付けの手続補正により補正された特許請求の範囲の請求項1に記載された,上記「第2.平成29年1月6日付けの手続補正の却下の決定」の「1.補正の内容」において,補正前の請求項1として引用した,次のとおりのものである。

「AES(Advanced Encryption Standard)シングルラウンド暗号化演算を実行するべく,128ビットの入力データを格納する128ビットソース/宛先レジスタ及び128ビットのラウンド鍵を格納するソースレジスタを特定するシングルラウンド暗号化命令を復号化する復号化部と,
前記シングルラウンド暗号化命令に基づいてマイクロ演算を実行する実行部であって,前記128ビットの入力データ及び前記128ビットのラウンド鍵を受信し,前記ラウンド鍵を用いて前記128ビットの入力データに対して前記AESシングルラウンド暗号化演算を実行し,128ビットの結果データを前記128ビットソース/宛先レジスタに格納する実行部と
を備える汎用プロセッサ。」

第4.引用文献に記載の事項
1.原審における平成27年12月8日付けの拒絶理由(以下,これを「原審拒絶理由」という)に引用された,本願の原出願の第1国出願前に既に公知である,「.Implementing the Advanced Encryption Standard on Xtensa Processors,Application note [online], 2005年11月, Tensilica, Inc.p1-75」(以下,これを「引用文献1」という)には,関連する図面と共に,次の事項が記載されている。
A.「

」(5頁下から19行?6頁4行)
(TIE言語は,カスタム・レジスタ・ファイルによって拡張されるXtensaプロセッサを可能にする。そのカスタム・レジスタ・ファイルは,1024ビット幅と,2から64レジスタ列まで可能である。AESエンジンは,AESレジスタ・ファイルと名付けられた,128ビット幅のレジスタ・ファイルによって,プロセッサを拡張することで,この機能を活用する。

AESレジスタ・ファイルをサポートするために,アセンブリ言語を記述する必要はない。そのCコンパイラは,自動的に,AESレジスタ・ファイルをサポートするように拡張される。TIE言語は,あなたに,ソフトウエア・プログラムと共に用いられ得る,カスタム・データ・タイプを定義することを許可する。丁度,Cの組込データ・タイプ(int,short,char,etc.)のように,コンパイラは,カスタム・レジスタ・ファイルのための,カスタム・データ・タイプのプログラム変数のレジスタ配分を管理する。もし,ソフトウエア・プログラムが,カスタム・データ・タイプの多くのインスタンスを用いるなら,レジスタ・ファイル内で,レジスタの数を増やすことによって,性能を良くすることができるであろう。AES暗号の簡素さに起因して,2-レジスタAESレジスタ・ファイルは,コア・エリアを最小化するように選択される。AESレジスタ・ファイルは,TIEにおいて,以下のように,簡単に定義される。

//Declare 128bit regfile aes
regfile aes 128 2 aes
<当審にて訳出。以下,同じ。>)

B.「

」(17頁1行?同頁7行)
(暗号化に先立って,いくつかの初期化が行われる。暗号鍵が,鍵スケジュールにおいて,既に拡張されていると仮定すると,ポインタp_keyは,鍵スケジュールのベース・アドレスと共に初期化される。同様に,ポインタp_inは,平文人力バッファのアドレスと共に初期化される。

暗号化は,ポインタp_inから,変数my_stateの中に割り当てられている平文から開始する。コンパイラは,AESレジスタ・ファイル内のレジスタを,my_state変数に割り当て,平文テキストデータを,割り当てられたレジスタの中にロードするために,aes_li命令を推測する。)

C.「

」(17頁21行?同頁41行)
(10 最適化:命令結合
前章において,AES変換と,これらAES変換を実行するために生成された,個々のTIE命令が,考察された。ROUNDKEY命令を除いて,それぞれは,実行するために,シングル・サイクルを要した。我々は,個々のTIE命令をまとめて,結合されたTIE命令とすることで,暗号化の効率を上げることができ,それぞれの暗号化ラウンドのために,シングル命令を発行し得る。しかしながら,暗号化ラウンドのいくつかに用いられた,変換の結合は,異なっている。暗号化ラウンドは,ラウンド0と,ラウンド10を除いて,変換の全てを用いることを思い出せ。ラウンド0においては,RoundKey変換のみが実行される。ラウンド10は,MixColumnes変換を使用しない。それ故,全ての暗号化ラウンドをサポートするために,3つの個別の命令が,必要とされる。

生成された3つのTIE命令は:

・ENSTEP0,それは,RoundKey変換のみを実行する。

・ENSTEP1,それは,全ての変換を実行する。

・ENSTEP2,それは,MixColumnes以外のすべての変換を実行する。

3つの命令全てに関して,別々の変換をサポートするために,独立したロジックを生成することは,多少,無駄があるかもしれない。ENSTEP0と,ENSTEP2は,ENSTEP1命令に含まれている,処理のサブセットを実行するので,ロジックは,それらの命令の間で,共有することができる。この共有は,全ての変換ステージを含む,TIEセマンティック・ブロックと共になされる。セマンティック・ブロックを介するデータ・フローは,取得された命令に基づいて,選択的に送られる。これは,以下に要約したTIEコードによって示される。)

D.「

」(19頁下から12行?同頁下から5行)
(パイプライン制御論理が,命令間のレジスタ依存状態を認めたときはいつでも,パイプライン・バブルが挿入される。ENSTEP1命令は,aes0レジスタ(2レジスタAESレジスタ・ファイルのレジスタ0)を,入力として,使用し,aes0レジスタの中に書き戻すための,新しい値を計算するために,2サイクルを使用する。続く命令もまた,aes0レジスタを使用するので,レジスタ依存状態が存在する。パイプライン制御論理は,aes0の新しい値が計算されてしまうまでは,引き続く命令が,開始することができなくなるように,バブルを挿入するであろう。パイプライン・バブルは,もし,ENSTEP命令の間に,aes0の独立な命令が挿入されたならば,取り除くことが可能である。)

2.原審拒絶理由に引用された,本願の原出願の第1国出願前に既に公知である,「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年」(以下,これを「引用文献2」という)には,関連する図面と共に,次の事項が記載されている。

E.「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.」(4頁左欄下から4行?同頁右欄10行)
(バイト指向の解法において,用いられる命令は,SBox命令と,SMix命令の両方の,バイト拡張版である。レジスタR0-R3に格納された,ステータス・マトリクスと,レジスタR4-R7に格納された,ラウンド鍵を考慮して,1つのAESラウンドを行う,アセンブラ・コードは,図3の左側に描かれている。最後のラウンドのために,コードは同じであるが,SMix命令は,SBoxによって置き換えられねばならない。計算の開始において,4つのXor命令は,最初の鍵加算を計算するのに十分である。レジスタR4-R7に格納されている,現在の貢献と,R8に格納されている,ラウンド定数を考察せよ;鍵スケジュールの次の貢献を計算するアセンブラ・コードは,図3の右側に示されている。)

3.原審拒絶理由に引用された,本願の原出願の第1国出願前に既に公知である,米国特許出願公開第2004/0255130号明細書(2004年12月16日公開,以下,これを「引用文献3」という)には,関連する図面と共に,次の事項が記載されている。

F.「[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.」
(アルゴリズムのそれぞれのクラスは,今,暗号化,復号に用いられている。・・・(中略)・・・例えば,AESは,大きさ128ビットのブロックの,暗号処理を実行し,128-,192-,及び,256-ビット長の暗号鍵を用いる。ラインデール暗号といった,他の対称暗号も,同様に,192-,及び,256-ビットのデータ・ブロックを考慮に入れている。その結果,ブロック暗号処理において,1024ビットの平文メッセージは,8個の128-ビット・ブロックとして,暗号化される。)

G.「[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.」
(上述したような,XCRYPT命令をフェッチすることに応答して,変換論理602が,規定の暗号処理を実行するために,マイクロプロセッサ600の,サブシーケンス・ステージ605-608,618,619の中で,論理を管理する,関連したマイクロ命令を生成する。関連するマイクロ命令の,特別な構成は,以下に,さらに詳細に示すように,制御語レジスタ308のコンテンツによって指し示される,制御語323の中で,キージェン領域の値によって,部分的に決定される。例えば,キージェン領域の値が,ユーザに生成された鍵スケジュールが,規定の暗号処理の実行中に用いられるためのものとして,特定されるものであるとすると,そのとき,キージェン論理640は,キー・ポインタ・レジスタ309のコンテンツによって指し示される,メモリ・ロケーション324から,ユーザに生成された鍵スケジュールを読み出し,以下に,さらに詳細に示すように,暗号ユニット617の中の,鍵RAMの中へ,ユーザに生成された鍵スケジュールをロードし,そして,規定の暗号処理の実行の間,ユーザに生成された鍵スケジュールを使用するために,マイクロプロセッサ600を管理するよう,マイクロ命令の関連するシーケンスを生成する。もし,キージェン領域の値が,鍵スケジュールが,提供される暗号鍵を用いることを,自動的に生成するためのものとして,特定されるものであるとすると,そのとき,キージェン論理640は,キー・ポインタ・レジスタ309のコンテンツによって指し示される,メモリ・ロケーション324から,規定の暗号鍵を読み出し,暗号ユニット617の中の,鍵RAMの中へ,その鍵をロードし,鍵スケジュールのなかで,その鍵を拡張し,そして,規定の暗号処理の実行の間,拡張された鍵スケジュールを使用するために,マイクロプロセッサ600を管理するよう,マイクロ命令の関連するシーケンスを生成する。暗号鍵のサイズは,制御語の中の,鍵サイズ領域に設定されている値によって,プログラムされる。1実施例においては,鍵サイズ領域の値は,128-ビット暗号鍵,192-ビット暗号鍵,及び,256-ビット暗号鍵の規定を考慮する。)

第5.引用文献1に記載の発明
1.上記Aの「The TIE language enables the Xtensa processor to be extended with custom register files(TIE言語は,カスタム・レジスタ・ファイルによって拡張されるXtensaプロセッサを可能にする)」という記載,及び,同じく,上記Aの「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(AESエンジンは,AESレジスタ・ファイルと名付けられた,128ビット幅のレジスタ・ファイルによって,プロセッサを拡張することで,この機能を活用する)」という記載から,引用文献1においては,
“AES暗号化を実行するものであって,AESレジスタ・ファイルと呼ばれる,128ビット幅のレジスタ・ファイルを有する,Xtensaプロセッサ”が記載されていることが読み取れる。

2.上記Aの「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(もし,ソフトウエア・プログラムが,カスタム・データ・タイプの多くのインスタンスを用いるなら,レジスタ・ファイル内で,レジスタの数を増やすことによって,性能を良くすることができるであろう)」という記載と,上記1.において検討した事項から,引用文献1においては,
“AES暗号化を実行するものであって,AESレジスタ・ファイルと呼ばれる,128ビット幅のレジスタ・ファイルの中に,複数のレジスタを有する,Xtensaプロセッサ”が記載されていることが読み取れる。

3.上記Bの「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レジスタ・ファイル内のレジスタを,my_state変数に割り当て,平文テキストデータを,割り当てられたレジスタの中にロードするために,aes_li命令を推測する)」という記載と,上記1.において検討した事項から,引用文献1からは,
“コンパイラによってコンパイルされた,平文テキストを,割り当てられたレジスタにロードするという命令を実行する,Xtensaプロセッサ”が読み取れる。

4.上記Cの「AES transformations and created individual TIE instructions to perform these transformations were discussed(AES変換と,これらAES変換を実行するために生成された,個々のTIE命令が,考察された)」という記載と,同じく,上記Cの「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(我々は,個々のTIE命令をまとめて,結合されたTIE命令とすることで,暗号化の効率を上げることができ,それぞれの暗号化ラウンドのために,シングル命令を発行し得る)」という記載,及び,同じく,上記Cの「Recall that the encryption rounds use all the transformations with the exception of round 0 and round 10(暗号化ラウンドは,ラウンド0と,ラウンド10を除いて,変換の全てを用いることを思い出せ)」という記載から,引用文献1においては,
“各AES暗号化ラウンドの為に,生成された複数のTIE命令を結合し,シングル命令が発行され,前記シングル命令が実行される”ものであることが読み取れる。

5.上記Cの「ENSTEP0 instruction that only performs the RoundKey transformation(ENSTEP0,それは,RoundKey変換のみを実行する)」という記載,同じく,上記Cの「ENSTEP1 instruction that performs all transformations(ENSTEP1,それは,全ての変換を実行する)」という記載,及び,上記Dの「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(ENSTEP1命令は,aes0レジスタ(2レジスタAESレジスタ・ファイルのレジスタ0)を,入力として,使用し,aes0レジスタの中に書き戻すための,新しい値を計算するために,2サイクルを使用する)」という記載と,上記1.において検討した事項から,「aes0レジスタ」が,「128ビット幅」であることは明らかであることから,引用文献1においては,
“ラウンド0と,ラウンド10以外で実行される,RoundKey変換命令を含む,ENSTEP1命令は,128ビット幅のaes0レジスタに入力されたデータに対して,暗号化ラウンドを実行し,結果を,同じ,128ビット幅のaes0レジスタに書き戻す”ものであることが読み取れる。

6.以上,1.?5.において検討した事項から,引用文献1には,次の発明(以下,これを「引用発明」という)が記載されているものと認める。

「AES暗号化を実行するものであって,AESレジスタ・ファイルと呼ばれる,128ビット幅のレジスタ・ファイルの中に,複数のレジスタを有し,
コンパイラによってコンパイルされた,平文テキストを,割り当てられたレジスタにロードするという命令を実行し,
各AES暗号化ラウンドの為に,生成された複数のTIE命令を結合し,シングル命令が発行され,前記シングル命令が実行され,
ラウンド0と,ラウンド10以外で実行される,RoundKey変換命令を含む,ENSTEP1命令は,128ビット幅のaes0レジスタに入力されたデータに対して,暗号化ラウンドを実行し,結果を,同じ,128ビット幅のaes0レジスタに書き戻す,Xtensaプロセッサ。」

第6.本願発明と引用発明との対比
1.引用発明において,「Xtensaプロセッサ」は,「ラウンド0」以外の,「AES暗号化ラウンド」において,「128ビット幅のaes0レジスタに入力されたデータに対して,暗号化ラウンドを実行し」ているのであるから,「入力されたデータ」の暗号化を行っていることは明らかであって,
引用発明における「コンパイラ」が,「暗号化ラウンドを実行」するのに必要な,「ENSTEP1命令」等をコンパイルすることは明らかであり,当該「ENSTEP1命令」が,「AES暗号化ラウンド」において,
引用発明における「AES暗号化を実行するものであって」が,「128ビット幅のaes0レジスタに入力されたデータ」を,暗号化する命令であるから,
引用発明における「ENSTEP1命令」と,
本願発明における「シングルラウンド暗号化命令」とは,
“暗号化用シングルラウンド命令”である点で共通するので,
引用発明における「AES暗号化を実行するものであって,AESレジスタ・ファイルと呼ばれる,128ビット幅のレジスタ・ファイルの中に,複数のレジスタを有し,
コンパイラによってコンパイルされた,平文テキストを,割り当てられたレジスタにロードするという命令」と,
本願発明における「AES(Advanced Encryption Standard)シングルラウンド暗号化演算を実行するべく,128ビットの入力データを格納する128ビットソース/宛先レジスタ及び128ビットのラウンド鍵を格納するソースレジスタを特定するシングルラウンド暗号化命令を復号化する復号化部」とは,
“AES(Advanced Encryption Standard)シングルラウンド暗号化演算を実行するべく,暗号化用シングルラウンド命令を復号化する復号化部”である点で共通する。

2.引用発明においては,「各AES暗号化ラウンドの為に,シングル命令が発行され,前記命令が実行され,ラウンド0と,ラウンド10以外で実行される,RoundKey変換命令を含む,ENSTEP1命令は,128ビット幅のaes0レジスタに入力されたデータに対して,暗号化ラウンドを実行し,結果を,同じ,128ビット幅のaes0レジスタに書き戻す」ものであるから,
引用発明においては,「入力されたデータ」が128ビットであることは明らかである。
このことから,引用発明における「AES暗号化ラウンド」で用いられる,ラウンド鍵も,128ビットであること,及び,引用発明が,当該AES暗号化ラウンドを実行する実行手段を有することは明らかであって,
引用発明における「128ビット幅のaes0レジスタ」が,
本願発明における「128ビットソース/宛先レジスタ」に相当し,
引用発明において,「Xtensaプロセッサ」が,「入力データ」と,ラウンド鍵を入力されること,即ち,「受信する」ことも明らかであるから,
引用発明における「各AES暗号化ラウンドの為に,生成された複数のTIE命令を結合し,シングル命令が発行され,前記シングル命令が実行され,ラウンド0と,ラウンド10以外で実行される,RoundKey変換命令を含む,ENSTEP1命令は,128ビット幅のaes0レジスタに入力されたデータに対して,暗号化ラウンドを実行し,結果を,同じ,128ビット幅のaes0レジスタに書き戻す」ことと,
本願発明における「シングルラウンド暗号化命令に基づいてマイクロ演算を実行する実行部であって,前記128ビットの入力データ及び前記128ビットのラウンド鍵を受信し,前記ラウンド鍵を用いて前記128ビットの入力データに対して前記AESシングルラウンド暗号化演算を実行し,128ビットの結果データを前記128ビットソース/宛先レジスタに格納する実行部」こととは,
“暗号化シングルラウンド命令に基づいて演算を実行する実行部であって,前記128ビットの入力データ及び前記128ビットのラウンド鍵を受信し,前記ラウンド鍵を用いて前記128ビットの入力データに対して前記AESシングルラウンド暗号化演算を実行し,128ビットの結果データを前記128ビットソース/宛先レジスタに格納する実行部”である点で共通する。

3.以上,1.,及び,2.において検討した事項から,本願発明と,引用発明との一致点,及び,相違点は,次のとおりである。

[一致点]
AES(Advanced Encryption Standard)シングルラウンド暗号化演算を実行するべく,シングルラウンド暗号化命令を復号化する復号化部と,
シングルラウンド暗号化命令に基づいて演算を実行する実行部であって,128ビットの入力データ及び128ビットのラウンド鍵を受信し,前記ラウンド鍵を用いて前記128ビットの入力データに対して前記AESシングルラウンド暗号化演算を実行し,128ビットの結果データを前記128ビットソース/宛先レジスタに格納する実行部と
を備える汎用プロセッサ。

[相違点1]
“暗号化用シングルラウンド命令”に関して,
本願発明においては,「128ビットの入力データを格納する128ビットソース/宛先レジスタ及び128ビットのラウンド鍵を格納するソースレジスタを特定するシングルラウンド暗号化命令」であるのに対して,
引用発明においては,「ENSTEP1命令」が,「128ビットの入力データを格納する128ビットソース/宛先レジスタ及び128ビットのラウンド鍵を格納するソースレジスタを特定する」ことに関しての言及がない点。

[相違点2]
“暗号化シングルラウンド命令に基づいて演算を実行する”に関して,
本願発明においては,「シングルラウンド暗号化命令に基づいてマイクロ演算を実行する」ものであるのに対して,
引用発明においては,「マイクロ演算」を行う点についての言及がない点。

第7.相違点についての当審の判断
1.[相違点1]について
上記Eに引用した,引用文献2の記載にもあるとおり,AESのラウンドにおいて,処理対処のデータと,ラウンド鍵とを,レジスタを指定して格納することは,本願の原出願の第1国出願前に当業者には広く知られた技術である。
ここで,引用発明においても,“平文テキストを指定されたレジスタにロードという命令”のようにレジスタを指定して実行する命令について言及されており,引用発明における「AES暗号化ラウンド」で実行される「シングル命令」は,複数のTIE命令を結合したものであるから,引用発明においても,“レジスタを指定する命令”を,必要に応じて,「シングル命令」に組み込むように構成することは,当業者が適宜なし得る事項である。
よって,[相違点1]は,格別のものではない。

2.[相違点2]について
上記F,及び,Gに引用した,引用文献3の記載にもあるとおり,AES暗号処理において,「マイクロ命令」を実行することは,本願の原出願の第1国出願前に当業者には広く知られた技術であり,引用発明においても,「AES暗号化ラウンド」において,「マイクロ命令」による「マイクロ演算」を実行するよう構成することは,当業者が適宜なし得る事項である。
よって,[相違点2]は,格別のものではない。

3.以上,上記1.,及び,2.において検討したとおり,[相違点1],及び,[相違点2]は,いずれも格別のものではなく,そして,本願発明の構成によってもたらされる効果も,当業者であれば容易に予測できる程度のものであって,格別なものとは認められない。

第8.むすび
したがって,本願発明は,本願の特許出願前に日本国内又は外国において頒布された刊行物に記載された発明又は電気通信回線を通じて公衆に利用可能となった発明に基づいて当業者が容易に発明をすることができたものであるので,特許法第29条第2項の規定により特許を受けることができない。

よって,結論のとおり審決する。
 
審理終結日 2018-01-23 
結審通知日 2018-01-30 
審決日 2018-02-14 
出願番号 特願2015-12125(P2015-12125)
審決分類 P 1 8・ 561- Z (G09C)
P 1 8・ 121- Z (G09C)
最終処分 不成立  
前審関与審査官 中里 裕正  
特許庁審判長 高木 進
特許庁審判官 石井 茂和
佐久 聖子
発明の名称 新暗号規格(AES)向けの柔軟なアーキテクチャおよび命令  
代理人 龍華国際特許業務法人  

プライバシーポリシー   セキュリティーポリシー   運営会社概要   サービスに関しての問い合わせ