【事件の表示】
　特願２０１０−１２８９６０「情報処理装置」拒絶査定不服審判事件〔平成２３年１２月１５日出願公開，特開２０１１−２５４４４０〕について，次のとおり審決する。
【結　論】
　本件審判の請求は，成り立たない。
【理　由】
第１．手続の経緯
　本願は，平成２２年６月４日の出願であって，
　平成２３年９月２０日付けで審査請求がなされ，平成２４年２月２０日付けで審査官により拒絶理由が通知され，これに対して平成２４年４月２７日付けで意見書が提出されると共に手続補正がなされたが，平成２４年５月２１日付けで審査官により拒絶査定がなされ（発送；平成２４年５月２９日），これに対して平成２４年８月２９日付けで審判請求がなされると共に手続補正がなされ，平成２４年１１月２２日付けで審査官により特許法第１６４条第３項の規定に基づく報告がなされ，平成２５年４月１５日付けで当審により特許法第１３４条第４項の規定に基づく審尋がなされ，平成２５年６月１７日付けで回答書の提出があったものである。
　
第２．平成２４年８月２９日付けの手続補正の却下の決定
　
　［補正却下の決定の結論］
　
　平成２４年　８月２９日付け手続補正を却下する。
　
　［理由］
　
１．補正の内容
　平成２４年８月２９日付けの手続補正（以下，「本件手続補正」という）により，平成４年４月２７日付けの手続補正により補正された特許請求の範囲，
「　【請求項１】
　HMACを求める情報処理装置であって，
　入力された秘密鍵データＫの秘密鍵長(Length(K))がハッシュ関数のブロック長(Length(B)よりも短い場合に，前記秘密鍵データKに対して，0を連接して第1の鍵データK0を生成し，前記秘密鍵長(Length(K))が前記ハッシュ関数のブロック長(Length(B)と等しい場合，前記秘密鍵データKを第2の鍵データK0とし，前記秘密鍵長(Length(K))が前記ハッシュ関数のブロック長(Length(B)よりも長い場合に，前記秘密鍵データKのダイジェスト値である第1のダイジェスト値H(K)に対して０を連接して第3の鍵データK0を生成し，前記第1の鍵データK0，前記第2の鍵データK0，又は前記第3の鍵データK0のいずれかに対して第1の定数ipadとの排他的論理和を行い第1のデータ（K0 xor ipad）を算出するパディング回路と，
　前記秘密鍵長(Length(K))が前記ハッシュ関数のブロック長(Length(B)より長い場合に，前記第１のダイジェスト値H(K)を求めるとともに，前記第1のデータ（K0 xor ipad）と入力されたメッセージデータMとを連接したデータ(K0 xor ipad) || M)のダイジェスト値である第2のダイジェスト値H(K0 xor ipad) || M)を求めるハッシュ演算回路と，
　前記秘密鍵データK，または前記第1のダイジェスト値H(K)を記憶する保持回路と，
　HMAC算出のための処理状態を管理する制御部とを備え，
　前記ハッシュ演算回路は，前記第1のダイジェスト値H(K)の算出処理を途中で中断可能であるとともに，前記中断までに算出した前記第1のダイジェスト値H(K)の途中経過を外部に出力し，前記第1のダイジェスト値H(K)の算出処理を再開する場合，前記第1のダイジェスト値H(K)の途中経過が入力され，前記第1のダイジェスト値H(K)の途中経過を用いて，前記第1のダイジェスト値H(K)を算出し，
　前記ハッシュ演算回路は，前記第2のダイジェスト値H(K0 xor ipad) || M)の算出処理を途中で中断可能であるとともに，前記中断までに算出した前記第2のダイジェスト値H(K0 xor ipad) || M)の途中経過を外部に出力し，前記第2のダイジェスト値H(K0 xor ipad) || M)の算出処理を再開する場合，前記第2のダイジェスト値H(K0 xor ipad) || M)の途中経過が入力され，前記第2のダイジェスト値H(K0 xor ipad) || M)の途中経過を用いて，前記第2のダイジェスト値H(K0 xor ipad) || M)を算出し，
　前記保持回路は，前記ハッシュ演算回路が，前記第2のダイジェスト値H(K0 xor ipad) || M)の算出処理を途中で中断する場合に，前記秘密鍵データK，又は前記第1のダイジェスト値H(K)を外部に出力し，前記ハッシュ演算回路が，前記第2のダイジェスト値H(K0 xor ipad) || M)の算出処理を再開する場合に，前記秘密鍵データK又は前記第1のダイジェスト値H(K)が入力され，
　前記制御部に前記第1のダイジェスト値H(K)の算出処理の再開指示を示す信号を入力した場合に，前記ハッシュ演算回路は，前記第1のダイジェスト値H(K)の算出処理を再開し，
　前記制御部に前記第2のダイジェスト値H(K0 xor ipad) || M)の算出処理の再開指示を示す信号を入力した場合に，前記ハッシュ演算回路は，前記第2のダイジェスト値H(K0 xor ipad) || M)の算出処理を再開し，
　前記第1のダイジェスト値H(K)又は前記第2のダイジェスト値H(K0 xor ipad) || M)の算出処理の中断後，中断前と異なる秘密鍵データＫ及び中断前と異なるメッセージデータＭに対するＨＭＡＣを求めるための処理を行う情報処理装置。
　　【請求項２】
　前記秘密鍵データＫ及び前記メッセージデータＭのうち少なくとも1つのデータは，分割されたデータとして入力されることもある
　請求項１記載の情報処理装置。
　　【請求項３】
　前記制御部に，前記処理状態を初期状態に制御するための信号が入力された場合に，前記ハッシュ演算回路は，前記第1のダイジェスト値H(K)，又は前記第2のダイジェスト値H(K0 xor ipad) || M)の処理を中断し，自装置は，新たに入力された秘密鍵データＫ及び新たに入力されたメッセージデータＭに対するＨＭＡＣを求めるための処理を行う請求項１又は２記載の情報処理装置。
　　【請求項４】
　通信路を介して，秘密鍵データＫとメッセージデータＭを受信する受信部を更に備え，
　前記入力された秘密鍵データＫ及び入力されたメッセージデータＭは各々前記受信部により受信した秘密鍵データＫ及び前記受信部により受信したメッセージデータＭである
　請求項１から3のいずれか記載の情報処理装置。
　　【請求項５】
　前記第1のダイジェスト値H(K)の途中経過の入力を指示する信号を入力した場合に，前記ハッシュ演算回路に前記第1のダイジェスト値H(K)の途中経過を入力することを特徴とする前記請求項４記載の情報処理装置。
　　【請求項６】
　前記第2のダイジェスト値H(K0 xor ipad) || M)の途中経過の入力を指示する信号を入力した場合に，前記ハッシュ演算回路に前記第2のダイジェスト値H(K0 xor ipad) || M)の途中経過を入力することを特徴とする請求項５記載の情報処理装置。
　　【請求項７】
　前記ハッシュ演算回路は，前記第1のダイジェスト値H(K)を求める際に，前記秘密鍵データKをn個に分割した分割秘密鍵（ K0, K1, K2,…,Kn）に対して，K0, K1, K2,…Kn-1,Kn（若しくはKnに0を連接したデータ）の順番でハッシュ演算を繰り返し行うことにより，前記第１のダイジェスト値H(K)（＝H（K0, K1, K2,…,Kn））を算出し，
　前記ハッシュ演算回路は，前記第1のダイジェスト値H（K0, K1, K2,…,Kn）の算出処理を中断する場合であって，前記算出処理のうち分割秘密鍵K0, K1, K2,…Kiについてハッシュ演算を行っている場合，前記第1のダイジェスト値H（K0, K1, K2,…,Kn）の算出処理の途中経過としてH（K0, K1, K2,…,Ki）を出力し，
　前記第1のダイジェスト値H(K)の算出処理を再開する場合，前記ハッシュ演算回路に前記途中経過H（K0, K1, K2,…,Ki）が入力され，分割秘密鍵Ki＋1,…,Knが入力され，前記第1のダイジェスト値H（K0, K1, K2,…,Kn））を算出することを特徴とする
　請求項６記載の情報処理装置。
　　【請求項８】
　前記ハッシュ演算回路は，前記第2のダイジェスト値H(K0 xor ipad) || M)を求める際に，前記メッセージデータをn個に分割したメッセージデータブロック(M0, M1, M2,…,Mn）に対して，M0, M1, M2,…,Mn（若しくはMnに0を連接したデータ）の順番でハッシュ演算を繰り返し行い，第2のダイジェスト値H(K0 xor ipad) || M)(=H((K0 xor ipad) || M0, M1, M2,…,Mn))
を算出し，
　前記ハッシュ演算回路は，前記第２のダイジェスト値H(K0 xor ipad) || M)の算出処理を途中で中断する場合であって，前記算出処理のうちメッセージデータブロック （M0, M1, M2,…,Mi）についてハッシュ演算を行っている場合，前記第２のダイジェスト値の算出処理の途中経過としてH((K0 xor ipad) || M0, M1, M2,…,Mi)を出力し，
　前記第２のダイジェスト値の算出処理を再開する場合，前記途中経過H((K0 xor ipad) || M0, M1, M2,…,Mi)が入力され，メッセージデータブロックMi＋1,…,Mnが入力され，前記第２のダイジェスト値H((K0 xor ipad) || M0, M1, M2,…,Mn)を算出することを特徴とする
　請求項７記載の情報処理装置。」（以下，上記引用の請求項各項を，「補正前の請求項」という）は，
「　【請求項１】
　HMACを求める情報処理装置であって，
　入力された秘密鍵データＫの秘密鍵長(Length(K))がハッシュ関数のブロック長(Length(B)よりも短い場合に，前記秘密鍵データKに対して，0を連接して第1の鍵データK0を生成し，前記秘密鍵長(Length(K))が前記ハッシュ関数のブロック長(Length(B)と等しい場合，前記秘密鍵データKを第2の鍵データK0とし，前記秘密鍵長(Length(K))が前記ハッシュ関数のブロック長(Length(B)よりも長い場合に，前記秘密鍵データKのダイジェスト値である第1のダイジェスト値H(K)に対して０を連接して第3の鍵データK0を生成し，前記第1の鍵データK0，前記第2の鍵データK0，又は前記第3の鍵データK0のいずれかに対して第1の定数ipadとの排他的論理和を行い第1のデータ（K0 xor ipad）を算出するパディング回路と，
　前記秘密鍵長(Length(K))が前記ハッシュ関数のブロック長(Length(B)より長い場合に，前記第１のダイジェスト値H(K)を求めるとともに，前記第1のデータ（K0 xor ipad）と入力されたメッセージデータMとを連接したデータ(K0 xor ipad) || M)のダイジェスト値である第2のダイジェスト値H(K0 xor ipad) || M)を求めるハッシュ演算回路と，
　前記秘密鍵データK，または前記第1のダイジェスト値H(K)を記憶する保持回路と，
　HMAC算出のための処理状態を管理し，自装置を，HMAC算出のための処理状態として，前記第1の鍵データK0を生成する第1の処理状態，前記第2の鍵データK0を求める第2の処理状態，前記第3の鍵データK0を生成する第3の処理状態，前記第1のデータ（K0 xor ipad）を算出する第4の処理状態，前記第１のダイジェスト値H(K)を求める第5の処理状態，又は，前記第2のダイジェスト値H(K0 xor ipad) || M)を求める第６の処理状態に状態遷移させることができる制御部と，
　前記ハッシュ演算回路は，前記第1のダイジェスト値H(K)の算出処理を途中で中断可能であるとともに，前記中断までに算出した前記第1のダイジェスト値H(K)の途中経過を外部に出力し，前記第1のダイジェスト値H(K)の算出処理を再開する場合，前記第1のダイジェスト値H(K)の途中経過が入力され，前記第1のダイジェスト値H(K)の途中経過を用いて，前記第1のダイジェスト値H(K)を算出し，
　前記ハッシュ演算回路は，前記第2のダイジェスト値H(K0 xor ipad) || M)の算出処理を途中で中断可能であるとともに，前記中断までに算出した前記第2のダイジェスト値H(K0 xor ipad) || M)の途中経過を外部に出力し，前記第2のダイジェスト値H(K0 xor ipad) || M)の算出処理を再開する場合，前記第2のダイジェスト値H(K0 xor ipad) || M)の途中経過が入力され，前記第2のダイジェスト値H(K0 xor ipad) || M)の途中経過を用いて，前記第2のダイジェスト値H(K0 xor ipad) || M)を算出し，
　前記保持回路は，前記ハッシュ演算回路が，前記第2のダイジェスト値H(K0 xor ipad) || M)の算出処理を途中で中断する場合に，前記秘密鍵データK，又は前記第1のダイジェスト値H(K)を外部に出力し，前記ハッシュ演算回路が，前記第2のダイジェスト値H(K0 xor ipad) || M)の算出処理を再開する場合に，前記秘密鍵データK又は前記第1のダイジェスト値H(K)が入力され，
　前記制御部に，前記処理状態を初期状態に制御するための信号が入力された場合に，前記ハッシュ演算回路は，前記第1のダイジェスト値H(K)，又は前記第2のダイジェスト値H(K0 xor ipad) || M)の処理を中断し，前記第1のダイジェスト値H(K)又は前記第2のダイジェスト値H(K0 xor ipad) || M)の算出処理の中断後，中断前と異なる秘密鍵データＫ及び中断前と異なるメッセージデータＭに対するＨＭＡＣを求めるための処理を開始し，
　前記制御部に前記第1のダイジェスト値H(K)の算出処理の再開指示を示す信号を入力した場合に，前記制御部は，自装置を前記第5の処理状態に遷移させ，前記ハッシュ演算回路は，前記第1のダイジェスト値H(K)の算出処理を再開し，
　前記制御部に前記第2のダイジェスト値H(K0 xor ipad) || M)の算出処理の再開指示を示す信号を入力した場合に，前記制御部は，自装置を前記第６の処理状態に遷移させ，前記ハッシュ演算回路は，前記第2のダイジェスト値H(K0 xor ipad) || M)の算出処理を再開する
情報処理装置。
　　【請求項２】
　前記秘密鍵データＫ及び前記メッセージデータＭのうち少なくとも1つのデータは，分割されたデータとして入力されることもある
　請求項１記載の情報処理装置。
　　【請求項３】
　通信路を介して，秘密鍵データＫとメッセージデータＭを受信する受信部を更に備え，
　前記入力された秘密鍵データＫ及び入力されたメッセージデータＭは各々前記受信部により受信した秘密鍵データＫ及び前記受信部により受信したメッセージデータＭである
　請求項１又は２に記載の情報処理装置。
　　【請求項４】
　前記第1のダイジェスト値H(K)の途中経過の入力を指示する信号を入力した場合に，前記ハッシュ演算回路に前記第1のダイジェスト値H(K)の途中経過を入力することを特徴とする前記請求項３記載の情報処理装置。
　　【請求項５】
　前記第2のダイジェスト値H(K0 xor ipad) || M)の途中経過の入力を指示する信号を入力した場合に，前記ハッシュ演算回路に前記第2のダイジェスト値H(K0 xor ipad) || M)の途中経過を入力することを特徴とする請求項４記載の情報処理装置。
　　【請求項６】
　前記ハッシュ演算回路は，前記第1のダイジェスト値H(K)を求める際に，前記秘密鍵データKをn個に分割した分割秘密鍵（ K0, K1, K2,…,Kn）に対して，K0, K1, K2,…Kn-1,Kn（若しくはKnに0を連接したデータ）の順番でハッシュ演算を繰り返し行うことにより，前記第１のダイジェスト値H(K)（＝H（K0, K1, K2,…,Kn））を算出し，
　前記ハッシュ演算回路は，前記第1のダイジェスト値H（K0, K1, K2,…,Kn）の算出処理を中断する場合であって，前記算出処理のうち分割秘密鍵K0, K1, K2,…Kiについてハッシュ演算を行っている場合，前記第1のダイジェスト値H（K0, K1, K2,…,Kn）の算出処理の途中経過としてH（K0, K1, K2,…,Ki）を出力し，
　前記第1のダイジェスト値H(K)の算出処理を再開する場合，前記ハッシュ演算回路に前記途中経過H（K0, K1, K2,…,Ki）が入力され，分割秘密鍵Ki＋1,…,Knが入力され，前記第1のダイジェスト値H（K0, K1, K2,…,Kn））を算出することを特徴とする
　請求項５記載の情報処理装置。
　　【請求項７】
　前記ハッシュ演算回路は，前記第2のダイジェスト値H(K0 xor ipad) || M)を求める際に，前記メッセージデータをn個に分割したメッセージデータブロック(M0, M1, M2,…,Mn）に対して，M0, M1, M2,…,Mn（若しくはMnに0を連接したデータ）の順番でハッシュ演算を繰り返し行い，第2のダイジェスト値H(K0 xor ipad) || M)(=H((K0 xor ipad) || M0, M1, M2,…,Mn))を算出し，
　前記ハッシュ演算回路は，前記第２のダイジェスト値H(K0 xor ipad) || M)の算出処理を途中で中断する場合であって，前記算出処理のうちメッセージデータブロック （M0, M1, M2,…,Mi）についてハッシュ演算を行っている場合，前記第２のダイジェスト値の算出処理の途中経過としてH((K0 xor ipad) || M0, M1, M2,…,Mi)を出力し，
　前記第２のダイジェスト値の算出処理を再開する場合，前記途中経過H((K0 xor ipad) || M0, M1, M2,…,Mi)が入力され，メッセージデータブロックMi＋1,…,Mnが入力され，前記第２のダイジェスト値H((K0 xor ipad) || M0, M1, M2,…,Mn)を算出することを特徴とする
　請求項６記載の情報処理装置。」（以下，上記引用の請求項各項を，「補正後の請求項」という）に補正された。
　
２．補正の適否
（１）新規事項
　本件手続補正が，特許法第１７条の２第３項の規定を満たすものであるか否か，即ち，本件手続補正が，願書に最初に添付された明細書，特許請求の範囲，及び，図面（以下，これを，「当初明細書等」という）に記載された事項の範囲内でなされたものであるかについて，以下に検討する。
　
　補正後の請求項１に，
「自装置を，HMAC算出のための処理状態として，前記第1の鍵データK0を生成する第1の処理状態，前記第2の鍵データK0を求める第2の処理状態，前記第3の鍵データK0を生成する第3の処理状態，前記第1のデータ（K0 xor ipad）を算出する第4の処理状態，前記第１のダイジェスト値H(K)を求める第5の処理状態，又は，前記第2のダイジェスト値H(K0 xor ipad) || M)を求める第６の処理状態に状態遷移させることができる」（以下，これを「請求項引用記載１」という），
　及び，
「制御部に前記第1のダイジェスト値H(K)の算出処理の再開指示を示す信号を入力した場合に，前記制御部は，自装置を前記第5の処理状態に遷移させ，前記ハッシュ演算回路は，前記第1のダイジェスト値H(K)の算出処理を再開し，
　前記制御部に前記第2のダイジェスト値H(K0 xor ipad) || M)の算出処理の再開指示を示す信号を入力した場合に，前記制御部は，自装置を前記第６の処理状態に遷移させ，前記ハッシュ演算回路は，前記第2のダイジェスト値H(K0 xor ipad) || M)の算出処理を再開する（以下，これを「請求項引用記載２」という），」
　
　という記載が存在するが，上記引用記載中の「第1の処理状態」，「第2の処理状態」，「第3の処理状態」，「第4の処理状態」，「第5の処理状態」，及び，「第６の処理状態」という記載は存在しない。
　そこで，上記各「処理状態」が，当初明細書等の記載から読み取れるかについて検討すると，当初明細書等に，
「【００５５】
　次に，図３に示す状態遷移グラフに従って，図２のHMAC演算回路100の処理について説明する。また，HMAC制御回路129の状態遷移についても併せて説明する。
　【００５６】
　まず，0にセットしたHMAC信号をHMAC信号線131によりHMAC制御回路１２９に入力する。0にセットしたHMAC信号が入力されると，HMAC制御回路１２９が管理するHMAC演算回路の状態は初期状態（Ｓ１０）となる。HMAC制御回路131により，HMAC演算回路100の状態が初期状態となる。
　【００５７】
　次に，1にセットしたHMAC信号をHMAC信号線131によりHMAC制御回路129に入力する。1にセットしたHMAC信号が入力されると，HMAC制御回路129が動作を開始する。
　【００５８】
　これからHMACを演算するために用いる秘密鍵のデータ長(秘密鍵長)(Length(K))を秘密鍵・メッセージ入力信号線118によりパディング回路121に入力する。パディング回路121は，入力されたLength(K)により，図3のステップＳ１１，ステップＳ１２，ステップＳ１３のいずれの処理を行うかを判断することができる。　
　秘密鍵長(Length(K)の値によって，ステップS11，S12またはS13，S14A，S14Bの処理が行われる。これらの処理では，秘密鍵Kのデータを用いてハッシュ関数のブロック長(Length(B))と等しい長さのK0を生成し，さらに生成したK0に定数ｉｐａｄとの排他的論理和演算を行う。例えば，Length(K)＜Length(B)の場合には，秘密鍵長がハッシュ関数のブロック長より短いので，パディング処理，すなわちＢの長さになるまでＫの値に０を付加する処理（連接処理）を行う。一方，Length(K)＞Length(B)の場合には，秘密鍵長がブロック長より長いため，秘密鍵のハッシュ値H(K)を求め，このＨ（Ｋ）に対して上記パディング処理を行いK0とする。Length(K) とLength(B)が等しいときにはKは，そのままK0とする。
 【００５９】
　このようにして得られたブロック長と長さが等しいK0に，定数ｉｐａｄとの排他的論理和演算を行う。これらの具体的な処理を述べる。
　【００６０】
＜（１）Length(K)＝Length(B)の場合；Ｓ１１＞
　秘密鍵長(Length(K))がハッシュ関数のブロック長(Length(B))と等しい場合には，パディング回路121は，ステップＳ１１の処理を行うと判断する。また，HMAC制御回路129の状態もステップＳ１１に遷移する。
　【００６１】
　パディング回路121は，秘密鍵・メッセージ入力信号線119を通じて入力された秘密鍵データKを鍵データK0として，K0に対して仕様で定められた定数ipadとの排他的論理和演算を行う。その演算結果をメッセージデータ保持回路125に書き込む。同時に，入力されたKをK保持回路124に書き込む。ここで，KをK保持回路124に書き込むことにより，図3のステップＳ１７における演算時に，秘密鍵データを再び入力する必要がなくなる。
　【００６２】
　Kとipadとの排他的論理和演算を完了すると，パディング回路１２１は，HMAC制御回路129に，Kとipadとの排他的論理和演算が完了した旨を通知する。HMAC制御回路129の状態は，Ｓ１５に遷移する。
　【００６３】
＜（２）Length(K)＜Length(B)の場合；Ｓ１３＞
　秘密鍵長(Length(K))がハッシュ関数のブロック長(Length(B))よりも短いときには，パディング回路121は，ステップＳ１３の処理を行うと判断する。また，HMAC制御回路129の状態もＳ１３に遷移する。パディング回路121は，入力されたKに対してブロック長(Length(B))と等しくなるまで0で連接（パディング）し，鍵データK0を生成する。したがって，パディング回路121がパディングする0の個数は，ハッシュ関数のブロック長(Length(B))とパディング回路に入力されたLength(K)との差分により求めることができる。
　【００６４】
　なお，パディング回路121は，入力されたKをK保持回路124に書き込む。また，パディング回路121は，鍵データK0に対して仕様で定められた定数ipadとの排他的論理和演算を行い，その演算結果（K0 xor ipad）をメッセージデータ保持回路125に書き込む。K0とipadとの排他的論理和の演算を完了すると，パディング回路121は，HMAC制御回路129に，K0とipadとの排他的論理和演算が完了した旨を通知する。HMAC制御回路129の状態は，Ｓ１５に遷移する。
　【００６５】
＜（３）Length(K)＞Length(B)の場合；Ｓ１２＞
　秘密鍵長(Length(K))がハッシュ関数のブロック長(Length(B))より大きい場合は，パデ
ィング回路121は，ステップＳ１２の処理を行うと判断する。また，HMAC制御回路129の状
態もＳ１２に遷移する。」
　という記載が存在していて，このうち，上記引用の段落【００５８】に記載された，
「Length(K)＜Length(B)の場合には，秘密鍵長がハッシュ関数のブロック長より短いので，パディング処理，すなわちＢの長さになるまでＫの値に０を付加する処理（連接処理）を行う」，
　という内容が，補正後の請求項１における「第1の処理状態」に対応し，同じく，段落【００５８】に記載された，
「Length(K) とLength(B)が等しいときにはKは，そのままK0とする」，
　という内容が，補正後の請求項１における「第2の処理状態」に対応し，同じく，段落【００５８】に記載された，
「Length(K)＞Length(B)の場合には，秘密鍵長がブロック長より長いため，秘密鍵のハッシュ値H(K)を求め，このＨ（Ｋ）に対して上記パディング処理を行いK0とする」，
　という内容は，「Ｈ（Ｋ）」の演算と，「パディング処理」をして「K0」を求める処理とを含むものであり，該“「Ｈ（Ｋ）」の演算”が，補正後の請求項１における「第5の処理状態」に対応し，該“「パディング処理」をして「K0」を求める処理”が，補正後の請求項１における「第3の処理状態」に対応するものと解される。
　そして，上記引用の段落【００５９】の記載内容が，補正後の請求項１における「第4の処理状態」に対応しているの解され，
　また，当初明細書等の段落【００７８】に，
「次に生成したK0 xor ipadを用いてH((K0 xor ipad) || M)の演算を行う。」
　と記載されていて，この内容が，補正後の請求項１における「第6の処理状態」に対応することは明らかであるから，以上の点から，補正後の請求項１に記載された「第1の処理状態」，「第2の処理状態」，「第3の処理状態」，「第4の処理状態」，及び，「第5の処理状態」，並びに，「第６の処理状態」は，当初明細書等に記載されてものであると解される。
　一方，請求項引用記載２については，当初明細書等に，
「【０１０３】
　まず，Ｓ１２を中断する手順を説明する。秘密鍵K1のダイジェストH(K1)を求めている時に，分割秘密鍵（K0, K1, K2,…,Kn）のうち，Kiまで到着し，H(K1)を求めるための次のデータKi＋1が到着する前に，別の秘密鍵K2のデータが揃ったとする。この場合，HMAC演算回路100のHMAC出力信号線130にそれまでのH(K1)の中間結果（K0, K1, K2,…,Ki）が出力されている。そこで，HMAC出力信号線130により出力する信号の値を読み出して記憶装置300に記録しておくとともに，秘密鍵K1のダイジェストを求めるために必要な残りデータのバイト数を記憶装置300に記録しておく。
　【０１０４】
　そして，秘密鍵K2のダイジェストを求めるために，HMAC制御回路129にあるステートマシンを初期状態に戻しておく必要があるため，HMAC信号線131が出力するHMAC信号を1クロックサイクル以上の間0にし，再びHMAC信号を1にする。このHMAC信号を1クロックサイクル以上0にすることで，HMAC制御回路129にあるステートマシンを初期状態へ遷移させることができる。
　【０１０５】
　HMAC制御回路129にあるステートマシンを初期状態へ遷移させたのち，秘密鍵K2の演算を開始する。ここで，秘密鍵K2の演算を行うにあたり，秘密鍵K2のデータ長を入力するなどの手順は通常の演算と同様であることからここでの説明は省略し，秘密鍵K2およびメッセージデータM2を使ってHMACの演算を求めることができたとする。このメッセージデータM2のHMACが求まったところで，先に中断した秘密鍵K1のダイジェストを求めるための再開手順を以下で説明する。
　【０１０６】
　HMAC制御回路129にあるステートマシンの状態を秘密鍵のダイジェスト生成状態にするために，再開信号を1，秘密鍵・メッセージ指定信号を0とし，秘密鍵・メッセージ入力信号線119から秘密鍵K1の残りのデータを入力してHMAC演算回路100を起動する。再開信号を1，秘密鍵・メッセージ指定信号を0と入力すると，HMAC制御回路129にあるステートマシンを初期状態から，
ステートマシンは状態Ｓ１２に遷移する
　及び，
「【０１０８】
　次に秘密鍵K3，メッセージデータM3のHMACを求める際に，メッセージデータM3のH((K0 xor ipad) ||M3)を求めている時に，メッセージデータM3のn個のメッセージデータブロック（ M0, M1, M2,…,Mn）のうち，Miまで到着し，H((K0 xor ipad) ||M0, M1, M2,…,Mn)を求めるための次のデータMi＋1が到着する前に，秘密鍵K4，メッセージデータM4のHMACのデータが先に準備できたことから，先にそちらの演算を行った後，メッセージデータM3のH((K0 xor ipad) ||M3)の演算を再開する手順について説明する。
　【０１０９】
　秘密鍵K3，メッセージデータM3を用いたHMACの演算において，メッセージデータM3の演算が行われるまでの手順は通常処理と同じであるため省略する。メッセージデータM3を使ったダイジェストを求めている途中で，秘密鍵K4，メッセージデータM4の演算が先に実行することができたため，K保持回路124に保持されている値を，K出力信号線133を用いてK保持回路124から読み出し，記憶部300の秘密鍵データ記憶回路300aに記憶させる。さらに，メッセージデータM3のHMACの演算途中の値H((K0 xor ipad) ||M0, M1, M2,…,Mi)がHMAC出力信号線130に出力されているので，この値をメッセージデータ記憶回路300bに記録しておく。
　【０１１０】
　以上のように，再開時に必要な情報を読み出した後，HMAC信号を0にしてHMAC制御回路129にあるステートマシンの状態を初期状態に戻す。以降，秘密鍵K4，メッセージデータM4を使って通常の処理手順で演算を行うことでHMACを得ることができる。
　【０１１１】
　次に，秘密鍵K4，メッセージデータM4を使ったHMACの演算が終了した後で，秘密鍵K3，メッセージデータＭ3を使った演算を再開する方法について説明する。
　【０１１２】
　HMAC制御回路129にあるステートマシンの状態をメッセージデータのダイジェスト演算待ち状態とするために，再開信号を1，秘密鍵・メッセージ指定信号線126が出力する秘密鍵・メッセージ指定信号を1，HMAC信号を1とし，メッセージデータM3の残りのデータをHMAC演算回路100に入力する。再開信号を1，秘密鍵・メッセージ指定信号を1にすることにより，HMAC制御回路129にあるステートマシンは，
メッセージデータの演算待ち状態Ｓ１６に遷移する
　という記載が存在し，上記引用記載中の「ステートマシンは状態Ｓ１２に遷移する」，及び，「メッセージデータの演算待ち状態Ｓ１６に遷移する」における「状態Ｓ１２」，及び「状態Ｓ１６」は，上記引用の段落【００５５】〜【００６５】，及び，当初明細書等の段落【００７７】〜【００８７】に記載された内容，及び，【図３】に開示された内容から，「状態Ｓ１２」が，補正後の請求項１における「第5の処理状態」に対応し，「状態Ｓ１６」が，補正後の請求項１における「第６の処理状態」に対応していると解せるので，請求項引用記載２に記載された内容も，当初明細書等に記載されたものであると解され，以上検討した事項から，本件手続補正は，当初明細書等に記載の範囲内でなされたものであり，よって，特許法第１７条の２第３項の規定を満たすものである。
　
（２）目的要件
　本件手続補正は，上記「（１）新規事項」で検討したとおり，特許法第１７条の２第３項の規定を満たすものであるであるから，
　次に，本件手続補正が，特許法第１７条の２第５項の規定を満たすものであるか否か，即ち，本件手続補正が，特許法第１７条の２第５項に規定する請求項の削除，特許請求の範囲の減縮（特許法第３６条第５項の規定により請求項に記載した発明を特定するために必要な事項を限定するものであって，その補正前の当該請求項に記載された発明とその補正後の当該請求項に記載される発明の産業上の利用分野及び解決しようとする課題が同一であるものに限る），誤記の訂正，或いは，明りょうでない記載の釈明（拒絶理由通知に係る拒絶の理由に示す事項についてするものに限る）の何れかを目的としたものであるかについて，以下に検討する。
　
　本件手続補正は，補正前の請求項１に係る発明特定事項である「制御部」に，
　請求項引用記載１として引用した限定事項を附加し，更に，「制御部」の処理として，補正前の請求項３に記載された内容を，補正前の請求項１に組み入れ，補正後の請求項１とし，それに併せて，補正前の請求項３を削除する補正を行うものであるから，補正前の請求項１に係る発明の限定的減縮，及び，請求項の削除を目的としたものであることは明らかである。
　よって，本件手続補正は，特許法第１７条の２第５項の規定を満たすものである。
　
（３）独立特許要件
　本件手続補正は，上記で検討したとおり，特許法第１７条の２第３項，及び，同第１７条の２第５項の規定を満たすものである。
　そこで，本件手続補正が，特許法第１７条の２第６項において準用する同法第１２６条第７項の規定を満たすものであるか否か，即ち，補正後の請求項に記載されている事項により特定される発明が特許出願の際独立して特許を受けることができるものであるか否か，以下に検討する。
　
ア．補正後の請求項に係る発明
　補正後の請求項１に係る発明（以下，これを「本件補正発明」という）は，上記「１．補正の内容」において,補正後の請求項１として引用した，次の記載のとおりのものである。
　
「　HMACを求める情報処理装置であって，
　入力された秘密鍵データＫの秘密鍵長(Length(K))がハッシュ関数のブロック長(Length(B)よりも短い場合に，前記秘密鍵データKに対して，0を連接して第1の鍵データK0を生成し，前記秘密鍵長(Length(K))が前記ハッシュ関数のブロック長(Length(B)と等しい場合，前記秘密鍵データKを第2の鍵データK0とし，前記秘密鍵長(Length(K))が前記ハッシュ関数のブロック長(Length(B)よりも長い場合に，前記秘密鍵データKのダイジェスト値である第1のダイジェスト値H(K)に対して０を連接して第3の鍵データK0を生成し，前記第1の鍵データK0，前記第2の鍵データK0，又は前記第3の鍵データK0のいずれかに対して第1の定数ipadとの排他的論理和を行い第1のデータ（K0 xor ipad）を算出するパディング回路と，
　前記秘密鍵長(Length(K))が前記ハッシュ関数のブロック長(Length(B)より長い場合に，前記第１のダイジェスト値H(K)を求めるとともに，前記第1のデータ（K0 xor ipad）と入力されたメッセージデータMとを連接したデータ(K0 xor ipad) || M)のダイジェスト値である第2のダイジェスト値H(K0 xor ipad) || M)を求めるハッシュ演算回路と，
　前記秘密鍵データK，または前記第1のダイジェスト値H(K)を記憶する保持回路と，
　HMAC算出のための処理状態を管理し，自装置を，HMAC算出のための処理状態として，前記第1の鍵データK0を生成する第1の処理状態，前記第2の鍵データK0を求める第2の処理状態，前記第3の鍵データK0を生成する第3の処理状態，前記第1のデータ（K0 xor ipad）を算出する第4の処理状態，前記第１のダイジェスト値H(K)を求める第5の処理状態，又は，前記第2のダイジェスト値H(K0 xor ipad) || M)を求める第６の処理状態に状態遷移させることができる制御部と，
　前記ハッシュ演算回路は，前記第1のダイジェスト値H(K)の算出処理を途中で中断可能であるとともに，前記中断までに算出した前記第1のダイジェスト値H(K)の途中経過を外部に出力し，前記第1のダイジェスト値H(K)の算出処理を再開する場合，前記第1のダイジェスト値H(K)の途中経過が入力され，前記第1のダイジェスト値H(K)の途中経過を用いて，前記第1のダイジェスト値H(K)を算出し，
　前記ハッシュ演算回路は，前記第2のダイジェスト値H(K0 xor ipad) || M)の算出処理を途中で中断可能であるとともに，前記中断までに算出した前記第2のダイジェスト値H(K0 xor ipad) || M)の途中経過を外部に出力し，前記第2のダイジェスト値H(K0 xor ipad) || M)の算出処理を再開する場合，前記第2のダイジェスト値H(K0 xor ipad) || M)の途中経過が入力され，前記第2のダイジェスト値H(K0 xor ipad) || M)の途中経過を用いて，前記第2のダイジェスト値H(K0 xor ipad) || M)を算出し，
　前記保持回路は，前記ハッシュ演算回路が，前記第2のダイジェスト値H(K0 xor ipad) || M)の算出処理を途中で中断する場合に，前記秘密鍵データK，又は前記第1のダイジェスト値H(K)を外部に出力し，前記ハッシュ演算回路が，前記第2のダイジェスト値H(K0 xor ipad) || M)の算出処理を再開する場合に，前記秘密鍵データK又は前記第1のダイジェスト値H(K)が入力され，
　前記制御部に，前記処理状態を初期状態に制御するための信号が入力された場合に，前記ハッシュ演算回路は，前記第1のダイジェスト値H(K)，又は前記第2のダイジェスト値H(K0 xor ipad) || M)の処理を中断し，前記第1のダイジェスト値H(K)又は前記第2のダイジェスト値H(K0 xor ipad) || M)の算出処理の中断後，中断前と異なる秘密鍵データＫ及び中断前と異なるメッセージデータＭに対するＨＭＡＣを求めるための処理を開始し，
　前記制御部に前記第1のダイジェスト値H(K)の算出処理の再開指示を示す信号を入力した場合に，前記制御部は，自装置を前記第5の処理状態に遷移させ，前記ハッシュ演算回路は，前記第1のダイジェスト値H(K)の算出処理を再開し，
　前記制御部に前記第2のダイジェスト値H(K0 xor ipad) || M)の算出処理の再開指示を示す信号を入力した場合に，前記制御部は，自装置を前記第６の処理状態に遷移させ，前記ハッシュ演算回路は，前記第2のダイジェスト値H(K0 xor ipad) || M)の算出処理を再開する
情報処理装置。」
　
イ．引用刊行物に記載の発明
　一方，原審が，平成２４年２月２０日付けの拒絶理由（以下，これを「原審拒絶理由」という）において引用した，本願の出願前に既に公知である，「SKLAVOS, N. et al., Open Mobile Alliance (OMA) Security Layer: Architecture, Implementation and Perfoemance Evaluation of the Integrity Unit, NEW GENERATION COMPUTING, 2005年, Vol.23 No.1, p.77-100」（以下，これを「引用刊行物１」という）には，関連する図面と共に，次の事項が記載されている。
　
Ａ．「According to HMAC standard, SHA-1 and MD5 hash functions can be used alternatively, in order to support its operation. HMAC has defined two functional distinct parameters, the input data message and the secret key. We assume K the secret key and H(x) the used hash function. The input message is hashed by iterating a basic compression function on blocks of data (512-bit for both SHA-1 and MD5). With B=64 is denoted the byte-length of such blocks and is L the byte-length of the hash function output (with L=16 for MD5 and L=20 for SHA-1). The authentication key can be of any length up to B, which is the length of the hash function input data block. In applications that keys with longer length than B are required, the key is firstly hashed by using the H(x) function. Then the resultant L bytes data block (hash function output) is used, as the actual key to HMAC. In any case, the minimal recommended length for K is L bytes. In addition two fixed constants are specified: ipad, which is equal to the byte “36” repeated B times for the inner, and opad, which is equal to the byte “5C” repeated B times for the outer. In order to compute the HMAC over a data block, the following defined function is used:
　
    HMAC(K,D)=H{(K XOR opad) || H (K XOR ipad || D)}      (1)
　
where: || indicates concatenation.
　In the above equation, the block K indicates the HMAC key and D is the input data block. In this equation XOR block has higher precedence than concatenation ||. In the following Table 1 the HMAC scheme is presented in detail (step-by-step described procedure).
　Furthermore, in the Appendix the most important technical issues of both SHA-1 and MD5 standards are presented. The Appendix is a brief presentation of the standard specifications [9,10] and it is given for better understanding. Due to the limited length of the paper, used constants, generation constants mechanisms, analytical arithmetic and logical functions and padding operations are not included. For more information about the SHA-1 and MD5 hash family the readers are encouraged to study the standard specifications [9,10].」（８０頁１２行〜末行）
（HMAC標準に従い，SHA-1と，MD5のハッシュ関数は，それらの処理をサポートするために，二者択一的に使用され得る。HMACは，入力データ・メッセージと，秘密鍵の，２つの機能的な異なったパラメータを定義している。Kを秘密鍵，H(x)を用いられるハッシュ関数と仮定する。入力メッセージは，データブロック（SHA-1，MD5共に512ビット）上で繰り返し適用される，基礎圧縮関数によって，ハッシュされる。B=64は，このようなブロックのバイト長を示し，Lは，ハッシュ関数出力のバイト長である（MD5はL=16，SHA-1はL=20）。認証鍵は，ハッシュ関数入力データ・ブロック長である，長さBまでの任意の長さとし得る。アプリケーションにおいて，Bより長い鍵が要求される場合，その鍵は，H(x)関数を用いて，最初に，ハッシュされる。次に，結果のLバイト・データ・ブロック（ハッシュ関数の出力）が，HMACの実際の鍵として，用いられる。どんな場合でも，Kの推奨される最小長は，Lバイトである。加えて，内部において，Ｂ回繰り返される，バイト“３６”に等しい，ipadと，外部において，Ｂ回繰り返されるバイト“５Ｃ”に等しい，opadの，２つの一定の定数が規定される。データ・ブロック上でHMACを計算するために，以下に定義される関数が用いられる：
　
　HMAC（K,D）＝H｛(K　XOR　opad)||H(K XOR ipad||D)｝　　　　(1)
　
　ここで：||は，連結を示している。
　上記の式において，ブロックKは，HMACの鍵を示し，Dは，入力データ・ブロックである。この式において，XORブロックは，連結||よりも高い優先権を有している。表１に従って，HMACスキームは，詳細（段階的に表現された手順）が示される。
　さらに，付録において，SHA-1と，MD5標準双方の最も重要な技術問題が示される。その付録は，標準仕様書［9,10］の要約説明であり，それは，より良いために提供される。紙数の制約により，用いられた定数，生成定数メカニズム，解析演算，論理関数，及び，パディング処理は含まれない。SHA-1，及び，MD5ハッシュ・ファミリについての，より以上の情報のために，標準仕様書［9,10］を勉強することを勧める。当審にて訳出，以下，同じ。）
　
Ｂ．「
　　
　
」（８１頁　Ｔａｂｌｅ１）
（段階的ＨＭＡＣ手順
ステップ１　　もしKの長さがBに等しければ，K0=Kとおき，
　　　　　　　ステップ４に進む。
ステップ２　　もしKの長さがBより長ければ，Lバイトの文字列を
　　　　　　　得るために，Kをハッシュする。
ステップ３　　もしKの長さがBよりも短ければ，Bバイト文字列の
　　　　　　　K0を生成するために，Kの末尾に0を附加する
　　　　　　　（即ち，もしKが長さ20バイトで，B=64なら，
　　　　　　　そのときは，Kに44バイトのゼロ“00”を附加する）。
ステップ４　　Bバイト文字列を導くために，K0とipadの排他的論理和
　　　　　　　をとる。
ステップ５　　ステップ４の結果である文字列に，“テキスト”データ
　　　　　　　を附加する。
ステップ６　　ステップ５で生成された文字列に，ハッシュ関数を
　　　　　　　適用する。
ステップ７　　K0とopadの排他的論理和をとる。
ステップ８　　ステップ７に，ステップ６の結果を附加する。
ステップ９　　ステップ８の結果に，ハッシュ関数を適用する。
ステップ１０　MACとして，ステップ９の結果の左から最大tバイトを
　　　　　　　選択する。（WTLSのために，t=20））
　
Ｃ．「3.1 Proposed Architecture
　The proposed architecture for the implementation of WTLS Integrity Unit is illustrated in the following Figure 1.
　The heart of the Integrity Unit is the Hash Function Core, which implements both SHA-1 and MD5 hash functions. Especially this core operates efficiently in two different modes, one for each hash function, and will be analyzed in detail in the next sections. Like the most of the system-on-chip designs the above proposed architecture includes a simple Common Bus Interface unit for communication with the external environment. Two internal buses, the address and the data bus of 8- and 32-bit respectively, have also been integrated. In addition, an XOR block and a Concatenation Unit have also been included in the proposed Integrity Unit architecture. The Concatenation Unit is necessary for all the needed appending data processes. Finally, four registers are used for the specified constants, key and temporary data storage.
　The proposed Integrity Unit is reconfigurable in the sense that operates for three different modes: for SHA-1 and MD5 hash functions, and for HMAC security scheme. The selection of the operation mode is upon to the user needs it’s time, and it is not predefined by the Integrity Unit operation scenario. Especially, in the case of HMAC operation mode, the Control Unit coordinates all the system’s operations, according to an FSM (Finite State Machine) diagram which is shown in the next Figure. 2.
　This FSM diagram is based on the specified HMAC step-by-step procedure, which has been described in the previous Table I. In the State S0, the used key Ko is initialized (entered by the user). Then the procedure is continued to the State S1. As the Figure 2 shows, in this state, some XOR transformations are performed between the key Ko, and the constants ipad and opad. The input data are concatenated to the end of the generated data block {Ko XOR ipad} and in this way the data output A is generated. The State S2 includes the Hash Function Transformation of the data block A. This transformation is based on MD5 or SHA-1 hash function. The selection of the used hash it’s time is upon to the user demands. Then, the HMAC operation is continued to the State S3. As the Figure 2 indicates, the produced data block B is equal to the concatenation of the hash value H(A) with the produced C data block of the State S1. After the B data block generation, the operation returns to State S2. The produced new hash value H(B) of this State, is the requested hash value (HMAC calculation). Then, the system returns to the initial State S0. The system remains in this state (idle mode) until the next HMAC calculation is requested. The produced HMAC calculation is equal to 128-bit when MD5 is selected and equal to 160-bit in the case of SHA-1 operation.
　Except the HMAC operation mode, the proposed Integrity Unit architecture operates efficiently as an original MD5 or SHA-1 hash function, according to WTLS specifications. When the user demands the proposed reconfigurable architecture (Figure 1) to operate as MD5 or SHA-1, the Control Unit uses only the Hash Function Core and not any other unit, in order to perform the requested task, as an original MD5 or SHA-1 hash function.」（８１頁２行〜８３頁４行）
（３．１　提案されたアーキテクチャ
　ＷＴＬＳ完全ユニットの実装のために提案されたアーキテクチャは，以下の図１に説明される。
　完全ユニットの中心は，SHA-1と，MD5ハッシュ関数の両方を実装する，ハッシュ関数コアである。特に，このコアは，２つの異なる，その一つは，ハッシュ関数それぞれのためのものであり，次のセクションで詳細に分析する，モードにおいて，効率良く処理を行う。大部分のシステム・オン・チップ・デザインと同様に，上記提案されたアーキテクチャは，外部環境と通信するためのシンプル・共通バス・ユニットを含んでいる。それぞれ８ビット，３２ビットの，アドレス，及び，データ・バスである，２つの内部バスもまた，統合されている。加えて，排他的論理和ブロックと，連結ユニットもまた，提案された完全ユニット・アーキテクチャに含まれている。連結ユニットは，必要とされるデータ・プロセスを附加することの全てのために，必要不可欠である。最後に，４つのレジスタが，特定のコンテンツ，鍵，一時的データの記憶装置として用いられる。
　提案された完全ユニットは，３つの異なるモードのために：SHA-1と，MD5ハッシュ関数のために，及び，HMACセキュリティ・スキームのために,動作するという意味では，再構成可能である。動作モードの選択は，そのときのユーザの要求の上でなされ，完全ユニットの動作のシナリオによって，予め決められているものではない。特に，HMAC動作モードの場合においては，制御ユニットは，次の図２に示された，FSM（有限状態機械）のダイアグラムに従って，全てのシステムの動作を連係させる。
　このFSMダイアグラムは，前に表１に説明された，特定のHMACの段階的手順を基礎にしている。状態S0において，用いられる鍵Ｋ０は，初期化される（ユーザによって入力されて）。次に，手順は状態S1へと続く。図２に示すように，この状態においては，鍵Ｋ０と，定数ipad，及び，opadとの間で，いくつかの排他論理和変換が実行される。入力データは，生成されたデータ・ブロック｛Ko XOR ipad｝の末尾に附加され，このような方法で，データ出力Ａが生成される。状態S2は，データ・ブロックＡのハッシュ関数変換を含んでいる。この変換は，MD5，或いは，SHA-1ハッシュ関数に基づいている。用いられるハッシュの選択は，そのときのユーザの要求の上でなされる。次に，HMAC動作は，状態S3へと続く。図２に示すように，生成されるデータ・ブロックＢは，状態S1で生成されるＣデータ・ブロックと，ハッシュ値H(A)の連結に等しい。Ｂデータ・ブロック生成後，動作は，状態S2に戻る。この状態の生成される新しいハッシュ値H(B)は，要求されるハッシュ値（HMAC計算）である。次に，システムは，初期状態S0に戻る。システムは，次のHMAC計算が要求されるまで，この状態（アイドル・モード）に留まる。生成されるHMAC計算は，MD5が選択される時は，128ビットに等しく，SHA-1動作の場合においては，160ビットに等しい。
　HMAC動作モードを除くと，提案された完全ユニット・アーキテクチャは，WTLS仕様書に従って，オリジナルのMD5，或いは，SHA-1ハッシュ関数として，効率良く動作する。ユーザが，MD5，或いは，SHA-1として動作するために，提案された再構成可能なアーキテクチャ（図１）を要求すると，制御ユニットは，オリジナルのMD5，或いは，SHA-1ハッシュ関数として，要求されたタスクを実行するために，何か他のユニットではなく，ハッシュ関数コアのみを用いる。）
　
Ｄ．「
　
　
　
」（８１頁図１）
（図１：　提案された完全ユニットアーキテクチャ）
　
Ｅ．「
　
　
　」（８２頁図２）
（図２：　ＨＭＡＣ動作モードＦＳＭダイアグラム）
　
（ア）上記Ｃの「The proposed architecture for the implementation of WTLS Integrity Unit is illustrated in the following Figure 1.（ＷＴＬＳ完全ユニットの実装のために提案されたアーキテクチャは，以下の図１に説明される。）」という記載，及び，上記Ｃの「The proposed Integrity Unit is reconfigurable in the sense that operates for three different modes: for SHA-1 and MD5 hash functions, and for HMAC security scheme. （提案された完全ユニットは，３つの異なるモードのために：SHA-1と，MD5ハッシュ関数のために，及び，HMACセキュリティ・スキームのために,動作するという意味では，再構成可能である。）」という記載から，引用刊行物１には，
“ハッシュ関数SHA-1，ハッシュ関数MD5，或いは，HMACセキュリティ・スキームのために動作する完全ユニット”，
　が記載されていて，上記Ｃの「The heart of the Integrity Unit is the Hash Function Core, which implements both SHA-1 and MD5 hash functions. Especially this core operates efficiently in two different modes, one for each hash function, and will be analyzed in detail in the next sections. Like the most of the system-on-chip designs the above proposed architecture includes a simple Common Bus Interface unit for communication with the external environment. Two internal buses, the address and the data bus of 8- and 32-bit respectively, have also been integrated. In addition, an XOR block and a Concatenation Unit have also been included in the proposed Integrity Unit architecture. The Concatenation Unit is necessary for all the needed appending data processes. Finally, four registers are used for the specified constants, key and temporary data storage.（完全ユニットの中心は，SHA-1と，MD5ハッシュ関数の両方を実装する，ハッシュ関数コアである。特に，このコアは，２つの異なる，その一つは，ハッシュ関数それぞれのためのものであり，次のセクションで詳細に分析する，モードにおいて，効率良く処理を行う。大部分のシステム・オン・チップ・デザインと同様に，上記提案されたアーキテクチャは，外部環境と通信するためのシンプル・共通バス・ユニットを含んでいる。それぞれ８ビット，３２ビットの，アドレス，及び，データ・バスである，２つの内部バスもまた，統合されている。加えて，排他的論理和ブロックと，連結ユニットもまた，提案された完全ユニット・アーキテクチャに含まれている。連結ユニットは，必要とされるデータ・プロセスを附加することの全てのために，必要不可欠である。最後に，４つのレジスタが，特定のコンテンツ，鍵，一時的データの記憶装置として用いられる。）」という記載と，上記Ｄにおいて引用した図１とから，引用刊行物１における「完全ユニット」とは，“ハッシュ関数，HMACを計算する処理装置”であることは明らかであるから，上記検討の事項から，引用刊行物１には，
“SHA-1と，MD5ハッシュ関数の両方を実装するハッシュ関数コア，外部環境と通信するためのシンプル・共通バス・ユニット，それぞれ８ビット，３２ビットの，アドレス，及び，データ・バスである，２つの内部バス，排他的論理和ブロック，及び，連結ユニット，並びに，特定のコンテンツ，鍵，一時的データの記憶装置として用いられる４つのレジスタとを有し，ハッシュ関数SHA-1，ハッシュ関数MD5，或いは，HMACセキュリティ・スキームのために動作する処理装置”が記載されていることが読み取れる。
　
（イ）上記Ａの「We assume K the secret key and H(x) the used hash function. （Kを秘密鍵，H(x)を用いられるハッシュ関数と仮定する。）」という記載，同じく上記Ａの「With B=64 is denoted the byte-length of such blocks and is L the byte-length of the hash function output (with L=16 for MD5 and L=20 for SHA-1). （B=64は，このようなブロックのバイト長を示し，Lは，ハッシュ関数出力のバイト長である（MD5はL=16，SHA-1はL=20）。）」という記載，及び，同じく上記Ａの「The authentication key can be of any length up to B, which is the length of the hash function input data block. In applications that keys with longer length than B are required, the key is firstly hashed by using the H(x) function. （認証鍵は，ハッシュ関数入力データ・ブロック長である，長さBまでの任意の長さとし得る。アプリケーションにおいて，Bより長い鍵が要求される場合，その鍵は，H(x)関数を用いて，最初に，ハッシュされる。）」という記載，並びに，上記Ｂに引用した表１の，
「（段階的ＨＭＡＣ手順
ステップ１　　もしKの長さがBに等しければ，K0=Kとおき，
　　　　　　　ステップ４に進む。
ステップ２　　もしKの長さがBより長ければ，Lバイトの文字列を
　　　　　　　得るために，Kをハッシュする。
ステップ３　　もしKの長さがBよりも短ければ，Bバイト文字列の
　　　　　　　K0を生成するために，Kの末尾に0を附加する
　　　　　　　（即ち，もしKが長さ20バイトで，B=64なら，
　　　　　　　そのときは，Kに44バイトのゼロ“00”を附加する）。
ステップ４　　Bバイト文字列を導くために，K0とipadの排他的論理和
　　　　　　　をとる。
ステップ５　　ステップ４の結果である文字列に，“テキスト”データ
　　　　　　　を附加する。
ステップ６　　ステップ５で生成された文字列に，ハッシュ関数を
　　　　　　　適用する。
ステップ７　　K0とopadの排他的論理和をとる。
ステップ８　　ステップ７に，ステップ６の結果を附加する。
ステップ９　　ステップ８の結果に，ハッシュ関数を適用する。
ステップ１０　MACとして，ステップ９の結果の左から最大tバイトを
　　　　　　　選択する。（WTLSのために，t=20）））＜訳文のみ転記＞」という内容から，引用刊行物１には，
“ＨＭＡＣ処理ステップ
ステップ１　　鍵Kの鍵長が，データ・ブロックBのバイト長に等しい
　　　　　　　場合は，K0＝Kとおいて，ステップ４に進む。
ステップ２　　鍵Kの鍵長が，データ・ブロックBのバイト長より長い
　　　　　　　場合は，Kをハッシュする。
ステップ３　　鍵Kの鍵長が，データ・ブロックBのバイト長より短い
　　　　　　　場合は，データブロックBの長さと同じになるようKの
　　　　　　　末尾に0を附加する。
ステップ４　　K0とipadの排他的論理を計算する。
ステップ５　　ステップ４で求めた結果に，テキストデータを附加する。
ステップ６　　ステップ５の結果にハッシュ関数を適用する。
ステップ７　　K0とopadの排他的論理和を計算する。
ステップ８　　ステップ７の結果にステップ６結果を附加する。
ステップ９　　ステップ８の結果にハッシュ関数を適用する。
ステップ１０　MACとして，ステップ９の結果の左から最大tバイトを
　　　　　　　選択する。”
　が記載されていることが読み取れる。
　
（ウ）上記Ｃの「 Especially, in the case of HMAC operation mode, the Control Unit coordinates all the system’s operations, according to an FSM (Finite State Machine) diagram which is shown in the next Figure. 2.
　This FSM diagram is based on the specified HMAC step-by-step procedure, which has been described in the previous Table I. In the State S0, the used key Ko is initialized (entered by the user). （特に，HMAC動作モードの場合においては，制御ユニットは，次の図２に示された，FSM（有限状態機械）のダイアグラムに従って，全てのシステムの動作を連係させる。
　このFSMダイアグラムは，前に表１説明された，特定のHMACの段階的手順を基礎にしている。状態S0において，用いられる鍵Ｋ０は，初期化される（ユーザによって入力されて）。）」という記載と，上記Ｄに引用した「図１：　提案された完全ユニットアーキテクチャ」に開示されている内容とから，上記（ア）において検討した「処理装置」は，上記（ア）において検討した構成要素に加えて，「制御ユニット」を有することが読み取れ，前記「制御ユニット」は，上記Ｂにおいて引用し，上記（イ）において検討した「ＨＭＡＣの処理ステップ」に基づく，上記Ｅに引用した「ＨＭＡＣ動作モードＦＳＭダイアグラム」を用いて，
“「FSM（有限状態機械）のダイアグラム」に従って，システムの動作を制御する”
ことが読み取れる。
　そして，上記引用のＣの記載中の「鍵Ｋ０」は，上記（ア），及び，（イ）において引用した，上記Ａの「K」と同じものであると解されるので，当該（ウ）において引用したＣの記載内容から，上記（ア），及び，（イ）において引用したＡ，及び，Ｂに記載された「K」は，“ユーザによって入力される”態様を含むものであることが読み取れる。
　
　以上（ア）〜（ウ）に検討した事項から，引用刊行物１には，次の発明（以下，これを「引用発明」という）が記載されいるものと認める。
　
　ハッシュ関数SHA-1，ハッシュ関数MD5，或いは，HMACセキュリティ・スキームのために動作する処理装置であって，
　前記処理装置は，SHA-1と，MD5ハッシュ関数の両方を実装するハッシュ関数コア，外部環境と通信するためのシンプル・共通バス・ユニット，それぞれ８ビット，３２ビットの，アドレス，及び，データ・バスである，２つの内部バス，排他的論理和ブロック，連結ユニット，及び，特定のコンテンツ，鍵，一時的データの記憶装置として用いられる４つのレジスタ，並びに，制御ユニットを有し，
　前記制御ユニットは，FSM（有限状態機械）のダイアグラムに従って，
ステップ１　　入力された鍵Kの鍵長が，データ・ブロックBのバイト
　　　　　　　長に等しい場合は，K0＝Kとおいて，ステップ４に進む。
ステップ２　　前記鍵Kの鍵長が，データ・ブロックBのバイト長より
　　　　　　　長い場合は，Kをハッシュする。
ステップ３　　前記鍵Kの鍵長が，データ・ブロックBのバイト長より
　　　　　　　短い場合は，データブロックBの長さと同じになるよう
　　　　　　　Kの末尾に0を附加する。
ステップ４　　K0とipadの排他的論理を計算する。
ステップ５　　ステップ４で求めた結果に，テキストデータを附加する。
ステップ６　　ステップ５の結果にハッシュ関数を適用する。
ステップ７　　K0とopadの排他的論理和を計算する。
ステップ８　　ステップ７の結果にステップ６結果を附加する。
ステップ９　　ステップ８の結果にハッシュ関数を適用する。
ステップ１０　MACとして，ステップ９の結果の左から最大tバイトを
　　　　　　　選択する。よう制御する，処理装置。
　
ウ．本件補正発明と，引用発明との対比
（ア）引用発明における「ハッシュ関数SHA-1，ハッシュ関数MD5，或いは，HMACセキュリティ・スキームのために動作する処理装置」は，結局のところ「ＨＭＡＣ」の計算を行うことは明らかであるから，本件補正発明における「HMACを求める情報処理装置」に相当する。
　
（イ）引用発明における「ハッシュ関数コア」は，「ステップ２」，「ステップ６」，及び，「ステップ９」における「ハッシュ」の計算に用いられるものであり，引用発明における「ステップ２」が，本件補正発明における「秘密鍵長(Length(K))が前記ハッシュ関数のブロック長(Length(B)より長い場合に，前記第１のダイジェスト値H(K)を求める」ことに相当し，引用発明における「ステップ６」が，本件補正発明における「第1のデータ（K0 xor ipad）と入力されたメッセージデータMとを連接したデータ(K0 xor ipad) || M)のダイジェスト値である第2のダイジェスト値H(K0 xor ipad) || M)を求める」ことに相当するので，引用発明における「ハッシュ関数コア」が，本件補正発明における「ハッシュ演算回路」に相当する。
　
（ウ）引用発明における「記憶装置として用いられる４つのレジスタ」は，「鍵」と，「一時的データ」とを記憶するものであり，前記「鍵」は，「K0」を含み，前記「一時的データ」は，引用発明の，各「ステップ」において計算された値が，次の計算に用いられるまでの間に記憶する態様を含むものであるから，引用発明における前記「レジスタ」が，本件補正発明における「保持回路」に相当する。
　
（エ）引用発明における「ステップ１」の処理は，本件補正発明における「秘密鍵長(Length(K))が前記ハッシュ関数のブロック長(Length(B)と等しい場合，前記秘密鍵データKを第2の鍵データK0と」することに相当するので，引用発明における「ステップ１」は，本件補正発明における「第2の鍵データK0を求める第2の処理状態」に相当し，
　引用発明における「ステップ２」の処理は，上記（イ）において検討したとおりのものであるから，本件補正発明における「第１のダイジェスト値H(K)を求める第5の処理状態」に相当し，
　引用発明における「ステップ３」の処理は，本件補正発明における「入力された秘密鍵データＫの秘密鍵長(Length(K))がハッシュ関数のブロック長(Length(B)よりも短い場合に，前記秘密鍵データKに対して，0を連接して第1の鍵データK0を生成」することに相当するので，引用発明における「ステップ３」は，本件補正発明における「第1の鍵データK0を生成する第1の処理状態」に相当し，
　引用発明における「ステップ４」の処理は，本件補正発明における「第1の鍵データK0，前記第2の鍵データK0，又は前記第3の鍵データK0のいずれかに対して第1の定数ipadとの排他的論理和を行い第1のデータ（K0 xor ipad）を算出する」ことに相当するので，引用発明における「ステップ４」は，本件補正発明における「第1のデータ（K0 xor ipad）を算出する第4の処理状態」に相当し，
　引用発明における「ステップ６」の処理は，「ステップ４」の結果，即ち，「K0 XOR ipad」に，テキストデータを附加する「ステップ５」の結果に対して，「ハッシュ関数を適用する」ものであるから，本件補正発明における「第1のデータ（K0 xor ipad）と入力されたメッセージデータMとを連接したデータ(K0 xor ipad) || M)のダイジェスト値である第2のダイジェスト値H(K0 xor ipad) || M)を求める」ことに相当するので，引用発明における「ステップ６」は，本件補正発明における「第2のダイジェスト値H(K0 xor ipad) || M)を求める第６の処理状態に状態遷移」に相当し，
　引用発明における「ステップ２」は，「鍵Kの鍵長が，データ・ブロックBのバイト長より長い場合」における“鍵生成”を行っていることは明らかであるから，
　本件補正発明における「第3の鍵データK0を生成する第3の処理状態」と，“所定の鍵長の第3の鍵データK0を生成する第3の処理状態”である点でも共通していて，
　引用発明における「制御ユニット」は，引用発明における各「ステップ」への遷移を制御していることは明らかであるから，本件補正発明における「制御部」と，
“HMAC算出のための処理状態を管理し，自装置を，HMAC算出のための処理状態として，第1の鍵データK0を生成する第1の処理状態，第2の鍵データK0を求める第2の処理状態，所定の鍵長の第3の鍵データK0を生成する第3の処理状態，第1のデータ（K0 xor ipad）を算出する第4の処理状態，第１のダイジェスト値H(K)を求める第5の処理状態，又は，第2のダイジェスト値H(K0 xor ipad) || M)を求める第６の処理状態に状態遷移させることができる制御手段”である点で共通している。
　
（オ）引用発明における「排他的論理和ブロック」が，排他的論理和演算を行い，「連結ユニット」が，「鍵データ」への「０」の附加を行っており，本件補正発明において，排他的論理和演算，及び，「０の連接」を行う「パディング回路」と，“排他的論理和演算，及び，０の連接を行う処理回路”である点で共通する。
　
　以上，（ア）〜（オ）において検討した事項から，本件補正発明と，引用発明との一致点，及び，相違点は，次のとおりである。
　
［一致点］
　HMACを求める情報処理装置であって，
　入力された秘密鍵データＫの秘密鍵長(Length(K))がハッシュ関数のブロック長(Length(B)よりも短い場合に，前記秘密鍵データKに対して，0を連接して第1の鍵データK0を生成し，前記秘密鍵長(Length(K))が前記ハッシュ関数のブロック長(Length(B)と等しい場合，前記秘密鍵データKを第2の鍵データK0とし，前記秘密鍵長(Length(K))が前記ハッシュ関数のブロック長(Length(B)よりも長い場合に，前記秘密鍵データKのダイジェスト値である第1のダイジェスト値H(K)を用いて所定の鍵長の第3の鍵データK0を生成し，前記第1の鍵データK0，前記第2の鍵データK0，又は前記第3の鍵データK0のいずれかに対して第1の定数ipadとの排他的論理和を行い第1のデータ（K0 xor ipad）を算出する排他的論理和演算，及び，０の連接を行う処理回路と，
　前記秘密鍵長(Length(K))が前記ハッシュ関数のブロック長(Length(B)より長い場合に，前記第１のダイジェスト値H(K)を求めるとともに，前記第1のデータ（K0 xor ipad）と入力されたメッセージデータMとを連接したデータ(K0 xor ipad) || M)のダイジェスト値である第2のダイジェスト値H(K0 xor ipad) || M)を求めるハッシュ演算回路と，
　前記秘密鍵データK，または前記第1のダイジェスト値H(K)を記憶する保持回路と，
　HMAC算出のための処理状態を管理し，自装置を，HMAC算出のための処理状態として，前記第1の鍵データK0を生成する第1の処理状態，前記第2の鍵データK0を求める第2の処理状態，前記所定の鍵長の第3の鍵データK0を生成する第3の処理状態，前記第1のデータ（K0 xor ipad）を算出する第4の処理状態，前記第１のダイジェスト値H(K)を求める第5の処理状態，又は，前記第2のダイジェスト値H(K0 xor ipad) || M)を求める第６の処理状態に状態遷移させることができる制御部とを有する情報処理装置。
　
［相違点１］
“第3の鍵データK0”に関して，
　本件補正発明においては，“秘密鍵長(Length(K))が前記ハッシュ関数のブロック長(Length(B)よりも長い場合に，秘密鍵データKのダイジェスト値である第1のダイジェスト値H(K)に対して０を連接して第3の鍵データK0を生成”するのに対して，
　引用発明においては，“前記鍵Kの鍵長が，データ・ブロックBのバイト長より長い場合は，Kをハッシュする。”点には，言及されているが，該“ハッシュ値”に対して，“０を連接”する点についてまでは言及されていない点。
　
［相違点２］
“排他的論理和演算，及び，０の連接を行う処理回路”に関して，
　本件補正発明においては，「パディング回路」が，“排他的論理和演算”と，“０の連接”の両方を行うのに対して，
　引用発明においては，“排他的論理和演算”は，「排他的論理和ブロック」が行い，“０の連接”は，「連結ユニット」が行っている点。
　
［相違点３］
　本件補正発明においては，“秘密鍵データKのダイジェスト値である第1のダイジェスト値H(K)に対して０を連接して第3の鍵データK0を生成”する処理を「第3の処理状態」として独立させているのに対して，
　引用発明においては，「鍵Kの鍵長が，データ・ブロックBのバイト長より長い場合」の鍵生成を「ステップ２」として１つにまとめている点。
　
［相違点４］
　本件補正発明においては，“ハッシュ演算回路は，第1のダイジェスト値H(K)の算出処理を途中で中断可能であるとともに，前記中断までに算出した前記第1のダイジェスト値H(K)の途中経過を外部に出力し，前記第1のダイジェスト値H(K)の算出処理を再開する場合，前記第1のダイジェスト値H(K)の途中経過が入力され，前記第1のダイジェスト値H(K)の途中経過を用いて，前記第1のダイジェスト値H(K)を算出し，
　前記ハッシュ演算回路は，第2のダイジェスト値H(K0 xor ipad) || M)の算出処理を途中で中断可能であるとともに，前記中断までに算出した前記第2のダイジェスト値H(K0 xor ipad) || M)の途中経過を外部に出力し，前記第2のダイジェスト値H(K0 xor ipad) || M)の算出処理を再開する場合，前記第2のダイジェスト値H(K0 xor ipad) || M)の途中経過が入力され，前記第2のダイジェスト値H(K0 xor ipad) || M)の途中経過を用いて，前記第2のダイジェスト値H(K0 xor ipad) || M)を算出し，
　保持回路は，前記ハッシュ演算回路が，前記第2のダイジェスト値H(K0 xor ipad) || M)の算出処理を途中で中断する場合に，秘密鍵データK，又は前記第1のダイジェスト値H(K)を外部に出力し，前記ハッシュ演算回路が，前記第2のダイジェスト値H(K0 xor ipad) || M)の算出処理を再開する場合に，前記秘密鍵データK又は前記第1のダイジェスト値H(K)が入力され，
　制御部に，処理状態を初期状態に制御するための信号が入力された場合に，前記ハッシュ演算回路は，前記第1のダイジェスト値H(K)，又は前記第2のダイジェスト値H(K0 xor ipad) || M)の処理を中断し，前記第1のダイジェスト値H(K)又は前記第2のダイジェスト値H(K0 xor ipad) || M)の算出処理の中断後，中断前と異なる秘密鍵データＫ及び中断前と異なるメッセージデータＭに対するＨＭＡＣを求めるための処理を開始し，
　前記制御部に前記第1のダイジェスト値H(K)の算出処理の再開指示を示す信号を入力した場合に，前記制御部は，自装置を前記第5の処理状態に遷移させ，前記ハッシュ演算回路は，前記第1のダイジェスト値H(K)の算出処理を再開し，
　前記制御部に前記第2のダイジェスト値H(K0 xor ipad) || M)の算出処理の再開指示を示す信号を入力した場合に，前記制御部は，自装置を前記第６の処理状態に遷移させ，前記ハッシュ演算回路は，前記第2のダイジェスト値H(K0 xor ipad) || M)の算出処理を再開する”機能を有するものであるのに対して，
　引用発明においては，「ステップ２」，或いは，「ステップ６」の処理の，「中断」，「再開」については言及されていない点。
　
エ．相違点に対する当審の判断
（ア）［相違点１］，及び，［相違点３］について
“鍵Kの鍵長が，データ・ブロックBのバイト長より長い場合に鍵Kのハッシュ値に０を連接する”点に関しては，原審が，平成２４年５月２１日付けの拒絶査定において，当業者においては周知の技術事項である点を示すために例示した，本願の出願前に既に公知である，「Khan, E. M. et al, Design and Performance Analysis of a Unified, Reconfigurable HMAC-Hash Unit, IEEE Transactions on Circuits and Systems I: Regular Papers, 2007年12月, Volume 54 Issue 12, p.2683-2695」（以下，これを「周知文献１」という）に，
　
Ｆ．「
　
　」（２６８４頁右欄１行〜１２行）
　ＨＭＡＣ計算のアルゴリズムが記載されていて，該アルゴリズム中の特に，
　
Ｇ．「
　
　
」（下線は，説明の都合上，当審にて附加したものである。以下，同じ。）
において，Ｉｂが引用発明におけるデータ・ブロックBのバイト長に相当し，Ｋｂが，鍵長に相当するので，下線を附した式に示されているとおり，鍵長が，データ・ブロックのバイト長より長い場合に，鍵のハッシュ値を求め，所定の長さになるよう０を連接する処理は，本願出願前に当業者には周知の技術事項である。
　そして，上記Ｂに引用したステップ２に引き続いて，“０を連接するステップ”を加えることは，当業者が適宜なし得る事項である。
　よって，相違点１，及び，相違点３は，格別のものではない。
　
（イ）［相違点２］について
　引用発明においても，「排他的論理和ブロック」と，「連結ユニット」とを一つに統合して，一つの処理ユニットとすることは，当業者が適宜なし得る事項である。
　よって，相違点２は，格別のものではない。
　
（ウ）［相違点４］について
　原審拒絶理由において引用された，本願出願前に既に公知である，特開２００６−０３９０００号公報（平成１８年２月９日公開，以下，これを「引用刊行物２」という）に，
　
Ｈ．「【００２７】
  また，本実施形態の暗号処理装置１０は，以下の特徴も有する。
  ＤＭＡＣ１４がデータ格納メモリ１２から処理すべき転送データを指示する情報となるＤＭＡディスクリプタに，ＭＤ５（Message Digest #5 ）やＳＨＡ−１（Secure Hash Algorithm ）といったハッシュアルゴリズムを指定するフィールドと，ハッシュ処理の中断の指示するフィールドと，ハッシュ処理の再開を指示するフィールドと，を有するディスクリプタフォーマットになっている。
　これにより，データ格納メモリ１２に格納された全ての処理対象データのうち，
たとえばＭＤ５で処理の中断を行なう必要がある処理対象データに対しては，転送データ位置と転送データサイズとＭＤ５と中断の指示を，またたとえば，ＳＨＡ−１で処理の再開を行なう必要がある処理対象データに対しては，転送データ位置と転送データサイズとＳＨＡ−１と再開を指示可能としている
　そして，
ハッシュブロック１８は，ＩＶレジスタ１９に接続されており，ハッシュ処理の中断処理時に演算途中結果を保持する記憶手段と，ハッシュ処理の再開処理時に演算途中結果をセットできる記憶手段としての機能を有する。  これにより，ハッシュ処理の演算途中結果が保持されるため，処理の中断時はその途中結果となるＩＶをストアし，処理の再開時はストアしたＩＶをセットすることにより処理の再開を容易としている
　
　と記載されていて，上記Ｈに引用の特に下線を附した記載内容にあるとおり，
“ハッシュ処理を伴う処理系において，ハッシュ処理の演算を中断し，演算の途中結果を記憶手段に保存し，演算復帰時に，該保存した演算の途中結果を用いて，該中断した演算を再開する”ような構成は，本願の出願前に，当業者には，既に知られた技術事項であり，このとき，中断する演算の状態情報も保存する対象の情報とすることも，例えば，本願の出願前に既に公知である，特開平１１−３４５１４３号公報（平成１１年１２月１４日公開，以下，これを「周知文献２」という）に，
　
Ｉ．「【０００４】図７は図６（ａ）のメインルーチンと図６（ｃ）のＩＣＥ割込処理のフローチャートにおける状態遷移図で，図８は割込み処理の発生により
状態情報を待避するスタック領域
【０００５】前記従来例の具体的な動作の例を図７，図８を用いながら説明する。まず，ユーザプログラムにおけるメインルーチン１の通常処理４中に，ユーザプログラムを停止させる第１の強制ブレーク７の外部割込みを発生させる。この第１の強制ブレーク７のＩＣＥ割込処理３によってＩＣＥの割込み処理に遷移する。このＩＣＥ割込処理３もユーザプログラムの割込処理２と同様に，ユーザプログラムの状態は図８に示すスタック領域にそれぞれ待避格納される。また，ＩＣＥの制御ソフトウェアでは，待避格納されたスタック領域の内容を読み出し，ユーザプログラムの停止したときの状態をモニタにて表示することができる。そして，ユーザにはユーザプログラム以外のＩＣＥ割込処理３を実行しているため，ユーザプログラムが停止した状態に見える。さらに，ユーザプログラムの再実行は，ＩＣＥ割込処理３のＩＣＥリターン命令１０を実行することで，第１の強制ブレーク７の発生時に
スタック領域に待避格納された資源が元に戻される
　
　と記載されているように，“状態遷移を用いる処理”に関連する技術において，当業者には周知の技術事項であり，加えて，状態遷移において，現在の処理状態を中断して，他の処理状態に移行する場合に，初期状態に戻すようにすることは，退避した処理と，新たな処理とが，同じ処理系を用いているのであれば，新たな処理のために，処理系の状態を,初期状態に戻すことは，至極当然に行われることであり（そうでなければ，普通，処理を行うことはできない）,さらに，例えば，本願の出願前に既に公知である，特開平０４−２１３１２０号公報（平成４年８月４日公開，以下，これを「周知文献３」という）に，
　
Ｊ．「【００７０】なお，この発明は，上記の実施例および応用例に示される構成に限定されるものではない。例えば，今回の実施例では，例外処理シーケンサ１１２は通常命令デコードのためのデコードシーケンサ１１４とは独立に構成したが，これを１つに統合しても同様の効果を得ることができる。この場合，通常命令デコード中に例外処理を受け付けると，どの状態にいても例外処理シーケンスの最初の状態に遷移し，以後例外処理への移行を行うことで実現できる。あるいは例外処理要求が発生すると，デコード状態遷移は直ちに初期状態に戻り，ここから例外処理への移行処理に入ってもよい。
【００７１】また，プログラムカウンタは，今回の実施例ではデータパス１２１中に設けられているが，フェッチ制御部１３２中に設けてもよいものである。さらに，デコードと命令実行を１つのシーケンサで制御するようなプロセッサにしても，例外処理シーケンサ１１２を通常命令処理シーケンサと独立させることによって，同様な効果を得ることができる。」
　
　と記載されてもいるように，当業者には，周知の技術事項であるから，引用発明においても，ハッシュ演算系に，引用刊行物２に記載の発明を採用して，他の処理を実行するために，現在の処理を退避する機能を付加し，その際，他の処理を実行するにあたって，処理系の状態を初期状態にするようにし，他の処理の実行後，退避した処理を，退避した状態情報を用いて，退避前の状態から復帰するよう構成することは，当業者が適宜なし得る事項である。
　よって，相違点４は，格別ではない。
　
　上記で検討したごとく，相違点１〜４はいずれも格別のものではなく，そして，本件補正発明の構成によってもたらされる効果も，当業者であれば容易に予測できる程度のものであって，格別なものとは認められない。
　
オ．独立特許要件むすび
　以上検討したとおり，本件補正発明は，引用発明，引用刊行物２に記載発明，及び周知技術に基づいて当業者が容易に発明をすることができたものであるから，特許法第２９条第２項の規定により特許出願の際独立して特許を受けることができない。
　
３．補正却下むすび
　したがって，本件手続補正は，特許法第１７条の２第６項において準用する同法第１２６条第７項の規定に違反するの，同法第１５９条第１項の規定において読み替えて準用する同法第５３条第１項の規定により却下すべきものである。
　
　よって，補正却下の決定の結論のとおり決定する。
　
第３．本願発明について
　平成２４年８月２９日付けの手続補正は，上記のとおり却下されたので，本願の請求項１に係る発明（以下，これを「本願発明」という）は，平成２４年４月２７日付けの手続補正により補正された，上記「第２．平成２４年８月２９日付けの手続補正の却下の決定」の「１．補正の内容」において，補正前の請求項１として引用した，次の記載のとおりのものである。
　
「HMACを求める情報処理装置であって，
　入力された秘密鍵データＫの秘密鍵長(Length(K))がハッシュ関数のブロック長(Length(B)よりも短い場合に，前記秘密鍵データKに対して，0を連接して第1の鍵データK0を生成し，前記秘密鍵長(Length(K))が前記ハッシュ関数のブロック長(Length(B)と等しい場合，前記秘密鍵データKを第2の鍵データK0とし，前記秘密鍵長(Length(K))が前記ハッシュ関数のブロック長(Length(B)よりも長い場合に，前記秘密鍵データKのダイジェスト値である第1のダイジェスト値H(K)に対して０を連接して第3の鍵データK0を生成し，前記第1の鍵データK0，前記第2の鍵データK0，又は前記第3の鍵データK0のいずれかに対して第1の定数ipadとの排他的論理和を行い第1のデータ（K0 xor ipad）を算出するパディング回路と，
　前記秘密鍵長(Length(K))が前記ハッシュ関数のブロック長(Length(B)より長い場合に，前記第１のダイジェスト値H(K)を求めるとともに，前記第1のデータ（K0 xor ipad）と入力されたメッセージデータMとを連接したデータ(K0 xor ipad) || M)のダイジェスト値である第2のダイジェスト値H(K0 xor ipad) || M)を求めるハッシュ演算回路と，
　前記秘密鍵データK，または前記第1のダイジェスト値H(K)を記憶する保持回路と，
　HMAC算出のための処理状態を管理する制御部とを備え，
　前記ハッシュ演算回路は，前記第1のダイジェスト値H(K)の算出処理を途中で中断可能であるとともに，前記中断までに算出した前記第1のダイジェスト値H(K)の途中経過を外部に出力し，前記第1のダイジェスト値H(K)の算出処理を再開する場合，前記第1のダイジェスト値H(K)の途中経過が入力され，前記第1のダイジェスト値H(K)の途中経過を用いて，前記第1のダイジェスト値H(K)を算出し，
　前記ハッシュ演算回路は，前記第2のダイジェスト値H(K0 xor ipad) || M)の算出処理を途中で中断可能であるとともに，前記中断までに算出した前記第2のダイジェスト値H(K0 xor ipad) || M)の途中経過を外部に出力し，前記第2のダイジェスト値H(K0 xor ipad) || M)の算出処理を再開する場合，前記第2のダイジェスト値H(K0 xor ipad) || M)の途中経過が入力され，前記第2のダイジェスト値H(K0 xor ipad) || M)の途中経過を用いて，前記第2のダイジェスト値H(K0 xor ipad) || M)を算出し，
　前記保持回路は，前記ハッシュ演算回路が，前記第2のダイジェスト値H(K0 xor ipad) || M)の算出処理を途中で中断する場合に，前記秘密鍵データK，又は前記第1のダイジェスト値H(K)を外部に出力し，前記ハッシュ演算回路が，前記第2のダイジェスト値H(K0 xor ipad) || M)の算出処理を再開する場合に，前記秘密鍵データK又は前記第1のダイジェスト値H(K)が入力され，
　前記制御部に前記第1のダイジェスト値H(K)の算出処理の再開指示を示す信号を入力した場合に，前記ハッシュ演算回路は，前記第1のダイジェスト値H(K)の算出処理を再開し，
　前記制御部に前記第2のダイジェスト値H(K0 xor ipad) || M)の算出処理の再開指示を示す信号を入力した場合に，前記ハッシュ演算回路は，前記第2のダイジェスト値H(K0 xor ipad) || M)の算出処理を再開し，
　前記第1のダイジェスト値H(K)又は前記第2のダイジェスト値H(K0 xor ipad) || M)の算出処理の中断後，中断前と異なる秘密鍵データＫ及び中断前と異なるメッセージデータＭに対するＨＭＡＣを求めるための処理を行う情報処理装置。」
　
第４．引用刊行物に記載の発明
　原審拒絶理由に引用され，上記「第２．平成２４年８月２９日付けの手続補正の却下の決定」の「２．補正の適否」の「（３）独立特許要件」における「イ．引用刊行物に記載の発明」において検討された引用刊行物１には，前記「イ．引用刊行物に記載の発明」において検討したとおりの，次の引用発明が記載されているものと認める。
　
　ハッシュ関数SHA-1，ハッシュ関数MD5，或いは，HMACセキュリティ・スキームのために動作する処理装置であって，
　前記処理装置は，SHA-1と，MD5ハッシュ関数の両方を実装するハッシュ関数コア，外部環境と通信するためのシンプル・共通バス・ユニット，それぞれ８ビット，３２ビットの，アドレス，及び，データ・バスである，２つの内部バス，排他的論理和ブロック，連結ユニット，及び，特定のコンテンツ，鍵，一時的データの記憶装置として用いられる４つのレジスタ，並びに，制御ユニットを有し，
　前記制御ユニットは，FSM（有限状態機械）のダイアグラムに従って，
ステップ１　　入力された鍵Kの鍵長が，データ・ブロックBのバイト
　　　　　　　長に等しい場合は，K0＝Kとおいて，ステップ４に進む。
ステップ２　　前記鍵Kの鍵長が，データ・ブロックBのバイト長より
　　　　　　　長い場合は，Kをハッシュする。
ステップ３　　前記鍵Kの鍵長が，データ・ブロックBのバイト長より
　　　　　　　短い場合は，データブロックBの長さと同じになるよう
　　　　　　　Kの末尾に0を附加する。
ステップ４　　K0とipadの排他的論理を計算する。
ステップ５　　ステップ４で求めた結果に，テキストデータを附加する。
ステップ６　　ステップ５の結果にハッシュ関数を適用する。
ステップ７　　K0とopadの排他的論理和を計算する。
ステップ８　　ステップ７の結果にステップ６結果を附加する。
ステップ９　　ステップ８の結果にハッシュ関数を適用する。
ステップ１０　MACとして，ステップ９の結果の左から最大tバイトを
　　　　　　　選択する。よう制御する，処理装置。
　
第５．本願発明と引用発明との対比
　本願発明は，上記「第２．平成２４年８月２９日付けの手続補正の却下の決定」において検討した，本件補正発明における発明特定事項である「制御部」に対する限定事項である，「自装置を，HMAC算出のための処理状態として，前記第1の鍵データK0を生成する第1の処理状態，前記第2の鍵データK0を求める第2の処理状態，前記第3の鍵データK0を生成する第3の処理状態，前記第1のデータ（K0 xor ipad）を算出する第4の処理状態，前記第１のダイジェスト値H(K)を求める第5の処理状態，又は，前記第2のダイジェスト値H(K0 xor ipad) || M)を求める第６の処理状態に状態遷移させることができる」という事項を外し，
　更に，本件補正発明の更制御部」の処理である，
「制御部に前記第1のダイジェスト値H(K)の算出処理の再開指示を示す信号を入力した場合に，前記制御部は，自装置を前記第5の処理状態に遷移させ，前記ハッシュ演算回路は，前記第1のダイジェスト値H(K)の算出処理を再開し，
　前記制御部に前記第2のダイジェスト値H(K0 xor ipad) || M)の算出処理の再開指示を示す信号を入力した場合に，前記制御部は，自装置を前記第６の処理状態に遷移させ，前記ハッシュ演算回路は，前記第2のダイジェスト値H(K0 xor ipad) || M)の算出処理を再開する」という事項を外したものであるから，上記「第２．平成２４年８月２９日付けの手続補正の却下の決定」の「２．補正の適否」の「（３）独立特許要件」における「ウ．本件補正発明と，引用発明との対比」において検討した事項を踏まえると，本願発明と，引用発明との一致点，及び，相違点は，次のとおりである。
　
［一致点］
　HMACを求める情報処理装置であって，
　入力された秘密鍵データＫの秘密鍵長(Length(K))がハッシュ関数のブロック長(Length(B)よりも短い場合に，前記秘密鍵データKに対して，0を連接して第1の鍵データK0を生成し，前記秘密鍵長(Length(K))が前記ハッシュ関数のブロック長(Length(B)と等しい場合，前記秘密鍵データKを第2の鍵データK0とし，前記秘密鍵長(Length(K))が前記ハッシュ関数のブロック長(Length(B)よりも長い場合に，前記秘密鍵データKのダイジェスト値である第1のダイジェスト値H(K)を用いて所定の鍵長の第3の鍵データK0を生成し，前記第1の鍵データK0，前記第2の鍵データK0，又は前記第3の鍵データK0のいずれかに対して第1の定数ipadとの排他的論理和を行い第1のデータ（K0 xor ipad）を算出する排他的論理和，及び，０の連接を行う処理回路と，
　前記秘密鍵長(Length(K))が前記ハッシュ関数のブロック長(Length(B)より長い場合に，前記第１のダイジェスト値H(K)を求めるとともに，前記第1のデータ（K0 xor ipad）と入力されたメッセージデータMとを連接したデータ(K0 xor ipad) || M)のダイジェスト値である第2のダイジェスト値H(K0 xor ipad) || M)を求めるハッシュ演算回路と，
　前記秘密鍵データK，または前記第1のダイジェスト値H(K)を記憶する保持回路と，
　HMAC算出のための処理状態を管理する制御部とを有する情報処理装置。
　
［相違点ａ］
　“第3の鍵データK0”に関して，
　本願発明においては，“秘密鍵長(Length(K))が前記ハッシュ関数のブロック長(Length(B)よりも長い場合に，秘密鍵データKのダイジェスト値である第1のダイジェスト値H(K)に対して０を連接して第3の鍵データK0を生成”するのに対して，
　引用発明においては，“前記鍵Kの鍵長が，データ・ブロックBのバイト長より長い場合は，Kをハッシュする。”点には，言及されているが，該“ハッシュ値”に対して，“０を連接”する点についてまでは言及されていない点。
　
［相違点ｂ］
“排他的論理和演算，及び，０の連接を行う処理回路”に関して，
　本願発明においては，「パディング回路」が，“排他的論理和演算”と，“０の連接”の両方を行うのに対して，
　引用発明においては，“排他的論理和演算”は，「排他的論理和ブロック」が行い，“０の連接”は，「連結ユニット」が行っている点。
　
［相違点ｃ］
　本願発明においては，“ハッシュ演算回路は，第1のダイジェスト値H(K)の算出処理を途中で中断可能であるとともに，前記中断までに算出した前記第1のダイジェスト値H(K)の途中経過を外部に出力し，前記第1のダイジェスト値H(K)の算出処理を再開する場合，前記第1のダイジェスト値H(K)の途中経過が入力され，前記第1のダイジェスト値H(K)の途中経過を用いて，前記第1のダイジェスト値H(K)を算出し，
　前記ハッシュ演算回路は，第2のダイジェスト値H(K0 xor ipad) || M)の算出処理を途中で中断可能であるとともに，前記中断までに算出した前記第2のダイジェスト値H(K0 xor ipad) || M)の途中経過を外部に出力し，前記第2のダイジェスト値H(K0 xor ipad) || M)の算出処理を再開する場合，前記第2のダイジェスト値H(K0 xor ipad) || M)の途中経過が入力され，前記第2のダイジェスト値H(K0 xor ipad) || M)の途中経過を用いて，前記第2のダイジェスト値H(K0 xor ipad) || M)を算出し，
　保持回路は，前記ハッシュ演算回路が，前記第2のダイジェスト値H(K0 xor ipad) || M)の算出処理を途中で中断する場合に，前記秘密鍵データK，又は前記第1のダイジェスト値H(K)を外部に出力し，前記ハッシュ演算回路が，前記第2のダイジェスト値H(K0 xor ipad) || M)の算出処理を再開する場合に，前記秘密鍵データK又は前記第1のダイジェスト値H(K)が入力され，
　制御部に前記第1のダイジェスト値H(K)の算出処理の再開指示を示す信号を入力した場合に，前記ハッシュ演算回路は，前記第1のダイジェスト値H(K)の算出処理を再開し，
　前記制御部に前記第2のダイジェスト値H(K0 xor ipad) || M)の算出処理の再開指示を示す信号を入力した場合に，前記ハッシュ演算回路は，前記第2のダイジェスト値H(K0 xor ipad) || M)の算出処理を再開し，
　前記第1のダイジェスト値H(K)又は前記第2のダイジェスト値H(K0 xor ipad) || M)の算出処理の中断後，中断前と異なる秘密鍵データＫ及び中断前と異なるメッセージデータＭに対するＨＭＡＣを求めるための処理を行う”ものであるのに対して，
　引用発明においては，「ステップ２」，或いは，「ステップ６」の処理の，「中断」，「再開」については言及されていない点。
　
第６．相違点に対する当審の判断
１．［相違点ａ］，及び，［相違点ｂ］について
　本願発明と，引用発明との間における［相違点ａ］，及び，［相違点ｂ］は，本件補正発明と，引用発明との間における［相違点１］，及び，［相違点２］と同じものであるから，上記「第２．平成２４年８月２９日付けの手続補正の却下の決定」の「２．補正の適否」の「（３）独立特許要件」における「エ．相違点に対する当審の判断」の「（ア）［相違点１］，及び，［相違点３］について」，及び，「（イ）［相違点２］について」において検討したとおり，格別のものではない。
　
２．［相違点ｃ］について
　上記「第２．平成２４年８月２９日付けの手続補正の却下の決定」の「２．補正の適否」の「（３）独立特許要件」における「エ．相違点に対する当審の判断」の「（ウ）［相違点４］について」において検討したように，“ハッシュ処理を伴う処理系において，ハッシュ処理の演算を中断し，演算の途中結果を記憶手段に保存し，演算復帰時に，該保存した演算の途中結果を用いて，該中断した演算を再開する”ような構成は，本願の出願前に，当業者には，既に知られた技術事項であり，記憶手段に保存する情報として，「状態情報」を用いる点も，周知文献２等に記載されてもいるように，本願の出願前に当業者には周知の技術事項であるから，引用発明において，ハッシュ演算系に，引用刊行物２に記載の発明を採用して，他の処理を実行するために，現在の処理を退避する機能を付加し，他の処理の実行後，退避した処理を，退避した状態情報を用いて，退避前の状態から復帰するよう構成することは，当業者が適宜なし得る事項である。
　よって，相違点ｃは，格別ではない。
　
　上記で検討したごとく，相違点ａ〜相違点ｃはいずれも格別のものではなく，そして，本願発明の構成によってもたらされる効果も，当業者であれば容易に予測できる程度のものであって，格別なものとは認められない。
　
第７．むすび
　したがって，本願発明は，本願の特許出願前に日本国内又は外国において頒布された刊行物に記載された発明又は電気通信回線を通じて公衆に利用可能となった発明に基づいて当業者が容易に発明をすることができたものであるので，特許法第２９条第２項の規定により特許を受けることができない。
　
　よって，結論のとおり審決する。